#include <AthHistogramAlgorithm.h>
Inherits AthAlgorithm, and AthHistogramming.
Inherited by AFPHitAnalysis, ALFAHitAnalysis, ActsTrk::ActsMuonTrackingGeometryTest, ActsTrk::MaterialTrackWriter, ActsTrk::ReadoutGeoDumpAlg, AthAnalysisAlgorithm, BCM_RDOAnalysis, CP::MuonScaleFactorTestAlg, CP::TestIsolationCloseByCorrAlg, CaloHitAnalysis, EFTrackingSmearMonAlg, EFTrackingSmearingAlg, EL::AnaAlgorithm, EventInfoRDOAnalysis, HGTD_RDOAnalysis, ITk::PixelRDOAnalysis, InDet::InDetTrackBiasingToolTester, InDet::InDetTrackSmearingToolTester, InDetGNNHardScatterSelection::VertexDecoratorAlg, L1CaloDumpRampData, LArRDOAnalysis, LucidHitAnalysis, MDTHitAnalysis, MMHitAnalysis, MSVtxValidationAlg, Muon::MdtCalibJsonDumpAlg, MuonCalib::MuonSegmentReader, MuonGM::GeoModelCscTest, MuonGM::GeoModelMdtTest, MuonGM::GeoModelMmTest, MuonGM::GeoModelRpcTest, MuonGM::GeoModelTgcTest, MuonGM::GeoModelsTgcTest, MuonGM::NSWGeoPlottingAlg, MuonGMR4::GeoModelMdtTest, MuonGMR4::GeoModelMmTest, MuonGMR4::GeoModelRpcTest, MuonGMR4::GeoModelTgcTest, MuonGMR4::GeoModelsTgcTest, MuonGMR4::NswGeoPlottingAlg, MuonHoughDataNtuple, MuonR4::BucketDumperAlg, MuonR4::CaloCellsDumperAlg, MuonR4::MlHitDumperAlg, MuonR4::SPIdDumperAlg, MuonR4::SegmentDumperAlg, MuonR4::TruthMuonVertexDumperAlg, MuonVal::HitValAlg, MuonVal::MdtRDOAnalysis, MuonVal::MuonSDOAnalysis, MuonVal::MuonTester::TreeTestAlg, MuonVal::RpcRDOAnalysis, MuonVal::TgcRDOAnalysis, MuonValR4::MdtCalibDbAlgTest, MuonValR4::MsTrackTester, MuonValR4::MuonFastRecoTester, MuonValR4::MuonHitTesterAlg, MuonValR4::MuonHoughTransformTester, MuonValR4::MuonRecoChainTester, MuonValR4::MuonSPCalibrationTest, MuonValR4::SegmentRefitTest, MuonValR4::xMuonHitAnalysis, NswOccupancyAlg, RPCHitAnalysis, SiHitAnalysis, TGCHitAnalysis, TRTHitAnalysis, TrackRecordAnalysis, TruthHitAnalysis, ZDCHitAnalysis, and sTGCHitAnalysis.
|
| 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.
|
| StatusCode | configAthHistogramming (const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix) |
| | To be called by the derived classes to fill the internal configuration.
|
| TH1 * | bookGetPointer (const TH1 &hist, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| TH1 * | bookGetPointer (TH1 *hist, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| TH1 * | bookGetPointer (TH1 &histRef, std::string tDir="", std::string stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| TTree * | bookGetPointer (const TTree &treeRef, std::string tDir="", std::string stream="") |
| | Simplify the booking and registering (into THistSvc) of TTrees.
|
| TGraph * | bookGetPointer (const TGraph &graphRef, std::string tDir="", std::string stream="") |
| | Simplify the booking and registering (into THistSvc) of TGraphs.
|
| TEfficiency * | bookGetPointer (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| TEfficiency * | bookGetPointer (TEfficiency *eff, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| TEfficiency * | bookGetPointer (TEfficiency &effRef, std::string tDir="", std::string stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| StatusCode | book (const TH1 &hist, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| StatusCode | book (TH1 *hist, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| StatusCode | book (TH1 &histRef, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of histograms.
|
| StatusCode | book (const TTree &treeRef, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TTrees.
|
| StatusCode | book (const TGraph &graphRef, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TGraphs.
|
| StatusCode | book (const TEfficiency &eff, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| StatusCode | book (TEfficiency *eff, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| StatusCode | book (TEfficiency &effRef, const std::string &tDir="", const std::string &stream="") |
| | Simplify the booking and registering (into THistSvc) of TEfficiency.
|
| TH1 * | hist (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered histograms of any type.
|
| TH2 * | hist2d (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered 2-d histograms.
|
| TH3 * | hist3d (const std::string &histName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered 3-d histograms.
|
| TTree * | tree (const std::string &treeName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered TTrees.
|
| TGraph * | graph (const std::string &graphName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered TGraphs.
|
| TEfficiency * | efficiency (const std::string &effName, const std::string &tDir="", const std::string &stream="") |
| | Simplify the retrieval of registered TEfficiency.
|
|
| Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| | specialization for handling Gaudi::Property<SG::VarHandleKey>
|
| void | buildBookingString (std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false) |
| | Method to build individual booking string.
|
| void | myReplace (std::string &str, const std::string &oldStr, const std::string &newStr) |
| | Helper method to replace sub-string.
|
| hash_t | hash (const std::string &histName) const |
| | Method to calculate a 32-bit hash from a string.
|
Definition at line 29 of file AthHistogramAlgorithm.h.
◆ EffMap_t
◆ GraphMap_t
◆ hash_t
◆ HistMap_t
◆ StoreGateSvc_t
◆ TreeMap_t
◆ AthHistogramAlgorithm()
| AthHistogramAlgorithm::AthHistogramAlgorithm |
( |
const std::string & | name, |
|
|
ISvcLocator * | pSvcLocator ) |
Constructor with parameters:
Definition at line 31 of file AthHistogramAlgorithm.cxx.
32 :
36{
37
38
39
40
42 m_histSvc = ServiceHandle<ITHistSvc>(
"THistSvc/THistSvc", name),
43 "Handle to a THistSvc instance: it will be used to write "
44 "ROOT objects to ROOT files" );
45
46
47 declareProperty(
"RootStreamName",
m_prefix =
"/ANALYSIS",
"Name of the output ROOT stream (file) that the THistSvc uses");
49 "Name of the ROOT directory inside the ROOT file where the histograms will go");
50
53
56}
AthAlgorithm()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::string m_histNamePrefix
The prefix for the histogram THx name.
ServiceHandle< ITHistSvc > m_histSvc
Default constructor: AthHistogramAlgorithm();.
std::string m_prefix
Name of the ROOT output stream (file).
std::string m_histNamePostfix
The postfix for the histogram THx name.
std::string m_histTitlePostfix
The postfix for the histogram THx title.
std::string m_rootDir
Name of the ROOT directory.
std::string m_histTitlePrefix
The prefix for the histogram THx title.
AthHistogramming(const std::string &name)
Constructor with parameters:
◆ ~AthHistogramAlgorithm()
| AthHistogramAlgorithm::~AthHistogramAlgorithm |
( |
| ) |
|
|
virtual |
◆ book() [1/8]
| StatusCode AthHistogramming::book |
( |
const TEfficiency & | eff, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 335 of file AthHistogramming.h.
336{
337
338 TEfficiency* effClone =
dynamic_cast< TEfficiency*
>(
eff.Clone() );
339 if ( !effClone ) {
340 m_msg << MSG::ERROR <<
"Couldn't create a TEfficiency clone" <<
endmsg;
341 return StatusCode::FAILURE;
342 }
343 return this->
book( *effClone, tDir, stream );
344}
StatusCode book(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
MsgStream m_msg
Cached Message Stream.
◆ book() [2/8]
| StatusCode AthHistogramming::book |
( |
const TGraph & | graphRef, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TGraphs.
◆ book() [3/8]
| StatusCode AthHistogramming::book |
( |
const TH1 & | hist, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 303 of file AthHistogramming.h.
304{
305
306 TH1* histClone =
dynamic_cast< TH1*
>(
hist.Clone() );
307 if ( !histClone ) {
308 m_msg << MSG::ERROR <<
"Couldn't create a TH1 clone" <<
endmsg;
309 return StatusCode::FAILURE;
310 }
311 return this->
book( *histClone, tDir, stream );
312}
TH1 * hist(const std::string &histName, const std::string &tDir="", const std::string &stream="")
Simplify the retrieval of registered histograms of any type.
◆ book() [4/8]
| StatusCode AthHistogramming::book |
( |
const TTree & | treeRef, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TTrees.
Definition at line 403 of file AthHistogramming.h.
404{
405
406 TTree* treePointer = this->
bookGetPointer( treeRef, tDir, stream );
407 if ( treePointer )
408 {
409 return StatusCode::SUCCESS;
410 }
411 else
412 {
413 return StatusCode::FAILURE;
414 }
415}
TH1 * bookGetPointer(const TH1 &hist, const std::string &tDir="", const std::string &stream="")
Simplify the booking and registering (into THistSvc) of histograms.
◆ book() [5/8]
| StatusCode AthHistogramming::book |
( |
TEfficiency & | effRef, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 356 of file AthHistogramming.h.
357{
358
359 TEfficiency* effPointer = this->
bookGetPointer( effRef, tDir, stream );
360 if ( !effPointer ) {
361 m_msg << MSG::ERROR <<
"Couldn't book a TEfficiency" <<
endmsg;
362 return StatusCode::FAILURE;
363 }
364 return StatusCode::SUCCESS;
365}
◆ book() [6/8]
| StatusCode AthHistogramming::book |
( |
TEfficiency * | eff, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 346 of file AthHistogramming.h.
347{
348 if ( !eff ) {
349 m_msg << MSG::ERROR <<
"Got a zero pointer to a TEfficiency" <<
endmsg;
350 return StatusCode::FAILURE;
351 }
352 return this->
book( *eff, tDir, stream );
353}
◆ book() [7/8]
| StatusCode AthHistogramming::book |
( |
TH1 & | histRef, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 324 of file AthHistogramming.h.
325{
326
328 if ( !histPointer ) {
329 m_msg << MSG::ERROR <<
"Couldn't book a TH1" <<
endmsg;
330 return StatusCode::FAILURE;
331 }
332 return StatusCode::SUCCESS;
333}
◆ book() [8/8]
| StatusCode AthHistogramming::book |
( |
TH1 * | hist, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 314 of file AthHistogramming.h.
315{
317 m_msg << MSG::ERROR <<
"Got a zero pointer to a TH1" <<
endmsg;
318 return StatusCode::FAILURE;
319 }
320 return this->
book( *
hist, tDir, stream );
321}
◆ bookGetPointer() [1/8]
| TEfficiency * AthHistogramming::bookGetPointer |
( |
const TEfficiency & | eff, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 281 of file AthHistogramming.h.
282{
283
284 TEfficiency* histClone =
dynamic_cast< TEfficiency*
>(
hist.Clone() );
285 if ( !histClone ) {
286 m_msg << MSG::ERROR <<
"Couldn't create a TEfficiency clone in bookGetPointer" <<
endmsg;
287 return 0;
288 }
290
291}
◆ bookGetPointer() [2/8]
| TGraph * AthHistogramming::bookGetPointer |
( |
const TGraph & | graphRef, |
|
|
std::string | tDir = "", |
|
|
std::string | stream = "" ) |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TGraphs.
Definition at line 427 of file AthHistogramming.cxx.
428{
429
430 const TGraph* graphPointer = &graphRef;
431
432
433 if ( !graphPointer )
434 {
435 m_msg << MSG::WARNING
436 <<
"We got an invalid TGraph pointer in the BookGetPointer(TGraph*) method of the class" <<
m_name
438 return NULL;
439 }
440
441
442 std::string graphName = graphPointer->GetName();
443 const std::string graphTitle = graphPointer->GetTitle();
444
445
446 const hash_t graphHash = this->
hash(graphName);
447 GraphMap_t::const_iterator
it =
m_graphMap.find( graphHash );
449 {
450 m_msg << MSG::WARNING
451 << "Detected a hash collision. The hash for the TGraph with name=" << graphName
452 <<
" already exists and points to a TGraph with name=" <<
it->second->GetName()
453 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
454 return NULL;
455 }
456
457
459 if( !graphClone )
460 {
461 m_msg << MSG::WARNING
462 <<
"We couldn't clone the TGraph in the BookGetPointer(TGraph&) method of the class" <<
m_name
464 return NULL;
465 }
467
468
469 std::string bookingString("");
471
472
473 if ( !((
histSvc()->regGraph(bookingString, graphClone)).isSuccess()) )
474 {
475 m_msg << MSG::WARNING
476 << "Problem registering TGraph with name " << graphName
477 << ", title " << graphTitle
479 return NULL;
480 }
481
482
483 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphClone ) );
484
485 return graphClone;
486}
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
std::string m_histNamePostfix
The postfix for the histogram THx name.
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
uint32_t hash_t
typedef for the internal hash
std::string m_histTitlePostfix
The postfix for the histogram THx title.
std::string m_histTitlePrefix
The prefix for the histogram THx title.
std::string m_name
Instance name.
void buildBookingString(std::string &bookingString, std::string &histName, std::string &tDir, std::string &stream, bool usePrefixPostfix=false)
Method to build individual booking string.
std::string m_histNamePrefix
The prefix for the histogram THx name.
GraphMap_t m_graphMap
The map of TGraph names to their pointers.
◆ bookGetPointer() [3/8]
| TH1 * AthHistogramming::bookGetPointer |
( |
const TH1 & | hist, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 260 of file AthHistogramming.h.
261{
262
263 TH1* histClone =
dynamic_cast< TH1*
>(
hist.Clone() );
264 if ( !histClone ) {
265 m_msg << MSG::ERROR <<
"Couldn't create a TH1 clone in bookGetPointer" <<
endmsg;
266 return 0;
267 }
269
270}
◆ bookGetPointer() [4/8]
| TTree * AthHistogramming::bookGetPointer |
( |
const TTree & | treeRef, |
|
|
std::string | tDir = "", |
|
|
std::string | stream = "" ) |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TTrees.
Definition at line 312 of file AthHistogramming.cxx.
313{
314
315 const TTree* treePointer = &treeRef;
316
317
318 if ( !treePointer )
319 {
320 m_msg << MSG::WARNING
321 <<
"We got an invalid TTree pointer in the BookGetPointer(TTree*) method of the class" <<
m_name
323 return NULL;
324 }
325
326
327 std::string
treeName = treePointer->GetName();
328 const std::string treeTitle = treePointer->GetTitle();
329
330
332 TreeMap_t::const_iterator
it =
m_treeMap.find( treeHash );
334 {
335 m_msg << MSG::WARNING
336 <<
"Detected a hash collision. The hash for the TTree with name=" <<
treeName
337 <<
" already exists and points to a TTree with name=" <<
it->second->GetName()
338 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
339 return NULL;
340 }
341
342
343 TTree* treeClone =
dynamic_cast< TTree*
>( treePointer->Clone(
treeName.c_str()) );
344 if( !treeClone )
345 {
346 m_msg << MSG::WARNING
347 <<
"We couldn't clone the TTree in the BookGetPointer(TTree&) method of the class" <<
m_name
349 return NULL;
350 }
351 treeClone->SetTitle (treeTitle.c_str());
352
353
354 std::string bookingString("");
356
357
358 if ( !((
histSvc()->regTree(bookingString, treeClone)).isSuccess()) )
359 {
360 m_msg << MSG::WARNING
361 <<
"Problem registering TTree with name " <<
treeName
362 << ", title " << treeTitle
364 return NULL;
365 }
366
367
368 m_treeMap.insert(
m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treeClone ) );
369
370 return treeClone;
371}
TreeMap_t m_treeMap
The map of TTree names to their pointers.
◆ bookGetPointer() [5/8]
| TEfficiency * AthHistogramming::bookGetPointer |
( |
TEfficiency & | effRef, |
|
|
std::string | tDir = "", |
|
|
std::string | stream = "" ) |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 146 of file AthHistogramming.cxx.
147{
148
149 std::string effName(effRef.GetName());
150 const std::string effTitle(effRef.GetTitle());
151 std::string bookingString("");
152
155 effRef.SetName(effName.c_str());
156
157
159 EffMap_t::const_iterator
it =
m_effMap.find( effHash );
161 {
162 m_msg << MSG::WARNING
163 << "Detected a hash collision. The hash for the TEfficiency with name=" << effName
164 <<
" already exists and points to a TEfficiency with name=" <<
it->second->GetName()
165 <<
" NOT going to book the new TEfficiency and returning a NULL pointer!" <<
endmsg;
166 return NULL;
167 }
168
169
170
171
172
173
174
175 if ( !((
histSvc()->regEfficiency(bookingString, &effRef)).isSuccess()) )
176 {
177 m_msg << MSG::WARNING
178 << "Problem registering TEfficiency with name " << effName
180 << ", title " << effTitle
184 return NULL;
185 }
186
187
188 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, &effRef ) );
189
190 return &effRef;
191}
EffMap_t m_effMap
The map of histogram names to their pointers.
◆ bookGetPointer() [6/8]
| TEfficiency * AthHistogramming::bookGetPointer |
( |
TEfficiency * | eff, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of TEfficiency.
Definition at line 293 of file AthHistogramming.h.
294{
296 m_msg << MSG::ERROR <<
"Got a zero pointer to a TEfficiency in bookGetPointer" <<
endmsg;
297 return 0;
298 }
300}
◆ bookGetPointer() [7/8]
| TH1 * AthHistogramming::bookGetPointer |
( |
TH1 & | histRef, |
|
|
std::string | tDir = "", |
|
|
std::string | stream = "" ) |
|
protectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 98 of file AthHistogramming.cxx.
99{
100
101 std::string
histName(histRef.GetName());
102 const std::string histTitle(histRef.GetTitle());
103 std::string bookingString("");
104
108
109
111 HistMap_t::const_iterator
it =
m_histMap.find( histHash );
113 {
114 m_msg << MSG::WARNING
115 <<
"Detected a hash collision. The hash for the histogram with name=" <<
histName
116 <<
" already exists and points to a histogram with name=" <<
it->second->GetName()
117 <<
" NOT going to book the new histogram and returning a NULL pointer!" <<
endmsg;
118 return NULL;
119 }
120
121
122
123
124
125
126
127 if ( !((
histSvc()->regHist(bookingString, &histRef)).isSuccess()) )
128 {
129 m_msg << MSG::WARNING
130 <<
"Problem registering histogram with name " <<
histName
132 << ", title " << histTitle
136 return NULL;
137 }
138
139
140 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, &histRef ) );
141
142 return &histRef;
143}
HistMap_t m_histMap
The map of histogram names to their pointers.
◆ bookGetPointer() [8/8]
| TH1 * AthHistogramming::bookGetPointer |
( |
TH1 * | hist, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the booking and registering (into THistSvc) of histograms.
Definition at line 272 of file AthHistogramming.h.
273{
275 m_msg << MSG::ERROR <<
"Got a zero pointer to a TH1 in bookGetPointer" <<
endmsg;
276 return 0;
277 }
279}
◆ buildBookingString()
| void AthHistogramming::buildBookingString |
( |
std::string & | bookingString, |
|
|
std::string & | histName, |
|
|
std::string & | tDir, |
|
|
std::string & | stream, |
|
|
bool | usePrefixPostfix = false ) |
|
privateinherited |
Method to build individual booking string.
Definition at line 560 of file AthHistogramming.cxx.
565{
566
569 if(pos != std::string::npos){
570 tDir+='/';
571 tDir.append(histName, 0,pos);
573 };
575
576 if(usePrefixPostfix){
578 } else {
580 }
581 while(bookingString.find("//") != std::string::npos){
583 }
584
585 return;
586}
std::string m_rootDir
Name of the ROOT directory.
std::string m_streamName
Name of the ROOT output stream (file).
void myReplace(std::string &str, const std::string &oldStr, const std::string &newStr)
Helper method to replace sub-string.
◆ configAthHistogramming()
| StatusCode AthHistogramming::configAthHistogramming |
( |
const ServiceHandle< ITHistSvc > & | histSvc, |
|
|
const std::string & | prefix, |
|
|
const std::string & | rootDir, |
|
|
const std::string & | histNamePrefix, |
|
|
const std::string & | histNamePostfix, |
|
|
const std::string & | histTitlePrefix, |
|
|
const std::string & | histTitlePostfix ) |
|
protectedinherited |
To be called by the derived classes to fill the internal configuration.
Definition at line 66 of file AthHistogramming.cxx.
70{
78
79 return StatusCode::SUCCESS;
80}
ServiceHandle< ITHistSvc > m_histSvc
Pointer to the THistSvc (event store by default).
◆ declareGaudiProperty()
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
158 {
161 hndl.documentation());
162
163 }
◆ declareProperty()
Definition at line 145 of file AthCommonDataStore.h.
145 {
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
◆ detStore()
◆ efficiency()
| TEfficiency * AthHistogramming::efficiency |
( |
const std::string & | effName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
protectedinherited |
Simplify the retrieval of registered TEfficiency.
Definition at line 250 of file AthHistogramming.cxx.
251{
252
254
255
256 EffMap_t::const_iterator
it =
m_effMap.find( effHash );
258 {
259
260
261 std::string effNameCopy = effName;
262 std::string tDirCopy = tDir;
263 std::string streamCopy =
stream;
264
265
266 std::string bookingString("");
268
269 TEfficiency* effPointer(NULL);
271 {
272
273 std::string bookingString("");
275
277 {
278 m_msg << MSG::WARNING
279 << "Problem retrieving the TEfficiency with name (including pre- and post-fixes) "
281 << " or with name " << effNameCopy
282 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
283 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
284 return NULL;
285 }
286
287
288 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
289 return effPointer;
290 }
291
292
293 m_effMap.insert(
m_effMap.end(), std::pair< const hash_t, TEfficiency* >( effHash, effPointer ) );
294 return effPointer;
295 }
296
297
299}
◆ evtStore()
◆ extraDeps_update_handler()
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
◆ extraOutputDeps()
| const DataObjIDColl & AthAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 50 of file AthAlgorithm.cxx.
51{
52
53
56 }
57 return Algorithm::extraOutputDeps();
58}
DataObjIDColl m_extendedExtraObjects
◆ graph()
| TGraph * AthHistogramming::graph |
( |
const std::string & | graphName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
protectedinherited |
Simplify the retrieval of registered TGraphs.
Definition at line 492 of file AthHistogramming.cxx.
493{
494
495 const hash_t graphHash = this->
hash(graphName);
496
497
498 GraphMap_t::const_iterator
it =
m_graphMap.find( graphHash );
500 {
501
502
503 std::string graphNameCopy = graphName;
504 std::string tDirCopy = tDir;
505 std::string streamCopy =
stream;
506
507
508 std::string bookingString("");
510
511 TGraph* graphPointer(NULL);
512 if ( !((
histSvc()->
getGraph(bookingString, graphPointer)).isSuccess()) )
513 {
514
515 std::string bookingString("");
516 this->
buildBookingString( bookingString, graphNameCopy, tDirCopy, streamCopy,
false );
517
518 if ( !((
histSvc()->
getGraph(bookingString, graphPointer)).isSuccess()) )
519 {
520 m_msg << MSG::WARNING
521 << "Problem retrieving the TGraph with name (including pre- and post-fixes) "
523 << " or with name " << graphNameCopy
524 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
525 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
526 return NULL;
527 }
528
529
530 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
531 return graphPointer;
532 }
533
534
535 m_graphMap.insert(
m_graphMap.end(), std::pair< const hash_t, TGraph* >( graphHash, graphPointer ) );
536 return graphPointer;
537 }
538
539
540
542}
◆ hash()
Method to calculate a 32-bit hash from a string.
Definition at line 428 of file AthHistogramming.h.
429{
432}
uint64_t crc64(const CRCTable &table, const char *data, size_t data_len)
Find the CRC-64 of a string,.
std::uint64_t hash64(const void *data, std::size_t size)
Passthrough to XXH3_64bits.
◆ hist()
| TH1 * AthHistogramming::hist |
( |
const std::string & | histName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
protectedinherited |
Simplify the retrieval of registered histograms of any type.
Definition at line 198 of file AthHistogramming.cxx.
199{
200
202
203
204 HistMap_t::const_iterator
it =
m_histMap.find( histHash );
206 {
207
208
209 std::string histNameCopy =
histName;
210 std::string tDirCopy = tDir;
211 std::string streamCopy =
stream;
212
213
214 std::string bookingString("");
216
217 TH1* histPointer(NULL);
218 if ( !((
histSvc()->
getHist(bookingString, histPointer)).isSuccess()) )
219 {
220
221 std::string bookingString("");
223
224 if ( !((
histSvc()->
getHist(bookingString, histPointer)).isSuccess()) )
225 {
226 m_msg << MSG::WARNING
227 << "Problem retrieving the histogram with name (including pre- and post-fixes) "
229 << " or with name " << histNameCopy
230 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
231 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
232 return NULL;
233 }
234
235
236 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
237 return histPointer;
238 }
239
240
241 m_histMap.insert(
m_histMap.end(), std::pair< const hash_t, TH1* >( histHash, histPointer ) );
242 return histPointer;
243 }
244
245
246
248}
◆ hist2d()
| TH2 * AthHistogramming::hist2d |
( |
const std::string & | histName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the retrieval of registered 2-d histograms.
Definition at line 369 of file AthHistogramming.h.
370{
371
372 TH1* th1Pointer = this->
hist(histName, tDir, stream);
373 if ( !th1Pointer )
374 {
376 <<
"Cannot get a 2-d histogram with name " <<
histName
377 <<
"... will probably seg-fault!" <<
endmsg;
378 return NULL;
379 }
380
381 return dynamic_cast<TH2*>( th1Pointer );
382}
◆ hist3d()
| TH3 * AthHistogramming::hist3d |
( |
const std::string & | histName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
inlineprotectedinherited |
Simplify the retrieval of registered 3-d histograms.
Definition at line 386 of file AthHistogramming.h.
387{
388
389 TH1* th1Pointer = this->
hist(histName, tDir, stream);
390 if ( !th1Pointer )
391 {
393 <<
"Cannot get a 3-d histogram with name " <<
histName
394 <<
"... will probably seg-fault!" <<
endmsg;
395 return NULL;
396 }
397
398 return dynamic_cast<TH3*>( th1Pointer );
399}
◆ histSvc()
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a pointer to the THistSvc.
Definition at line 113 of file AthHistogramAlgorithm.h.
◆ inputHandles()
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()
◆ msgLvl()
◆ myReplace()
| void AthHistogramming::myReplace |
( |
std::string & | str, |
|
|
const std::string & | oldStr, |
|
|
const std::string & | newStr ) |
|
privateinherited |
Helper method to replace sub-string.
Definition at line 590 of file AthHistogramming.cxx.
593{
595 while((pos =
str.find(oldStr, pos)) != std::string::npos)
596 {
597 str.replace(pos, oldStr.length(), newStr);
598 pos += newStr.length();
599 }
600}
◆ outputHandles()
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()
Definition at line 380 of file AthCommonDataStore.h.
381 {
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()
◆ sysInitialize()
| StatusCode AthHistogramAlgorithm::sysInitialize |
( |
| ) |
|
|
virtual |
Initialization method invoked by the framework.
This method is responsible for any bookkeeping of initialization required by the framework itself. It will in turn invoke the initialize() method of the derived algorithm, and of any sub-algorithms which it creates.
Reimplemented from AthAlgorithm.
Reimplemented in AthAnalysisAlgorithm.
Definition at line 75 of file AthHistogramAlgorithm.cxx.
76{
77
78
79
80 if ( Gaudi::StateMachine::INITIALIZED <= FSMState() ) return StatusCode::SUCCESS;
81
82
83 bindPropertiesTo( serviceLocator()->getOptsSvc() );
84
85
86
87 if ( !isEnabled( ) ) return StatusCode::SUCCESS;
88
89
90
91
92
94
95
100
101
110
111
112
114}
#define ATH_CHECK
Evaluate an expression and check for errors.
virtual StatusCode sysInitialize() override
Override sysInitialize.
const ServiceHandle< ITHistSvc > & histSvc() const
The standard THistSvc (for writing histograms and TTrees and more to a root file) Returns (kind of) a...
StatusCode configAthHistogramming(const ServiceHandle< ITHistSvc > &histSvc, const std::string &prefix, const std::string &rootDir, const std::string &histNamePrefix, const std::string &histNamePostfix, const std::string &histTitlePrefix, const std::string &histTitlePostfix)
To be called by the derived classes to fill the internal configuration.
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ tree()
| TTree * AthHistogramming::tree |
( |
const std::string & | treeName, |
|
|
const std::string & | tDir = "", |
|
|
const std::string & | stream = "" ) |
|
protectedinherited |
Simplify the retrieval of registered TTrees.
Definition at line 378 of file AthHistogramming.cxx.
379{
380
382
383
384 TreeMap_t::const_iterator
it =
m_treeMap.find( treeHash );
386 {
387
388
389 std::string treeNameCopy =
treeName;
390 std::string tDirCopy = tDir;
391 std::string streamCopy =
stream;
392
393
394 std::string bookingString("");
396
397 TTree* treePointer(NULL);
398 if ( !((
histSvc()->
getTree(bookingString, treePointer)).isSuccess()) )
399 {
400 m_msg << MSG::WARNING
401 << "Problem retrieving the TTree with name " << treeNameCopy
402 <<
" in " <<
m_name <<
"... it doesn't exist, neither in the cached map nor in the THistSvc!"
403 <<
" Will return an NULL pointer... you have to handle it correctly!" <<
endmsg;
404 return NULL;
405 }
406
407
408 m_treeMap.insert(
m_treeMap.end(), std::pair< const hash_t, TTree* >( treeHash, treePointer ) );
409 return treePointer;
410 }
411
412
414}
◆ updateVHKA()
Definition at line 308 of file AthCommonDataStore.h.
308 {
309
310
313 for (
auto k :
keys) {
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka
◆ m_detStore
◆ m_effMap
◆ m_evtStore
◆ m_extendedExtraObjects
| DataObjIDColl AthAlgorithm::m_extendedExtraObjects |
|
privateinherited |
◆ m_graphMap
◆ m_histMap
◆ m_histNamePostfix
| std::string AthHistogramAlgorithm::m_histNamePostfix |
|
private |
◆ m_histNamePrefix
| std::string AthHistogramAlgorithm::m_histNamePrefix |
|
private |
◆ m_histSvc
◆ m_histTitlePostfix
| std::string AthHistogramAlgorithm::m_histTitlePostfix |
|
private |
◆ m_histTitlePrefix
| std::string AthHistogramAlgorithm::m_histTitlePrefix |
|
private |
◆ m_msg
| MsgStream AthHistogramming::m_msg |
|
privateinherited |
◆ m_name
| std::string AthHistogramming::m_name |
|
privateinherited |
◆ m_prefix
| std::string AthHistogramAlgorithm::m_prefix |
|
private |
◆ m_rootDir
| std::string AthHistogramAlgorithm::m_rootDir |
|
private |
◆ m_streamName
| std::string AthHistogramming::m_streamName |
|
privateinherited |
◆ m_treeMap
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files: