ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
GetLCDeadMaterial Class Reference

Top algorithm to final processing of dead material tree and producing of dead material constants. More...

#include <GetLCDeadMaterial.h>

Inheritance diagram for GetLCDeadMaterial:
Collaboration diagram for GetLCDeadMaterial:

Public Member Functions

 GetLCDeadMaterial (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~GetLCDeadMaterial ()
 
virtual StatusCode initialize ()
 
virtual StatusCode execute ()
 
virtual StatusCode finalize ()
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

std::string m_HadDMCoeffInputFile
 Name of text file with initial parameters for coefficients calculation. More...
 
std::string m_HadDMCoeffOutputFile
 Name of text file with calculated coefficients. More...
 
std::string m_reportProfiles
 Name of postscript file for fit summary. More...
 
std::string m_reportMinimization
 Name of postscript file for minimization summary. More...
 
std::string m_reportCheck
 Name of postscript file for results of toy reconstruction. More...
 
bool m_doFit
 Do TProfile fitting. More...
 
bool m_doMinimization
 Do minimization. More...
 
bool m_doPool
 Do pool writing. More...
 
bool m_doCheck
 Do toy reconstruction for final validation of new dead material constants. More...
 
std::vector< std::string > m_inputRootFiles
 List of root files to process. More...
 
std::string m_key
 Name of key to write into pool file. More...
 
bool m_isTestbeam
 H6 combined testbeam flag. More...
 
bool m_isSingleParticle
 data sample contains single particles only More...
 
std::string m_NormalizationTypeForFit
 Normalization type for fit procedure. More...
 
std::string m_NormalizationTypeForMinim
 Normalization type for minimization procedure. More...
 
std::string m_ClassificationType
 use particle id information More...
 
int m_MaxEventsPerFile
 number of maximum events to process in one root files More...
 
DataObjIDColl m_extendedExtraObjects
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Top algorithm to final processing of dead material tree and producing of dead material constants.

Version
$Id: GetLCDeadMaterial.h,v 1.1 2009-03-03 17:30:21 pospelov Exp $
Author
Gennady Pospelov guenn.nosp@m.adi..nosp@m.pospe.nosp@m.lov@.nosp@m.cern..nosp@m.ch
Date
23-Januar-2009 It runs sequentially following algorithms: CaloHadDMCoeffFit to fit TProfiles histograms, CaloHadDMCoeffMinim to run minimisation, then it saves constants into pool and text files, and finally it runs toy reconstruction to produce dmreco .vs. dmtruth plots

Definition at line 31 of file GetLCDeadMaterial.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ GetLCDeadMaterial()

GetLCDeadMaterial::GetLCDeadMaterial ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 44 of file GetLCDeadMaterial.cxx.

46  : AthAlgorithm(name, pSvcLocator),
47  m_HadDMCoeffInputFile("CaloHadDMCoeff_init_v2.txt"),
48  m_HadDMCoeffOutputFile("CaloHadDMCoeff_output.txt"),
49  m_reportProfiles("report_CaloHadDMCoeff_profiles.ps"),
50  m_reportMinimization("report_CaloHadDMCoeff_minim.ps"),
51  m_reportCheck("report_CaloHadDMCoeff_check.ps"),
52  m_doFit(true),
53  m_doMinimization(false),
54  m_doPool(true),
55  m_doCheck(true),
56  m_isTestbeam(false),
57  m_isSingleParticle(true),
60  m_ClassificationType("pdg"),
62 {
63 
64  // initial coeffitients
65  declareProperty("HadDMCoeffInputFile",m_HadDMCoeffInputFile);
66  // output file with coeffitients
67  declareProperty("HadDMCoeffOutputFile",m_HadDMCoeffOutputFile);
68  // name of file with fitting results
69  declareProperty("ReportProfiles",m_reportProfiles);
70  // name of file with fitting results
71  declareProperty("ReportMinimization",m_reportMinimization);
72  // name of file with fitting results
73  declareProperty("ReportCheck",m_reportCheck);
74  // do TProfile fit
75  declareProperty("DoFit",m_doFit);
76  // do minimization
77  declareProperty("DoMinimization",m_doMinimization);
78  // do writing to pool file
79  declareProperty("DoPool",m_doPool);
80  // do writing to pool file
81  declareProperty("DoCheck",m_doCheck);
82  // list of files to process
83  declareProperty("InputRootFiles",m_inputRootFiles);
84  // key to write into pool file
85  declareProperty("CorrectionKey",m_key="HadDMCoeff2");
86  // H6 combined testbeam flag
87  declareProperty("isTestbeam",m_isTestbeam);
88  // normalization types
89  declareProperty("NormalizationTypeForFit",m_NormalizationTypeForFit);
90  declareProperty("NormalizationTypeForMinim",m_NormalizationTypeForMinim);
91  // number of maximum events to process in one root files
92  declareProperty("MaxEventsPerFile", m_MaxEventsPerFile);
93 
94 }

◆ ~GetLCDeadMaterial()

GetLCDeadMaterial::~GetLCDeadMaterial ( )
virtual

Definition at line 101 of file GetLCDeadMaterial.cxx.

102 {
103 
104 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

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

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

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode GetLCDeadMaterial::execute ( )
virtual

Definition at line 243 of file GetLCDeadMaterial.cxx.

244 {
245  ATH_MSG_INFO( " Nothing to be done in execute() method " );
246  return StatusCode::SUCCESS;
247 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ 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  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ finalize()

StatusCode GetLCDeadMaterial::finalize ( )
virtual

Definition at line 232 of file GetLCDeadMaterial.cxx.

233 {
234  ATH_MSG_INFO( " Nothing to be done in finalize() method " );
235  return StatusCode::SUCCESS;
236 }

◆ initialize()

StatusCode GetLCDeadMaterial::initialize ( )
virtual

Definition at line 111 of file GetLCDeadMaterial.cxx.

112 {
113  //std::cout << std::endl;
114  //std::cout << std::endl;
115  //std::cout << "--- GetLCDeadMaterial::initialize() --- " << std::endl;
116 
117  /* ********************************************
118  default coefficients
119  ******************************************** */
120  CaloLocalHadCoeffHelper dmHelper;
121  std::string fileName = PathResolver::find_file (m_HadDMCoeffInputFile, "DATAPATH");
122  std::unique_ptr<CaloLocalHadCoeff> initHadDMCoeff (dmHelper.InitDataFromFile(fileName.c_str()));
123  if( !initHadDMCoeff ) {
124  ATH_MSG_FATAL( " Error while initializing default dead material coefficients " );
125  return StatusCode::FAILURE;
126  }
127  //dmHelper.PrintData(initHadDMCoeff, std::cout);
128  ATH_MSG_INFO( " Number of dead material areas defined:" << initHadDMCoeff->getSizeAreaSet()
129  << ", total number of correction coefficients:" << initHadDMCoeff->getSizeCoeffSet() );
130 
131  /* ********************************************
132  input chain
133  ******************************************** */
134  TChain *pChain = new TChain("DeadMaterialTree");
135  if( m_inputRootFiles.empty() ) {
136  ATH_MSG_FATAL( " Empty vector of input root files! " );
137  return StatusCode::FAILURE;
138  }
139  for (const std::string& fname : m_inputRootFiles) {
140  ATH_MSG_INFO( " Adding root file '" <<fname << "'" );
141  pChain->Add( fname.c_str() );
142  }
143 
144  // pointer to the chain and data in it
145  std::unique_ptr<CaloHadDMCoeffData> dmData (new CaloHadDMCoeffData(pChain));
146  if(m_ClassificationType == "particleid") {
147  ATH_MSG_INFO( "Particle ID em fraction will be used to classify clusters:" );
148  m_isSingleParticle = false;
149  dmData->SetClassificationType(CaloHadDMCoeffData::kCLASSIFY_USE_PARTICLEID);
150  }
151  dmData->SetMaxEventsPerFile(m_MaxEventsPerFile);
152 
153  std::unique_ptr<CaloLocalHadCoeff> newHadDMCoeffFit;
154  std::unique_ptr<CaloLocalHadCoeff> newHadDMCoeffMinim;
155 
156  // TProfile approach (presamplers, material between EMB&TILE, EMEC&HEC)
157  // and lookup approach (leakages, unclassified DM energy)
158  if(m_doFit) {
159  CaloHadDMCoeffFit *dmFit = new CaloHadDMCoeffFit();
161  newHadDMCoeffFit = std::unique_ptr<CaloLocalHadCoeff>(dmFit->process(dmData.get(), initHadDMCoeff.get(), m_isSingleParticle, m_isTestbeam));
162  if( !newHadDMCoeffFit ) {
163  ATH_MSG_FATAL( "Failed in CaloHadDMCoeffFit::process()" );
164  delete dmFit;
165  return StatusCode::FAILURE;
166  }
167  if(!m_reportProfiles.empty()) dmFit->make_report(m_reportProfiles);
168  delete dmFit;
169  }
170 
171  // minimization approach (material before FCAL)
172  if(m_doMinimization) {
173  CaloHadDMCoeffMinim *dmMinim = new CaloHadDMCoeffMinim();
175  if(newHadDMCoeffFit) {
176  // to use previous coefficients as initial values
177  newHadDMCoeffMinim = std::unique_ptr<CaloLocalHadCoeff>(dmMinim->process(dmData.get(), newHadDMCoeffFit.get(), m_isSingleParticle, m_isTestbeam));
178  }else{
179  newHadDMCoeffMinim = std::unique_ptr<CaloLocalHadCoeff>(dmMinim->process(dmData.get(), initHadDMCoeff.get(), m_isSingleParticle, m_isTestbeam));
180  }
181  if( !newHadDMCoeffMinim ) {
182  ATH_MSG_FATAL( "Failed in CaloHadDMCoeffMinim::process()" );
183  return StatusCode::FAILURE;
184  }
186  delete dmMinim;
187  }
188 
189  CaloLocalHadCoeff *result = nullptr;
190  if(newHadDMCoeffMinim) {
191  result = new CaloLocalHadCoeff(*newHadDMCoeffMinim);
192  }else if(newHadDMCoeffFit) {
193  result = new CaloLocalHadCoeff(*newHadDMCoeffFit);
194  }else{
195  result = new CaloLocalHadCoeff(*initHadDMCoeff);
196  }
197  // prints coefficients to ASCII file
198  if (result) {
199  std::ofstream fout;
200  fout.open(m_HadDMCoeffOutputFile.c_str());
201  dmHelper.PrintData(result, fout);
202  fout.close();
203  }
204 
205  // writing data to the pool
206  if(m_doPool) {
207  ATH_CHECK( detStore()->record(result,m_key) );
208  ATH_CHECK( detStore()->setConst(result) );
209  }
210 
211  // running toy reconstruction for validation of new dead material constants
212  if(m_doCheck) {
213  CaloHadDMCoeffCheck *dmCheck = new CaloHadDMCoeffCheck();
214  dmCheck->process(dmData.get(), result, m_isSingleParticle, m_isTestbeam);
215  dmCheck->make_report(m_reportCheck);
216  delete dmCheck;
217  }
218 
219  // end of the game
220  delete pChain;
221 
222  if(result && !m_doPool) delete result;
223 
224  return StatusCode::SUCCESS;
225 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< Algorithm >::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< Algorithm > >::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< Algorithm > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_ClassificationType

std::string GetLCDeadMaterial::m_ClassificationType
private

use particle id information

Definition at line 121 of file GetLCDeadMaterial.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_doCheck

bool GetLCDeadMaterial::m_doCheck
private

Do toy reconstruction for final validation of new dead material constants.

Definition at line 86 of file GetLCDeadMaterial.h.

◆ m_doFit

bool GetLCDeadMaterial::m_doFit
private

Do TProfile fitting.

Definition at line 71 of file GetLCDeadMaterial.h.

◆ m_doMinimization

bool GetLCDeadMaterial::m_doMinimization
private

Do minimization.

Definition at line 76 of file GetLCDeadMaterial.h.

◆ m_doPool

bool GetLCDeadMaterial::m_doPool
private

Do pool writing.

Definition at line 81 of file GetLCDeadMaterial.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_HadDMCoeffInputFile

std::string GetLCDeadMaterial::m_HadDMCoeffInputFile
private

Name of text file with initial parameters for coefficients calculation.

Definition at line 46 of file GetLCDeadMaterial.h.

◆ m_HadDMCoeffOutputFile

std::string GetLCDeadMaterial::m_HadDMCoeffOutputFile
private

Name of text file with calculated coefficients.

Definition at line 51 of file GetLCDeadMaterial.h.

◆ m_inputRootFiles

std::vector<std::string > GetLCDeadMaterial::m_inputRootFiles
private

List of root files to process.

Definition at line 91 of file GetLCDeadMaterial.h.

◆ m_isSingleParticle

bool GetLCDeadMaterial::m_isSingleParticle
private

data sample contains single particles only

Definition at line 106 of file GetLCDeadMaterial.h.

◆ m_isTestbeam

bool GetLCDeadMaterial::m_isTestbeam
private

H6 combined testbeam flag.

Definition at line 101 of file GetLCDeadMaterial.h.

◆ m_key

std::string GetLCDeadMaterial::m_key
private

Name of key to write into pool file.

Definition at line 96 of file GetLCDeadMaterial.h.

◆ m_MaxEventsPerFile

int GetLCDeadMaterial::m_MaxEventsPerFile
private

number of maximum events to process in one root files

Definition at line 126 of file GetLCDeadMaterial.h.

◆ m_NormalizationTypeForFit

std::string GetLCDeadMaterial::m_NormalizationTypeForFit
private

Normalization type for fit procedure.

Definition at line 111 of file GetLCDeadMaterial.h.

◆ m_NormalizationTypeForMinim

std::string GetLCDeadMaterial::m_NormalizationTypeForMinim
private

Normalization type for minimization procedure.

Definition at line 116 of file GetLCDeadMaterial.h.

◆ m_reportCheck

std::string GetLCDeadMaterial::m_reportCheck
private

Name of postscript file for results of toy reconstruction.

Definition at line 66 of file GetLCDeadMaterial.h.

◆ m_reportMinimization

std::string GetLCDeadMaterial::m_reportMinimization
private

Name of postscript file for minimization summary.

Definition at line 61 of file GetLCDeadMaterial.h.

◆ m_reportProfiles

std::string GetLCDeadMaterial::m_reportProfiles
private

Name of postscript file for fit summary.

Definition at line 56 of file GetLCDeadMaterial.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
GetLCDeadMaterial::m_ClassificationType
std::string m_ClassificationType
use particle id information
Definition: GetLCDeadMaterial.h:121
get_generator_info.result
result
Definition: get_generator_info.py:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
PathResolver::find_file
static std::string find_file(const std::string &logical_file_name, const std::string &search_path, SearchType search_type=LocalSearch)
Definition: PathResolver.cxx:251
CaloHadDMCoeffFit::make_report
void make_report(std::string &sfname)
Definition: CaloHadDMCoeffFit.cxx:588
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
GetLCDeadMaterial::m_doCheck
bool m_doCheck
Do toy reconstruction for final validation of new dead material constants.
Definition: GetLCDeadMaterial.h:86
CaloLocalHadCoeffHelper::PrintData
void PrintData(const CaloLocalHadCoeff *data, std::ostream &fout)
Definition: CaloLocalHadCoeffHelper.cxx:167
CaloHadDMCoeffData::kCLASSIFY_USE_PARTICLEID
@ kCLASSIFY_USE_PARTICLEID
Definition: CaloHadDMCoeffData.h:87
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
GetLCDeadMaterial::m_isTestbeam
bool m_isTestbeam
H6 combined testbeam flag.
Definition: GetLCDeadMaterial.h:101
GetLCDeadMaterial::m_NormalizationTypeForFit
std::string m_NormalizationTypeForFit
Normalization type for fit procedure.
Definition: GetLCDeadMaterial.h:111
CaloHadDMCoeffCheck::process
int process(CaloHadDMCoeffData *myData, CaloLocalHadCoeff *myHadDMCoeff, bool isSingleParticle=true, bool tbflag=false)
Definition: CaloHadDMCoeffCheck.cxx:80
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
GetLCDeadMaterial::m_reportCheck
std::string m_reportCheck
Name of postscript file for results of toy reconstruction.
Definition: GetLCDeadMaterial.h:66
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
CaloLocalHadCoeffHelper::InitDataFromFile
CaloLocalHadCoeff * InitDataFromFile(const char *fname)
Definition: CaloLocalHadCoeffHelper.cxx:59
CaloHadDMCoeffFit
To fill and fit TProfile histograms using special dead material tree.
Definition: CaloHadDMCoeffFit.h:36
GetLCDeadMaterial::m_key
std::string m_key
Name of key to write into pool file.
Definition: GetLCDeadMaterial.h:96
CaloLocalHadCoeffHelper
Definition: CaloLocalHadCoeffHelper.h:14
FortranAlgorithmOptions.fileName
fileName
Definition: FortranAlgorithmOptions.py:13
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloHadDMCoeffCheck
Runs toy reconstruction to validate dead material constants.
Definition: CaloHadDMCoeffCheck.h:40
CaloHadDMCoeffCheck::make_report
void make_report(std::string &sfname)
Definition: CaloHadDMCoeffCheck.cxx:378
CaloHadDMCoeffMinim::make_report
void make_report(std::string &sfname)
Definition: CaloHadDMCoeffMinim.cxx:432
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
GetLCDeadMaterial::m_MaxEventsPerFile
int m_MaxEventsPerFile
number of maximum events to process in one root files
Definition: GetLCDeadMaterial.h:126
dqt_zlumi_alleff_HIST.fout
fout
Definition: dqt_zlumi_alleff_HIST.py:59
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloLocalHadCoeff
Hold binned correction data for local hadronic calibration procedure.
Definition: CaloLocalHadCoeff.h:41
CaloHadDMCoeffMinim::SetNormalizationType
void SetNormalizationType(std::string &stype)
Definition: CaloHadDMCoeffMinim.h:73
CaloHadDMCoeffData
Data to read from special DeadMaterialTree.
Definition: CaloHadDMCoeffData.h:30
CaloHadDMCoeffMinim::process
CaloLocalHadCoeff * process(CaloHadDMCoeffData *myData, CaloLocalHadCoeff *myHadDMCoeff, bool isSingleParticle=true, bool tbflag=false)
Definition: CaloHadDMCoeffMinim.cxx:122
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
GetLCDeadMaterial::m_doFit
bool m_doFit
Do TProfile fitting.
Definition: GetLCDeadMaterial.h:71
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
GetLCDeadMaterial::m_reportProfiles
std::string m_reportProfiles
Name of postscript file for fit summary.
Definition: GetLCDeadMaterial.h:56
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
CaloHadDMCoeffFit::SetNormalizationType
void SetNormalizationType(std::string &stype)
Definition: CaloHadDMCoeffFit.h:86
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
GetLCDeadMaterial::m_doMinimization
bool m_doMinimization
Do minimization.
Definition: GetLCDeadMaterial.h:76
GetLCDeadMaterial::m_doPool
bool m_doPool
Do pool writing.
Definition: GetLCDeadMaterial.h:81
python.AthDsoLogger.fname
string fname
Definition: AthDsoLogger.py:67
GetLCDeadMaterial::m_HadDMCoeffOutputFile
std::string m_HadDMCoeffOutputFile
Name of text file with calculated coefficients.
Definition: GetLCDeadMaterial.h:51
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
a
TList * a
Definition: liststreamerinfos.cxx:10
h
GetLCDeadMaterial::m_isSingleParticle
bool m_isSingleParticle
data sample contains single particles only
Definition: GetLCDeadMaterial.h:106
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CaloHadDMCoeffFit::process
CaloLocalHadCoeff * process(CaloHadDMCoeffData *myData, CaloLocalHadCoeff *myHadDMCoeff, bool isSingleParticle=true, bool tbflag=false)
Definition: CaloHadDMCoeffFit.cxx:77
GetLCDeadMaterial::m_HadDMCoeffInputFile
std::string m_HadDMCoeffInputFile
Name of text file with initial parameters for coefficients calculation.
Definition: GetLCDeadMaterial.h:46
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
GetLCDeadMaterial::m_inputRootFiles
std::vector< std::string > m_inputRootFiles
List of root files to process.
Definition: GetLCDeadMaterial.h:91
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
CaloHadDMCoeffMinim
Definition: CaloHadDMCoeffMinim.h:31
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
GetLCDeadMaterial::m_reportMinimization
std::string m_reportMinimization
Name of postscript file for minimization summary.
Definition: GetLCDeadMaterial.h:61
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
GetLCDeadMaterial::m_NormalizationTypeForMinim
std::string m_NormalizationTypeForMinim
Normalization type for minimization procedure.
Definition: GetLCDeadMaterial.h:116
ServiceHandle< ICondSvc >