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

calculates hadronic cell weights based on cluster and cell quantities More...

#include <CaloLCWeightTool.h>

Inheritance diagram for CaloLCWeightTool:
Collaboration diagram for CaloLCWeightTool:

Public Member Functions

virtual ~CaloLCWeightTool ()
virtual StatusCode weight (xAOD::CaloCluster *theCluster, const EventContext &ctx) const override
 method to weight the cells in a cluster
virtual StatusCode initialize () override
 CaloLCWeightTool (const std::string &type, const std::string &name, const IInterface *parent)
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

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

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

SG::ReadCondHandleKey< CaloLocalHadCoeffm_key
 name of the key for had cell weights
double m_signalOverNoiseCut
 minimal signal/elec_noise ratio for a cell to be weighted
bool m_useHadProbability
 look for em-probability moment and apply relative weight only
std::vector< std::string > m_sampnames
 vector of names of individual samplings
bool m_interpolate
 interpolate correction coefficients
bool m_updateSamplingVars
 update also sampling variables
std::vector< std::string > m_interpolateDimensionNames
 vector of names of dimensions in look-up tables to interpolate
std::vector< int > m_interpolateDimensions
 actual set of dimension id's to interpolate
const CaloCell_IDm_calo_id
SG::ReadCondHandleKey< CaloNoisem_noiseCDOKey {this,"CaloNoiseKey","electronicNoise","SG Key of CaloNoise data object"}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

calculates hadronic cell weights based on cluster and cell quantities

Version
$Id: CaloLCWeightTool.h,v 1.8 2009-01-27 09:09:14 gunal Exp $
Author
Sven Menke menke.nosp@m.@mpp.nosp@m.mu.mp.nosp@m.g.de
Date
26-August-2009

concrete class implementing a IClusterCellWeightTool to calculate the H1-type cell hadronic weights for cells inside a cluster. The cluster moments and its energy are also used to derive the weights

  • therefore the weighting is not called cell-by-cell, but for the entire cluster This tool reads its data from pool containing TProfile2D based weighting data.

Definition at line 33 of file CaloLCWeightTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ~CaloLCWeightTool()

CaloLCWeightTool::~CaloLCWeightTool ( )
virtualdefault

◆ CaloLCWeightTool()

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

Definition at line 32 of file CaloLCWeightTool.cxx.

35 : AthAlgTool(type,name,parent),
36 m_key("HadWeights"),
39 m_interpolate(false),
40 m_calo_id(nullptr)
41{
42
43 declareInterface<IClusterCellWeightTool>(this);
44 declareProperty("CorrectionKey",m_key);
45 // Minimal Signal Over Noise (|E|/sigma) level for cells
46 declareProperty("SignalOverNoiseCut",m_signalOverNoiseCut);
47 // Use EM_PROBABILITY Moment to apply relative weights
48 declareProperty("UseHadProbability",m_useHadProbability);
49 // Use Interpolation or not
50 declareProperty("Interpolate",m_interpolate);
52 m_interpolateDimensionNames[0] = "DIMW_ETA";
53 m_interpolateDimensionNames[1] = "DIMW_ENER";
54 m_interpolateDimensionNames[2] = "DIMW_EDENS";
55 declareProperty("InterpolateDimensionNames", m_interpolateDimensionNames);
56 declareProperty("UpdateSamplingVars",m_updateSamplingVars=false);
57}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const CaloCell_ID * m_calo_id
std::vector< std::string > m_interpolateDimensionNames
vector of names of dimensions in look-up tables to interpolate
double m_signalOverNoiseCut
minimal signal/elec_noise ratio for a cell to be weighted
SG::ReadCondHandleKey< CaloLocalHadCoeff > m_key
name of the key for had cell weights
bool m_updateSamplingVars
update also sampling variables
bool m_useHadProbability
look for em-probability moment and apply relative weight only
bool m_interpolate
interpolate correction coefficients

Member Function Documentation

◆ declareGaudiProperty()

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

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

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

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

Definition at line 145 of file AthCommonDataStore.h.

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

◆ detStore()

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

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

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

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

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

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

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

Add StoreName to extra input/output deps as needed.

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

◆ initialize()

StatusCode CaloLCWeightTool::initialize ( )
overridevirtual

Definition at line 59 of file CaloLCWeightTool.cxx.

