@@ -38,7 +38,7 @@ using namespace o2::math_utils::detail;
3838
3939enum LambdaPid { kLambda = 0 ,
4040 kAntiLambda
41- };
41+ };
4242
4343// #define FLOAT_PRECISION 0xFFFFFFF0
4444#define O2_DEFINE_CONFIGURABLE (NAME, TYPE, DEFAULT, HELP ) Configurable<TYPE> NAME{#NAME, DEFAULT, HELP};
@@ -57,51 +57,49 @@ struct Filter2Prong {
5757 O2_DEFINE_CONFIGURABLE (cfgImSigmaFormula, std::string, " (z < 0.5 && abs(x) < 3.0) || (z >= 0.5 && abs(x) < 2.5 && abs(y) < 3.0)" , " pT dependent daughter track sigma pass condition (x = TPC sigma, y = TOF sigma, z = pT)" )
5858
5959 struct : ConfigurableGroup{
60- O2_DEFINE_CONFIGURABLE (tpcNClsCrossedRowsTrackMin, float , 70 , " Minimum number of crossed rows in TPC" )
61- O2_DEFINE_CONFIGURABLE (etaTrackMax, float , 0.8 , " Maximum pseudorapidity" )
62- O2_DEFINE_CONFIGURABLE (ptTrackMin, float , 0.1 , " Minimum transverse momentum" )
63- O2_DEFINE_CONFIGURABLE (minV0DCAPr, float , 0.1 , " Min V0 proton DCA" )
64- O2_DEFINE_CONFIGURABLE (minV0DCAPiLambda, float , 0.1 , " Min V0 pion DCA for lambda" )
65- O2_DEFINE_CONFIGURABLE (minV0DCAPiK0s, float , 0.1 , " Min V0 pion DCA for K0s" )
66- O2_DEFINE_CONFIGURABLE (daughPIDCuts, float , 4.0 , " PID nsigma for V0s" )
67- O2_DEFINE_CONFIGURABLE (massK0Min, float , 0.4 , " Minimum mass for K0" )
68- O2_DEFINE_CONFIGURABLE (massK0Max, float , 0.6 , " Maximum mass for K0" )
69- O2_DEFINE_CONFIGURABLE (massLambdaMin, float , 1.0 , " Minimum mass for lambda" )
70- O2_DEFINE_CONFIGURABLE (massLambdaMax, float , 1.3 , " Maximum mass for lambda" )
71- O2_DEFINE_CONFIGURABLE (radiusMaxLambda, float , 2.3 , " Maximum decay radius (cm) for lambda" )
72- O2_DEFINE_CONFIGURABLE (radiusMinLambda, float , 0.0 , " Minimum decay radius (cm) for lambda" )
73- O2_DEFINE_CONFIGURABLE (radiusMaxK0s, float , 2.3 , " Maximum decay radius (cm) for K0s" )
74- O2_DEFINE_CONFIGURABLE (radiusMinK0s, float , 0.0 , " Minimum decay radius (cm) for K0s" )
75- O2_DEFINE_CONFIGURABLE (cosPaMinLambda, float , 0.98 , " Minimum cosine of pointing angle for lambda" )
76- O2_DEFINE_CONFIGURABLE (cosPaMinK0s, float , 0.98 , " Minimum cosine of pointing angle for K0s" )
77- O2_DEFINE_CONFIGURABLE (dcaV0DaughtersMaxLambda, float , 0.2 , " Maximum DCA among the V0 daughters (cm) for lambda" )
78- O2_DEFINE_CONFIGURABLE (dcaV0DaughtersMaxK0s, float , 0.2 , " Maximum DCA among the V0 daughters (cm) for K0s" )
79- O2_DEFINE_CONFIGURABLE (qtArmenterosMinForK0s, float , 0.12 , " Minimum Armenteros' qt for K0s" )
80- O2_DEFINE_CONFIGURABLE (maxLambdaLifeTime, float , 30 , " Maximum lambda lifetime (in cm)" )
81- O2_DEFINE_CONFIGURABLE (maxK0sLifeTime, float , 30 , " Maximum K0s lifetime (in cm)" )
82- } grpV0;
83-
60+ O2_DEFINE_CONFIGURABLE (tpcNClsCrossedRowsTrackMin, float , 70 , " Minimum number of crossed rows in TPC" )
61+ O2_DEFINE_CONFIGURABLE (etaTrackMax, float , 0.8 , " Maximum pseudorapidity" )
62+ O2_DEFINE_CONFIGURABLE (ptTrackMin, float , 0.1 , " Minimum transverse momentum" )
63+ O2_DEFINE_CONFIGURABLE (minV0DCAPr, float , 0.1 , " Min V0 proton DCA" )
64+ O2_DEFINE_CONFIGURABLE (minV0DCAPiLambda, float , 0.1 , " Min V0 pion DCA for lambda" )
65+ O2_DEFINE_CONFIGURABLE (minV0DCAPiK0s, float , 0.1 , " Min V0 pion DCA for K0s" )
66+ O2_DEFINE_CONFIGURABLE (daughPIDCuts, float , 4.0 , " PID nsigma for V0s" )
67+ O2_DEFINE_CONFIGURABLE (massK0Min, float , 0.4 , " Minimum mass for K0" )
68+ O2_DEFINE_CONFIGURABLE (massK0Max, float , 0.6 , " Maximum mass for K0" )
69+ O2_DEFINE_CONFIGURABLE (massLambdaMin, float , 1.0 , " Minimum mass for lambda" )
70+ O2_DEFINE_CONFIGURABLE (massLambdaMax, float , 1.3 , " Maximum mass for lambda" )
71+ O2_DEFINE_CONFIGURABLE (radiusMaxLambda, float , 2.3 , " Maximum decay radius (cm) for lambda" )
72+ O2_DEFINE_CONFIGURABLE (radiusMinLambda, float , 0.0 , " Minimum decay radius (cm) for lambda" )
73+ O2_DEFINE_CONFIGURABLE (radiusMaxK0s, float , 2.3 , " Maximum decay radius (cm) for K0s" )
74+ O2_DEFINE_CONFIGURABLE (radiusMinK0s, float , 0.0 , " Minimum decay radius (cm) for K0s" )
75+ O2_DEFINE_CONFIGURABLE (cosPaMinLambda, float , 0.98 , " Minimum cosine of pointing angle for lambda" )
76+ O2_DEFINE_CONFIGURABLE (cosPaMinK0s, float , 0.98 , " Minimum cosine of pointing angle for K0s" )
77+ O2_DEFINE_CONFIGURABLE (dcaV0DaughtersMaxLambda, float , 0.2 , " Maximum DCA among the V0 daughters (cm) for lambda" )
78+ O2_DEFINE_CONFIGURABLE (dcaV0DaughtersMaxK0s, float , 0.2 , " Maximum DCA among the V0 daughters (cm) for K0s" )
79+ O2_DEFINE_CONFIGURABLE (qtArmenterosMinForK0s, float , 0.12 , " Minimum Armenteros' qt for K0s" )
80+ O2_DEFINE_CONFIGURABLE (maxLambdaLifeTime, float , 30 , " Maximum lambda lifetime (in cm)" )
81+ O2_DEFINE_CONFIGURABLE (maxK0sLifeTime, float , 30 , " Maximum K0s lifetime (in cm)" )} grpV0;
82+
8483 struct : ConfigurableGroup{
85- O2_DEFINE_CONFIGURABLE (ImMinInvMassPhiMeson, float , 0 .98f , " Minimum invariant mass Phi meson (GeV)" )
86- O2_DEFINE_CONFIGURABLE (ImMaxInvMassPhiMeson, float , 1 .07f , " Maximum invariant mass Phi meson (GeV)" )
87- O2_DEFINE_CONFIGURABLE (ITSPIDSelection, bool , true , " PID ITS" )
88- O2_DEFINE_CONFIGURABLE (ITSPIDPthreshold, float , 1.0 , " Momentum threshold for ITS PID (GeV/c) (only used if ITSPIDSelection is true)" )
89- O2_DEFINE_CONFIGURABLE (lowITSPIDNsigma, float , 3.0 , " lower cut on PID nsigma for ITS" )
90- O2_DEFINE_CONFIGURABLE (highITSPIDNsigma, float , 3.0 , " higher cut on PID nsigma for ITS" )
91- O2_DEFINE_CONFIGURABLE (ITSclusterPhiMeson, int , 5 , " Minimum number of ITS cluster for phi meson track" )
92- O2_DEFINE_CONFIGURABLE (TPCCrossedRowsPhiMeson, int , 80 , " Minimum number of TPC Crossed Rows for phi meson track" )
93- O2_DEFINE_CONFIGURABLE (cutDCAxyPhiMeson, float , 0.1 , " Maximum DCAxy for phi meson track" )
94- O2_DEFINE_CONFIGURABLE (cutDCAzPhiMeson, float , 0.1 , " Maximum DCAz for phi meson track" )
95- O2_DEFINE_CONFIGURABLE (cutEtaPhiMeson, float , 0.8 , " Maximum eta for phi meson track" )
96- O2_DEFINE_CONFIGURABLE (cutPTPhiMeson, float , 0.15 , " Maximum pt for phi meson track" )
97- O2_DEFINE_CONFIGURABLE (isDeepAngle, bool , true , " Flag for applying deep angle" )
98- O2_DEFINE_CONFIGURABLE (deepAngle, float , 0.04 , " Deep angle cut" )
99- O2_DEFINE_CONFIGURABLE (nsigmaCutTPC, float , 2.5 , " nsigma tpc" )
100- O2_DEFINE_CONFIGURABLE (nsigmaCutTOF, float , 2.5 , " nsigma tof" )
101- O2_DEFINE_CONFIGURABLE (cutTOFBeta, float , 0.5 , " TOF beta" )
102- O2_DEFINE_CONFIGURABLE (confFakeKaonCut, float , 0.15 , " Cut based on track from momentum difference" )
103- O2_DEFINE_CONFIGURABLE (removefaketrack, bool , true , " Flag to remove fake kaon" )
104- } grpPhi;
84+ O2_DEFINE_CONFIGURABLE (ImMinInvMassPhiMeson, float , 0 .98f , " Minimum invariant mass Phi meson (GeV)" )
85+ O2_DEFINE_CONFIGURABLE (ImMaxInvMassPhiMeson, float , 1 .07f , " Maximum invariant mass Phi meson (GeV)" )
86+ O2_DEFINE_CONFIGURABLE (ITSPIDSelection, bool , true , " PID ITS" )
87+ O2_DEFINE_CONFIGURABLE (ITSPIDPthreshold, float , 1.0 , " Momentum threshold for ITS PID (GeV/c) (only used if ITSPIDSelection is true)" )
88+ O2_DEFINE_CONFIGURABLE (lowITSPIDNsigma, float , 3.0 , " lower cut on PID nsigma for ITS" )
89+ O2_DEFINE_CONFIGURABLE (highITSPIDNsigma, float , 3.0 , " higher cut on PID nsigma for ITS" )
90+ O2_DEFINE_CONFIGURABLE (ITSclusterPhiMeson, int , 5 , " Minimum number of ITS cluster for phi meson track" )
91+ O2_DEFINE_CONFIGURABLE (TPCCrossedRowsPhiMeson, int , 80 , " Minimum number of TPC Crossed Rows for phi meson track" )
92+ O2_DEFINE_CONFIGURABLE (cutDCAxyPhiMeson, float , 0.1 , " Maximum DCAxy for phi meson track" )
93+ O2_DEFINE_CONFIGURABLE (cutDCAzPhiMeson, float , 0.1 , " Maximum DCAz for phi meson track" )
94+ O2_DEFINE_CONFIGURABLE (cutEtaPhiMeson, float , 0.8 , " Maximum eta for phi meson track" )
95+ O2_DEFINE_CONFIGURABLE (cutPTPhiMeson, float , 0.15 , " Maximum pt for phi meson track" )
96+ O2_DEFINE_CONFIGURABLE (isDeepAngle, bool , true , " Flag for applying deep angle" )
97+ O2_DEFINE_CONFIGURABLE (deepAngle, float , 0.04 , " Deep angle cut" )
98+ O2_DEFINE_CONFIGURABLE (nsigmaCutTPC, float , 2.5 , " nsigma tpc" )
99+ O2_DEFINE_CONFIGURABLE (nsigmaCutTOF, float , 2.5 , " nsigma tof" )
100+ O2_DEFINE_CONFIGURABLE (cutTOFBeta, float , 0.5 , " TOF beta" )
101+ O2_DEFINE_CONFIGURABLE (confFakeKaonCut, float , 0.15 , " Cut based on track from momentum difference" )
102+ O2_DEFINE_CONFIGURABLE (removefaketrack, bool , true , " Flag to remove fake kaon" )} grpPhi;
105103
106104 HfHelper hfHelper;
107105 Produces<aod::CF2ProngTracks> output2ProngTracks;
@@ -322,13 +320,12 @@ struct Filter2Prong {
322320 if (pid == LambdaPid::kAntiLambda && (TMath::Abs (v0.dcapostopv ()) < grpV0.minV0DCAPiLambda || TMath::Abs (v0.dcanegtopv ()) < grpV0.minV0DCAPr )) {
323321 return false ;
324322 }
325- if (pid == LambdaPid::kLambda && ((std::abs (posTrack.tpcNSigmaPr ()) > grpV0.daughPIDCuts ) || (std::abs (negTrack.tpcNSigmaPi ()) > grpV0.daughPIDCuts )))
326- {
327- return false ;
328- }
323+ if (pid == LambdaPid::kLambda && ((std::abs (posTrack.tpcNSigmaPr ()) > grpV0.daughPIDCuts ) || (std::abs (negTrack.tpcNSigmaPi ()) > grpV0.daughPIDCuts ))) {
324+ return false ;
325+ }
329326 if (pid == LambdaPid::kAntiLambda && ((std::abs (posTrack.tpcNSigmaPi ()) > grpV0.daughPIDCuts ) || (std::abs (negTrack.tpcNSigmaPr ()) > grpV0.daughPIDCuts ))) {
330- return false ;
331- }
327+ return false ;
328+ }
332329 if (std::abs (CtauLambda) > grpV0.maxLambdaLifeTime ) {
333330 return false ;
334331 }
@@ -516,7 +513,7 @@ struct Filter2Prong {
516513 }
517514 float phi = RecoDecay::constrainAngle (s.Phi (), 0 .0f );
518515 output2ProngTracks (cfcollisions.begin ().globalIndex (),
519- cftrack1.globalIndex (), cftrack2.globalIndex (), s.pt (), s.eta (), phi, s.M (), aod::cf2prongtrack::PhiToKK);
516+ cftrack1.globalIndex (), cftrack2.globalIndex (), s.pt (), s.eta (), phi, s.M (), aod::cf2prongtrack::PhiToKK);
520517 } // end of loop over second track
521518 } // end of loop over first track
522519 }
0 commit comments