#include <CaloCluster_v1.h>
Public Types | |
typedef float | flt_t |
typedef CaloSampling::CaloSample | CaloSample |
Public types | |
enum | ClusterSize { SW_55ele = 1, SW_35ele = 2, SW_37ele = 3, SW_55gam = 4, SW_35gam = 5, SW_37gam = 6, SW_55Econv = 7, SW_35Econv = 8, SW_37Econv = 9, SW_softe = 10, Topo_420 = 11, Topo_633 = 12, SW_7_11 = 13, CSize_Unknown = 99 } |
Enumeration to identify different cluster sizes. | |
enum | MomentType { FIRST_PHI = 101, FIRST_ETA = 102, SECOND_R = 201, SECOND_LAMBDA = 202, DELTA_PHI = 301, DELTA_THETA = 302, DELTA_ALPHA = 303, CENTER_X = 401, CENTER_Y = 402, CENTER_Z = 403, CENTER_MAG = 404, CENTER_LAMBDA = 501, LATERAL = 601, LONGITUDINAL = 602, ENG_FRAC_EM = 701, ENG_FRAC_MAX = 702, ENG_FRAC_CORE = 703, FIRST_ENG_DENS = 804, SECOND_ENG_DENS = 805, ISOLATION = 806, ENG_BAD_CELLS = 807, N_BAD_CELLS = 808, N_BAD_CELLS_CORR = 809, BAD_CELLS_CORR_E = 813, BADLARQ_FRAC = 821, ENG_POS = 822, SIGNIFICANCE = 823, CELL_SIGNIFICANCE = 824, CELL_SIG_SAMPLING = 825, AVG_LAR_Q = 826, AVG_TILE_Q = 827, ENG_BAD_HV_CELLS = 828, N_BAD_HV_CELLS = 829, EM_PROBABILITY = 900, HAD_WEIGHT = 901, OOC_WEIGHT = 902, DM_WEIGHT = 903, TILE_CONFIDENCE_LEVEL = 904, VERTEX_FRACTION = 1000, NVERTEX_FRACTION = 1001, ETACALOFRAME = 1100, PHICALOFRAME = 1101, ETA1CALOFRAME = 1102, PHI1CALOFRAME = 1103, ETA2CALOFRAME = 1104, PHI2CALOFRAME = 1105, ENG_CALIB_TOT = 10001, ENG_CALIB_OUT_L = 10010, ENG_CALIB_OUT_M = 10011, ENG_CALIB_OUT_T = 10012, ENG_CALIB_DEAD_L = 10020, ENG_CALIB_DEAD_M = 10021, ENG_CALIB_DEAD_T = 10022, ENG_CALIB_EMB0 = 10030, ENG_CALIB_EME0 = 10031, ENG_CALIB_TILEG3 = 10032, ENG_CALIB_DEAD_TOT = 10040, ENG_CALIB_DEAD_EMB0 = 10041, ENG_CALIB_DEAD_TILE0 = 10042, ENG_CALIB_DEAD_TILEG3 = 10043, ENG_CALIB_DEAD_EME0 = 10044, ENG_CALIB_DEAD_HEC0 = 10045, ENG_CALIB_DEAD_FCAL = 10046, ENG_CALIB_DEAD_LEAKAGE = 10047, ENG_CALIB_DEAD_UNCLASS = 10048, ENG_CALIB_FRAC_EM = 10051, ENG_CALIB_FRAC_HAD = 10052, ENG_CALIB_FRAC_REST = 10053 } |
enum | State { UNKNOWN = -1, UNCALIBRATED = 0, CALIBRATED = 1, ALTCALIBRATED = 2, NSTATES = 3 } |
enum of possible signal states. | |
Public Member Functions | |
CaloCluster_v1 () | |
Default constructor. | |
CaloCluster_v1 (const CaloCluster_v1 &other) | |
Copy constructor. | |
virtual | ~CaloCluster_v1 () |
Destructor. | |
CaloCluster_v1 & | operator= (const xAOD::CaloCluster_v1 &other) |
Assignment operator. | |
unsigned int | getClusterEtaSize () const |
Get eta size from cluster size. | |
unsigned int | getClusterPhiSize () const |
Get phi size from cluster size. | |
void | setBadChannelList (const CaloClusterBadChannelList &bcl) |
const CaloClusterBadChannelList & | badChannelList () const |
void | toPersistent () |
Function preparing the object to be persistified. | |
convinience functions | |
double | et () const |
Energy/Eta/Phi per sampling | |
float | eSample (const CaloSample sampling) const |
float | etaSample (const CaloSample sampling) const |
Retrieve barycenter in a given sample. | |
float | phiSample (const CaloSample sampling) const |
Retrieve barycenter in a given sample. | |
float | energy_max (const CaloSample sampling) const |
Retrieve maximum cell energy in given sampling. | |
float | etamax (const CaloSample sampling) const |
Retrieve of cell with maximum energy in given sampling. | |
float | phimax (const CaloSample sampling) const |
Retrieve of cell with maximum energy in given sampling. | |
float | etasize (const CaloSample sampling) const |
Returns cluster size in for a given sampling. | |
float | phisize (const CaloSample sampling) const |
Returns cluster size in for a given sampling. | |
float | energyBE (const unsigned layer) const |
Get the energy in one layer of the EM Calo. | |
float | etaBE (const unsigned layer) const |
Get the eta in one layer of the EM Calo. | |
float | phiBE (const unsigned layer) const |
Get the phi in one layer of the EM Calo. | |
bool | setEnergy (const CaloSample sampling, const float e) |
Set energy for a given sampling. Returns false if the sample isn't part of the cluster. | |
bool | setEta (const CaloSample sampling, const float eta) |
Set in a given sampling. Returns false if the sample isn't part of the cluster. | |
bool | setPhi (const CaloSample sampling, const float phi) |
Set in a given sampling. Returns false if the sample isn't part of the cluster. | |
bool | setEmax (const CaloSample sampling, const float eMax) |
Set the Energy of the cell with the highest energy in a particular sampling. | |
bool | setEtamax (const CaloSample sampling, const float etaMax) |
Set the eta of the cell with the highest energy in a particular sampling. | |
bool | setPhimax (const CaloSample sampling, const float phiMax) |
Set the phi of the cell with the highest energy in a particular sampling. | |
bool | setEtasize (const CaloSample sampling, const float etaSize) |
Set the cluster size in for a given sampling. | |
bool | setPhisize (const CaloSample sampling, const float phiSize) |
Set the cluster size in for a given sampling. | |
Cluster moments | |
void | insertMoment (MomentType type, double value) |
bool | retrieveMoment (MomentType type, double &value) const |
Retrieve individual moment. | |
double | getMomentValue (MomentType type) const |
Retrieve individual moment - no check for existance! Returns -999 on error. | |
Special Cluster Variables | |
void | setEta0 (flt_t) |
flt_t | eta0 () const |
Returns raw of cluster seed. | |
void | setPhi0 (flt_t) |
Set raw of cluster seed. | |
flt_t | phi0 () const |
Returns raw of cluster seed. | |
void | setTime (flt_t) |
Set cluster time. | |
flt_t | time () const |
Access cluster time. | |
unsigned | samplingPattern () const |
Access to sampling pattern (one bit per sampling) (Method may be removed later). | |
void | setSamplingPattern (const unsigned sp, const bool clearSamplingVars=false) |
Set sampling pattern (one bit per sampling. | |
void | clearSamplingData () |
Clear the sampling data. | |
unsigned | nSamples () const |
bool | hasSampling (const CaloSample s) const |
Checks if certain smapling contributes to cluster. | |
ClusterSize | clusterSize () const |
Get cluster size. | |
void | setClusterSize (const ClusterSize) |
Get cluster size. | |
bool | inBarrel () const |
Returns true if at least one clustered cell in the barrel. | |
bool | inEndcap () const |
Returns true if at least one clustered cell in the endcap. | |
4Momentum setter (signal-state dependent) | |
void | setE (flt_t) |
void | setEta (flt_t) |
Set Eta for the current signal state. | |
void | setPhi (flt_t) |
Set Phi for the current signal state. | |
void | setM (flt_t) |
Set Mass for the current signal state. | |
Friends | |
class | ::CaloClusterChangeSignalState |
Functions implementing the xAOD::IParticle interface | |
| |
typedef IParticle::FourMom_t | FourMom_t |
Definition of the 4-momentum type. | |
virtual double | pt () const |
The transverse momentum () of the particle (negative for negative-energy clusters). | |
virtual double | eta () const |
The pseudorapidity () of the particle. | |
virtual double | phi () const |
The azimuthal angle () of the particle. | |
virtual double | m () const |
The invariant mass of the particle. | |
virtual double | e () const |
The total energy of the particle. | |
virtual double | rapidity () const |
The true rapidity (y) of the particle. | |
virtual const FourMom_t & | p4 () const |
The full 4-momentum of the particle. | |
const FourMom_t & | p4 (const State s) const |
virtual Type::ObjectType | type () const |
The type of the object as a simple enumeration. | |
Athena-only methods, used during building stage | |
Set up an ElementLink to a CaloClusterCellLink object | |
typedef CaloClusterCellLink::const_iterator | const_cell_iterator |
Iterator of the underlying CaloClusterCellLink (const version). | |
typedef CaloClusterCellLink::iterator | cell_iterator |
Iterator of the underlying CaloClusterCellLink (non-const version). | |
typedef const_cell_iterator | const_iterator |
STL-compatible iterators. | |
typedef cell_iterator | iterator |
void | addCellLink (CaloClusterCellLink *CCCL) |
bool | setLink (CaloClusterCellLinkContainer *CCCL, IProxyDictWithPool *sg=nullptr) |
Set up an ElementLink to a CaloClusterCellLink object. | |
const CaloClusterCellLink * | getCellLinks () const |
Get a pointer to the CaloClusterCellLink object (const version). | |
CaloClusterCellLink * | getCellLinks () |
Get a pointer to the CaloClusterCellLink object (const version). | |
bool | addCell (const unsigned index, const double weight) |
Method to add a cell to the cluster (Beware: Kinematics not updated!). | |
bool | removeCell (const CaloCell *ptr) |
Method to remove a cell to the cluster (slow!) (Beware: Kinematics not updated!). | |
size_t | size () const |
size method (forwarded from CaloClusterCellLink obj) | |
const_cell_iterator | cell_begin () const |
const_cell_iterator | cell_end () const |
cell_iterator | cell_begin () |
cell_iterator | cell_end () |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
void | reweightCell (cell_iterator it, const double weight) |
Method to reweight a cell in the cluster (Beware: Kinematics not updated!). | |
CaloRecoStatus & | recoStatus () |
Accesssor to CaloRecoStatus (non-const). | |
const CaloRecoStatus & | recoStatus () const |
Accesssor to CaloRecoStatus (const). | |
4Momentum in different signal states | |
Get Energy in signal state UNCALIBRATED | |
flt_t | rawE () const |
void | setRawE (flt_t) |
Set Energy for signal state UNCALIBRATED. | |
flt_t | rawEta () const |
Get in signal state UNCALIBRATED. | |
void | setRawEta (flt_t) |
Set for signal state UNCALIBRATED. | |
flt_t | rawPhi () const |
Get in signal state UNCALIBRATED. | |
void | setRawPhi (flt_t) |
Set for signal state UNCALIBRATED. | |
flt_t | rawM () const |
Get mass in signal state UNCALIBRATED. | |
void | setRawM (flt_t) |
Set mass for singal state UNCALIBRATED. | |
flt_t | altE () const |
Get Energy in signal state ALTCALIBRATED. | |
void | setAltE (flt_t) |
Set Energy for signal state ALTCALIBRATED. | |
flt_t | altEta () const |
Get in signal state ALTCALIBRATED. | |
void | setAltEta (flt_t) |
Set for signal state ALTCALIBRATED. | |
flt_t | altPhi () const |
Get in signal state ALTCALIBRATED. | |
void | setAltPhi (flt_t) |
Set for signal state ALTCALIBRATED. | |
flt_t | altM () const |
Get mass in signal state ALTCALIBRATED. | |
void | setAltM (flt_t) |
Set mass for singal state ALTCALIBRATED. | |
flt_t | calE () const |
Geet Energy in signal state CALIBRATED. | |
void | setCalE (flt_t) |
Set Energy for signal state CALIBRATED. | |
flt_t | calEta () const |
Get in signal state CALIBRATED. | |
void | setCalEta (flt_t) |
Set for signal state CALIBRATED. | |
flt_t | calPhi () const |
Get in signal state CALIBRATED. | |
void | setCalPhi (flt_t) |
Set for signal state CALIBRATED. | |
flt_t | calM () const |
Get mass in signal state CALIBRATED. | |
void | setCalM (flt_t) |
Set mass for singal state CALIBRATED. | |
State | signalState () const |
Get the current signal state. | |
double | pt (const State s) const |
pt with a given signal state | |
double | e (const State s) const |
energy with a given signal state | |
double | eta (const State s) const |
eta with a given signal state | |
double | phi (const State s) const |
eta with a given signal state |
Description of a calorimeter cluster
Enums to identify different moments
Each enum corresponds to a different characteristic moment of a CaloCluster
. The enums are loosly grouped by their type - i.e. first moment over an angle, second moment, angular deviations etc.
bool xAOD::CaloCluster_v1::addCell | ( | const unsigned | index, | |
const double | weight | |||
) | [inline] |
Method to add a cell to the cluster (Beware: Kinematics not updated!).
index | Index of the cell in the CaloCelLContainer | |
weight | Weight of the cell in the cluster |
double xAOD::CaloCluster_v1::e | ( | const State | s | ) | const |
energy with a given signal state
Return eta for a specific signal state.
s | The desired signal state. |
float xAOD::CaloCluster_v1::energyBE | ( | const unsigned | layer | ) | const |
Get the energy in one layer of the EM Calo.
layer | Layer between 0 (Presampler) and 3 (Back) |
double xAOD::CaloCluster_v1::eta | ( | const State | s | ) | const |
eta with a given signal state
Return eta for a specific signal state.
s | The desired signal state. |
float xAOD::CaloCluster_v1::etaBE | ( | const unsigned | layer | ) | const |
Get the eta in one layer of the EM Calo.
layer | Layer between 0 (Presampler) and 3 (Back) |
CaloClusterCellLink* xAOD::CaloCluster_v1::getCellLinks | ( | ) | [inline] |
Get a pointer to the CaloClusterCellLink object (const version).
const CaloClusterCellLink * xAOD::CaloCluster_v1::getCellLinks | ( | ) | const |
Get a pointer to the CaloClusterCellLink object (const version).
unsigned int xAOD::CaloCluster_v1::getClusterEtaSize | ( | ) | const |
Get eta size from cluster size.
for debugging only ... std::vector<std::pair<std::string,float> > CaloCluster_v1::getAllMoments() { std::vector<std::pair<std::string,float> > retval; const SG::auxid_set_t& auxIds=container()->getAuxIDs(); //->getDynamicAuxIDs(); const size_t idx= this->index(); for (auto ai: auxIds) { const std::string& auxName=SGAuxTypeRegistry::instance().getName(ai); const float v=container()->getData<float>(ai,idx); std::cout << "Index=" <<idx << ", Auxid=" << ai << ", Name=" << auxName << " value=" << v << std::endl; retval.push_back(std::make_pair(auxName,v)); } return retval; }
double xAOD::CaloCluster_v1::phi | ( | const State | s | ) | const |
eta with a given signal state
Return phi for a specific signal state.
s | The desired signal state. |
float xAOD::CaloCluster_v1::phiBE | ( | const unsigned | layer | ) | const |
Get the phi in one layer of the EM Calo.
layer | Layer between 0 (Presampler) and 3 (Back) |
double xAOD::CaloCluster_v1::pt | ( | const State | s | ) | const |
pt with a given signal state
Notice that this function is very slow for calorimeter clusters, so it should be called as few times as possible.
const CaloRecoStatus& xAOD::CaloCluster_v1::recoStatus | ( | ) | const [inline] |
Accesssor to CaloRecoStatus (const).
CaloRecoStatus& xAOD::CaloCluster_v1::recoStatus | ( | ) | [inline] |
Accesssor to CaloRecoStatus (non-const).
bool xAOD::CaloCluster_v1::removeCell | ( | const CaloCell * | ptr | ) |
Method to remove a cell to the cluster (slow!) (Beware: Kinematics not updated!).
index | Index of the cell in the CaloCelLContainer |
void xAOD::CaloCluster_v1::reweightCell | ( | cell_iterator | it, | |
const double | weight | |||
) | [inline] |
Method to reweight a cell in the cluster (Beware: Kinematics not updated!).
it | Non-const cell-iterator | |
weight | The new weight |
bool xAOD::CaloCluster_v1::setLink | ( | CaloClusterCellLinkContainer * | CCCL, | |
IProxyDictWithPool * | sg = nullptr | |||
) |
Set up an ElementLink to a CaloClusterCellLink object.
CCCL_key | StoreGate key of the CaloClusterCellLinkContainer | |
index | Index of inside the CaloClusterCellLinkContainer container |
CCCL | pointer to the CaloClusterCellLinkContainer | |
sg | Explicitly specify the store to use for the ElementLink. |
size_t xAOD::CaloCluster_v1::size | ( | ) | const [inline] |
size method (forwarded from CaloClusterCellLink obj)
void xAOD::CaloCluster_v1::toPersistent | ( | ) |
Function preparing the object to be persistified.
This function takes care of preparing (all) the ElementLink(s) in the object to be persistified.