60{
61 if(m_interpolate) {
62 msg(MSG::INFO) << "Interpolation is ON, dimensions: ";
63 for(std::vector<std::string>::iterator it=m_interpolateDimensionNames.begin(); it!=m_interpolateDimensionNames.end(); ++it){
64 msg(MSG::INFO) << " " << (*it);
65 }
66 msg() << endmsg;
67 for(std::vector<std::string>::iterator it=m_interpolateDimensionNames.begin(); it!=m_interpolateDimensionNames.end(); ++it){
70 m_interpolateDimensions.push_back(int(id));
71 }else{
72 ATH_MSG_WARNING( "Dimension '" << (*it) << "' is invalid and will be excluded." );
73 }
74 }
75 }
76
77 ATH_MSG_INFO( "Initializing " << name() );
78
79 ATH_CHECK( m_key.initialize() );
80
81 ATH_CHECK( detStore()->retrieve( m_calo_id, "CaloCell_ID") );
82
83 m_sampnames.reserve(CaloSampling::Unknown);
84 for (int iSamp=0;iSamp<CaloSampling::Unknown;iSamp++) {
86 }
87
88 ATH_CHECK(m_noiseCDOKey.initialize());
89
90 return StatusCode::SUCCESS;
91}
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
#define ATH_MSG_WARNING(x)
const ServiceHandle< StoreGateSvc > & detStore() const
MsgStream & msg() const
static CaloLocalHadDefs::LocalHadDimensionId getDimensionId(const std::string &dimensionName)
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
std::vector< int > m_interpolateDimensions
actual set of dimension id's to interpolate
std::vector< std::string > m_sampnames
vector of names of individual samplings
static const std::string & getSamplingName(const CaloSampling::CaloSample theSample)
Returns a string (name) for each CaloSampling.
retrieve(aClass, aKey=None)
Definition PyKernel.py:110
LocalHadDimensionId
enums to identify user dimensions id number DIMC_* - classification, DIMW_*-weighting,...

◆ 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()

const InterfaceID & IClusterCellWeightTool::interfaceID ( )
inlinestaticinherited

Definition at line 28 of file IClusterCellWeightTool.h.

28 {
29 static const InterfaceID IID_IClusterCellWeightTool("IClusterCellWeightTool", 1 , 0);
30 return IID_IClusterCellWeightTool;
31 }

◆ msg()

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

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

Definition at line 30 of file AthCommonMsg.h.

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

◆ outputHandles()

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

Return this algorithm's output handles.

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

◆ renounce()

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

Definition at line 380 of file AthCommonDataStore.h.

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

◆ renounceArray()

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

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

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

Perform system initialization for an algorithm.

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

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

◆ sysStart()

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

Handle START transition.

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

◆ updateVHKA()

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

Definition at line 308 of file AthCommonDataStore.h.

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

◆ weight()

StatusCode CaloLCWeightTool::weight ( xAOD::CaloCluster * thisCluster,
const EventContext & ctx ) const
overridevirtual

method to weight the cells in a cluster

Parameters
theClusterthe pointer to the CaloCluster to be weighted

this method is purely virtual because every derived class needs to implement it.

Implements IClusterCellWeightTool.

Definition at line 93 of file CaloLCWeightTool.cxx.

