@@ -43,8 +43,9 @@ using namespace o2::soa;
43
43
44
44
// / Initializer for the resonance candidate producers
45
45
struct reso2initializer {
46
- float cXiMass = RecoDecay::getMassPDG( 3312 );
46
+ float cXiMass = TDatabasePDG::Instance()-> GetParticle ( 3312 )->Mass( );
47
47
int mRunNumber ;
48
+ int multEstimator;
48
49
float d_bz;
49
50
Service<o2::ccdb::BasicCCDBManager> ccdb;
50
51
@@ -70,6 +71,7 @@ struct reso2initializer {
70
71
Configurable<bool > ConfIsRun3{" ConfIsRun3" , true , " Running on Pilot beam" }; // Choose if running on converted data or pilot beam
71
72
Configurable<double > d_bz_input{" d_bz" , -999 , " bz field, -999 is automatic" };
72
73
Configurable<bool > ConfFillQA{" ConfFillQA" , false , " Fill QA histograms" };
74
+ Configurable<bool > ConfBypassCCDB{" ConfBypassCCDB" , false , " Bypass loading CCDB part to save CPU time and memory" }; // will be affected to b_z value.
73
75
74
76
// Track filter from tpcSkimsTableCreator
75
77
Configurable<int > trackSelection{" trackSelection" , 0 , " Track selection: 0 -> No Cut, 1 -> kGlobalTrack, 2 -> kGlobalTrackWoPtEta, 3 -> kGlobalTrackWoDCA, 4 -> kQualityTracks, 5 -> kInAcceptanceTracks" };
@@ -146,7 +148,7 @@ struct reso2initializer {
146
148
|| (nabs(aod::mcparticle::pdgCode) == 123314 ) // Xi(1820)0
147
149
|| (nabs(aod::mcparticle::pdgCode) == 123324 ); // Xi(1820)-0
148
150
149
- using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As>;
151
+ using ResoEvents = soa::Join<aod::Collisions, aod::EvSels, aod::Mults, aod::CentFV0As, aod:: CentFT0Ms, aod::CentFT0Cs, aod::CentFT0As>;
150
152
using ResoEventsMC = soa::Join<ResoEvents, aod::McCollisionLabels>;
151
153
using ResoTracks = aod::Reso2TracksPIDExt;
152
154
using ResoTracksMC = soa::Join<ResoTracks, aod::McTrackLabels>;
@@ -295,21 +297,44 @@ struct reso2initializer {
295
297
return true ;
296
298
}
297
299
300
+ // Centralicity estimator selection
301
+ template <typename ResoColl>
302
+ float CentEst (ResoColl ResoEvents)
303
+ {
304
+ float returnValue = -999.0 ;
305
+ switch (multEstimator) {
306
+ case 0 :
307
+ returnValue = ResoEvents.centFT0M ();
308
+ case 1 :
309
+ returnValue = ResoEvents.centFT0C ();
310
+ case 2 :
311
+ returnValue = ResoEvents.centFT0A ();
312
+ case 99 :
313
+ returnValue = ResoEvents.centFV0A ();
314
+ default :
315
+ returnValue = ResoEvents.centFT0M ();
316
+ }
317
+ return returnValue;
318
+ }
319
+
298
320
// Multiplicity estimator selection
299
321
template <typename ResoColl>
300
322
float MultEst (ResoColl ResoEvents)
301
323
{
302
- if (cfgMultName.value == " FT0M" ) {
303
- return ResoEvents.centFT0M ();
304
- } else if (cfgMultName.value == " FT0C" ) {
305
- return ResoEvents.centFT0C ();
306
- } else if (cfgMultName.value == " FT0A" ) {
307
- return ResoEvents.centFT0A ();
308
- } else if (cfgMultName.value == " FV0M" ) {
309
- return ResoEvents.multFV0M ();
310
- } else {
311
- return ResoEvents.centFT0M ();
324
+ float returnValue = -999.0 ;
325
+ switch (multEstimator) {
326
+ case 0 :
327
+ returnValue = ResoEvents.multFT0M ();
328
+ case 1 :
329
+ returnValue = ResoEvents.multFT0C ();
330
+ case 2 :
331
+ returnValue = ResoEvents.multFT0A ();
332
+ case 99 :
333
+ returnValue = ResoEvents.multFV0A ();
334
+ default :
335
+ returnValue = ResoEvents.multFT0M ();
312
336
}
337
+ return returnValue;
313
338
}
314
339
315
340
// Filter for all tracks
@@ -708,15 +733,29 @@ struct reso2initializer {
708
733
{
709
734
mRunNumber = 0 ;
710
735
d_bz = 0 ;
736
+ // Multiplicity estimator selection (0: FT0M, 1: FT0C, 2: FT0A, 99: FV0A)
737
+ if (cfgMultName.value == " FT0M" ) {
738
+ multEstimator = 0 ;
739
+ } else if (cfgMultName.value == " FT0C" ) {
740
+ multEstimator = 1 ;
741
+ } else if (cfgMultName.value == " FT0A" ) {
742
+ multEstimator = 2 ;
743
+ } else if (cfgMultName.value == " FV0A" ) {
744
+ multEstimator = 99 ;
745
+ } else {
746
+ multEstimator = 0 ;
747
+ }
748
+
711
749
colCuts.setCuts (ConfEvtZvtx, ConfEvtTriggerCheck, ConfEvtTriggerSel, ConfEvtOfflineCheck, ConfIsRun3);
712
750
colCuts.init (&qaRegistry);
713
-
714
- ccdb->setURL (ccdburl.value );
715
- ccdb->setCaching (true );
716
- ccdb->setLocalObjectValidityChecking ();
717
- ccdb->setFatalWhenNull (cfgFatalWhenNull);
718
- uint64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count ();
719
- ccdb->setCreatedNotAfter (now); // TODO must become global parameter from the train creation time
751
+ if (!ConfBypassCCDB) {
752
+ ccdb->setURL (ccdburl.value );
753
+ ccdb->setCaching (true );
754
+ ccdb->setLocalObjectValidityChecking ();
755
+ ccdb->setFatalWhenNull (cfgFatalWhenNull);
756
+ uint64_t now = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count ();
757
+ ccdb->setCreatedNotAfter (now); // TODO must become global parameter from the train creation time
758
+ }
720
759
721
760
// QA histograms
722
761
if (ConfFillQA) {
@@ -732,6 +771,8 @@ struct reso2initializer {
732
771
733
772
void initCCDB (aod::BCsWithTimestamps::iterator const & bc) // Simple copy from LambdaKzeroFinder.cxx
734
773
{
774
+ if (ConfBypassCCDB)
775
+ return ;
735
776
if (mRunNumber == bc.runNumber ()) {
736
777
return ;
737
778
}
@@ -784,9 +825,9 @@ struct reso2initializer {
784
825
colCuts.fillQA (collision);
785
826
786
827
if (ConfIsRun3) {
787
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
828
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
788
829
} else {
789
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
830
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
790
831
}
791
832
792
833
fillTracks<false >(collision, tracks);
@@ -806,9 +847,9 @@ struct reso2initializer {
806
847
colCuts.fillQA (collision);
807
848
808
849
if (ConfIsRun3) {
809
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
850
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
810
851
} else {
811
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
852
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
812
853
}
813
854
814
855
fillTracks<false >(collision, tracks);
@@ -830,9 +871,9 @@ struct reso2initializer {
830
871
colCuts.fillQA (collision);
831
872
832
873
if (ConfIsRun3) {
833
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
874
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
834
875
} else {
835
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
876
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
836
877
}
837
878
838
879
fillTracks<false >(collision, tracks);
@@ -853,9 +894,9 @@ struct reso2initializer {
853
894
colCuts.fillQA (collision);
854
895
855
896
if (ConfIsRun3) {
856
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
897
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
857
898
} else {
858
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
899
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
859
900
}
860
901
861
902
// Loop over tracks
@@ -879,9 +920,9 @@ struct reso2initializer {
879
920
colCuts.fillQA (collision);
880
921
881
922
if (ConfIsRun3) {
882
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
923
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
883
924
} else {
884
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
925
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
885
926
}
886
927
887
928
// Loop over tracks
@@ -907,9 +948,9 @@ struct reso2initializer {
907
948
colCuts.fillQA (collision);
908
949
909
950
if (ConfIsRun3) {
910
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), MultEst (collision), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
951
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), CentEst (collision), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
911
952
} else {
912
- resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), collision. multTPC ( ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
953
+ resoCollisions (collision.posX (), collision.posY (), collision.posZ (), collision.multFV0M (), MultEst (collision ), colCuts.computeSpherocity (collision, tracks), d_bz, bc.timestamp ());
913
954
}
914
955
915
956
// Loop over tracks
0 commit comments