ATLAS Offline Software
Loading...
Searching...
No Matches
xAOD::CaloCluster_v1 Class Reference

Description of a calorimeter cluster. More...

#include <CaloCluster_v1.h>

Inheritance diagram for xAOD::CaloCluster_v1:
Collaboration diagram for xAOD::CaloCluster_v1:

Public Types

typedef float flt_t
typedef CaloSampling::CaloSample CaloSample
typedef uint8_t ncells_t
 Type for number-of-cells-in-sampling counter.
typedef std::vector< uint16_tncells_store_t
 Store type for number-of-cells-in-sampling counter.
using TypelessConstAccessor = ConstAuxElement::TypelessConstAccessor
template<class T, class ALLOC = AuxAllocator_t<T>>
using ConstAccessor = SG::ConstAccessor<T, ALLOC>
template<class T, class ALLOC = AuxAllocator_t<T>>
using Decorator = SG::Decorator<T, ALLOC>
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 , SuperCluster =14 , Tower_01_01 = 15 , Tower_005_005 = 16 ,
  Tower_fixed_area = 17 , CSize_Unknown = 99
}
 Enumeration to identify different cluster sizes. More...
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 , PTD = 830 , MASS = 831 , EM_PROBABILITY = 900 ,
  HAD_WEIGHT = 901 , OOC_WEIGHT = 902 , DM_WEIGHT = 903 , TILE_CONFIDENCE_LEVEL = 904 ,
  SECOND_TIME = 910 , NCELL_SAMPLING = 920 , 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 ,
  ENERGY_DigiHSTruth = 40101 , ETA_DigiHSTruth = 401024 , PHI_DigiHSTruth = 401034 , TIME_DigiHSTruth = 40104 ,
  ENERGY_CALIB_DigiHSTruth = 40105 , ETA_CALIB_DigiHSTruth = 40106 , PHI_CALIB_DigiHSTruth = 40107 , TIME_CALIB_DigiHSTruth = 40108 ,
  FIRST_PHI_DigiHSTruth = 50101 , FIRST_ETA_DigiHSTruth = 50102 , SECOND_R_DigiHSTruth = 50201 , SECOND_LAMBDA_DigiHSTruth = 50202 ,
  DELTA_PHI_DigiHSTruth = 50301 , DELTA_THETA_DigiHSTruth = 50302 , DELTA_ALPHA_DigiHSTruth = 50303 , CENTER_X_DigiHSTruth = 50401 ,
  CENTER_Y_DigiHSTruth = 50402 , CENTER_Z_DigiHSTruth = 50403 , CENTER_MAG_DigiHSTruth = 50404 , CENTER_LAMBDA_DigiHSTruth = 50501 ,
  LATERAL_DigiHSTruth = 50601 , LONGITUDINAL_DigiHSTruth = 50602 , ENG_FRAC_EM_DigiHSTruth = 50701 , ENG_FRAC_MAX_DigiHSTruth = 50702 ,
  ENG_FRAC_CORE_DigiHSTruth = 75003 , FIRST_ENG_DENS_DigiHSTruth = 50804 , SECOND_ENG_DENS_DigiHSTruth = 50805 , ISOLATION_DigiHSTruth = 50806 ,
  ENG_BAD_CELLS_DigiHSTruth = 50807 , N_BAD_CELLS_DigiHSTruth = 50808 , N_BAD_CELLS_CORR_DigiHSTruth = 50809 , BAD_CELLS_CORR_E_DigiHSTruth = 50813 ,
  BADLARQ_FRAC_DigiHSTruth = 50821 , ENG_POS_DigiHSTruth = 50822 , SIGNIFICANCE_DigiHSTruth = 50823 , CELL_SIGNIFICANCE_DigiHSTruth = 50824 ,
  CELL_SIG_SAMPLING_DigiHSTruth = 50825 , AVG_LAR_Q_DigiHSTruth = 50826 , AVG_TILE_Q_DigiHSTruth = 50827 , ENG_BAD_HV_CELLS_DigiHSTruth = 50828 ,
  N_BAD_HV_CELLS_DigiHSTruth = 50829 , EM_PROBABILITY_DigiHSTruth = 50900 , HAD_WEIGHT_DigiHSTruth = 50901 , OOC_WEIGHT_DigiHSTruth = 50902 ,
  DM_WEIGHT_DigiHSTruth = 50903
}
 Enums to identify different moments. More...
enum  State {
  UNKNOWN = -1 , UNCALIBRATED = 0 , CALIBRATED = 1 , ALTCALIBRATED = 2 ,
  NSTATES = 3
}
 enum of possible signal states. More...

Public Member Functions

 CaloCluster_v1 ()
 Default constructor.
 CaloCluster_v1 (const CaloCluster_v1 &other)
 Copy constructor.
virtual ~CaloCluster_v1 ()
 Destructor.
CaloCluster_v1operator= (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 CaloClusterBadChannelListbadChannelList () const
const CaloCluster_v1getSisterCluster () const
 Get a pointer to a 'sister' cluster (eg the non-calibrated counterpart)
const ElementLink< xAOD::CaloClusterContainer_v1 > & getSisterClusterLink () const
 Get a link to a 'sister' cluster (eg the non-calibrated counterpart)
bool setSisterClusterLink (const ElementLink< CaloClusterContainer_v1 > &sister)
 Set a link to a 'sister' cluster (eg the non-calibrated counterpart)
void toPersistent ()
 Function preparing the object to be persistified.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::reference_type auxdata (const std::string &name)
 Fetch an aux data variable, as a non-const reference.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type auxdata (const std::string &name) const
 Fetch an aux data variable, as a const reference.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED bool isAvailableWritable (const std::string &name, const std::string &clsname="")
 Check if an aux variable is available for writing.
void assign (const AuxElement &other, bool warnUnlocked=false)
 Assignment.
const SG::AuxVectorDatacontainer () const
 Return the container holding this element.
SG::AuxVectorDatacontainer ()
 Return the container holding this element.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type auxdataConst (const std::string &name) const
 Fetch an aux data variable, as a const reference.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type auxdataConst (const std::string &name, const std::string &clsname) const
 Fetch an aux data variable, as a const reference.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED bool isAvailableWritableAsDecoration (const std::string &name, const std::string &clsname="") const
 Check if an aux variable is available for writing as a decoration.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type auxdecor (const std::string &name) const
 Fetch an aux decoration, as a non-const reference.
template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type auxdecor (const std::string &name, const std::string &clsname) const
 Fetch an aux decoration, as a non-const reference.
void makePrivateStore ()
 Create a new (empty) private store for this object.
template<class U1>
void makePrivateStore (const U1 &other, bool warnUnlocked=false)
 Create a new private store for this object and copy aux data.
template<class U1>
void makePrivateStore (const U1 *other, bool warnUnlocked=false)
 Create a new private store for this object and copy aux data.
void releasePrivateStore ()
 Release and free any private store associated with this object.
void setStore (const SG::IConstAuxStore *store)
 Set the store associated with this object.
void setStore (SG::IAuxStore *store)
 Set the store associated with this object.
void setStore (const DataLink< SG::IConstAuxStore > &store)
 Set the store associated with this object.
void setConstStore (const SG::IConstAuxStore *store)
 Synonym for setStore with IConstAuxStore.
void setNonConstStore (SG::IAuxStore *store)
 Synonym for setStore with IAuxStore.
bool usingPrivateStore () const
 Test to see if this object is currently using a private store.
bool usingStandaloneStore () const
 Test to see if this object is currently using a standalone store.
void clearCache ()
 Clear the cached aux data pointers.
const SG::auxid_set_tgetAuxIDs () const
 Return a set of identifiers for existing data items for this object.
const SG::auxid_set_tgetDecorIDs () const
 Return a set of identifiers for decorations for this object.
bool hasStore () const
 Return true if this object has an associated store.
bool hasNonConstStore () const
 Return true if this object has an associated non-const store.
bool clearDecorations () const
 Clear all decorations.
bool trackIndices () const
 Return true if index tracking is enabled for this object.
size_t index () const
 Return the index of this element within its container.
convinience functions

{ The transverse energy of the cluster (negative for neg-Energy clusters with zero mass)

double et () const
Energy/Eta/Phi/number of cells per sampling

}

Retrieve energy in a given sampling

float eSample (const CaloSample sampling) const
float etaSample (const CaloSample sampling) const
 Retrieve barycenter \( \eta \) in a given sample.
float phiSample (const CaloSample sampling) const
 Retrieve barycenter \( \varphi \) 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 \( \eta \) of cell with maximum energy in given sampling.
float phimax (const CaloSample sampling) const
 Retrieve \( \varphi \) of cell with maximum energy in given sampling.
float etasize (const CaloSample sampling) const
 Returns cluster size in \( \eta \) for a given sampling.
float phisize (const CaloSample sampling) const
 Returns cluster size in \( \varphi \) for a given sampling.
int numberCellsInSampling (const CaloSample samp, bool isInnerWheel=false) const
 Returns number of cells in given sampling.
void setNumberCellsInSampling (CaloSampling::CaloSample samp, int ncells, bool isInnerWheel=false)
 Set the number of cells in a sampling layer.
int numberCells () const
 Return total number of cells in cluster.
template<class CDATA>
bool getNumberCellsInSampling (CDATA &cdata) const
 Get number of cells for all sampling layer.
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 \( \eta \) in a given sampling. Returns false if the sample isn't part of the cluster.
bool setPhi (const CaloSample sampling, const float phi)
 Set \( \varphi \) 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 \( \varphi \) for a given sampling.
bool setPhisize (const CaloSample sampling, const float phiSize)
 Set the cluster size in \( \vareta \) for a given sampling.
Cluster moments

Set individual moment

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.
void insertMoment (MomentType type, const ncells_store_t &values)
 Insert number of cells/sampling moment (non-scalar)
bool retrieveMoment (MomentType type, ncells_store_t &values) const
 Retrieve non-scalar moments.
Special Cluster Variables

Set raw \( \eta \) of cluster seed

void setEta0 (flt_t)
flt_t eta0 () const
 Returns raw \( \eta \) of cluster seed.
void setPhi0 (flt_t)
 Set raw \( \phi \) of cluster seed.
flt_t phi0 () const
 Returns raw \( \phi \) of cluster seed.
void setTime (flt_t)
 Set cluster time.
flt_t time () const
 Access cluster time.
void setSecondTime (flt_t stime)
 Set second moment of cell timing distribution.
flt_t secondTime () const
 Access second moment of cell timing distribution.
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)

}@

Set Energy for the current signal state

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.
Functions for getting and setting user properties
template<class T>
XAOD_AUXDATA_DEPRECATED T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference.
template<class T>
XAOD_AUXDATA_DEPRECATED const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference.
template<class T>
XAOD_AUXDATA_DEPRECATED bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not.
template<class T>
XAOD_AUXDATA_DEPRECATED bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not.

Static Public Attributes

static constexpr bool supportsThinning = true
 Mark that this type supports thinning operations.

Protected Types

template<class T, class ALLOC = AuxAllocator_t<T>>
using Accessor

Protected Member Functions

const SG::IConstAuxStoregetConstStore () const
 Return the current store, as a const interface.
SG::IAuxStoregetStore () const
 Return the current store, as a non-const interface.
bool noPrivateData () const
 True if this element has no private data.
bool havePrivateData () const
 True if this element currently has private data.
bool hadPrivateData () const
 True if this element had private data before it was added to its current container.

Private Types

enum class  PrivateStoreState : uint8_t { NO_PRIVATE = 0 , HAVE_PRIVATE = 1 , HAD_PRIVATE = 2 }
 The current private data state. More...

Private Member Functions

unsigned sampVarIdx (const CaloSample) const
float getSamplVarFromAcc (const Accessor< std::vector< float > > &acc, const CaloSample sampling, const float errorvalue=CaloClusterDetails::defaultErrorValue) const
bool setSamplVarFromAcc (const Accessor< std::vector< float > > &acc, const CaloSample sampling, const float value)
void releasePrivateStoreForDtor ()
 Out-of-line portion of destructor.
void setIndex (size_t index, SG::AuxVectorData *container)
 Set the index/container for this element.
bool setIndexPrivate (size_t index, SG::AuxVectorData *container)
 Set the index/container for this element.
void makePrivateStore1 (const void *other, bool warnUnlocked)
 Create a new private store for this object and copy aux data.
void makePrivateStore1 (const AuxElement *other, bool warnUnlocked)
 Create a new private store for this object and copy aux data.
AuxElementStandaloneData * setStore1 (const SG::IConstAuxStore *store)
 Set the store associated with this object.
void clearAux ()
 Clear all aux data associated with this element.
void copyAux (const ConstAuxElement &other, bool warnUnlocked=false)
 Copy aux data from another object.
void setNoPrivateData ()
 Record that this element does not have private data.
void setHavePrivateData ()
 Record that this element currently has private data.
void setHadPrivateData ()
 Record that this element used to have private data.
Managing compound cell-in-sampling counting data
template<class UNSIGNED>
UNSIGNED extractLowerCount (ncells_store_t::value_type cdata) const
 extract lower cell count from data
template<class UNSIGNED>
UNSIGNED extractUpperCount (ncells_store_t::value_type cdata) const
 extract upper cell count from data
template<class UNSIGNED>
ncells_store_t::value_type setLowerCount (ncells_store_t::value_type cdata, UNSIGNED clower)
template<class UNSIGNED>
ncells_store_t::value_type setUpperCount (ncells_store_t::value_type cdata, UNSIGNED cupper)
template<class UNSIGNED>
UNSIGNED lowerCellCountBound () const
 lower value boundary for cell count
template<class UNSIGNED>
UNSIGNED upperCellCountBound () const
 upper boundary for cell count
template<class UNSIGNED, class CCTYPE>
CCTYPE adjustToRange (UNSIGNED count) const
 < reduce value range to min and max counts

Static Private Member Functions

static void clearAuxHelper (AuxVectorData &container, size_t index)
 Clear all aux data associated with an element.
static void copyAuxHelper (AuxVectorData &container, size_t index, const ConstAuxElement &other, bool warnUnlocked)
 Copy aux data from another object.

Private Attributes

unsigned m_samplingPattern
 bit-pattern describing the calo samplings contributing to this cluster
State m_signalState
 Current signal state.
std::unique_ptr< CaloClusterCellLinkm_cellLinks
 Unique ptr to cell links.
CaloRecoStatus m_recoStatus
 Reco status (transient only)
double m_secondTime = { -1. }
 Second cell time moment (transient only)
const SG::AuxVectorDatam_container
 The container of which this object is an element.
size_t m_index
 The index of this element within its container.
PrivateStoreState m_privateStoreState

Friends

class ::CaloClusterChangeSignalState

Functions implementing the xAOD::IParticle interface

typedef IParticle::FourMom_t FourMom_t
 Definition of the 4-momentum type.
typedef ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
 Base 4 Momentum type for calo.
virtual double pt () const
 The transverse momentum ( \(p_T\)) of the particle (negative for negative-energy clusters)
virtual double eta () const
 The pseudorapidity ( \(\eta\)) of the particle.
virtual double phi () const
 The azimuthal angle ( \(\phi\)) 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.
GenVecFourMom_t genvecP4 () const
 The full 4-momentum of the particle : GenVector type.
GenVecFourMom_t genvecP4 (const State s) const
 The full 4-momentum of the particle : GenVector type.
virtual FourMom_t p4 () const
 The full 4-momentum of the particle.
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 Takes ownership of CCCL.

Deprecated; use the unique_ptr version for new code.

typedef CaloClusterCellLink::const_iterator const_cell_iterator
 Iterator of the underlying CaloClusterCellLink (explicitly 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)
void addCellLink (std::unique_ptr< CaloClusterCellLink > CCCL)
 Set up an ElementLink to a CaloClusterCellLink object.
bool setLink (CaloClusterCellLinkContainer *CCCL, IProxyDict *sg=nullptr)
 Set up an ElementLink to a CaloClusterCellLink object.
bool setLink (CaloClusterCellLinkContainer *CCCL, const EventContext &ctx)
 Push the CaloClusterCellLink object into the cell-link container and hand-over ownership to it.
const CaloClusterCellLinkgetCellLinks () const
 Get a pointer to the CaloClusterCellLink object (const version)
CaloClusterCellLinkgetOwnCellLinks ()
 Get a pointer to the owned CaloClusterCellLink object (non-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_cbegin () const
const_cell_iterator cell_cend () const
const_cell_iterator cell_begin () const
 Iterator of the underlying CaloClusterCellLink (const version)
const_cell_iterator cell_end () const
cell_iterator cell_begin ()
cell_iterator cell_end ()
const_iterator begin () const
const_iterator end () const
const_iterator cbegin () const
const_iterator cend () 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!)
CaloRecoStatusrecoStatus ()
 Accesssor to CaloRecoStatus (non-const)
const CaloRecoStatusrecoStatus () 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 \( \eta \) in signal state UNCALIBRATED.
void setRawEta (flt_t)
 Set \( \eta \) for signal state UNCALIBRATED.
flt_t rawPhi () const
 Get \( \phi \) in signal state UNCALIBRATED.