94{
95 const CaloLocalHadCoeff* data(nullptr);
96 SG::ReadCondHandle<CaloLocalHadCoeff> rch(m_key, ctx);
97
98 SG::ReadCondHandle<CaloNoise> noiseHdl{m_noiseCDOKey,ctx};
99 const CaloNoise* noiseCDO=*noiseHdl;
100
101 data = *rch;
102 if(data==nullptr) {
103 ATH_MSG_ERROR("Unable to access conditions object");
104 return StatusCode::FAILURE;
105 }
106 // this is not super effective, but try to put is here first, and optimize later
107 std::vector<int> isAmpMap(CaloSampling::Unknown,-1);
108 for (int iArea=0;iArea<data->getSizeAreaSet();iArea++) {
109 for (int iSamp=0;iSamp<CaloSampling::Unknown;iSamp++) {
110 if ( m_sampnames[iSamp] == data->getArea(iArea)->getTitle() ) {
112 isAmpMap[iSamp] = iArea;
113 break;
114 }
115 }
116 }
117
118 double eEM = theCluster->e();
119
120 std::vector<float> vars(5);
121
122 CaloLCCoeffHelper hp;
124
125 double pi0Prob = 0;
126 if ( m_useHadProbability) {
127 if (!theCluster->retrieveMoment(xAOD::CaloCluster::EM_PROBABILITY,pi0Prob)) {
128 ATH_MSG_WARNING ("Cannot find cluster moment EM_PROBABILITY");
129 }
130 }
131 else if (theCluster->recoStatus().checkStatus(CaloRecoStatus::TAGGEDEM)) {
132 pi0Prob = 1.;
133 }
134 if ( pi0Prob < 0 )
135 pi0Prob = 0;
136 if ( pi0Prob > 1 )
137 pi0Prob = 1;
138
139 if ( eEM > 0 ) {
140 // loop over all cells
141
142 xAOD::CaloCluster::cell_iterator itrCell = theCluster->cell_begin();
143 xAOD::CaloCluster::cell_iterator itrCellEnd = theCluster->cell_end();
144 for (;itrCell!=itrCellEnd; ++itrCell) {
145 CaloPrefetch::nextDDE(itrCell, itrCellEnd);
146 // check calo and sampling index for current cell
147 Identifier myId = itrCell->ID();
148 CaloCell_ID::CaloSample theSample = CaloCell_ID::CaloSample(m_calo_id->calo_sample(myId));
149 if ( isAmpMap[theSample] >= 0 ) {
150 double sigma = noiseCDO->getNoise(itrCell->ID(),itrCell->gain());
151 double energy = fabs(itrCell->e());
152 double ratio = 0;
153 if ( std::isfinite(sigma) && sigma > 0 )
155 if ( ratio > m_signalOverNoiseCut ) {
156 double volume = 0;
157 double density = 0;
158 const CaloDetDescrElement* myCDDE = itrCell->caloDDE();
159 if ( myCDDE ) {
160 volume = myCDDE->volume();
161 }
162 if ( volume > 0 )
163 density = energy/volume;
164 if ( density > 0 ) {
165 double abseta = fabs(itrCell->eta());
166 double log10edens = log10(density);
167 double log10cluse = log10(eEM);
168 const CaloLocalHadCoeff::LocalHadDimension *logeDim = data->getArea(isAmpMap[theSample])->getDimension(3);
169 double lemax = logeDim->getXmax()-0.5*logeDim->getDx();
170 if ( log10cluse > lemax ) log10cluse = lemax;
171
172 vars[CaloLocalHadDefs::DIMW_SIDE] = static_cast<float> ((itrCell->eta()<0?-1.0:1.0));
173 vars[CaloLocalHadDefs::DIMW_ETA] = static_cast<float> (abseta);
174 vars[CaloLocalHadDefs::DIMW_PHI] = static_cast<float> (itrCell->phi());
175 vars[CaloLocalHadDefs::DIMW_ENER] = static_cast<float> (log10cluse);
176 vars[CaloLocalHadDefs::DIMW_EDENS] = static_cast<float> (log10edens);
177
178 bool isDataOK = false;
179 double wData(0);
180
181 // accessing coefficients (non-interpolated)
182 int iBin = data->getBin(isAmpMap[theSample],vars);
183 if ( iBin >= 0 ) {
184 const CaloLocalHadCoeff::LocalHadCoeff * pData = data->getCoeff(iBin);
185 if ( pData && (*pData)[CaloLocalHadDefs::BIN_ENTRIES] > 10 ) {
186 isDataOK = true;
187 wData = (*pData)[CaloLocalHadDefs::BIN_WEIGHT];
188 }
189 if(m_interpolate) {
190 // accesing interpolated coefficients
191 bool isa = CaloLCCoeffHelper::Interpolate(data, isAmpMap[theSample], vars, parint, m_interpolateDimensions);
192 if(isa && parint[CaloLocalHadDefs::BIN_ENTRIES] > 10) {
193 isDataOK = true;
194 wData = parint[CaloLocalHadDefs::BIN_WEIGHT];
195 }
196 }
197 }
198
199 if(isDataOK) {
200 ATH_MSG_DEBUG(" weight("
201 << theSample << ", "
202 << vars[0] << ", "
203 << vars[1] << ", "
204 << vars[2] << ", "
205 << vars[3] << ", "
206 << vars[4] << ") = "
207 << wData);
208 double weight = itrCell.weight();//theCluster->getCellWeight(itrCell); // fastest!
209 weight *= (pi0Prob + (1-pi0Prob)*wData);
210 // reweight cell in cluster
211 theCluster->reweightCell(itrCell,weight);
212 }
213 } // density
214 } // noise cut
215 } // sampling
216 } // itrCell
218 } // eEM
219
220 // assume that the weighting could be called more than once. In that case
221 // eEM is the result of the previous step and the current e/eEM ratio
222 // should be multiplied with the existing HAD_WEIGHT moment
223 double new_weight (1);
224 if (!theCluster->retrieveMoment(xAOD::CaloCluster::HAD_WEIGHT,new_weight)) {
225 ATH_MSG_ERROR("Cannot retrieve HAD_WEIGHT cluster moment." );
226 return StatusCode::FAILURE;
227 }
228
229 if ( eEM > 0 || eEM < 0 ) {
230 new_weight *= theCluster->e()/eEM;
231 }
232 theCluster->insertMoment(xAOD::CaloCluster::HAD_WEIGHT,new_weight);
233
234 return StatusCode::SUCCESS;
235}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
CaloSampling::CaloSample CaloSample
Definition CaloCell_ID.h:53
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition CaloCell.h:333
virtual double phi() const override final
get phi (through CaloDetDescrElement)
Definition CaloCell.h:375
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition CaloCell.h:321
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Definition CaloCell.h:382
CaloGain::CaloGain gain() const
get gain (data member )
Definition CaloCell.h:361
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
Definition CaloCell.h:295
static void calculateKine(xAOD::CaloCluster *clu, const bool useweight=true, const bool updateLayers=true, const bool useGPUCriteria=false)
Helper class to calculate cluster kinematics based on cells.
static bool Interpolate(const CaloLocalHadCoeff *m_data, const unsigned int n_area, std::vector< float > &x, CaloLocalHadCoeff::LocalHadCoeff &pars, const std::vector< int > &dim, double xfit=0.)
virtual StatusCode weight(xAOD::CaloCluster *theCluster, const EventContext &ctx) const override
method to weight the cells in a cluster
float getDx() const
return size of bin
float getXmax() const
return maximum value for the last bin
std::vector< float > LocalHadCoeff
Correction parameters for one general bin.
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
Definition CaloNoise.h:34
CaloClusterCellLink::iterator cell_iterator
Iterator of the underlying CaloClusterCellLink (non-const version)
@ EM_PROBABILITY
Classification probability to be em-like.
@ HAD_WEIGHT
Hadronic weight (E_w/E_em)
void nextDDE(Iter iter, Iter endIter)
Prefetch next CaloDDE.

