|
ATLAS Offline Software
|
Go to the documentation of this file.
31 const std::string&
name,
34 m_key(
"EMFracClassify"),
36 m_useNormalizedEnergyDensity(true),
37 m_maxProbability(0.5),
38 m_storeClassificationProbabilityInAOD(true),
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!"
JetConstituentVector::iterator iterator
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)
float getXmin() const
return minimum value for the first bin
const CaloLocalHadCoeff::LocalHadDimension * getDimension(int n_dim) const
to get dimension
LocalHadDimensionId
enums to identify user dimensions id number DIMC_* - classification, DIMW_*-weighting,...
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
std::vector< float > LocalHadCoeff
Correction parameters for one general bin.
::StatusCode StatusCode
StatusCode definition for legacy code.
Hold binned correction data for local hadronic calibration procedure.
void insertMoment(const moment_type &momType, const moment_value &momValue, bool useLink=true)
Set individual moment.
Principal data class for CaloCell clusters.
float getDx() const
return size of bin
const LocalHadCoeff * getCoeff(const int &iBin) const
get data for given general bin number
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)
virtual double eta() const
Retrieve eta independent of signal state.
#define ATH_MSG_WARNING(x)
virtual double e() const
Retrieve energy independent of signal state.
bool FIRST_ENG_DENS(const xAOD::TauJet &, const xAOD::CaloVertexedTopoCluster &cluster, double &out)
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
bool retrieveMoment(const moment_type &momType, moment_value &momValue, bool useLink=true) const
Retrieve individual moment.
virtual double phi() const
Retrieve phi independent of signal state.