2020#include " Common/DataModel/Multiplicity.h"
2121
2222#include < CCDB/BasicCCDBManager.h>
23+ #include < DataFormatsFIT/Triggers.h>
2324#include < DataFormatsParameters/GRPECSObject.h>
2425#include < Framework/AnalysisDataModel.h>
2526#include < Framework/AnalysisHelpers.h>
@@ -91,6 +92,7 @@ struct centralityStudy {
9192 Configurable<bool > requireIsVertexTOFmatched{" requireIsVertexTOFmatched" , false , " require events with at least one of vertex contributors matched to TOF" };
9293 Configurable<bool > requireIsVertexTRDmatched{" requireIsVertexTRDmatched" , false , " require events with at least one of vertex contributors matched to TRD" };
9394 Configurable<bool > rejectSameBunchPileup{" rejectSameBunchPileup" , true , " reject collisions in case of pileup with another collision in the same foundBC" };
95+ Configurable<bool > rejectIsFlangeEvent{" rejectIsFlangeEvent" , false , " At least one channel with -350 TDC < time < -450 TDC" };
9496
9597 Configurable<bool > rejectITSinROFpileupStandard{" rejectITSinROFpileupStandard" , false , " reject collisions in case of in-ROF ITS pileup (standard)" };
9698 Configurable<bool > rejectITSinROFpileupStrict{" rejectITSinROFpileupStrict" , false , " reject collisions in case of in-ROF ITS pileup (strict)" };
@@ -201,8 +203,12 @@ struct centralityStudy {
201203 histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (11 , " Neighbour rejection" );
202204 histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (12 , " no ITS in-ROF pileup (standard)" );
203205 histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (13 , " no ITS in-ROF pileup (strict)" );
206+ histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (14 , " is UPC event" );
207+ histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (15 , " rejectCollInTimeRangeNarrow" );
208+ histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (16 , " em/upc rejection" );
209+ histos.get <TH1>(HIST (" hCollisionSelection" ))->GetXaxis ()->SetBinLabel (17 , " isFlangeEvent" );
204210
205- histos.add (" hFT0A_Collisions" , " hFT0C_Collisions " , kTH1D , {axisMultUltraFineFT0A});
211+ histos.add (" hFT0A_Collisions" , " hFT0A_Collisions " , kTH1D , {axisMultUltraFineFT0A});
206212 histos.add (" hFT0C_Collisions" , " hFT0C_Collisions" , kTH1D , {axisMultUltraFineFT0C});
207213 histos.add (" hFT0M_Collisions" , " hFT0M_Collisions" , kTH1D , {axisMultUltraFineFT0M});
208214 histos.add (" hFV0A_Collisions" , " hFV0A_Collisions" , kTH1D , {axisMultUltraFineFV0A});
@@ -372,6 +378,10 @@ struct centralityStudy {
372378 getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (11 , " Neighbour rejection" );
373379 getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (12 , " no ITS in-ROF pileup (standard)" );
374380 getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (13 , " no ITS in-ROF pileup (strict)" );
381+ getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (14 , " is UPC event" );
382+ getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (15 , " rejectCollInTimeRangeNarrow" );
383+ getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (16 , " em/upc rejection" );
384+ getHist (TH1, histPath + " hCollisionSelection" )->GetXaxis ()->SetBinLabel (17 , " isFlangeEvent" );
375385
376386 histPointers.insert ({histPath + " hFT0C_Collisions" , histos.add ((histPath + " hFT0C_Collisions" ).c_str (), " hFT0C_Collisions" , {kTH1D , {{axisMultUltraFineFT0C}}})});
377387 histPointers.insert ({histPath + " hFT0A_Collisions" , histos.add ((histPath + " hFT0A_Collisions" ).c_str (), " hFT0A_Collisions" , {kTH1D , {{axisMultUltraFineFT0A}}})});
@@ -608,7 +618,7 @@ struct centralityStudy {
608618 if (!passRejectCollInTimeRangeNarrow) {
609619 return ;
610620 }
611- histos.fill (HIST (" hCollisionSelection" ), 14 /* Not ITS ROF pileup (strict) */ );
621+ histos.fill (HIST (" hCollisionSelection" ), 14 /* Reject collision in narrow time range */ );
612622 getHist (TH1, histPath + " hCollisionSelection" )->Fill (14 );
613623
614624 if (collision.multFT0C () < upcRejection.maxFT0CforZNACselection &&
@@ -627,6 +637,18 @@ struct centralityStudy {
627637 histos.fill (HIST (" hCollisionSelection" ), 15 /* pass em/upc rejection */ );
628638 getHist (TH1, histPath + " hCollisionSelection" )->Fill (15 );
629639
640+ if (rejectIsFlangeEvent) {
641+ if constexpr (requires { collision.ft0TriggerMask (); }) {
642+ constexpr int IsFlangeEventId = 7 ;
643+ std::bitset<8 > ft0TriggerMask = collision.ft0TriggerMask ();
644+ if (ft0TriggerMask[IsFlangeEventId]) {
645+ return ;
646+ }
647+ }
648+ }
649+ histos.fill (HIST (" hCollisionSelection" ), 16 /* reject flange events */ );
650+ getHist (TH1, histPath + " hCollisionSelection" )->Fill (16 );
651+
630652 // if we got here, we also finally fill the FT0C histogram, please
631653 histos.fill (HIST (" hNPVContributors" ), collision.multNTracksPV ());
632654 histos.fill (HIST (" hFT0A_Collisions" ), collision.multFT0A () * scaleSignalFT0C);
@@ -789,22 +811,22 @@ struct centralityStudy {
789811 }
790812 }
791813
792- void processCollisions (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultsGlobal, aod::MultSelections, aod::Mults2BC, aod::FV0AOuterMults >::iterator const & collision, aod::MultBCs const &)
814+ void processCollisions (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultsGlobal, aod::MultSelections, aod::Mults2BC, aod::FITExtraMults >::iterator const & collision, aod::MultBCs const &)
793815 {
794816 genericProcessCollision (collision);
795817 }
796818
797- void processCollisionsWithResolutionStudy (soa::Join<aod::MultsRun3, aod::MFTMults, aod::Mult2MCExtras, aod::MultsExtra, aod::MultsGlobal, aod::MultSelections, aod::Mults2BC, aod::FV0AOuterMults >::iterator const & collision, soa::Join<aod::MultMCExtras, aod::MultHepMCHIs> const &)
819+ void processCollisionsWithResolutionStudy (soa::Join<aod::MultsRun3, aod::MFTMults, aod::Mult2MCExtras, aod::MultsExtra, aod::MultsGlobal, aod::MultSelections, aod::Mults2BC, aod::FITExtraMults >::iterator const & collision, soa::Join<aod::MultMCExtras, aod::MultHepMCHIs> const &)
798820 {
799821 genericProcessCollision (collision);
800822 }
801823
802- void processCollisionsWithCentrality (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultSelections, aod::CentFT0Cs, aod::MultsGlobal, aod::Mults2BC, aod::FV0AOuterMults >::iterator const & collision, aod::MultBCs const &)
824+ void processCollisionsWithCentrality (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultSelections, aod::CentFT0Cs, aod::MultsGlobal, aod::Mults2BC, aod::FITExtraMults >::iterator const & collision, aod::MultBCs const &)
803825 {
804826 genericProcessCollision (collision);
805827 }
806828
807- void processCollisionsWithCentralityWithNeighbours (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultSelections, aod::CentFT0Cs, aod::MultsGlobal, aod::MultNeighs, aod::FV0AOuterMults >::iterator const & collision)
829+ void processCollisionsWithCentralityWithNeighbours (soa::Join<aod::MultsRun3, aod::MFTMults, aod::MultsExtra, aod::MultSelections, aod::CentFT0Cs, aod::MultsGlobal, aod::MultNeighs, aod::FITExtraMults >::iterator const & collision)
808830 {
809831 genericProcessCollision (collision);
810832 }
0 commit comments