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"
15
16namespace HI {
28
29std::string toString(IonDataType);
30
31enum class PileupVariation : uint8_t { Nominal = 0, Tight, Loose };
32
33std::string toString(PileupVariation);
34
35constexpr unsigned int bit(int n) {
36 return 1 << n;
37}
38
39// never change bits assignment, feel free to add
40enum class SelectionMask : unsigned int {
53 NoPUZDCPresampler = bit(8), // at the moment there is only one cut (shall we
54 // have Nominal Loose & Tight)
56
57 // default cuts for PB
59 NoPUZDCPresampler, // | NoPUFCalVsNTrackLoose , this needs to be
60 // added again when we have cut values
61 // default cuts for OO
64
65};
66
67std::string toString(SelectionMask);
68
70
72
73 public:
74 virtual ~IHIEventSelectionToolRun3() = default;
75
79 virtual bool noDetectorError(const xAOD::EventInfo* eventInfo) const = 0;
80
84 virtual bool noPUZDCvsFCal(HI::IonDataType when,
86 const xAOD::ZdcModuleContainer* zdcModules,
87 HI::PileupVariation variation) const = 0;
88
89 virtual float fcalEt(HI::IonDataType when,
90 const xAOD::HIEventShapeContainer* es) const = 0;
91
92 virtual float zdcE(HI::IonDataType when,
93 const xAOD::ZdcModuleContainer* zdcModules) const = 0;
94
96 virtual bool noPUZDCvsFCal(
97 IonDataType dataType, float fcalEt, float zdcE,
98 PileupVariation variation = PileupVariation::Nominal) const = 0;
99
102 virtual bool noPUFCalVsNtracks(
103 IonDataType dataType, const xAOD::HIEventShapeContainer* es,
104 const xAOD::TrackParticleContainer* tracks,
105 const xAOD::VertexContainer* vertices,
106 PileupVariation variation = PileupVariation::Nominal) const = 0;
107
108 virtual int nTrk(IonDataType dataType,
109 const xAOD::TrackParticleContainer* tracks,
110 const xAOD::VertexContainer* vertices,
111 const double min_pt_cut = -1) const = 0;
112
113 virtual bool noPUFCalVsNtracks(
114 IonDataType dataType, float fcalEt, int ntrk,
115 PileupVariation variation = PileupVariation::Nominal) const = 0;
116
119 const xAOD::ZdcModuleContainer* zdcModules,
120 HI::PileupVariation variation) const = 0;
121 virtual bool noPUZDCPresampler(
122 IonDataType dataType, float presamplerA, float presamplerC,
123 PileupVariation variation = PileupVariation::Nominal) const = 0;
124
128 virtual std::pair<float, float> ZDCPresamplerAmps(
129 const xAOD::ZdcModuleContainer* zdcModules) const = 0;
130
132 virtual bool noPUOOVertexCuts(
133 IonDataType dataType, const xAOD::VertexContainer* vertices) const = 0;
134
138 virtual bool tcInFCalPresent(
139 IonDataType dataType, const xAOD::CaloClusterContainer* topos) const = 0;
140
142 virtual IonDataType toDataType(const xAOD::EventInfo* eventInfo) const = 0;
143
145 virtual unsigned int defaultMaskForPeriod(IonDataType period) const = 0;
146};
147
148} // namespace HI
149
150#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 tcInFCalPresent(IonDataType dataType, const xAOD::CaloClusterContainer *topos) const =0
checks if topo cluster (TC) presence in FCal requirement passes
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 double min_pt_cut=-1) 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.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.