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

Top algorithm to generate OutOfCluster histograms for Local Hadron Calibration. More...

#include <GetLCOutOfCluster.h>

Inheritance diagram for GetLCOutOfCluster:
Collaboration diagram for GetLCOutOfCluster:

Public Member Functions

 GetLCOutOfCluster (const std::string &name, ISvcLocator *pSvcLocator)
 
virtual ~GetLCOutOfCluster ()
 
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

void mapinsert (const std::vector< Gaudi::Histo1DDef > &dims)
 
void mapparse ()
 
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::vector< Gaudi::Histo1DDef > m_dimensions
 definition of all dimensions used for out-of-cluster corrections More...
 
std::map< std::string, Gaudi::Histo1DDef > m_dimensionsmap
 property to set all dimensions introduced above More...
 
std::vector< int > m_isampmap
 Vector of indices in m_dimensions. More...
 
std::vector< TProfile2D * > m_ooc
 Vector of actual histograms. More...
 
std::string m_outputFileName
 Name of the output file to save histograms in. More...
 
std::unique_ptr< TFile > m_outputFile
 Output file to save histograms in. More...
 
SG::ReadHandleKey< xAOD::CaloClusterContainerm_clusterCollName
 Name of the CaloClusterContainer to use. More...
 
std::vector< std::string > m_invalidSamplingNames
 vector of names of the calorimeter samplings not to use when applying the out-of-cluster weights. More...
 
std::set< int > m_invalidSamplings
 actual set of samplings to be ignored for out-of-cluster weights More...
 
std::string m_NormalizationType
 string to choose different normalization types More...
 
int m_NormalizationTypeNumber
 
std::string m_ClassificationType
 string to choose different classification types More...
 
int m_ClassificationTypeNumber
 
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 generate OutOfCluster histograms for Local Hadron Calibration.

Version
$Id: GetLCOutOfCluster.h,v 1.2 2008-11-04 14:33:37 menke Exp $
Author
Sven Menke menke.nosp@m.@mpp.nosp@m.mu.mp.nosp@m.g.de
Date
3-October-2008 This class is an Algorithm to generate the 2D histograms from single pion simulations to correct for out-of-cluster energy deposits.

Definition at line 31 of file GetLCOutOfCluster.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

◆ GetLCOutOfCluster()

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

Definition at line 41 of file GetLCOutOfCluster.cxx.

43  : AthAlgorithm(name, pSvcLocator),
44  m_outputFile(nullptr),
45  m_clusterCollName("CaloTopoClusters"),
46  m_NormalizationType("Lin"),
48  m_ClassificationType("None"),
50 {
51 
52  std::vector<Gaudi::Histo1DDef> dims(6);
53  dims[0] = Gaudi::Histo1DDef("side",-1.5,1.5,1);
54  dims[1] = Gaudi::Histo1DDef("|eta|",0.,5.,50);
55  dims[2] = Gaudi::Histo1DDef("phi",-M_PI,M_PI,1);
56  dims[3] = Gaudi::Histo1DDef("log10(E_clus (MeV))",log10(200),log10(1e6),14);
57  dims[4] = Gaudi::Histo1DDef("log10(lambda_clus (mm))",0.0,4.0,14);
58  dims[5] = Gaudi::Histo1DDef("weight",0.,3.0,1);
59 
60  mapinsert(dims);
61 
62  // Dimensions to use for classification
63  declareProperty("OutOfClusterDimensions",m_dimensionsmap);
64 
65  // Name of output file to save histograms in
66  declareProperty("OutputFileName",m_outputFileName);
67 
68  // Name of ClusterContainer to use
69  declareProperty("ClusterCollectionName",m_clusterCollName);
70 
71  // Name of Samplings to ignore
72  m_invalidSamplingNames.resize(3);
73 
74  m_invalidSamplingNames[0] = "PreSamplerB";
75  m_invalidSamplingNames[1] = "PreSamplerE";
76  m_invalidSamplingNames[2] = "TileGap3";
77 
78  declareProperty("InvalidSamplings",m_invalidSamplingNames);
79 
80  // Normalization type "Const", "Lin", "Log", "NClus"
81  declareProperty("NormalizationType",m_NormalizationType);
82 
83  // Classification type "None" for single pion MC or
84  // "ParticleID_EM" for ParticleID based em-type clusters
85  // "ParticleID_HAD" for ParticleID based had-type clusters
86  declareProperty("ClassificationType", m_ClassificationType);
87 }

