@@ -72,23 +72,32 @@ struct CFFillterPPPhi {
7272 false ,
7373 " Evt sel: check for offline selection" };
7474
75- Configurable<float > InvMassCutWidth{" InvMassCutWidth" , 0.024 , " Phi Inv Mass Cut Width (GeV)" };
75+ Configurable<float > ConfResoInvMassLowLimit{" ConfResoInvMassLowLimit" , 1.011461 , " Lower limit of the Reso invariant mass" };
76+ Configurable<float > ConfResoInvMassUpLimit{" ConfResoInvMassUpLimit" , 1.027461 , " Upper limit of the Reso invariant mass" };
7677
7778 Configurable<float > Q3Max{" Q3Max" , 1 .f , " Max Q3" };
7879
7980 /* track selection*/
8081
81- Configurable<float > ConfTrkEta{" ConfTrkEta" , 0.85 , " Eta" }; // 0.8
82- Configurable<float > ConfTrkDCAxy{" ConfTrkDCAxy" , 0.15 , " DCAxy" }; // 0.1
83- Configurable<float > ConfTrkDCAz{" ConfTrkDCAz" , 0.3 , " DCAz" }; // 0.2
84- Configurable<float > ConfNClus{" ConfNClus" , 70 , " NClusters" }; // 0.2
85- Configurable<float > ConfNCrossed{" ConfNCrossed" , 65 , " NCrossedRows" }; // 0.2
82+ Configurable<float > ConfTrkEtaPr{" ConfTrkEtaPr" , 0.85 , " Et protona" }; // 0.8
83+ Configurable<float > ConfTrkDCAxyPr{" ConfTrkDCAxyPr" , 0.15 , " DCAxy proton" }; // 0.1
84+ Configurable<float > ConfTrkDCAzPr{" ConfTrkDCAzPr" , 0.3 , " DCAz proton" }; // 0.2
85+ Configurable<float > ConfNClusPr{" ConfNClusPr" , 70 , " NClusters proton" }; // 0.2
86+ Configurable<float > ConfNCrossedPr{" ConfNCrossedPr" , 65 , " NCrossedRows proton" }; // 0.2
87+ Configurable<float > ConfTrkTPCfClsPr{" ConfTrkTPCfClsPr" , 0.83 , " Minimum fraction of crossed rows over findable clusters proton" }; // 0.2
8688
8789 Configurable<float > ConfTrkPtPrUp{" ConfTrkPtPrUp" , 6.0 , " Pt_up proton" }; // 2.0
8890 Configurable<float > ConfTrkPtPrDown{" ConfTrkPtPrDown" , 0.35 , " Pt_down proton" }; // 0.5
8991 Configurable<float > ConfTrkPTPCPrThr{" ConfTrkPTPCPrThr" , 0.8 , " p_TPC,Thr proton" }; // 0.75
9092 Configurable<float > ConfTrkPrSigmaPID{" ConfTrkPrSigmaPID" , 3.50 , " n_sigma proton" }; // 3.0
9193
94+ Configurable<float > ConfTrkEtaKa{" ConfTrkEtaKa" , 0.85 , " Eta kaon" }; // 0.8
95+ Configurable<float > ConfTrkDCAxyKa{" ConfTrkDCAxyKa" , 0.15 , " DCAxy kaon" }; // 0.1
96+ Configurable<float > ConfTrkDCAzKa{" ConfTrkDCAzKa" , 0.3 , " DCAz kaon" }; // 0.2
97+ Configurable<float > ConfNClusKa{" ConfNClusKa" , 70 , " NClusters kaon" }; // 0.2
98+ Configurable<float > ConfNCrossedKa{" ConfNCrossedKa" , 65 , " NCrossedRows kaon" }; // 0.2
99+ Configurable<float > ConfTrkTPCfClsKa{" ConfTrkTPCfClsKa" , 0.80 , " Minimum fraction of crossed rows over findable clusters kaon" }; // 0.2
100+
92101 Configurable<float > ConfTrkPtKaUp{" ConfTrkPtKaUp" , 6.0 , " Pt_up kaon" }; // 2.0
93102 Configurable<float > ConfTrkPtKaDown{" ConfTrkPtKaDown" , 0.05 , " Pt_down kaon" }; // 0.15
94103 Configurable<float > ConfTrkPTPCKaThr{" ConfTrkPTPCKaThr" , 0.40 , " p_TPC,Thr kaon" }; // 0.4
@@ -193,6 +202,7 @@ struct CFFillterPPPhi {
193202 // phi cuts
194203 registry.add (" TrackCuts/Phi/fPtPhiBefore" , " Transverse momentum V0s;p_{T} (GeV/c);Entries" , HistType::kTH1F , {{1000 , 0 , 10 }});
195204 registry.add (" TrackCuts/Phi/fInvMassPhiBefore" , " Invariant mass V0s;M_{KK};Entries" , HistType::kTH1F , {{7000 , 0.8 , 1.5 }});
205+
196206 registry.add (" TrackCuts/Phi/fEtaPhiBefore" , " Pseudorapidity of V0;#eta;Entries" , HistType::kTH1F , {{1000 , -2 , 2 }});
197207 registry.add (" TrackCuts/Phi/fPhiPhiBefore" , " Azimuthal angle of V0;#phi;Entries" , HistType::kTH1F , {{720 , 0 , TMath::TwoPi ()}});
198208
@@ -202,12 +212,13 @@ struct CFFillterPPPhi {
202212 registry.add (" TrackCuts/Phi/fPhiPhi" , " Azimuthal angle of V0;#phi;Entries" , HistType::kTH1F , {{720 , 0 , TMath::TwoPi ()}});
203213
204214 // phi daughter
215+ registry.add (" TrackCuts/Phi/PosDaughter/Pt" , " Transverse momentum Pos Daugh tracks;p_{T} (GeV/c);Entries" , HistType::kTH1F , {{1000 , 0 , 10 }});
205216 registry.add (" TrackCuts/Phi/PosDaughter/Eta" , " Phi Pos Daugh Eta;#eta;Entries" , HistType::kTH1F , {{1000 , -2 , 2 }});
206- registry.add (" TrackCuts/Phi/PosDaughter/DCAXY" , " Phi Pos Daugh DCAXY;DCA_{XY};Entries" , HistType::kTH1F , {{1000 , -2 .5f , 2 .5f }});
207- registry.add (" TrackCuts/Phi/PosDaughter/fTPCncls" , " Phi Pos Daugh TPCncls;TPC Clusters;Entries" , HistType::kTH1F , {{163 , -1 .0f , 162 .0f }});
217+ registry.add (" TrackCuts/Phi/PosDaughter/Phi" , " Azimuthal angle of Pos Daugh tracks;#phi;Entries" , HistType::kTH1F , {{720 , 0 , TMath::TwoPi ()}});
218+
219+ registry.add (" TrackCuts/Phi/NegDaughter/Pt" , " Transverse momentum Neg Daugh tracks;p_{T} (GeV/c);Entries" , HistType::kTH1F , {{1000 , 0 , 10 }});
208220 registry.add (" TrackCuts/Phi/NegDaughter/Eta" , " Phi Neg Daugh Eta;#eta;Entries" , HistType::kTH1F , {{1000 , -2 , 2 }});
209- registry.add (" TrackCuts/Phi/NegDaughter/DCAXY" , " Phi Neg Daugh DCAXY;DCA_{XY};Entries" , HistType::kTH1F , {{1000 , -2 .5f , 2 .5f }});
210- registry.add (" TrackCuts/Phi/NegDaughter/fTPCncls" , " Phi Neg Daugh TPCncls;TPC Clusters;Entries" , HistType::kTH1F , {{163 , -1 .0f , 162 .0f }});
221+ registry.add (" TrackCuts/Phi/NegDaughter/Phi" , " Azimuthal angle of Neg Daugh tracks;#phi;Entries" , HistType::kTH1F , {{720 , 0 , TMath::TwoPi ()}});
211222
212223 // triggers
213224 registry.add (" ppphi/fMultiplicity" , " Multiplicity of all triggered events;Mult;Entries" , HistType::kTH1F , {{1000 , 0 , 1000 }});
@@ -236,11 +247,11 @@ struct CFFillterPPPhi {
236247 bool isSelectedTrackProton (T const & track)
237248 {
238249 bool isSelected = false ;
239- if (track.pt () < ConfTrkPtPrUp.value && track.pt () > ConfTrkPtPrDown.value && std::abs (track.eta ()) < ConfTrkEta .value && std::abs (track.dcaXY ()) < ConfTrkDCAxy .value && std::abs (track.dcaZ ()) < ConfTrkDCAz .value && track.tpcNClsCrossedRows () >= ConfNCrossed .value && track.tpcNClsFound () >= ConfNClus .value ) {
240- if (track.tpcInnerParam () < ConfTrkPTPCPrThr.value && std::abs (track.tpcNSigmaPr ()) < ConfTrkPrSigmaPID.value ) {
250+ if (track.pt () <= ConfTrkPtPrUp.value && track.pt () >= ConfTrkPtPrDown.value && std::abs (track.eta ()) <= ConfTrkEtaPr .value && std::abs (track.dcaXY ()) <= ConfTrkDCAxyPr .value && std::abs (track.dcaZ ()) <= ConfTrkDCAzPr .value && track.tpcNClsCrossedRows () >= ConfNCrossedPr .value && track.tpcNClsFound () >= ConfNClusPr. value && track. tpcCrossedRowsOverFindableCls () >= ConfTrkTPCfClsPr .value ) {
251+ if (track.tpcInnerParam () < ConfTrkPTPCPrThr.value && std::abs (track.tpcNSigmaPr ()) <= ConfTrkPrSigmaPID.value ) {
241252 isSelected = true ;
242253 }
243- if (track.tpcInnerParam () >= ConfTrkPTPCPrThr.value && std::abs (std::sqrt (track.tpcNSigmaPr () * track.tpcNSigmaPr () + track.tofNSigmaPr () * track.tofNSigmaPr ())) < ConfTrkPrSigmaPID.value ) {
254+ if (track.tpcInnerParam () >= ConfTrkPTPCPrThr.value && std::abs (std::sqrt (track.tpcNSigmaPr () * track.tpcNSigmaPr () + track.tofNSigmaPr () * track.tofNSigmaPr ())) <= ConfTrkPrSigmaPID.value ) {
244255 isSelected = true ;
245256 }
246257 }
@@ -251,50 +262,22 @@ struct CFFillterPPPhi {
251262 bool isSelectedTrackKaon (T const & track)
252263 {
253264 bool isSelected = false ;
254- if (track.pt () < ConfTrkPtKaUp.value && track.pt () > ConfTrkPtKaDown.value && std::abs (track.eta ()) < ConfTrkEta .value && std::abs (track.dcaXY ()) < ConfTrkDCAxy .value && std::abs (track.dcaZ ()) < ConfTrkDCAz .value && track.tpcNClsCrossedRows () >= ConfNCrossed .value && track.tpcNClsFound () >= ConfNClus .value ) {
255- if (track.tpcInnerParam () < ConfTrkPTPCKaThr.value && std::abs (track.tpcNSigmaKa ()) < ConfTrkKaSigmaPID.value ) {
265+ if (track.pt () <= ConfTrkPtKaUp.value && track.pt () >= ConfTrkPtKaDown.value && std::abs (track.eta ()) <= ConfTrkEtaKa .value && std::abs (track.dcaXY ()) <= ConfTrkDCAxyKa .value && std::abs (track.dcaZ ()) <= ConfTrkDCAzKa .value && track.tpcNClsCrossedRows () >= ConfNCrossedKa .value && track.tpcNClsFound () >= ConfNClusKa. value && track. tpcCrossedRowsOverFindableCls () >= ConfTrkTPCfClsKa .value ) {
266+ if (track.tpcInnerParam () < ConfTrkPTPCKaThr.value && std::abs (track.tpcNSigmaKa ()) <= ConfTrkKaSigmaPID.value ) {
256267 isSelected = true ;
257268 }
258- if (track.tpcInnerParam () >= ConfTrkPTPCKaThr.value && std::abs (std::sqrt (track.tpcNSigmaKa () * track.tpcNSigmaKa () + track.tofNSigmaKa () * track.tofNSigmaKa ())) < ConfTrkKaSigmaPID.value ) {
269+ if (track.tpcInnerParam () >= ConfTrkPTPCKaThr.value && std::abs (std::sqrt (track.tpcNSigmaKa () * track.tpcNSigmaKa () + track.tofNSigmaKa () * track.tofNSigmaKa ())) <= ConfTrkKaSigmaPID.value ) {
259270 isSelected = true ;
260271 }
261272 }
262273 return isSelected;
263274 }
264275
265276 float mMassProton = o2::constants::physics::MassProton;
266- float mMassKaon = o2::constants::physics::MassKPlus;
267- float mMassPhi = o2::constants::physics::MassPhi;
268-
269- // float getInvMass(const ROOT::Math::PtEtaPhiMVector part1,
270- // const ROOT::Math::PtEtaPhiMVector part2)
271- // {
272- // const ROOT::Math::PtEtaPhiMVector trackSum = part1 + part2;
273- // return trackSum.M();
274- // }
275-
276- float CalculateInvMass (const ROOT::Math::PtEtaPhiMVector part1,
277- const ROOT::Math::PtEtaPhiMVector part2)
278- {
279- Double_t invMass = 0 ;
280-
281- float massDP = mMassKaon ;
282- float massDN = mMassKaon ;
277+ float mMassKaonPlus = o2::constants::physics::MassKPlus;
278+ float mMassKaonMinus = o2::constants::physics::MassKMinus;
283279
284- float EDaugP = TMath::Sqrt (
285- massDP * massDP + part1.Px () * part1.Px () + part1.Py () * part1.Py () + part1.Pz () * part1.Pz ());
286- float EDaugN = TMath::Sqrt (
287- massDN * massDN + part2.Px () * part2.Px () + part2.Py () * part2.Py () + part2.Pz () * part2.Pz ());
288-
289- float energysum = EDaugP + EDaugN;
290- float pSum2 = (part2.Px () + part1.Px ()) * (part2.Px () + part1.Px ()) +
291-
292- (part2.Py () + part1.Py ()) * (part2.Py () + part1.Py ()) +
293-
294- (part2.Pz () + part1.Pz ()) * (part2.Pz () + part1.Pz ());
295- invMass = TMath::Sqrt (energysum * energysum - pSum2);
296- return invMass;
297- }
280+ float mMassPhi = o2::constants::physics::MassPhi;
298281
299282 float getkstar (const ROOT::Math::PtEtaPhiMVector part1,
300283 const ROOT::Math::PtEtaPhiMVector part2)
@@ -412,8 +395,9 @@ struct CFFillterPPPhi {
412395 }
413396
414397 if (isSelectedTrackKaon (track)) {
415- ROOT::Math::PtEtaPhiMVector temp (track.pt (), track.eta (), track.phi (), mMassKaon );
398+ ROOT::Math::PtEtaPhiMVector temp (track.pt (), track.eta (), track.phi (), mMassKaonPlus );
416399 if (track.sign () > 0 ) {
400+ temp.SetM (mMassKaonPlus );
417401 kaons.push_back (temp);
418402 registry.fill (HIST (" TrackCuts/Kaon/fPKaon" ), track.p ());
419403 registry.fill (HIST (" TrackCuts/Kaon/fPTPCKaon" ), track.tpcInnerParam ());
@@ -436,6 +420,8 @@ struct CFFillterPPPhi {
436420 // KaonIndex.push_back(track.globalIndex());
437421 }
438422 if (track.sign () < 0 ) {
423+ temp.SetM (mMassKaonMinus );
424+
439425 antikaons.push_back (temp);
440426 registry.fill (HIST (" TrackCuts/AntiKaon/fPAntiKaon" ), track.p ());
441427 registry.fill (HIST (" TrackCuts/AntiKaon/fPTPCAntiKaon" ), track.tpcInnerParam ());
@@ -463,29 +449,31 @@ struct CFFillterPPPhi {
463449
464450 for (const auto & postrack : kaons) {
465451 for (const auto & negtrack : antikaons) {
452+
466453 ROOT::Math::PtEtaPhiMVector temp = postrack + negtrack;
467- temp.SetM (mMassPhi );
454+ // temp.SetM(mMassPhi);
455+ registry.fill (HIST (" TrackCuts/Phi/fInvMassPhiBefore" ), temp.M ());
468456
469- registry.fill (HIST (" TrackCuts/Phi/fInvMassPhiBefore" ), CalculateInvMass (postrack, negtrack));
470457 registry.fill (HIST (" TrackCuts/Phi/fPtPhiBefore" ), temp.pt ());
471458 registry.fill (HIST (" TrackCuts/Phi/fEtaPhiBefore" ), temp.eta ());
472459 registry.fill (HIST (" TrackCuts/Phi/fPhiPhiBefore" ), temp.phi ());
473460
474- if ((CalculateInvMass (postrack, negtrack ) > mMassPhi - InvMassCutWidth .value ) && CalculateInvMass (postrack, negtrack ) < ( mMassPhi + InvMassCutWidth .value )) {
461+ if ((temp. M ( ) >= ConfResoInvMassLowLimit .value ) && (temp. M ( ) <= ConfResoInvMassUpLimit .value )) {
475462 // ROOT::Math::PtEtaPhiMVector temp = postrack + negtrack;
476463 phi.push_back (temp);
477464
478465 registry.fill (HIST (" TrackCuts/Phi/fPtPhi" ), temp.pt ());
479466 registry.fill (HIST (" TrackCuts/Phi/fEtaPhi" ), temp.eta ());
480467 registry.fill (HIST (" TrackCuts/Phi/fPhiPhi" ), temp.phi ());
481- registry.fill (HIST (" TrackCuts/Phi/fInvMassPhi" ), CalculateInvMass (postrack, negtrack ));
468+ registry.fill (HIST (" TrackCuts/Phi/fInvMassPhi" ), temp. M ( ));
482469
470+ registry.fill (HIST (" TrackCuts/Phi/PosDaughter/Pt" ), postrack.pt ());
483471 registry.fill (HIST (" TrackCuts/Phi/PosDaughter/Eta" ), postrack.eta ());
484- // registry.fill(HIST("TrackCuts/Phi/PosDaughter/DCAXY"), postrack.dcaXY());
485- // registry.fill(HIST("TrackCuts/Phi/PosDaughter/fTPCncls"), postrack.tpcNClsFound());
472+ registry.fill (HIST (" TrackCuts/Phi/PosDaughter/Phi" ), postrack.phi ());
473+
474+ registry.fill (HIST (" TrackCuts/Phi/NegDaughter/Pt" ), negtrack.pt ());
486475 registry.fill (HIST (" TrackCuts/Phi/NegDaughter/Eta" ), negtrack.eta ());
487- // registry.fill(HIST("TrackCuts/Phi/NegDaughter/DCAXY"), negtrack.dcaXY());
488- // registry.fill(HIST("TrackCuts/Phi/NegDaughter/fTPCncls"), negtrack.tpcNClsFound());
476+ registry.fill (HIST (" TrackCuts/Phi/NegDaughter/Phi" ), negtrack.phi ());
489477 }
490478 }
491479 }
0 commit comments