@@ -81,6 +81,10 @@ DECLARE_SOA_COLUMN(Ezna, ezna, float);
8181DECLARE_SOA_COLUMN (Tznc, tznc, float );
8282DECLARE_SOA_COLUMN (Eznc, eznc, float );
8383DECLARE_SOA_COLUMN (Nclass, nclass, int );
84+ // other info
85+ DECLARE_SOA_COLUMN (PDCAp, pDCAp, float );
86+ DECLARE_SOA_COLUMN (PDCAn, pDCAn, float );
87+ DECLARE_SOA_COLUMN (AmpV0A, ampV0A, std::vector<float >);
8488} // namespace dimu
8589
8690namespace o2 ::aod
@@ -91,7 +95,8 @@ DECLARE_SOA_TABLE(DiMu, "AOD", "DIMU",
9195 dimu::PhiAv, dimu::PhiCh,
9296 dimu::EnergyP, dimu::Pxp, dimu::Pyp, dimu::Pzp, dimu::Ptp, dimu::Etap, dimu::Phip, dimu::TrackTypep,
9397 dimu::EnergyN, dimu::Pxn, dimu::Pyn, dimu::Pzn, dimu::Ptn, dimu::Etan, dimu::Phin, dimu::TrackTypen,
94- dimu::Tzna, dimu::Ezna, dimu::Tznc, dimu::Eznc, dimu::Nclass);
98+ dimu::Tzna, dimu::Ezna, dimu::Tznc, dimu::Eznc, dimu::Nclass,
99+ dimu::PDCAp, dimu::PDCAn, dimu::AmpV0A);
95100} // namespace o2::aod
96101
97102// for saving tree with info on gen MC
@@ -153,6 +158,10 @@ DECLARE_SOA_COLUMN(GenPhip, genPhip, float);
153158DECLARE_SOA_COLUMN (GenPtn, genPtn, float );
154159DECLARE_SOA_COLUMN (GenEtan, genEtan, float );
155160DECLARE_SOA_COLUMN (GenPhin, genPhin, float );
161+ // other info
162+ DECLARE_SOA_COLUMN (PDCAp, pDCAp, float );
163+ DECLARE_SOA_COLUMN (PDCAn, pDCAn, float );
164+ DECLARE_SOA_COLUMN (AmpV0A, ampV0A, std::vector<float >);
156165} // namespace recodimu
157166
158167namespace o2 ::aod
@@ -165,7 +174,8 @@ DECLARE_SOA_TABLE(RecoDimu, "AOD", "RECODIMU",
165174 recodimu::Ptn, recodimu::Etan, recodimu::Phin, recodimu::TrackTypen,
166175 recodimu::GenPt, recodimu::GenRap, recodimu::GenPhi,
167176 recodimu::GenPtp, recodimu::GenEtap, recodimu::GenPhip,
168- recodimu::GenPtn, recodimu::GenEtan, recodimu::GenPhin);
177+ recodimu::GenPtn, recodimu::GenEtan, recodimu::GenPhin,
178+ recodimu::PDCAp, recodimu::PDCAn, recodimu::AmpV0A);
169179} // namespace o2::aod
170180
171181using namespace o2 ;
@@ -176,13 +186,10 @@ using namespace o2::framework::expressions;
176186const float kRAbsMin = 17.6 ;
177187const float kRAbsMid = 26.5 ;
178188const float kRAbsMax = 89.5 ;
179- const float kPDca1 = 200 .;
180- const float kPDca2 = 200 .;
181189float kEtaMin = -4.0 ;
182190float kEtaMax = -2.5 ;
183191const float kPtMin = 0 .;
184192
185- const float kMaxAmpV0A = 100 .;
186193const int kReqMatchMIDTracks = 2 ;
187194const int kReqMatchMFTTracks = 2 ;
188195const int kMaxChi2MFTMatch = 30 ;
@@ -224,6 +231,13 @@ struct FwdMuonsUpc {
224231 Configurable<float > lowRapidity{" lowRapidity" , -4.5 , " Low rapidity cut" };
225232 Configurable<float > highRapidity{" highRapidity" , -2 ., " High rapidity cut" };
226233
234+ // cuts on pDCA
235+ Configurable<float > pDCA1{" pDCA1" , 200 ., " pDCA cut for tracks with rAbs < 26.5 cm" };
236+ Configurable<float > pDCA2{" pDCA2" , 200 ., " pDCA cut for tracks with rAbs > 26.5 cm" };
237+
238+ // cut on V0A amplitude
239+ Configurable<float > maxAmpV0A{" maxAmpV0A" , 100 ., " Max amplitude in V0A" };
240+
227241 // my track type
228242 // 0 = MCH-MID-MFT
229243 // 1 = MCH-MID
@@ -350,7 +364,7 @@ struct FwdMuonsUpc {
350364 std::array<float , 3 > trackMomentum{fwdTrack.px (), fwdTrack.py (), fwdTrack.pz ()};
351365 float eta = RecoDecay::eta (trackMomentum);
352366 float pt = RecoDecay::pt (trackMomentum);
353- float pDcaMax = rAbs < kRAbsMid ? kPDca1 : kPDca2 ;
367+ float pDcaMax = rAbs < kRAbsMid ? pDCA1 : pDCA2 ;
354368
355369 if (eta < kEtaMin || eta > kEtaMax )
356370 return false ;
@@ -402,7 +416,7 @@ struct FwdMuonsUpc {
402416 const auto & ampsRelBCsV0A = cand.ampRelBCsV0A ();
403417 for (unsigned int i = 0 ; i < ampsV0A.size (); ++i) {
404418 if (std::abs (ampsRelBCsV0A[i]) <= 1 ) {
405- if (ampsV0A[i] > kMaxAmpV0A )
419+ if (ampsV0A[i] > maxAmpV0A )
406420 return ;
407421 }
408422 }
@@ -516,14 +530,16 @@ struct FwdMuonsUpc {
516530 phiAverage, phiCharge,
517531 p1.E (), p1.Px (), p1.Py (), p1.Pz (), p1.Pt (), p1.Eta (), p1.Phi (), static_cast <int >(myTrackType),
518532 p2.E (), p2.Px (), p2.Py (), p2.Pz (), p2.Pt (), p2.Eta (), p2.Phi (), static_cast <int >(myTrackType),
519- zdc.timeA , zdc.enA , zdc.timeC , zdc.enC , znClass);
533+ zdc.timeA , zdc.enA , zdc.timeC , zdc.enC , znClass,
534+ tr1.pDca (), tr2.pDca (), ampsV0A);
520535 } else {
521536 dimuSel (cand.runNumber (),
522537 p.M (), p.E (), p.Px (), p.Py (), p.Pz (), p.Pt (), p.Rapidity (), p.Phi (),
523538 phiAverage, phiCharge,
524539 p2.E (), p2.Px (), p2.Py (), p2.Pz (), p2.Pt (), p2.Eta (), p2.Phi (), static_cast <int >(myTrackType),
525540 p1.E (), p1.Px (), p1.Py (), p1.Pz (), p1.Pt (), p1.Eta (), p1.Phi (), static_cast <int >(myTrackType),
526- zdc.timeA , zdc.enA , zdc.timeC , zdc.enC , znClass);
541+ zdc.timeA , zdc.enA , zdc.timeC , zdc.enC , znClass,
542+ tr2.pDca (), tr1.pDca (), ampsV0A);
527543 }
528544 }
529545
@@ -605,7 +621,7 @@ struct FwdMuonsUpc {
605621 const auto & ampsRelBCsV0A = cand.ampRelBCsV0A ();
606622 for (unsigned int i = 0 ; i < ampsV0A.size (); ++i) {
607623 if (std::abs (ampsRelBCsV0A[i]) <= 1 ) {
608- if (ampsV0A[i] > kMaxAmpV0A )
624+ if (ampsV0A[i] > maxAmpV0A )
609625 return ;
610626 }
611627 }
@@ -706,7 +722,8 @@ struct FwdMuonsUpc {
706722 // gen info
707723 pMc.Pt (), pMc.Rapidity (), pMc.Phi (),
708724 p1Mc.Pt (), p1Mc.Eta (), p1Mc.Phi (),
709- p2Mc.Pt (), p2Mc.Eta (), p2Mc.Phi ());
725+ p2Mc.Pt (), p2Mc.Eta (), p2Mc.Phi (),
726+ tr1.pDca (), tr2.pDca (), ampsV0A);
710727 } else {
711728 dimuReco (cand.runNumber (),
712729 p.M (), p.Pt (), p.Rapidity (), p.Phi (),
@@ -716,7 +733,8 @@ struct FwdMuonsUpc {
716733 // gen info
717734 pMc.Pt (), pMc.Rapidity (), pMc.Phi (),
718735 p2Mc.Pt (), p2Mc.Eta (), p2Mc.Phi (),
719- p1Mc.Pt (), p1Mc.Eta (), p1Mc.Phi ());
736+ p1Mc.Pt (), p1Mc.Eta (), p1Mc.Phi (),
737+ tr2.pDca (), tr1.pDca (), ampsV0A);
720738 }
721739 }
722740
0 commit comments