◆ ~GetLCOutOfCluster()

GetLCOutOfCluster::~GetLCOutOfCluster ( )
virtual

Definition at line 91 of file GetLCOutOfCluster.cxx.

92 { }

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 GetLCOutOfCluster::execute ( )
virtual

Definition at line 275 of file GetLCOutOfCluster.cxx.

276 {
278 
279  // total calib hit energy of all clusters
280  double eCalibTot(0.);
281  double nClusECalibGt0 = 0.0;
282 
283  for (const xAOD::CaloCluster* theCluster : *cc) {
284  double eC=999;
285  if (!theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_TOT,eC)) {
286  ATH_MSG_ERROR( "Failed to retrieve cluster moment ENG_CALIB_TOT" );
287  return StatusCode::FAILURE;
288  }
290  double emFrac=-999;
291  if (!theCluster->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_FRAC_EM,emFrac)){
292  ATH_MSG_ERROR( "Failed to retrieve cluster moment ENG_CALIB_FAC_EM" );
293  return StatusCode::FAILURE;
294  }
296  eC = 0;
298  eC = 0;
299  }
300  eCalibTot += eC;
301  if ( eC > 0 ) {
302  nClusECalibGt0++;
303  }
304  }
305 
306  if ( eCalibTot > 0 ) {
307  const double inv_eCalibTot = 1. / eCalibTot;
308  const double inv_nClusECalibGt0 = 1. / nClusECalibGt0;
309  for (const xAOD::CaloCluster* pClus : *cc) {
310  double eng = pClus->e();
311 
313  double emFrac=-999;
314  if (!pClus->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_FRAC_EM,emFrac)){
315  ATH_MSG_ERROR( "Failed to retrieve cluster moment ENG_CALIB_FAC_EM");
316  return StatusCode::FAILURE;
317  }
319  continue;
321  continue;
322  }
323 
324  // subtract the samplings to ignore from eng
325  for (int sampling : m_invalidSamplings) {
326  eng -= pClus->eSample((CaloSampling::CaloSample)(sampling));
327  }
328 
329  if ( eng > 0 ) {
330 
331  int iside = 0;
332  int iphi = 0;
333  int ilogE = 0;
334  int nside = 1;
335  int nphi = 1;
336  int nlogE = 1;
337 
338  if ( m_isampmap[0] >= 0 ) {
339  const Gaudi::Histo1DDef & hd = m_dimensions[m_isampmap[0]];
340  nside = hd.bins();
341  iside = (int)(nside*(((pClus->eta()<0?-1.0:1.0) - hd.lowEdge())
342  /(hd.highEdge()-hd.lowEdge())));
343  if ( iside < 0 || iside > nside-1 ) {
344  ATH_MSG_WARNING( " Side index out of bounds " <<
345  iside << " not in [0," << nside-1 << "]" );
346  iside = -1;
347  }
348  }
349 
350  if ( m_isampmap[1] >= 0 ) {
351  const Gaudi::Histo1DDef & hd = m_dimensions[m_isampmap[1]];
352  nphi = hd.bins();
353  iphi = (int)(nphi*((pClus->phi() - hd.lowEdge())
354  /(hd.highEdge()-hd.lowEdge())));
355  if ( iphi < 0 || iphi > nphi-1 ) {
356  ATH_MSG_WARNING( " Phi index out of bounds " <<
357  iphi << " not in [0," << nphi-1 << "]" );
358  iphi = -1;
359  }
360  }
361 
362  const Gaudi::Histo1DDef & hd = m_dimensions[m_isampmap[2]];
363  nlogE = hd.bins();
364  ilogE = (int)(nlogE*((log10(eng) - hd.lowEdge())
365  /(hd.highEdge()-hd.lowEdge())));
366  if ( ilogE >= 0 && ilogE < nlogE ) {
367  double lamb,eout,etot,isol;
368  if (!pClus->retrieveMoment(xAOD::CaloCluster::CENTER_LAMBDA,lamb) ||
369  !pClus->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_OUT_L,eout) ||
370  !pClus->retrieveMoment(xAOD::CaloCluster::ENG_CALIB_TOT,etot) ||
371  !pClus->retrieveMoment(xAOD::CaloCluster::ISOLATION,isol)) {
372  ATH_MSG_ERROR( "Failed to retrieve a cluster moment (CENTER_LAMBDA,ENG_CALIB_OUT,ENG_CALIB_TOT,ISOLATION)" );
373  return StatusCode::FAILURE;
374  }
375 
376  if ( lamb > 0 &&
377  etot > 0 &&
378  isol > 0.5 )
379  {
380  int iO = ilogE*nphi*nside+iphi*nside+iside;
381  if (m_ooc[iO]) {
382  double norm = 0.0;
384  norm = etot*inv_eCalibTot;
385  }
387  // cluster has to have at least 1% of the calib hit E
388  norm = log10(etot*inv_eCalibTot)+2.0;
389  }
391  norm = inv_nClusECalibGt0;
392  }
393  else {
394  norm = 1.0;
395  }
396  if ( norm > 0 ) {
397  m_ooc[iO]->Fill(fabs(pClus->eta()),log10(lamb),eout/eng/isol,norm);
398  }
399  }
400  }
401  }
402  }
403  }
404  }
405 
406  return StatusCode::SUCCESS;
407 }

