@@ -89,35 +89,39 @@ struct spvector {
8989 Configurable<float > cfgCutVertex{" cfgCutVertex" , 10 .0f , " Accepted z-vertex range" };
9090 Configurable<float > cfgCutCentralityMax{" cfgCutCentralityMax" , 80 .0f , " Centrality cut Max" };
9191 Configurable<float > cfgCutCentralityMin{" cfgCutCentralityMin" , 0 .0f , " Centrality cut Min" };
92+ Configurable<bool > additionalEvSel{" additionalEvSel" , false , " additionalEvSel" };
93+
94+ struct : ConfigurableGroup {
95+ Configurable<int > QxyNbins{" QxyNbins" , 100 , " Number of bins in QxQy histograms" };
96+ Configurable<int > PhiNbins{" PhiNbins" , 100 , " Number of bins in phi histogram" };
97+ Configurable<float > lbinQxy{" lbinQxy" , -5.0 , " lower bin value in QxQy histograms" };
98+ Configurable<float > hbinQxy{" hbinQxy" , 5.0 , " higher bin value in QxQy histograms" };
99+ Configurable<int > VxNbins{" VxNbins" , 25 , " Number of bins in Vx histograms" };
100+ Configurable<float > lbinVx{" lbinVx" , -0.05 , " lower bin value in Vx histograms" };
101+ Configurable<float > hbinVx{" hbinVx" , 0.0 , " higher bin value in Vx histograms" };
102+ Configurable<int > VyNbins{" VyNbins" , 25 , " Number of bins in Vy histograms" };
103+ Configurable<float > lbinVy{" lbinVy" , -0.02 , " lower bin value in Vy histograms" };
104+ Configurable<float > hbinVy{" hbinVy" , 0.02 , " higher bin value in Vy histograms" };
105+ Configurable<int > VzNbins{" VzNbins" , 20 , " Number of bins in Vz histograms" };
106+ Configurable<float > lbinVz{" lbinVz" , -10.0 , " lower bin value in Vz histograms" };
107+ Configurable<float > hbinVz{" hbinVz" , 10.0 , " higher bin value in Vz histograms" };
108+ Configurable<int > CentNbins{" CentNbins" , 16 , " Number of bins in cent histograms" };
109+ Configurable<float > lbinCent{" lbinCent" , 0.0 , " lower bin value in cent histograms" };
110+ Configurable<float > hbinCent{" hbinCent" , 80.0 , " higher bin value in cent histograms" };
111+ Configurable<int > VxfineNbins{" VxfineNbins" , 25 , " Number of bins in Vx fine histograms" };
112+ Configurable<float > lfinebinVx{" lfinebinVx" , -0.05 , " lower bin value in Vx fine histograms" };
113+ Configurable<float > hfinebinVx{" hfinebinVx" , 0.0 , " higher bin value in Vx fine histograms" };
114+ Configurable<int > VyfineNbins{" VyfineNbins" , 25 , " Number of bins in Vy fine histograms" };
115+ Configurable<float > lfinebinVy{" lfinebinVy" , -0.02 , " lower bin value in Vy fine histograms" };
116+ Configurable<float > hfinebinVy{" hfinebinVy" , 0.02 , " higher bin value in Vy fine histograms" };
117+ Configurable<int > VzfineNbins{" VzfineNbins" , 20 , " Number of bins in Vz fine histograms" };
118+ Configurable<float > lfinebinVz{" lfinebinVz" , -10.0 , " lower bin value in Vz fine histograms" };
119+ Configurable<float > hfinebinVz{" hfinebinVz" , 10.0 , " higher bin value in Vz fine histograms" };
120+ Configurable<int > CentfineNbins{" CentfineNbins" , 16 , " Number of bins in cent fine histograms" };
121+ Configurable<float > lfinebinCent{" lfinebinCent" , 0.0 , " lower bin value in cent fine histograms" };
122+ Configurable<float > hfinebinCent{" hfinebinCent" , 80.0 , " higher bin value in cent fine histograms" };
123+ } configbins;
92124
93- Configurable<int > QxyNbins{" QxyNbins" , 100 , " Number of bins in QxQy histograms" };
94- Configurable<int > PhiNbins{" PhiNbins" , 100 , " Number of bins in phi histogram" };
95- Configurable<float > lbinQxy{" lbinQxy" , -5.0 , " lower bin value in QxQy histograms" };
96- Configurable<float > hbinQxy{" hbinQxy" , 5.0 , " higher bin value in QxQy histograms" };
97- Configurable<int > VxNbins{" VxNbins" , 25 , " Number of bins in Vx histograms" };
98- Configurable<float > lbinVx{" lbinVx" , -0.05 , " lower bin value in Vx histograms" };
99- Configurable<float > hbinVx{" hbinVx" , 0.0 , " higher bin value in Vx histograms" };
100- Configurable<int > VyNbins{" VyNbins" , 25 , " Number of bins in Vy histograms" };
101- Configurable<float > lbinVy{" lbinVy" , -0.02 , " lower bin value in Vy histograms" };
102- Configurable<float > hbinVy{" hbinVy" , 0.02 , " higher bin value in Vy histograms" };
103- Configurable<int > VzNbins{" VzNbins" , 20 , " Number of bins in Vz histograms" };
104- Configurable<float > lbinVz{" lbinVz" , -10.0 , " lower bin value in Vz histograms" };
105- Configurable<float > hbinVz{" hbinVz" , 10.0 , " higher bin value in Vz histograms" };
106- Configurable<int > CentNbins{" CentNbins" , 16 , " Number of bins in cent histograms" };
107- Configurable<float > lbinCent{" lbinCent" , 0.0 , " lower bin value in cent histograms" };
108- Configurable<float > hbinCent{" hbinCent" , 80.0 , " higher bin value in cent histograms" };
109- Configurable<int > VxfineNbins{" VxfineNbins" , 25 , " Number of bins in Vx fine histograms" };
110- Configurable<float > lfinebinVx{" lfinebinVx" , -0.05 , " lower bin value in Vx fine histograms" };
111- Configurable<float > hfinebinVx{" hfinebinVx" , 0.0 , " higher bin value in Vx fine histograms" };
112- Configurable<int > VyfineNbins{" VyfineNbins" , 25 , " Number of bins in Vy fine histograms" };
113- Configurable<float > lfinebinVy{" lfinebinVy" , -0.02 , " lower bin value in Vy fine histograms" };
114- Configurable<float > hfinebinVy{" hfinebinVy" , 0.02 , " higher bin value in Vy fine histograms" };
115- Configurable<int > VzfineNbins{" VzfineNbins" , 20 , " Number of bins in Vz fine histograms" };
116- Configurable<float > lfinebinVz{" lfinebinVz" , -10.0 , " lower bin value in Vz fine histograms" };
117- Configurable<float > hfinebinVz{" hfinebinVz" , 10.0 , " higher bin value in Vz fine histograms" };
118- Configurable<int > CentfineNbins{" CentfineNbins" , 16 , " Number of bins in cent fine histograms" };
119- Configurable<float > lfinebinCent{" lfinebinCent" , 0.0 , " lower bin value in cent fine histograms" };
120- Configurable<float > hfinebinCent{" hfinebinCent" , 80.0 , " higher bin value in cent fine histograms" };
121125 Configurable<bool > useShift{" useShift" , false , " shift histograms" };
122126 Configurable<bool > ispolarization{" ispolarization" , false , " Flag to check polarization" };
123127 Configurable<bool > followpub{" followpub" , true , " flag to use alphaZDC" };
@@ -134,6 +138,7 @@ struct spvector {
134138 Configurable<bool > coarse5{" coarse5" , false , " RE5" };
135139 Configurable<bool > fine5{" fine5" , false , " REfine5" };
136140 Configurable<bool > coarse6{" coarse6" , false , " RE6" };
141+ Configurable<bool > fine6{" fine6" , false , " REfine6" };
137142 Configurable<bool > useRecentereSp{" useRecentereSp" , false , " use Recentering with Sparse or THn" };
138143 Configurable<bool > useRecenterefineSp{" useRecenterefineSp" , false , " use fine Recentering with THn" };
139144 Configurable<std::string> ConfGainPath{" ConfGainPath" , " Users/p/prottay/My/Object/NewPbPbpass4_10092024/gaincallib" , " Path to gain calibration" };
@@ -164,6 +169,10 @@ struct spvector {
164169 Configurable<std::string> ConfRecenterevxSp5{" ConfRecenterevxSp5" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vx recentere5" };
165170 Configurable<std::string> ConfRecenterevySp5{" ConfRecenterevySp5" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vy recentere5" };
166171 Configurable<std::string> ConfRecenterevzSp5{" ConfRecenterevzSp5" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vz recentere5" };
172+ Configurable<std::string> ConfRecenterecentSp6{" ConfRecenterecentSp6" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for cent recentere6" };
173+ Configurable<std::string> ConfRecenterevxSp6{" ConfRecenterevxSp6" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vx recentere6" };
174+ Configurable<std::string> ConfRecenterevySp6{" ConfRecenterevySp6" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vy recentere6" };
175+ Configurable<std::string> ConfRecenterevzSp6{" ConfRecenterevzSp6" , " Users/p/prottay/My/Object/Testingwithsparse/NewPbPbpass4_17092024/recenter" , " Sparse or THn Path for vz recentere6" };
167176 Configurable<std::string> ConfShiftC{" ConfShiftC" , " Users/p/prottay/My/Object/Testinglocaltree/shiftcallib2" , " Path to shift C" };
168177 Configurable<std::string> ConfShiftA{" ConfShiftA" , " Users/p/prottay/My/Object/Testinglocaltree/shiftcallib2" , " Path to shift A" };
169178
@@ -204,16 +213,16 @@ struct spvector {
204213 rctChecker.init (rctCut.cfgEvtRCTFlagCheckerLabel , rctCut.cfgEvtRCTFlagCheckerZDCCheck , rctCut.cfgEvtRCTFlagCheckerLimitAcceptAsBad );
205214
206215 AxisSpec channelZDCAxis = {8 , 0.0 , 8.0 , " ZDC tower" };
207- AxisSpec qxZDCAxis = {QxyNbins, lbinQxy, hbinQxy, " Qx" };
208- AxisSpec phiAxis = {PhiNbins, -6.28 , 6.28 , " phi" };
209- AxisSpec vzAxis = {VzNbins, lbinVz, hbinVz, " vz" };
210- AxisSpec vxAxis = {VxNbins, lbinVx, hbinVx, " vx" };
211- AxisSpec vyAxis = {VyNbins, lbinVy, hbinVy, " vy" };
212- AxisSpec centAxis = {CentNbins, lbinCent, hbinCent, " V0M (%)" };
213- AxisSpec vzfineAxis = {VzfineNbins, lfinebinVz, hfinebinVz, " vzfine" };
214- AxisSpec vxfineAxis = {VxfineNbins, lfinebinVx, hfinebinVx, " vxfine" };
215- AxisSpec vyfineAxis = {VyfineNbins, lfinebinVy, hfinebinVy, " vyfine" };
216- AxisSpec centfineAxis = {CentfineNbins, lfinebinCent, hfinebinCent, " V0M (%) fine" };
216+ AxisSpec qxZDCAxis = {configbins. QxyNbins , configbins. lbinQxy , configbins. hbinQxy , " Qx" };
217+ AxisSpec phiAxis = {configbins. PhiNbins , -6.28 , 6.28 , " phi" };
218+ AxisSpec vzAxis = {configbins. VzNbins , configbins. lbinVz , configbins. hbinVz , " vz" };
219+ AxisSpec vxAxis = {configbins. VxNbins , configbins. lbinVx , configbins. hbinVx , " vx" };
220+ AxisSpec vyAxis = {configbins. VyNbins , configbins. lbinVy , configbins. hbinVy , " vy" };
221+ AxisSpec centAxis = {configbins. CentNbins , configbins. lbinCent , configbins. hbinCent , " V0M (%)" };
222+ AxisSpec vzfineAxis = {configbins. VzfineNbins , configbins. lfinebinVz , configbins. hfinebinVz , " vzfine" };
223+ AxisSpec vxfineAxis = {configbins. VxfineNbins , configbins. lfinebinVx , configbins. hfinebinVx , " vxfine" };
224+ AxisSpec vyfineAxis = {configbins. VyfineNbins , configbins. lfinebinVy , configbins. hfinebinVy , " vyfine" };
225+ AxisSpec centfineAxis = {configbins. CentfineNbins , configbins. lfinebinCent , configbins. hfinebinCent , " V0M (%) fine" };
217226 AxisSpec shiftAxis = {10 , 0 , 10 , " shift" };
218227 AxisSpec basisAxis = {2 , 0 , 2 , " basis" };
219228 AxisSpec VxyAxis = {2 , 0 , 2 , " Vxy" };
@@ -292,10 +301,10 @@ struct spvector {
292301 TH2F* hrecenterevySp;
293302 TH2F* hrecenterevzSp;*/
294303 std::array<THnF*, 6 > hrecentereSpA; // Array of 6 histograms
295- std::array<TH2F*, 5 > hrecenterecentSpA; // Array of 5 histograms
296- std::array<TH2F*, 5 > hrecenterevxSpA; // Array of 5 histograms
297- std::array<TH2F*, 5 > hrecenterevySpA; // Array of 5 histograms
298- std::array<TH2F*, 5 > hrecenterevzSpA; // Array of 5 histograms
304+ std::array<TH2F*, 6 > hrecenterecentSpA; // Array of 5 histograms
305+ std::array<TH2F*, 6 > hrecenterevxSpA; // Array of 5 histograms
306+ std::array<TH2F*, 6 > hrecenterevySpA; // Array of 5 histograms
307+ std::array<TH2F*, 6 > hrecenterevzSpA; // Array of 5 histograms
299308 TProfile3D* shiftprofileA;
300309 TProfile3D* shiftprofileC;
301310
@@ -459,8 +468,13 @@ struct spvector {
459468 return ;
460469 }
461470
462- // if (collision.sel8() && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs(vz) < cfgCutVertex && collision.has_foundFT0() && eventSelected(collision, centrality) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) {
463- if (collision.sel8 () && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs (vz) < cfgCutVertex && collision.has_foundFT0 () && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ) && collision.selection_bit (aod::evsel::kNoITSROFrameBorder ) && collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV )) {
471+ if (additionalEvSel && (!collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ))) {
472+ triggerevent = false ;
473+ spcalibrationtable (triggerevent, currentRunNumber, centrality, vx, vy, vz, znaEnergycommon, zncEnergycommon, znaEnergy[0 ], znaEnergy[1 ], znaEnergy[2 ], znaEnergy[3 ], zncEnergy[0 ], zncEnergy[1 ], zncEnergy[2 ], zncEnergy[3 ], qxZDCA, qxZDCC, qyZDCA, qyZDCC, psiZDCC, psiZDCA);
474+ return ;
475+ }
476+
477+ if (collision.sel8 () && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs (vz) < cfgCutVertex && collision.has_foundFT0 () && collision.selection_bit (aod::evsel::kNoTimeFrameBorder ) && collision.selection_bit (aod::evsel::kNoITSROFrameBorder )) {
464478 triggerevent = true ;
465479 if (useGainCallib && (currentRunNumber != lastRunNumber)) {
466480 gainprofile = ccdb->getForTimeStamp <TH2D>(ConfGainPath.value , bc.timestamp ());
@@ -645,6 +659,16 @@ struct spvector {
645659 res = Correctcoarse (hrecentereSpA[5 ], centrality, vx, vy, vz, qxZDCA, qyZDCA, qxZDCC, qyZDCC);
646660 }
647661
662+ if (fine6) {
663+ if (useRecenterefineSp && (currentRunNumber != lastRunNumber)) {
664+ hrecenterecentSpA[5 ] = ccdb->getForTimeStamp <TH2F>(ConfRecenterecentSp6.value , bc.timestamp ());
665+ hrecenterevxSpA[5 ] = ccdb->getForTimeStamp <TH2F>(ConfRecenterevxSp6.value , bc.timestamp ());
666+ hrecenterevySpA[5 ] = ccdb->getForTimeStamp <TH2F>(ConfRecenterevySp6.value , bc.timestamp ());
667+ hrecenterevzSpA[5 ] = ccdb->getForTimeStamp <TH2F>(ConfRecenterevzSp6.value , bc.timestamp ());
668+ }
669+ resfine = Correctfine (hrecenterecentSpA[5 ], hrecenterevxSpA[5 ], hrecenterevySpA[5 ], hrecenterevzSpA[5 ], centrality, vx, vy, vz, qxZDCA, qyZDCA, qxZDCC, qyZDCC);
670+ }
671+
648672 if (res == 0 && resfine == 0 && check == 0 ) {
649673 LOG (info) << " Histograms are null" ;
650674 }
0 commit comments