ATLAS Offline Software
Loading...
Searching...
No Matches
TileJetMonitorAlgorithm.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TILEMONITORING_TILEJETMONITORALGORITHM
6#define TILEMONITORING_TILEJETMONITORALGORITHM
7
10
12
16
17// JVT
19// Jet cleaning
21// Event cleaning
23
24
26class TileID;
27class TileHWID;
28
32
34
35 public:
36
37 TileJetMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
39 virtual StatusCode initialize() override;
40 virtual StatusCode fillHistograms( const EventContext& ctx ) const override;
41
42 private:
43
44 StatusCode fillTimeHistograms(const xAOD::Jet& jet, uint32_t lumiBlock, std::set<Identifier>& usedCells) const;
45 unsigned int findIndex(const int gain, const float energy) const;
46 bool isGoodChannel(int part, int module, int channel, uint32_t bad, unsigned int qbit, Identifier id) const;
47 bool passesJvt(const xAOD::Jet& jet) const;
48 bool isGoodJet(const xAOD::Jet& jet) const;
49 bool isGoodEvent(const EventContext& ctx) const;
50 std::string sampleName(const int ros, const int sample, const int tower) const;
51 std::string cellName(const int ros, const int sample, const int tower, const int module) const;
52 bool matchesEnergyRange(const int sample, const int tower, const float energy, const int gain) const;
53
54 Gaudi::Property<float> m_jetPtMin{this, "JetPtMin", 20000., "Threshold in MeV"};
55 Gaudi::Property<float> m_jetPtMax{this, "JetPtMax", 120000, ""};
56 Gaudi::Property<float> m_jetEtaMax{this, "JetEtaMax", 1.6, ""};
57 Gaudi::Property<float> m_energyChanMin{this, "ChannelEnergyMin", 2000, ""};
58 Gaudi::Property<float> m_energyChanMax{this, "ChannelEnergyMax", 4000, ""};
59 Gaudi::Property<float> m_gain{this, "Gain", 1, ""};
60 Gaudi::Property<float> m_energyE1Min{this, "E1EnergyMin", -1, ""};
61 Gaudi::Property<float> m_energyE1Max{this, "E1EnergyMax", -1, ""};
62 Gaudi::Property<float> m_gainE1{this, "GainE1", -1, ""};
63 Gaudi::Property<float> m_energyE2Min{this, "E2EnergyMin", -1, ""};
64 Gaudi::Property<float> m_energyE2Max{this, "E2EnergyMax", -1, ""};
65 Gaudi::Property<float> m_gainE2{this, "GainE2", -1, ""};
66 Gaudi::Property<float> m_energyE3Min{this, "E3EnergyMin", -1, ""};
67 Gaudi::Property<float> m_energyE3Max{this, "E3EnergyMax", -1, ""};
68 Gaudi::Property<float> m_gainE3{this, "GainE3", -1, ""};
69 Gaudi::Property<float> m_energyE4Min{this, "E4EnergyMin", -1, ""};
70 Gaudi::Property<float> m_energyE4Max{this, "E4EnergyMax", -1, ""};
71 Gaudi::Property<float> m_gainE4{this, "GainE4", -1, ""};
72 //
73 Gaudi::Property<bool> m_do1DHistograms{this, "Do1DHistograms", false, ""};
74 Gaudi::Property<bool> m_do2DHistograms{this, "Do2DHistograms", false, ""};
75 Gaudi::Property<bool> m_doCellHistograms{this, "DoCellHistograms", false, ""};
76 Gaudi::Property<bool> m_doEnergyDiffHistograms{this, "DoEnergyDiffHistograms", false, ""};
77 Gaudi::Property<float> m_energyDiffThreshold{this, "EnergyDiffThreshold", 2000, ""};
78 Gaudi::Property<bool> m_doEnergyProfiles{this, "DoEnergyProfiles", true, ""};
79 Gaudi::Property<bool> m_doEventCleaning{this, "DoEventCleaning", true, ""};
80 Gaudi::Property<bool> m_doJetCleaning{this, "DoJetCleaning", false, ""};
81 Gaudi::Property<float> m_jetTrackingEtaLimit{this, "JetTrackingEtaLimit", 2.4, ""};
82 Gaudi::Property<float> m_jvtThreshold{this, "JvtThreshold", 0.59, ""};
83 Gaudi::Property<std::vector<float>> m_cellEnergyUpperLimitsHG{this,
84 "CellEnergyUpperLimitsHG", {}, "Energy upper limits of the HG cell-time histograms"};
85 Gaudi::Property<std::vector<float>> m_cellEnergyUpperLimitsLG{this,
86 "CellEnergyUpperLimitsLG", {}, "Energy upper limits of the LG cell-time histograms"};
87
88 ToolHandle<ITileBadChanTool> m_tileBadChanTool{this,
89 "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};
90
91 // JVT
92 ToolHandle<IJetUpdateJvt> m_jvt{this, "JVT", "", ""};
93
94 // event/jet cleaning
95 ToolHandle<IJetSelector> m_jetCleaningTool{this, "JetCleaningTool", "", ""};
96 ToolHandle<ECUtils::IEventCleaningTool> m_eventCleaningTool{this, "EventCleaningTool", "", ""};
97
98
100 "JetContainer", "AntiKt4EMTopoJets", "Jet container for monitoring"};
101
103 "CaloCellContainer", "AllCalo", "Calo cell container name"};
104
107
109
110};
111
112#endif // TILEMONITORING_TILEJETMONITORALGORITHM
Header file to be included by clients of the Monitored infrastructure.
Property holding a SG store/key/clid from which a ReadHandle is made.
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Property holding a SG store/key/clid from which a ReadHandle is made.
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
Gaudi::Property< bool > m_do1DHistograms
StatusCode fillTimeHistograms(const xAOD::Jet &jet, uint32_t lumiBlock, std::set< Identifier > &usedCells) const
Gaudi::Property< float > m_gainE2
std::string cellName(const int ros, const int sample, const int tower, const int module) const
Gaudi::Property< float > m_gainE4
ToolHandle< ITileBadChanTool > m_tileBadChanTool
const TileCablingService * m_cabling
TileCabling instance.
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Gaudi::Property< float > m_energyDiffThreshold
Gaudi::Property< bool > m_doCellHistograms
Gaudi::Property< bool > m_doJetCleaning
Gaudi::Property< float > m_gainE1
Gaudi::Property< float > m_energyE3Min
Gaudi::Property< float > m_jetEtaMax
Gaudi::Property< bool > m_doEnergyProfiles
Gaudi::Property< bool > m_doEnergyDiffHistograms
Gaudi::Property< float > m_energyE2Min
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
Gaudi::Property< float > m_energyE4Max
Gaudi::Property< bool > m_doEventCleaning
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsLG
Gaudi::Property< float > m_energyE1Min
bool matchesEnergyRange(const int sample, const int tower, const float energy, const int gain) const
Gaudi::Property< float > m_jetPtMin
ToolHandle< IJetSelector > m_jetCleaningTool
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsHG
Gaudi::Property< bool > m_do2DHistograms
bool isGoodChannel(int part, int module, int channel, uint32_t bad, unsigned int qbit, Identifier id) const
ToolHandle< IJetUpdateJvt > m_jvt
Gaudi::Property< float > m_energyE2Max
Gaudi::Property< float > m_gainE3
bool isGoodJet(const xAOD::Jet &jet) const
Gaudi::Property< float > m_energyChanMax
std::string sampleName(const int ros, const int sample, const int tower) const
Gaudi::Property< float > m_jetTrackingEtaLimit
Gaudi::Property< float > m_energyE3Max
Gaudi::Property< float > m_gain
Gaudi::Property< float > m_energyE1Max
ToolHandle< ECUtils::IEventCleaningTool > m_eventCleaningTool
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Gaudi::Property< float > m_energyChanMin
unsigned int findIndex(const int gain, const float energy) const
bool isGoodEvent(const EventContext &ctx) const
Gaudi::Property< float > m_jetPtMax
Gaudi::Property< float > m_energyE4Min
Gaudi::Property< float > m_jvtThreshold
bool passesJvt(const xAOD::Jet &jet) const
Jet_v1 Jet
Definition of the current "jet version".
void initialize()