ATLAS Offline Software
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 
14 #include "xAODJet/JetContainer.h"
16 
17 // JVT
19 // Jet cleaning
21 // Event cleaning
23 
24 
25 class TileCablingService;
26 class TileID;
27 class TileHWID;
28 
34 
35  public:
36 
37  TileJetMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator );
38  virtual ~TileJetMonitorAlgorithm();
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  bool matchesEnergyRange(const int sample, const int tower, const float energy, const int gain) const;
52 
53  Gaudi::Property<float> m_jetPtMin{this, "JetPtMin", 20000., "Threshold in MeV"};
54  Gaudi::Property<float> m_jetPtMax{this, "JetPtMax", 120000, ""};
55  Gaudi::Property<float> m_jetEtaMax{this, "JetEtaMax", 1.6, ""};
56  Gaudi::Property<float> m_energyChanMin{this, "ChannelEnergyMin", 2000, ""};
57  Gaudi::Property<float> m_energyChanMax{this, "ChannelEnergyMax", 4000, ""};
58  Gaudi::Property<float> m_gain{this, "Gain", 1, ""};
59  Gaudi::Property<float> m_energyE1Min{this, "E1EnergyMin", -1, ""};
60  Gaudi::Property<float> m_energyE1Max{this, "E1EnergyMax", -1, ""};
61  Gaudi::Property<float> m_gainE1{this, "GainE1", -1, ""};
62  Gaudi::Property<float> m_energyE2Min{this, "E2EnergyMin", -1, ""};
63  Gaudi::Property<float> m_energyE2Max{this, "E2EnergyMax", -1, ""};
64  Gaudi::Property<float> m_gainE2{this, "GainE2", -1, ""};
65  Gaudi::Property<float> m_energyE3Min{this, "E3EnergyMin", -1, ""};
66  Gaudi::Property<float> m_energyE3Max{this, "E3EnergyMax", -1, ""};
67  Gaudi::Property<float> m_gainE3{this, "GainE3", -1, ""};
68  Gaudi::Property<float> m_energyE4Min{this, "E4EnergyMin", -1, ""};
69  Gaudi::Property<float> m_energyE4Max{this, "E4EnergyMax", -1, ""};
70  Gaudi::Property<float> m_gainE4{this, "GainE4", -1, ""};
71  //
72  Gaudi::Property<bool> m_do1DHistograms{this, "Do1DHistograms", false, ""};
73  Gaudi::Property<bool> m_do2DHistograms{this, "Do2DHistograms", false, ""};
74  Gaudi::Property<bool> m_doEnergyDiffHistograms{this, "DoEnergyDiffHistograms", false, ""};
75  Gaudi::Property<float> m_energyDiffThreshold{this, "EnergyDiffThreshold", 2000, ""};
76  Gaudi::Property<bool> m_doEnergyProfiles{this, "DoEnergyProfiles", true, ""};
77  Gaudi::Property<bool> m_doEventCleaning{this, "DoEventCleaning", true, ""};
78  Gaudi::Property<bool> m_doJetCleaning{this, "DoJetCleaning", false, ""};
79  Gaudi::Property<float> m_jetTrackingEtaLimit{this, "JetTrackingEtaLimit", 2.4, ""};
80  Gaudi::Property<float> m_jvtThreshold{this, "JvtThreshold", 0.59, ""};
81  Gaudi::Property<std::vector<float>> m_cellEnergyUpperLimitsHG{this,
82  "CellEnergyUpperLimitsHG", {}, "Energy upper limits of the HG cell-time histograms"};
83  Gaudi::Property<std::vector<float>> m_cellEnergyUpperLimitsLG{this,
84  "CellEnergyUpperLimitsLG", {}, "Energy upper limits of the LG cell-time histograms"};
85 
86  ToolHandle<ITileBadChanTool> m_tileBadChanTool{this,
87  "TileBadChanTool", "TileBadChanTool", "Tile bad channel tool"};
88 
89  // JVT
90  ToolHandle<IJetUpdateJvt> m_jvt{this, "JVT", "", ""};
91 
92  // event/jet cleaning
93  ToolHandle<IJetSelector> m_jetCleaningTool{this, "JetCleaningTool", "", ""};
94  ToolHandle<ECUtils::IEventCleaningTool> m_eventCleaningTool{this, "EventCleaningTool", "", ""};
95 
96 
98  "JetContainer", "AntiKt4EMTopoJets", "Jet container for monitoring"};
99 
101  "CaloCellContainer", "AllCalo", "Calo cell container name"};
102 
103  const TileID* m_tileID;
105 
107 
108 };
109 
110 #endif // TILEMONITORING_TILEJETMONITORALGORITHM
TileJetMonitorAlgorithm::m_jetCleaningTool
ToolHandle< IJetSelector > m_jetCleaningTool
Definition: TileJetMonitorAlgorithm.h:93
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
bad
@ bad
Definition: SUSYToolsTester.cxx:95
TileJetMonitorAlgorithm::m_jetTrackingEtaLimit
Gaudi::Property< float > m_jetTrackingEtaLimit
Definition: TileJetMonitorAlgorithm.h:79
TileJetMonitorAlgorithm::passesJvt
bool passesJvt(const xAOD::Jet &jet) const
Definition: TileJetMonitorAlgorithm.cxx:516
TileJetMonitorAlgorithm::m_energyE3Max
Gaudi::Property< float > m_energyE3Max
Definition: TileJetMonitorAlgorithm.h:66
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
TileJetMonitorAlgorithm::m_energyE4Min
Gaudi::Property< float > m_energyE4Min
Definition: TileJetMonitorAlgorithm.h:68
IEventCleaningTool.h
TileJetMonitorAlgorithm
Definition: TileJetMonitorAlgorithm.py:1
TileJetMonitorAlgorithm::m_energyChanMax
Gaudi::Property< float > m_energyChanMax
Definition: TileJetMonitorAlgorithm.h:57
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TileJetMonitorAlgorithm::m_energyE3Min
Gaudi::Property< float > m_energyE3Min
Definition: TileJetMonitorAlgorithm.h:65
TileJetMonitorAlgorithm::m_gainE1
Gaudi::Property< float > m_gainE1
Definition: TileJetMonitorAlgorithm.h:61
TileJetMonitorAlgorithm::m_jetEtaMax
Gaudi::Property< float > m_jetEtaMax
Definition: TileJetMonitorAlgorithm.h:55
CaloCondBlobAlgs_fillNoiseFromASCII.gain
gain
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:110
TileJetMonitorAlgorithm::m_tileHWID
const TileHWID * m_tileHWID
Definition: TileJetMonitorAlgorithm.h:104
TileJetMonitorAlgorithm::m_cellEnergyUpperLimitsLG
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsLG
Definition: TileJetMonitorAlgorithm.h:83
TileJetMonitorAlgorithm::m_doJetCleaning
Gaudi::Property< bool > m_doJetCleaning
Definition: TileJetMonitorAlgorithm.h:78
TileJetMonitorAlgorithm::fillTimeHistograms
StatusCode fillTimeHistograms(const xAOD::Jet &jet, uint32_t lumiBlock, std::set< Identifier > &usedCells) const
Definition: TileJetMonitorAlgorithm.cxx:152
IJetSelector.h
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
TileJetMonitorAlgorithm::m_caloCellContainerKey
SG::ReadHandleKey< CaloCellContainer > m_caloCellContainerKey
Definition: TileJetMonitorAlgorithm.h:100
TileJetMonitorAlgorithm::isGoodChannel
bool isGoodChannel(int part, int module, int channel, uint32_t bad, unsigned int qbit, Identifier id) const
Definition: TileJetMonitorAlgorithm.cxx:438
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
TileJetMonitorAlgorithm::m_gainE3
Gaudi::Property< float > m_gainE3
Definition: TileJetMonitorAlgorithm.h:67
python.PyAthena.module
module
Definition: PyAthena.py:134
TileHWID
Helper class for TileCal online (hardware) identifiers.
Definition: TileHWID.h:49
TileJetMonitorAlgorithm::m_energyDiffThreshold
Gaudi::Property< float > m_energyDiffThreshold
Definition: TileJetMonitorAlgorithm.h:75
TileJetMonitorAlgorithm::m_jetPtMin
Gaudi::Property< float > m_jetPtMin
Definition: TileJetMonitorAlgorithm.h:53
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
TileJetMonitorAlgorithm::findIndex
unsigned int findIndex(const int gain, const float energy) const
Definition: TileJetMonitorAlgorithm.cxx:547
TileJetMonitorAlgorithm::isGoodEvent
bool isGoodEvent(const EventContext &ctx) const
Definition: TileJetMonitorAlgorithm.cxx:469
ParticleGun_FastCalo_ChargeFlip_Config.energy
energy
Definition: ParticleGun_FastCalo_ChargeFlip_Config.py:78
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:100
TileJetMonitorAlgorithm::m_jetContainerKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetContainerKey
Definition: TileJetMonitorAlgorithm.h:97
TileJetMonitorAlgorithm::m_energyE2Min
Gaudi::Property< float > m_energyE2Min
Definition: TileJetMonitorAlgorithm.h:62
TileID
Helper class for TileCal offline identifiers.
Definition: TileID.h:68
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthMonitorAlgorithm.h
TileJetMonitorAlgorithm::m_cabling
const TileCablingService * m_cabling
TileCabling instance.
Definition: TileJetMonitorAlgorithm.h:106
TileJetMonitorAlgorithm::m_do1DHistograms
Gaudi::Property< bool > m_do1DHistograms
Definition: TileJetMonitorAlgorithm.h:72
TileJetMonitorAlgorithm::m_jvt
ToolHandle< IJetUpdateJvt > m_jvt
Definition: TileJetMonitorAlgorithm.h:90
TileJetMonitorAlgorithm::m_energyE2Max
Gaudi::Property< float > m_energyE2Max
Definition: TileJetMonitorAlgorithm.h:63
TileJetMonitorAlgorithm::m_energyE4Max
Gaudi::Property< float > m_energyE4Max
Definition: TileJetMonitorAlgorithm.h:69
maskDeadModules.ros
ros
Definition: maskDeadModules.py:35
TileCablingService
Definition: TileCablingService.h:23
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
TileJetMonitorAlgorithm::m_energyE1Min
Gaudi::Property< float > m_energyE1Min
Definition: TileJetMonitorAlgorithm.h:59
TileJetMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: TileJetMonitorAlgorithm.cxx:33
TileJetMonitorAlgorithm::m_doEnergyDiffHistograms
Gaudi::Property< bool > m_doEnergyDiffHistograms
Definition: TileJetMonitorAlgorithm.h:74
TileJetMonitorAlgorithm::m_doEventCleaning
Gaudi::Property< bool > m_doEventCleaning
Definition: TileJetMonitorAlgorithm.h:77
TileJetMonitorAlgorithm::m_gainE4
Gaudi::Property< float > m_gainE4
Definition: TileJetMonitorAlgorithm.h:70
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
TileJetMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: TileJetMonitorAlgorithm.cxx:99
TileJetMonitorAlgorithm::m_energyE1Max
Gaudi::Property< float > m_energyE1Max
Definition: TileJetMonitorAlgorithm.h:60
CaloCellContainer.h
TileJetMonitorAlgorithm::m_do2DHistograms
Gaudi::Property< bool > m_do2DHistograms
Definition: TileJetMonitorAlgorithm.h:73
TileJetMonitorAlgorithm::m_jvtThreshold
Gaudi::Property< float > m_jvtThreshold
Definition: TileJetMonitorAlgorithm.h:80
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
JetContainer.h
TileJetMonitorAlgorithm::m_gainE2
Gaudi::Property< float > m_gainE2
Definition: TileJetMonitorAlgorithm.h:64
TileJetMonitorAlgorithm::m_energyChanMin
Gaudi::Property< float > m_energyChanMin
Definition: TileJetMonitorAlgorithm.h:56
TileJetMonitorAlgorithm::m_tileBadChanTool
ToolHandle< ITileBadChanTool > m_tileBadChanTool
Definition: TileJetMonitorAlgorithm.h:86
IJetUpdateJvt.h
TileJetMonitorAlgorithm::sampleName
std::string sampleName(const int ros, const int sample, const int tower) const
Definition: TileJetMonitorAlgorithm.cxx:373
TileJetMonitorAlgorithm::m_gain
Gaudi::Property< float > m_gain
Definition: TileJetMonitorAlgorithm.h:58
TileJetMonitorAlgorithm::~TileJetMonitorAlgorithm
virtual ~TileJetMonitorAlgorithm()
Definition: TileJetMonitorAlgorithm.cxx:30
TileJetMonitorAlgorithm::m_jetPtMax
Gaudi::Property< float > m_jetPtMax
Definition: TileJetMonitorAlgorithm.h:54
ITileBadChanTool.h
TileJetMonitorAlgorithm::isGoodJet
bool isGoodJet(const xAOD::Jet &jet) const
Definition: TileJetMonitorAlgorithm.cxx:531
TileJetMonitorAlgorithm::m_cellEnergyUpperLimitsHG
Gaudi::Property< std::vector< float > > m_cellEnergyUpperLimitsHG
Definition: TileJetMonitorAlgorithm.h:81
xAOD::lumiBlock
setTeId lumiBlock
Definition: L2StandAloneMuon_v1.cxx:327
TileJetMonitorAlgorithm::TileJetMonitorAlgorithm
TileJetMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: TileJetMonitorAlgorithm.cxx:22
TileJetMonitorAlgorithm::m_doEnergyProfiles
Gaudi::Property< bool > m_doEnergyProfiles
Definition: TileJetMonitorAlgorithm.h:76
TileJetMonitorAlgorithm::m_tileID
const TileID * m_tileID
Definition: TileJetMonitorAlgorithm.h:103
TileJetMonitorAlgorithm::matchesEnergyRange
bool matchesEnergyRange(const int sample, const int tower, const float energy, const int gain) const
Definition: TileJetMonitorAlgorithm.cxx:408
TileJetMonitorAlgorithm::m_eventCleaningTool
ToolHandle< ECUtils::IEventCleaningTool > m_eventCleaningTool
Definition: TileJetMonitorAlgorithm.h:94