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

#include <CaloClusterCellWeightCalib.h>

Inheritance diagram for CaloClusterCellWeightCalib:
Collaboration diagram for CaloClusterCellWeightCalib:

Public Member Functions

 CaloClusterCellWeightCalib (const std::string &type, const std::string &name, const IInterface *pParent)
 Algorithm tool constructor. More...
 
virtual ~CaloClusterCellWeightCalib () override
 Base tool destructor. More...
 
virtual StatusCode initialize () override
 Tool initialization. More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloCluster *theCluster) const override
 Execute on a single cluster. More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloCluster *cluster) const=0
 Tool execution. More...
 
virtual StatusCode execute (xAOD::CaloCluster *cluster) final
 Tool execution. More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloClusterContainer *collection) const
 Tool execution. More...
 
virtual StatusCode execute (xAOD::CaloCluster *cluster) final
 Execute on a single cluster. More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloClusterContainer *collection) const
 Execute on an entire collection of clusters. More...
 
virtual StatusCode execute (xAOD::CaloClusterContainer *collection) final
 Execute on an entire collection of clusters. 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 sysInitialize () override
 Perform system initialization for an algorithm. 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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 Standard Gaudi interface ID method. More...
 

Protected Types

typedef StatusCode(CaloClusterCellWeightCalib::* CALCULATOR) (xAOD::CaloCluster *pClus) const
 Processor type for cluster calibration ‍/ typedef StatusCode (CaloClusterCellWeightCalib::*PROCESSOR)(const xAOD::CaloCluster pClus) const;. More...
 

Protected Member Functions

StatusCode f_dirRaw (xAOD::CaloCluster *pClus) const
 Calculator implementation for energy only update. More...
 
StatusCode f_dirRawNW (xAOD::CaloCluster *pClus) const
 Calculator implementation for energy only update. More...
 
StatusCode f_dirPos (xAOD::CaloCluster *pClus) const
 Calculator implementation for direction from positive signal. More...
 
StatusCode f_dirPosNW (xAOD::CaloCluster *pClus) const
 Calculator implementation for direction from positive signal. More...
 
StatusCode f_dirAbs (xAOD::CaloCluster *pClus) const
 Calculator implementation for direction from absolute signal. More...
 
StatusCode f_dirAbsNW (xAOD::CaloCluster *pClus) const
 Calculator implementation for direction from absolute signal. More...
 
StatusCode setupAll (MsgStream &report)
 Setup for calculation for all or non-noise clusters. More...
 
StatusCode setupSpc (MsgStream &report)
 Setup for different calculation for noise clusters. More...
 
bool setup (const std::string &name, const std::string &tag, CALCULATOR &calc, std::string &conf, MsgStream &report)
 Common setup function. More...
 
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...
 

Static Protected Member Functions

static bool cmpNoCase (const std::string &a, const std::string &b)
 Helper for non-case sensitive string comparison. More...
 

Protected Attributes

std::string m_directionCalculation
 Property controlling negative signal handling. More...
 
bool m_calibNoiseLikeAll
 Property controlling calibration of noise clusters. More...
 
std::string m_noiseDirectionCalculation
 Property controlling calibration method for noise clusters. More...
 
double m_eThreshold
 Energy threshold for direction calculation. More...
 
bool m_ignoreGeoWghts
 Flag to ignore geometrical cell weights in clusters. More...
 
ToolHandle< ICellWeightToolm_cellWeight
 Handle for cell weight tool. More...
 
CALCULATOR m_calc
 Pointer to direction calculation implementation. More...
 
CALCULATOR m_calc_noise
 Pointer to direction calculation for noise clusters. More...
 

Static Protected Attributes

static const std::string m_defName = m_absName
 Negative signal handling: default tag. More...
 
static const std::string m_posName = "Signal"
 Negative signal handling: positive signal tag. More...
 
static const std::string m_absName = "AbsSignal"
 Negative signal handling: absolute signal tag. More...
 
static const std::string m_rawName = "RawSignal"
 Negative signal handling: raw signal tag. 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

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

Tool calculates alternative cluster calibration using an external cell weight tool with interface ICellWeightTool . It only modifies the cluster 4-vector from alternative calibration, i.e. it switches the CaloCluster to signal state P4SignalState::ALTCALIBRATED and puts the result of the cell weight calibration into this state. Previously set alternative calibrations are overwritten, but the basic (P4SignalState::UNCALIBRATED ) and (local hadronic) calibrated (P4SignalState::CALIBRATED ) are not changed. The cluster is returned to the signal state it has been received in. Even though with this behaviour the tool could run at any time in the cluster algorithm, it should run right after the cluster formation, i.e. it should be the first calibration/correction tool, as it is using the geometrical weights, which are lost in local hadronic calibration. Note that the tool can be configured to ignore these weights, but this can lead to unexpected signal calibrations.

Definition at line 16 of file CaloClusterCellWeightCalib.h.

Member Typedef Documentation

◆ CALCULATOR

typedef StatusCode(CaloClusterCellWeightCalib::* CaloClusterCellWeightCalib::CALCULATOR) (xAOD::CaloCluster *pClus) const
protected

Processor type for cluster calibration ‍/ typedef StatusCode (CaloClusterCellWeightCalib::*PROCESSOR)(const xAOD::CaloCluster pClus) const;.

/*! Processor implementation for all clusters ‍/ StatusCode p_execAll(const xAOD::CaloCluster pClus) const; /*! Processor implementation for dedicated noise cluster treatment ‍/ StatusCode p_execSpc(const xAOD::CaloCluster pClus) const;

/*! Pointer to cluster processor *‍/ PROCESSOR p_execute;

/*! Calculator type for direction calculation

Definition at line 116 of file CaloClusterCellWeightCalib.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CaloClusterCellWeightCalib()

CaloClusterCellWeightCalib::CaloClusterCellWeightCalib ( const std::string &  type,
const std::string &  name,
const IInterface *  pParent 
)

Algorithm tool constructor.

Definition at line 31 of file CaloClusterCellWeightCalib.cxx.

35  : CaloClusterProcessor(type,name,pParent)
37  , m_calibNoiseLikeAll(true)
39  , m_eThreshold(0.)
40  , m_ignoreGeoWghts(false)
41  , m_cellWeight(this)
42  , m_calc(nullptr)
43  , m_calc_noise(nullptr)
44 {
46  declareProperty("BelowThresholdLikeAll", m_calibNoiseLikeAll);
47  declareProperty("BelowThresholdDirection", m_noiseDirectionCalculation);
48  declareProperty("EnergyThreshold", m_eThreshold);
49  declareProperty("IgnoreGeoWeights", m_ignoreGeoWghts);
50  declareProperty("CellSignalWeightTool", m_cellWeight);
51 }

◆ ~CaloClusterCellWeightCalib()

CaloClusterCellWeightCalib::~CaloClusterCellWeightCalib ( )
overridevirtualdefault

Base tool destructor.

Member Function Documentation

◆ cmpNoCase()

bool CaloClusterCellWeightCalib::cmpNoCase ( const std::string &  a,
const std::string &  b 
)
staticprotected

Helper for non-case sensitive string comparison.

Definition at line 230 of file CaloClusterCellWeightCalib.cxx.

232 {
233  // same length required
234  if ( a.length() != b.length() ) return false;
235  // adapted from Stroustrup, The C++ Programming Language, Special
236  // Edition, (2001 printing), p 591.
237  std::string::const_iterator p1(a.begin());
238  std::string::const_iterator p2(b.begin());
239  while ( p1 != a.end() && p2 != b.end() )
240  {
241  if ( std::toupper(*p1) != std::toupper(*p2) ) return false;
242  ++p1;
243  ++p2;
244  }
245  return true;
246 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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() [1/7]

virtual StatusCode CaloClusterProcessor::execute

Tool execution.

◆ execute() [2/7]

StatusCode CaloClusterCellWeightCalib::execute ( const EventContext &  ctx,
xAOD::CaloCluster cluster 
) const
overridevirtual

Execute on a single cluster.

Parameters
clusterThe cluster to process.
ctxThe event context.

Implements CaloClusterProcessor.

Definition at line 95 of file CaloClusterCellWeightCalib.cxx.

97 {
98 
99  // retrieve raw cluster signals
100  double clusterE(pClus->rawE());
101  double clusterEta(pClus->rawEta());
102  double clusterPhi(pClus->rawPhi());
103 
104  // report << MSG::INFO << "<UNCALIBRATED> cluster kinematics ("
105  // << pClus->e() << ","
106  // << pClus->eta() << ","
107  // << pClus->phi() << ")" << endmsg;
108 
110 
111  pClus->setE(clusterE);
112  pClus->setEta(clusterEta);
113  pClus->setPhi(clusterPhi);
114 
115  // report << MSG::INFO << "<ALTCALIBRATED> cluster kinematics, initial ("
116  // << pClus->e() << "/" << clusterE << ","
117  // << pClus->eta() << "/" << clusterEta << ","
118  // << pClus->phi() << "/" << clusterPhi << ")" << endmsg;
119 
120  // calculate new 4-vector
121  StatusCode checkOut(StatusCode::SUCCESS);
122  if ( m_calibNoiseLikeAll )
123  {
124  checkOut = (this->*m_calc)(pClus);
125  }
126  else
127  {
128  checkOut = pClus->e() > 0.
129  ? (this->*m_calc)(pClus) : (this->*m_calc_noise)(pClus);
130  }
131 
132  // report << MSG::INFO << "<ALTCALIBRATED> cluster kinematics, final ("
133  // << pClus->e() << ","
134  // << pClus->eta() << ","
135  // << pClus->phi() << ")" << endmsg;
136 
137  // check result
138  if ( checkOut.isFailure() )
139  {
140  msg(MSG::WARNING)
141  << "problem in calculation of cell weighted signal state"
142  << endmsg;
143  return StatusCode::SUCCESS;
144  }
145  else
146  {
147  // change reco status
148  pClus->recoStatus().setStatus(CaloRecoStatus::CALIBRATEDALT);
149  return checkOut;
150  }
151 }

◆ execute() [3/7]

StatusCode CaloClusterProcessor::execute

Tool execution.

Definition at line 73 of file CaloClusterProcessor.cxx.

59 {
60  xAOD::CaloClusterContainer::iterator beg = collection->begin();
61  xAOD::CaloClusterContainer::iterator end = collection->end();
62  for (; beg != end; ++beg) {
63  CHECK( execute (ctx, *beg) );
64  }
65  return StatusCode::SUCCESS;
66 }

◆ execute() [4/7]

StatusCode CaloClusterProcessor::execute ( const EventContext &  ctx,
xAOD::CaloClusterContainer collection 
) const
virtualinherited

Execute on an entire collection of clusters.

Parameters
collectionThe container of clusters.

This will iterate over all the clusters in collection and call execute on each one individually.

Parameters
collectionThe container of clusters.
ctxThe event context.

This will iterate over all the clusters in collection and call execute on each one individually.

Implements CaloClusterCollectionProcessor.

Reimplemented in CaloClusterRemoveBad.

Definition at line 57 of file CaloClusterProcessor.cxx.

59 {
62  for (; beg != end; ++beg) {
63  CHECK( execute (ctx, *beg) );
64  }
65  return StatusCode::SUCCESS;
66 }

◆ execute() [5/7]

StatusCode CaloClusterProcessor::execute
final

Tool execution.

Definition at line 63 of file CaloClusterProcessor.cxx.

44 {
45  return execute (Gaudi::Hive::currentContext(), cluster);
46 }

◆ execute() [6/7]

StatusCode CaloClusterProcessor::execute ( xAOD::CaloCluster cluster)
finalvirtualinherited

Execute on a single cluster.

Parameters
clusterThe cluster to process. (deprecated)

Definition at line 43 of file CaloClusterProcessor.cxx.

44 {
45  return execute (Gaudi::Hive::currentContext(), cluster);
46 }

◆ execute() [7/7]

virtual StatusCode CaloClusterCollectionProcessor::execute ( xAOD::CaloClusterContainer collection)
inlinefinalvirtualinherited

Execute on an entire collection of clusters.

Parameters
collectionThe container of clusters. (deprecated)

Definition at line 49 of file CaloClusterCollectionProcessor.h.

50  {
51  return execute (Gaudi::Hive::currentContext(), collection);
52  }

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ f_dirAbs()

StatusCode CaloClusterCellWeightCalib::f_dirAbs ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for direction from absolute signal.

The absolute signal is used to re-calculate the cluster direction. This is stable for all clusters but changes the direction with respect to the fixed scenario somewhat.

Definition at line 362 of file CaloClusterCellWeightCalib.cxx.

363 {
364  // loop cells in clusters
365  double eCal(0.);
366  double eRef(0.);
367  double etaRef(0.);
368  double phiRef(0.);
371  for ( ; fCell != lCell; fCell++ )
372  {
373  const CaloCell* cell = *fCell;
374  //
375  double eWght(fCell.weight() *
376  cell->e() *
377  m_cellWeight->wtCell(cell));
378  double phiCell(proxim(cell->phi(),phiRef));
379  //
380  eCal += eWght;
381  eWght = fabs(eWght);
382  etaRef += cell->eta() * eWght;
383  phiRef = CaloPhiRange::fix((phiCell * eWght + eRef * phiRef)/(eRef+eWght));
384  eRef += eWght;
385  }
386  // set cluster kinematics
387  pClus->setE(eCal);
388  if ( eRef > 0. )
389  {
390  pClus->setEta(etaRef/eRef);
391  pClus->setPhi(phiRef);
392  }
393  //
394  return StatusCode::SUCCESS;
395 }

◆ f_dirAbsNW()

StatusCode CaloClusterCellWeightCalib::f_dirAbsNW ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for direction from absolute signal.

The absolute signal is used to re-calculate the cluster direction. This is stable for all clusters but changes the direction with respect to the fixed scenario somewhat. Geometrical weights are ignored.

Definition at line 397 of file CaloClusterCellWeightCalib.cxx.

398 {
399  // loop cells in clusters
400  double eCal(0.);
401  double eRef(0.);
402  double etaRef(0.);
403  double phiRef(0.);
404  for (const CaloCell* cell : *pClus)
405  {
406  //
407  double eWght(cell->e() * m_cellWeight->wtCell(cell));
408  double phiCell(proxim(cell->phi(),phiRef));
409  //
410  eCal += eWght;
411  eWght = fabs(eWght);
412  etaRef += cell->eta() * eWght;
413  phiRef = CaloPhiRange::fix((phiCell * eWght + eRef * phiRef)/(eRef+eWght));
414  eRef += eWght;
415  }
416  // set cluster kinematics
417  pClus->setE(eCal);
418  if ( eRef > 0. )
419  {
420  pClus->setEta(etaRef/eRef);
421  pClus->setPhi(phiRef);
422  }
423  //
424  return StatusCode::SUCCESS;
425 }

◆ f_dirPos()

StatusCode CaloClusterCellWeightCalib::f_dirPos ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for direction from positive signal.

Direction is calculated using E>0 cell signals only. This may be highly fluctuating for noise clusters.

Definition at line 292 of file CaloClusterCellWeightCalib.cxx.

293 {
294  // loop cells in clusters
295  double eCal(0.);
296  double eRef(0.);
297  double etaRef(0.);
298  double phiRef(0.);
301  for ( ; fCell != lCell; fCell++ )
302  {
303  const CaloCell* cell = *fCell;
304  //
305  double eWght(fCell.weight() *
306  cell->e() *
307  m_cellWeight->wtCell(cell));
308  eCal += eWght;
309  //
310  if ( eWght > m_eThreshold )
311  {
312  double phiCell(proxim(cell->phi(),phiRef));
313  etaRef += cell->eta() * eWght;
314  phiRef = CaloPhiRange::fix((phiCell * eWght + eRef * phiRef)/(eRef+eWght));
315  eRef += eWght;
316  }
317  }
318  // set cluster kinematics
319  pClus->setE(eCal);
320  if ( eRef > 0. )
321  {
322  pClus->setEta(etaRef/eRef);
323  pClus->setPhi(phiRef);
324  }
325  //
326  return StatusCode::SUCCESS;
327 }

◆ f_dirPosNW()

StatusCode CaloClusterCellWeightCalib::f_dirPosNW ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for direction from positive signal.

Direction is calculated using E>0 cell signals only. This may be highly fluctuating for noise clusters. Geometrical weights are ignored.

Definition at line 329 of file CaloClusterCellWeightCalib.cxx.

330 {
331  // loop cells in clusters
332  double eCal(0.);
333  double eRef(0.);
334  double etaRef(0.);
335  double phiRef(0.);
336  for (const CaloCell* cell : *pClus)
337  {
338  //
339  double eWght(cell->e() *
340  m_cellWeight->wtCell(cell));
341  eCal += eWght;
342  //
343  if ( eWght > m_eThreshold )
344  {
345  double phiCell(proxim(cell->phi(),phiRef));
346  etaRef += cell->eta() * eWght;
347  phiRef = CaloPhiRange::fix((phiCell * eWght + eRef * phiRef)/(eRef+eWght));
348  eRef += eWght;
349  }
350  }
351  // set cluster kinematics
352  pClus->setE(eCal);
353  if ( eRef > 0. )
354  {
355  pClus->setEta(etaRef/eRef);
356  pClus->setPhi(phiRef);
357  }
358  //
359  return StatusCode::SUCCESS;
360 }

◆ f_dirRaw()

StatusCode CaloClusterCellWeightCalib::f_dirRaw ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for energy only update.

Direction is taken from electromagnetic scale. This is safe for all clusters.

Definition at line 253 of file CaloClusterCellWeightCalib.cxx.

254 {
255  // loop cells in clusters
256  double eCal(0.);
259  for ( ; fCell != lCell; fCell++ )
260  {
261  const CaloCell* cell = *fCell;
262  //
263  eCal +=
264  fCell.weight() *
265  cell->e() *
266  m_cellWeight->wtCell(cell);
267  }
268  // set cluster kinematics (cluster is in ALTCALIBRATED state
269  pClus->setE(eCal);
270  //
271  return StatusCode::SUCCESS;
272 }

◆ f_dirRawNW()

StatusCode CaloClusterCellWeightCalib::f_dirRawNW ( xAOD::CaloCluster pClus) const
protected

Calculator implementation for energy only update.

Direction is taken from electromagnetic scale. This is safe for all clusters. The energy calculation ignores geometrical weights.

Definition at line 274 of file CaloClusterCellWeightCalib.cxx.

275 {
276  // loop cells in clusters
277  double eCal(0.);
278  for (const CaloCell* cell : *pClus)
279  {
280  //
281  eCal +=
282  cell->e() *
283  m_cellWeight->wtCell(cell);
284  }
285  // set cluster kinematics (cluster is in ALTCALIBRATED state
286  pClus->setE(eCal);
287  //
288  return StatusCode::SUCCESS;
289 }

◆ initialize()

StatusCode CaloClusterCellWeightCalib::initialize ( )
overridevirtual

Tool initialization.

Definition at line 60 of file CaloClusterCellWeightCalib.cxx.

61 {
62  MsgStream report(msgSvc(),name());
63 
64  // configure direction calculations
66  ? this->setupAll(report) // all clusters the same
67  : this->setupSpc(report); // dedicated noise cluster treatment
68  if ( checkOut.isFailure() )
69  {
70  report << MSG::ERROR
71  << "failed to configure direction calculations."
72  << endmsg;
73  return StatusCode::FAILURE;
74  }
75 
76  // retrieve tool
77  if ( m_cellWeight.empty() || (m_cellWeight.retrieve()).isFailure() )
78  {
79  report << MSG::ERROR
80  << "*** configuration insufficient *** "
81  << "no hadronic cell calibration tool configured"
82  << endmsg;
83  return StatusCode::FAILURE;
84  }
85 
86  //
87  return StatusCode::SUCCESS;
88 }

◆ inputHandles()

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

Return this algorithm's input handles.

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

◆ interfaceID()

static const InterfaceID& CaloClusterProcessor::interfaceID ( )
inlinestaticinherited

Standard Gaudi interface ID method.

Definition at line 80 of file CaloClusterProcessor.h.

80 {return IID_CaloClusterProcessor;}

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::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< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

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

Definition at line 380 of file AthCommonDataStore.h.

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

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ setup()

bool CaloClusterCellWeightCalib::setup ( const std::string &  name,
const std::string &  tag,
CALCULATOR calc,
std::string &  conf,
MsgStream &  report 
)
protected

Common setup function.

Definition at line 176 of file CaloClusterCellWeightCalib.cxx.

181 {
183  {
184  report << MSG::INFO
185  << "cluster direction ("
186  << tag
187  << ") from positive cells only"
188  << endmsg;
189  conf = name;
193  return true;
194  }
196  {
197  report << MSG::INFO
198  << "cluster direction ("
199  << tag
200  << ") from absolute cell signals"
201  << endmsg;
202  conf = name;
206  return true;
207  }
209  {
210  report << MSG::INFO
211  << "cluster direction ("
212  << tag
213  << ") from raw signals (unchanged by this tool)"
214  << endmsg;
215  conf = name;
219  return true;
220  }
221  else
222  {
223  report << MSG::WARNING
224  << "invalid configuration, use default!"
225  << endmsg;
226  return this->setup(m_defName,tag,calc,conf,report);
227  }
228 }

◆ setupAll()

StatusCode CaloClusterCellWeightCalib::setupAll ( MsgStream &  report)
protected

Setup for calculation for all or non-noise clusters.

Definition at line 157 of file CaloClusterCellWeightCalib.cxx.

158 {
159  std::string conf;
160  std::string tag("all");
161  return this->setup(m_directionCalculation,tag,m_calc,conf,report)
162  ? StatusCode::SUCCESS : StatusCode::FAILURE;
163 }

◆ setupSpc()

StatusCode CaloClusterCellWeightCalib::setupSpc ( MsgStream &  report)
protected

Setup for different calculation for noise clusters.

Definition at line 165 of file CaloClusterCellWeightCalib.cxx.

166 {
167  std::string conf;
168  std::string aboveTag("above threshold");
169  std::string belowTag("below threshold");
170  return
171  this->setup(m_directionCalculation,aboveTag,m_calc,conf,report) &&
173  ? StatusCode::SUCCESS : StatusCode::FAILURE;
174 }

◆ sysInitialize()

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

Perform system initialization for an algorithm.

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

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

◆ sysStart()

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

Handle START transition.

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

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

Member Data Documentation

◆ m_absName

std::string const CaloClusterCellWeightCalib::m_absName = "AbsSignal"
staticprotected

Negative signal handling: absolute signal tag.

Definition at line 96 of file CaloClusterCellWeightCalib.h.

◆ m_calc

CALCULATOR CaloClusterCellWeightCalib::m_calc
protected

Pointer to direction calculation implementation.

Definition at line 161 of file CaloClusterCellWeightCalib.h.

◆ m_calc_noise

CALCULATOR CaloClusterCellWeightCalib::m_calc_noise
protected

Pointer to direction calculation for noise clusters.

Definition at line 164 of file CaloClusterCellWeightCalib.h.

◆ m_calibNoiseLikeAll

bool CaloClusterCellWeightCalib::m_calibNoiseLikeAll
protected

Property controlling calibration of noise clusters.

Flags calibration of noise (E<0) clusters:

Parameters
true(default) means noise clusters are treated as all others
falsemeans noise clusters are not calibrated at all

Definition at line 58 of file CaloClusterCellWeightCalib.h.

◆ m_cellWeight

ToolHandle<ICellWeightTool> CaloClusterCellWeightCalib::m_cellWeight
protected

Handle for cell weight tool.

Definition at line 87 of file CaloClusterCellWeightCalib.h.

◆ m_defName

std::string const CaloClusterCellWeightCalib::m_defName = m_absName
staticprotected

Negative signal handling: default tag.

Definition at line 92 of file CaloClusterCellWeightCalib.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_directionCalculation

std::string CaloClusterCellWeightCalib::m_directionCalculation
protected

Property controlling negative signal handling.

Negative cell signals are problematic for the direction calculation from cells:

Parameters
Signaluse only E>0 cells for direction
AbsSignal(default) use w*|E| for direction
RawSignaldo not recalculate direction at all

The property is not case sensitive. The default is AbsSignal, i.e. following a strategy very similar to the direction calculation performed during cluster formation.

Definition at line 49 of file CaloClusterCellWeightCalib.h.

◆ m_eThreshold

double CaloClusterCellWeightCalib::m_eThreshold
protected

Energy threshold for direction calculation.

Definition at line 72 of file CaloClusterCellWeightCalib.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_ignoreGeoWghts

bool CaloClusterCellWeightCalib::m_ignoreGeoWghts
protected

Flag to ignore geometrical cell weights in clusters.

This flags controls the use of geometrical cell weights in clusters:

Parameters
false(default) geometrical weights are used
truegeometrical weights are ignored

Note that using the geometrical weights requires this tool to run before the Local Hadronic calibration tools.

Definition at line 84 of file CaloClusterCellWeightCalib.h.

◆ m_noiseDirectionCalculation

std::string CaloClusterCellWeightCalib::m_noiseDirectionCalculation
protected

Property controlling calibration method for noise clusters.

Tags calibration method for noise (E<0) clusters. Only effective if these clusters are calibrated at all, i.e. m_calibNoise is true :

Parameters
true(default) uses same direction correction as all other clusters
falseuses AbsSignal calibration for noise clusters.

Definition at line 69 of file CaloClusterCellWeightCalib.h.

◆ m_posName

std::string const CaloClusterCellWeightCalib::m_posName = "Signal"
staticprotected

Negative signal handling: positive signal tag.

Definition at line 94 of file CaloClusterCellWeightCalib.h.

◆ m_rawName

std::string const CaloClusterCellWeightCalib::m_rawName = "RawSignal"
staticprotected

Negative signal handling: raw signal tag.

Definition at line 98 of file CaloClusterCellWeightCalib.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
CaloClusterCellWeightCalib::f_dirPosNW
StatusCode f_dirPosNW(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from positive signal.
Definition: CaloClusterCellWeightCalib.cxx:329
CaloClusterChangeSignalState
Helper to temporarily change the signal state of a cluster.
Definition: CaloClusterChangeSignalState.h:19
xAOD::CaloCluster_v1::cell_begin
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)
Definition: CaloCluster_v1.h:812
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
CaloClusterCellWeightCalib::f_dirRaw
StatusCode f_dirRaw(xAOD::CaloCluster *pClus) const
Calculator implementation for energy only update.
Definition: CaloClusterCellWeightCalib.cxx:253
CaloClusterCellWeightCalib::m_directionCalculation
std::string m_directionCalculation
Property controlling negative signal handling.
Definition: CaloClusterCellWeightCalib.h:49
CaloRecoStatus::CALIBRATEDALT
@ CALIBRATEDALT
Definition: CaloRecoStatus.h:44
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloClusterCellWeightCalib::f_dirAbs
StatusCode f_dirAbs(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from absolute signal.
Definition: CaloClusterCellWeightCalib.cxx:362
CaloClusterCollectionProcessor::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
proxim
double proxim(double b, double a)
Definition: proxim.h:17
CaloClusterCellWeightCalib::setupSpc
StatusCode setupSpc(MsgStream &report)
Setup for different calculation for noise clusters.
Definition: CaloClusterCellWeightCalib.cxx:165
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
checkTP.report
report
Definition: checkTP.py:127
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
CaloClusterCellWeightCalib::m_defName
static const std::string m_defName
Negative signal handling: default tag.
Definition: CaloClusterCellWeightCalib.h:92
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
CaloClusterCellWeightCalib::m_posName
static const std::string m_posName
Negative signal handling: positive signal tag.
Definition: CaloClusterCellWeightCalib.h:94
CaloClusterCellWeightCalib::m_cellWeight
ToolHandle< ICellWeightTool > m_cellWeight
Handle for cell weight tool.
Definition: CaloClusterCellWeightCalib.h:87
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
CaloClusterCellWeightCalib::f_dirAbsNW
StatusCode f_dirAbsNW(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from absolute signal.
Definition: CaloClusterCellWeightCalib.cxx:397
CaloClusterCellWeightCalib::m_eThreshold
double m_eThreshold
Energy threshold for direction calculation.
Definition: CaloClusterCellWeightCalib.h:72
xAOD::CaloCluster_v1::setE
void setE(flt_t)
Definition: CaloCluster_v1.cxx:375
CaloClusterCellWeightCalib::m_ignoreGeoWghts
bool m_ignoreGeoWghts
Flag to ignore geometrical cell weights in clusters.
Definition: CaloClusterCellWeightCalib.h:84
python.ConfigurableDb.conf
def conf
Definition: ConfigurableDb.py:282
CaloClusterCellWeightCalib::m_rawName
static const std::string m_rawName
Negative signal handling: raw signal tag.
Definition: CaloClusterCellWeightCalib.h:98
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
CaloClusterCellWeightCalib::m_calibNoiseLikeAll
bool m_calibNoiseLikeAll
Property controlling calibration of noise clusters.
Definition: CaloClusterCellWeightCalib.h:58
StdJOSetup.msgSvc
msgSvc
Provide convenience handles for various services.
Definition: StdJOSetup.py:36
DataModel_detail::iterator
(Non-const) Iterator class for DataVector/DataList.
Definition: DVLIterator.h:184
CaloClusterCellWeightCalib::f_dirPos
StatusCode f_dirPos(xAOD::CaloCluster *pClus) const
Calculator implementation for direction from positive signal.
Definition: CaloClusterCellWeightCalib.cxx:292
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
CaloClusterCellWeightCalib::setup
bool setup(const std::string &name, const std::string &tag, CALCULATOR &calc, std::string &conf, MsgStream &report)
Common setup function.
Definition: CaloClusterCellWeightCalib.cxx:176
CaloClusterCellWeightCalib::m_noiseDirectionCalculation
std::string m_noiseDirectionCalculation
Property controlling calibration method for noise clusters.
Definition: CaloClusterCellWeightCalib.h:69
CHECK
#define CHECK(...)
Evaluate an expression and check for errors.
Definition: Control/AthenaKernel/AthenaKernel/errorcheck.h:422
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
CaloClusterCellWeightCalib::f_dirRawNW
StatusCode f_dirRawNW(xAOD::CaloCluster *pClus) const
Calculator implementation for energy only update.
Definition: CaloClusterCellWeightCalib.cxx:274
CaloPhiRange::fix
static double fix(double phi)
Definition: CaloPhiRange.cxx:14
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
CaloClusterProcessor::CaloClusterProcessor
CaloClusterProcessor(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: CaloClusterProcessor.cxx:28
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
WriteBchToCool.beg
beg
Definition: WriteBchToCool.py:69
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloClusterCellWeightCalib::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *theCluster) const override
Execute on a single cluster.
Definition: CaloClusterCellWeightCalib.cxx:95
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
CaloClusterCellWeightCalib::m_absName
static const std::string m_absName
Negative signal handling: absolute signal tag.
Definition: CaloClusterCellWeightCalib.h:96
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
xAOD::CaloCluster_v1::ALTCALIBRATED
@ ALTCALIBRATED
Definition: CaloCluster_v1.h:308
CaloClusterCellWeightCalib::m_calc
CALCULATOR m_calc
Pointer to direction calculation implementation.
Definition: CaloClusterCellWeightCalib.h:161
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::CaloCluster_v1::cell_end
const_cell_iterator cell_end() const
Definition: CaloCluster_v1.h:813
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
xAOD::CaloCluster_v1::setPhi
bool setPhi(const CaloSample sampling, const float phi)
Set in a given sampling. Returns false if the sample isn't part of the cluster.
Definition: CaloCluster_v1.cxx:556
CaloClusterCellWeightCalib::cmpNoCase
static bool cmpNoCase(const std::string &a, const std::string &b)
Helper for non-case sensitive string comparison.
Definition: CaloClusterCellWeightCalib.cxx:230
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
xAOD::CaloCluster_v1::setEta
bool setEta(const CaloSample sampling, const float eta)
Set in a given sampling. Returns false if the sample isn't part of the cluster.
Definition: CaloCluster_v1.cxx:541
beamspotnt.calc
calc
Definition: bin/beamspotnt.py:1252
CaloClusterProcessor::execute
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloCluster *cluster) const =0
Execute on a single cluster.
CaloClusterCellWeightCalib::m_calc_noise
CALCULATOR m_calc_noise
Pointer to direction calculation for noise clusters.
Definition: CaloClusterCellWeightCalib.h:164
CaloClusterCellWeightCalib::setupAll
StatusCode setupAll(MsgStream &report)
Setup for calculation for all or non-noise clusters.
Definition: CaloClusterCellWeightCalib.cxx:157
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528