31 const std::string& name,
32 const IInterface* parent)
34 m_key(
"EMFracClassify"),
43 declareInterface<IClusterClassificationTool>(
this);
74 msg(MSG::INFO) <<
"Interpolation is ON, dimensions: ";
76 msg() <<
" " << (*it);
84 ATH_MSG_WARNING(
"Dimension '" << (*it) <<
"' is invalid and will be excluded." );
89 return StatusCode::SUCCESS;
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!"
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_WARNING(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Principal data class for CaloCell clusters.
bool retrieveMoment(const moment_type &momType, moment_value &momValue, bool useLink=true) const
Retrieve individual moment.
virtual double e() const
Retrieve energy independent of signal state.
void insertMoment(const moment_type &momType, const moment_value &momValue, bool useLink=true)
Set individual moment.
virtual double eta() const
Retrieve eta independent of signal state.
virtual double phi() const
Retrieve phi independent of signal state.
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.)
static CaloLocalHadDefs::LocalHadDimensionId getDimensionId(const std::string &dimensionName)
const CaloLocalHadCoeff::LocalHadDimension * getDimension(int n_dim) const
to get dimension
Class defines binning for user dimension.
float getDx() const
return size of bin
float getXmax() const
return maximum value for the last bin
float getXmin() const
return minimum value for the first bin
Hold binned correction data for local hadronic calibration procedure.
const LocalHadCoeff * getCoeff(const int &iBin) const
get data for given general bin number
const LocalHadArea * getArea(int n_area) const
return area
int getBin(const int n_area, std::vector< float > &vars) const
calculate general bin from vector of input cluster variables
std::vector< float > LocalHadCoeff
Correction parameters for one general bin.
StatusIndicator
reconstruction status word
@ OOC_WEIGHT
Out-of-cluster weight (E_ooc/E_w)
@ EM_PROBABILITY
Classification probability to be em-like.
@ DM_WEIGHT
Dead-material weight (E_dm/E_ooc)
@ FIRST_ENG_DENS
First Moment in E/V.
@ HAD_WEIGHT
Hadronic weight (E_w/E_em)
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
LocalHadDimensionId
enums to identify user dimensions id number DIMC_* - classification, DIMW_*-weighting,...