ATLAS Offline Software
Loading...
Searching...
No Matches
ITkStripDataRateMonTool Class Reference

#include <ITkStripDataRateMonTool.h>

Inheritance diagram for ITkStripDataRateMonTool:
Collaboration diagram for ITkStripDataRateMonTool:

Public Member Functions

 ITkStripDataRateMonTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~ITkStripDataRateMonTool ()=default
virtual StatusCode initialize () override
void fill (const uint32_t offlineID, const std::vector< unsigned int > &encodedstream, const std::vector< std::bitset< 256 > > &hitMap) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

enum  Region { INVALID_REGION =-1 , REGION_BARREL , REGION_ENDCAP , N_REGIONS }
enum  Side { INVALID_SIDE =-1 , SIDE_POSITIVE , SIDE_NEGATIVE , N_SIDES }
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode bookHistograms (const std::vector< std::vector< float > > &barrel_z, const std::vector< std::vector< float > > &endcap_z)
void fillExpertPlots (const uint32_t offlineID) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< std::string > m_path { this, "MonitoringPath", "/DataRateMon/", "Name of directory for plots" }
Gaudi::Property< bool > m_doExpertPlots { this, "DoExpertPlots", false, "Enable expert plots" }
ServiceHandle< ITHistSvc > m_thistSvc {this, "HistSvc", "THistSvc", "The histogram service"}
const InDetDD::SCT_DetectorManagerm_detManager = nullptr
const SCT_IDm_stripIdHelper = nullptr
std::map< int, std::string > m_regionLabels
std::map< int, std::string > m_sideLabels
TH1 *m_encoded_streamLength ATLAS_THREAD_SAFE = nullptr
TH2 *m_h2_chip_hitmap[N_LAYERS][N_REGIONSATLAS_THREAD_SAFE = {}
TH2 *m_h2_chip_totmap[N_LAYERS][N_REGIONSATLAS_THREAD_SAFE = {}
TProfile *m_p_streamLength[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
TH2 *m_h2_streamLength[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
TProfile *m_p_dataRate[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
TH2 *m_h2_dataRate[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
TProfile *m_p_hits[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
TH2 *m_h2_hits[N_LAYERS][N_REGIONS][N_SIDESATLAS_THREAD_SAFE = {}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Static Private Attributes

static const int s_bitsPerPack = 32
static const int s_chipReadoutFrequency = 640000
static const int N_LAYERS =9

Detailed Description

Definition at line 34 of file ITkStripDataRateMonTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Member Enumeration Documentation

◆ Region

◆ Side

Constructor & Destructor Documentation

◆ ITkStripDataRateMonTool()

ITkStripDataRateMonTool::ITkStripDataRateMonTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 13 of file ITkStripDataRateMonTool.cxx.

14 : AthAlgTool(type, name, parent)
15{
16}
AthAlgTool()
Default constructor:

◆ ~ITkStripDataRateMonTool()

virtual ITkStripDataRateMonTool::~ITkStripDataRateMonTool ( )
virtualdefault

Member Function Documentation

◆ bookHistograms()

StatusCode ITkStripDataRateMonTool::bookHistograms ( const std::vector< std::vector< float > > & barrel_z,
const std::vector< std::vector< float > > & endcap_z )
private

Definition at line 127 of file ITkStripDataRateMonTool.cxx.

128 {
129
130 // -----------Stream length distribution in bits for the whole detector and all the chips-----------
131 m_encoded_streamLength = new TH1F("m_encoded_streamLength", "Encoded Stream Length in bits", 2000, 0., 2000.);
132 if ((m_thistSvc->regHist(m_path + m_encoded_streamLength->GetName(), m_encoded_streamLength)).isFailure())
133 return StatusCode::FAILURE;
134
135 ATH_MSG_DEBUG("Histogram " << m_encoded_streamLength->GetName() << " successfully registered.");
136
137 // -----------Stream length distribution in bits for different regions and layers-----------
138
139 std::array<std::vector<std::vector<double>>, N_REGIONS> bins;
140 for (auto& r : bins) r.resize(N_LAYERS);
141
142 // New identifier scheme
143 for (unsigned int layer = 0; layer<N_LAYERS ; layer++) {
144 if (not barrel_z[layer].empty()) {
145 for (unsigned int z_bin = 0; z_bin<(barrel_z[layer].size()-1); z_bin++) {
146 // evaluate middle point between consecutive modules
147 float interModulePoint = 0.5 * ( barrel_z[layer].at(z_bin) + barrel_z[layer].at(z_bin+1) );
148 if (z_bin==0)
149 bins[REGION_BARREL][layer].push_back(0.);
150 bins[REGION_BARREL][layer].push_back( interModulePoint );
151 }
152 //Creates the end of region covered by the module
153 double last_value = 2.*barrel_z[layer].back() - barrel_z[layer].at( barrel_z[layer].size() - 2 );
154 if(last_value!=barrel_z[layer].back()) bins[REGION_BARREL][layer].push_back(last_value);
155 }
156
157 if (not endcap_z[layer].empty()) {
158 for (unsigned int z_bin = 0; z_bin<(endcap_z[layer].size()-1); z_bin++) {
159 // evaluate middle point between consecutive module
160 float interModulePoint = 0.5 * ( endcap_z[layer].at(z_bin) + endcap_z[layer].at(z_bin+1) );
161 if (z_bin==0) {
162 float initialValue = 2.*endcap_z[layer].at(z_bin)-interModulePoint;
163 bins[REGION_ENDCAP][layer].push_back((initialValue));
164 }
165 if(interModulePoint!=bins[REGION_ENDCAP][layer].back())
166 bins[REGION_ENDCAP][layer].push_back( interModulePoint );
167 }
168 //Creates the end of region covered by the module
169 double last_value = 2.*endcap_z[layer].back() - endcap_z[layer].at( endcap_z[layer].size() - 2);
170 if(last_value!=endcap_z[layer].back()) bins[REGION_ENDCAP][layer].push_back(last_value);
171 }
172 }
173
174 for (unsigned int region=0; region<N_REGIONS; region++) {
175 for (unsigned int layer=0; layer<N_LAYERS; layer++) {
176
177
178 if (bins[region][layer].empty())
179 continue;
180
181 for (int side=0; side<N_SIDES; side++) {
182 // Create names and title of histograms for full z coverage
183 const std::string name_base = m_regionLabels[region] + "_" + std::to_string(layer) + "_" + m_sideLabels[side];
184 const std::string title_base = m_regionLabels[region] + " - Layer " + std::to_string(layer) + " - Side " + m_sideLabels[side];
185
186 // -----------Stream length distribution in bits for different regions and layers-----------
187 m_p_streamLength[layer][region][side] = new TProfile(("m_p_streamLength_" + name_base).c_str(),
188 (title_base + " Stream Length; z[mm]; <stream length> [bits]").c_str(),
189 int(bins[region][layer].size()-1), &bins[region][layer][0]);
190 if ((m_thistSvc->regHist(m_path + m_p_streamLength[layer][region][side]->GetName(), m_p_streamLength[layer][region][side])).isFailure())
191 return StatusCode::FAILURE;
192 ATH_MSG_DEBUG("Histogram " << m_p_streamLength[layer][region][side]->GetName() << " successfully registered.");
193
194 m_h2_streamLength[layer][region][side] = new TH2F(("m_h2_streamLength_" + name_base).c_str(),
195 (title_base + " Stream Length; z[mm]; <stream length> [bits]").c_str(),
196 int(bins[region][layer].size()-1), &bins[region][layer][0],
197 1000, 0., 10000.);
198 if ((m_thistSvc->regHist(m_path + m_h2_streamLength[layer][region][side]->GetName(), m_h2_streamLength[layer][region][side])).isFailure())
199 return StatusCode::FAILURE;
200 ATH_MSG_DEBUG("Histogram " << m_h2_streamLength[layer][region][side]->GetName() << " successfully registered.");
201
202
203 // -----------Data rate in b/s for different regions and layers-----------
204
205 m_p_dataRate[layer][region][side] = new TProfile(("m_p_dataRate_" + name_base).c_str(),
206 (title_base + " Data rate per chip; z[mm]; <data rate per chip> [b/s]").c_str(),
207 int(bins[region][layer].size()-1), &bins[region][layer][0]);
208 if ((m_thistSvc->regHist(m_path + m_p_dataRate[layer][region][side]->GetName(), m_p_dataRate[layer][region][side])).isFailure())
209 return StatusCode::FAILURE;
210 ATH_MSG_DEBUG("Histogram " << m_p_dataRate[layer][region][side]->GetName() << " successfully registered.");
211
212 m_h2_dataRate[layer][region][side] = new TH2F(("m_h2_dataRate_" + name_base).c_str(),
213 (title_base + " Data rate per chip; z[mm]; <data rate per chip> [b/s]").c_str(),
214 int(bins[region][layer].size()-1), &bins[region][layer][0],
215 1000, 0., 10000.);
216 if ((m_thistSvc->regHist(m_path + m_h2_dataRate[layer][region][side]->GetName(), m_h2_dataRate[layer][region][side])).isFailure())
217 return StatusCode::FAILURE;
218 ATH_MSG_DEBUG("Histogram " << m_h2_dataRate[layer][region][side]->GetName() << " successfully registered.");
219
220 // -----------Hits per chip for different regions and layers-----------
221 m_p_hits[layer][region][side] = new TProfile(("m_p_hits_" + name_base).c_str(),
222 (title_base + " Hits per chip; z[mm]; <hits/chip>").c_str(),
223 int(bins[region][layer].size()-1), &bins[region][layer][0]);
224 if ((m_thistSvc->regHist(m_path + m_p_hits[layer][region][side]->GetName(), m_p_hits[layer][region][side])).isFailure())
225 return StatusCode::FAILURE;
226 ATH_MSG_DEBUG("Histogram " << m_p_hits[layer][region][side]->GetName() << " successfully registered.");
227
228 m_h2_hits[layer][region][side] = new TH2F(("m_h2_hits_" + name_base).c_str(),
229 (title_base + " Hits per chip; z[mm]; <hits/chip>").c_str(),
230 int(bins[region][layer].size()-1), &bins[region][layer][0],
231 1000, 0., 10000.);
232 if ((m_thistSvc->regHist(m_path + m_h2_hits[layer][region][side]->GetName(), m_h2_hits[layer][region][side])).isFailure())
233 return StatusCode::FAILURE;
234 ATH_MSG_DEBUG("Histogram " << m_h2_hits[layer][region][side]->GetName() << " successfully registered.");
235 }
236 }
237 }
238
239 return StatusCode::SUCCESS;
240
241}
#define ATH_MSG_DEBUG(x)
static const std::vector< std::string > bins
size_t size() const
Number of registered mappings.
static const Attributes_t empty
ServiceHandle< ITHistSvc > m_thistSvc
std::map< int, std::string > m_regionLabels
Gaudi::Property< std::string > m_path
std::map< int, std::string > m_sideLabels
int r
Definition globals.cxx:22
return m_collEvts back().back().max_entries
mapped_type at(key_type key) const
Look up an element in the map.
@ layer
Definition HitInfo.h:79
TH2F(name, title, nxbins, bins_par2, bins_par3, bins_par4, bins_par5=None, bins_par6=None, path='', **kwargs)
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ fill()

void ITkStripDataRateMonTool::fill ( const uint32_t offlineID,
const std::vector< unsigned int > & encodedstream,
const std::vector< std::bitset< 256 > > & hitMap ) const

Definition at line 75 of file ITkStripDataRateMonTool.cxx.

77 {
78 // -----------Receives the encoded stream and distributes it to the differents histograms-----------
79
80 // Find the stream length as the number of bits in the stream
81 const float streamLength = encodedstream.size() * s_bitsPerPack;
82 // Find the data rate as the number of bits in the stream multiplied by the chip readout frequency to get it in b/s
83 const float data_rate = streamLength * s_chipReadoutFrequency;
84
85 // -----------Stream length distribution in bits for the whole detector and all the chips-----------
86 m_encoded_streamLength->Fill(streamLength);
87
88 // Finds module properties
89 const Identifier waferID = m_stripIdHelper->wafer_id(offlineID);
90
91 const int stripBarrelEndcap = m_stripIdHelper->barrel_ec(waferID);
92
93 const int stripLayerDisk = m_stripIdHelper->layer_disk(waferID);
94
95 const int stripEtaModule = m_stripIdHelper->eta_module(waferID);
96
97 const Region region = (stripBarrelEndcap==0) ? REGION_BARREL : REGION_ENDCAP;
98
99 const Side side = (stripEtaModule < 0 || stripBarrelEndcap < 0) ? SIDE_NEGATIVE : SIDE_POSITIVE;
100
101 const IdentifierHash idHash = m_stripIdHelper->wafer_hash(waferID);
102 if(!idHash.is_valid()) ATH_MSG_ERROR("Invalid WaferID found");
103
104 const float z = std::abs(m_detManager->getDetectorElement(waferID)->center().z());
105
106 // -----------Stream length distribution in bits-----------
107 m_p_streamLength[stripLayerDisk][region][side]->Fill(z, streamLength);
108 m_h2_streamLength[stripLayerDisk][region][side]->Fill(z, streamLength);
109
110 // -----------Data rate distribution in bits per second-----------
111 m_p_dataRate[stripLayerDisk][region][side]->Fill(z, data_rate);
112 m_h2_dataRate[stripLayerDisk][region][side]->Fill(z, data_rate);
113
114 int nHits=0;
115
116 for (size_t i = 0; i < hitMap.size(); ++i) {
117 std::bitset<256> hits = hitMap[i];
118 nHits+=hits.count();
119 }
120
121 // -----------Hits per chip-----------
122 m_p_hits[stripLayerDisk][region][side]->Fill(z, nHits);
123 m_h2_hits[stripLayerDisk][region][side]->Fill(z, nHits);
124
125}
#define ATH_MSG_ERROR(x)
static const uint32_t nHits
#define z
const InDetDD::SCT_DetectorManager * m_detManager
static const int s_chipReadoutFrequency
constexpr bool is_valid() const

◆ fillExpertPlots()

void ITkStripDataRateMonTool::fillExpertPlots ( const uint32_t offlineID) const
private

◆ initialize()

StatusCode ITkStripDataRateMonTool::initialize ( )
overridevirtual

Definition at line 19 of file ITkStripDataRateMonTool.cxx.

19 {
20
21 // ----------- Check services presence -----------
22
23 // Checks that the histograming service is up and running
24 ATH_CHECK(m_thistSvc.retrieve());
25
26 // Checks that the strip id help service is up and running
27 ATH_CHECK(detStore()->retrieve(m_stripIdHelper, "SCT_ID"));
28
29 // Checks that the strip manager service is up and running
30 ATH_CHECK(detStore()->retrieve(m_detManager, "ITkStrip"));
31
32 // ----------- Finds the different regions and layers to create histograms for them -----------
33 std::vector<std::vector<float>> barrel_module_z(10); // List of z coordinates for modules in barrel
34 std::vector<std::vector<float>> endcap_module_z(10); //List of z coordinates for modules in endcap
35
36 for (InDetDD::SiDetectorElementCollection::const_iterator iter = m_detManager->getDetectorElementBegin();
37 iter != m_detManager->getDetectorElementEnd(); ++iter) {
38 const InDetDD::SiDetectorElement* element = *iter;
39
40 if (!element) {
41 ATH_MSG_ERROR("Problems with pointer to Detector Element !!!");
42 return StatusCode::FAILURE;
43 }
44
45 // Get the element indices
46 const Identifier identifier = element->identify();
47 const IdentifierHash idHash = m_stripIdHelper->wafer_hash(identifier);
48 const int stripPhiModule = m_stripIdHelper->phi_module(identifier);
49 const int stripBarrelEndcap = m_stripIdHelper->barrel_ec(identifier);
50 const int stripLayerDisk = m_stripIdHelper->layer_disk(identifier);
51 const int stripEtaModule = m_stripIdHelper->eta_module(identifier);
52
53 float module_z = element->center().z();
54
55 // Use one module to save the z location, using phi_module == 0 is an arbitrary choice
56 // also we can skip all the negative z modules since the geometry is symmetric
57 if (stripBarrelEndcap<0 or stripPhiModule > 0 or (stripBarrelEndcap == 0 and stripEtaModule<0))
58 continue;
59
60
61 ATH_MSG_DEBUG("Modules BarrelEndcap LayerDisk Phi Eta z : " << stripBarrelEndcap << " " << stripLayerDisk << " " << stripPhiModule << " " << stripEtaModule << " " << module_z << " " << idHash);
62
63 element->isBarrel() ? barrel_module_z.at(stripLayerDisk).push_back(module_z) : endcap_module_z.at(stripLayerDisk).push_back(module_z);
64
65 }
66
67 // When booking the histograms, you pass as well the module position
68 // it is then stored in the tools and is used to bin the histograms accordingly
69 ATH_CHECK(ITkStripDataRateMonTool::bookHistograms(barrel_module_z, endcap_module_z));
70
71 return StatusCode::SUCCESS;
72}
#define ATH_CHECK
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
StatusCode bookHistograms(const std::vector< std::vector< float > > &barrel_z, const std::vector< std::vector< float > > &endcap_z)
virtual const Amg::Vector3D & center() const override final
Center in global coordinates.
virtual Identifier identify() const override final
identifier of this detector element (inline)

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ ATLAS_THREAD_SAFE [1/9]

TH2* m_h2_hits [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 132 of file ITkStripDataRateMonTool.h.

132{};

◆ ATLAS_THREAD_SAFE [2/9]

TProfile* m_p_hits [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 129 of file ITkStripDataRateMonTool.h.

129{};

◆ ATLAS_THREAD_SAFE [3/9]

TH2* m_h2_dataRate [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 126 of file ITkStripDataRateMonTool.h.

126{};

◆ ATLAS_THREAD_SAFE [4/9]

TProfile* m_p_dataRate [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 123 of file ITkStripDataRateMonTool.h.

123{};

◆ ATLAS_THREAD_SAFE [5/9]

TH2* m_h2_streamLength [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 120 of file ITkStripDataRateMonTool.h.

120{};

◆ ATLAS_THREAD_SAFE [6/9]

TProfile* m_p_streamLength [N_LAYERS][N_REGIONS][N_SIDES] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 117 of file ITkStripDataRateMonTool.h.

117{};

◆ ATLAS_THREAD_SAFE [7/9]

TH2* m_h2_chip_totmap [N_LAYERS][N_REGIONS] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 112 of file ITkStripDataRateMonTool.h.

112{};

◆ ATLAS_THREAD_SAFE [8/9]

TH2* m_h2_chip_hitmap [N_LAYERS][N_REGIONS] ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = {}
mutableprivate

Definition at line 109 of file ITkStripDataRateMonTool.h.

109{};

◆ ATLAS_THREAD_SAFE [9/9]

TH1* m_encoded_streamLength ITkStripDataRateMonTool::ATLAS_THREAD_SAFE = nullptr
mutableprivate

Definition at line 104 of file ITkStripDataRateMonTool.h.

◆ m_detManager

const InDetDD::SCT_DetectorManager* ITkStripDataRateMonTool::m_detManager = nullptr
private

Definition at line 64 of file ITkStripDataRateMonTool.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doExpertPlots

Gaudi::Property< bool > ITkStripDataRateMonTool::m_doExpertPlots { this, "DoExpertPlots", false, "Enable expert plots" }
private

Definition at line 58 of file ITkStripDataRateMonTool.h.

58{ this, "DoExpertPlots", false, "Enable expert plots" };

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_path

Gaudi::Property< std::string > ITkStripDataRateMonTool::m_path { this, "MonitoringPath", "/DataRateMon/", "Name of directory for plots" }
private

Definition at line 55 of file ITkStripDataRateMonTool.h.

55{ this, "MonitoringPath", "/DataRateMon/", "Name of directory for plots" };

◆ m_regionLabels

std::map<int, std::string > ITkStripDataRateMonTool::m_regionLabels
private
Initial value:
{
{INVALID_REGION, "invalid"}, {REGION_BARREL, "barrel"}, {REGION_ENDCAP, "endcap"}
}

Definition at line 88 of file ITkStripDataRateMonTool.h.

88 {
89 {INVALID_REGION, "invalid"}, {REGION_BARREL, "barrel"}, {REGION_ENDCAP, "endcap"}
90 };

◆ m_sideLabels

std::map<int, std::string > ITkStripDataRateMonTool::m_sideLabels
private
Initial value:

Definition at line 98 of file ITkStripDataRateMonTool.h.

98 {
99 {INVALID_SIDE, "invalid"}, {SIDE_POSITIVE, "pos"}, {SIDE_NEGATIVE, "neg"}
100 };

◆ m_stripIdHelper

const SCT_ID* ITkStripDataRateMonTool::m_stripIdHelper = nullptr
private

Definition at line 67 of file ITkStripDataRateMonTool.h.

◆ m_thistSvc

ServiceHandle<ITHistSvc> ITkStripDataRateMonTool::m_thistSvc {this, "HistSvc", "THistSvc", "The histogram service"}
private

Definition at line 61 of file ITkStripDataRateMonTool.h.

61{this, "HistSvc", "THistSvc", "The histogram service"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ N_LAYERS

const int ITkStripDataRateMonTool::N_LAYERS =9
staticprivate

Definition at line 80 of file ITkStripDataRateMonTool.h.

◆ s_bitsPerPack

const int ITkStripDataRateMonTool::s_bitsPerPack = 32
staticprivate

Definition at line 72 of file ITkStripDataRateMonTool.h.

◆ s_chipReadoutFrequency

const int ITkStripDataRateMonTool::s_chipReadoutFrequency = 640000
staticprivate

Definition at line 75 of file ITkStripDataRateMonTool.h.


The documentation for this class was generated from the following files: