@@ -50,6 +50,7 @@ struct LfMyV0s {
5050 registry.add (" hMassLambda" , " hMassLambda" , {HistType::kTH1F , {{200 , 0 .9f , 1 .2f }}});
5151 registry.add (" V0pTInLab" , " V0pTInLab" , kTH1F , {axisPT});
5252 registry.add (" hMassVsPtLambda" , " hMassVsPtLambda" , {HistType::kTH2F , {{100 , 0 .0f , 10 .0f }, {200 , 1 .016f , 1 .216f }}});
53+ registry.add (" hMassVsPtAntiLambda" , " hMassVsPtAntiLambda" , {HistType::kTH2F , {{100 , 0 .0f , 10 .0f }, {200 , 1 .016f , 1 .216f }}});
5354
5455 registry.add (" V0pxInLab" , " V0pxInLab" , kTH1F , {axisPx});
5556 registry.add (" V0pyInLab" , " V0pyInLab" , kTH1F , {axisPy});
@@ -84,13 +85,16 @@ struct LfMyV0s {
8485 registry.add (" V0protonpyInJetV0frame" , " V0protonpyInJetV0frame" , kTH1F , {axisPy});
8586 registry.add (" V0protonpzInJetV0frame" , " V0protonpzInJetV0frame" , kTH1F , {axisPz});
8687 registry.add (" V0protonphiInJetV0frame" , " V0protonphiInJetV0frame" , kTH1F , {axisPhi});
88+ registry.add (" V0antiprotonphiInJetV0frame" , " V0antiprotonphiInJetV0frame" , kTH1F , {axisPhi});
8789
8890 registry.add (" V0LambdapxInJetV0frame" , " V0LambdapxInJetV0frame" , kTH1F , {axisPx});
8991 registry.add (" V0LambdapyInJetV0frame" , " V0LambdapyInJetV0frame" , kTH1F , {axisPy});
9092 registry.add (" V0LambdapzInJetV0frame" , " V0LambdapzInJetV0frame" , kTH1F , {axisPz});
9193
9294 registry.add (" hLambdamassandSinPhi" , " hLambdamassandSinPhi" , kTH2F , {{200 , 0.9 , 1.2 }, {200 , -1 , 1 }});
95+ registry.add (" hAntiLambdamassandSinPhi" , " hAntiLambdamassandSinPhi" , kTH2F , {{200 , 0.9 , 1.2 }, {200 , -1 , 1 }});
9396 registry.add (" profile" , " Invariant Mass vs sin(phi)" , {HistType::kTProfile , {{200 , 0.9 , 1.2 }}});
97+ registry.add (" profileAntiV0" , " Invariant Mass vs sin(phi)" , {HistType::kTProfile , {{200 , 0.9 , 1.2 }}});
9498 }
9599 double massPr = o2::constants::physics::MassProton;
96100 double massLambda = o2::constants::physics::MassLambda;
@@ -264,6 +268,54 @@ struct LfMyV0s {
264268 }
265269 }
266270 PROCESS_SWITCH (LfMyV0s, processLeadingJetV0Analysis, " processLeadingJetV0Analysis" , true );
271+
272+ void processLeadingJetAntiV0Analysis (aod::MyTableAnti const & myv0s, aod::MyTableLeadingJet const & myleadingJets)
273+ {
274+ for (auto & LeadingJet : myleadingJets) {
275+ int V0Numbers = 0 ;
276+ double protonsinPhiInJetV0frame = 0 ;
277+ for (auto & candidate : myv0s) {
278+ if (candidate.mycollisionv0 () == LeadingJet.mycollisionleadingjet ()) {
279+ V0Numbers = V0Numbers + 1 ;
280+ double PLambda = sqrt (candidate.v0px () * candidate.v0px () + candidate.v0py () * candidate.v0py () + candidate.v0pz () * candidate.v0pz ());
281+ double ELambda = sqrt (candidate.v0Lambdamass () * candidate.v0Lambdamass () + PLambda * PLambda);
282+ double protonE = sqrt (massPr * massPr + candidate.v0protonpx () * candidate.v0protonpx () + candidate.v0protonpy () * candidate.v0protonpy () + candidate.v0protonpz () * candidate.v0protonpz ());
283+
284+ TMatrixD pLabV0 (4 , 1 );
285+ pLabV0 (0 , 0 ) = ELambda;
286+ pLabV0 (1 , 0 ) = candidate.v0px ();
287+ pLabV0 (2 , 0 ) = candidate.v0py ();
288+ pLabV0 (3 , 0 ) = candidate.v0pz ();
289+
290+ TMatrixD lambdaInJet (4 , 1 );
291+ lambdaInJet = MyTMatrixTranslationToJet (LeadingJet.leadingjetpx (), LeadingJet.leadingjetpy (), LeadingJet.leadingjetpz (), candidate.v0px (), candidate.v0py (), candidate.v0pz ()) * pLabV0;
292+
293+ TMatrixD lambdaInJetV0 (4 , 1 );
294+ lambdaInJetV0 = LorentzTransInV0frame (ELambda, lambdaInJet (1 , 0 ), lambdaInJet (2 , 0 ), lambdaInJet (3 , 0 )) * MyTMatrixTranslationToJet (LeadingJet.leadingjetpx (), LeadingJet.leadingjetpy (), LeadingJet.leadingjetpz (), candidate.v0px (), candidate.v0py (), candidate.v0pz ()) * pLabV0;
295+
296+ TMatrixD pLabproton (4 , 1 );
297+ pLabproton (0 , 0 ) = protonE;
298+ pLabproton (1 , 0 ) = candidate.v0protonpx ();
299+ pLabproton (2 , 0 ) = candidate.v0protonpy ();
300+ pLabproton (3 , 0 ) = candidate.v0protonpz ();
301+ TMatrixD protonInJetV0 (4 , 1 );
302+ protonInJetV0 = LorentzTransInV0frame (ELambda, lambdaInJet (1 , 0 ), lambdaInJet (2 , 0 ), lambdaInJet (3 , 0 )) * MyTMatrixTranslationToJet (LeadingJet.leadingjetpx (), LeadingJet.leadingjetpy (), LeadingJet.leadingjetpz (), candidate.v0px (), candidate.v0py (), candidate.v0pz ()) * pLabproton;
303+ protonsinPhiInJetV0frame = protonsinPhiInJetV0frame + protonInJetV0 (2 , 0 ) / sqrt (protonInJetV0 (1 , 0 ) * protonInJetV0 (1 , 0 ) + protonInJetV0 (2 , 0 ) * protonInJetV0 (2 , 0 ));
304+ }
305+ }
306+ for (auto & candidate : myv0s) {
307+ if (candidate.mycollisionv0 () == LeadingJet.mycollisionleadingjet ()) {
308+ registry.fill (HIST (" V0antiprotonphiInJetV0frame" ), protonsinPhiInJetV0frame / V0Numbers);
309+ registry.fill (HIST (" hAntiLambdamassandSinPhi" ), candidate.v0Lambdamass (), protonsinPhiInJetV0frame / V0Numbers);
310+ registry.fill (HIST (" profileAntiV0" ), candidate.v0Lambdamass (), protonsinPhiInJetV0frame / V0Numbers);
311+ }
312+ }
313+ }
314+ for (auto & candidate : myv0s) {
315+ registry.fill (HIST (" hMassVsPtAntiLambda" ), candidate.v0pt (), candidate.v0Lambdamass ());
316+ }
317+ }
318+ PROCESS_SWITCH (LfMyV0s, processLeadingJetAntiV0Analysis, " processLeadingJetAntiV0Analysis" , true );
267319};
268320
269321WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments