@@ -194,6 +194,8 @@ struct TrHeAnalysis {
194194 Configurable<bool> cfgTPCPidMethod{"cfgTPCPidMethod", false, "Using own or built in bethe parametrization"}; // false for built in
195195 Configurable<int> cfgMassMethod{"cfgMassMethod", 0, "0: Using built in 1: mass calculated with beta 2: mass calculated with the event time"};
196196 Configurable<bool> cfgEnableItsClusterSizeCut{"cfgEnableItsClusterSizeCut", false, "Enable ITS cluster size cut"};
197+ Configurable<bool> cfgEnableTofMassCut{"cfgEnableTofMassCut", false, "Enable TOF mass cut"};
198+ Configurable<float> cfgTofMassCutPt{"cfgTofMassCutPt", 1.6f, "Pt value for which the TOF-cut starts to be used"};
197199 // Set the multiplity event limits
198200 Configurable<float> cfgLowMultCut{"cfgLowMultCut", 0.0f, "Accepted multiplicity percentage lower limit"};
199201 Configurable<float> cfgHighMultCut{"cfgHighMultCut", 100.0f, "Accepted multiplicity percentage higher limit"};
@@ -219,8 +221,11 @@ struct TrHeAnalysis {
219221 Configurable<float> cfgCutMinItsClusterSizeHe{"cfgCutMinItsClusterSizeHe", 1.f, "Minimum ITS Cluster Size for He"};
220222 Configurable<float> cfgCutMaxItsClusterSizeH3{"cfgCutMaxItsClusterSizeH3", 4.f, "Maximum ITS Cluster Size for Tr"};
221223 Configurable<float> cfgCutMinItsClusterSizeH3{"cfgCutMinItsClusterSizeH3", 1.f, "Minimum ITS Cluster Size for Tr"};
222- Configurable<float> cfgCutMinTofMassH3{"cfgCutMinTofMassH3", 2.24f, "Minimum Tof mass H3"};
223- Configurable<float> cfgCutMaxTofMassH3{"cfgCutMaxTofMassH3", 3.32f, "Maximum TOF mass H3"};
224+ Configurable<float> cfgCutMinTofMassH3{"cfgCutMinTofMassH3", 5.f, "Minimum Tof mass H3"};
225+ Configurable<float> cfgCutMaxTofMassH3{"cfgCutMaxTofMassH3", 11.f, "Maximum TOF mass H3"};
226+ Configurable<float> cfgMaxRigidity{"cfgMaxRigidity", 10.f, "Maximum rigidity value"};
227+ Configurable<float> cfgMaxPt{"cfgMaxPt", 10.f, "Maximum pT value"};
228+
224229 // Set the kinematic and PID cuts for tracks
225230 struct : ConfigurableGroup {
226231 Configurable<float> pCut{"pCut", 0.6f, "Value of the p selection for spectra (default 0.3)"};
@@ -345,6 +350,9 @@ struct TrHeAnalysis {
345350 histos.fill(HIST("histogram/cuts"), 2);
346351 continue;
347352 }
353+ if (track.pt() > cfgMaxPt || getRigidity(track) > cfgMaxRigidity) {
354+ continue;
355+ }
348356 if (track.tpcNClsFound() < cfgCutTpcClusters) {
349357 histos.fill(HIST("histogram/cuts"), 3);
350358 continue;
@@ -399,9 +407,11 @@ struct TrHeAnalysis {
399407 continue;
400408 }
401409 }
402- if (getMass(track) < cfgCutMinTofMassH3 || getMass(track) > cfgCutMaxTofMassH3) {
403- histos.fill(HIST("histogram/cuts"), 13);
404- continue;
410+ if (cfgEnableTofMassCut && track.pt() > cfgTofMassCutPt) {
411+ if (getMass(track) < cfgCutMinTofMassH3 || getMass(track) > cfgCutMaxTofMassH3) {
412+ histos.fill(HIST("histogram/cuts"), 13);
413+ continue;
414+ }
405415 }
406416 histos.fill(HIST("histogram/H3/H3-TPCsignVsTPCmomentum"),
407417 getRigidity(track) * track.sign(),
@@ -510,6 +520,9 @@ struct TrHeAnalysis {
510520 histos.fill(HIST("histogram/cuts"), 2);
511521 continue;
512522 }
523+ if (track.pt() > cfgMaxPt || getRigidity(track) > cfgMaxRigidity) {
524+ continue;
525+ }
513526 if (track.tpcNClsFound() < cfgCutTpcClusters) {
514527 histos.fill(HIST("histogram/cuts"), 3);
515528 continue;
@@ -562,9 +575,11 @@ struct TrHeAnalysis {
562575 continue;
563576 }
564577 }
565- if (getMass(track) < cfgCutMinTofMassH3 || getMass(track) > cfgCutMaxTofMassH3) {
566- histos.fill(HIST("histogram/cuts"), 13);
567- continue;
578+ if (cfgEnableTofMassCut && track.pt() > cfgTofMassCutPt) {
579+ if (getMass(track) < cfgCutMinTofMassH3 || getMass(track) > cfgCutMaxTofMassH3) {
580+ histos.fill(HIST("histogram/cuts"), 13);
581+ continue;
582+ }
568583 }
569584 histos.fill(HIST("histogram/H3/H3-TPCsignVsTPCmomentum"),
570585 getRigidity(track) * (1.f * track.sign()),
@@ -709,14 +724,15 @@ struct TrHeAnalysis {
709724 float getMass(const T& track)
710725 {
711726 if (cfgMassMethod == 0) {
712- return track.mass();
727+ float m = track.mass();
728+ return m * m;
713729 }
714730 if (cfgMassMethod == 1) {
715731 const float beta = track.beta();
716732 const float rigidity = getRigidity(track);
717- float gamma = 1 / std::sqrt(1 - beta * beta);
718- float mass = ( rigidity / std::sqrt(gamma * gamma - 1.f) );
719- return mass;
733+ float gamma = 1.f / std::sqrt(1.f - beta * beta);
734+ float mass = rigidity / std::sqrt(gamma * gamma - 1.f);
735+ return mass * mass ;
720736 }
721737 if (cfgMassMethod == 2) {
722738 const float rigidity = getRigidity(track);
@@ -727,9 +743,9 @@ struct TrHeAnalysis {
727743 float time = tofTime - tofStartTime;
728744 if (time > 0.f && length > 0.f) {
729745 float beta = length / (CInCmPs * time);
730- float gamma = 1 / std::sqrt(1 - beta * beta);
746+ float gamma = 1.f / std::sqrt(1.f - beta * beta);
731747 float mass = rigidity / std::sqrt(gamma * gamma - 1.f);
732- return mass;
748+ return mass * mass ;
733749 }
734750 return -1.f;
735751 }
0 commit comments