|
ATLAS Offline Software
|
Go to the documentation of this file.
33 const std::string&
name,
37 m_signalOverNoiseCut(2),
38 m_useHadProbability(false),
43 declareInterface<IClusterCellWeightTool>(
this);
62 msg(MSG::INFO) <<
"Interpolation is ON, dimensions: ";
64 msg(MSG::INFO) <<
" " << (*it);
72 ATH_MSG_WARNING(
"Dimension '" << (*
it) <<
"' is invalid and will be excluded." );
90 return StatusCode::SUCCESS;
104 return StatusCode::FAILURE;
108 for (
int iArea=0;iArea<
data->getSizeAreaSet();iArea++) {
112 isAmpMap[iSamp] = iArea;
118 double eEM = theCluster->
e();
120 std::vector<float> vars(5);
144 for (;itrCell!=itrCellEnd; ++itrCell) {
149 if ( isAmpMap[theSample] >= 0 ) {
151 double energy = fabs(itrCell->
e());
160 volume = myCDDE->
volume();
165 double abseta = fabs(itrCell->
eta());
166 double log10edens = log10(density);
167 double log10cluse = log10(eEM);
170 if ( log10cluse > lemax ) log10cluse = lemax;
178 bool isDataOK =
false;
182 int iBin =
data->getBin(isAmpMap[theSample],vars);
209 weight *= (pi0Prob + (1-pi0Prob)*wData);
223 double new_weight (1);
225 ATH_MSG_ERROR(
"Cannot retrieve HAD_WEIGHT cluster moment." );
226 return StatusCode::FAILURE;
229 if ( eEM > 0 || eEM < 0 ) {
230 new_weight *= theCluster->
e()/eEM;
234 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
Class defines binning for user dimension.
char data[hepevt_bytes_allocation_ATLAS]
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)
virtual double phi() const override final
get phi (through CaloDetDescrElement)
@ EM_PROBABILITY
Classification probability to be em-like.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
This class groups all DetDescr information related to a CaloCell. Provides a generic interface for al...
static CaloLocalHadDefs::LocalHadDimensionId getDimensionId(const std::string &dimensionName)
weight_t weight() const
Accessor for weight associated to this cell.
void insertMoment(MomentType type, double value)
virtual double e() const override final
get energy (data member) (synonym to method energy()
int calo_sample(const Identifier id) const
returns an int taken from Sampling enum and describing the subCalo to which the Id belongs.
float getNoise(const IdentifierHash h, const int gain) const
Accessor by IdentifierHash and gain.
LocalHadDimensionId
enums to identify user dimensions id number DIMC_* - classification, DIMW_*-weighting,...
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
std::vector< float > LocalHadCoeff
Correction parameters for one general bin.
Description of a calorimeter cluster.
@ HAD_WEIGHT
Hadronic weight (E_w/E_em)
CaloSampling::CaloSample CaloSample
::StatusCode StatusCode
StatusCode definition for legacy code.
Hold binned correction data for local hadronic calibration procedure.
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
float getDx() const
return size of bin
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
void reweightCell(cell_iterator it, const double weight)
Method to reweight a cell in the cluster (Beware: Kinematics not updated!)
virtual bool checkStatus(const StatusIndicator &statusIndicator) const
Check status.
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 volume() const
cell volume
float getXmax() const
return maximum value for the last bin
CaloRecoStatus & recoStatus()
Accesssor to CaloRecoStatus (non-const)
CaloGain::CaloGain gain() const
get gain (data member )
StatusCode initialize(bool used=true)
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
static const std::string & getSamplingName(const CaloSampling::CaloSample theSample)
Returns a string (name) for each CaloSampling.
#define ATH_MSG_WARNING(x)
const_cell_iterator cell_end() const
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.
void nextDDE(Iter iter, Iter endIter)
Prefetch next CaloDDE.
virtual double e() const
The total energy of the particle.
virtual double eta() const override final
get eta (through CaloDetDescrElement)