ATLAS Offline Software
CaloTowerVecMon.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 
6 // ********************************************************************
7 // NAME: CaloTowerVecMon.cxx
8 //
9 // AUTHOR: Lee Sawyer
10 // CREATED: 1 Feb 2009
11 // Manager Anirvan Sircar May 2010
12 // D. Hu (Jun 2011 - May 2012)
13 // L. Sawyer (2013-)
14 // ********************************************************************
15 
16 #ifndef CALOTOWERMON_H
17 #define CALOTOWERMON_H
18 
20 
21 #include "GaudiKernel/ToolHandle.h"
22 
24 
26 
27 #include "Identifier/Identifier.h"
28 
29 #include "CaloEvent/CaloTowerContainer.h"
30 
31 #include <algorithm>
32 #include <stdint.h>
33 #include <string>
34 #include <vector>
35 #include <math.h>
36 #include <functional>
37 #include <set>
38 #include <map>
39 #include "TMath.h"
40 #include "TH1D.h"
41 #include "TH2D.h"
42 #include "TProfile2D.h"
43 
44 namespace Trig {
45  class TrigDecisionTool;
46  class ChainGroup;
47 }
48 
50 
51  public:
52 
53  CaloTowerVecMon(const std::string & type, const std::string& name, const IInterface* parent);
54  virtual ~CaloTowerVecMon();
55 
56  virtual StatusCode initialize();
58  virtual StatusCode bookHistograms();
59  virtual StatusCode procHistograms();
60  virtual StatusCode fillHistograms();
61 
62 
63  private:
64  void initHists();
65 
67 
68  StatusCode checkTimeGran(bool isNewEventsBlock, bool isNewLumiBlock, bool isNewRun, Interval_t& theinterval);
69  void bookTwrPreHists(const Interval_t theinterval);
70  void bookCellHists(const Interval_t theinterval);
71  void bookNothrEnHists(const Interval_t theinterval);
72  void bookMuthrHists(const Interval_t theinterval);
73  void bookTwrStatHists(const Interval_t theinterval);
74 
75  StatusCode checkFilters(bool& ifPass);
76  void fillTrigPara();
77  void fillTwrPreHists(const CaloTowerContainer* towerCont );
78  void fillCellHists(const CaloTower* twr);
79  void fillNothrEnHists(const CaloTower* twr);
80  void fillMuthrHists(const CaloTower* twr);
81  void initTwrStat();
82  void fillTwrStat(const CaloTower* twr);
83  void fillTwrStatHists();
84 
85  enum EthreshLvl {
86  NO_E = 0,
87  LOW_E = 1,
88  LOWMED_E = 2,
89  MED_E = 3,
90  MEDHIGH_E = 4,
91  HIGH_E = 5,
92  MAX_E = 6
93  };
94 
95  std::string m_towerContainerName;
96 
97  std::string m_timeGran;
98 
99  // Handles on various tools
101  ToolHandle<IDQFilterTool> m_BadLBTool;
103  ToolHandle<IDQFilterTool> m_ReadyFilterTool;
105 
106  // trigger Awareness:
107  bool m_useTriggerCaloMon = false;
108  ToolHandle<Trig::TrigDecisionTool> m_trigDec;
109  std::string m_TriggerNames1;
110  std::string m_TriggerNames2;
111  std::string m_TriggerNames3;
121 
122  // thresholds
124  float m_Ethresh[MAX_E];
127 
128  // twr stat variables
131  float m_eta_most;
132  float m_phi_most;
134 
135  // twr pre hists
136  TH1F* m_n_calos = nullptr;
137  TH1F* m_n_twrs = nullptr;
138 
139  // cell hists
143 
144  //No threshold energy hists
145  TH1F* m_twr_e = nullptr;
147  TH1F* m_negtwr_e_thresh = nullptr;
148  TH1F* m_twr_et_FcalA0 = nullptr;
149  TH1F* m_twr_et_FcalA1 = nullptr;
150  TH1F* m_twr_et_FcalA2 = nullptr;
151  TH1F* m_twr_et_FcalC0 = nullptr;
152  TH1F* m_twr_et_FcalC1 = nullptr;
153  TH1F* m_twr_et_FcalC2 = nullptr;
154 
155  // multi-threshold hists
157 
162 
167 
172 
177 
182 
183  // twr stat hists
184  TH1F* m_twr_et_Fcal0 = nullptr;
185  TH1F* m_twr_et_Fcal1 = nullptr;
186  TH1F* m_twr_et_Fcal2 = nullptr;
187 
188  TH1F* m_twrMost_e = nullptr;
189  TH2F* m_twrMost_etaphi = nullptr;
190  TH1F* m_twrMost_nCells = nullptr;
191 };
192 
193 #endif // CaloTowerVecMon_H
CaloTowerVecMon::m_twr_e_total_phiall_thresh
TH1F * m_twr_e_total_phiall_thresh[MAX_E]
Definition: CaloTowerVecMon.h:170
CaloTowerVecMon::m_etaphi_hotrat_tower
TH2F * m_etaphi_hotrat_tower
Definition: CaloTowerVecMon.h:141
CaloTowerVecMon::m_twr_et_FcalA1
TH1F * m_twr_et_FcalA1
Definition: CaloTowerVecMon.h:149
CaloTowerVecMon::fillTwrStatHists
void fillTwrStatHists()
Definition: CaloTowerVecMon.cxx:917
ManagedMonitorToolBase::Interval_t
Interval_t
An enumeration describing how detailed a particular monitoring object is.
Definition: ManagedMonitorToolBase.h:114
CaloTowerVecMon::m_energy_most
float m_energy_most
Definition: CaloTowerVecMon.h:130
CaloTowerVecMon::fillNothrEnHists
void fillNothrEnHists(const CaloTower *twr)
Definition: CaloTowerVecMon.cxx:820
CaloTowerVecMon::m_twr_nCells_phiall_thresh
TProfile * m_twr_nCells_phiall_thresh[MAX_E]
Definition: CaloTowerVecMon.h:175
CaloTowerVecMon::m_isTrigDefined1
bool m_isTrigDefined1
Definition: CaloTowerVecMon.h:115
CaloTowerVecMon::m_threshtests
int m_threshtests
Definition: CaloTowerVecMon.h:123
CaloTowerVecMon::m_postwr_e_thresh
TH1F * m_postwr_e_thresh
Definition: CaloTowerVecMon.h:146
CaloTowerVecMon::m_twr_e_trans_phi_thresh
TProfile * m_twr_e_trans_phi_thresh[MAX_E][3]
Definition: CaloTowerVecMon.h:163
CaloTowerVecMon::MAX_E
@ MAX_E
Definition: CaloTowerVecMon.h:92
CaloTowerVecMon::fillHistograms
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
Definition: CaloTowerVecMon.cxx:685
CaloTowerVecMon::MEDHIGH_E
@ MEDHIGH_E
Definition: CaloTowerVecMon.h:90
Trig
The common trigger namespace for trigger analysis tools.
Definition: CaloTowerVecMon.h:44
CaloTowerVecMon::m_Trigger1
const Trig::ChainGroup * m_Trigger1
Definition: CaloTowerVecMon.h:112
ManagedMonitorToolBase
Provides functionality for users to implement and save histograms, ntuples, and summary data,...
Definition: ManagedMonitorToolBase.h:74
TH2F
Definition: rootspy.cxx:420
CaloTowerVecMon::m_TriggerNames2
std::string m_TriggerNames2
Definition: CaloTowerVecMon.h:110
CaloTowerVecMon::m_twr_et_FcalC0
TH1F * m_twr_et_FcalC0
Definition: CaloTowerVecMon.h:151
CaloTowerVecMon::m_twr_e_total_etaphi_thresh
TH2F * m_twr_e_total_etaphi_thresh[MAX_E]
Definition: CaloTowerVecMon.h:171
CaloTowerVecMon::initTwrStat
void initTwrStat()
Definition: CaloTowerVecMon.cxx:890
CaloTowerVecMon::m_twr_et_Fcal0
TH1F * m_twr_et_Fcal0
Definition: CaloTowerVecMon.h:184
CaloTowerVecMon::m_twr_et_Fcal1
TH1F * m_twr_et_Fcal1
Definition: CaloTowerVecMon.h:185
CaloTowerVecMon
Definition: CaloTowerVecMon.h:49
CaloTowerVecMon::bookMuthrHists
void bookMuthrHists(const Interval_t theinterval)
Definition: CaloTowerVecMon.cxx:427
CaloTowerVecMon::m_filltotal
bool m_filltotal
Definition: CaloTowerVecMon.h:126
TProfile2D
Definition: rootspy.cxx:531
CaloTowerVecMon::m_twrMost_etaphi
TH2F * m_twrMost_etaphi
Definition: CaloTowerVecMon.h:189
CaloTowerVecMon::MED_E
@ MED_E
Definition: CaloTowerVecMon.h:89
CaloTowerVecMon::m_TriggerNames3
std::string m_TriggerNames3
Definition: CaloTowerVecMon.h:111
CaloTowerVecMon::EthreshLvl
EthreshLvl
Definition: CaloTowerVecMon.h:85
TrigDecisionTool.h
CaloTowerVecMon::m_BadLBTool
ToolHandle< IDQFilterTool > m_BadLBTool
Definition: CaloTowerVecMon.h:101
CaloTowerVecMon::m_ratioE_leadcell_tower
TH1F * m_ratioE_leadcell_tower
Definition: CaloTowerVecMon.h:140
CaloTowerVecMon::fillTwrPreHists
void fillTwrPreHists(const CaloTowerContainer *towerCont)
Definition: CaloTowerVecMon.cxx:779
CaloTowerVecMon::m_phi_most
float m_phi_most
Definition: CaloTowerVecMon.h:132
CaloTowerVecMon::m_useReadyFilterTool
bool m_useReadyFilterTool
Definition: CaloTowerVecMon.h:102
Trig::TrigDecisionTool
Definition: TrigDecisionTool.h:65
CaloTowerVecMon::bookTwrStatHists
void bookTwrStatHists(const Interval_t theinterval)
Definition: CaloTowerVecMon.cxx:639
CaloTowerVecMon::m_twr_eta_thresh
TH1F * m_twr_eta_thresh[MAX_E]
Definition: CaloTowerVecMon.h:179
CaloTowerVecMon::m_twr_e_phiall_thresh
TProfile * m_twr_e_phiall_thresh[MAX_E]
Definition: CaloTowerVecMon.h:160
CaloTowerVecMon::m_useLArNoisyAlg
bool m_useLArNoisyAlg
Definition: CaloTowerVecMon.h:104
CaloTowerVecMon::m_timeGran
std::string m_timeGran
Definition: CaloTowerVecMon.h:97
CaloTowerVecMon::fillTwrStat
void fillTwrStat(const CaloTower *twr)
Definition: CaloTowerVecMon.cxx:898
CaloTowerVecMon::m_twr_etaphi_thresh
TH2F * m_twr_etaphi_thresh[MAX_E]
Definition: CaloTowerVecMon.h:181
CaloTowerVecMon::m_twrMost_nCells
TH1F * m_twrMost_nCells
Definition: CaloTowerVecMon.h:190
CaloTowerVecMon::m_twr_nCells_etaphi_thresh
TProfile2D * m_twr_nCells_etaphi_thresh[MAX_E]
Definition: CaloTowerVecMon.h:176
CaloTowerVecMon::m_twr_e_eta_thresh
TProfile * m_twr_e_eta_thresh[MAX_E]
Definition: CaloTowerVecMon.h:159
CaloTowerVecMon::fillCellHists
void fillCellHists(const CaloTower *twr)
Definition: CaloTowerVecMon.cxx:787
ManagedMonitorToolBase.h
CaloTowerVecMon::m_negtwr_e_thresh
TH1F * m_negtwr_e_thresh
Definition: CaloTowerVecMon.h:147
CaloTowerVecMon::m_twr_et_FcalC2
TH1F * m_twr_et_FcalC2
Definition: CaloTowerVecMon.h:153
CaloTowerVecMon::m_twr_e_trans_etaphi_thresh
TProfile2D * m_twr_e_trans_etaphi_thresh[MAX_E]
Definition: CaloTowerVecMon.h:166
CaloTowerContainer
Storable container class for CaloTower.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloTowerContainer.h:77
CaloTowerVecMon::bookCellHists
void bookCellHists(const Interval_t theinterval)
Definition: CaloTowerVecMon.cxx:339
CaloTowerVecMon::m_n_calos
TH1F * m_n_calos
Definition: CaloTowerVecMon.h:136
CaloTowerVecMon::m_isTrigEvent2
bool m_isTrigEvent2
Definition: CaloTowerVecMon.h:119
CaloTowerVecMon::m_twr_phiall_thresh
TH1F * m_twr_phiall_thresh[MAX_E]
Definition: CaloTowerVecMon.h:180
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloTowerVecMon::bookHistograms
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
Definition: CaloTowerVecMon.cxx:257
CaloTowerVecMon::m_ReadyFilterTool
ToolHandle< IDQFilterTool > m_ReadyFilterTool
Definition: CaloTowerVecMon.h:103
CaloTowerVecMon::m_towerContainerName
std::string m_towerContainerName
Definition: CaloTowerVecMon.h:95
CaloTowerVecMon::m_twr_nCells_eta_thresh
TProfile * m_twr_nCells_eta_thresh[MAX_E]
Definition: CaloTowerVecMon.h:174
CaloTowerVecMon::m_isTrigEvent3
bool m_isTrigEvent3
Definition: CaloTowerVecMon.h:120
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloTowerVecMon::m_n_twrs
TH1F * m_n_twrs
Definition: CaloTowerVecMon.h:137
CaloTowerVecMon::NO_E
@ NO_E
Definition: CaloTowerVecMon.h:86
CaloTowerVecMon::fillMuthrHists
void fillMuthrHists(const CaloTower *twr)
Definition: CaloTowerVecMon.cxx:842
CaloTowerVecMon::m_twr_e_trans_phiall_thresh
TProfile * m_twr_e_trans_phiall_thresh[MAX_E]
Definition: CaloTowerVecMon.h:165
CaloTowerVecMon::retrieveTools
StatusCode retrieveTools()
Definition: CaloTowerVecMon.cxx:185
CaloTowerVecMon::m_twr_e_total_eta_thresh
TH1F * m_twr_e_total_eta_thresh[MAX_E]
Definition: CaloTowerVecMon.h:169
CaloTowerVecMon::initialize
virtual StatusCode initialize()
Definition: CaloTowerVecMon.cxx:172
CaloTower
Data class for calorimeter cell towers.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloTower.h:55
CaloTowerVecMon::m_Ethresh
float m_Ethresh[MAX_E]
Definition: CaloTowerVecMon.h:124
Trig::ChainGroup
Definition: Trigger/TrigAnalysis/TrigDecisionTool/TrigDecisionTool/ChainGroup.h:51
CaloTowerVecMon::m_twr_etaphi_Et_thresh
TH2F * m_twr_etaphi_Et_thresh[MAX_E]
Definition: CaloTowerVecMon.h:156
CaloTowerVecMon::m_TriggerNames1
std::string m_TriggerNames1
Definition: CaloTowerVecMon.h:109
CaloTowerVecMon::procHistograms
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
Definition: CaloTowerVecMon.cxx:927
CaloTowerVecMon::bookNothrEnHists
void bookNothrEnHists(const Interval_t theinterval)
Definition: CaloTowerVecMon.cxx:364
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloTowerVecMon::m_twr_e
TH1F * m_twr_e
Definition: CaloTowerVecMon.h:145
CaloTowerVecMon::m_twr_et_FcalA2
TH1F * m_twr_et_FcalA2
Definition: CaloTowerVecMon.h:150
TProfile
Definition: rootspy.cxx:515
CaloTowerVecMon::m_twr_et_FcalA0
TH1F * m_twr_et_FcalA0
Definition: CaloTowerVecMon.h:148
CaloTowerVecMon::~CaloTowerVecMon
virtual ~CaloTowerVecMon()
CaloTowerVecMon::m_twr_e_trans_eta_thresh
TProfile * m_twr_e_trans_eta_thresh[MAX_E]
Definition: CaloTowerVecMon.h:164
CaloTowerVecMon::CaloTowerVecMon
CaloTowerVecMon(const std::string &type, const std::string &name, const IInterface *parent)
Definition: CaloTowerVecMon.cxx:27
CaloTowerVecMon::LOW_E
@ LOW_E
Definition: CaloTowerVecMon.h:87
CaloTowerVecMon::HIGH_E
@ HIGH_E
Definition: CaloTowerVecMon.h:91
CaloTowerVecMon::m_etaphi_avgenergy_hotrat_tower
TProfile2D * m_etaphi_avgenergy_hotrat_tower
Definition: CaloTowerVecMon.h:142
CaloTowerVecMon::m_twr_phi_thresh
TH1F * m_twr_phi_thresh[MAX_E][3]
Definition: CaloTowerVecMon.h:178
CaloTowerVecMon::m_isTrigEvent1
bool m_isTrigEvent1
Definition: CaloTowerVecMon.h:118
CaloTowerVecMon::m_useBadLBTool
bool m_useBadLBTool
Definition: CaloTowerVecMon.h:100
CaloTowerVecMon::checkFilters
StatusCode checkFilters(bool &ifPass)
Definition: CaloTowerVecMon.cxx:724
TH1F
Definition: rootspy.cxx:320
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloTowerVecMon::m_twr_et_FcalC1
TH1F * m_twr_et_FcalC1
Definition: CaloTowerVecMon.h:152
CaloTowerVecMon::m_twrMost_e
TH1F * m_twrMost_e
Definition: CaloTowerVecMon.h:188
CaloTowerVecMon::m_twr_nCells_phi_thresh
TProfile * m_twr_nCells_phi_thresh[MAX_E][3]
Definition: CaloTowerVecMon.h:173
CaloTowerVecMon::bookTwrPreHists
void bookTwrPreHists(const Interval_t theinterval)
Definition: CaloTowerVecMon.cxx:322
CaloTowerVecMon::m_Trigger2
const Trig::ChainGroup * m_Trigger2
Definition: CaloTowerVecMon.h:113
CaloTowerVecMon::fillTrigPara
void fillTrigPara()
Definition: CaloTowerVecMon.cxx:754
CaloTowerVecMon::m_isTrigDefined3
bool m_isTrigDefined3
Definition: CaloTowerVecMon.h:117
CaloTowerVecMon::LOWMED_E
@ LOWMED_E
Definition: CaloTowerVecMon.h:88
CaloTowerVecMon::initHists
void initHists()
Definition: CaloTowerVecMon.cxx:103
CaloTowerVecMon::m_isTrigDefined2
bool m_isTrigDefined2
Definition: CaloTowerVecMon.h:116
CaloTowerVecMon::m_eta_most
float m_eta_most
Definition: CaloTowerVecMon.h:131
CaloTowerVecMon::m_useTriggerCaloMon
bool m_useTriggerCaloMon
Definition: CaloTowerVecMon.h:107
IDQFilterTool.h
CaloTowerVecMon::m_twr_e_phi_thresh
TProfile * m_twr_e_phi_thresh[MAX_E][3]
Definition: CaloTowerVecMon.h:158
CaloTowerVecMon::m_Trigger3
const Trig::ChainGroup * m_Trigger3
Definition: CaloTowerVecMon.h:114
CaloTowerVecMon::m_twr_et_Fcal2
TH1F * m_twr_et_Fcal2
Definition: CaloTowerVecMon.h:186
CaloTowerVecMon::checkTimeGran
StatusCode checkTimeGran(bool isNewEventsBlock, bool isNewLumiBlock, bool isNewRun, Interval_t &theinterval)
Definition: CaloTowerVecMon.cxx:277
CaloTowerVecMon::m_twr_e_etaphi_thresh
TProfile2D * m_twr_e_etaphi_thresh[MAX_E]
Definition: CaloTowerVecMon.h:161
CaloTowerVecMon::m_trigDec
ToolHandle< Trig::TrigDecisionTool > m_trigDec
Definition: CaloTowerVecMon.h:108
CaloTowerVecMon::m_Fcaltower_sumEt
float m_Fcaltower_sumEt
Definition: CaloTowerVecMon.h:129
CaloTowerVecMon::m_twr_e_total_phi_thresh
TH1F * m_twr_e_total_phi_thresh[MAX_E][3]
Definition: CaloTowerVecMon.h:168
CaloTowerVecMon::m_filltranse
bool m_filltranse
Definition: CaloTowerVecMon.h:125
CaloTowerVecMon::bookHistogramsRecurrent
virtual StatusCode bookHistogramsRecurrent()
An inheriting class should either override this function, bookHists() or bookHistograms().
Definition: CaloTowerVecMon.cxx:250
CaloTowerVecMon::m_ncells_most
int m_ncells_most
Definition: CaloTowerVecMon.h:133