◆ 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 GetLCOutOfCluster::finalize ( )
virtual

Definition at line 261 of file GetLCOutOfCluster.cxx.

262 {
263  ATH_MSG_INFO( "Writing out histograms" );
264  m_outputFile->cd();
265  for(unsigned int i=0;i<m_ooc.size();i++) {
266  m_ooc[i]->Write();
267  }
268  m_outputFile->Close();
269 
270  return StatusCode::SUCCESS;
271 }

◆ initialize()

StatusCode GetLCOutOfCluster::initialize ( )
virtual

Definition at line 96 of file GetLCOutOfCluster.cxx.

96  {
97 
98  m_outputFile = std::make_unique<TFile>(m_outputFileName.c_str(),"RECREATE");
99  m_outputFile->cd();
100  m_ooc.resize(0);
101 
102  mapparse();
103 
104  if ( m_NormalizationType == "Lin" ) {
105  ATH_MSG_INFO( "Using weighting proportional to E_calib" );
107  }
108  else if ( m_NormalizationType == "Log" ) {
109  ATH_MSG_INFO( "Using weighting proportional to log(E_calib)" );
111  }
112  else if ( m_NormalizationType == "NClus" ) {
113  ATH_MSG_INFO( "Using weighting proportional to 1/N_Clus_E_calib>0" );
115  }
116  else {
117  ATH_MSG_INFO( "Using constant weighting" );
119  }
120 
121  if ( m_ClassificationType == "None" ) {
122  ATH_MSG_INFO( "Expecting single particle input" );
124  }
125  else if ( m_ClassificationType == "ParticleID_EM" ) {
126  ATH_MSG_INFO( "Expecting ParticleID simulation as input -- use EM type clusters only" );
128  }
129  else if ( m_ClassificationType == "ParticleID_HAD" ) {
130  ATH_MSG_INFO( "Expecting ParticleID simulation as input -- use HAD type clusters only" );
132  }
133  else {
134  ATH_MSG_WARNING( " unknown classification type " << m_ClassificationType << " given! Using None instead" );
136  }
137 
138  int iside(-1);
139  int ieta(-1);
140  int iphi(-1);
141  int ilogE(-1);
142  int iloglambda(-1);
143  int iweight(-1);
144 
145  m_isampmap.resize(3,-1);
146  for(unsigned int idim=0;idim<m_dimensions.size();idim++) {
147  if ( m_dimensions[idim].title() == "side" ) {
148  iside = idim;
149  m_isampmap[0] = iside;
150  }
151  else if ( m_dimensions[idim].title() == "|eta|" )
152  ieta = idim;
153  else if ( m_dimensions[idim].title() == "phi" ) {
154  iphi = idim;
155  m_isampmap[1] = iphi;
156  }
157  else if ( m_dimensions[idim].title() == "log10(E_clus (MeV))" ) {
158  ilogE = idim;
159  m_isampmap[2] = ilogE;
160  }
161  else if ( m_dimensions[idim].title() == "log10(lambda_clus (mm))" )
162  iloglambda = idim;
163  else if ( m_dimensions[idim].title() == "weight" )
164  iweight = idim;
165  }
166  if ( ilogE < 0 || ieta < 0 || iloglambda < 0 || iweight < 0 || iside < 0 ) {
167  ATH_MSG_FATAL(" Mandatory dimension log10E, |eta|, log10lambda or weight missing ...");
168  return StatusCode::FAILURE;
169  }
170  int nside = m_dimensions[iside].bins();
171  int nphi = (iphi>=0?m_dimensions[iphi].bins():1);
172  int nlogE = m_dimensions[ilogE].bins();
173  m_ooc.resize(nside*nphi*nlogE,nullptr);
174  for ( int jside=0;jside<nside;jside++) {
175  for ( int jphi=0;jphi<nphi;jphi++) {
176  for(int jlogE=0;jlogE<nlogE;jlogE++) {
177  TString oname("ooc");
178  oname += "_iside_";
179  oname += jside;
180  oname += "_[";
181  oname += m_dimensions[iside].lowEdge();
182  oname += ",";
183  oname += m_dimensions[iside].highEdge();
184  oname += ",";
185  oname += nside;
186  oname += "]";
187  oname += "_iphi_";
188  oname += jphi;
189  oname += "_[";
190  oname += (iphi>=0?m_dimensions[iphi].lowEdge():-1);
191  oname += ",";
192  oname += (iphi>=0?m_dimensions[iphi].highEdge():-1);
193  oname += ",";
194  oname += nphi;
195  oname += "]";
196  oname += "_ilogE_";
197  oname += jlogE;
198  oname += "_[";
199  oname += m_dimensions[ilogE].lowEdge();
200  oname += ",";
201  oname += m_dimensions[ilogE].highEdge();
202  oname += ",";
203  oname += nlogE;
204  oname += "]";
205  int iO = jlogE*nphi*nside+jphi*nside+jside;
206  m_ooc[iO] = new TProfile2D(oname,oname,
207  m_dimensions[ieta].bins(),
208  m_dimensions[ieta].lowEdge(),
209  m_dimensions[ieta].highEdge(),
210  m_dimensions[iloglambda].bins(),
211  m_dimensions[iloglambda].lowEdge(),
212  m_dimensions[iloglambda].highEdge(),
213  m_dimensions[iweight].lowEdge(),
214  m_dimensions[iweight].highEdge());
215  m_ooc[iO]->SetXTitle("|#eta_{clus}|");
216  m_ooc[iO]->SetYTitle("log_{10}(#lambda_{clus} (mm))");
217  m_ooc[iO]->SetZTitle("E_{out of cluster} / E_{clus}^{EM-no-PS/Gap3} / Isolation");
218  }
219  }
220  }
221  //--- check sampling names to use exclude in correction
222  for (const std::string& name : m_invalidSamplingNames) {
223  int theSampling(CaloSampling::Unknown);
224  for (unsigned int jsamp = 0;jsamp< CaloSampling::Unknown; jsamp++) {
226  theSampling = jsamp;
227  break;
228  }
229  }
230  if ( theSampling == CaloSampling::Unknown ) {
231  msg(MSG::ERROR) << "Calorimeter sampling "
232  << name
233  << " is not a valid Calorimeter sampling name and will be ignored! "
234  << "Valid names are: ";
235  for (unsigned int jsamp = 0;jsamp< CaloSampling::Unknown; jsamp++) {
237  if ( jsamp < CaloSampling::Unknown-1)
238  msg() << ", ";
239  else
240  msg() << ".";
241  }
242  msg() << endmsg;
243  }
244  else {
245  m_invalidSamplings.insert(theSampling);
246  }
247  }
248 
249  msg(MSG::INFO) << "Samplings to exclude from the out-of-cluster weighting:";
250  for (const std::string& name : m_invalidSamplingNames)
251  msg() << " " << name;
252  msg() << endmsg;
253 
255 
256  return StatusCode::SUCCESS;
257 }