Member Data Documentation

◆ m_calo_id

const CaloCell_ID* CaloLCWeightTool::m_calo_id
private

Definition at line 93 of file CaloLCWeightTool.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_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_interpolate

bool CaloLCWeightTool::m_interpolate
private

interpolate correction coefficients

Definition at line 77 of file CaloLCWeightTool.h.

◆ m_interpolateDimensionNames

std::vector<std::string> CaloLCWeightTool::m_interpolateDimensionNames
private

vector of names of dimensions in look-up tables to interpolate

Definition at line 85 of file CaloLCWeightTool.h.

◆ m_interpolateDimensions

std::vector<int> CaloLCWeightTool::m_interpolateDimensions
private

actual set of dimension id's to interpolate

Definition at line 90 of file CaloLCWeightTool.h.

◆ m_key

SG::ReadCondHandleKey<CaloLocalHadCoeff> CaloLCWeightTool::m_key
private

name of the key for had cell weights

Definition at line 49 of file CaloLCWeightTool.h.

◆ m_noiseCDOKey

SG::ReadCondHandleKey<CaloNoise> CaloLCWeightTool::m_noiseCDOKey {this,"CaloNoiseKey","electronicNoise","SG Key of CaloNoise data object"}
private

Definition at line 95 of file CaloLCWeightTool.h.

95{this,"CaloNoiseKey","electronicNoise","SG Key of CaloNoise data object"};

◆ m_sampnames

std::vector<std::string> CaloLCWeightTool::m_sampnames
private

vector of names of individual samplings

needed to not call many times CaloSamplingHelper::getSamplingName

Definition at line 73 of file CaloLCWeightTool.h.

◆ m_signalOverNoiseCut

double CaloLCWeightTool::m_signalOverNoiseCut
private

minimal signal/elec_noise ratio for a cell to be weighted

Only cells with |energy| above this value times the RMS of the electronics noise are considered in weighting.

Definition at line 56 of file CaloLCWeightTool.h.

◆ m_updateSamplingVars

bool CaloLCWeightTool::m_updateSamplingVars
private

update also sampling variables

Definition at line 81 of file CaloLCWeightTool.h.

◆ m_useHadProbability

bool CaloLCWeightTool::m_useHadProbability
private

look for em-probability moment and apply relative weight only

The classification provides the probability p for the current cluster to be em-like. Hadronic weights are applied with the additional hadronic probablity factor (1-p) to all clusters for the cases EM and HAD.

Definition at line 65 of file CaloLCWeightTool.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: