|
ATLAS Offline Software
|
classify clusters according to their probability to stem from an em object
More...
#include <CaloLCClassificationTool.h>
|
virtual | ~CaloLCClassificationTool () |
|
virtual CaloRecoStatus::StatusIndicator | classify (xAOD::CaloCluster *thisCluster) const override |
| method to return the classification status of a cluster. More...
|
|
virtual StatusCode | initialize () override |
|
| CaloLCClassificationTool (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 . 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 |
|
classify clusters according to their probability to stem from an em object
- Version
- $Id: CaloLCClassificationTool.h,v 1.6 2009-01-27 09:09:14 gunal Exp $
- Author
- Sven Menke menke.nosp@m.@mpp.nosp@m.mu.mp.nosp@m.g.de
- Date
- 27-September-2005 concrete class implementing a IClusterClassificationTool to classify clusters according to their probability to be caused by an electromagnetic decaying particle or shower. Clusters with high em probability should not be weighted. This tool reads its data from pool containing TProfile2D based em-probability data.
Definition at line 28 of file CaloLCClassificationTool.h.
◆ StoreGateSvc_t
◆ ~CaloLCClassificationTool()
CaloLCClassificationTool::~CaloLCClassificationTool |
( |
| ) |
|
|
virtualdefault |
◆ CaloLCClassificationTool()
CaloLCClassificationTool::CaloLCClassificationTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ classify()
method to return the classification status of a cluster.
- Parameters
-
theCluster | the pointer to the CaloCluster to be classified |
this method is purely virtual because every derived class needs to implement it.
Implements IClusterClassificationTool.
Definition at line 92 of file CaloLCClassificationTool.cxx.
97 if(condObject==
nullptr) {
108 std::vector<float> vars(6);
109 if ( thisCluster->
e() > 0 ||
m_absOpt ) {
110 double log10cluse = log10(thisCluster->
e());
111 if(
m_absOpt ) log10cluse = log10(fabs(thisCluster->
e()));
112 double log10cluseOrig = log10cluse;
117 if ( log10cluse > lemax )
119 if ( log10cluse < lemin )
122 double m1_dens,center_lambda;
126 if ( m1_dens > 0 && center_lambda > 0) {
127 const double abseta = fabs(thisCluster->
eta());
128 double log10edens = log10(m1_dens);
130 double log10lambda = log10(center_lambda);
139 bool isDataOK =
false;
142 int iBin = condObject->getBin(0,vars);
181 ATH_MSG_ERROR(
"Can not retrieve one or more of the cluster moments "
182 <<
"CENTER_LAMBDA, FIRST_ENG_DENS for current cluster"
183 <<
"- classification not possible - "
184 <<
"you need to enable those moments in the cluster maker!"
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ initialize()
StatusCode CaloLCClassificationTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& IClusterClassificationTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Definition at line 29 of file IClusterClassificationTool.h.
30 static const InterfaceID IID_IClusterClassificationTool(
"IClusterClassificationTool", 1 , 0);
31 return IID_IClusterClassificationTool;
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_absOpt
bool CaloLCClassificationTool::m_absOpt |
|
private |
◆ m_detStore
◆ m_evtStore
◆ m_interpolate
bool CaloLCClassificationTool::m_interpolate |
|
private |
◆ m_interpolateDimensionNames
std::vector<std::string> CaloLCClassificationTool::m_interpolateDimensionNames |
|
private |
◆ m_interpolateDimensions
std::vector<int> CaloLCClassificationTool::m_interpolateDimensions |
|
private |
◆ m_key
◆ m_maxProbability
double CaloLCClassificationTool::m_maxProbability |
|
private |
cut value on EM probability below which all clusters are classified as hadronic
Useful values are around 0.5. Clusters in Bins with an average EM probability below this cut value are tagged as hadronic. Clusters in Bins with an average EM probability above this value are considered electromagnetic and clusters falling in bins with no information are tagged as unknown.
Definition at line 83 of file CaloLCClassificationTool.h.
◆ m_storeClassificationProbabilityInAOD
bool CaloLCClassificationTool::m_storeClassificationProbabilityInAOD |
|
private |
if true the phase space probability based on single pions that the current cluster stems from a pi0 is saved on AOD as a moment.
If false the moment goes to ESD only.
Classification histos report this quantity. The subsequent calibration functions can retrieve this probability if stored as moment and weight the respective calibration by this (or 1 minus it) to avoid overcorrections.
Definition at line 95 of file CaloLCClassificationTool.h.
◆ m_useNormalizedEnergyDensity
bool CaloLCClassificationTool::m_useNormalizedEnergyDensity |
|
private |
old data depends on energy density while new data depends on energy density over energy.
This bool is needed to switch.
Classification histos have energy density or normalized energy density for the x-axis. The old cond data is not normalized which causes problems for neutral pions. The new cond data is and this switch selects the proper normalization for the tool.
Definition at line 71 of file CaloLCClassificationTool.h.
◆ m_useSpread
bool CaloLCClassificationTool::m_useSpread |
|
private |
if set to true the spread of EM probabilities in each bin is taken into account for classification otherwise only the mean is used
For some regions of phase space the spread in the EM probability values can be quite large. If this property is set to true the EM probability which is maximaly consistent with the current bin is calculated (mean+spread) and in case the property is false just the mean is used to estimate the EM probability.
Definition at line 60 of file CaloLCClassificationTool.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
virtual double phi() const
The azimuthal angle ( ) of the particle.
Class defines binning for user dimension.
bool CENTER_LAMBDA(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
StatusIndicator
reconstruction status word
bool EM_PROBABILITY(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
static CaloLocalHadDefs::LocalHadDimensionId getDimensionId(const std::string &dimensionName)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
void insertMoment(MomentType type, double value)
float getXmin() const
return minimum value for the first bin
LocalHadDimensionId
enums to identify user dimensions id number DIMC_* - classification, DIMW_*-weighting,...
virtual void setOwner(IDataHandleHolder *o)=0
std::vector< float > LocalHadCoeff
Correction parameters for one general bin.
virtual double eta() const
The pseudorapidity ( ) of the particle.
Hold binned correction data for local hadronic calibration procedure.
float getDx() const
return size of bin
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
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.)
float getXmax() const
return maximum value for the last bin
StatusCode initialize(bool used=true)
#define ATH_MSG_WARNING(x)
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual double e() const
The total energy of the particle.