◆ 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.

◆ mapinsert()

void GetLCOutOfCluster::mapinsert ( const std::vector< Gaudi::Histo1DDef > &  dims)
private

Definition at line 409 of file GetLCOutOfCluster.cxx.

409  {
410  for (unsigned int i=0;i<dims.size();i++) {
411  m_dimensionsmap[dims[i].title()] = dims[i];
412  }
413 }

◆ mapparse()

void GetLCOutOfCluster::mapparse ( )
private

Definition at line 415 of file GetLCOutOfCluster.cxx.

415  {
416 
417  for (std::pair<const std::string, Gaudi::Histo1DDef>& p : m_dimensionsmap) {
418  m_dimensions.push_back(p.second);
419  ATH_MSG_DEBUG(" New Dimension: "
420  << p.second.title() << ", [" << p.second.lowEdge()
421  << ", " << p.second.highEdge()
422  << ", " << p.second.bins()
423  << "]");
424  }
425 }

◆ 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 GetLCOutOfCluster::m_ClassificationType
private

string to choose different classification types

Available options are "None": the input MC is expected to be just a single pion MC with one sort of particles; "ParticleID_EM" Gena's ParticleID classification (EM type objects) for the use of QCD MC; "ParticleID_HAD" Gena's ParticleID classification (HAD type objects) for the use of QCD MC;

