ATLAS Offline Software
Loading...
Searching...
No Matches
LArNoiseBursts.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef LARCAFJOBS_LARNOISEBURSTS_H
6#define LARCAFJOBS_LARNOISEBURSTS_H
7
8#include "GaudiKernel/ToolHandle.h"
10#include "GaudiKernel/ObjectVector.h"
11#include "GaudiKernel/AlgTool.h"
12
13#include "CLHEP/Units/SystemOfUnits.h"
14#include "GaudiKernel/ITHistSvc.h"
16
17//LAr services:
18#include "Identifier/Range.h"
27
28// Trigger
31
32// Electrons
34
35//STL:
36#include <string>
37#include <bitset>
38
39
40class LArOnlineID;
41class LArElectrodeID;
42class HWIdentifier;
43class LArOnlineIDStrHelper;
44class LArEM_ID;
45class LArHEC_ID;
46class LArFCAL_ID;
47class CaloNoise;
48
49class TileTBID;
50class TgcIdHelper;
51
52class TTree;
53
54class LArHVLineID;
55
57
58 public:
59
60 LArNoiseBursts(const std::string& name, ISvcLocator* pSvcLocator);
61 virtual ~LArNoiseBursts() = default;
62
63 virtual StatusCode initialize() override;
64 virtual StatusCode finalize() override;
65 virtual StatusCode execute() override;
66 virtual StatusCode clear();
67
68 private:
69
71 StatusCode doTrigger();
72 StatusCode doEventProperties();
73 StatusCode doLArNoiseBursts();
74
75 //functions
77
78 StatusCode fillCell(HWIdentifier onlID
79 , float eCalo
80 , float qfactor
82 , const LArOnOffIdMapping* cabling
83 , const LArBadChannelCont* bcCont
84 , const CaloNoise& totalNoise
85 , const CaloDetDescrManager* caloMgr);
86
87 private:
88
89 ServiceHandle<ITHistSvc> m_thistSvc{this,"THistSvc","THistSvc"};
90
91 TTree* m_tree;
92
93 SG::ReadCondHandleKey<LArOnOffIdMapping> m_cablingKey { this, "CablingKey","LArOnOffIdMap","SG Key of LArOnOffIdMapping object"};
94 SG::ReadCondHandleKey<LArBadChannelCont> m_BCKey { this, "BadChanKey","LArBadChannel","SG Key of LArBadChannelCont object"};
96 { this, "TotalNoiseKey", "totalNoise", "SG key for total noise" };
98 {this, "BunchCrossingCondDataKey", "BunchCrossingData" ,"SG Key of BunchCrossing CDO"};
99 /*Tools*/
100 PublicToolHandle< Trig::TrigDecisionTool > m_trigDec{this, "TrigDecisionTool", "", "Handle to the TrigDecisionTool"};
101
102 SG::ReadHandleKey<LArNoisyROSummary> m_NoisyROKey { this, "LArNoisyROSummaryKey","LArNoisyROSummary","SG Key of LArNoisyROSummar object"};
103 /*services*/
111 , "CaloDetDescrManager"
112 , "CaloDetDescrManager"
113 , "SG Key for CaloDetDescrManager in the Condition Store" };
114
115
116 // Electrons
118
119 /*event cuts */
122 unsigned int m_frontbunches;
124
125 /*declaration of branches*/
134 unsigned long m_nt_evtId;
139 //int m_nt_ntracks;
142 std::vector<int> m_nt_isBunchesInFront;
145 unsigned int m_nt_atlasready;
146 unsigned int m_nt_stablebeams;
147 std::vector<std::string> m_nt_streamTagName;
148 std::vector<std::string> m_nt_streamTagType;
149
150 // LAr event bit info
162
164 // bad HV lines
165 std::vector<unsigned int> m_nt_badHVlines;
166
167 // NoiseBurst trigger
176
191
192 //LAr Time variables
197
198
199 //Quantites for noisy cells
200 std::vector<float> m_nt_energycell;
201 std::vector<float> m_nt_qfactorcell;
202 std::vector<float> m_nt_phicell;
203 std::vector<float> m_nt_etacell;
204 std::vector<float> m_nt_signifcell;
205 //float m_nt_noisycellpercent;
206 std::vector<short> m_nt_barrelec_noisy;
207 std::vector<short> m_nt_posneg_noisy;
208 std::vector<short> m_nt_ft_noisy;
209 std::vector<short> m_nt_slot_noisy;
210 std::vector<short> m_nt_channel_noisy;
211 std::vector<short> m_nt_cellpartlayerindex;
212 std::vector< unsigned int > m_nt_cellIdentifier;
213 std::vector< unsigned int > m_nt_onlIdentifier;
214 std::vector<float> m_nt_noisycellpart;
215 std::vector<int> m_nt_noisycellHVphi;
216 std::vector<int> m_nt_noisycellHVeta;
217 std::vector<std::vector<short> > m_nt_samples;
218 std::vector<int> m_nt_gain;
219 std::vector<int> m_nt_isbadcell;
220
221 std::vector<int> m_nt_partition;
222 std::vector<int> m_nt_layer;
223
224 //Quanties for the saturated cells
225 std::vector<int> m_nt_isbadcell_sat;
226 std::vector<int> m_nt_barrelec_sat;
227 std::vector<int> m_nt_posneg_sat;
228 std::vector<short> m_nt_ft_sat;
229 std::vector<short> m_nt_slot_sat;
230 std::vector<short> m_nt_channel_sat;
231 std::vector<int> m_nt_partition_sat;
232 std::vector<float> m_nt_energy_sat;
233 std::vector<float> m_nt_phicell_sat;
234 std::vector<float> m_nt_etacell_sat;
235 std::vector<int> m_nt_layer_sat;
236 std::vector<unsigned int> m_nt_cellIdentifier_sat;
237
238};
239
240#endif // LArNoiseBursts_H
241
Replaces the BunchCrossing AlgTool used in run1/2.
Definition of CaloDetDescrManager.
LArBadXCont< LArBadChannel > LArBadChannelCont
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
This class provides the client interface for accessing the detector description information common to...
Helper class for LArEM offline identifiers.
Definition LArEM_ID.h:111
Helper for the Liquid Argon Calorimeter cell at the electrode level.
Helper class for LArFCAL offline identifiers.
Definition LArFCAL_ID.h:49
Helper class for LArHEC offline identifiers.
Definition LArHEC_ID.h:76
Helper for the Liquid Argon Calorimeter High-Voltage identifiers.
Definition LArHVLineID.h:43
std::vector< short > m_nt_cellpartlayerindex
std::vector< float > m_nt_etacell
const LArHEC_ID * m_LArHEC_IDHelper
const LArHVLineID * m_LArHVLineIDHelper
SG::ReadCondHandleKey< CaloNoise > m_totalNoiseKey
bool m_nt_larflag_mediumSaturatedDQ
bool m_nt_larflag_dataCorruptedVeto
std::vector< short > m_nt_ft_sat
std::vector< float > m_nt_signifcell
std::vector< int > m_nt_noisycellHVphi
bool m_nt_larflag_tightSaturatedDQ
std::vector< float > m_nt_phicell
std::vector< unsigned int > m_nt_badHVlines
virtual StatusCode clear()
Clear - clear CBNT members.
std::vector< int > m_nt_partition
bool m_nt_EF_j165_u0uchad_LArNoiseBurstT
bool m_nt_EF_j30_u0uchad_empty_LArNoiseBurst
int GetPartitionLayerIndex(const Identifier &id)
unsigned int m_nt_stablebeams
std::vector< short > m_nt_posneg_noisy
StatusCode doLArNoiseBursts()
virtual StatusCode finalize() override
Finalize - delete any memory allocation from the heap.
std::vector< float > m_nt_etacell_sat
bool m_nt_EF_j165_u0uchad_LArNoiseBurst
bool m_nt_EF_j55_u0uchad_firstempty_LArNoiseBurstT
bool m_nt_EF_j35_u0uchad_firstempty_LArNoiseBurst
const LArElectrodeID * m_LArElectrodeIDHelper
bool m_nt_EF_xe45_LArNoiseBurst
std::vector< int > m_nt_layer_sat
std::vector< float > m_nt_energycell
const LArEM_ID * m_LArEM_IDHelper
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
bool m_nt_EF_j130_u0uchad_LArNoiseBurstT
ServiceHandle< ITHistSvc > m_thistSvc
std::vector< float > m_nt_energy_sat
std::vector< short > m_nt_barrelec_noisy
std::vector< short > m_nt_slot_noisy
std::vector< int > m_nt_isbadcell
bool m_nt_EF_xe55_LArNoiseBurst
bool m_nt_larflag_noiseBurstVeto
const LArOnlineID * m_LArOnlineIDHelper
std::vector< int > m_nt_noisycellHVeta
SG::ReadCondHandleKey< LArBadChannelCont > m_BCKey
bool m_nt_EF_j55_u0uchad_empty_LArNoiseBurst
std::vector< int > m_nt_partition_sat
std::vector< int > m_nt_layer
std::vector< float > m_nt_noisycellpart
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
std::vector< int > m_nt_posneg_sat
SG::ReadCondHandleKey< BunchCrossingCondData > m_bcDataKey
StatusCode doTrigger()
methods called by execute()
bool m_nt_EF_j80_u0uchad_LArNoiseBurstT
virtual ~LArNoiseBursts()=default
std::vector< int > m_nt_barrelec_sat
std::string m_elecContainerName
std::vector< std::string > m_nt_streamTagType
bool m_nt_EF_j35_u0uchad_empty_LArNoiseBurst
std::vector< int > m_nt_isbadcell_sat
SG::ReadHandleKey< LArNoisyROSummary > m_NoisyROKey
bool m_nt_EF_xe60_LArNoiseBurst
std::vector< float > m_nt_qfactorcell
LArNoiseBursts(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
bool m_nt_EF_j55_u0uchad_firstempty_LArNoiseBurst
std::vector< short > m_nt_slot_sat
std::vector< float > m_nt_phicell_sat
unsigned int m_nt_atlasready
bool m_nt_larflag_dataCorrupted
std::vector< unsigned int > m_nt_cellIdentifier_sat
std::vector< unsigned int > m_nt_cellIdentifier
std::vector< unsigned int > m_nt_onlIdentifier
std::vector< int > m_nt_gain
StatusCode fillCell(HWIdentifier onlID, float eCalo, float qfactor, CaloGain::CaloGain gain, const LArOnOffIdMapping *cabling, const LArBadChannelCont *bcCont, const CaloNoise &totalNoise, const CaloDetDescrManager *caloMgr)
virtual StatusCode execute() override
Execute - on event by event.
unsigned int m_frontbunches
bool m_nt_EF_j100_u0uchad_LArNoiseBurstT
bool m_nt_larflag_mnbTight_psveto
uint8_t m_nt_badHVPartitions
unsigned long m_nt_evtId
std::vector< short > m_nt_ft_noisy
StatusCode doEventProperties()
const LArFCAL_ID * m_LArFCAL_IDHelper
std::vector< std::vector< short > > m_nt_samples
std::vector< short > m_nt_channel_sat
std::vector< short > m_nt_channel_noisy
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
std::vector< int > m_nt_isBunchesInFront
std::vector< std::string > m_nt_streamTagName
Property holding a SG store/key/clid from which a ReadHandle is made.
Helper class for TileCal offline identifiers of ancillary testbeam detectors and MBTS.
void initialize()