@@ -74,6 +74,8 @@ struct qVectorsTable {
7474 Configurable<int > cfgCentEsti{" cfgCentEsti" ,
7575 2 , " Centrality estimator (Run3): 0 = FT0M, 1 = FT0A, 2 = FT0C, 3 = FV0A" };
7676
77+ Configurable<int > cfgCCDBConst{" cfgCCDBConst" , 1 , " Using constants in CCDB, 1 = CCDB, 2= Configurable" };
78+
7779 // LOKI: We have here all centrality estimators for Run 3 (except FDDM and NTPV),
7880 // but the Q-vectors are calculated only for some of them.
7981 // FIXME: 6 correction factors for each centrality and 8 centrality intervals are hard-coded.
@@ -147,30 +149,88 @@ struct qVectorsTable {
147149 LOGF (fatal, " Could not get the alignment parameters for FV0." );
148150 }
149151
150- if (cfgFT0CCorr->size () < 48 ) {
151- LOGF (fatal, " No proper correction factor assigned for FT0C" );
152- }
153- if (cfgFT0ACorr->size () < 48 ) {
154- LOGF (fatal, " No proper correction factor assigned for FT0A" );
155- }
156- if (cfgFT0MCorr->size () < 48 ) {
157- LOGF (fatal, " No proper correction factor assigned for FT0M" );
158- }
159- if (cfgFV0ACorr->size () < 48 ) {
160- LOGF (fatal, " No proper correction factor assigned for FV0A" );
161- }
162- if (cfgBPosCorr->size () < 48 ) {
163- LOGF (fatal, " No proper correction factor assigned for positive TPC tracks" );
152+ if (cfgCCDBConst==1 ) {
153+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0C" ,cfgCcdbParam.nolaterthan .value ))->empty ())
154+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0C" ,cfgCcdbParam.nolaterthan .value )));
155+ else {
156+ if (cfgFT0CCorr->size () < 48 )
157+ LOGF (fatal, " No proper correction factor assigned for FT0C" );
158+ else {
159+ cfgCorr.push_back (cfgFT0CCorr);
160+ }
161+ }
162+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0A" ,cfgCcdbParam.nolaterthan .value ))->empty ())
163+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0A" ,cfgCcdbParam.nolaterthan .value )));
164+ else {
165+ if (cfgFT0ACorr->size () < 48 )
166+ LOGF (fatal, " No proper correction factor assigned for FT0A" );
167+ else {
168+ cfgCorr.push_back (cfgFT0ACorr);
169+ }
170+ }
171+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0M" ,cfgCcdbParam.nolaterthan .value ))->empty ())
172+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0M" ,cfgCcdbParam.nolaterthan .value )));
173+ else {
174+ if (cfgFT0MCorr->size () < 48 )
175+ LOGF (fatal, " No proper correction factor assigned for FT0M" );
176+ else {
177+ cfgCorr.push_back (cfgFT0MCorr);
178+ }
179+ }
180+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0C" ,cfgCcdbParam.nolaterthan .value ))->empty ())
181+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/FT0C" ,cfgCcdbParam.nolaterthan .value )));
182+ else {
183+ if (cfgFV0ACorr->size () < 48 )
184+ LOGF (fatal, " No proper correction factor assigned for FV0A" );
185+ else {
186+ cfgCorr.push_back (cfgFV0ACorr);
187+ }
188+ } // no FV0A
189+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/BPos" ,cfgCcdbParam.nolaterthan .value ))->empty ())
190+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/BPos" ,cfgCcdbParam.nolaterthan .value )));
191+ else {
192+ if (cfgBPosCorr->size () < 48 )
193+ LOGF (fatal, " No proper correction factor assigned for BPos" );
194+ else {
195+ cfgCorr.push_back (cfgBPosCorr);
196+ }
197+ }
198+ if (!(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/BNeg" ,cfgCcdbParam.nolaterthan .value ))->empty ())
199+ cfgCorr.push_back (*(ccdb->getForTimeStamp <std::vector<float >>(" Analysis/EventPlane/QVecCorrections/BNeg" ,cfgCcdbParam.nolaterthan .value )));
200+ else {
201+ if (cfgBNegCorr->size () < 48 )
202+ LOGF (fatal, " No proper correction factor assigned for BNeg" );
203+ else {
204+ cfgCorr.push_back (cfgBNegCorr);
205+ }
206+ }
207+ } else if (cfgCCDBConst==2 ) {
208+ if (cfgFT0CCorr->size () < 48 ) {
209+ LOGF (fatal, " No proper correction factor assigned for FT0C" );
210+ }
211+ if (cfgFT0ACorr->size () < 48 ) {
212+ LOGF (fatal, " No proper correction factor assigned for FT0A" );
213+ }
214+ if (cfgFT0MCorr->size () < 48 ) {
215+ LOGF (fatal, " No proper correction factor assigned for FT0M" );
216+ }
217+ if (cfgFV0ACorr->size () < 48 ) {
218+ LOGF (fatal, " No proper correction factor assigned for FV0A" );
219+ }
220+ if (cfgBPosCorr->size () < 48 ) {
221+ LOGF (fatal, " No proper correction factor assigned for positive TPC tracks" );
222+ }
223+ if (cfgBNegCorr->size () < 48 ) {
224+ LOGF (fatal, " No proper correction factor assigned for negative TPC tracks" );
225+ } // will be replaced with method that call constants from CCDB
226+
227+ cfgCorr.push_back (cfgFT0CCorr);
228+ cfgCorr.push_back (cfgFT0ACorr);
229+ cfgCorr.push_back (cfgFT0MCorr);
230+ cfgCorr.push_back (cfgFV0ACorr);
231+ cfgCorr.push_back (cfgBPosCorr);
232+ cfgCorr.push_back (cfgBNegCorr);
164233 }
165- if (cfgBNegCorr->size () < 48 ) {
166- LOGF (fatal, " No proper correction factor assigned for negative TPC tracks" );
167- } // will be replaced with method that call constants from CCDB
168- cfgCorr.push_back (cfgFT0CCorr);
169- cfgCorr.push_back (cfgFT0ACorr);
170- cfgCorr.push_back (cfgFT0MCorr);
171- cfgCorr.push_back (cfgFV0ACorr);
172- cfgCorr.push_back (cfgBPosCorr);
173- cfgCorr.push_back (cfgBNegCorr);
174234
175235 /* // Debug printing.
176236 printf("Offset for FT0A: x = %.3f y = %.3f\n", (*offsetFT0)[0].getX(), (*offsetFT0)[0].getY());
0 commit comments