void setRawPhi (flt_t)
 Set \( \phi \) 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 \( \eta \) in signal state ALTCALIBRATED.
void setAltEta (flt_t)
 Set \( \eta \) for signal state ALTCALIBRATED.
flt_t altPhi () const
 Get \( \phi \) in signal state ALTCALIBRATED.
void setAltPhi (flt_t)
 Set \( \phi \) 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 \( \eta \) in signal state CALIBRATED.
void setCalEta (flt_t)
 Set \( \eta \) for signal state CALIBRATED.
flt_t calPhi () const
 Get \( \phi \) in signal state CALIBRATED.
void setCalPhi (flt_t)
 Set \( \phi \) 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
 phi with a given signal state
double m (const State s) const
 m with a given signal state
bool setSignalState (const State s)
 Switch signal state.

Detailed Description

Description of a calorimeter cluster.

Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Walter Lampl Walte.nosp@m.r.La.nosp@m.mpl@c.nosp@m.ern..nosp@m.ch
Peter Loch Peter.nosp@m..Loc.nosp@m.h@cer.nosp@m.n.ch
Since
23-March-2021: added methods to set and retrieve second moment of cell time distribution (persistified as a cluster moment)

Definition at line 62 of file CaloCluster_v1.h.

Member Typedef Documentation

◆ Accessor

template<class T, class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::Accessor
protectedinherited

Definition at line 572 of file AuxElement.h.

◆ CaloSample

◆ cell_iterator

Iterator of the underlying CaloClusterCellLink (non-const version)

Definition at line 819 of file CaloCluster_v1.h.

◆ const_cell_iterator

Iterator of the underlying CaloClusterCellLink (explicitly const version)

Definition at line 796 of file CaloCluster_v1.h.

◆ const_iterator

STL-compatible iterators.

Definition at line 825 of file CaloCluster_v1.h.

◆ ConstAccessor

template<class T, class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::ConstAccessor = SG::ConstAccessor<T, ALLOC>
inherited

Definition at line 569 of file AuxElement.h.

◆ Decorator

template<class T, class ALLOC = AuxAllocator_t<T>>
using SG::AuxElement::Decorator = SG::Decorator<T, ALLOC>
inherited

Definition at line 575 of file AuxElement.h.

◆ flt_t

Definition at line 67 of file CaloCluster_v1.h.

◆ FourMom_t

Definition of the 4-momentum type.

Definition at line 346 of file CaloCluster_v1.h.

◆ GenVecFourMom_t

typedef ROOT::Math::LorentzVector<ROOT::Math::PtEtaPhiM4D<double> > xAOD::CaloCluster_v1::GenVecFourMom_t

Base 4 Momentum type for calo.

Definition at line 349 of file CaloCluster_v1.h.

◆ iterator

◆ ncells_store_t

Store type for number-of-cells-in-sampling counter.

Due to the severe change of granularity of EME2 from the inner to the outer wheel, clusters spanning the region around \( |\eta| = 2.5 \) provide the exclusive count of EME2 cells together with the count of cells in the inner wheel. The persistent store to hold both counts for one given index (given by CaloSampling::CaloSample) therefore holds two 8-bit words/sampling.

Definition at line 83 of file CaloCluster_v1.h.

◆ ncells_t

Type for number-of-cells-in-sampling counter.

The total number of cells in a given cluster from any given sampling is limited to [0,255] and thus stored in an 8-bit word.

Definition at line 75 of file CaloCluster_v1.h.

◆ TypelessConstAccessor

using SG::AuxElement::TypelessConstAccessor = ConstAuxElement::TypelessConstAccessor
inherited

Definition at line 566 of file AuxElement.h.

Member Enumeration Documentation

◆ ClusterSize

Enumeration to identify different cluster sizes.

Enumerator
SW_55ele 
SW_35ele 
SW_37ele 
SW_55gam 
SW_35gam 
SW_37gam 
SW_55Econv 
SW_35Econv 
SW_37Econv 
SW_softe 
Topo_420 
Topo_633 
SW_7_11 
SuperCluster 
Tower_01_01 
Tower_005_005 
Tower_fixed_area 
CSize_Unknown 

Definition at line 89 of file CaloCluster_v1.h.

89 {
90 // electrons
91 SW_55ele = 1,
92 SW_35ele = 2,
93 SW_37ele = 3,
94 // photons
95 SW_55gam = 4,
96 SW_35gam = 5,
97 SW_37gam = 6,
98 // early converted photons
99 SW_55Econv = 7,
100 SW_35Econv = 8,
101 SW_37Econv = 9,
102 // soft electrons
103 SW_softe = 10,
104 // topological clusters
105 Topo_420 = 11,
106 Topo_633 = 12,
107 // transient cluster for AODCellContainer
108 SW_7_11 = 13,
109 //New (2016) egamma cluster
110 SuperCluster=14,
111 //New (2020) cluster representation of towers
112 Tower_01_01 = 15,
113 Tower_005_005 = 16,
114 Tower_fixed_area = 17,
115 CSize_Unknown = 99
116 };

◆ MomentType

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.

Enumerator
FIRST_PHI 

First Moment in \(\phi\).

FIRST_ETA 

First Moment in \(\eta\).

SECOND_R 

Second Moment in \(r\).

SECOND_LAMBDA 

Second Moment in \(\lambda\).

DELTA_PHI 

Angular shower axis deviation ( \(\phi\)) from IP-to-Center.

DELTA_THETA 

Angular shower axis deviation ( \(\theta\)) from IP-to-Center.

DELTA_ALPHA 

Angular shower axis deviation ( \(\Delta\alpha\)) from IP-to-Center.

CENTER_X 

Cluster Centroid ( \(x\))

CENTER_Y 

Cluster Centroid ( \(y\))

CENTER_Z 

Cluster Centroid ( \(z\))

CENTER_MAG 

Cluster Centroid ( \(\sqrt(x^2+y^2+z^2)\))

CENTER_LAMBDA 

Shower depth at Cluster Centroid.

LATERAL 

Normalized lateral moment.

LONGITUDINAL 

Normalized longitudinal moment.

ENG_FRAC_EM 

Energy fraction in EM calorimeters.

ENG_FRAC_MAX 

Energy fraction of hottest cell.

ENG_FRAC_CORE 

Energy fraction of the sum of the hottest cells in each sampling.

FIRST_ENG_DENS 

First Moment in E/V.

SECOND_ENG_DENS 

Second Moment in E/V.

ISOLATION 

Energy weighted fraction of non-clustered perimeter cells.

ENG_BAD_CELLS 

Total em-scale energy of bad cells in this cluster.

N_BAD_CELLS 

number of bad cells

N_BAD_CELLS_CORR 

Number of bad cells with energy density average correction applied.

BAD_CELLS_CORR_E 

Energy of bad cells with energy density average correction applied.

BADLARQ_FRAC 

Energy fraction of LAr cells with quality larger than a given cut.

ENG_POS 

Total positive Energy of this cluster.

SIGNIFICANCE 

Cluster significance.

CELL_SIGNIFICANCE 

Cell significance = E/sig of the cell with the largest |E|/sig.

CELL_SIG_SAMPLING 

CaloSample of the cell with the largest |E|/sig.

AVG_LAR_Q 

Sum(E_cell_LAr^2 Q_cell_LAr)/Sum(E_cell_LAr^2)

AVG_TILE_Q 

Sum(E_cell_Tile^2 Q_cell_Tile)/Sum(E_cell_Tile^2)

ENG_BAD_HV_CELLS 

Total em-scale energy of cells with bad HV in this cluster.

N_BAD_HV_CELLS 

number of cells with bad HV

PTD 

relative spread of pT of constiuent cells = sqrt(n)*RMS/Mean

MASS 

cell based mass i.e. the mass of the 4-vector sum of all massless positive energetic cells

EM_PROBABILITY 

Classification probability to be em-like.

HAD_WEIGHT 

Hadronic weight (E_w/E_em)

OOC_WEIGHT 

Out-of-cluster weight (E_ooc/E_w)

DM_WEIGHT 

Dead-material weight (E_dm/E_ooc)

TILE_CONFIDENCE_LEVEL 

Confidence Level of a tile calorimeter cluster to be noise.

SECOND_TIME 

Second moment of cell time distribution in cluster.

NCELL_SAMPLING 

Number of cells in sampling layer.

VERTEX_FRACTION 

Vertex fraction of this cluster wrt.

primary vertex of the event. Calculated in CaloRec/CaloClusterVertexFractionMaker.cxx

NVERTEX_FRACTION 

slightly updated vertex fraction more pile up independent (similar to nJVF)

ETACALOFRAME 

Eta in the calo frame (for egamma)

PHICALOFRAME 

Phi in the calo frame (for egamma)

ETA1CALOFRAME 

Eta of sampling 1 in the calo frame (for egamma)

PHI1CALOFRAME 

Phi of sampling 1 in the calo frame (for egamma)

ETA2CALOFRAME 

Eta of sampling 2 in the calo frame (for egamma)

PHI2CALOFRAME 

Phi of sampling 2 in the calo frame (for egamma)

ENG_CALIB_TOT 

Calibration Hit energy inside the cluster.

ENG_CALIB_OUT_L 

Attached Calibration Hit energy outside clusters but inside the calorimeter with loose matching (Angle < 1.0)

ENG_CALIB_OUT_M 

Attached Calibration Hit energy outside clusters but inside the calorimeter with medium matching (Angle < 0.5).

ENG_CALIB_OUT_T 

Attached Calibration Hit energy outside clusters but inside the calorimeter with tight matching (Angle < 0.3).

ENG_CALIB_DEAD_L 

Attached Calibration Hit energy in dead material with loose matching (Angle < 1.0).

ENG_CALIB_DEAD_M 

Attached Calibration Hit energy in dead material with medium matching (Angle < 0.5).

ENG_CALIB_DEAD_T 

Attached Calibration Hit energy in dead material with tight matching (Angle < 0.3).

ENG_CALIB_EMB0 

Calibration Hit energy inside the cluster barrel presampler.

ENG_CALIB_EME0 

Calibration Hit energy inside the cluster endcap presampler.

ENG_CALIB_TILEG3 

Calibration Hit energy inside the cluster scintillator.

ENG_CALIB_DEAD_TOT 

Attached Calibration Hit energy in dead material.

ENG_CALIB_DEAD_EMB0 

Attached Calibration Hit energy in dead material before EMB0, between EMB0 and EMB1.

ENG_CALIB_DEAD_TILE0 

Attached Calibration Hit energy in dead material between EMB3 and TILE0.

ENG_CALIB_DEAD_TILEG3 

Attached Calibration Hit energy in dead material before scintillator.

ENG_CALIB_DEAD_EME0 

Attached Calibration Hit energy in dead material before EME0, between EME0 and EME1.

ENG_CALIB_DEAD_HEC0 

Attached Calibration Hit energy in dead material between EME3 and HEC0.

ENG_CALIB_DEAD_FCAL 

Attached Calibration Hit energy in dead material before FCAL, between FCAL and HEC.

ENG_CALIB_DEAD_LEAKAGE 

Attached Calibration Hit energy in dead material behind calorimeters.

ENG_CALIB_DEAD_UNCLASS 

Attached Calibration Hit energy in dead material in unclassified areas of the detector.

ENG_CALIB_FRAC_EM 

Calibration Hit energy inside the cluster caused by e/gamma/pi0.

ENG_CALIB_FRAC_HAD 

Calibration Hit energy inside the cluster caused by charged pi+ and pi-.

ENG_CALIB_FRAC_REST 

Calibration Hit energy inside the cluster caused by other particles.

ENERGY_DigiHSTruth 

First Moment in \(\phi\).

ETA_DigiHSTruth 

Eta moment that I am trying to include.

PHI_DigiHSTruth 

phi moment I would like to have

TIME_DigiHSTruth 

First Moment in \(\phi\).

ENERGY_CALIB_DigiHSTruth 

First Moment in \(\phi\).

ETA_CALIB_DigiHSTruth 

First Moment in \(\phi\).

PHI_CALIB_DigiHSTruth 

First Moment in \(\phi\).

TIME_CALIB_DigiHSTruth 

First Moment in \(\phi\).

FIRST_PHI_DigiHSTruth 

First Moment in \(\phi\).

FIRST_ETA_DigiHSTruth 

First Moment in \(\eta\).

SECOND_R_DigiHSTruth 

Second Moment in \(r\).

SECOND_LAMBDA_DigiHSTruth 

Second Moment in \(\lambda\).

DELTA_PHI_DigiHSTruth 
DELTA_THETA_DigiHSTruth 
DELTA_ALPHA_DigiHSTruth 
CENTER_X_DigiHSTruth 

Cluster Centroid ( \(x\))

CENTER_Y_DigiHSTruth 

Cluster Centroid ( \(y\))

CENTER_Z_DigiHSTruth 

Cluster Centroid ( \(z\))

CENTER_MAG_DigiHSTruth 
CENTER_LAMBDA_DigiHSTruth 

Shower depth at Cluster Centroid.

LATERAL_DigiHSTruth 

Normalized lateral moment.

LONGITUDINAL_DigiHSTruth 

Normalized longitudinal moment.

ENG_FRAC_EM_DigiHSTruth 

Energy fraction in EM calorimeters.

ENG_FRAC_MAX_DigiHSTruth 

Energy fraction of hottest cell.

ENG_FRAC_CORE_DigiHSTruth 
FIRST_ENG_DENS_DigiHSTruth 

First Moment in E/V.

SECOND_ENG_DENS_DigiHSTruth 

Second Moment in E/V.

ISOLATION_DigiHSTruth 
ENG_BAD_CELLS_DigiHSTruth 
N_BAD_CELLS_DigiHSTruth 

number of bad cells

N_BAD_CELLS_CORR_DigiHSTruth 
BAD_CELLS_CORR_E_DigiHSTruth 
BADLARQ_FRAC_DigiHSTruth 
ENG_POS_DigiHSTruth 

Total positive Energy of this cluster.

SIGNIFICANCE_DigiHSTruth 

Cluster significance.

CELL_SIGNIFICANCE_DigiHSTruth 
CELL_SIG_SAMPLING_DigiHSTruth 
AVG_LAR_Q_DigiHSTruth 
AVG_TILE_Q_DigiHSTruth 
ENG_BAD_HV_CELLS_DigiHSTruth 
N_BAD_HV_CELLS_DigiHSTruth 

number of cells with bad HV

EM_PROBABILITY_DigiHSTruth 

Classification probability to be em-like.

HAD_WEIGHT_DigiHSTruth 

Hadronic weight (E_w/E_em)

OOC_WEIGHT_DigiHSTruth 

Out-of-cluster weight (E_ooc/E_w)

DM_WEIGHT_DigiHSTruth 

Dead-material weight (E_dm/E_ooc)

Definition at line 123 of file CaloCluster_v1.h.