Definition at line 154 of file GetLCOutOfCluster.h.

◆ m_ClassificationTypeNumber

int GetLCOutOfCluster::m_ClassificationTypeNumber
private

Definition at line 156 of file GetLCOutOfCluster.h.

◆ m_clusterCollName

SG::ReadHandleKey<xAOD::CaloClusterContainer> GetLCOutOfCluster::m_clusterCollName
private

Name of the CaloClusterContainer to use.

Definition at line 113 of file GetLCOutOfCluster.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_dimensions

std::vector<Gaudi::Histo1DDef> GetLCOutOfCluster::m_dimensions
private

definition of all dimensions used for out-of-cluster corrections

The currently defined dimensions are:

side: negative values for eta < 0 and positive for eta > 0; 1 bin from -1.5 to 1.5 for no side dependency

|eta|: the absolute value of eta; normally in ATLAS the bounds are within [0,5], smaller ones are useful for test beam setups.

phi: the phi range; 1 bin from -pi to pi for no phi dependency

log10(E_clus^EMnoPSnoGap3): the log10 of the cluster energy on EM scale without pre-samplers and gap scintillators; typical range should be within the generated energy range of single pions with about 50% room to the maximum created energy - i.e. use log10(1 TeV) as max value if you generated up tp 2 TeV pions

log10(lambda_clus): the log10 of the cluster depth in the calorimeter; typical ranges are from 0 to 4

weight: the ratio E_outOfCluster/E_clus^EMnoPSnoGap3/Isolation; the bounds define the level of truncation for the weights to suppress noise and bad sampling ratios. Typical bounds are 0. to 5.

Definition at line 76 of file GetLCOutOfCluster.h.

◆ m_dimensionsmap

