@@ -119,13 +119,28 @@ struct FlowTask {
119119 Configurable<std::vector<double >> cfgMultT0CCutPars{" cfgMultT0CCutPars" , std::vector<double >{143.04 , -4.58368 , 0.0766055 , -0.000727796 , 2.86153e-06 , 23.3108 , -0.36304 , 0.00437706 , -4.717e-05 , 1.98332e-07 }, " Global multiplicity vs T0C centrality cut parameter values" };
120120 O2_DEFINE_CONFIGURABLE (cfgMultPVT0CCutEnabled, bool , false , " Enable PV multiplicity vs T0C centrality cut" )
121121 Configurable<std::vector<double >> cfgMultPVT0CCutPars{" cfgMultPVT0CCutPars" , std::vector<double >{195.357 , -6.15194 , 0.101313 , -0.000955828 , 3.74793e-06 , 30.0326 , -0.43322 , 0.00476265 , -5.11206e-05 , 2.13613e-07 }, " PV multiplicity vs T0C centrality cut parameter values" };
122- O2_DEFINE_CONFIGURABLE (cfgMultMultHighCutFunction , std::string, " [0]+[1]*x + 5.*([2]+[3]*x)" , " Functional for multiplicity correlation cut" );
123- O2_DEFINE_CONFIGURABLE (cfgMultMultLowCutFunction , std::string, " [0]+[1]*x - 5.*([2]+[3]*x)" , " Functional for multiplicity correlation cut" );
122+ O2_DEFINE_CONFIGURABLE (cfgMultMultPVHighCutFunction , std::string, " [0]+[1]*x + 5.*([2]+[3]*x)" , " Functional for multiplicity correlation cut" );
123+ O2_DEFINE_CONFIGURABLE (cfgMultMultPVLowCutFunction , std::string, " [0]+[1]*x - 5.*([2]+[3]*x)" , " Functional for multiplicity correlation cut" );
124124 O2_DEFINE_CONFIGURABLE (cfgMultGlobalPVCutEnabled, bool , false , " Enable global multiplicity vs PV multiplicity cut" )
125125 Configurable<std::vector<double >> cfgMultGlobalPVCutPars{" cfgMultGlobalPVCutPars" , std::vector<double >{-0.140809 , 0.734344 , 2.77495 , 0.0165935 }, " PV multiplicity vs T0C centrality cut parameter values" };
126+ O2_DEFINE_CONFIGURABLE (cfgMultMultV0AHighCutFunction, std::string, " [0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x + 4.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)" , " Functional for multiplicity correlation cut" );
127+ O2_DEFINE_CONFIGURABLE (cfgMultMultV0ALowCutFunction, std::string, " [0] + [1]*x + [2]*x*x + [3]*x*x*x + [4]*x*x*x*x - 3.*([5] + [6]*x + [7]*x*x + [8]*x*x*x + [9]*x*x*x*x)" , " Functional for multiplicity correlation cut" );
128+ O2_DEFINE_CONFIGURABLE (cfgMultMultV0ACutEnabled, bool , false , " Enable global multiplicity vs V0A multiplicity cut" )
129+ Configurable<std::vector<double >> cfgMultMultV0ACutPars{" cfgMultMultV0ACutPars" , std::vector<double >{534.893 , 184.344 , 0.423539 , -0.00331436 , 5.34622e-06 , 871.239 , 53.3735 , -0.203528 , 0.000122758 , 5.41027e-07 }, " Global multiplicity vs V0A multiplicity cut parameter values" };
126130 std::vector<double > multT0CCutPars;
127131 std::vector<double > multPVT0CCutPars;
128132 std::vector<double > multGlobalPVCutPars;
133+ std::vector<double > multMultV0ACutPars;
134+ TF1* fMultPVT0CCutLow = nullptr ;
135+ TF1* fMultPVT0CCutHigh = nullptr ;
136+ TF1* fMultT0CCutLow = nullptr ;
137+ TF1* fMultT0CCutHigh = nullptr ;
138+ TF1* fMultGlobalPVCutLow = nullptr ;
139+ TF1* fMultGlobalPVCutHigh = nullptr ;
140+ TF1* fMultMultV0ACutLow = nullptr ;
141+ TF1* fMultMultV0ACutHigh = nullptr ;
142+ TF1* fT0AV0AMean = nullptr ;
143+ TF1* fT0AV0ASigma = nullptr ;
129144 } cfgFuncParas;
130145
131146 ConfigurableAxis axisPtHist{" axisPtHist" , {100 , 0 ., 10 .}, " pt axis for histograms" };
@@ -198,16 +213,6 @@ struct FlowTask {
198213 TF1* funcV3;
199214 TF1* funcV4;
200215
201- // Additional Event selection cuts - Copy from flowGenericFramework.cxx
202- TF1* fMultPVT0CCutLow = nullptr ;
203- TF1* fMultPVT0CCutHigh = nullptr ;
204- TF1* fMultT0CCutLow = nullptr ;
205- TF1* fMultT0CCutHigh = nullptr ;
206- TF1* fMultGlobalPVCutLow = nullptr ;
207- TF1* fMultGlobalPVCutHigh = nullptr ;
208- TF1* fT0AV0AMean = nullptr ;
209- TF1* fT0AV0ASigma = nullptr ;
210-
211216 void init (InitContext const &)
212217 {
213218 const AxisSpec axisVertex{40 , -20 , 20 , " Vtxz (cm)" };
@@ -469,25 +474,31 @@ struct FlowTask {
469474 cfgFuncParas.multT0CCutPars = cfgFuncParas.cfgMultT0CCutPars ;
470475 cfgFuncParas.multPVT0CCutPars = cfgFuncParas.cfgMultPVT0CCutPars ;
471476 cfgFuncParas.multGlobalPVCutPars = cfgFuncParas.cfgMultGlobalPVCutPars ;
472- fMultPVT0CCutLow = new TF1 (" fMultPVT0CCutLow" , cfgFuncParas.cfgMultCentLowCutFunction ->c_str (), 0 , 100 );
473- fMultPVT0CCutLow ->SetParameters (&(cfgFuncParas.multPVT0CCutPars [0 ]));
474- fMultPVT0CCutHigh = new TF1 (" fMultPVT0CCutHigh" , cfgFuncParas.cfgMultCentHighCutFunction ->c_str (), 0 , 100 );
475- fMultPVT0CCutHigh ->SetParameters (&(cfgFuncParas.multPVT0CCutPars [0 ]));
477+ cfgFuncParas.multMultV0ACutPars = cfgFuncParas.cfgMultMultV0ACutPars ;
478+ cfgFuncParas.fMultPVT0CCutLow = new TF1 (" fMultPVT0CCutLow" , cfgFuncParas.cfgMultCentLowCutFunction ->c_str (), 0 , 100 );
479+ cfgFuncParas.fMultPVT0CCutLow ->SetParameters (&(cfgFuncParas.multPVT0CCutPars [0 ]));
480+ cfgFuncParas.fMultPVT0CCutHigh = new TF1 (" fMultPVT0CCutHigh" , cfgFuncParas.cfgMultCentHighCutFunction ->c_str (), 0 , 100 );
481+ cfgFuncParas.fMultPVT0CCutHigh ->SetParameters (&(cfgFuncParas.multPVT0CCutPars [0 ]));
482+
483+ cfgFuncParas.fMultT0CCutLow = new TF1 (" fMultT0CCutLow" , cfgFuncParas.cfgMultCentLowCutFunction ->c_str (), 0 , 100 );
484+ cfgFuncParas.fMultT0CCutLow ->SetParameters (&(cfgFuncParas.multT0CCutPars [0 ]));
485+ cfgFuncParas.fMultT0CCutHigh = new TF1 (" fMultT0CCutHigh" , cfgFuncParas.cfgMultCentHighCutFunction ->c_str (), 0 , 100 );
486+ cfgFuncParas.fMultT0CCutHigh ->SetParameters (&(cfgFuncParas.multT0CCutPars [0 ]));
476487
477- fMultT0CCutLow = new TF1 (" fMultT0CCutLow " , cfgFuncParas.cfgMultCentLowCutFunction ->c_str (), 0 , 100 );
478- fMultT0CCutLow ->SetParameters (&(cfgFuncParas.multT0CCutPars [0 ]));
479- fMultT0CCutHigh = new TF1 (" fMultT0CCutHigh " , cfgFuncParas.cfgMultCentHighCutFunction ->c_str (), 0 , 100 );
480- fMultT0CCutHigh ->SetParameters (&(cfgFuncParas.multT0CCutPars [0 ]));
488+ cfgFuncParas. fMultGlobalPVCutLow = new TF1 (" fMultGlobalPVCutLow " , cfgFuncParas.cfgMultMultPVLowCutFunction ->c_str (), 0 , 4000 );
489+ cfgFuncParas. fMultGlobalPVCutLow ->SetParameters (&(cfgFuncParas.multGlobalPVCutPars [0 ]));
490+ cfgFuncParas. fMultGlobalPVCutHigh = new TF1 (" fMultGlobalPVCutHigh " , cfgFuncParas.cfgMultMultPVHighCutFunction ->c_str (), 0 , 4000 );
491+ cfgFuncParas. fMultGlobalPVCutHigh ->SetParameters (&(cfgFuncParas.multGlobalPVCutPars [0 ]));
481492
482- fMultGlobalPVCutLow = new TF1 (" fMultGlobalPVCutLow " , cfgFuncParas.cfgMultMultLowCutFunction ->c_str (), 0 , 4000 );
483- fMultGlobalPVCutLow ->SetParameters (&(cfgFuncParas.multGlobalPVCutPars [0 ]));
484- fMultGlobalPVCutHigh = new TF1 (" fMultGlobalPVCutHigh " , cfgFuncParas.cfgMultMultHighCutFunction ->c_str (), 0 , 4000 );
485- fMultGlobalPVCutHigh ->SetParameters (&(cfgFuncParas.multGlobalPVCutPars [0 ]));
493+ cfgFuncParas. fMultMultV0ACutLow = new TF1 (" fMultMultV0ACutLow " , cfgFuncParas.cfgMultMultV0ALowCutFunction ->c_str (), 0 , 4000 );
494+ cfgFuncParas. fMultMultV0ACutLow ->SetParameters (&(cfgFuncParas.multMultV0ACutPars [0 ]));
495+ cfgFuncParas. fMultMultV0ACutHigh = new TF1 (" fMultMultV0ACutHigh " , cfgFuncParas.cfgMultMultV0AHighCutFunction ->c_str (), 0 , 4000 );
496+ cfgFuncParas. fMultMultV0ACutHigh ->SetParameters (&(cfgFuncParas.multMultV0ACutPars [0 ]));
486497
487- fT0AV0AMean = new TF1 (" fT0AV0AMean" , " [0]+[1]*x" , 0 , 200000 );
488- fT0AV0AMean ->SetParameters (-1601.0581 , 9.417652e-01 );
489- fT0AV0ASigma = new TF1 (" fT0AV0ASigma" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x" , 0 , 200000 );
490- fT0AV0ASigma ->SetParameters (463.4144 , 6.796509e-02 , -9.097136e-07 , 7.971088e-12 , -2.600581e-17 );
498+ cfgFuncParas. fT0AV0AMean = new TF1 (" fT0AV0AMean" , " [0]+[1]*x" , 0 , 200000 );
499+ cfgFuncParas. fT0AV0AMean ->SetParameters (-1601.0581 , 9.417652e-01 );
500+ cfgFuncParas. fT0AV0ASigma = new TF1 (" fT0AV0ASigma" , " [0]+[1]*x+[2]*x*x+[3]*x*x*x+[4]*x*x*x*x" , 0 , 200000 );
501+ cfgFuncParas. fT0AV0ASigma ->SetParameters (463.4144 , 6.796509e-02 , -9.097136e-07 , 7.971088e-12 , -2.600581e-17 );
491502 }
492503
493504 if (cfgTrackDensityCorrUse) {
@@ -682,21 +693,27 @@ struct FlowTask {
682693
683694 if (cfgEvSelMultCorrelation) {
684695 if (cfgFuncParas.cfgMultPVT0CCutEnabled ) {
685- if (multNTracksPV < fMultPVT0CCutLow ->Eval (centrality))
696+ if (multNTracksPV < cfgFuncParas. fMultPVT0CCutLow ->Eval (centrality))
686697 return 0 ;
687- if (multNTracksPV > fMultPVT0CCutHigh ->Eval (centrality))
698+ if (multNTracksPV > cfgFuncParas. fMultPVT0CCutHigh ->Eval (centrality))
688699 return 0 ;
689700 }
690701 if (cfgFuncParas.cfgMultT0CCutEnabled ) {
691- if (multTrk < fMultT0CCutLow ->Eval (centrality))
702+ if (multTrk < cfgFuncParas. fMultT0CCutLow ->Eval (centrality))
692703 return 0 ;
693- if (multTrk > fMultT0CCutHigh ->Eval (centrality))
704+ if (multTrk > cfgFuncParas. fMultT0CCutHigh ->Eval (centrality))
694705 return 0 ;
695706 }
696707 if (cfgFuncParas.cfgMultGlobalPVCutEnabled ) {
697- if (multTrk < fMultGlobalPVCutLow ->Eval (multNTracksPV))
708+ if (multTrk < cfgFuncParas.fMultGlobalPVCutLow ->Eval (multNTracksPV))
709+ return 0 ;
710+ if (multTrk > cfgFuncParas.fMultGlobalPVCutHigh ->Eval (multNTracksPV))
711+ return 0 ;
712+ }
713+ if (cfgFuncParas.cfgMultMultV0ACutEnabled ) {
714+ if (collision.multFV0A () < cfgFuncParas.fMultMultV0ACutLow ->Eval (multTrk))
698715 return 0 ;
699- if (multTrk > fMultGlobalPVCutHigh ->Eval (multNTracksPV ))
716+ if (collision. multFV0A () > cfgFuncParas. fMultMultV0ACutHigh ->Eval (multTrk ))
700717 return 0 ;
701718 }
702719 }
@@ -705,7 +722,7 @@ struct FlowTask {
705722
706723 // V0A T0A 5 sigma cut
707724 float sigma = 5.0 ;
708- if (cfgEvSelV0AT0ACut && (std::fabs (collision.multFV0A () - fT0AV0AMean ->Eval (collision.multFT0A ())) > sigma * fT0AV0ASigma ->Eval (collision.multFT0A ())))
725+ if (cfgEvSelV0AT0ACut && (std::fabs (collision.multFV0A () - cfgFuncParas. fT0AV0AMean ->Eval (collision.multFT0A ())) > sigma * cfgFuncParas. fT0AV0ASigma ->Eval (collision.multFT0A ())))
709726 return 0 ;
710727 if (cfgEvSelV0AT0ACut)
711728 registry.fill (HIST (" hEventCountSpecific" ), 11.5 );
0 commit comments