ATLAS Offline Software
Loading...
Searching...
No Matches
IHIEventSelectionToolRun3.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef HIEVENTUTILS_IHIEVENTSELECTIONTOOLRUN3_H__
6#define HIEVENTUTILS_IHIEVENTSELECTIONTOOLRUN3_H__
7
8#include "AsgTools/IAsgTool.h"
14
15namespace HI {
27
28std::string toString(IonDataType);
29
30enum class PileupVariation : uint8_t { Nominal = 0, Tight, Loose };
31
32std::string toString(PileupVariation);
33
34constexpr unsigned int bit(int n) {
35 return 1 << n;
36}
37
38// never change bits assignment, feel free to add
39enum class SelectionMask : unsigned int {
52 NoPUZDCPresampler = bit(8), // at the moment there is only one cut (shall we have Nominal Loose & Tight)
53
54 // default cuts for PB
56 NoPUZDCPresampler, // | NoPUFCalVsNTrackLoose , this needs to be added again when we have cut values
57 // default cuts for OO
60
61};
62
63std::string toString(SelectionMask);
64
66
68
69 public:
70 virtual ~IHIEventSelectionToolRun3() = default;
71
75 virtual bool noDetectorError(const xAOD::EventInfo* eventInfo) const = 0;
76
80 virtual bool noPUZDCvsFCal(HI::IonDataType when,
82 const xAOD::ZdcModuleContainer* zdcModules,
83 HI::PileupVariation variation) const = 0;
84
85 virtual float fcalEt(HI::IonDataType when,
86 const xAOD::HIEventShapeContainer* es) const = 0;
87
88 virtual float zdcE(HI::IonDataType when,
89 const xAOD::ZdcModuleContainer* zdcModules) const = 0;
90
92 virtual bool noPUZDCvsFCal(
93 IonDataType dataType, float fcalEt, float zdcE,
94 PileupVariation variation = PileupVariation::Nominal) const = 0;
95
98 virtual bool noPUFCalVsNtracks(
99 IonDataType dataType, const xAOD::HIEventShapeContainer* es,
100 const xAOD::TrackParticleContainer* tracks,
101 const xAOD::VertexContainer* vertices,
102 PileupVariation variation = PileupVariation::Nominal) const = 0;
103
104 virtual int nTrk(IonDataType dataType,
105 const xAOD::TrackParticleContainer* tracks,
106 const xAOD::VertexContainer* vertices) const = 0;
107
108 virtual bool noPUFCalVsNtracks(
109 IonDataType dataType, float fcalEt, int ntrk,
110 PileupVariation variation = PileupVariation::Nominal) const = 0;
111
114 const xAOD::ZdcModuleContainer* zdcModules,
115 HI::PileupVariation variation) const = 0;
116 virtual bool noPUZDCPresampler(
117 IonDataType dataType, float presamplerA, float presamplerC,
118 PileupVariation variation = PileupVariation::Nominal) const = 0;
119
123 virtual std::pair<float, float> ZDCPresamplerAmps(
124 const xAOD::ZdcModuleContainer* zdcModules) const = 0;
125
127 virtual bool noPUOOVertexCuts(
128 IonDataType dataType, const xAOD::VertexContainer* vertices) const = 0;
129
131 virtual IonDataType toDataType(const xAOD::EventInfo* eventInfo) const = 0;
132
134 virtual unsigned int defaultMaskForPeriod(IonDataType period) const = 0;
135};
136
137} // namespace HI
138
139#endif
#define ASG_TOOL_INTERFACE(CLASSNAME)
virtual bool noPUZDCPresampler(HI::IonDataType when, const xAOD::ZdcModuleContainer *zdcModules, HI::PileupVariation variation) const =0
true if this is NOT pileup event
virtual unsigned int defaultMaskForPeriod(IonDataType period) const =0
provides default set of cuts for given period
virtual bool noPUFCalVsNtracks(IonDataType dataType, const xAOD::HIEventShapeContainer *es, const xAOD::TrackParticleContainer *tracks, const xAOD::VertexContainer *vertices, PileupVariation variation=PileupVariation::Nominal) const =0
true if this is NOT pileup event The fool performs track selection
virtual bool noPUFCalVsNtracks(IonDataType dataType, float fcalEt, int ntrk, PileupVariation variation=PileupVariation::Nominal) const =0
virtual bool noPUZDCvsFCal(IonDataType dataType, float fcalEt, float zdcE, PileupVariation variation=PileupVariation::Nominal) const =0
true if this is NOT pileup event
virtual bool noPUZDCvsFCal(HI::IonDataType when, const xAOD::HIEventShapeContainer *es, const xAOD::ZdcModuleContainer *zdcModules, HI::PileupVariation variation) const =0
true if this is NOT pileup event It computes necessary quantities and invokes method defined next to ...
virtual bool noPUZDCPresampler(IonDataType dataType, float presamplerA, float presamplerC, PileupVariation variation=PileupVariation::Nominal) const =0
virtual float fcalEt(HI::IonDataType when, const xAOD::HIEventShapeContainer *es) const =0
virtual bool noPUOOVertexCuts(IonDataType dataType, const xAOD::VertexContainer *vertices) const =0
true if this is NOT pileup event
virtual ~IHIEventSelectionToolRun3()=default
virtual std::pair< float, float > ZDCPresamplerAmps(const xAOD::ZdcModuleContainer *zdcModules) const =0
obtain presampler amplitudes
virtual float zdcE(HI::IonDataType when, const xAOD::ZdcModuleContainer *zdcModules) const =0
virtual int nTrk(IonDataType dataType, const xAOD::TrackParticleContainer *tracks, const xAOD::VertexContainer *vertices) const =0
virtual IonDataType toDataType(const xAOD::EventInfo *eventInfo) const =0
translates info in EV into HI data type
virtual bool noDetectorError(const xAOD::EventInfo *eventInfo) const =0
Checks basic event flags.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
constexpr unsigned int bit(int n)
std::string toString(IonDataType)
ZdcModuleContainer_v1 ZdcModuleContainer
EventInfo_v1 EventInfo
Definition of the latest event info version.
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
HIEventShapeContainer_v2 HIEventShapeContainer
Define the latest version of the container.