std::map<std::string,Gaudi::Histo1DDef> GetLCOutOfCluster::m_dimensionsmap
private

property to set all dimensions introduced above

Gaudi has only a map<string,Histo1DDef> to use as property. So the syntax for all dimensions introduced above is {'Title': ('Title',Low,High,Bins), ... }.

Definition at line 84 of file GetLCOutOfCluster.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_invalidSamplingNames

std::vector<std::string> GetLCOutOfCluster::m_invalidSamplingNames
private

vector of names of the calorimeter samplings not to use when applying the out-of-cluster weights.

The pre-sampler layers (barrel and endcap) and the gap-scintillators should not receive out-of-cluster weights as they mainly deal with dead-material corrections.

Definition at line 122 of file GetLCOutOfCluster.h.

◆ m_invalidSamplings

std::set<int> GetLCOutOfCluster::m_invalidSamplings
private

actual set of samplings to be ignored for out-of-cluster weights

This set is created according to the names given in the property m_invalidSamplingNames.

Definition at line 129 of file GetLCOutOfCluster.h.

◆ m_isampmap

std::vector<int> GetLCOutOfCluster::m_isampmap
private

Vector of indices in m_dimensions.

Internal list of indices in m_dimensions object.

Definition at line 90 of file GetLCOutOfCluster.h.

◆ m_NormalizationType

std::string GetLCOutOfCluster::m_NormalizationType
private

string to choose different normalization types

Available options are "Const": every cluster counts with weight 1; "Lin": Each cluster is weighted with E_calib_clus/E_calib_tot; "Log": Each cluster is weighted with log10(E_calib_clus/E_calib_tot)+2; "NClus": Each cluster is weighted with 1/TotalNumberOfClustersWithE_calib>0.

Definition at line 141 of file GetLCOutOfCluster.h.

◆ m_NormalizationTypeNumber

int GetLCOutOfCluster::m_NormalizationTypeNumber
private

Definition at line 143 of file GetLCOutOfCluster.h.

◆ m_ooc

std::vector<TProfile2D *> GetLCOutOfCluster::m_ooc
private

Vector of actual histograms.

Internal list of histograms to fill and save.

Definition at line 96 of file GetLCOutOfCluster.h.

◆ m_outputFile

std::unique_ptr<TFile> GetLCOutOfCluster::m_outputFile
private

Output file to save histograms in.

Internal variable pointing to the output file.

Definition at line 109 of file GetLCOutOfCluster.h.

◆ m_outputFileName

std::string GetLCOutOfCluster::m_outputFileName
private

Name of the output file to save histograms in.

Use this property to set the name of the output file containing the OutOfCluster histograms.