123 {
124 FIRST_PHI = 101,
125 FIRST_ETA = 102,
126 SECOND_R = 201,
127 SECOND_LAMBDA = 202,
129 DELTA_PHI = 301,
131 DELTA_THETA = 302,
133 DELTA_ALPHA = 303,
134 CENTER_X = 401,
135 CENTER_Y = 402,
136 CENTER_Z = 403,
138 CENTER_MAG = 404,
139 CENTER_LAMBDA = 501,
140 LATERAL = 601,
141 LONGITUDINAL = 602,
142 ENG_FRAC_EM = 701,
143 ENG_FRAC_MAX = 702,
145 ENG_FRAC_CORE = 703,
146 FIRST_ENG_DENS = 804,
147 SECOND_ENG_DENS = 805,
149 ISOLATION = 806,
151 ENG_BAD_CELLS = 807,
152 N_BAD_CELLS = 808,
154 N_BAD_CELLS_CORR = 809,
156 BAD_CELLS_CORR_E = 813,
158 BADLARQ_FRAC = 821,
159 ENG_POS = 822,
160 SIGNIFICANCE = 823,
162 CELL_SIGNIFICANCE = 824,
164 CELL_SIG_SAMPLING = 825,
166 AVG_LAR_Q = 826,
168 AVG_TILE_Q = 827,
170 ENG_BAD_HV_CELLS = 828,
171 N_BAD_HV_CELLS = 829,
173 PTD = 830,
175 MASS = 831,
176 EM_PROBABILITY = 900,
177 HAD_WEIGHT = 901,
178 OOC_WEIGHT = 902,
179 DM_WEIGHT = 903,
183 SECOND_TIME = 910,
185 NCELL_SAMPLING = 920,
186
187 VERTEX_FRACTION = 1000,
188 NVERTEX_FRACTION = 1001,
189
190 ETACALOFRAME = 1100,
191 PHICALOFRAME = 1101,
192 ETA1CALOFRAME = 1102,
193 PHI1CALOFRAME = 1103,
194 ETA2CALOFRAME = 1104,
195 PHI2CALOFRAME = 1105,
196
198 ENG_CALIB_TOT = 10001,
199 ENG_CALIB_OUT_L = 10010,
203 ENG_CALIB_OUT_M = 10011,
207 ENG_CALIB_OUT_T = 10012,
211 ENG_CALIB_DEAD_L = 10020,
214 ENG_CALIB_DEAD_M = 10021,
217 ENG_CALIB_DEAD_T = 10022,
221 ENG_CALIB_EMB0 = 10030,
223 ENG_CALIB_EME0 = 10031,
225 ENG_CALIB_TILEG3 = 10032,
227 ENG_CALIB_DEAD_TOT = 10040,
230 ENG_CALIB_DEAD_EMB0 = 10041,
233 ENG_CALIB_DEAD_TILE0 = 10042,
235 ENG_CALIB_DEAD_TILEG3 = 10043,
238 ENG_CALIB_DEAD_EME0 = 10044,
241 ENG_CALIB_DEAD_HEC0 = 10045,
244 ENG_CALIB_DEAD_FCAL = 10046,
251 ENG_CALIB_FRAC_EM = 10051,
254 ENG_CALIB_FRAC_HAD = 10052,
256 ENG_CALIB_FRAC_REST = 10053,
257
258
259 ENERGY_DigiHSTruth = 40101,
260 ETA_DigiHSTruth = 401024,
261 PHI_DigiHSTruth = 401034,
262 TIME_DigiHSTruth = 40104,
264 ETA_CALIB_DigiHSTruth = 40106,
265 PHI_CALIB_DigiHSTruth = 40107,
266 TIME_CALIB_DigiHSTruth = 40108,
267 FIRST_PHI_DigiHSTruth = 50101,
268 FIRST_ETA_DigiHSTruth = 50102,
269 SECOND_R_DigiHSTruth = 50201,
271 DELTA_PHI_DigiHSTruth = 50301,
274 CENTER_X_DigiHSTruth = 50401,
275 CENTER_Y_DigiHSTruth = 50402,
276 CENTER_Z_DigiHSTruth = 50403,
279 LATERAL_DigiHSTruth = 50601,
286 ISOLATION_DigiHSTruth = 50806,
292 ENG_POS_DigiHSTruth = 50822,
296 AVG_LAR_Q_DigiHSTruth = 50826,
301 HAD_WEIGHT_DigiHSTruth = 50901,
302 OOC_WEIGHT_DigiHSTruth = 50902,
303 DM_WEIGHT_DigiHSTruth = 50903
304 };
@ ENG_CALIB_OUT_M
Attached Calibration Hit energy outside clusters but inside the calorimeter with medium matching (Ang...
@ PTD
relative spread of pT of constiuent cells = sqrt(n)*RMS/Mean
@ CENTER_LAMBDA_DigiHSTruth
Shower depth at Cluster Centroid.
@ SECOND_ENG_DENS
Second Moment in E/V.
@ DELTA_PHI
Angular shower axis deviation ( ) from IP-to-Center.
@ ETA2CALOFRAME
Eta of sampling 2 in the calo frame (for egamma)
@ DELTA_ALPHA
Angular shower axis deviation ( ) from IP-to-Center.
@ LATERAL_DigiHSTruth
Normalized lateral moment.
@ OOC_WEIGHT
Out-of-cluster weight (E_ooc/E_w)
@ AVG_TILE_Q
Sum(E_cell_Tile^2 Q_cell_Tile)/Sum(E_cell_Tile^2)
@ DELTA_THETA
Angular shower axis deviation ( ) from IP-to-Center.
@ SECOND_LAMBDA_DigiHSTruth
Second Moment in .
@ SECOND_LAMBDA
Second Moment in .
@ ETACALOFRAME
Eta in the calo frame (for egamma)
@ PHI_DigiHSTruth
phi moment I would like to have
@ TIME_DigiHSTruth
First Moment in .
@ FIRST_PHI
First Moment in .
@ ENG_CALIB_OUT_L
Attached Calibration Hit energy outside clusters but inside the calorimeter with loose matching (Angl...
@ CELL_SIGNIFICANCE
Cell significance = E/sig of the cell with the largest |E|/sig.
@ CELL_SIG_SAMPLING
CaloSample of the cell with the largest |E|/sig.
@ EM_PROBABILITY
Classification probability to be em-like.
@ PHI2CALOFRAME
Phi of sampling 2 in the calo frame (for egamma)
@ VERTEX_FRACTION
Vertex fraction of this cluster wrt.
@ ENG_CALIB_DEAD_T
Attached Calibration Hit energy in dead material with tight matching (Angle < 0.3).
@ NCELL_SAMPLING
Number of cells in sampling layer.
@ ENERGY_CALIB_DigiHSTruth
First Moment in .
@ NVERTEX_FRACTION
slightly updated vertex fraction more pile up independent (similar to nJVF)
@ SECOND_TIME
Second moment of cell time distribution in cluster.
@ N_BAD_CELLS_CORR
Number of bad cells with energy density average correction applied.
@ TIME_CALIB_DigiHSTruth
First Moment in .
@ DM_WEIGHT
Dead-material weight (E_dm/E_ooc)
@ LATERAL
Normalized lateral moment.
@ FIRST_ENG_DENS_DigiHSTruth
First Moment in E/V.
@ N_BAD_CELLS
number of bad cells
@ LONGITUDINAL
Normalized longitudinal moment.
@ ENG_FRAC_MAX
Energy fraction of hottest cell.
@ AVG_LAR_Q
Sum(E_cell_LAr^2 Q_cell_LAr)/Sum(E_cell_LAr^2)
@ ENG_CALIB_DEAD_UNCLASS
Attached Calibration Hit energy in dead material in unclassified areas of the detector.
@ PHI_CALIB_DigiHSTruth
First Moment in .
@ PHI1CALOFRAME
Phi of sampling 1 in the calo frame (for egamma)
@ ENG_FRAC_EM
Energy fraction in EM calorimeters.
@ SECOND_R
Second Moment in .
@ ENG_CALIB_DEAD_HEC0
Attached Calibration Hit energy in dead material between EME3 and HEC0.
@ FIRST_ETA
First Moment in .
@ PHICALOFRAME
Phi in the calo frame (for egamma)
@ ENG_BAD_HV_CELLS
Total em-scale energy of cells with bad HV in this cluster.
@ FIRST_ENG_DENS
First Moment in E/V.
@ HAD_WEIGHT
Hadronic weight (E_w/E_em)
@ ENG_CALIB_DEAD_TILEG3
Attached Calibration Hit energy in dead material before scintillator.
@ N_BAD_HV_CELLS
number of cells with bad HV
@ ENG_FRAC_CORE
Energy fraction of the sum of the hottest cells in each sampling.
@ CENTER_Z_DigiHSTruth
Cluster Centroid ( )
@ SECOND_ENG_DENS_DigiHSTruth
Second Moment in E/V.
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
@ SECOND_R_DigiHSTruth
Second Moment in .
@ SIGNIFICANCE
Cluster significance.
@ CENTER_MAG
Cluster Centroid ( )
@ MASS
cell based mass i.e. the mass of the 4-vector sum of all massless positive energetic cells
@ ETA_CALIB_DigiHSTruth
First Moment in .
@ ENG_CALIB_DEAD_M
Attached Calibration Hit energy in dead material with medium matching (Angle < 0.5).
@ ENG_CALIB_FRAC_REST
Calibration Hit energy inside the cluster caused by other particles.
@ ENG_CALIB_DEAD_L
Attached Calibration Hit energy in dead material with loose matching (Angle < 1.0).
@ CENTER_Y_DigiHSTruth
Cluster Centroid ( )
@ EM_PROBABILITY_DigiHSTruth
Classification probability to be em-like.
@ ENG_FRAC_EM_DigiHSTruth
Energy fraction in EM calorimeters.
@ OOC_WEIGHT_DigiHSTruth
Out-of-cluster weight (E_ooc/E_w)
@ ENG_CALIB_DEAD_EME0
Attached Calibration Hit energy in dead material before EME0, between EME0 and EME1.
@ ENG_CALIB_DEAD_TILE0
Attached Calibration Hit energy in dead material between EMB3 and TILE0.
@ CENTER_Z
Cluster Centroid ( )
@ BAD_CELLS_CORR_E
Energy of bad cells with energy density average correction applied.
@ ETA1CALOFRAME
Eta of sampling 1 in the calo frame (for egamma)
@ ENG_FRAC_MAX_DigiHSTruth
Energy fraction of hottest cell.
@ ETA_DigiHSTruth
Eta moment that I am trying to include.
@ ENG_CALIB_FRAC_EM
Calibration Hit energy inside the cluster caused by e/gamma/pi0.
@ ENG_BAD_CELLS
Total em-scale energy of bad cells in this cluster.
@ ENG_CALIB_DEAD_FCAL
Attached Calibration Hit energy in dead material before FCAL, between FCAL and HEC.
@ CENTER_X_DigiHSTruth
Cluster Centroid ( )
@ ENG_CALIB_TOT
Calibration Hit energy inside the cluster.
@ ENERGY_DigiHSTruth
First Moment in .
@ ENG_CALIB_OUT_T
Attached Calibration Hit energy outside clusters but inside the calorimeter with tight matching (Angl...
@ ENG_CALIB_DEAD_LEAKAGE
Attached Calibration Hit energy in dead material behind calorimeters.
@ ENG_CALIB_FRAC_HAD
Calibration Hit energy inside the cluster caused by charged pi+ and pi-.
@ ENG_CALIB_EMB0
Calibration Hit energy inside the cluster barrel presampler.
@ SIGNIFICANCE_DigiHSTruth
Cluster significance.
@ FIRST_ETA_DigiHSTruth
First Moment in .
@ N_BAD_CELLS_DigiHSTruth
number of bad cells
@ ENG_CALIB_EME0
Calibration Hit energy inside the cluster endcap presampler.
@ ENG_POS
Total positive Energy of this cluster.
@ BADLARQ_FRAC
Energy fraction of LAr cells with quality larger than a given cut.
@ FIRST_PHI_DigiHSTruth
First Moment in .
@ LONGITUDINAL_DigiHSTruth
Normalized longitudinal moment.
@ CENTER_X
Cluster Centroid ( )
@ ENG_CALIB_DEAD_EMB0
Attached Calibration Hit energy in dead material before EMB0, between EMB0 and EMB1.
@ ISOLATION
Energy weighted fraction of non-clustered perimeter cells.
@ ENG_CALIB_DEAD_TOT
Attached Calibration Hit energy in dead material.
@ ENG_POS_DigiHSTruth
Total positive Energy of this cluster.
@ N_BAD_HV_CELLS_DigiHSTruth
number of cells with bad HV
@ HAD_WEIGHT_DigiHSTruth
Hadronic weight (E_w/E_em)
@ DM_WEIGHT_DigiHSTruth
Dead-material weight (E_dm/E_ooc)
@ CENTER_Y
Cluster Centroid ( )
@ ENG_CALIB_TILEG3
Calibration Hit energy inside the cluster scintillator.
@ TILE_CONFIDENCE_LEVEL
Confidence Level of a tile calorimeter cluster to be noise.

◆ PrivateStoreState

enum class SG::IAuxElement::PrivateStoreState : uint8_t
strongprivateinherited

The current private data state.

Enumerator
NO_PRIVATE 
HAVE_PRIVATE 
HAD_PRIVATE 

Definition at line 131 of file IAuxElement.h.

132 {
133 NO_PRIVATE = 0,
134 HAVE_PRIVATE = 1,
135 HAD_PRIVATE = 2,
136 };

◆ State

enum of possible signal states.

Enumerator
UNKNOWN 
UNCALIBRATED 
CALIBRATED 
ALTCALIBRATED 
NSTATES 

Definition at line 307 of file CaloCluster_v1.h.

Constructor & Destructor Documentation

◆ CaloCluster_v1() [1/2]

xAOD::CaloCluster_v1::CaloCluster_v1 ( )

Default constructor.

Definition at line 23 of file CaloCluster_v1.cxx.

24 : IParticle(),
26 m_cellLinks(nullptr)
27 {
29 }
unsigned m_samplingPattern
bit-pattern describing the calo samplings contributing to this cluster
std::unique_ptr< CaloClusterCellLink > m_cellLinks
Unique ptr to cell links.
bool setSignalState(const State s)
Switch signal state.
IParticle()=default

◆ CaloCluster_v1() [2/2]

xAOD::CaloCluster_v1::CaloCluster_v1 ( const CaloCluster_v1 & other)

Copy constructor.

Definition at line 32 of file CaloCluster_v1.cxx.

34 m_samplingPattern(other.samplingPattern()),
35 m_cellLinks(nullptr),
36 m_recoStatus(other.m_recoStatus),
37 m_secondTime(other.m_secondTime) {
38 setSignalState(other.signalState());
40#if !(defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS))
41 const CaloClusterCellLink* links=other.getCellLinks();
42 if (links) {
43 this->addCellLink(std::make_unique<CaloClusterCellLink>(*links));
44 }
45 static const Accessor<ElementLink<CaloClusterCellLinkContainer> > accCellLinks("CellLink");
46 if (accCellLinks.isAvailable(*this)) { //In case an element link was copied by makePrivateStore, invalidate it
47 accCellLinks(*this).reset();
48 } //end if have element link to CaloClusterCellLink
49#endif // not defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS)
50 }
void makePrivateStore()
Create a new (empty) private store for this object.
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
CaloRecoStatus m_recoStatus
Reco status (transient only)
double m_secondTime
Second cell time moment (transient only)
void addCellLink(CaloClusterCellLink *CCCL)

◆ ~CaloCluster_v1()

xAOD::CaloCluster_v1::~CaloCluster_v1 ( )
virtual

Destructor.

Definition at line 78 of file CaloCluster_v1.cxx.

78 {
79 }

Member Function Documentation

◆ addCell()

bool xAOD::CaloCluster_v1::addCell ( const unsigned index,
const double weight )
inline

Method to add a cell to the cluster (Beware: Kinematics not updated!)

Parameters
indexIndex of the cell in the CaloCelLContainer
weightWeight of the cell in the cluster
Returns
true if the link to the CaloClusterCellLinkContainer exists, false otherwise

Definition at line 774 of file CaloCluster_v1.h.

774 {
775 if (!m_cellLinks) {
776 return false;
777 }
778 return m_cellLinks->addCell(index, weight);
779 }
size_t index() const
Return the index of this element within its container.

◆ addCellLink() [1/2]

void xAOD::CaloCluster_v1::addCellLink ( CaloClusterCellLink * CCCL)
inline

Definition at line 724 of file CaloCluster_v1.h.

724 {
725 m_cellLinks.reset(CCCL);
726 }

◆ addCellLink() [2/2]

void xAOD::CaloCluster_v1::addCellLink ( std::unique_ptr< CaloClusterCellLink > CCCL)
inline

Set up an ElementLink to a CaloClusterCellLink object.

Definition at line 729 of file CaloCluster_v1.h.

729 {
730 m_cellLinks=std::move(CCCL);
731 }

◆ adjustToRange()

template<class UNSIGNED, class CCTYPE>
CCTYPE xAOD::CaloCluster_v1::adjustToRange ( UNSIGNED count) const
inlineprivate

< reduce value range to min and max counts

Definition at line 704 of file CaloCluster_v1.h.

705 { return static_cast<CCTYPE>(std::min(std::max(count,lowerCellCountBound< UNSIGNED >()),upperCellCountBound< UNSIGNED >())); }
UNSIGNED upperCellCountBound() const
upper boundary for cell count
UNSIGNED lowerCellCountBound() const
lower value boundary for cell count
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146

◆ altE()

flt_t xAOD::CaloCluster_v1::altE ( ) const

Get Energy in signal state ALTCALIBRATED.

◆ altEta()

flt_t xAOD::CaloCluster_v1::altEta ( ) const

Get \( \eta \) in signal state ALTCALIBRATED.

◆ altM()

flt_t xAOD::CaloCluster_v1::altM ( ) const

Get mass in signal state ALTCALIBRATED.

◆ altPhi()

flt_t xAOD::CaloCluster_v1::altPhi ( ) const

Get \( \phi \) in signal state ALTCALIBRATED.

◆ assign()

void SG::AuxElement::assign ( const AuxElement & other,
bool warnUnlocked = false )
inherited

Assignment.

Parameters
otherThe object from which we're assigning.
warnUnlockedIf true, then warn when we skip unlocked decorations.

We don't copy container/index, as assignment doesn't change where this object is. However, if we have aux data, then we copy aux data if we're copying from an object that also has it; otherwise, if we're copying from an object with no aux data, then we clear ours.

◆ auxdata() [1/4]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::reference_type SG::AuxElement::auxdata ( const std::string & name)
inherited

Fetch an aux data variable, as a non-const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ auxdata() [2/4]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type SG::AuxElement::auxdata ( const std::string & name) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor or ConstAccessor classes.

◆ auxdata() [3/4]

template<class T>
XAOD_AUXDATA_DEPRECATED T & xAOD::IParticle::auxdata ( const std::string & name,
const std::string & clsname = "" )
inlineinherited

Fetch an aux data variable, as a non-const reference.

This function provides an easy way for users to decorate objects with auxiliary data.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A modifiable reference to the decoration

Definition at line 98 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

99 {
100
101 return SG::Accessor< T >(name, clsname)(*this);
102 }

◆ auxdata() [4/4]

template<class T>
XAOD_AUXDATA_DEPRECATED const T & xAOD::IParticle::auxdata ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Fetch an aux data variable, as a const reference.

This function provides an easy way for users to retrieve auxiliary decorations from an object.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A constant reference to the decoration

Definition at line 118 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

119 {
120
121 return SG::ConstAccessor< T >( name, clsname )( *this );
122 }

◆ auxdataConst() [1/2]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type SG::AuxElement::auxdataConst ( const std::string & name) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor class.

◆ auxdataConst() [2/2]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Accessor< T, ALLOC >::const_reference_type SG::AuxElement::auxdataConst ( const std::string & name,
const std::string & clsname ) const
inherited

Fetch an aux data variable, as a const reference.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the ConstAccessor class.

◆ auxdecor() [1/2]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type SG::AuxElement::auxdecor ( const std::string & name) const
inherited

Fetch an aux decoration, as a non-const reference.

Parameters
nameName of the aux variable.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.

◆ auxdecor() [2/2]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED Decorator< T, ALLOC >::reference_type SG::AuxElement::auxdecor ( const std::string & name,
const std::string & clsname ) const
inherited

Fetch an aux decoration, as a non-const reference.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

If the container is locked, this will allow fetching only variables that do not yet exist (in which case they will be marked as decorations) or variables already marked as decorations.

◆ badChannelList()

const CaloClusterBadChannelList & xAOD::CaloCluster_v1::badChannelList ( ) const

Definition at line 279 of file CaloCluster_v1.cxx.

279 {
280 static const Accessor<xAOD::CaloClusterBadChannelList> accBCL("BadChannelList");
281 return accBCL(*this);
282 }

◆ begin() [1/2]

iterator xAOD::CaloCluster_v1::begin ( )
inline

Definition at line 831 of file CaloCluster_v1.h.

831{ return cell_begin(); }
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)

◆ begin() [2/2]

const_iterator xAOD::CaloCluster_v1::begin ( ) const
inline

Definition at line 827 of file CaloCluster_v1.h.

827{ return cell_cbegin(); }
const_cell_iterator cell_cbegin() const

◆ calE()

flt_t xAOD::CaloCluster_v1::calE ( ) const

Geet Energy in signal state CALIBRATED.

◆ calEta()

flt_t xAOD::CaloCluster_v1::calEta ( ) const

Get \( \eta \) in signal state CALIBRATED.

◆ calM()

flt_t xAOD::CaloCluster_v1::calM ( ) const

Get mass in signal state CALIBRATED.

◆ calPhi()

flt_t xAOD::CaloCluster_v1::calPhi ( ) const

Get \( \phi \) in signal state CALIBRATED.

◆ cbegin()

const_iterator xAOD::CaloCluster_v1::cbegin ( ) const
inline

Definition at line 829 of file CaloCluster_v1.h.

829{ return cell_cbegin(); }

◆ cell_begin() [1/2]

cell_iterator xAOD::CaloCluster_v1::cell_begin ( )
inline

Definition at line 821 of file CaloCluster_v1.h.

821{ return getOwnCellLinks()->begin();}
CaloClusterCellLink * getOwnCellLinks()
Get a pointer to the owned CaloClusterCellLink object (non-const version)

◆ cell_begin() [2/2]

const_cell_iterator xAOD::CaloCluster_v1::cell_begin ( ) const
inline

Iterator of the underlying CaloClusterCellLink (const version)

Definition at line 815 of file CaloCluster_v1.h.

815{ return cell_cbegin(); }

◆ cell_cbegin()

const_cell_iterator xAOD::CaloCluster_v1::cell_cbegin ( ) const
inline

Definition at line 798 of file CaloCluster_v1.h.

799 {
800 const CaloClusterCellLink* links = getCellLinks();
801 if (!links) {
803 }
804 return links->begin();
805 }
const CaloClusterCellLink * getCellLinks() const
Get a pointer to the CaloClusterCellLink object (const version)

◆ cell_cend()

const_cell_iterator xAOD::CaloCluster_v1::cell_cend ( ) const
inline

Definition at line 806 of file CaloCluster_v1.h.

806 {
807 const CaloClusterCellLink* links=getCellLinks();
808 if (!links) {
810 }
811 return getCellLinks()->end();
812 }

◆ cell_end() [1/2]

cell_iterator xAOD::CaloCluster_v1::cell_end ( )
inline

Definition at line 822 of file CaloCluster_v1.h.

822{ return getOwnCellLinks()->end();}

◆ cell_end() [2/2]

const_cell_iterator xAOD::CaloCluster_v1::cell_end ( ) const
inline

Definition at line 816 of file CaloCluster_v1.h.

816{ return cell_cend(); }
const_cell_iterator cell_cend() const

◆ cend()

const_iterator xAOD::CaloCluster_v1::cend ( ) const
inline

Definition at line 830 of file CaloCluster_v1.h.

830{ return cell_cend(); }

◆ clearAux()

void SG::AuxElement::clearAux ( )
privateinherited

Clear all aux data associated with this element.

If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData.

Definition at line 580 of file AuxElement.cxx.

581{
582 if (!m_container) return;
584}
static void clearAuxHelper(AuxVectorData &container, size_t index)
Clear all aux data associated with an element.
const SG::AuxVectorData * container() const
Return the container holding this element.
size_t index() const
Return the index of this element within its container.
const SG::AuxVectorData * m_container
The container of which this object is an element.
Definition AuxElement.h:335

◆ clearAuxHelper()

void SG::AuxElement::clearAuxHelper ( AuxVectorData & container,
size_t index )
staticprivateinherited

Clear all aux data associated with an element.

Parameters
containerContainer of the element.
indexIndex of this element within the container.

If the associated aux data is const, this throws ExcConstAuxData.

Definition at line 639 of file AuxElement.cxx.

640{
641 if (!container.hasStore()) return;
642 if (!container.hasNonConstStore()) {
643 throw SG::ExcConstAuxData ("clearAux", SG::null_auxid);
644 }
645
646 SG::AuxTypeRegistry& r = SG::AuxTypeRegistry::instance();
647 for (SG::auxid_t auxid : container.getWritableAuxIDs()) {
648 r.clear (auxid, container, index, 1);
649 }
650}
static AuxTypeRegistry & instance()
Return the singleton registry instance.
int r
Definition globals.cxx:22
static const auxid_t null_auxid
To signal no aux data item.
Definition AuxTypes.h:30
size_t auxid_t
Identifier for a particular aux data item.
Definition AuxTypes.h:27

◆ clearCache()

void SG::AuxElement::clearCache ( )
inherited

Clear the cached aux data pointers.

You should call this any time something changes in the aux store that could invalidate the vector pointers.

Definition at line 339 of file AuxElement.cxx.

340{
341 if (container())
343}
void clearCache()
Clear the cached aux data pointers.

◆ clearDecorations()

bool SG::AuxElement::clearDecorations ( ) const
inherited

Clear all decorations.

Erase all decorations from an associated store, restoring the state to when lock was called.

Returns true if there were any decorations that were cleared, false if the store did not contain any decorations.

Definition at line 428 of file AuxElement.cxx.

429{
430 if (havePrivateData())
431 return m_container->clearDecorations();
432 return false;
433}
bool havePrivateData() const
True if this element currently has private data.

◆ clearSamplingData()

void xAOD::CaloCluster_v1::clearSamplingData ( )

Clear the sampling data.

Definition at line 641 of file CaloCluster_v1.cxx.

641 {
642
643 static const Accessor< std::vector< float > > etaAcc( "eta_sampl" );
644 static const Accessor< std::vector< float > > phiAcc( "phi_sampl" );
645 static const Accessor< std::vector< float > > eAcc( "e_sampl" );
646 static const Accessor< std::vector< float > > emaxAcc( "emax_sampl" );
647 static const Accessor< std::vector< float > > etamaxAcc( "etamax_sampl" );
648 static const Accessor< std::vector< float > > phimaxAcc( "phimax_sampl" );
649 static const Accessor< std::vector< float > > etasizeAcc( "etasize_sampl" );
650 static const Accessor< std::vector< float > > phisizeAcc( "phisize_sampl" );
651
652 static const std::array< const Accessor< std::vector< float > >*, 8 > allAcc = {
653 { &etaAcc, &phiAcc, &eAcc, &emaxAcc, &phimaxAcc, &etamaxAcc,
654 &etasizeAcc, &phisizeAcc } };
655 for (const auto *a : allAcc) {
656 if (a->isAvailableWritable(*this)) {
657 (*a)(*this).clear();
658 }
659 }
660 }
static Double_t a

◆ clusterSize()

CaloCluster_v1::ClusterSize xAOD::CaloCluster_v1::clusterSize ( ) const

Get cluster size.

Definition at line 364 of file CaloCluster_v1.cxx.

364 {
365 static const Accessor<unsigned> acc("clusterSize");
366 return (CaloCluster_v1::ClusterSize)acc(*this);
367 }
ClusterSize
Enumeration to identify different cluster sizes.
static const SG::AuxElement::Accessor< ElementLink< IParticleContainer > > acc("originalObjectLink")
Object used for setting/getting the dynamic decoration in question.

◆ container() [1/2]

SG::AuxVectorData * SG::AuxElement::container ( )
inherited

Return the container holding this element.

◆ container() [2/2]

const SG::AuxVectorData * SG::AuxElement::container ( ) const
inherited

Return the container holding this element.

◆ copyAux()

void SG::AuxElement::copyAux ( const ConstAuxElement & other,
bool warnUnlocked = false )
privateinherited

Copy aux data from another object.

Parameters
otherThe object from which to copy.
warnUnlockedIf true, then warn when we skip unlocked decorations.

If this object has no associated store, this does nothing. If the associated aux data is const, this throws ExcConstAuxData.

All aux data items from other are copied to this object. Any aux data items associated with this object that are not present in other are cleared. (If other has no aux data, then all aux data items for this object are cleared.)

Definition at line 600 of file AuxElement.cxx.

602{
603 if (!m_container) return;
604 copyAuxHelper (*container(), index(), other, warnUnlocked);
605}
static void copyAuxHelper(AuxVectorData &container, size_t index, const ConstAuxElement &other, bool warnUnlocked)
Copy aux data from another object.

◆ copyAuxHelper()

void SG::AuxElement::copyAuxHelper ( AuxVectorData & container,
size_t index,
const ConstAuxElement & other,
bool warnUnlocked )
staticprivateinherited

Copy aux data from another object.

Parameters
containerContainer of the element.
indexIndex of this element within the container.
otherThe object from which to copy.
warnUnlockedIf true, then warn when we skip unlocked decorations.

If the associated aux data is const, this throws ExcConstAuxData.

All aux data items from other are copied to this object. Any aux data items associated with this object that are not present in other are cleared. (If other has no aux data, then all aux data items for this object are cleared.)

Definition at line 667 of file AuxElement.cxx.

671{
672 if (!container.hasStore()) return;
673 if (!container.hasNonConstStore())
674 throw SG::ExcConstAuxData ("copyAux");
675
676 const SG::AuxVectorData* ocont = other.container();
677
678 if (!ocont || !ocont->hasStore()) {
680 return;
681 }
682
683#ifndef XAOD_STANDALONE
684 const SG::auxid_set_t& other_decors = ocont->getDecorIDs();
685#endif
686 SG::auxid_set_t other_ids = ocont->getAuxIDs();
687
688 size_t oindex = other.index();
689 SG::AuxTypeRegistry& r = SG::AuxTypeRegistry::instance();
690
691 for (SG::auxid_t auxid : other_ids) {
692#ifndef XAOD_STANDALONE
693 if (other_decors.test (auxid)) {
694 // Don't copy decorations --- another thread may be modifying them.
695 other_ids.reset (auxid);
696 // Warn if we skip a decoration (except for mcEventWeights,
697 // for which this is expected).
698 if (warnUnlocked && r.getName(auxid) != "mcEventWeights") {
699 std::ostringstream ss;
700 ss << "skipped unlocked decoration " << r.getName(auxid)
701 << " (" << auxid << ")";
702 ATHCONTAINERS_WARNING("copyAux", ss.str());
703 }
704 }
705 else
706#endif
707 if (!r.isLinked (auxid)) {
708 r.copy (auxid, container, index, *ocont, oindex, 1);
709 }
710 }
711
712 for (SG::auxid_t auxid : container.getWritableAuxIDs()) {
713 if (!other_ids.test (auxid)) {
714 r.clear (auxid, container, index, 1);
715 }
716 }
717}
static Double_t ss
bool test(bit_t bit) const
Test to see if a bit is set.
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items in store associated with this object.
const SG::auxid_set_t & getDecorIDs() const
Return a set of identifiers for decorations for this object.
bool hasStore() const
Return true if this object has an associated store.
#define ATHCONTAINERS_WARNING(ctx, msg)
Definition error.h:57

◆ e() [1/2]

double xAOD::CaloCluster_v1::e ( ) const
virtual

The total energy of the particle.

Implements xAOD::IParticle.

Definition at line 265 of file CaloCluster_v1.cxx.

265 {
266 return e(m_signalState);
267 }
virtual double e() const
The total energy of the particle.
State m_signalState
Current signal state.

◆ e() [2/2]

double xAOD::CaloCluster_v1::e ( const State s) const

energy with a given signal state

Return eta for a specific signal state.

Parameters
sThe desired signal state.

Definition at line 167 of file CaloCluster_v1.cxx.

168 {
169 switch (s) {
170 case CALIBRATED:
171 return calE();
172 break;
173 case UNCALIBRATED:
174 return rawE();
175 break;
176 case ALTCALIBRATED:
177 return altE();
178 break;
179 default:
180 return 0;
181 }
182 }
flt_t rawE() const
flt_t altE() const
Get Energy in signal state ALTCALIBRATED.
flt_t calE() const
Geet Energy in signal state CALIBRATED.

◆ end() [1/2]

iterator xAOD::CaloCluster_v1::end ( )
inline

Definition at line 832 of file CaloCluster_v1.h.

832{ return cell_end(); }
const_cell_iterator cell_end() const

◆ end() [2/2]

const_iterator xAOD::CaloCluster_v1::end ( ) const
inline

Definition at line 828 of file CaloCluster_v1.h.

828{ return cell_cend(); }

◆ energy_max()

float xAOD::CaloCluster_v1::energy_max ( const CaloSample sampling) const

Retrieve maximum cell energy in given sampling.

Definition at line 556 of file CaloCluster_v1.cxx.

556 {
557 static const Accessor< std::vector <float > > emaxAcc("emax_sampl");
558 if (!emaxAcc.isAvailable( *this )){
559 return 0.0;
560 }
561 return getSamplVarFromAcc(emaxAcc,sampling,0.0); //Return energy 0 in case of failure (eg. sampling not set)
562 }
float getSamplVarFromAcc(const Accessor< std::vector< float > > &acc, const CaloSample sampling, const float errorvalue=CaloClusterDetails::defaultErrorValue) const

◆ energyBE()

float xAOD::CaloCluster_v1::energyBE ( const unsigned layer) const

Get the energy in one layer of the EM Calo.

Parameters
layerLayer between 0 (Presampler) and 3 (Back)
Returns
energy Works for both, barrel and endcap

Definition at line 623 of file CaloCluster_v1.cxx.

623 {
624 static const Accessor< std::vector <float > > eAcc("e_sampl");
625 return CaloClusterDetails::energyBE(sample,m_samplingPattern,eAcc(*this));
626 }
float energyBE(const unsigned sample, const std::uint32_t samplingPattern, const std::span< const float > e_sampl)
Get the energy in one layer of the EM Calo.

◆ eSample()

float xAOD::CaloCluster_v1::eSample ( const CaloSample sampling) const

Definition at line 514 of file CaloCluster_v1.cxx.

514 {
515 static const Accessor< std::vector <float > > eAcc("e_sampl");
516 return getSamplVarFromAcc(eAcc,sampling,0.0); //Return energy 0 in case of failure (eg. sampling not set)
517 }

◆ et()

double xAOD::CaloCluster_v1::et ( ) const
inline

Definition at line 859 of file CaloCluster_v1.h.

859 {
860 if (this->m() == 0) {
861 return this->pt();
862 }
863
864 return this->p4().Et();
865 }
virtual double pt() const
The transverse momentum ( ) of the particle (negative for negative-energy clusters)
virtual double m() const
The invariant mass of the particle.
virtual FourMom_t p4() const
The full 4-momentum of the particle.

◆ eta() [1/2]

double xAOD::CaloCluster_v1::eta ( ) const
virtual

The pseudorapidity ( \(\eta\)) of the particle.

Implements xAOD::IParticle.

Definition at line 251 of file CaloCluster_v1.cxx.

252 {
253 return eta (m_signalState);
254 }
virtual double eta() const
The pseudorapidity ( ) of the particle.

◆ eta() [2/2]

double xAOD::CaloCluster_v1::eta ( const State s) const

eta with a given signal state

Return eta for a specific signal state.

Parameters
sThe desired signal state.

Definition at line 188 of file CaloCluster_v1.cxx.

189 {
190 switch (s) {
191 case CALIBRATED:
192 return calEta();
193 break;
194 case UNCALIBRATED:
195 return rawEta();
196 break;
197 case ALTCALIBRATED:
198 return altEta();
199 break;
200 default:
201 return -999;
202 }
203 }
flt_t rawEta() const
Get in signal state UNCALIBRATED.
flt_t calEta() const
Get in signal state CALIBRATED.
flt_t altEta() const
Get in signal state ALTCALIBRATED.

◆ eta0()

flt_t xAOD::CaloCluster_v1::eta0 ( ) const

Returns raw \( \eta \) of cluster seed.

◆ etaBE()

float xAOD::CaloCluster_v1::etaBE ( const unsigned layer) const

Get the eta in one layer of the EM Calo.

Parameters
layerLayer between 0 (Presampler) and 3 (Back)
Returns
energy Works for both, barrel and endcap

Definition at line 628 of file CaloCluster_v1.cxx.

628 {
629 static const Accessor< std::vector <float > > eAcc("e_sampl");
630 static const Accessor< std::vector <float > > etaAcc("eta_sampl");
631 return CaloClusterDetails::etaBE(sample,m_samplingPattern,eAcc(*this),etaAcc(*this));
632 }
float etaBE(const unsigned sample, const std::uint32_t samplingPattern, const std::span< const float > e_sampl, const std::span< const float > eta_sampl)
Get the eta in one layer of the EM Calo.

◆ etamax()

float xAOD::CaloCluster_v1::etamax ( const CaloSample sampling) const

Retrieve \( \eta \) of cell with maximum energy in given sampling.

Definition at line 569 of file CaloCluster_v1.cxx.

569 {
570 static const Accessor< std::vector <float > > etamaxAcc("etamax_sampl");
571 if (!etamaxAcc.isAvailable( *this )){
572 return -999;
573 }
574 return getSamplVarFromAcc(etamaxAcc,sampling);
575 }

◆ etaSample()

float xAOD::CaloCluster_v1::etaSample ( const CaloSample sampling) const

Retrieve barycenter \( \eta \) in a given sample.

Definition at line 525 of file CaloCluster_v1.cxx.

525 {
526 static const Accessor< std::vector <float > > etaAcc("eta_sampl");
527 if (!etaAcc.isAvailable( *this )){
528 return -999;
529 }
530
531 return getSamplVarFromAcc(etaAcc,sampling);
532 }

◆ etasize()

float xAOD::CaloCluster_v1::etasize ( const CaloSample sampling) const

Returns cluster size in \( \eta \) for a given sampling.

Definition at line 596 of file CaloCluster_v1.cxx.

596 {
597 static const Accessor< std::vector <float > > etasizeAcc("etasize_sampl");
598 if (!etasizeAcc.isAvailable( *this )){
599 return -999;
600 }
601 return getSamplVarFromAcc(etasizeAcc, sampling);
602 }

◆ extractLowerCount()

template<class UNSIGNED>
UNSIGNED xAOD::CaloCluster_v1::extractLowerCount ( ncells_store_t::value_type cdata) const
inlineprivate

extract lower cell count from data

Definition at line 696 of file CaloCluster_v1.h.

◆ extractUpperCount()

template<class UNSIGNED>
UNSIGNED xAOD::CaloCluster_v1::extractUpperCount ( ncells_store_t::value_type cdata) const
inlineprivate

extract upper cell count from data

Definition at line 697 of file CaloCluster_v1.h.

◆ genvecP4() [1/2]

CaloCluster_v1::GenVecFourMom_t xAOD::CaloCluster_v1::genvecP4 ( ) const

The full 4-momentum of the particle : GenVector type.

Definition at line 457 of file CaloCluster_v1.cxx.

457 {
458 return genvecP4(m_signalState);
459 }
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : GenVector type.

◆ genvecP4() [2/2]

CaloCluster_v1::GenVecFourMom_t xAOD::CaloCluster_v1::genvecP4 ( const State s) const

The full 4-momentum of the particle : GenVector type.

Definition at line 445 of file CaloCluster_v1.cxx.

445 {
446 switch (s) {
447 case CALIBRATED:
448 return GenVecFourMom_t(pt(s),calEta(),calPhi(),calM());
449 case UNCALIBRATED:
450 return GenVecFourMom_t(pt(s),rawEta(),rawPhi(), rawM());
451 case ALTCALIBRATED:
452 return GenVecFourMom_t(pt(s),altEta(),altPhi(), altM());
453 default:
454 return GenVecFourMom_t();
455 }
456 }
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for calo.
flt_t calPhi() const
Get in signal state CALIBRATED.
flt_t rawM() const
Get mass in signal state UNCALIBRATED.
flt_t altPhi() const
Get in signal state ALTCALIBRATED.
flt_t rawPhi() const
Get in signal state UNCALIBRATED.
flt_t altM() const
Get mass in signal state ALTCALIBRATED.
flt_t calM() const
Get mass in signal state CALIBRATED.

◆ getAuxIDs()

const SG::auxid_set_t & SG::AuxElement::getAuxIDs ( ) const
inherited

Return a set of identifiers for existing data items for this object.

If this object has a private or standalone store, then information from that will be returned. Otherwise, if this element is part of a container, then information for the container will be returned. Otherwise, return an empty set.

Definition at line 355 of file AuxElement.cxx.

356{
357#ifdef ATHCONTAINERS_R21_COMPAT
358 if (havePrivateData())
359 return m_container->getConstStore()->getAuxIDs();
360 if (container())
361 return container()->getAuxIDs();
362 static const SG::auxid_set_t null_set;
363 return null_set;
364#else
366#endif
367}
const SG::auxid_set_t & getAuxIDs() const
Return a set of identifiers for existing data items for this object.

◆ getCellLinks()

const CaloClusterCellLink * xAOD::CaloCluster_v1::getCellLinks ( ) const

Get a pointer to the CaloClusterCellLink object (const version)

Returns
ptr to CaloClusterCellLink obj, NULL if no valid link

Definition at line 829 of file CaloCluster_v1.cxx.

830 {
831 if (m_cellLinks) {
832 return m_cellLinks.get();
833 }
834 static const Accessor<ElementLink<CaloClusterCellLinkContainer> > accCellLinks("CellLink");
835 if (!accCellLinks.isAvailable(*this)){
836 return nullptr;
837 }
838
839 const ElementLink<CaloClusterCellLinkContainer>& el=accCellLinks(*this);
840 if (el.isValid()){
841 return *el;
842 }
843
844 return nullptr;
845 }

◆ getClusterEtaSize()

unsigned int xAOD::CaloCluster_v1::getClusterEtaSize ( ) const

Get eta size from cluster size.

Definition at line 747 of file CaloCluster_v1.cxx.

747 {
748 const unsigned clustersize=clusterSize();
749 unsigned int size = 0;
750 if(clustersize==SW_55ele ||
751 clustersize==SW_55gam ||
752 clustersize==SW_55Econv){
753 size = 5;
754 }else if(clustersize==SW_35ele ||
755 clustersize==SW_37ele ||
756 clustersize==SW_35gam ||
757 clustersize==SW_37gam ||
758 clustersize==SW_35Econv ||
759 clustersize==SW_37Econv){
760 size = 3;
761 }else if(clustersize==SW_7_11){
762 size = 7;
763 }
764
765 return size;
766
767 }
ClusterSize clusterSize() const
Get cluster size.
size_t size() const
size method (forwarded from CaloClusterCellLink obj)

◆ getClusterPhiSize()

unsigned int xAOD::CaloCluster_v1::getClusterPhiSize ( ) const

Get phi size from cluster size.

Definition at line 769 of file CaloCluster_v1.cxx.

769 {
770 const ClusterSize clustersize=clusterSize();
771 unsigned int size = 0;
772 if(clustersize==SW_55ele ||
773 clustersize==SW_55gam ||
774 clustersize==SW_55Econv ||
775 clustersize==SW_35ele ||
776 clustersize==SW_35gam ||
777 clustersize==SW_35Econv){
778 size = 5;
779 }else if(
780 clustersize==SW_37ele ||
781 clustersize==SW_37gam ||
782 clustersize==SW_37Econv){
783 size = 7;
784 }else if(clustersize==SW_7_11){
785 size = 11;
786 }
787 return size;
788 }

◆ getConstStore()

const SG::IConstAuxStore * SG::AuxElement::getConstStore ( ) const
protectedinherited

Return the current store, as a const interface.

This will be non-zero if either a const or non-const store is associated with this object. This will fetch either a private or standalone store.

Definition at line 869 of file AuxElement.cxx.

305{
306 if (havePrivateData()) {
307 return m_container->getConstStore();
308 }
309 return 0;
310}

◆ getDecorIDs()

const SG::auxid_set_t & SG::AuxElement::getDecorIDs ( ) const
inherited

Return a set of identifiers for decorations for this object.

   If this object has a private or standalone store, then information
   from that will be returned.  Otherwise, if this element
   is part of a container, then information for the container
   will be returned.  Otherwise, return an empty set.

Definition at line 378 of file AuxElement.cxx.

379{
380#ifdef ATHCONTAINERS_R21_COMPAT
381 if (havePrivateData())
382 return m_container->getConstStore()->getDecorIDs();
383 if (container())
384 return container()->getDecorIDs();
385 static const SG::auxid_set_t null_set;
386 return null_set;
387#else
389#endif
390}
const SG::auxid_set_t & getDecorIDs() const
Return a set of identifiers for decorations for this object.

◆ getMomentValue()

double xAOD::CaloCluster_v1::getMomentValue ( CaloCluster_v1::MomentType type) const
inline

Retrieve individual moment - no check for existance! Returns -999 on error.

Definition at line 897 of file CaloCluster_v1.h.

897 {
898 double value=-999;
899 (void)this->retrieveMoment(type,value);
900 return value;
901 }
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.

◆ getNumberCellsInSampling()

template<class CDATA>
bool xAOD::CaloCluster_v1::getNumberCellsInSampling ( CDATA & cdata) const
inline

Get number of cells for all sampling layer.

This returns the number of cells in all sampling layers covered by the cluster, in a basic data type (c.f. retrieveMoment, which returns the internally used data store type) defined by the client. Only the inclucive number of cells per sampling are considered.

Definition at line 430 of file CaloCluster_v1.h.

430 {
431 ncells_store_t clist;
432 if ( !retrieveMoment(NCELL_SAMPLING,clist) ) { return false; }
433 cdata.clear(); cdata.reserve(clist.size());
434 for ( auto cn : clist ) { cdata.push_back(extractLowerCount<typename CDATA::value_type>(cn)); }
435 return true;
436 }
std::vector< uint16_t > ncells_store_t
Store type for number-of-cells-in-sampling counter.
UNSIGNED extractLowerCount(ncells_store_t::value_type cdata) const
extract lower cell count from data

◆ getOwnCellLinks()

CaloClusterCellLink * xAOD::CaloCluster_v1::getOwnCellLinks ( )
inline

Get a pointer to the owned CaloClusterCellLink object (non-const version)

Returns
ptr to CaloClusterCellLink obj, NULL if no valid owned cell links.

Definition at line 765 of file CaloCluster_v1.h.

765 {
766 return m_cellLinks.get();
767 }

◆ getSamplVarFromAcc()

float xAOD::CaloCluster_v1::getSamplVarFromAcc ( const Accessor< std::vector< float > > & acc,
const CaloSample sampling,
const float errorvalue = CaloClusterDetails::defaultErrorValue ) const
private

Definition at line 494 of file CaloCluster_v1.cxx.

494 {
495 return CaloClusterDetails::getSamplVar(sampling,m_samplingPattern,acc(*this),errorvalue);
496 }
float getSamplVar(const CaloSample sampling, const std::uint32_t samplingPattern, const std::span< const float > vec, const float errorvalue=defaultErrorValue)

◆ getSisterCluster()

const CaloCluster_v1 * xAOD::CaloCluster_v1::getSisterCluster ( ) const

Get a pointer to a 'sister' cluster (eg the non-calibrated counterpart)

Definition at line 881 of file CaloCluster_v1.cxx.

881 {
882 static const Accessor< ElementLink< xAOD::CaloClusterContainer_v1 > > accSisterCluster("SisterCluster");
883 if (!accSisterCluster.isAvailable(*this)){
884 return nullptr;
885 }
886 const ElementLink<CaloClusterContainer_v1>& el = accSisterCluster(*this);
887 if (el.isValid()) {
888 return *el;
889 }
890 return nullptr;
891 }

◆ getSisterClusterLink()

const ElementLink< xAOD::CaloClusterContainer_v1 > & xAOD::CaloCluster_v1::getSisterClusterLink ( ) const

Get a link to a 'sister' cluster (eg the non-calibrated counterpart)

Definition at line 893 of file CaloCluster_v1.cxx.

893 {
894 static const Accessor< ElementLink< xAOD::CaloClusterContainer_v1 > > accSisterCluster("SisterCluster");
895 static const ElementLink<xAOD::CaloClusterContainer_v1> empty;
896 if (!accSisterCluster.isAvailable(*this)){
897 return empty;
898 }
899 return accSisterCluster(*this);
900 }
static const Attributes_t empty

◆ getStore()

SG::IAuxStore * SG::AuxElement::getStore ( ) const
protectedinherited

Return the current store, as a non-const interface.

This will be non-zero if a non-const store is associated with this object. This will fetch either a private or standalone store.

Definition at line 878 of file AuxElement.cxx.

320{
321 if (havePrivateData()) {
322#ifdef ATHCONTAINERS_R21_COMPAT
323 SG::AuxVectorData* container_nc ATLAS_THREAD_SAFE = m_container;
324#else
325 SG::AuxVectorData* container_nc ATLAS_THREAD_SAFE = const_cast<SG::AuxVectorData*>(container());
326#endif
327 return container_nc->getStore();
328 }
329 return 0;
330}
#define ATLAS_THREAD_SAFE

◆ hadPrivateData()

bool SG::IAuxElement::hadPrivateData ( ) const
protectedinherited

True if this element had private data before it was added to its current container.

◆ hasNonConstStore()

bool SG::AuxElement::hasNonConstStore ( ) const
inherited

Return true if this object has an associated non-const store.

This will be true for either a private or standalone store.

Definition at line 411 of file AuxElement.cxx.

412{
413 if (havePrivateData())
414 return m_container->hasNonConstStore();
415 return false;
416}

◆ hasSampling()

bool xAOD::CaloCluster_v1::hasSampling ( const CaloSample s) const
inline

Checks if certain smapling contributes to cluster.

Definition at line 882 of file CaloCluster_v1.h.

882 {
884 }
bool hasSampling(const CaloSample s, const std::uint32_t samplingPattern)
Checks if certain smapling contributes to cluster.

◆ hasStore()

bool SG::AuxElement::hasStore ( ) const
inherited

Return true if this object has an associated store.

This will be true for either a private or standalone store.

Definition at line 398 of file AuxElement.cxx.

399{
400 if (havePrivateData())
401 return m_container->hasStore();
402 return false;
403}

◆ havePrivateData()

bool SG::IAuxElement::havePrivateData ( ) const
protectedinherited

True if this element currently has private data.

◆ inBarrel()

bool xAOD::CaloCluster_v1::inBarrel ( ) const
inline

Returns true if at least one clustered cell in the barrel.

Definition at line 887 of file CaloCluster_v1.h.

887 {
889 }
static constexpr unsigned int barrelPattern()
Get the bit-pattern for barrel samplings.

◆ index()

size_t SG::IAuxElement::index ( ) const
inherited

Return the index of this element within its container.

Inherited from IAuxElement.

◆ inEndcap()

bool xAOD::CaloCluster_v1::inEndcap ( ) const
inline

Returns true if at least one clustered cell in the endcap.

Definition at line 892 of file CaloCluster_v1.h.

892 {
894 }
static constexpr unsigned int endcapPattern()
Get the bit-pattern for endcap samplings.

◆ insertMoment() [1/2]

void xAOD::CaloCluster_v1::insertMoment ( MomentType type,
const ncells_store_t & values )

Insert number of cells/sampling moment (non-scalar)

Warning
Due to the store complexity, clients should use the xAOD::CaloCluster_v1::setNumberCellsInSampling method.

Definition at line 683 of file CaloCluster_v1.cxx.

683 {
685 // only implemented for one moment
686 if ( acc != nullptr ) { (*acc)(*this) = values; }
687 }
const SG::AuxElement::Accessor< xAOD::CaloCluster_v1::ncells_store_t > * momentContainerAccessorV1(xAOD::CaloCluster_v1::MomentType moment)
Helper function for managing cluster moment Accessor objects.
static AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(EmTauRoI_v1, uint32_t, roiWord, setRoIWord) uint32_t EmTauRoI_v1 const SG::AuxElement::Accessor< std::vector< float > > values("thrValues")
This is a convenience function for accessing the threshold pattern part of the RoI.

◆ insertMoment() [2/2]

void xAOD::CaloCluster_v1::insertMoment ( MomentType type,
double value )

Definition at line 678 of file CaloCluster_v1.cxx.

678 {
680 if ( acc != nullptr ) { (*acc)(*this) = value; } // new protection needed non-scalar moment type!
681 }
const SG::AuxElement::Accessor< float > * momentAccessorV1(xAOD::CaloCluster_v1::MomentType moment)
Helper function for managing cluster moment Accessor objects.

◆ isAvailable()

template<class T>
XAOD_AUXDATA_DEPRECATED bool xAOD::IParticle::isAvailable ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Check if a user property is available for reading or not.

This function should be used to check if a user property which may or may not exist, is set on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration exists or not

Definition at line 135 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

136 {
137
138 return SG::ConstAccessor< T >(name, clsname).isAvailable(*this);
139 }

◆ isAvailableWritable() [1/2]

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED bool SG::AuxElement::isAvailableWritable ( const std::string & name,
const std::string & clsname = "" )
inherited

Check if an aux variable is available for writing.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ isAvailableWritable() [2/2]

template<class T>
XAOD_AUXDATA_DEPRECATED bool xAOD::IParticle::isAvailableWritable ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Check if a user property is available for writing or not.

This function can be used to check whether it will be possible to set a user property on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration is possible to set

Definition at line 152 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

153 {
154
155 return SG::Accessor< T >(name, clsname).isAvailableWritable(*this);
156 }

◆ isAvailableWritableAsDecoration()

template<class T, class ALLOC = AuxAllocator_t<T>>
XAOD_AUXDATA_DEPRECATED bool SG::AuxElement::isAvailableWritableAsDecoration ( const std::string & name,
const std::string & clsname = "" ) const
inherited

Check if an aux variable is available for writing as a decoration.

Parameters
nameName of the aux variable.
clsnameThe name of the associated class. May be blank.

This method has to translate from the aux data name to the internal representation each time it is called. Using this method inside of loops is discouraged; instead use the Accessor class.

◆ lowerCellCountBound()

template<class UNSIGNED>
UNSIGNED xAOD::CaloCluster_v1::lowerCellCountBound ( ) const
inlineprivate

lower value boundary for cell count

Definition at line 702 of file CaloCluster_v1.h.

◆ m() [1/2]

double xAOD::CaloCluster_v1::m ( ) const
virtual

The invariant mass of the particle.

Implements xAOD::IParticle.

Definition at line 261 of file CaloCluster_v1.cxx.

261 {
262 return m(m_signalState);
263 }

◆ m() [2/2]

double xAOD::CaloCluster_v1::m ( const State s) const

m with a given signal state

Return m for a specific signal state.

Parameters
sThe desired signal state.

Definition at line 230 of file CaloCluster_v1.cxx.

230 {
231 switch (s) {
232 case CALIBRATED:
233 return calM();
234 break;
235 case UNCALIBRATED:
236 return rawM();
237 break;
238 case ALTCALIBRATED:
239 return altM();
240 break;
241 default:
242 return -999;
243 }
244 }

◆ makePrivateStore() [1/3]

void SG::AuxElement::makePrivateStore ( )
inherited

Create a new (empty) private store for this object.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

Definition at line 192 of file AuxElement.cxx.

193{
194 if (m_container) {
195 throw SG::ExcBadPrivateStore ("store already exists");
196 }
197
198 m_container = new SG::AuxElementPrivateData;
201}
void setIndex(size_t index)
Set the index of this element within its container.
void setHavePrivateData()
Record that this element currently has private data.

◆ makePrivateStore() [2/3]

template<class U1>
void SG::AuxElement::makePrivateStore ( const U1 & other,
bool warnUnlocked = false )
inherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.
warnUnlockedIf true, then warn when we skip unlocked decorations.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

If other is an object that has aux data, then those data will be copied; otherwise, nothing will be done.

◆ makePrivateStore() [3/3]

template<class U1>
void SG::AuxElement::makePrivateStore ( const U1 * other,
bool warnUnlocked = false )
inherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.
warnUnlockedIf true, then warn when we skip unlocked decorations.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

If other is an object that has aux data, then those data will be copied; otherwise, nothing will be done.

◆ makePrivateStore1() [1/2]

void SG::AuxElement::makePrivateStore1 ( const AuxElement * other,
bool warnUnlocked )
privateinherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.
warnUnlockedIf true, then warn when we skip unlocked decorations.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

This overload handles the case where other does have aux data.

Definition at line 565 of file AuxElement.cxx.

567{
569 if (other)
570 this->copyAux (*other, warnUnlocked);
571}
void copyAux(const ConstAuxElement &other, bool warnUnlocked=false)
Copy aux data from another object.

◆ makePrivateStore1() [2/2]

void SG::AuxElement::makePrivateStore1 ( const void * other,
bool warnUnlocked )
privateinherited

Create a new private store for this object and copy aux data.

Parameters
otherThe object from which aux data should be copied.
warnUnlockedIf true, then warn when we skip unlocked decorations.

ExcBadPrivateStore will be thrown if this object is already associated with a store.

This overload handles the case where other does not have aux data.

◆ noPrivateData()

bool SG::IAuxElement::noPrivateData ( ) const
protectedinherited

True if this element has no private data.

◆ nSamples()

unsigned xAOD::CaloCluster_v1::nSamples ( ) const
inline

Definition at line 876 of file CaloCluster_v1.h.

876 {
878 return std::popcount(pattern);
879 }
unsigned samplingPattern() const
Access to sampling pattern (one bit per sampling) (Method may be removed later)
setEventNumber uint32_t

◆ numberCells()

int xAOD::CaloCluster_v1::numberCells ( ) const

Return total number of cells in cluster.

This method sums up the number of cells in all samplings. This should be identical to CaloCluster_v1::size() for clusters which still have all included cells linked.

Returns
Number of cells in cluster (> 0) for clusters that have the number of cells in sampling moment NCELL_SAMPLING set. In case this moment is not available, 0 is returned.

Definition at line 742 of file CaloCluster_v1.cxx.

742 {
743 std::vector<int> ncells;
744 return getNumberCellsInSampling<std::vector<int> >(ncells) ? std::accumulate(ncells.begin(),ncells.end(),0) : 0;
745 }
bool getNumberCellsInSampling(CDATA &cdata) const
Get number of cells for all sampling layer.

◆ numberCellsInSampling()

int xAOD::CaloCluster_v1::numberCellsInSampling ( const CaloSample samp,
bool isInnerWheel = false ) const

Returns number of cells in given sampling.

This method returns the number of cells in a given sampling. All cells with \( E \neq 0 \) are counted, independent of the signal quality. Due to the strong reduction of the readout granularity of the electromagnmetic endcaps for \( |\eta| > 2.5 \) the returned number of cells in EME2 can be customized for clusters spanning this boundary. By default (isInnerWheel=false ) the number of all cells in EME2 is returned (inclusive count, consistent with the behaviour for all other samplings). For isInnerWheel=true the number of EME2 cells in the inner wheel are returned.

Parameters
sampsampling id
isInnerWheelreturns number of cells in small wheel (for EME2 only)

Definition at line 726 of file CaloCluster_v1.cxx.

726 {
728 //
729 if ( acc != nullptr && acc->isAvailable(*this) ) {
730 size_t idx((size_t)samp);
731 return ( idx < (*acc)(*this).size() ) // valid sampling
732 ? isInnerWheel // check if inner wheel cell count is requested
733 ? extractUpperCount<int>((*acc)(*this)[idx])
734 : extractLowerCount<int>((*acc)(*this)[idx])
735 : 0;
736 } else {
737 return 0;
738 }
739 }
UNSIGNED extractUpperCount(ncells_store_t::value_type cdata) const
extract upper cell count from data
setRawEt setRawPhi int

◆ operator=()

CaloCluster_v1 & xAOD::CaloCluster_v1::operator= ( const xAOD::CaloCluster_v1 & other)

Assignment operator.

Definition at line 53 of file CaloCluster_v1.cxx.

53 {
54 if (this == &other) {
55 return *this;
56 }
57
58 SG::AuxElement::operator=( other ); //Call assignment operator of base-class
59 m_recoStatus=other.m_recoStatus;
60 setSignalState(other.signalState());
61 m_samplingPattern=other.m_samplingPattern;
62 m_secondTime = other.m_secondTime;
63
64#if !(defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS))
65 const CaloClusterCellLink* links=other.getCellLinks();
66 if (links) {
67 this->addCellLink(std::make_unique<CaloClusterCellLink>(*links));
68 }
69 static const Accessor<ElementLink<CaloClusterCellLinkContainer> > accCellLinks("CellLink");
70 if (accCellLinks.isAvailable(*this)) { //In case an element link was copied by SG::AuxElement::operator=, invalidate it
71 accCellLinks(*this).reset();
72 } //end if have element link to CaloClusterCellLink
73#endif // not defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS)
74 return *this;
75 }
AuxElement & operator=(const AuxElement &other)
Assignment.

◆ p4() [1/2]

CaloCluster_v1::FourMom_t xAOD::CaloCluster_v1::p4 ( ) const
virtual

The full 4-momentum of the particle.

Implements xAOD::IParticle.

Definition at line 465 of file CaloCluster_v1.cxx.

465 {
466 return p4(m_signalState);
467 }

◆ p4() [2/2]

CaloCluster_v1::FourMom_t xAOD::CaloCluster_v1::p4 ( const State s) const

Definition at line 470 of file CaloCluster_v1.cxx.

470 {
472 switch(s) {
473 case CALIBRATED:
474 p4.SetPtEtaPhiM(pt(s),calEta(),calPhi(),calM());
475 break;
476 case UNCALIBRATED:
477 p4.SetPtEtaPhiM(pt(s),rawEta(),rawPhi(), rawM());
478 break;
479 case ALTCALIBRATED:
480 p4.SetPtEtaPhiM(pt(s),altEta(),altPhi(), altM());
481 break;
482 default:
483 break;
484 }
485 return p4;
486 }
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.

◆ phi() [1/2]

double xAOD::CaloCluster_v1::phi ( ) const
virtual

The azimuthal angle ( \(\phi\)) of the particle.

Implements xAOD::IParticle.

Definition at line 256 of file CaloCluster_v1.cxx.

257 {
258 return phi (m_signalState);
259 }
virtual double phi() const
The azimuthal angle ( ) of the particle.

◆ phi() [2/2]

double xAOD::CaloCluster_v1::phi ( const State s) const

phi with a given signal state

Return phi for a specific signal state.

Parameters
sThe desired signal state.

Definition at line 210 of file CaloCluster_v1.cxx.

211 {
212 switch (s) {
213 case CALIBRATED:
214 return calPhi();
215 break;
216 case UNCALIBRATED:
217 return rawPhi();
218 break;
219 case ALTCALIBRATED:
220 return altPhi();
221 break;
222 default:
223 return -999;
224 }
225 }

◆ phi0()

flt_t xAOD::CaloCluster_v1::phi0 ( ) const

Returns raw \( \phi \) of cluster seed.

◆ phiBE()

float xAOD::CaloCluster_v1::phiBE ( const unsigned layer) const

Get the phi in one layer of the EM Calo.

Parameters
layerLayer between 0 (Presampler) and 3 (Back)
Returns
energy Works for both, barrel and endcap

Definition at line 634 of file CaloCluster_v1.cxx.

634 {
635 static const Accessor< std::vector <float > > eAcc("e_sampl");
636 static const Accessor< std::vector <float > > phiAcc("phi_sampl");
637 return CaloClusterDetails::phiBE(sample,m_samplingPattern,eAcc(*this),phiAcc(*this));
638 }
float phiBE(const unsigned sample, const std::uint32_t samplingPattern, const std::span< const float > e_sampl, const std::span< const float > phi_sampl)

◆ phimax()

float xAOD::CaloCluster_v1::phimax ( const CaloSample sampling) const

Retrieve \( \varphi \) of cell with maximum energy in given sampling.

Definition at line 582 of file CaloCluster_v1.cxx.

582 {
583 static const Accessor< std::vector <float > > phimaxAcc("phimax_sampl");
584 if (!phimaxAcc.isAvailable( *this )){
585 return -999;
586 }
587 return getSamplVarFromAcc(phimaxAcc,sampling);
588 }

◆ phiSample()

float xAOD::CaloCluster_v1::phiSample ( const CaloSample sampling) const

Retrieve barycenter \( \varphi \) in a given sample.

Definition at line 540 of file CaloCluster_v1.cxx.

540 {
541 static const Accessor< std::vector <float > > phiAcc("phi_sampl");
542 if (!phiAcc.isAvailable( *this )){
543 return -999;
544 }
545
546 return getSamplVarFromAcc(phiAcc,sampling);
547 }

◆ phisize()

float xAOD::CaloCluster_v1::phisize ( const CaloSample sampling) const

Returns cluster size in \( \varphi \) for a given sampling.

Definition at line 609 of file CaloCluster_v1.cxx.

609 {
610 static const Accessor< std::vector <float > > phisizeAcc("phisize_sampl");
611 if (!phisizeAcc.isAvailable( *this )){
612 return -999;
613 }
614 return getSamplVarFromAcc(phisizeAcc,sampling);
615 }

◆ pt() [1/2]

double xAOD::CaloCluster_v1::pt ( ) const
virtual

The transverse momentum ( \(p_T\)) of the particle (negative for negative-energy clusters)

Implements xAOD::IParticle.

Definition at line 247 of file CaloCluster_v1.cxx.

247 {
248 return pt(m_signalState);
249 }

◆ pt() [2/2]

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.

Returns
The transverse momentum of the cluster

Definition at line 121 of file CaloCluster_v1.cxx.

121 {
122 // Calculate the momentum of the object:
123 double theE = 0;
124 double theM = 0;
125 switch (s) {
126 case CALIBRATED:
127 theE=calE();
128 theM=calM();
129 break;
130 case UNCALIBRATED:
131 theE=rawE();
132 theM=rawM();
133 break;
134 case ALTCALIBRATED:
135 theE=altE();
136 theM=altM();
137 break;
138 default:
139 break;
140 }
141
142 double p = 0.0;
143 if( std::abs( theM ) < 0.00001 ) {
144 p = theE;
145 } else {
146 p = std::sqrt( theE * theE - theM * theM );
147 if( theE < 0 ) {
148 p = -p;
149 }
150 }
151
152 // Calculate sinTh:
153 double aEta = std::abs( eta(s) );
154 if( aEta > 710.0 ) {
155 aEta = 710.0;
156 }
157 const double sinTh = 1.0 / std::cosh( aEta );
158
159 // Calculate pT from these two:
160 return p * sinTh;
161 }

◆ rapidity()

double xAOD::CaloCluster_v1::rapidity ( ) const
virtual

The true rapidity (y) of the particle.

Implements xAOD::IParticle.

Definition at line 461 of file CaloCluster_v1.cxx.

461 {
462 return genvecP4().Rapidity();
463 }

◆ rawE()

flt_t xAOD::CaloCluster_v1::rawE ( ) const

◆ rawEta()

flt_t xAOD::CaloCluster_v1::rawEta ( ) const

Get \( \eta \) in signal state UNCALIBRATED.

◆ rawM()

flt_t xAOD::CaloCluster_v1::rawM ( ) const

Get mass in signal state UNCALIBRATED.

◆ rawPhi()

flt_t xAOD::CaloCluster_v1::rawPhi ( ) const

Get \( \phi \) in signal state UNCALIBRATED.

◆ recoStatus() [1/2]

CaloRecoStatus & xAOD::CaloCluster_v1::recoStatus ( )
inline

Accesssor to CaloRecoStatus (non-const)

Returns
Reference to the CaloRecoStatus of this cluster

Definition at line 843 of file CaloCluster_v1.h.

843{return m_recoStatus;}

◆ recoStatus() [2/2]

const CaloRecoStatus & xAOD::CaloCluster_v1::recoStatus ( ) const
inline

Accesssor to CaloRecoStatus (const)

Returns
const reference to the CaloRecoStatus of this cluster

Definition at line 848 of file CaloCluster_v1.h.

848{return m_recoStatus;}

◆ releasePrivateStore()

void SG::AuxElement::releasePrivateStore ( )
inherited

Release and free any private store associated with this object.

ExcBadPrivateStore will be thrown if this object does not have a private store.

Definition at line 210 of file AuxElement.cxx.

211{
212 if (hadPrivateData()) {
213 // We had a private store, but it was released because this object
214 // was added to a container. Just forget about it.
216 return;
217 }
218
219 if (!havePrivateData() ||
220 !m_container ||
221 typeid(*m_container) != typeid(AuxElementPrivateData))
222 {
223 throw SG::ExcBadPrivateStore ("no private store exists");
224 }
225
228 delete m_container;
229 m_container = 0;
230}
bool hadPrivateData() const
True if this element had private data before it was added to its current container.
void setNoPrivateData()
Record that this element does not have private data.

◆ releasePrivateStoreForDtor()

void SG::AuxElement::releasePrivateStoreForDtor ( )
privateinherited

Out-of-line portion of destructor.

Delete a private store if we have one.

Definition at line 441 of file AuxElement.cxx.

442{
443#ifdef ATHCONTAINERS_R21_COMPAT
444 if (havePrivateData()) {
445 delete m_container;
446 }
447#else
449#endif
450}
void releasePrivateStoreForDtor()
Out-of-line portion of destructor.

◆ removeCell()

bool xAOD::CaloCluster_v1::removeCell ( const CaloCell * ptr)

Method to remove a cell to the cluster (slow!) (Beware: Kinematics not updated!)

Parameters
indexIndex of the cell in the CaloCelLContainer
Returns
true on success, false if the cell or the CaloCellLinkContainer is not found A more efficient way to remove cells is to use the iterator fucnctionality of the linked CaloCellLink object and use the remove(iterator) method from there.

Definition at line 847 of file CaloCluster_v1.cxx.

847 {
848 //1. Get a ptr to the CaloClusterCellLink
849 CaloClusterCellLink* cccl=getOwnCellLinks();
850 if (!cccl){
851 return false; // No link found (expected for TopoClusters in xAOD files)
852 }
853 // 2. Remove cell
854 return cccl->removeCell(ptrToDelete);
855 }

◆ retrieveMoment() [1/2]

bool xAOD::CaloCluster_v1::retrieveMoment ( MomentType type,
double & value ) const

Retrieve individual moment.

Definition at line 662 of file CaloCluster_v1.cxx.

662 {
663
664 // Get the moment accessor:
666 if (!acc){
667 return false;
668 }
669 // Check if the moment is available:
670 if( ! acc->isAvailable( *this ) ) {
671 return false;
672 }
673 // Retrieve the moment:
674 value = ( *acc )( *this );
675 return true;
676 }

◆ retrieveMoment() [2/2]

bool xAOD::CaloCluster_v1::retrieveMoment ( MomentType type,
ncells_store_t & values ) const

Retrieve non-scalar moments.

Warning
Due to the store complexity, clients should use the xAOD::CaloCluster_v1::numberCellsInSampling method.

Definition at line 689 of file CaloCluster_v1.cxx.

689 {
691 // only known moments of this type
692 if ( acc == nullptr || !acc->isAvailable(*this) ) { return false; }
693 // retrieve data
694 values = (*acc)(*this);
695 return true;
696 }

◆ reweightCell()

void xAOD::CaloCluster_v1::reweightCell ( cell_iterator it,
const double weight )
inline

Method to reweight a cell in the cluster (Beware: Kinematics not updated!)

Parameters
itNon-const cell-iterator
weightThe new weight

Definition at line 838 of file CaloCluster_v1.h.

838{it.reweight(weight);}

◆ samplingPattern()

unsigned xAOD::CaloCluster_v1::samplingPattern ( ) const
inline

Access to sampling pattern (one bit per sampling) (Method may be removed later)

Definition at line 867 of file CaloCluster_v1.h.

867 {
868 return m_samplingPattern;
869 }

◆ sampVarIdx()

unsigned xAOD::CaloCluster_v1::sampVarIdx ( const CaloSample s) const
inlineprivate

Definition at line 871 of file CaloCluster_v1.h.

871 {
873 }
unsigned sampVarIdx(const CaloSample s, const std::uint32_t samplingPattern)

◆ secondTime()

CaloCluster_v1::flt_t xAOD::CaloCluster_v1::secondTime ( ) const

Access second moment of cell timing distribution.

For clusters read from persistent storage, this method returns the value stored for the SECOND_TIME moment.

Return values
0if (1) moment is not available, (2) the cluster time could not be calculated, or (3) the cluster has only one cell or all cells have exactly the same time.

Definition at line 911 of file CaloCluster_v1.cxx.

911 {
912 if ( m_secondTime < 0. ) {
913 double stime(0.); return this->retrieveMoment(SECOND_TIME,stime) ? stime : 0.;
914 } else {
915 return m_secondTime;
916 }
917 }
std::string stime()
return the current data and time

◆ setAltE()

void xAOD::CaloCluster_v1::setAltE ( const CaloCluster_v1::flt_t value)

Set Energy for signal state ALTCALIBRATED.

Definition at line 328 of file CaloCluster_v1.cxx.

328 {
329 static const Accessor<CaloCluster_v1::flt_t> accAltE("altE");
330 accAltE(*this)=value;
331 }

◆ setAltEta()

void xAOD::CaloCluster_v1::setAltEta ( const CaloCluster_v1::flt_t value)

Set \( \eta \) for signal state ALTCALIBRATED.

Definition at line 333 of file CaloCluster_v1.cxx.

333 {
334 static const Accessor<CaloCluster_v1::flt_t> accAltEta("altEta");
335 accAltEta(*this)=value;
336 }

◆ setAltM()

void xAOD::CaloCluster_v1::setAltM ( const CaloCluster_v1::flt_t value)

Set mass for singal state ALTCALIBRATED.

Definition at line 343 of file CaloCluster_v1.cxx.

343 {
344 static const Accessor<CaloCluster_v1::flt_t> accAltM("altM");
345 accAltM(*this)=value;
346 }

◆ setAltPhi()

void xAOD::CaloCluster_v1::setAltPhi ( const CaloCluster_v1::flt_t value)

Set \( \phi \) for signal state ALTCALIBRATED.

Definition at line 338 of file CaloCluster_v1.cxx.

338 {
339 static const Accessor<CaloCluster_v1::flt_t> accAltPhi("altPhi");
340 accAltPhi(*this)=value;
341 }

◆ setBadChannelList()

void xAOD::CaloCluster_v1::setBadChannelList ( const CaloClusterBadChannelList & bcl)

Definition at line 274 of file CaloCluster_v1.cxx.

274 {
275 static const Accessor<xAOD::CaloClusterBadChannelList> accBCL("BadChannelList");
276 accBCL(*this)=bcl;
277 }

◆ setCalE()

void xAOD::CaloCluster_v1::setCalE ( const CaloCluster_v1::flt_t value)

Set Energy for signal state CALIBRATED.

Definition at line 306 of file CaloCluster_v1.cxx.

306 {
307 static const Accessor<CaloCluster_v1::flt_t> accCalE("calE");
308 accCalE(*this)=value;
309 }

◆ setCalEta()

void xAOD::CaloCluster_v1::setCalEta ( const CaloCluster_v1::flt_t value)

Set \( \eta \) for signal state CALIBRATED.

Definition at line 311 of file CaloCluster_v1.cxx.

311 {
312 static const Accessor<CaloCluster_v1::flt_t> accCalEta("calEta");
313 accCalEta(*this)=value;
314 }

◆ setCalM()

void xAOD::CaloCluster_v1::setCalM ( const CaloCluster_v1::flt_t value)

Set mass for singal state CALIBRATED.

Definition at line 321 of file CaloCluster_v1.cxx.

321 {
322 static const Accessor<CaloCluster_v1::flt_t> accCalM("calM");
323 accCalM(*this)=value;
324 }

◆ setCalPhi()

void xAOD::CaloCluster_v1::setCalPhi ( const CaloCluster_v1::flt_t value)

Set \( \phi \) for signal state CALIBRATED.

Definition at line 316 of file CaloCluster_v1.cxx.

316 {
317 static const Accessor<CaloCluster_v1::flt_t> accCalPhi("calPhi");
318 accCalPhi(*this)=value;
319 }

◆ setClusterSize()

void xAOD::CaloCluster_v1::setClusterSize ( const ClusterSize sc)

Get cluster size.

Definition at line 369 of file CaloCluster_v1.cxx.

369 {
370 static const Accessor<unsigned> acc("clusterSize");
371 acc(*this)=sc;
372 }
static Double_t sc

◆ setConstStore()

void SG::AuxElement::setConstStore ( const SG::IConstAuxStore * store)
inherited

Synonym for setStore with IConstAuxStore.

Parameters
storeThe new store.

◆ setE()

void xAOD::CaloCluster_v1::setE ( CaloCluster_v1::flt_t theE)

Definition at line 375 of file CaloCluster_v1.cxx.

375 {
376 switch (m_signalState) {
377 case CALIBRATED:
378 return setCalE(theE);
379 break;
380 case UNCALIBRATED:
381 return setRawE(theE);
382 break;
383 case ALTCALIBRATED:
384 return setAltE(theE);
385 break;
386 default:
387 break;
388 }
389 }
void setRawE(flt_t)
Set Energy for signal state UNCALIBRATED.
void setAltE(flt_t)
Set Energy for signal state ALTCALIBRATED.
void setCalE(flt_t)
Set Energy for signal state CALIBRATED.

◆ setEmax()

bool xAOD::CaloCluster_v1::setEmax ( const CaloSample sampling,
const float eMax )

Set the Energy of the cell with the highest energy in a particular sampling.

Definition at line 564 of file CaloCluster_v1.cxx.

564 {
565 static const Accessor< std::vector <float > > emaxAcc("emax_sampl");
566 return setSamplVarFromAcc(emaxAcc,sampling,eMax);
567 }
bool setSamplVarFromAcc(const Accessor< std::vector< float > > &acc, const CaloSample sampling, const float value)

◆ setEnergy()

bool xAOD::CaloCluster_v1::setEnergy ( const CaloSample sampling,
const float e )

Set energy for a given sampling. Returns false if the sample isn't part of the cluster.

Definition at line 519 of file CaloCluster_v1.cxx.

519 {
520 static const Accessor< std::vector <float > > eAcc("e_sampl");
521 return setSamplVarFromAcc(eAcc,sampling,theEnergy);
522 }

◆ setEta() [1/2]

bool xAOD::CaloCluster_v1::setEta ( const CaloSample sampling,
const float eta )

Set \( \eta \) in a given sampling. Returns false if the sample isn't part of the cluster.

Definition at line 534 of file CaloCluster_v1.cxx.

534 {
535 static const Accessor< std::vector <float > > etaAcc("eta_sampl");
536 return setSamplVarFromAcc(etaAcc,sampling,eta);
537 }

◆ setEta() [2/2]

void xAOD::CaloCluster_v1::setEta ( CaloCluster_v1::flt_t theEta)

Set Eta for the current signal state.

Definition at line 391 of file CaloCluster_v1.cxx.

391 {
392 switch (m_signalState) {
393 case CALIBRATED:
394 return setCalEta(theEta);
395 break;
396 case UNCALIBRATED:
397 return setRawEta(theEta);
398 break;
399 case ALTCALIBRATED:
400 return setAltEta(theEta);
401 break;
402 default:
403 break;
404 }
405 }
void setRawEta(flt_t)
Set for signal state UNCALIBRATED.
void setAltEta(flt_t)
Set for signal state ALTCALIBRATED.
void setCalEta(flt_t)
Set for signal state CALIBRATED.

◆ setEta0()

void xAOD::CaloCluster_v1::setEta0 ( flt_t )

◆ setEtamax()

bool xAOD::CaloCluster_v1::setEtamax ( const CaloSample sampling,
const float etaMax )

Set the eta of the cell with the highest energy in a particular sampling.

Definition at line 577 of file CaloCluster_v1.cxx.

577 {
578 static const Accessor< std::vector <float > > etamaxAcc("etamax_sampl");
579 return setSamplVarFromAcc(etamaxAcc,sampling,etaMax);
580 }

◆ setEtasize()

bool xAOD::CaloCluster_v1::setEtasize ( const CaloSample sampling,
const float etaSize )

Set the cluster size in \( \varphi \) for a given sampling.

Definition at line 604 of file CaloCluster_v1.cxx.

604 {
605 static const Accessor< std::vector <float > > etasizeAcc("etasize_sampl");
606 return setSamplVarFromAcc(etasizeAcc,sampling,etaSize);
607 }

◆ setHadPrivateData()

void SG::IAuxElement::setHadPrivateData ( )
privateinherited

Record that this element used to have private data.

◆ setHavePrivateData()

void SG::IAuxElement::setHavePrivateData ( )
privateinherited

Record that this element currently has private data.

◆ setIndex()

void SG::AuxElement::setIndex ( size_t index,
SG::AuxVectorData * container )
privateinherited

Set the index/container for this element.

Parameters
indexThe index of this object within the container.
containerThe container holding this object. May be null if this object is being removed from a container.

Usually this simply sets the index and container members of this object. However, in the case where this object has an associated private store, then we need to deal with releasing the store if the object is being added to a container, or making a new store if the object is being removed from a container.

◆ setIndexPrivate()

bool SG::AuxElement::setIndexPrivate ( size_t index,
SG::AuxVectorData * container )
privateinherited

Set the index/container for this element.

Parameters
indexThe index of this object within the container.
containerThe container holding this object. May be null if this object is being removed from a container.

This is called from setIndex when we have a private store to deal with.

Definition at line 505 of file AuxElement.cxx.

506{
507#ifdef ATHCONTAINERS_R21_COMPAT
508 if (hadPrivateData()) {
509 // We had a private store, but it was released because we were added
510 // to a container.
511
512 if (container == 0) {
513 // We're being moved out of the container. Make a new private
514 // store, copy the data, and switch to it.
515 auto privateData = new SG::AuxElementPrivateData;
516 AuxElement to (privateData, 0);
517 to.copyAux (*this);
520 m_container = privateData;
521 return true;
522 }
523 }
524 else if (havePrivateData() &&
525 typeid(*m_container) == typeid(AuxElementPrivateData))
526 {
527 // We currently have a private store.
528
529 if (container != 0 && container != m_container) {
530 // We're being added to a container.
531 // Aux data has already been copied.
532 // Release private store.
535 delete m_container;
537 return false;
538 }
539 }
540 else {
541 // We have a standalone store.
542 throw SG::ExcBadPrivateStore ("Attempt to add/remove a standalone object "
543 "from a container.");
544 }
545
548 return false;
549#else
551#endif
552}
AuxElement()
Default constructor.
bool setIndexPrivate(size_t index, const SG::AuxVectorData *container)
Set the index/container for this element.
void setHadPrivateData()
Record that this element used to have private data.
CONT to(RANGE &&r)
Definition ranges.h:39

◆ setLink() [1/2]

bool xAOD::CaloCluster_v1::setLink ( CaloClusterCellLinkContainer * CCCL,
const EventContext & ctx )

Push the CaloClusterCellLink object into the cell-link container and hand-over ownership to it.

Parameters
CCCLpointer to the CaloClusterCellLinkContainer
EventContextExplicitly specify the EventContext to use for the ElementLink.
Returns
true on success

Definition at line 811 of file CaloCluster_v1.cxx.

813 {
814 if (!m_cellLinks || !cccl) {
815 return false;
816 }
817 // The links are now owned by the container
818 cccl->push_back(m_cellLinks.release());
819 const size_t idx = cccl->size() - 1; // Use index for speed
821 accCellLinks("CellLink");
822 const CaloClusterCellLinkContainer& ref = *cccl;
823 ElementLink<CaloClusterCellLinkContainer> el(ref, idx, ctx);
824 accCellLinks(*this) = el;
825 return true;
826 }
const boost::regex ref(r_ef)
Athena::TPCnvVers::Old Athena::TPCnvVers::Old Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current Athena::TPCnvVers::Current CaloClusterCellLinkContainer
Definition CaloTPCnv.cxx:95

◆ setLink() [2/2]

bool xAOD::CaloCluster_v1::setLink ( CaloClusterCellLinkContainer * CCCL,
IProxyDict * sg = nullptr )

Set up an ElementLink to a CaloClusterCellLink object.

Parameters
CCCL_keyStoreGate key of the CaloClusterCellLinkContainer
indexIndex of inside the CaloClusterCellLinkContainer container
Returns
true on success

Push the CaloClusterCellLink object into the cell-link container and hand-over ownership to it

Parameters
CCCLpointer to the CaloClusterCellLinkContainer
sgExplicitly specify the store to use for the ElementLink.
Returns
true on success

Definition at line 796 of file CaloCluster_v1.cxx.

798 {
799 if (!m_cellLinks || !cccl){
800 return false;
801 }
802 cccl->push_back(m_cellLinks.release());//The links are now owned by the container
803 const size_t idx=cccl->size()-1; //Use index for speed
804 static const Accessor<ElementLink<CaloClusterCellLinkContainer> > accCellLinks("CellLink");
806 ElementLink<CaloClusterCellLinkContainer> el(ref,idx,sg);
807 accCellLinks(*this)=el;
808 return true;
809 }

◆ setLowerCount()

template<class UNSIGNED>
ncells_store_t::value_type xAOD::CaloCluster_v1::setLowerCount ( ncells_store_t::value_type cdata,
UNSIGNED clower )
inlineprivate
Parameters
cloweradd lower cell count to data

Definition at line 698 of file CaloCluster_v1.h.

699 { return static_cast<ncells_store_t::value_type>((cdata & 0xff00)|(clower & 0x00ff)); }

◆ setM()

void xAOD::CaloCluster_v1::setM ( CaloCluster_v1::flt_t theM)

Set Mass for the current signal state.

Definition at line 424 of file CaloCluster_v1.cxx.

424 {
425 switch (m_signalState) {
426 case CALIBRATED:
427 return setCalM(theM);
428 break;
429 case UNCALIBRATED:
430 return setRawM(theM);
431 break;
432 case ALTCALIBRATED:
433 return setAltM(theM);
434 break;
435 default:
436 break;
437 }
438 }
void setAltM(flt_t)
Set mass for singal state ALTCALIBRATED.
void setRawM(flt_t)
Set mass for singal state UNCALIBRATED.
void setCalM(flt_t)
Set mass for singal state CALIBRATED.

◆ setNonConstStore()

void SG::AuxElement::setNonConstStore ( SG::IAuxStore * store)
inherited

Synonym for setStore with IAuxStore.

Parameters
storeThe new store.

◆ setNoPrivateData()

void SG::IAuxElement::setNoPrivateData ( )
privateinherited

Record that this element does not have private data.

◆ setNumberCellsInSampling()

void xAOD::CaloCluster_v1::setNumberCellsInSampling ( CaloSampling::CaloSample samp,
int ncells,
bool isInnerWheel = false )

Set the number of cells in a sampling layer.

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=SG::AuxTypeRegistry::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; }

Definition at line 714 of file CaloCluster_v1.cxx.

714 {
715 const Accessor<ncells_store_t>* acc = momentContainerAccessorV1(NCELL_SAMPLING); // should always be valid!
716 // cast to cell counter type and limit value range
718 // check index and extend store if needed
719 size_t idx((size_t)samp);
720 if ( idx >= (*acc)(*this).size() ) { (*acc)(*this).resize(idx+1,0); }
721 // set counts
722 (*acc)(*this)[idx] = isInnerWheel ? setUpperCount<ncells_t>((*acc)(*this)[idx],nc) : setLowerCount<ncells_t>((*acc)(*this)[idx],nc);
723 }
ncells_store_t::value_type setUpperCount(ncells_store_t::value_type cdata, UNSIGNED cupper)
uint8_t ncells_t
Type for number-of-cells-in-sampling counter.
CCTYPE adjustToRange(UNSIGNED count) const
< reduce value range to min and max counts
ncells_store_t::value_type setLowerCount(ncells_store_t::value_type cdata, UNSIGNED clower)

◆ setPhi() [1/2]

bool xAOD::CaloCluster_v1::setPhi ( const CaloSample sampling,
const float phi )

Set \( \varphi \) in a given sampling. Returns false if the sample isn't part of the cluster.

Definition at line 549 of file CaloCluster_v1.cxx.

549 {
550 static const Accessor< std::vector <float > > phiAcc("phi_sampl");
551 return setSamplVarFromAcc(phiAcc,sampling,phi);
552 }

◆ setPhi() [2/2]

void xAOD::CaloCluster_v1::setPhi ( CaloCluster_v1::flt_t thePhi)

Set Phi for the current signal state.

Definition at line 407 of file CaloCluster_v1.cxx.

407 {
408 switch (m_signalState) {
409 case CALIBRATED:
410 return setCalPhi(thePhi);
411 break;
412 case UNCALIBRATED:
413 return setRawPhi(thePhi);
414 break;
415 case ALTCALIBRATED:
416 return setAltPhi(thePhi);
417 break;
418 default:
419 break;
420 }
421 }
void setAltPhi(flt_t)
Set for signal state ALTCALIBRATED.
void setRawPhi(flt_t)
Set for signal state UNCALIBRATED.
void setCalPhi(flt_t)
Set for signal state CALIBRATED.

◆ setPhi0()

void xAOD::CaloCluster_v1::setPhi0 ( flt_t )

Set raw \( \phi \) of cluster seed.

◆ setPhimax()

bool xAOD::CaloCluster_v1::setPhimax ( const CaloSample sampling,
const float phiMax )

Set the phi of the cell with the highest energy in a particular sampling.

Definition at line 590 of file CaloCluster_v1.cxx.

590 {
591 static const Accessor< std::vector <float > > phimaxAcc("phimax_sampl");
592 return setSamplVarFromAcc(phimaxAcc,sampling,phiMax);
593 }

◆ setPhisize()

bool xAOD::CaloCluster_v1::setPhisize ( const CaloSample sampling,
const float phiSize )

Set the cluster size in \( \vareta \) for a given sampling.

Definition at line 617 of file CaloCluster_v1.cxx.

617 {
618 static const Accessor< std::vector <float > > phisizeAcc("phisize_sampl");
619 return setSamplVarFromAcc(phisizeAcc,sampling,phiSize);
620 }

◆ setRawE()

void xAOD::CaloCluster_v1::setRawE ( const CaloCluster_v1::flt_t value)

Set Energy for signal state UNCALIBRATED.

Definition at line 284 of file CaloCluster_v1.cxx.

284 {
285 static const Accessor<CaloCluster_v1::flt_t> accRawE("rawE");
286 accRawE(*this)=value;
287 }

◆ setRawEta()

void xAOD::CaloCluster_v1::setRawEta ( const CaloCluster_v1::flt_t value)

Set \( \eta \) for signal state UNCALIBRATED.

Definition at line 289 of file CaloCluster_v1.cxx.

289 {
290 static const Accessor<CaloCluster_v1::flt_t> accRawEta("rawEta");
291 accRawEta(*this)=value;
292 }

◆ setRawM()

void xAOD::CaloCluster_v1::setRawM ( const CaloCluster_v1::flt_t value)

Set mass for singal state UNCALIBRATED.

Definition at line 299 of file CaloCluster_v1.cxx.

299 {
300 static const Accessor<CaloCluster_v1::flt_t> accRawM("rawM");
301 accRawM(*this)=value;
302 }

◆ setRawPhi()

void xAOD::CaloCluster_v1::setRawPhi ( const CaloCluster_v1::flt_t value)

Set \( \phi \) for signal state UNCALIBRATED.

Definition at line 294 of file CaloCluster_v1.cxx.

294 {
295 static const Accessor<CaloCluster_v1::flt_t> accRawPhi("rawPhi");
296 accRawPhi(*this)=value;
297 }

◆ setSamplingPattern()

void xAOD::CaloCluster_v1::setSamplingPattern ( const unsigned sp,
const bool clearSamplingVars = false )

Set sampling pattern (one bit per sampling.

Definition at line 81 of file CaloCluster_v1.cxx.

81 {
82
83 // Check sampling variables ....
84 static const Accessor< std::vector< float > > etaAcc( "eta_sampl" );
85 static const Accessor< std::vector< float > > phiAcc( "phi_sampl" );
86 static const Accessor< std::vector< float > > eAcc( "e_sampl" );
87 static const Accessor< std::vector< float > > emaxAcc( "emax_sampl" );
88 static const Accessor< std::vector< float > > etamaxAcc( "etamax_sampl" );
89 static const Accessor< std::vector< float > > phimaxAcc( "phimax_sampl" );
90 static const Accessor< std::vector< float > > etasizeAcc( "etasize_sampl" );
91 static const Accessor< std::vector< float > > phisizeAcc( "phisize_sampl" );
92
93 static const std::array< const Accessor< std::vector< float > >*, 8 > allAcc = {
94 { &etaAcc, &phiAcc, &eAcc, &emaxAcc, &phimaxAcc, &etamaxAcc, &etasizeAcc,
95 &phisizeAcc } };
96 for( const auto *a : allAcc ) {
97 if( a->isAvailable( *this ) ) {
98 if (!(*a)(*this).empty()) {
99 if (clearSamplingVars){
100 (*a)(*this).clear();
101 }
102 else{
103 std::cerr << "CaloCluster_v1 ERROR Attempt update sampling "
104 << "pattern while sampling variables are already set!"
105 << std::endl;
106 }
107 //std::abort();
108 }
109 }
110 }
111
113 }
static Double_t sp

◆ setSamplVarFromAcc()

bool xAOD::CaloCluster_v1::setSamplVarFromAcc ( const Accessor< std::vector< float > > & acc,
const CaloSample sampling,
const float value )
private

Definition at line 498 of file CaloCluster_v1.cxx.

498 {
499 const unsigned idx=sampVarIdx(sampling);
500 std::vector<float>& vec=acc(*this);
501 //std::cout << "Set sampling var. Sampling " << sampling << ", index=" << idx << " size=" << vec.size() << std::endl;
502 if (idx==CaloSampling::Unknown) {
503 std::cout << "ERROR: Sampling #" << sampling << " is not part of this cluster!" << std::endl;
504 return false;
505 }
506
507 if (vec.size()<nSamples())
508 vec.resize(nSamples());
509 vec[idx]=value;
510 return true;
511 }
std::vector< size_t > vec
unsigned sampVarIdx(const CaloSample) const
unsigned nSamples() const

◆ setSecondTime()

void xAOD::CaloCluster_v1::setSecondTime ( CaloCluster_v1::flt_t stime)

Set second moment of cell timing distribution.

Definition at line 909 of file CaloCluster_v1.cxx.

909{ m_secondTime = stime; }

◆ setSignalState()

bool xAOD::CaloCluster_v1::setSignalState ( const State s)
private

Switch signal state.

Definition at line 440 of file CaloCluster_v1.cxx.

440 {
442 return true;
443 }

◆ setSisterClusterLink()

bool xAOD::CaloCluster_v1::setSisterClusterLink ( const ElementLink< CaloClusterContainer_v1 > & sister)

Set a link to a 'sister' cluster (eg the non-calibrated counterpart)

Definition at line 902 of file CaloCluster_v1.cxx.

903 {
904 static const Accessor< ElementLink<xAOD::CaloClusterContainer_v1 > > accSisterCluster("SisterCluster");
905 accSisterCluster(*this)=sister;
906 return true;
907 }

◆ setStore() [1/3]

void SG::AuxElement::setStore ( const DataLink< SG::IConstAuxStore > & store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Parameters
storeLink to the new store.

Definition at line 269 of file AuxElement.cxx.

270{
271 AuxElementStandaloneData* data = setStore1 (store);
272 if (store)
273 data->setStore (store);
274}
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
AuxElementStandaloneData * setStore1(const SG::IConstAuxStore *store)
Set the store associated with this object.

◆ setStore() [2/3]

void SG::AuxElement::setStore ( const SG::IConstAuxStore * store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Definition at line 241 of file AuxElement.cxx.

242{
243 AuxElementStandaloneData* data = setStore1 (store);
244 if (store)
245 data->setStore (store);
246}

◆ setStore() [3/3]

void SG::AuxElement::setStore ( SG::IAuxStore * store)
inherited

Set the store associated with this object.

Parameters
storeThe new store.

If store is nonzero, this adds a standalone store to the object. The object must not be in a container and must not have a private store. If store is zero, this removes a standalone store.

Definition at line 257 of file AuxElement.cxx.

258{
259 AuxElementStandaloneData* data = setStore1 (store);
260 if (store)
261 data->setStore (store);
262}

◆ setStore1()

AuxElementStandaloneData * SG::AuxElement::setStore1 ( const SG::IConstAuxStore * store)
privateinherited

Set the store associated with this object.

Parameters
storeThe new store.

Helper for setStore. Creates the AuxElementStandaloneData object if needed and returns it.

Parameters
storeThe new store.

Helper for setStore. Creates the @x AuxElementStandaloneData object if needed and returns it.

Definition at line 461 of file AuxElement.cxx.

462{
463 if (store) {
464 // Want this object be standalone.
465 if (!m_container) {
466 // Not in a container (and no private store). Make a new object.
467 AuxElementStandaloneData* data = new AuxElementStandaloneData;
470 return data;
471 }
472 if (usingStandaloneStore()) {
473 // Standalone --- return existing object.
474 return static_cast<AuxElementStandaloneData*> (container());
475 }
476 // Otherwise, it's an error.
477 throw ExcBadPrivateStore ("Attempt to attach a standalone store to an "
478 "object in a container or with a private store.");
479 }
480
481 else {
482 // Getting rid of a standalone store.
483 if (usingStandaloneStore()) {
485 delete m_container;
486 m_container = 0;
487 }
488 else if (m_container != 0)
489 throw ExcBadPrivateStore ("Attempt to remove a standalone store from an "
490 "object in a container or with a private store.");
491 return 0;
492 }
493}
bool usingStandaloneStore() const
Test to see if this object is currently using a standalone store.

◆ setTime()

void xAOD::CaloCluster_v1::setTime ( flt_t )

Set cluster time.

◆ setUpperCount()

template<class UNSIGNED>
ncells_store_t::value_type xAOD::CaloCluster_v1::setUpperCount ( ncells_store_t::value_type cdata,
UNSIGNED cupper )
inlineprivate
Parameters
cupperadd upper cell count to data

Definition at line 700 of file CaloCluster_v1.h.

701 { return static_cast<ncells_store_t::value_type>((cdata & 0x00ff)|((cupper & 0x00ff)<<8)); }

◆ signalState()

State xAOD::CaloCluster_v1::signalState ( ) const
inline

Get the current signal state.

Definition at line 636 of file CaloCluster_v1.h.

636{return m_signalState;}

◆ size()

size_t xAOD::CaloCluster_v1::size ( ) const

size method (forwarded from CaloClusterCellLink obj)

Returns
The number of cells

Definition at line 920 of file CaloCluster_v1.cxx.

920 {
921 const CaloClusterCellLink* cl= getCellLinks();
922 if (!cl) return 0;
923 return cl->size();
924 }
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]

◆ time()

flt_t xAOD::CaloCluster_v1::time ( ) const

Access cluster time.

◆ toPersistent()

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.

Definition at line 863 of file CaloCluster_v1.cxx.

863 {
864
865#if !(defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS))
867 accCellLinks( "CellLink" );
868 if( accCellLinks.isAvailableWritable( *this ) ) {
869 accCellLinks( *this ).toPersistent();
870 }
871#endif // not defined(SIMULATIONBASE) || defined(XAOD_ANALYSIS)
872
873 static const Accessor< ElementLink< xAOD::CaloClusterContainer_v1 > > accSisterCluster("SisterCluster");
874 if( accSisterCluster.isAvailableWritable( *this ) ) {
875 accSisterCluster( *this ).toPersistent();
876 }
877
878 // Return gracefully:
879 }

◆ trackIndices()

bool SG::AuxElement::trackIndices ( ) const
inherited

Return true if index tracking is enabled for this object.

Always returns true. Included here to be consistent with AuxVectorBase when standalone objects may be used as template parameters.

◆ type()

Type::ObjectType xAOD::CaloCluster_v1::type ( ) const
virtual

The type of the object as a simple enumeration.

Implements xAOD::IParticle.

Definition at line 489 of file CaloCluster_v1.cxx.

489 {
490 return Type::CaloCluster;
491 }

◆ upperCellCountBound()

template<class UNSIGNED>
UNSIGNED xAOD::CaloCluster_v1::upperCellCountBound ( ) const
inlineprivate

upper boundary for cell count

Definition at line 703 of file CaloCluster_v1.h.

◆ usingPrivateStore()

bool SG::AuxElement::usingPrivateStore ( ) const
inherited

Test to see if this object is currently using a private store.

Definition at line 280 of file AuxElement.cxx.

281{
282 return havePrivateData() &&
283 typeid(*m_container) == typeid(AuxElementPrivateData);
284}

◆ usingStandaloneStore()

bool SG::AuxElement::usingStandaloneStore ( ) const
inherited

Test to see if this object is currently using a standalone store.

Test to see if this object is currently using a private store.

Definition at line 290 of file AuxElement.cxx.

291{
292 return havePrivateData() &&
293 typeid(*m_container) == typeid(AuxElementStandaloneData);
294}

◆ ::CaloClusterChangeSignalState

friend class ::CaloClusterChangeSignalState
friend

Definition at line 63 of file CaloCluster_v1.h.

Member Data Documentation

◆ m_cellLinks

std::unique_ptr<CaloClusterCellLink> xAOD::CaloCluster_v1::m_cellLinks
private

Unique ptr to cell links.

For cluster building transient only , holds cells owned by the cluster if non-nullptr

Definition at line 686 of file CaloCluster_v1.h.

◆ m_container

const SG::AuxVectorData* SG::ConstAuxElement::m_container
privateinherited

The container of which this object is an element.

Should be null if this object is not within a container, except that it may also point at a private store.

Definition at line 335 of file AuxElement.h.

◆ m_index

size_t SG::IAuxElement::m_index
privateinherited

The index of this element within its container.

Should be 0 if this object is not within a container.

Definition at line 128 of file IAuxElement.h.

◆ m_privateStoreState

PrivateStoreState SG::IAuxElement::m_privateStoreState
privateinherited

Definition at line 137 of file IAuxElement.h.

◆ m_recoStatus

CaloRecoStatus xAOD::CaloCluster_v1::m_recoStatus
private

Reco status (transient only)

Definition at line 689 of file CaloCluster_v1.h.

◆ m_samplingPattern

unsigned xAOD::CaloCluster_v1::m_samplingPattern
private

bit-pattern describing the calo samplings contributing to this cluster

Definition at line 680 of file CaloCluster_v1.h.

◆ m_secondTime

double xAOD::CaloCluster_v1::m_secondTime = { -1. }
private

Second cell time moment (transient only)

Definition at line 692 of file CaloCluster_v1.h.

692{ -1. };

◆ m_signalState

State xAOD::CaloCluster_v1::m_signalState
private

Current signal state.

Definition at line 683 of file CaloCluster_v1.h.

◆ supportsThinning

bool SG::AuxElement::supportsThinning = true
staticconstexprinherited

Mark that this type supports thinning operations.

See AthContainers/supportsThinning.h and AthenaPoolCnvSvc/T_AthenaPoolCnv.h. Helps guide which pool converter template will be used. If false, the default pool converter will be used rather than the aux store-specific one. Ordinary xAOD type should not touch this, but may be overridden in a derived class to handle certain special cases.

Definition at line 959 of file AuxElement.h.


The documentation for this class was generated from the following files: