@@ -208,6 +208,10 @@ struct HeavyionMultiplicity {
208208 Configurable<bool > isApplyTVX{" isApplyTVX" , false , " Enable TVX trigger sel" };
209209 Configurable<bool > isApplyExtraPhiCut{" isApplyExtraPhiCut" , false , " Enable extra phi cut" };
210210
211+ Configurable<bool > selectCollidingBCs{" selectCollidingBCs" , true , " BC analysis: select colliding BCs" };
212+ Configurable<bool > selectTVX{" selectTVX" , true , " BC analysis: select TVX" };
213+ Configurable<bool > selectFV0OrA{" selectFV0OrA" , true , " BC analysis: select FV0OrA" };
214+
211215 void init (InitContext const &)
212216 {
213217 AxisSpec axisMult = {multHistBin, " Mult" , " MultAxis" };
@@ -357,6 +361,18 @@ struct HeavyionMultiplicity {
357361 histos.add (" hRecMCdndeta" , " hRecMCdndeta" , kTHnSparseD , {axisVtxZ, centAxis, axisOccupancy, axisEta, axisPhi, axisRecTrkType}, false );
358362 histos.add (" etaResolution" , " etaResolution" , kTH2D , {axisEta, axisDeltaEta});
359363 }
364+
365+ if (doprocessBcData) {
366+ histos.add (" BcHist" , " BcHist" , kTH1D , {axisEvent}, false );
367+ auto hstat = histos.get <TH1>(HIST (" BcHist" ));
368+ auto * x = hstat->GetXaxis ();
369+ x->SetBinLabel (1 , " All BCs" );
370+ x->SetBinLabel (2 , " Colliding BCs" );
371+ x->SetBinLabel (3 , " TVX" );
372+ x->SetBinLabel (4 , " FV0OrA" );
373+ histos.add (" BcCentFT0CHist" , " BcCentFT0CHist" , kTH1D , {axisCent}, false );
374+ histos.add (" BcCentFT0MHist" , " BcCentFT0MHist" , kTH1D , {axisCent}, false );
375+ }
360376 }
361377
362378 template <typename CheckCol>
@@ -971,6 +987,22 @@ struct HeavyionMultiplicity {
971987 } // collision loop
972988 }
973989
990+ void processBcData (soa::Join<aod::BC2Mults, aod::MultBCs, aod::BCCentFT0Cs, aod::BCCentFT0Ms>::iterator const & multbc)
991+ {
992+ histos.fill (HIST (" BcHist" ), 1 ); // all BCs
993+ if (selectCollidingBCs && !multbc.multCollidingBC ())
994+ return ;
995+ histos.fill (HIST (" BcHist" ), 2 ); // colliding
996+ if (selectTVX && !multbc.multTVX ())
997+ return ;
998+ histos.fill (HIST (" BcHist" ), 3 ); // TVX
999+ if (selectFV0OrA && !multbc.multFV0OrA ())
1000+ return ;
1001+ histos.fill (HIST (" BcHist" ), 4 ); // FV0OrA
1002+ histos.fill (HIST (" BcCentFT0CHist" ), multbc.centFT0C ());
1003+ histos.fill (HIST (" BcCentFT0MHist" ), multbc.centFT0M ());
1004+ }
1005+
9741006 PROCESS_SWITCH (HeavyionMultiplicity, processData, " process data CentFT0C" , false );
9751007 PROCESS_SWITCH (HeavyionMultiplicity, processCorrelation, " do correlation study in data" , false );
9761008 PROCESS_SWITCH (HeavyionMultiplicity, processMonteCarlo, " process MC CentFT0C" , false );
@@ -979,6 +1011,7 @@ struct HeavyionMultiplicity {
9791011 PROCESS_SWITCH (HeavyionMultiplicity, processGen, " process pure MC gen" , false );
9801012 PROCESS_SWITCH (HeavyionMultiplicity, processEvtLossSigLossMC, " process Signal Loss, Event Loss" , false );
9811013 PROCESS_SWITCH (HeavyionMultiplicity, processMCeff, " process extra efficiency function" , false );
1014+ PROCESS_SWITCH (HeavyionMultiplicity, processBcData, " process BC Centrality" , false );
9821015};
9831016
9841017WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
0 commit comments