Definition at line 103 of file GetLCOutOfCluster.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:
GetLCDefs::CONST
@ CONST
Definition: GetLCDefs.h:21
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
PlotCalibFromCool.norm
norm
Definition: PlotCalibFromCool.py:100
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
GetLCOutOfCluster::m_NormalizationTypeNumber
int m_NormalizationTypeNumber
Definition: GetLCOutOfCluster.h:143
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.App.bins
bins
Definition: App.py:410
GetLCOutOfCluster::m_NormalizationType
std::string m_NormalizationType
string to choose different normalization types
Definition: GetLCOutOfCluster.h:141
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
GetLCOutOfCluster::m_ooc
std::vector< TProfile2D * > m_ooc
Vector of actual histograms.
Definition: GetLCOutOfCluster.h:96
TProfile2D
Definition: rootspy.cxx:531
M_PI
#define M_PI
Definition: ActiveFraction.h:11
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
xAOD::CaloCluster_v1::CENTER_LAMBDA
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
Definition: CaloCluster_v1.h:136
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
GetLCOutOfCluster::m_ClassificationType
std::string m_ClassificationType
string to choose different classification types
Definition: GetLCOutOfCluster.h:154
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
GetLCOutOfCluster::m_dimensionsmap
std::map< std::string, Gaudi::Histo1DDef > m_dimensionsmap
property to set all dimensions introduced above
Definition: GetLCOutOfCluster.h:84
GetLCDefs::NONE
@ NONE
Definition: GetLCDefs.h:25
GetLCDefs::NCLUS
@ NCLUS
Definition: GetLCDefs.h:21
GetLCDefs::PARTICLEID_EM
@ PARTICLEID_EM
Definition: GetLCDefs.h:25
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
GetLCOutOfCluster::m_invalidSamplingNames
std::vector< std::string > m_invalidSamplingNames
vector of names of the calorimeter samplings not to use when applying the out-of-cluster weights.
Definition: GetLCOutOfCluster.h:122
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
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:92
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
GetLCOutOfCluster::m_outputFile
std::unique_ptr< TFile > m_outputFile
Output file to save histograms in.
Definition: GetLCOutOfCluster.h:109
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
GetLCOutOfCluster::m_isampmap
std::vector< int > m_isampmap
Vector of indices in m_dimensions.
Definition: GetLCOutOfCluster.h:90
xAOD::CaloCluster_v1::ENG_CALIB_TOT
@ ENG_CALIB_TOT
Calibration Hit energy inside the cluster.
Definition: CaloCluster_v1.h:195
covarianceTool.title
title
Definition: covarianceTool.py:542
xAOD::CaloCluster_v1::ENG_CALIB_FRAC_EM
@ ENG_CALIB_FRAC_EM
Calibration Hit energy inside the cluster caused by e/gamma/pi0.
Definition: CaloCluster_v1.h:248
xAOD::CaloCluster_v1::ISOLATION
@ ISOLATION
Energy weighted fraction of non-clustered perimeter cells.
Definition: CaloCluster_v1.h:146
GetLCOutOfCluster::m_clusterCollName
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_clusterCollName
Name of the CaloClusterContainer to use.
Definition: GetLCOutOfCluster.h:113
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
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
GetLCOutOfCluster::mapparse
void mapparse()
Definition: GetLCOutOfCluster.cxx:415
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
GetLCOutOfCluster::m_outputFileName
std::string m_outputFileName
Name of the output file to save histograms in.
Definition: GetLCOutOfCluster.h:103
GetLCDefs::PARTICLEID_HAD
@ PARTICLEID_HAD
Definition: GetLCDefs.h:25
GetLCOutOfCluster::m_invalidSamplings
std::set< int > m_invalidSamplings
actual set of samplings to be ignored for out-of-cluster weights
Definition: GetLCOutOfCluster.h:129
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
CaloSamplingHelper::getSamplingName
static const std::string & getSamplingName(const CaloSampling::CaloSample theSample)
Returns a string (name) for each CaloSampling.
Definition: CaloUtils/src/CaloSamplingHelper.cxx:42
a
TList * a
Definition: liststreamerinfos.cxx:10
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthCommonMsg< Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
GetLCDefs::LOG
@ LOG
Definition: GetLCDefs.h:21
GetLCDefs::LIN
@ LIN
Definition: GetLCDefs.h:21
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
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
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
xAOD::CaloCluster_v1::ENG_CALIB_OUT_L
@ ENG_CALIB_OUT_L
Attached Calibration Hit energy outside clusters but inside the calorimeter with loose matching (Angl...
Definition: CaloCluster_v1.h:196
GetLCOutOfCluster::m_ClassificationTypeNumber
int m_ClassificationTypeNumber
Definition: GetLCOutOfCluster.h:156
GetLCOutOfCluster::m_dimensions
std::vector< Gaudi::Histo1DDef > m_dimensions
definition of all dimensions used for out-of-cluster corrections
Definition: GetLCOutOfCluster.h:76
GetLCOutOfCluster::mapinsert
void mapinsert(const std::vector< Gaudi::Histo1DDef > &dims)
Definition: GetLCOutOfCluster.cxx:409
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
python.handimod.cc
int cc
Definition: handimod.py:523
ServiceHandle< ICondSvc >