ATLAS Offline Software
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
CaloCluster Class Reference

Principal data class for CaloCell clusters. More...

#include <CaloCluster.h>

Inheritance diagram for CaloCluster:
Collaboration diagram for CaloCluster:

Classes

class  MomentStoreIter
 Internal cell iterator. More...
 

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, Unknown = 99
}
 enums to identify different cluster size More...
 
typedef CaloCompositeCellBase< CaloClusterNavigable >::cell_iterator cell_iterator
 Iterator on CaloCell s. More...
 
typedef CaloSampling::CaloSample sampling_type
 Sampling indicator. More...
 
typedef CaloVariableType::VariableType variable_type
 Data type indicator. More...
 
typedef double value_type
 Variable value type. More...
 
typedef CaloClusterMomentStore moment_store
 Store type for cluster moments. More...
 
typedef moment_store::moment_type moment_type
 Cluster moment indicator type. More...
 
typedef moment_store::moment_value moment_value
 Cluster moment value type. More...
 
typedef moment_store::moment_iterator moment_iterator_i
 Cluster moment store iterator type. More...
 
typedef moment_type MomentType
 
typedef double(CaloCluster::* GET_VALUE) () const
 
typedef void(CaloCluster::* SET_VALUE) (double v)
 
typedef P4SignalState statename_t
 
typedef P4SignalState::State signalstate_t
 
typedef MomentStoreIter moment_iterator
 Moment iterator type for CaloCluster clients. More...
 
typedef std::vector< CaloClusterBadChannelDatabadChannelList
 Get Bad Channel information. More...
 
enum  Kind {
  P4EETAPHIM, P4IPTCOTTHPHIM, P4PTETAPHIM, P4PXPYPZE,
  UNKNOWN
}
 
typedef CaloCellLink::cell_iterator object_iter
 external cell iterator type More...
 
typedef CaloClusterLinkTemplate< CaloCellLinkContainer >::link_type cell_link_type
 

Public Member Functions

 CaloCluster (double eta0=0, double phi0=0, unsigned int varTypePattern=0x00000000, unsigned int clusterSize=CaloCluster::SW_55ele)
 Constructor. More...
 
virtual ~CaloCluster ()
 Destructor. More...
 
 CaloCluster (const CaloCluster *pCluster)
 Copy constructor. More...
 
 CaloCluster (const CaloCluster &rCluster)
 
double getVariable (const variable_type &varType, const sampling_type &samType, bool useLink=true) const
 General sampling variable access. More...
 
bool getVariable (const variable_type &varType, std::vector< double > &varList, bool useLink=true) const
 General access to variables of a given type in all samplings. More...
 
bool setVariable (const variable_type &varType, const sampling_type &samType, const double &varData, bool useLink=false)
 General sampling variable setter. More...
 
bool setVariable (const variable_type &varType, const std::vector< double > &varList, bool useLink=false)
 Set variables of a given type in all samplings at once. More...
 
bool lockVariable (const variable_type &varType)
 Lock variable (protect against future updates) More...
 
bool unlockVariable (const variable_type &varType)
 Unlock variable (remove lock) More...
 
bool isLocked (const variable_type &varType) const
 Check lock status of variable. More...
 
bool isLocked (const unsigned int &bitPattern) const
 
bool allLocked () const
 Check if all variables are locked. More...
 
virtual CLHEP::HepLorentzVector hlv () const
 redefine hlv() here to avoid ambiguities More...
 
virtual CLHEP::HepLorentzVector hlv (signalstate_t s) const
 retrieve the 4-momentum at a given signal state More...
 
virtual double e () const
 Retrieve energy independent of signal state. More...
 
virtual double eta () const
 Retrieve eta independent of signal state. More...
 
virtual double phi () const
 Retrieve phi independent of signal state. More...
 
virtual double m () const
 Retrieve mass independent of signal state. More...
 
double e (signalstate_t s) const
 Retrieve energy for a specific signal state. More...
 
double eta (signalstate_t s) const
 Retrieve eta for a specific signal state. More...
 
double phi (signalstate_t s) const
 Retrieve phi for a specific signal state. More...
 
double m (signalstate_t s) const
 Retrieve mass for a specific signal state. More...
 
virtual void setE (double e)
 Set energy. More...
 
virtual void setEta (double eta)
 Set eta. More...
 
virtual void setPhi (double phi)
 Set phi. More...
 
virtual void setM (double m)
 Set mass. More...
 
virtual void set4Mom (const I4Momentum *const pMom)
 Set kinematics from four-vector. More...
 
virtual void set4Mom (const I4Momentum &rMom)
 Set kinematics directly from four-vector. More...
 
virtual void set4Mom (const CLHEP::HepLorentzVector &rVec)
 Set kinematics directly from HLV. More...
 
unsigned int nSamples () const
 Retrieve number of samplings in this cluster. More...
 
double eSample (sampling_type sampling) const
 Retrieve energy in a given sampling. More...
 
double etaSample (sampling_type sampling) const
 Retrieve barycenter \( \eta \) in a given sample. More...
 
double phiSample (sampling_type sampling) const
 Retrieve barycenter \( \varphi \) in a given sample. More...
 
void getEInSamples (std::vector< double > &theEnergies) const
 Retrieve energy for all samplings into a vector. More...
 
void getEtaInSamples (std::vector< double > &theEtas) const
 Retrieve \( \eta \) for all samplings into a vector. More...
 
void getPhiInSamples (std::vector< double > &thePhis) const
 Retrieve \( \varphi \) for all samplings into a vector. More...
 
void setEInSamples (const std::vector< double > &theEnergies)
 Set energy in all samplings from a vector. More...
 
void setEtaInSamples (const std::vector< double > &theEtas)
 Set \( \eta \) in all samplings from a vector. More...
 
void setPhiInSamples (const std::vector< double > &thePhis)
 Set \( \varphi \) in all samplings from a vector. More...
 
virtual double getBasicEnergy () const
 Access basic energy scale signal. More...
 
virtual void setBasicEnergy (double theEnergy)
 Set basic energy scale signal. More...
 
double getTime () const
 Access cluster time. More...
 
void setTime (double theTime)
 Set cluster time. More...
 
void setClusterSize (unsigned int theClusterSize)
 Set cluster size. More...
 
unsigned int getClusterSize () const
 Get cluster size. More...
 
unsigned int getClusterEtaSize () const
 
unsigned int getClusterPhiSize () const
 
void setenergy (sampling_type sampling, double e)
 Set energy for a given sampling. More...
 
void seteta (sampling_type sampling, double eta)
 Set \( \eta \) in a given sampling. More...
 
void setphi (sampling_type sampling, double phi)
 Set \( \varphi \) in a given sampling. More...
 
void insertMoment (const moment_type &momType, const moment_value &momValue, bool useLink=true)
 Set individual moment. More...
 
moment_iterator beginMoment (bool useLink=true) const
 First iterator on moment store. More...
 
moment_iterator endMoment (bool useLink=true) const
 Last iterator on moment store. More...
 
bool retrieveMoment (const moment_type &momType, moment_value &momValue, bool useLink=true) const
 Retrieve individual moment. More...
 
bool retrieveMoment (const moment_type &momType, double &momData, bool useLink=true) const
 
moment_value getMoment (const moment_type &momType, bool useLink=true) const
 Get individual moment. More...
 
moment_value getMoment (const moment_iterator &momIter) const
 Get individual moment. More...
 
double getMomentValue (const moment_type &momType, bool useLink=true) const
 Get moment value. More...
 
double getMomentValue (const moment_iterator &momIter) const
 
moment_type getMomentType (const moment_iterator &momIter) const
 Get moment type. More...
 
bool is_valid_sampling (const sampling_type &sampling) const
 Checks if cells from a given sampling in EMB or EMEC (!) are in cluster. More...
 
bool isEMSampling (const sampling_type &theSampling) const
 Checks if cells from a given sampling in EMB and EMEC are in the cluster. More...
 
bool hasSampling (const sampling_type &theSampling) const
 Checks if certain sampling contributes to cluster. More...
 
unsigned int samplingPattern () const
 Get sampling bitmask. More...
 
double eta0 () const
 Returns raw \( \eta \) of cluster seed. More...
 
double phi0 () const
 Returns raw \( \phi \) of cluster seed. More...
 
double etasize (sampling_type sampling) const
 Returns cluster size in \( \eta \) for a given sampling. More...
 
double phisize (sampling_type sampling) const
 Returns cluster size in \( \varphi \) for a given sampling. More...
 
void setetasize (sampling_type sampling, double size)
 Set the cluster size in \( \eta \) for a given sampling. More...
 
void setphisize (sampling_type sampling, double size)
 Set the cluster size in \( \varphi \) for a given sampling. More...
 
double energy_max (sampling_type sampling) const
 Retrieve maximum cell energy in given sampling. More...
 
double etamax (sampling_type sampling) const
 Retrieve \( \eta \) of cell with maximum energy in given sampling. More...
 
double phimax (sampling_type sampling) const
 Retrieve \( \varphi \) of cell with maximum energy in given sampling. More...
 
void setenergymax (sampling_type sampling, double m)
 Set the maximum energy in a given sampling. More...
 
void setetamax (sampling_type sampling, double m)
 Set the \( \eta \) of cell with maximum energy in a given sampling. More...
 
void setphimax (sampling_type sampling, double m)
 Set the \( \varphi \) of cell with maximum energy in a given sampling. More...
 
double etaBE (int sampling) const
 EMB/EMEC combined barycenter \( \eta \). More...
 
double phiBE (int sampling) const
 EMB/EMEC combined barycenter \( \varphi \). More...
 
double energyBE (int sampling) const
 EMB/EMEC combined signal. More...
 
bool inBarrel () const
 Returns true if at least one clustered cell in EMB. More...
 
bool inEndcap () const
 Returns true if at least one clustered cell in EMEC. More...
 
void setBarrel (bool barrel)
 Sets EMB indicator. More...
 
void setEndcap (bool endcap)
 Sets EMEC indicator. More...
 
void addBadChannel (const CaloClusterBadChannelData &badChannel)
 Add Bad channel information. More...
 
void resetBadChannel ()
 Reset Bad channel list. More...
 
const badChannelListgetBadChannel () const
 
bool containsBadCells () const
 Check if cluster has any bad channel in it. More...
 
void calculateKine (const bool useweight=true, const bool updateLayers=true)
 Calculate cluster kinematics from contained cells. More...
 
signalstate_t signalState () const
 Retrieve signal state. More...
 
signalstate_t defaultSignalState () const
 Retrieve default signal state. More...
 
virtual bool hasSignalState (signalstate_t s) const
 check if signal state exists for current implementation More...
 
virtual bool isAtSignalState (signalstate_t s) const
 check if we are at the passed state More...
 
data_link_type getMomentStoreLink () const
 
virtual double energy () const
 Return energy. More...
 
double energy_nonvirt () const
 Return energy (nonvirtual version) More...
 
void setRecoStatus (const CaloRecoStatus &recStatus)
 Set the reconstruction status. More...
 
void setRecoStatus (const CaloRecoStatus::StatusIndicator &recIndic)
 Set the reconstruction status indicator (recommended) More...
 
bool checkRecoStatus (const CaloRecoStatus::StatusIndicator &recIndic) const
 Check if a given indicator is set. More...
 
void removeRecoStatus (const CaloRecoStatus::StatusIndicator &recIndic)
 Remove a given indicator. More...
 
void removeRecoStatus ()
 Remove all indicators. More...
 
const CaloRecoStatusgetRecoStatus () const
 Retrieve the reconstruction status. More...
 
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors. More...
 
virtual double px () const
 x component of momentum More...
 
virtual double py () const
 y component of momentum More...
 
virtual double pz () const
 z component of momentum More...
 
virtual double et () const
 transverse energy defined to be e*sin(theta) More...
 
virtual double p () const
 magnitude of 3-momentum. More...
 
virtual double p2 () const
 square of momentum magnitude More...
 
virtual double m2 () const
 mass squared More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double iPt () const
 inverse of transverse momentum More...
 
virtual double rapidity () const
 rapidity More...
 
virtual double cosPhi () const
 cosinus phi More...
 
virtual double sinPhi () const
 sinus phi More...
 
virtual double cotTh () const
 cottan theta More...
 
virtual double cosTh () const
 cosinus theta More...
 
virtual double sinTh () const
 sinus theta More...
 
virtual double tanTh () const
 tan theta More...
 
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is More...
 
virtual std::ostream & dump (std::ostream &out=std::cout) const
 Print I4Momentum content. More...
 
void addCell (const CaloCellContainer *pContainer, const CaloCell *pCell, double weight, size_t iCell=static_cast< size_t >(-1))
 Add a cell with global kinematic update (slow) More...
 
void addCell (const CaloCellContainer *pContainer, size_t &iCell, double weight)
 Add a cell with global kinematic update (fast) More...
 
void addUniqueCell (const CaloCellContainer *theContainer, size_t theIndex, double weight, size_t size_hint=0)
 Add a cell with global kinematic update (fast) More...
 
void addUniqueCellNoKine (const CaloCellContainer *theContainer, size_t theIndex, double weight, size_t size_hint=0)
 Add a cell with no kinematic update (fast) More...
 
void reweightCell (const CaloCell *pCell, double weight)
 Reweight a cell with kinematic update. More...
 
void reweightCell (const CaloCellContainer *pContainer, size_t &iCell, double weight)
 Reweight a cell with kinematic update. More...
 
void reweightCell (cell_iterator &iterCell, double weight)
 Reweight a cell with kinematic update. More...
 
void removeCell (const CaloCell *pCell)
 Remove a cell with kinematic update. More...
 
void removeCell (const CaloCellContainer *pContainer, size_t &iCell)
 Remove a cell with kinematic update. More...
 
void removeCells ()
 Remove all cells without kinematic update. More...
 
double getCellWeight (const CaloCell *pCell) const
 Retrieve the kinematic weight of a given cell. More...
 
double getCellWeight (const CaloCellContainer *pContainer, size_t &iCell) const
 Retrieve the kinematic weight of a given cell. More...
 
double getCellWeight (cell_iterator &iterCell) const
 Retrieve the kinematic weight of a given cell. More...
 
const CaloCellContainergetCellContainer (const CaloCell *pCell) const
 Retrieve the pointer to the original cell container for a given cell. More...
 
const CaloCellContainergetCellContainer (cell_iterator &iterCell) const
 Retrieve the pointer to the original cell container for a given cell. More...
 
bool getCellIndex (const CaloCell *pCell, size_t &iCell) const
 Retrieve the index of a given cell in the cell container. More...
 
bool getCellIndex (cell_iterator &iterCell, size_t &iCell) const
 Retrieve the index of a given cell in the cell container. More...
 
cell_iterator cell_begin () const
 Retrieve a STL-type begin() iterator for the cell store. More...
 
cell_iterator cell_end () const
 Retrieve a STL-type end() iterator for the cell store. More...
 
unsigned int getNumberOfCells () const
 Return the number of cells in the store. More...
 
void putElement (const CaloCellContainer *pContainer, const CaloCell *pCell, const double &weight=double(1.))
 add element to the Navigable: use pointer More...
 
void putElement (const CaloCellContainer *pContainer, size_t &iCell, const double &weight=double(1.))
 add element to the Navigable: use element index (direct access!) More...
 
void insertElement (const CaloCellContainer *pContainer, const CaloCell *pCell, const double &weight=double(1.))
 insert element without checking if already in store: use element pointer More...
 
void insertElement (const CaloCellContainer *pContainer, size_t &iCell, const double &weight=double(1.))
 insert element without checking if already in store: use index More...
 
void insertElement (const CaloCellContainer *pContainer, size_t iCell, const double weight, size_t size_hint)
 same, with a size hint. More...
 
void insertElement (const ElementLink< CaloCellContainer > &el, const double weight, size_t size_hint=0)
 Insert element via ElementLink. More...
 
void reweight (const CaloCell *pCell, const double &weight=double(1.))
 re-weight (overwrite old weight) More...
 
void reweight (const CaloCellContainer *pContainer, size_t &iCell, const double &weight=double(1.))
 re-weight (overwrite old weight) More...
 
void reweight (object_iter &cellIter, const double &weight=double(1.))
 re-weight (overwrite old weight) More...
 
bool remove (const CaloCell *pCell)
 remove object from the Navigable More...
 
bool remove (const CaloCellContainer *pContainer, size_t &iCell)
 remove object from the Navigable More...
 
bool removeAll ()
 remove all objects from the Navigable More...
 
bool contains (const CaloCell *pCell) const
 check if constituent is already there
More...
 
bool contains (const CaloCellContainer *pContainer, size_t &iCell) const
 check if constituent is already there
More...
 
virtual object_iter begin () const
 begin iterator for public object access More...
 
virtual object_iter end () const
 end iterator for public object access More...
 
virtual unsigned int nCells () const
 size of object access More...
 
double getParameter (const CaloCell *pCell) const
 public container access: relational parameter retrieval More...
 
double getParameter (const CaloCellContainer *pContainer, size_t &iCell) const
 public container access: relational parameter retrieval More...
 
double getParameter (object_iter &cellIter) const
 public container access: relational parameter retrieval More...
 
const CaloCellContainergetContainer (const CaloCell *pCell) const
 public container access: retrieve Container for given object pointer More...
 
const CaloCellContainergetContainer (object_iter cellIter) const
 public container access: retrieve Container for given object iterator More...
 
bool getIndex (const CaloCell *pCell, size_t &iCell) const
 get index of child in original container, given a pointer More...
 
bool getIndex (object_iter cellIter, size_t &iCell) const
 get index of child in original container, given an iterator More...
 
virtual void fillToken (INavigationToken &iToken) const
 fill token for navigation More...
 
virtual void fillToken (INavigationToken &iToken, const std::any &rPar) const
 fill token for navigation More...
 
virtual bool isCellLinkValid () const
 
const cell_link_typecellLink () const
 Access to underlying link. More...
 
void resetCellLink (const cell_link_type &cellLink)
 
virtual AthenaBarCode_t getAthenaBarCode () const
 
virtual void setAthenaBarCode (AthenaBarCode_t)
 
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &) const
 
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
 
virtual AthenaBarCodeVersion_t getVersion () const
 
virtual void newVersion ()
 
virtual void setVersion (AthenaBarCodeVersion_t)
 
virtual AthenaBarCode_t getAthenaBarCode () const
 
virtual void setAthenaBarCode (AthenaBarCode_t id)
 
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &obj) const
 
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &obj) const
 
virtual AthenaBarCodeVersion_t getVersion () const
 
virtual void newVersion ()
 
virtual void setVersion (AthenaBarCodeVersion_t newversion)
 
std::ostream & dump (std::ostream &out) const
 
bool createdInCurrentJob () const
 
AthenaBarCode_t getReserveBits () const
 
void setReserveBits (AthenaBarCode_t id)
 

Static Public Member Functions

static void setDefaultHash (const char *jobid)
 

Static Public Attributes

static const AthenaBarCode_t UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
 
static const AthenaBarCode_t UNDEFINEDVERSION = UNDEFINEDBARCODE
 
static const unsigned short TotalBits = 64
 
static const unsigned short UUIDBits = 32
 
static const unsigned short CounterBits = 26
 
static const unsigned short VersionBits = 4
 
static const unsigned short ReserveBits = 2
 
static const unsigned short SUUIDBits = 0
 
static const unsigned short SCounterBits = UUIDBits
 
static const unsigned short SVersionBits = UUIDBits+CounterBits
 
static const unsigned short SReserveBits = UUIDBits+CounterBits+VersionBits
 

Protected Types

typedef CaloClusterLinkTemplate< CaloShowerContainer >::link_type data_link_type
 

Protected Member Functions

virtual void updateKine (const CaloCell *theCell, double weight)
 Updates cluster kinematics when cell is added. More...
 
double variableBE (const variable_type &theVariable, const int &samplingIndex) const
 Rewrite \( e_{0} \varphi_{0} + e_{1} \varphi_{1} \) as \( \left( e_{0} + e_{1} \right) \varphi_{0} + e_{1} \left( \varphi_{1} - \varphi_{0} \right) \) for \( \varphi \) calculation. More...
 
CaloSamplingDatagetDataStore (const variable_type &theVariable, bool useLink=true)
 
const CaloSamplingDatagetDataStore (const variable_type &theVariable, bool useLink=false) const
 
CaloClusterMomentStoregetMomentStore (bool useLink=true)
 
const CaloClusterMomentStoregetMomentStore (bool useLink=false) const
 
const CaloClusterMomentStoregetMomentStore (const moment_type &theMoment, bool useLink=false) const
 
CaloClusterMomentStoregetMomentStore (const moment_type &theMoment, bool useLink=true)
 
bool getMomentStorePtrs (const CaloClusterMomentStore *&pFirstStore, const CaloClusterMomentStore *&pSecndStore, bool useLink) const
 
bool setDataLink (CaloShowerContainer *pDataLink)
 Set element link for shower data. More...
 
bool setStores (CaloShower *pData, CaloCellLink *pLink, bool ownStores=true)
 Setup internal store. More...
 
bool setDataStore (CaloShower *pData, bool ownStores=true)
 Setup data store. More...
 
virtual bool setSignalState (signalstate_t s)
 Sets signal state. More...
 
virtual void resetSignalState ()
 reset the signal state More...
 
bool setDefaultSignalState (signalstate_t s)
 Sets default signal state. More...
 
CaloCellLinkgetCellLink ()
 
const CaloCellLinkgetCellLink () const
 
bool setCellLink (CaloCellLinkContainer *pLink)
 
bool setLinkStore (CaloCellLink *pLink, bool ownStores=true)
 
CaloCellLinkgetCellLinkPtr ()
 
const CaloCellLinkgetCellLinkPtr () const
 
void setBits (unsigned short startbit, unsigned short nbits, AthenaBarCode_t id, AthenaBarCode_t &bc) const
 
AthenaBarCode_t getBits (unsigned short startbit, unsigned short nbits) const
 
void initABC () const
 

Protected Attributes

CaloSamplingData m_dataStore
 {\ brief Cached Stores More...
 
CaloClusterMomentStore m_momentStore
 cluster moments More...
 
bool m_ownDataStore
 } More...
 
data_link_type m_dataLink
 { More...
 
CaloShowerm_shower
 } More...
 
double m_basicSignal
 Stores basic energy signal. More...
 
double m_time
 Cluster timing. More...
 
unsigned int m_samplingPattern
 Sampling pattern. More...
 
CaloRecoStatus m_status
 Calorimeter reconstruction status. More...
 
double m_e
 
double m_eta
 
double m_phi
 
double m_m
 
bool m_ownLinkStore
 

Static Protected Attributes

static const double m_errorValue = -999.
 Internal error return for real numbers. More...
 

Private Member Functions

template<class InputIterator >
void maybeSetVariable (variable_type varType, InputIterator beg, InputIterator end)
 Set variables of a given type in all samplings at once, taking locking into account. More...
 
double getRawE () const
 Access to raw energy. More...
 
double getRawEta () const
 Access to raw eta. More...
 
double getRawPhi () const
 Access to raw phi. More...
 
double getRawM () const
 Access to raw mass. More...
 
double getCalE () const
 Access to calibrated (LC) energy. More...
 
double getCalEta () const
 Access to calibrated (LC) eta. More...
 
double getCalPhi () const
 Access to calibrated (LC) phi. More...
 
double getCalM () const
 Access to calibrated (LC) m. More...
 
double getAltE () const
 Access to calibrated (cell weight) energy. More...
 
double getAltEta () const
 Access to calibrated (cell weight) eta. More...
 
double getAltPhi () const
 Access to calibrated (cell weight) phi. More...
 
double getAltM () const
 Access to calibrated (cell weight) m. More...
 
void setRawE (double e)
 Set raw energy. More...
 
void setRawEta (double eta)
 Set raw eta. More...
 
void setRawPhi (double phi)
 Set raw phi. More...
 
void setRawM (double m)
 Set raw m. More...
 
void setCalE (double e)
 Set calibrated (LC) energy. More...
 
void setCalEta (double eta)
 Set calibrated (LC) eta. More...
 
void setCalPhi (double phi)
 Set calibrated (LC) phi. More...
 
void setCalM (double m)
 Set calibrated (LC) m. More...
 
void setAltE (double e)
 Set calibrated (cell weight) energy. More...
 
void setAltEta (double eta)
 Set calibrated (cell weight) eta. More...
 
void setAltPhi (double phi)
 Set calibrated (cell weight) phi. More...
 
void setAltM (double m)
 Set calibrated (cell weight) m. More...
 
bool setStateRaw ()
 Helper to switch to raw state. More...
 
bool setStateCal ()
 Helper to switch to calibrated (LC) state. More...
 
bool setStateAlt ()
 Helper to switch to calibrated (cell weight) state. More...
 
CaloClusteroperator= (const CaloCluster &)
 Disallow (avoid coverity warning). More...
 
AthenaBarCode_t combineWithUUIDHash (const AthenaBarCode_t &) const
 
void setUUIDHash (AthenaBarCode_t uuidhash)
 
AthenaBarCode_t hasUUIDHash () const
 
AthenaBarCode_t getUUIDHash () const
 

Static Private Member Functions

static AthenaBarCode_t hashUUID (const char *)
 
static AthenaBarCode_t getDefaultHash (const char *jobid=nullptr)
 
static AthenaBarCode_t makeDefaultHash (const char *jobid)
 

Private Attributes

bool m_barrel
 Flag is true if at least one cell in EMB. More...
 
bool m_endcap
 Flag is true if at least one cell in EMB. More...
 
unsigned int m_clusterSize
 Cluster size (e.g. More...
 
double m_eta0
 Cluster seed \( \eta \)
More...
 
double m_phi0
 Cluster seed \( \varphi \)
More...
 
double m_timeNorm
 Stores the normalization for time calculation e.g. More...
 
double m_posNorm
 Stores the normalization e.g. More...
 
std::vector< double > m_posSamNorm
 Stores the normalization e.g. More...
 
int m_nBarrel
 Counter for number of barrel cells with non-zero weight and energy. More...
 
int m_nEndcap
 Counter for number of endcap cells with non-zero weight and energy. More...
 
unsigned int m_lockPattern
 Variable lock pattern. More...
 
badChannelList m_badChannelData
 
GET_VALUE m_getE {}
 Pointer to getter functions. More...
 
GET_VALUE m_getEta {}
 Pointer to getter functions. More...
 
GET_VALUE m_getPhi {}
 Pointer to getter functions. More...
 
GET_VALUE m_getM {}
 Pointer to getter functions. More...
 
SET_VALUE m_setE {}
 Pointer to setter functions. More...
 
SET_VALUE m_setEta {}
 Pointer to setter functions. More...
 
SET_VALUE m_setPhi {}
 Pointer to setter functions. More...
 
SET_VALUE m_setM {}
 Pointer to setter functions. More...
 
signalstate_t m_signalState
 Stores actual signal state. More...
 
signalstate_t m_defSigState
 Stores default signal state. More...
 
double m_rawE
 Stores raw signal. More...
 
double m_rawEta
 Stores raw signal. More...
 
double m_rawPhi
 Stores raw signal. More...
 
double m_rawM
 Stores raw signal. More...
 
double m_altE
 Stores calibrated (cell weight) signal. More...
 
double m_altEta
 Stores calibrated (cell weight) signal. More...
 
double m_altPhi
 Stores calibrated (cell weight) signal. More...
 
double m_altM
 Stores calibrated (cell weight) signal. More...
 
cell_link_type m_cellLink
 Local pointer to cell store. More...
 
std::atomic< AthenaBarCode_tm_barcode
 

Static Private Attributes

static std::atomic< AthenaBarCode_tm_barcodeCounter = 0
 

Friends

class CaloClusterStoreHelper
 
struct CaloClusterSignalState
 
class CaloClusterContainerCnv_p1
 
class CaloClusterContainerCnv_p2
 
class CaloClusterContainerCnv_p3
 
class CaloClusterContainerCnv_p4
 
class CaloClusterContainerCnv_p5
 
class CaloClusterContainerCnv_p6
 
class CaloClusterContainerCnv_p7
 
class CaloClusterContainerCnvTest_p6
 
class CaloClusterContainerCnvTest_p7
 

Detailed Description

Principal data class for CaloCell clusters.

Data class for CaloCell clusters

Author
H. Ma hma@b.nosp@m.nl.g.nosp@m.ov (original author)
P. Loch loch@.nosp@m.phys.nosp@m.ics.a.nosp@m.rizo.nosp@m.na.ed.nosp@m.u
S. Menke Sven..nosp@m.Menk.nosp@m.e@cer.nosp@m.n.ch
M. Boonekamp Maart.nosp@m.en.B.nosp@m.oonek.nosp@m.amp@.nosp@m.cern..nosp@m.ch
Date
April 1, 2005
July 18, 2005 significant updates in cluster moment handling
September 23, 2005 complete change of underlying store structure
May 1, 2009 third signal state added (PL)
Version
6

CaloCluster stores a list of CaloCell s with some correlated signal. In all generality this object describes an energy blob inside the calorimeter, with its location completely defined by the cell content. In particular, there is no assumption on any detector view (regular binning in a given coordinate system or similar) needed or used for the cluster description (unlike for CaloTower , for example). In general CaloCluster behaves like a navigable object with the default 4-momentum representation.

Remarks
The links to CaloCell objects are now stored externally in a CaloCellLink object. Also, a configurable set of sampling vaiables can be selected and stored directly in the cluster. The rest will automatically be stored in a associated CaloSamplingData object, which is linked to the cluster via a CaloShower object. Cluster moments are also kept in a split store following the same philosophy. All these features are completely transparent to clients of CaloCluster.
Todo:

Definition at line 74 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

Member Typedef Documentation

◆ badChannelList

Get Bad Channel information.

Definition at line 458 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ cell_iterator

Iterator on CaloCell s.

Definition at line 115 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ cell_link_type

Definition at line 146 of file CaloClusterNavigable.h.

◆ data_link_type

◆ GET_VALUE

typedef double(CaloCluster::* CaloCluster::GET_VALUE) () const

◆ moment_iterator

Moment iterator type for CaloCluster clients.

Definition at line 205 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ moment_iterator_i

Cluster moment store iterator type.

Note
This type is only used internally, and can easily change in future implementations. DO NOT USE!

Definition at line 138 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ moment_store

Store type for cluster moments.

Definition at line 128 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ moment_type

Cluster moment indicator type.

Definition at line 130 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ moment_value

Cluster moment value type.

Definition at line 132 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ MomentType

◆ object_iter

external cell iterator type

Definition at line 51 of file CaloClusterNavigable.h.

◆ sampling_type

Sampling indicator.

Definition at line 118 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ SET_VALUE

typedef void(CaloCluster::* CaloCluster::SET_VALUE) (double v)

◆ signalstate_t

◆ statename_t

◆ value_type

typedef double CaloCluster::value_type

Variable value type.

Definition at line 124 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ variable_type

Data type indicator.

Definition at line 121 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

Member Enumeration Documentation

◆ ClusterSize

enums to identify different cluster size

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 
Unknown 

Definition at line 85 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

85  {
86  // electrons
87  SW_55ele = 1,
88  SW_35ele = 2,
89  SW_37ele = 3,
90  // photons
91  SW_55gam = 4,
92  SW_35gam = 5,
93  SW_37gam = 6,
94  // early converted photons
95  SW_55Econv = 7,
96  SW_35Econv = 8,
97  SW_37Econv = 9,
98  // soft electrons
99  SW_softe = 10,
100  // topological clusters
101  Topo_420 = 11,
102  Topo_633 = 12,
103  // transient cluster for AODCellContainer
104  SW_7_11 = 13,
105  Unknown = 99
106  };

◆ Kind

enum I4Momentum::Kind
inherited
Enumerator
P4EETAPHIM 
P4IPTCOTTHPHIM 
P4PTETAPHIM 
P4PXPYPZE 
UNKNOWN 

Definition at line 33 of file I4Momentum.h.

Constructor & Destructor Documentation

◆ CaloCluster() [1/3]

CaloCluster::CaloCluster ( double  eta0 = 0,
double  phi0 = 0,
unsigned int  varTypePattern = 0x00000000,
unsigned int  clusterSize = CaloCluster::SW_55ele 
)

Constructor.

Definition at line 73 of file CaloCluster.cxx.

78  m_dataStore(varTypePattern),
79  m_ownDataStore(false),
80  m_shower(nullptr),
81  m_basicSignal(0.),
82  m_time(0.),
84  m_barrel (false),
85  m_endcap (false),
86  m_clusterSize(clusterSize),
87  m_eta0 (eta0),
88  m_phi0 (phi0),
89  m_timeNorm(0.),
90  m_posNorm(0.),
92  m_nBarrel(0),
93  m_nEndcap(0),
94  m_lockPattern(0x00000000),
95  m_rawE(0.),
96  m_rawEta(0.),
97  m_rawPhi(0.),
98  m_rawM(0.),
99  m_altE(0.),
100  m_altEta(0.),
101  m_altPhi(0.),
102  m_altM(0.)
103 {
105  m_badChannelData.clear();
106 }

◆ ~CaloCluster()

CaloCluster::~CaloCluster ( )
virtual

Destructor.

The cluster destructs the associated external data objects CaloCellLink and CaloShower as long as it owns them.

Ownership is lost once these objects have been pushed into their corresponding storable collection. This is checked by the cluster on destruction.

Definition at line 248 of file CaloCluster.cxx.

249 {
250  //if ( m_ownDataStore && *m_dataLink != 0 ) delete *m_dataLink;
251  if ( m_ownDataStore && m_dataLink.isValid() ) delete *m_dataLink;
252 }

◆ CaloCluster() [2/3]

CaloCluster::CaloCluster ( const CaloCluster pCluster)

Copy constructor.

Parameters
pClusterpointer to non-modifiable cluster (origin)

The copy constructor for CaloCluster creates explicit copies of all data members, with the exception of the links to the external data objects. These are only partly copied, meaning the data object itself is copied (new instance), but the container information is NOT copied. The new cluster therefore owns the new external data objects until those are explictely pushed into a container. Then the owenership is transferred to the container.

Definition at line 120 of file CaloCluster.cxx.

123  m_dataStore(pCluster->m_dataStore),
124  m_momentStore(pCluster->m_momentStore),
125  m_ownDataStore(true),
126  m_basicSignal(pCluster->m_basicSignal),
127  m_time(pCluster->m_time),
129  m_barrel(pCluster->m_barrel),
130  m_endcap(pCluster->m_endcap),
131  m_clusterSize(pCluster->m_clusterSize),
132  m_eta0(pCluster->m_eta0),
133  m_phi0(pCluster->m_phi0),
134  m_timeNorm(pCluster->m_timeNorm),
135  m_posNorm(pCluster->m_posNorm),
136  m_posSamNorm(pCluster->m_posSamNorm),
137  m_nBarrel(pCluster->m_nBarrel),
138  m_nEndcap(pCluster->m_nEndcap),
139  m_lockPattern(pCluster->m_lockPattern),
140  m_rawE(pCluster->m_rawE),
141  m_rawEta(pCluster->m_rawEta),
142  m_rawPhi(pCluster->m_rawPhi),
143  m_rawM(pCluster->m_rawM),
144  m_altE(pCluster->m_altE),
145  m_altEta(pCluster->m_altEta),
146  m_altPhi(pCluster->m_altPhi),
147  m_altM(pCluster->m_altM)
148 {
149  signalstate_t s = pCluster->m_defSigState;
150  if (!this->hasSignalState(s)) s = statename_t::CALIBRATED;
151  this->setDefaultSignalState(s);
152  this->setSignalState(s);
153  // deep copy external data
154  bool isExternalShowerThere = false;
155  if ( pCluster->m_dataLink.isValid()) {
156  if (*(pCluster->m_dataLink) != nullptr) isExternalShowerThere = true;
157  }
158  CaloShower* pData = isExternalShowerThere
159  ? new CaloShower(*(pCluster->m_dataLink)) : new CaloShower();
160  m_shower = pData;
161  CaloCellLink* pLink = pCluster->getCellLink() != nullptr ? new CaloCellLink(pCluster->getCellLink()) : new CaloCellLink();
162  this->setStores(pData,pLink,
164  P4EEtaPhiM::setE(pCluster->m_e);
165  P4EEtaPhiM::setEta(pCluster->m_eta);
166  P4EEtaPhiM::setPhi(pCluster->m_phi);
167  P4EEtaPhiM::setM(pCluster->m_m);
168  this->setRecoStatus(pCluster->getRecoStatus());
169  m_badChannelData.reserve(pCluster->m_badChannelData.size());
170  for (unsigned int i=0;i<pCluster->m_badChannelData.size();i++) {
172  }
173 }

◆ CaloCluster() [3/3]

CaloCluster::CaloCluster ( const CaloCluster rCluster)

Definition at line 175 of file CaloCluster.cxx.

176  : I4Momentum(rCluster),
177  P4EEtaPhiMBase(rCluster),
178  INavigable(rCluster),
179  IAthenaBarCode(rCluster),
180  INavigable4Momentum(rCluster),
181  CaloCompositeKineBase(rCluster),
183  ISignalState(),
184  m_dataStore(rCluster.m_dataStore),
185  m_momentStore(rCluster.m_momentStore),
186  m_ownDataStore(true),
187  m_basicSignal(rCluster.m_basicSignal),
188  m_time(rCluster.m_time),
190  m_barrel(rCluster.m_barrel),
191  m_endcap(rCluster.m_endcap),
192  m_clusterSize(rCluster.m_clusterSize),
193  m_eta0(rCluster.m_eta0),
194  m_phi0(rCluster.m_phi0),
195  m_timeNorm(rCluster.m_posNorm),
196  m_posNorm(rCluster.m_posNorm),
197  m_posSamNorm(rCluster.m_posSamNorm),
198  m_nBarrel(rCluster.m_nBarrel),
199  m_nEndcap(rCluster.m_nEndcap),
200  m_lockPattern(rCluster.m_lockPattern),
201  m_rawE(rCluster.m_rawE),
202  m_rawEta(rCluster.m_rawEta),
203  m_rawPhi(rCluster.m_rawPhi),
204  m_rawM(rCluster.m_rawM),
205  m_altE(rCluster.m_altE),
206  m_altEta(rCluster.m_altEta),
207  m_altPhi(rCluster.m_altPhi),
208  m_altM(rCluster.m_altM)
209 {
210  signalstate_t s = rCluster.m_defSigState;
211  if (!this->hasSignalState(s)) s = statename_t::CALIBRATED;
212  this->setDefaultSignalState(s);
213  this->setSignalState(s);
214  // deep copy external data
215  bool isExternalShowerThere = false;
216  if ( rCluster.m_dataLink.isValid()) {
217  if (*(rCluster.m_dataLink) != nullptr) isExternalShowerThere = true;
218  }
219  CaloShower* pData = isExternalShowerThere
220  ? new CaloShower(*(rCluster.m_dataLink)) : new CaloShower();
221  m_shower = pData;
222  CaloCellLink* pLink = rCluster.getCellLink() != nullptr ? new CaloCellLink(rCluster.getCellLink()) : new CaloCellLink();
223  this->setStores(pData,pLink,
225  // energy etc may be corrected, so overwrite!
226  P4EEtaPhiM::setE(rCluster.m_e);
227  P4EEtaPhiM::setEta(rCluster.m_eta);
228  P4EEtaPhiM::setPhi(rCluster.m_phi);
229  P4EEtaPhiM::setM(rCluster.m_m);
230  this->setRecoStatus(rCluster.getRecoStatus());
231  m_badChannelData.reserve(rCluster.m_badChannelData.size());
232  for (unsigned int i=0;i<rCluster.m_badChannelData.size();i++) {
234  }
235 }

Member Function Documentation

◆ addBadChannel()

void CaloCluster::addBadChannel ( const CaloClusterBadChannelData badChannel)

Add Bad channel information.

Definition at line 1424 of file CaloCluster.cxx.

1425 {
1426  m_badChannelData.push_back(badChannel);
1427 }

◆ addCell() [1/2]

void CaloCompositeCellBase< CaloClusterNavigable >::addCell ( const CaloCellContainer pContainer,
const CaloCell pCell,
double  weight,
size_t  iCell = static_cast<size_t>(-1) 
)
inherited

Add a cell with global kinematic update (slow)

Parameters
pContainerinput pointer to a CaloCellContainer (unchanged)
pCellinput pointer to a CaloCell (unchanged)
weightsignal weight asociated with this cell
iCellinput index of the CaloCell in the CaloCellContainer. This may be omitted, but if supplied, a potentially slow search of the CaloCellContainer for the CaloCell may be avoided.

Adding a cell usually changes the global kinematics. The concrete implementation is left to the updateKine method, which needs to be implemented by derived classes.

Adding cells without updating the global kinematics is also possible by using the corresponding putElement method in the Navigable<CaloCellContainer,double> base class.

◆ addCell() [2/2]

void CaloCompositeCellBase< CaloClusterNavigable >::addCell ( const CaloCellContainer pContainer,
size_t &  iCell,
double  weight 
)
inherited

Add a cell with global kinematic update (fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
pContainerinput pointer to a CaloCellContainer (unchanged)
iCellinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell

Faster as index is already available, but has to rely on client to provide the correct (and valid) index.

◆ addUniqueCell()

void CaloCompositeCellBase< CaloClusterNavigable >::addUniqueCell ( const CaloCellContainer theContainer,
size_t  theIndex,
double  weight,
size_t  size_hint = 0 
)
inherited

Add a cell with global kinematic update (fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell
size_hintif non-zero, a hint about many cells are likely to be in the cluster.

Faster as index is already available, but has to rely on client to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

◆ addUniqueCellNoKine()

void CaloCompositeCellBase< CaloClusterNavigable >::addUniqueCellNoKine ( const CaloCellContainer theContainer,
size_t  theIndex,
double  weight,
size_t  size_hint = 0 
)
inherited

Add a cell with no kinematic update (fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell
size_hintif non-zero, a hint about many cells are likely to be in the cluster.

Faster as index is already available, but has to rely on client to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

◆ allLocked()

bool CaloCluster::allLocked ( ) const
inline

Check if all variables are locked.

Definition at line 1289 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1290 {
1291  return
1294 }

◆ begin()

CaloClusterNavigable::object_iter CaloClusterNavigable::begin ( ) const
inlinevirtualinherited

begin iterator for public object access

Definition at line 303 of file CaloClusterNavigable.h.

304 {
305  return (this->getCellLink())->begin();
306 }

◆ beginMoment()

CaloCluster::moment_iterator CaloCluster::beginMoment ( bool  useLink = true) const

First iterator on moment store.

Definition at line 1119 of file CaloCluster.cxx.

1120 {
1121  moment_iterator iMom;
1122  // get store pointers
1123  const CaloClusterMomentStore* pFirstMomStore = nullptr;
1124  const CaloClusterMomentStore* pSecndMomStore = nullptr;
1125  // try to return valid iterator to first data object...
1126  if ( this->getMomentStorePtrs(pFirstMomStore,pSecndMomStore,
1127  useLink) ) //DEBUG,"begin") )
1128  {
1129  iMom = moment_iterator(pFirstMomStore->begin(),pFirstMomStore,
1130  pSecndMomStore);
1131  }
1132  else
1133  {
1134  iMom = moment_iterator();
1135  }
1136 
1137  return iMom;
1138 }

◆ calculateKine()

void CaloCluster::calculateKine ( const bool  useweight = true,
const bool  updateLayers = true 
)

Calculate cluster kinematics from contained cells.

Definition at line 736 of file CaloCluster.cxx.

737 {
738  //static CaloPhiRange range;
739 
740  // update global kinematics
741  //
742  // for the update of the position the normalization is not a trival
743  // thing. The previous implementation used the sum of weighted
744  // energies as normalization. This leads to unphysical eta and phi
745  // values in case negative energies are added in. The new algorithm
746  // takes therefore |E| instead of E which gives the same eta and phi
747  // as before for the 2 cases where all cells are negative or all
748  // cells are positive. In the mixed case it will give the direction
749  // of activity in the calorimeter.
750 
751  m_posNorm = 0;
752  m_nBarrel = 0;
753  m_nEndcap = 0;
754  m_timeNorm = 0.;
755 
756  std::fill (m_posSamNorm.begin(), m_posSamNorm.end(), 0);
757 
758  CellAccum accum (m_posNorm, m_posSamNorm, m_nBarrel, m_nEndcap, m_timeNorm);
759  accum.theNewPhi = this->phi();
760  if (useweight)
761  accumCells (*this, accum, AccumWeight(this));
762  else
763  accumCells (*this, accum, AccumNoWeight());
764 
765  if ( m_posNorm != 0. )
766  {
767  double inorm = 1 / m_posNorm;
768  this->setEta(accum.theNewEta * inorm);
769  this->setPhi(CaloPhiRange::fix(accum.theNewPhi * inorm));
770  }
771  else
772  {
773  this->setEta(0);
774  this->setPhi(0);
775  }
776 
777  this->setE(accum.theNewEnergy);
778 
779  if ( m_timeNorm != 0. )
780  this->setTime(accum.theNewTime/m_timeNorm);
781  else
782  this->setTime(0);
783 
784 
786  // Check Sampling Variable Updates //
788 
789  if ( !updateLayers ) return;
790  if ( this->allLocked() ) return;
791  // update sampling quantities
792 
793  for(int i=0;i<(int)CaloSampling::Unknown;i++) {
794  if ( !accum.PresenceInSample[i] ) continue;
795  // check sampling bit
798  if ( m_posSamNorm[i] != 0 ) {
799  double inorm = 1 / m_posSamNorm[i];
800  accum.EtaInSample[i] *= inorm;
801  accum.PhiInSample[i] = CaloPhiRange::fix (accum.PhiInSample[i] * inorm);
802  }
803  }
804 
805 #define SETVAR(v, a) maybeSetVariable(v, a, (a)+sizeof(a)/sizeof((a)[0]))
806  SETVAR (CaloVariableType::ENERGY, accum.EnergyInSample);
807  SETVAR (CaloVariableType::ETA, accum.EtaInSample);
808  SETVAR (CaloVariableType::PHI, accum.PhiInSample);
809  SETVAR (CaloVariableType::MAX_ENERGY, accum.MaxEnergyInSample);
810  SETVAR (CaloVariableType::MAX_ETA, accum.EtaMaxEnergyInSample);
811  SETVAR (CaloVariableType::MAX_PHI, accum.PhiMaxEnergyInSample);
812 #undef SETVAR
813 
814  if ( m_nBarrel < 0 ) m_nBarrel = 0;
815  if ( m_nEndcap < 0 ) m_nEndcap = 0;
816 
817  m_barrel = (m_nBarrel>0);
818  m_endcap = (m_nEndcap>0);
819 }

◆ cell_begin()

Retrieve a STL-type begin() iterator for the cell store.

◆ cell_end()

Retrieve a STL-type end() iterator for the cell store.

◆ cellLink()

const cell_link_type& CaloClusterNavigable::cellLink ( ) const
inlineinherited

Access to underlying link.

Definition at line 149 of file CaloClusterNavigable.h.

149 { return m_cellLink; }

◆ checkRecoStatus()

bool CaloCompositeKineBase::checkRecoStatus ( const CaloRecoStatus::StatusIndicator recIndic) const
inlineinherited

Check if a given indicator is set.

Definition at line 91 of file CaloCompositeKineBase.h.

93 { return m_status.checkStatus(recIndic); }

◆ combineWithUUIDHash()

AthenaBarCode_t AthenaBarCodeImpl::combineWithUUIDHash ( const AthenaBarCode_t hash) const
inlineprivateinherited

Definition at line 119 of file AthenaBarCodeImpl.h.

120  {
121 
122  AthenaBarCode_t tmp = 0;
123  AthenaBarCode_t lowerh = ~tmp >> (TotalBits
124  - UUIDBits);
125  AthenaBarCode_t higherh = ~tmp << (UUIDBits);
126 
127  AthenaBarCode_t lower = m_barcode & lowerh;
128  AthenaBarCode_t higher = hash & higherh;
129 
130  /*
131  std::cout << "AthenaBarCodeImpl::combineWithHash::hash=" << std::hex
132  << hash << " lower=" << lower << " higher=" << higher << " lowerh="
133  << lowerh << " higherh=" << higherh << " barcode=" << (lower
134  | higher) << std::endl;
135  */
136  return lower | higher;
137 
138 }

◆ contains() [1/2]

bool CaloClusterNavigable::contains ( const CaloCell pCell) const
inlineinherited

check if constituent is already there

Definition at line 290 of file CaloClusterNavigable.h.

291 {
292  return (this->getCellLink())->contains(pCell);
293 }

◆ contains() [2/2]

bool CaloClusterNavigable::contains ( const CaloCellContainer pContainer,
size_t &  iCell 
) const
inlineinherited

check if constituent is already there

Definition at line 296 of file CaloClusterNavigable.h.

298 {
299  return (this->getCellLink())->contains(pContainer,iCell);
300 }

◆ containsBadCells()

bool CaloCluster::containsBadCells ( ) const
inline

Check if cluster has any bad channel in it.

Definition at line 1300 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1300  {
1301  return !(this->getBadChannel()->empty());
1302 }

◆ cosPhi()

double P4EEtaPhiMBase::cosPhi ( ) const
virtualinherited

cosinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 54 of file P4EEtaPhiMBase.cxx.

55 {
56  return std::cos(this->phi());
57 }

◆ cosTh()

double P4EEtaPhiMBase::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 82 of file P4EEtaPhiMBase.cxx.

83 {
84  return std::tanh(this->eta());
85 }

◆ cotTh()

double P4EEtaPhiMBase::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 77 of file P4EEtaPhiMBase.cxx.

78 {
79  return std::sinh(this->eta());
80 }

◆ createdInCurrentJob()

bool AthenaBarCodeImpl::createdInCurrentJob ( ) const
inherited

Definition at line 181 of file AthenaBarCodeImpl.cxx.

181  {
183  initABC();
184 
185  //FIXME: it is possible that m_defaultHash is not yet initialized.
186  return getUUIDHash() == getDefaultHash();
187 }

◆ defaultSignalState()

CaloCluster::signalstate_t CaloCluster::defaultSignalState ( ) const
inline

Retrieve default signal state.

Definition at line 862 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

863 { return m_defSigState; }

◆ dump() [1/2]

std::ostream & AthenaBarCodeImpl::dump ( std::ostream &  out) const
inherited

Definition at line 172 of file AthenaBarCodeImpl.cxx.

172  {
174  initABC();
175 
176  out << "\n[AthenaBarCode]= " << std::hex << (m_barcode) << std::dec << std::endl;
177  return out;
178 }

◆ dump() [2/2]

std::ostream & P4EEtaPhiMBase::dump ( std::ostream &  out = std::cout) const
virtualinherited

Print I4Momentum content.

Implements I4Momentum.

Definition at line 159 of file P4EEtaPhiMBase.cxx.

160 {
161 
162  std::stringstream outx;
163  outx << "[e,eta,phi,m] ="
164  << std::right << std::scientific << std::setprecision(8)
165  << std::setw(16) << this->e()
166  << std::setw(16) << this->eta()
167  << std::setw(16) << this->phi()
168  << std::setw(16) << this->m();
169 
170  out<<outx.str();
171 
172  return out;
173 }

◆ e() [1/2]

double CaloCluster::e ( ) const
inlinevirtual

Retrieve energy independent of signal state.

Implements I4Momentum.

Definition at line 753 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

754 { return (this->*m_getE)(); }

◆ e() [2/2]

double CaloCluster::e ( signalstate_t  s) const
inline

Retrieve energy for a specific signal state.

Definition at line 777 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

778 {
779  if (!hasSignalState(s)) return m_errorValue;
780  switch (s) {
782  return P4EEtaPhiM::e();
784  return m_rawE;
786  return m_altE;
787  default:
788  return m_errorValue;
789  }
790 }

◆ end()

CaloClusterNavigable::object_iter CaloClusterNavigable::end ( ) const
inlinevirtualinherited

end iterator for public object access

Definition at line 309 of file CaloClusterNavigable.h.

310 {
311  return (this->getCellLink())->end();
312 }

◆ endMoment()

CaloCluster::moment_iterator CaloCluster::endMoment ( bool  useLink = true) const

Last iterator on moment store.

Definition at line 1141 of file CaloCluster.cxx.

1142 {
1143  const CaloClusterMomentStore* pFirstMomStore = nullptr;
1144  const CaloClusterMomentStore* pSecndMomStore = nullptr;
1145  if ( this->getMomentStorePtrs(pFirstMomStore,pSecndMomStore,useLink) )
1146  //DEBUG,"end") )
1147  {
1149  pSecndMomStore != nullptr && pSecndMomStore->size() > 0
1150  ? pSecndMomStore->end()
1151  : pFirstMomStore->end();
1152  return moment_iterator(lMom,pFirstMomStore,pSecndMomStore);
1153  }
1154  else
1155  {
1156  return {};
1157  }
1158 }

◆ energy()

double CaloCompositeKineBase::energy ( ) const
inlinevirtualinherited

Return energy.

Definition at line 70 of file CaloCompositeKineBase.h.

71 { return this->e(); }

◆ energy_max()

double CaloCluster::energy_max ( sampling_type  sampling) const
inline

Retrieve maximum cell energy in given sampling.

Parameters
samplingsampling indicator

Returns energy of cell with maximum signal in sampling.

Warning
Depreciated. This method should not be used anymore. Use getVariable(CaloVariableType::MAX_ENERGY,...) instead.

Definition at line 1096 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1097 {
1098  return this->isEMSampling(sampling)
1099  ? this->getVariable(CaloVariableType::MAX_ENERGY,sampling,true)
1100  : double(0);
1101 }

◆ energy_nonvirt()

double CaloCompositeKineBase::energy_nonvirt ( ) const
inlineinherited

Return energy (nonvirtual version)

Definition at line 74 of file CaloCompositeKineBase.h.

75 { return this->m_e; }

◆ energyBE()

double CaloCluster::energyBE ( int  sam) const
inline

EMB/EMEC combined signal.

Parameters
samsampling counter
Warning
The sampling input argument refers to the sampling number (first, second, third,...) in the EMB and EMEC. It is not identical to the corresponding CaloSampling::CaloSample indicators in these calorimeters.

Definition at line 1219 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1220 { return this->variableBE(CaloVariableType::ENERGY,sam); }

◆ errors()

const I4MomentumError * P4EEtaPhiM::errors ( ) const
virtualinherited

Access to errors, if available; returns 0 if no errors.

Reimplemented from P4EEtaPhiMBase.

Definition at line 15 of file P4EEtaPhiM.cxx.

16 {
17  return 0;
18 }

◆ eSample()

double CaloCluster::eSample ( sampling_type  theSampling) const
inline

Retrieve energy in a given sampling.

Parameters
theSamplingsampling indicator

Returns the energy in a given sampling.

Definition at line 975 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

976 { return this->getVariable(CaloVariableType::ENERGY,theSampling,true); }

◆ et()

double P4EEtaPhiMBase::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 106 of file P4EEtaPhiMBase.cxx.

107  {
108  return this->e()*this->sinTh();
109  }

◆ eta() [1/2]

double CaloCluster::eta ( ) const
inlinevirtual

Retrieve eta independent of signal state.

Implements I4Momentum.

Definition at line 755 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

756 {
757  return (this->*m_getEta)();
758 }

◆ eta() [2/2]

double CaloCluster::eta ( signalstate_t  s) const
inline

Retrieve eta for a specific signal state.

Definition at line 793 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

794 {
795  if (!hasSignalState(s)) return m_errorValue;
796  switch (s) {
798  return P4EEtaPhiM::eta();
800  return m_rawEta;
802  return m_altEta;
803  default:
804  return m_errorValue;
805  }
806 }

◆ eta0()

double CaloCluster::eta0 ( ) const
inline

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

Returns seed \( \eta \) for cluster.

Definition at line 1180 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1180 { return m_eta0; }

◆ etaBE()

double CaloCluster::etaBE ( int  sam) const
inline

EMB/EMEC combined barycenter \( \eta \).

Parameters
samsampling counter
Warning
The sam input argument refers to the sampling number (first, second, third,...) in the EMB and EMEC. It is not identical to the corresponding CaloSampling::CaloSample indicators in these calorimeters.

Definition at line 1199 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1200 { return this->variableBE(CaloVariableType::ETA,sam); }

◆ etamax()

double CaloCluster::etamax ( sampling_type  sampling) const
inline

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

Parameters
samplingsampling indicator

Returns \( \eta \) of cell with maximum signal in sampling.

Warning
Depreciated. This method should not be used anymore. Use getVariable(CaloVariableType::MAX_ETA,...) instead.

Definition at line 1112 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1113 {
1114  return this->isEMSampling(sampling)
1115  ? this->getVariable(CaloVariableType::MAX_ETA,sampling,true)
1116  : double(0);
1117 }

◆ etaSample()

double CaloCluster::etaSample ( sampling_type  theSampling) const
inline

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

Parameters
theSamplingsampling indicator

Returns \( \eta \) in sampling.

Definition at line 991 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

992 { return this->getVariable(CaloVariableType::ETA,theSampling,true); }

◆ etasize()

double CaloCluster::etasize ( sampling_type  sampling) const
inline

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

Parameters
samplingsampling indicator

Returns eta size \( \Delta\eta \) of cluster in sampling.

Warning
Depreciated. This method should not be used anymore. Use getVariable(CaloVariableType::DELTA_ETA,...) instead.

Definition at line 1148 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1149 {
1150  return this->isEMSampling(sampling)
1151  ? this->getVariable(CaloVariableType::DELTA_ETA,sampling,true)
1152  : double(0);
1153 }

◆ fillToken() [1/2]

void CaloClusterNavigable::fillToken ( INavigationToken iToken) const
inlinevirtualinherited

fill token for navigation

Implements INavigable.

Definition at line 390 of file CaloClusterNavigable.h.

391 {
392  if ( this->getCellLink() )
393  (this->getCellLink())->fillToken(iToken);
394 }

◆ fillToken() [2/2]

void CaloClusterNavigable::fillToken ( INavigationToken iToken,
const std::any &  rPar 
) const
inlinevirtualinherited

fill token for navigation

Implements INavigable.

Definition at line 397 of file CaloClusterNavigable.h.

399 {
400  if ( this->getCellLink() )
401  (this->getCellLink())->fillToken(iToken,rPar);
402 }

◆ getAltE()

double CaloCluster::getAltE ( ) const
private

Access to calibrated (cell weight) energy.

Definition at line 1325 of file CaloCluster.cxx.

1325 { return m_altE; }

◆ getAltEta()

double CaloCluster::getAltEta ( ) const
private

Access to calibrated (cell weight) eta.

Definition at line 1326 of file CaloCluster.cxx.

1326 { return m_altEta; }

◆ getAltM()

double CaloCluster::getAltM ( ) const
private

Access to calibrated (cell weight) m.

Definition at line 1328 of file CaloCluster.cxx.

1328 { return m_altM; }

◆ getAltPhi()

double CaloCluster::getAltPhi ( ) const
private

Access to calibrated (cell weight) phi.

Definition at line 1327 of file CaloCluster.cxx.

1327 { return m_altPhi; }

◆ getAthenaBarCode() [1/2]

AthenaBarCode_t AthenaBarCodeBase::getAthenaBarCode ( ) const
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 22 of file AthenaBarCodeBase.cxx.

23 {
25 }

◆ getAthenaBarCode() [2/2]

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

◆ getBadChannel()

const CaloCluster::badChannelList * CaloCluster::getBadChannel ( ) const

Definition at line 1434 of file CaloCluster.cxx.

1435 {
1436  return &m_badChannelData;
1437 }

◆ getBasicEnergy()

double CaloCluster::getBasicEnergy ( ) const
inlinevirtual

Access basic energy scale signal.

Implements CaloCompositeKineBase.

Definition at line 876 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

876 { return m_basicSignal; }

◆ getBits()

AthenaBarCode_t AthenaBarCodeImpl::getBits ( unsigned short  startbit,
unsigned short  nbits 
) const
protectedinherited

Definition at line 249 of file AthenaBarCodeImpl.cxx.

249  {
250 
252  //now m_barcode=aaaaaxxaa;
253  tmp = m_barcode << (startbit); //tmp=xxaa00000;
254  tmp = tmp >> (TotalBits - nbits); //tmp=0000000xx
255 
256  return tmp;
257 }

◆ getCalE()

double CaloCluster::getCalE ( ) const
private

Access to calibrated (LC) energy.

Definition at line 1335 of file CaloCluster.cxx.

1335 { return P4EEtaPhiM::e(); }

◆ getCalEta()

double CaloCluster::getCalEta ( ) const
private

Access to calibrated (LC) eta.

Definition at line 1336 of file CaloCluster.cxx.

1336 { return P4EEtaPhiM::eta(); }

◆ getCalM()

double CaloCluster::getCalM ( ) const
private

Access to calibrated (LC) m.

Definition at line 1338 of file CaloCluster.cxx.

1338 { return P4EEtaPhiM::m(); }

◆ getCalPhi()

double CaloCluster::getCalPhi ( ) const
private

Access to calibrated (LC) phi.

Definition at line 1337 of file CaloCluster.cxx.

1337 { return P4EEtaPhiM::phi(); }

◆ getCellContainer() [1/2]

const CaloCellContainer* CaloCompositeCellBase< CaloClusterNavigable >::getCellContainer ( cell_iterator iterCell) const
inherited

Retrieve the pointer to the original cell container for a given cell.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCelliterator to the cell (unchanged)

Returns 0 if cell not in store.

◆ getCellContainer() [2/2]

const CaloCellContainer* CaloCompositeCellBase< CaloClusterNavigable >::getCellContainer ( const CaloCell pCell) const
inherited

Retrieve the pointer to the original cell container for a given cell.

Parameters
pCellpointer to the cell (unchanged)

Returns 0 if cell not in store.

◆ getCellIndex() [1/2]

bool CaloCompositeCellBase< CaloClusterNavigable >::getCellIndex ( cell_iterator iterCell,
size_t &  iCell 
) const
inherited

Retrieve the index of a given cell in the cell container.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCelliterator to the cell (unchanged)
iCellreference to a modifiable index variable

Returns true and a valid index if cell is found in store. If cell is not found, the value of the index is unchanged (typically 0 if initialized properly by client).

Note that the index refers to the index of the cell in the cell container, not the index of the cell in the local store.

◆ getCellIndex() [2/2]

bool CaloCompositeCellBase< CaloClusterNavigable >::getCellIndex ( const CaloCell pCell,
size_t &  iCell 
) const
inherited

Retrieve the index of a given cell in the cell container.

Parameters
pCellpointer to the cell (unchanged)
iCellreference to a modifiable index variable

Returns true and a valid index if cell is found in store. If cell is not found, the value of the index is unchanged (typically 0 if initialized properly by client).

Note that the index refers to the index of the cell in the cell container, not the index of the cell in the local store.

◆ getCellLink() [1/2]

CaloCellLink * CaloClusterNavigable::getCellLink ( )
protectedinherited

Definition at line 39 of file CaloClusterNavigable.cxx.

40 {
41  if ( m_ownLinkStore )
42  {
43  if ( *m_cellLink == nullptr ) m_cellLink.setElement(new CaloCellLink());
44  // Ok, because this happens only if we own the pointer.
45  CaloCellLink* link ATLAS_THREAD_SAFE = const_cast<CaloCellLink*>(*m_cellLink);
46  return link;
47  }
48  else
49  {
50  return (CaloCellLink*)nullptr;
51  }
52 
53  // check if local pointer to store
54  // if ( m_cellLinkPointer != 0 ) { return m_cellLinkPointer;}
55  // check if linked pointer to store
56  // if ( m_cellLink.isValid() && *m_cellLink != 0 )
57  // {
58  // FIXME
59  // CaloCellLink* pLink = const_cast<CaloCellLink*>(*m_cellLink);
60  // return pLink;
61  // }
62  // create a new local store/
63  // m_cellLinkPointer = new CaloCellLink();
64  // return m_cellLinkPointer;
65 }

◆ getCellLink() [2/2]

const CaloCellLink * CaloClusterNavigable::getCellLink ( ) const
protectedinherited

Definition at line 68 of file CaloClusterNavigable.cxx.

69 {
70  // return *m_cellLink;
71 
72  // if ( m_cellLinkPointer != 0 )
73  // {
74  // std::cout << "[CaloClusterNavigable@" << this << "] return "
75  // << "cell link @" << m_cellLinkPointer << std::endl;
76  // return m_cellLinkPointer;
77  // }
78  // if ( *m_cellLink == 0 )
79  // {
80  // std::cout << "[CaloClusterNavigable@" << this << "] problem with "
81  // << "cell link store, unexpected pointer = "
82  // << *m_cellLink << std::endl;
83  // }
84  return m_cellLink.isValid() ? *m_cellLink : nullptr;
85 }

◆ getCellLinkPtr() [1/2]

CaloCellLink * CaloClusterNavigable::getCellLinkPtr ( )
inlineprotectedinherited

Definition at line 426 of file CaloClusterNavigable.h.

427 {
428  CaloCellLink* ret;
429  if (m_cellLink.isValid())
430  ret = const_cast<CaloCellLink*>(*m_cellLink);
431  else
432  ret = 0;
433  return ret;
434 
435 }

◆ getCellLinkPtr() [2/2]

const CaloCellLink * CaloClusterNavigable::getCellLinkPtr ( ) const
inlineprotectedinherited

Definition at line 438 of file CaloClusterNavigable.h.

438  {
439  const CaloCellLink* ret;
440  if (m_cellLink.isValid())
441  ret = *m_cellLink;
442  else
443  ret = 0;
444  return ret;
445 }

◆ getCellWeight() [1/3]

double CaloCompositeCellBase< CaloClusterNavigable >::getCellWeight ( cell_iterator iterCell) const
inherited

Retrieve the kinematic weight of a given cell.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCelliterator pointing to a cell

◆ getCellWeight() [2/3]

double CaloCompositeCellBase< CaloClusterNavigable >::getCellWeight ( const CaloCell pCell) const
inherited

Retrieve the kinematic weight of a given cell.

Parameters
pCellpointer to the cell (unchanged)

Returns 0. if cell not in store.

◆ getCellWeight() [3/3]

double CaloCompositeCellBase< CaloClusterNavigable >::getCellWeight ( const CaloCellContainer pContainer,
size_t &  iCell 
) const
inherited

Retrieve the kinematic weight of a given cell.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
pContainerpointer to cell container (unchanged)
iCellindex to cell in container (unchanged)

◆ getClusterEtaSize()

unsigned int CaloCluster::getClusterEtaSize ( ) const

Definition at line 1439 of file CaloCluster.cxx.

1439  {
1440 
1441  unsigned int size = 0;
1442  if(m_clusterSize==SW_55ele ||
1445  size = 5;
1446  }else if(m_clusterSize==SW_35ele ||
1452  size = 3;
1453  }else if(m_clusterSize==SW_7_11){
1454  size = 7;
1455  }
1456 
1457  return size;
1458 
1459 }

◆ getClusterPhiSize()

unsigned int CaloCluster::getClusterPhiSize ( ) const

Definition at line 1461 of file CaloCluster.cxx.

1461  {
1462 
1463  unsigned int size = 0;
1464  if(m_clusterSize==SW_55ele ||
1470  size = 5;
1471  }else if(
1475  size = 7;
1476  }else if(m_clusterSize==SW_7_11){
1477  size = 11;
1478  }
1479 
1480  return size;
1481 
1482 }

◆ getClusterSize()

unsigned int CaloCluster::getClusterSize ( ) const
inline

Get cluster size.

Definition at line 895 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

895 { return m_clusterSize; }

◆ getContainer() [1/2]

const CaloCellContainer * CaloClusterNavigable::getContainer ( const CaloCell pCell) const
inlineinherited

public container access: retrieve Container for given object pointer

Definition at line 347 of file CaloClusterNavigable.h.

348 {
349  return (this->getCellLink())->getContainer(pCell);
350 }

◆ getContainer() [2/2]

const CaloCellContainer * CaloClusterNavigable::getContainer ( object_iter  cellIter) const
inlineinherited

public container access: retrieve Container for given object iterator

Definition at line 354 of file CaloClusterNavigable.h.

355 {
356  return (this->getCellLink())->getContainer(cellIter);
357 }

◆ getDataStore() [1/2]

const CaloSamplingData * CaloCluster::getDataStore ( const variable_type varType,
bool  traceLink = false 
) const
protected
Parameters
varTypereference to non-modifiable variable type indicator
traceLinkflag allows tracing external storelinks if set true

Dynamically allocates the correct store (local cache or external) depending on availability and indicator. The store is non-modifiable.

Definition at line 1056 of file CaloCluster.cxx.

1057 {
1058  //
1059  //DEBUGstd::cout << "[CaloCluster@" << this
1060  //DEBUG << "]::getDataStore - const data store pointer requested, "
1061  //DEBUG << "try internal pointer = " << &m_dataStore;
1062 
1063  // check if variable in local data store
1064  if ( m_dataStore.contains(varType) )
1065  {
1066  // std::cout << "...successful!" << std::endl;
1067  return &m_dataStore;
1068  }
1069 
1070  // check linked data store if requested
1071  if ( traceLink && m_dataLink.isValid())
1072  {
1073  //DEBUG std::cout << "... unsuccessful, use linked pointer "
1074  //DEBUG << &((*m_dataLink)->getSamplingStore()) << std::endl;
1075  return &((*m_dataLink)->getSamplingStore());
1076  }
1077 
1078  //DEBUGstd::cout << "... failed, no external or internal pointer available!"
1079  //DEBUG << std::endl;
1080  return (const CaloSamplingData*)nullptr;
1081 }

◆ getDataStore() [2/2]

CaloSamplingData * CaloCluster::getDataStore ( const variable_type varType,
bool  traceLink = true 
)
protected
Parameters
varTypereference to non-modifiable variable type indicator
traceLinkif true return pointer to external store

Dynamically allocates the correct store (local cache or external) depending on availability and indicator. The store is modifiable, i.e. write access is granted.

Definition at line 1093 of file CaloCluster.cxx.

1094 {
1095  if ( m_dataStore.contains(varType) )
1096  {
1097  return &m_dataStore;
1098  }
1099 
1100  // check external store if requested
1101  if ( m_ownDataStore && !m_dataLink.isValid()) {
1102  m_shower = new CaloShower();
1103  m_dataLink.setElement(m_shower);
1104  }
1105 
1106  // trace
1107  if ( ( traceLink || m_ownDataStore ) && m_shower )
1108  {
1109  return &(m_shower->getSamplingStore());
1110  }
1111 
1112  return (CaloSamplingData*)nullptr;
1113 }

◆ getDefaultHash()

AthenaBarCode_t AthenaBarCodeImpl::getDefaultHash ( const char *  jobid = nullptr)
staticprivateinherited

Definition at line 304 of file AthenaBarCodeImpl.cxx.

305 {
306  static const AthenaBarCode_t defaultHash = makeDefaultHash (jobid);
307  return defaultHash;
308 }

◆ getEInSamples()

void CaloCluster::getEInSamples ( std::vector< double > &  theEnergies) const
inline

Retrieve energy for all samplings into a vector.

Parameters
theEnergiesreference to a modifiable vector
Warning
The vector referenced on input will be completely overwritten and resized.

Definition at line 983 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

984 { this->getVariable(CaloVariableType::ENERGY,theEnergies,true); }

◆ getEtaInSamples()

void CaloCluster::getEtaInSamples ( std::vector< double > &  theEtas) const
inline

Retrieve \( \eta \) for all samplings into a vector.

Parameters
theEtasreference to a modifiable vector
Warning
The vector referenced on input will be completely overwritten and resized.

Definition at line 999 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1000 { this->getVariable(CaloVariableType::ETA,theEtas,true); }

◆ getIndex() [1/2]

bool CaloClusterNavigable::getIndex ( const CaloCell pCell,
size_t &  iCell 
) const
inlineinherited

get index of child in original container, given a pointer

Definition at line 360 of file CaloClusterNavigable.h.

361 {
362  return (this->getCellLink())->getIndex(pCell,iCell);
363 }

◆ getIndex() [2/2]

bool CaloClusterNavigable::getIndex ( object_iter  cellIter,
size_t &  iCell 
) const
inlineinherited

get index of child in original container, given an iterator

Definition at line 366 of file CaloClusterNavigable.h.

367 {
368  return (this->getCellLink())->getIndex(cellIter,iCell);
369 }

◆ getMoment() [1/2]

CaloClusterMoment CaloCluster::getMoment ( const moment_iterator momIter) const
inline

Get individual moment.

Definition at line 1236 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1237 { return rMomIter.getMoment(); }

◆ getMoment() [2/2]

CaloClusterMoment CaloCluster::getMoment ( const moment_type momType,
bool  useLink = true 
) const
inline

Get individual moment.

Definition at line 1227 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1227  {
1228  CaloClusterMoment value(0.0);
1229  if (!this->retrieveMoment(momType,value,useLink))
1230  value = 0; // Make coverity happy.
1231  return value;
1232 }

◆ getMomentStore() [1/4]

const CaloClusterMomentStore * CaloCluster::getMomentStore ( bool  useLink = false) const
protected

Definition at line 1160 of file CaloCluster.cxx.

1161 {
1162  // follow link policy
1163  if ( !useLink ) return &m_momentStore;
1164 
1165  // check on external link usage
1166  if ( ( m_dataLink.isValid() || m_ownDataStore ) && m_dataLink.isValid() )
1167  return &((*m_dataLink)->getMomentStore());
1168 
1169  return (const CaloClusterMomentStore*)nullptr;
1170 }

◆ getMomentStore() [2/4]

CaloClusterMomentStore * CaloCluster::getMomentStore ( bool  useLink = true)
protected

Definition at line 1172 of file CaloCluster.cxx.

1173 {
1174  // follow link policy: do not use link!
1175  if ( !useLink ) return &m_momentStore;
1176 
1177  // follow link policy: use link!
1178  if ( m_ownDataStore && m_dataLink.isValid() == 0 )
1179  {
1180  m_shower = new CaloShower();
1181  m_dataLink.setElement(m_shower);
1182  return this->getMomentStore(useLink);
1183  }
1184 
1185  if ( m_shower || m_ownDataStore )
1186  {
1187  return &(m_shower->getMomentStore());
1188  }
1189  return (CaloClusterMomentStore*)nullptr;
1190 }

◆ getMomentStore() [3/4]

const CaloClusterMomentStore * CaloCluster::getMomentStore ( const moment_type theMoment,
bool  useLink = false 
) const
protected

Definition at line 1202 of file CaloCluster.cxx.

1203 {
1204  // local store
1205  if ( m_momentStore.contains(momType) ) return &m_momentStore;
1206 
1207  // external store
1208  const CaloClusterMomentStore* pMomStore = this->getMomentStore(useLink);
1209 
1210  //
1211  return pMomStore != nullptr && pMomStore->contains(momType)
1212  ? pMomStore : (const CaloClusterMomentStore*) nullptr;
1213 }

◆ getMomentStore() [4/4]

CaloClusterMomentStore * CaloCluster::getMomentStore ( const moment_type theMoment,
bool  useLink = true 
)
protected

Definition at line 1192 of file CaloCluster.cxx.

1194 {
1195  // this is the "write" implementation!
1196  return m_momentStore.contains(momType)
1197  ? &m_momentStore // moment already in local store
1198  : this->getMomentStore(useLink); // retrieve local or external
1199 }

◆ getMomentStoreLink()

data_link_type CaloCluster::getMomentStoreLink ( ) const
inline

Definition at line 725 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

726  { return m_dataLink; }

◆ getMomentStorePtrs()

bool CaloCluster::getMomentStorePtrs ( const CaloClusterMomentStore *&  pFirstStore,
const CaloClusterMomentStore *&  pSecndStore,
bool  useLink 
) const
protected

Definition at line 1216 of file CaloCluster.cxx.

1222 {
1223  // first store is assumed local by default
1224  pFirstMomStore = this->getMomentStore();
1225  // second store is assumed NOT to exist by default
1226  pSecndMomStore = nullptr;
1227  // local first store does not exist or is empty...
1228  if ( pFirstMomStore == nullptr || pFirstMomStore->size() == 0 )
1229  {
1230  // ...try to make external store the first one!
1231  pFirstMomStore = this->getMomentStore(useLink);
1232  }
1233  // local first store exists...
1234  else
1235  {
1236  // ...check if second store available!
1237  pSecndMomStore = useLink ? this->getMomentStore(useLink) : nullptr;
1238  }
1239  return pFirstMomStore != nullptr;
1240 }

◆ getMomentType()

CaloClusterMoment::MomentType CaloCluster::getMomentType ( const moment_iterator momIter) const
inline

Get moment type.

Definition at line 1254 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1255 { return rMomIter.getMomentType(); }

◆ getMomentValue() [1/2]

double CaloCluster::getMomentValue ( const moment_iterator momIter) const
inline

Definition at line 1250 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1251 { return (momIter.getMoment()).getValue(); }

◆ getMomentValue() [2/2]

double CaloCluster::getMomentValue ( const moment_type momType,
bool  useLink = true 
) const
inline

Get moment value.

Definition at line 1240 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1240  {
1241  double value(0.0);
1242  if (!this->retrieveMoment(momType,value,useLink))
1243  value = 0; // Make coverity happy.
1244  return value;
1245 }

◆ getNumberOfCells()

unsigned int CaloCompositeCellBase< CaloClusterNavigable >::getNumberOfCells
inherited

Return the number of cells in the store.

◆ getParameter() [1/3]

double CaloClusterNavigable::getParameter ( const CaloCell pCell) const
inlineinherited

public container access: relational parameter retrieval

Definition at line 327 of file CaloClusterNavigable.h.

328 {
329  return (this->getCellLink())->getParameter(pCell);
330 }

◆ getParameter() [2/3]

double CaloClusterNavigable::getParameter ( const CaloCellContainer pContainer,
size_t &  iCell 
) const
inlineinherited

public container access: relational parameter retrieval

Definition at line 333 of file CaloClusterNavigable.h.

335 {
336  return (this->getCellLink())->getParameter(pContainer,iCell);
337 }

◆ getParameter() [3/3]

double CaloClusterNavigable::getParameter ( object_iter cellIter) const
inlineinherited

public container access: relational parameter retrieval

Definition at line 340 of file CaloClusterNavigable.h.

341 {
342  return (this->getCellLink())->getParameter(cellIter);
343 }

◆ getPhiInSamples()

void CaloCluster::getPhiInSamples ( std::vector< double > &  thePhis) const
inline

Retrieve \( \varphi \) for all samplings into a vector.

Parameters
thePhisreference to a modifiable vector
Warning
The vector referenced on input will be completely overwritten and resized.

Definition at line 1015 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1016 { this->getVariable(CaloVariableType::PHI,thePhis,true); }

◆ getRawE()

double CaloCluster::getRawE ( ) const
private

Access to raw energy.

Definition at line 1315 of file CaloCluster.cxx.

1315 { return m_rawE; }

◆ getRawEta()

double CaloCluster::getRawEta ( ) const
private

Access to raw eta.

Definition at line 1316 of file CaloCluster.cxx.

1316 { return m_rawEta; }

◆ getRawM()

double CaloCluster::getRawM ( ) const
private

Access to raw mass.

Definition at line 1318 of file CaloCluster.cxx.

1318 { return m_rawM; }

◆ getRawPhi()

double CaloCluster::getRawPhi ( ) const
private

Access to raw phi.

Definition at line 1317 of file CaloCluster.cxx.

1317 { return m_rawPhi; }

◆ getRecoStatus()

const CaloRecoStatus & CaloCompositeKineBase::getRecoStatus ( ) const
inlineinherited

Retrieve the reconstruction status.

Definition at line 78 of file CaloCompositeKineBase.h.

79 { return m_status; }

◆ getReserveBits()

AthenaBarCode_t AthenaBarCodeImpl::getReserveBits ( ) const
inherited

Definition at line 216 of file AthenaBarCodeImpl.cxx.

216  {
218  initABC();
220 }

◆ getTime()

double CaloCluster::getTime ( ) const
inline

Access cluster time.

Definition at line 886 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

886 { return m_time; }

◆ getUUIDHash()

AthenaBarCode_t AthenaBarCodeImpl::getUUIDHash ( ) const
privateinherited

Definition at line 244 of file AthenaBarCodeImpl.cxx.

244  {
245  return getBits(SUUIDBits, UUIDBits);
246 }

◆ getVariable() [1/2]

double CaloCluster::getVariable ( const variable_type varType,
const sampling_type samType,
bool  useLink = true 
) const

General sampling variable access.

Parameters
varTypevariable type indicator
samTypesampling type indicator
useLinkextends checks to external data store only if true

This method first checks if the requested data is in the CaloCluster cache. If not, it tries to retrieve the data from the linked data store if the traceLink flag is set to true. This allows full control of the data source by the client.

Definition at line 837 of file CaloCluster.cxx.

840 {
841  const CaloSamplingData* pDataStore = this->getDataStore(varType,useLink);
842  return pDataStore != nullptr
843  ? pDataStore->retrieveData(varType,samType)
844  : double(0);
845 }

◆ getVariable() [2/2]

bool CaloCluster::getVariable ( const variable_type varType,
std::vector< double > &  varList,
bool  useLink = true 
) const

General access to variables of a given type in all samplings.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
varTypevariable type
varListreference to modifiable list of variable values
useLinkextends checks to external data store if true

Definition at line 857 of file CaloCluster.cxx.

860 {
861  const CaloSamplingData* pDataStore = this->getDataStore(varType,useLink);
862  return pDataStore != nullptr ? pDataStore->retrieveData(varType,varList) : false;
863 }

◆ getVersion() [1/2]

AthenaBarCodeVersion_t AthenaBarCodeBase::getVersion ( ) const
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 47 of file AthenaBarCodeBase.cxx.

48 {
50 }

◆ getVersion() [2/2]

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

◆ hashUUID()

AthenaBarCode_t AthenaBarCodeImpl::hashUUID ( const char *  guid)
staticprivateinherited

Definition at line 190 of file AthenaBarCodeImpl.cxx.

190  {
191  const int maxdigs = 16;
192  AthenaBarCode_t tmp1 = static_cast<AthenaBarCode_t> (2166136261UL);
193 
194  for (int i = 0; i < maxdigs; i++) {
195  tmp1 ^= (AthenaBarCode_t)(guid[i]);
196  tmp1 *= 16777619UL;
197  }
198 
199  return (tmp1 << (TotalBits - UUIDBits)) >> (TotalBits - UUIDBits);
200 }

◆ hasSameAthenaBarCode() [1/2]

virtual bool IAthenaBarCode::hasSameAthenaBarCode ( const IAthenaBarCode ) const
inlinevirtualinherited

◆ hasSameAthenaBarCode() [2/2]

bool AthenaBarCodeBase::hasSameAthenaBarCode ( const IAthenaBarCode obj) const
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 34 of file AthenaBarCodeBase.cxx.

35 {
37 }

◆ hasSameAthenaBarCodeExceptVersion() [1/2]

virtual bool IAthenaBarCode::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode ) const
inlinevirtualinherited

◆ hasSameAthenaBarCodeExceptVersion() [2/2]

bool AthenaBarCodeBase::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode obj) const
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 41 of file AthenaBarCodeBase.cxx.

◆ hasSampling()

bool CaloCluster::hasSampling ( const sampling_type theSampling) const
inline

Checks if certain sampling contributes to cluster.

Definition at line 954 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

955 {
956  unsigned int bitPattern = CaloSamplingHelper::getSamplingBit(theSampling);
957  return (m_samplingPattern & bitPattern) == bitPattern;
958 }

◆ hasSignalState()

bool CaloCluster::hasSignalState ( signalstate_t  s) const
virtual

check if signal state exists for current implementation

Implements ISignalState.

Definition at line 1358 of file CaloCluster.cxx.

1359 {
1360  return s == statename_t::CALIBRATED ||
1363 }

◆ hasUUIDHash()

AthenaBarCode_t AthenaBarCodeImpl::hasUUIDHash ( ) const
privateinherited

Definition at line 239 of file AthenaBarCodeImpl.cxx.

239  {
240  return getUUIDHash();
241 }

◆ hlv() [1/2]

virtual CLHEP::HepLorentzVector CaloCluster::hlv ( ) const
inlinevirtual

redefine hlv() here to avoid ambiguities

Implements I4Momentum.

Definition at line 270 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

270 {return CaloCompositeKineBase::hlv();}

◆ hlv() [2/2]

CLHEP::HepLorentzVector CaloCluster::hlv ( CaloCluster::signalstate_t  s) const
virtual

retrieve the 4-momentum at a given signal state

Implements ISignalState.

Definition at line 1485 of file CaloCluster.cxx.

1485  {
1486  if(hasSignalState(s)){
1487  switch (s) {
1488  case statename_t::CALIBRATED: {
1489  P4EEtaPhiM tmp = *this;
1490  return tmp.hlv();
1491  }
1494  return tmp.hlv();
1495  }
1498  return tmp.hlv();
1499  }
1500  default:
1501  break;
1502  }
1503  }
1504  return this->hlv();
1505 }

◆ inBarrel()

bool CaloCluster::inBarrel ( ) const
inline

Returns true if at least one clustered cell in EMB.

Returns true if cluster has more than one cell with positive signal in barrel calorimeter.

Definition at line 926 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

926 { return m_barrel; }

◆ inEndcap()

bool CaloCluster::inEndcap ( ) const
inline

Returns true if at least one clustered cell in EMEC.

Returns true if cluster has more than one cell with positive signal in endcap calorimeter.

Definition at line 931 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

931 { return m_endcap; }

◆ initABC()

void AthenaBarCodeImpl::initABC ( ) const
protectedinherited

Definition at line 24 of file AthenaBarCodeImpl.cxx.

24  {
25 
26  //This function will be call the first time any "access" function is called
27  //using const type because those "access" functions might be const
28  //Will only change mutable variables
29 
30  // std::cout<<"Calling AthenaBarCodeImpl::AthenaBarCodeImpl() "<<std::endl;
31 
32  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
33  //Set counter part
34  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
35 
37 
39 
40  try {
42  barcode);
43  }
44  catch (const GaudiException& Exception) {
45  throw std::runtime_error(
46  "AthenaBarCodeImpl::Can not Set Counter Bit, Counter Overflow");
47  }
48 
49  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
50  //Set reserve part
51  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
52  try {
54  }
55  catch (const GaudiException& Exception) {
56  throw std::runtime_error(
57  "AthenaBarCodeImpl::Can not initialize Reserve Bit");
58  }
59 
60  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
61  //Set Version part
62  //* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
63  try {
65  }
66  catch (const GaudiException& Exception) {
67  throw std::runtime_error(
68  "AthenaBarCodeImpl::Can not initialize Version Bit");
69  }
70 
71 
72  try {
74  }
75  catch (const GaudiException& Exception) {
76  throw std::runtime_error("AthenaBarCodeImpl::Can not set UUID Hash Bits");
77  }
78 
80 
81  /* std::cout << "[AthenaBarCodeImpl::m_barcode,m_defaultHash,m_barcodeCounter]= "
82  << std::hex
83  << (m_barcode)<< "\t"
84  << m_defaultHash<< "\t"
85  << (m_barcodeCounter)<<"\t"
86  << std::dec
87  << std::endl;
88  */
89 }

◆ insertElement() [1/4]

void CaloClusterNavigable::insertElement ( const CaloCellContainer pContainer,
const CaloCell pCell,
const double &  weight = double(1.) 
)
inlineinherited

insert element without checking if already in store: use element pointer

Definition at line 217 of file CaloClusterNavigable.h.

220 {
221  (this->getCellLink())->insertElement(pContainer,pCell,weight);
222 }

◆ insertElement() [2/4]

void CaloClusterNavigable::insertElement ( const CaloCellContainer pContainer,
size_t &  iCell,
const double &  weight = double(1.) 
)
inlineinherited

insert element without checking if already in store: use index

Definition at line 225 of file CaloClusterNavigable.h.

228 {
229  (this->getCellLink())->insertElement(pContainer,iCell,weight);
230 }

◆ insertElement() [3/4]

void CaloClusterNavigable::insertElement ( const CaloCellContainer pContainer,
size_t  iCell,
const double  weight,
size_t  size_hint 
)
inlineinherited

same, with a size hint.

Definition at line 233 of file CaloClusterNavigable.h.

237 {
238  (this->getCellLink())->insertElement(pContainer,iCell,weight,size_hint);
239 }

◆ insertElement() [4/4]

void CaloClusterNavigable::insertElement ( const ElementLink< CaloCellContainer > &  el,
const double  weight,
size_t  size_hint = 0 
)
inlineinherited

Insert element via ElementLink.

Definition at line 243 of file CaloClusterNavigable.h.

246 {
247  (this->getCellLink())->insertElement(el,weight,size_hint);
248 }

◆ insertMoment()

void CaloCluster::insertMoment ( const moment_type momType,
const moment_value momData,
bool  useLink = true 
)

Set individual moment.

Parameters
momTypereference to (non-modifiable) moment type indicator
momDatareference to (non-modifiable) moment value object
useLinknot used.

Definition at line 1247 of file CaloCluster.cxx.

1250 {
1251  // use momType for getMomentStore to override useLink in case
1252  // the moment has already been stored and should just be updated ...
1253  CaloClusterMomentStore* pMomStore = this->getMomentStore(momType,useLink);
1254  if ( pMomStore != nullptr ) pMomStore->insert(momType,momData);
1255 }

◆ iPt()

double P4EEtaPhiMBase::iPt ( ) const
virtualinherited

inverse of transverse momentum

Implements I4Momentum.

Definition at line 111 of file P4EEtaPhiMBase.cxx.

112  { return 1./this->pt();
113  }

◆ is_valid_sampling()

bool CaloCluster::is_valid_sampling ( const sampling_type sampling) const
inline

Checks if cells from a given sampling in EMB or EMEC (!) are in cluster.

Parameters
samplingcalorimeter sampling indicator
Note
The original implementation only check on cells in the electromagnetic calorimeters. This method is depreciated, use isEMSampling(sampling) instead.

Definition at line 948 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

949 { return this->isEMSampling(sampling); }

◆ isAtSignalState()

bool CaloCluster::isAtSignalState ( signalstate_t  s) const
virtual

check if we are at the passed state

Implements ISignalState.

Definition at line 1365 of file CaloCluster.cxx.

1366 {
1367  return s == m_signalState;
1368 }

◆ isCellLinkValid()

bool CaloClusterNavigable::isCellLinkValid ( ) const
inlinevirtualinherited

Definition at line 449 of file CaloClusterNavigable.h.

450 {
451  return this->getCellLinkPtr() !=0;
452 }

◆ isEMSampling()

bool CaloCluster::isEMSampling ( const sampling_type theSampling) const
inline

Checks if cells from a given sampling in EMB and EMEC are in the cluster.

Definition at line 951 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

952 { return CaloSamplingHelper::isEMSampling(theSampling); }

◆ isLocked() [1/2]

bool CaloCluster::isLocked ( const unsigned int &  bitPattern) const
inline

Definition at line 1283 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1284 {
1285  return ( m_lockPattern & bitPattern ) == bitPattern;
1286 }

◆ isLocked() [2/2]

bool CaloCluster::isLocked ( const variable_type varType) const
inline

Check lock status of variable.

Definition at line 1278 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1279 {
1280  unsigned int bitPattern(CaloVariableType::getVariableBit(varType));
1281  return this->isLocked(bitPattern);
1282 }

◆ kind()

I4Momentum::Kind P4EEtaPhiMBase::kind ( ) const
inlinevirtualinherited

tells what kind of P4XYZT this is

Implements I4Momentum.

Definition at line 65 of file P4EEtaPhiMBase.h.

65 { return I4Momentum::P4EETAPHIM; };

◆ lockVariable()

bool CaloCluster::lockVariable ( const variable_type varType)

Lock variable (protect against future updates)

Definition at line 1293 of file CaloCluster.cxx.

1294 {
1295  unsigned int bitPattern(CaloVariableType::getVariableBit(varType));
1296  m_lockPattern = ( m_lockPattern | bitPattern );
1297  return this->isLocked(bitPattern);
1298 }

◆ m() [1/2]

double CaloCluster::m ( ) const
inlinevirtual

Retrieve mass independent of signal state.

Implements I4Momentum.

Definition at line 764 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

765 { return (this->*m_getM)(); }

◆ m() [2/2]

double CaloCluster::m ( signalstate_t  s) const
inline

Retrieve mass for a specific signal state.

Definition at line 825 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

826 {
827  if (!hasSignalState(s)) return m_errorValue;
828  switch (s) {
830  return P4EEtaPhiM::m();
832  return m_rawM;
834  return m_altM;
835  default:
836  return m_errorValue;
837  }
838 }

◆ m2()

double P4EEtaPhiMBase::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

Definition at line 14 of file P4EEtaPhiMBase.cxx.

14  {
15  const double theM = this->m();
16  return theM*theM;
17 }

◆ makeDefaultHash()

AthenaBarCode_t AthenaBarCodeImpl::makeDefaultHash ( const char *  jobid)
staticprivateinherited

Definition at line 312 of file AthenaBarCodeImpl.cxx.

313 {
314  if (jobid) {
315  return AthenaBarCodeImpl::hashUUID(jobid);
316  }
317 
318  // First look for a uuid as an environment variable.
319  // This can be set in cases where we don't have the full
320  // Gaudi/Athena environment available (eg, ARA), and we
321  // don't want to try to create JobIDSvc. This has to be
322  // communicated in some way external to this library,
323  // as we may end up here while initializing the dictionary
324  // for this library.
325  const char* env_uuid = getenv ("_ATHENABARCODEIMPL_JOBUUID");
326  if (env_uuid) {
327  return AthenaBarCodeImpl::hashUUID(env_uuid);
328  }
329 
330  // std::cout<<"no UUID stored, generating."<<std::endl;
331 
332  ServiceHandle<IJobIDSvc> p_jobidsvc("JobIDSvc", "JobIDSvc");
333  StatusCode sc = p_jobidsvc.retrieve();
334  if (!sc.isSuccess() || 0 == p_jobidsvc) {
335  //FIXME
336  //use uuid instead if service not available
337  JobID_t JobID;
338  uuid_generate(JobID);
339  return AthenaBarCodeImpl::hashUUID((const char *) JobID);
340  /* std::cout << "Could not find JobIDSvc, using uuid directly"
341  <<"jobid "<<o.str()
342  << std::endl;*/
343  }
344 
345  PJobID_t pjobid = p_jobidsvc->getJobID();
346  return AthenaBarCodeImpl::hashUUID((const char *) pjobid);
347 }

◆ maybeSetVariable()

template<class InputIterator >
void CaloCluster::maybeSetVariable ( variable_type  varType,
InputIterator  beg,
InputIterator  end 
)
private

Set variables of a given type in all samplings at once, taking locking into account.

Definition at line 1317 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1320 {
1321  if (this->isLocked (varType)) return;
1322  CaloSamplingData* p = this->getDataStore (varType, true);
1323  if (p)
1324  p->storeData (varType, beg, end);
1325 }

◆ nCells()

unsigned int CaloClusterNavigable::nCells ( ) const
inlinevirtualinherited

size of object access

Definition at line 315 of file CaloClusterNavigable.h.

316 {
317 
318  const CaloCellLink* link = this->getCellLinkPtr();
319  if (link)
320  return link->size();
321  else
322  return 0;
323 
324 }

◆ newVersion() [1/2]

void AthenaBarCodeBase::newVersion ( )
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 53 of file AthenaBarCodeBase.cxx.

54 {
56 }

◆ newVersion() [2/2]

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

Definition at line 89 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

89  {
90  // throw std::runtime_error("IAthenaBarCode::newVersion():: can't newVersion() in the dummy implementation");
91  }

◆ nSamples()

unsigned int CaloCluster::nSamples ( ) const
inline

Retrieve number of samplings in this cluster.

Returns the maximum possible number of samplings, not the actual number contributing to the cluster!

Definition at line 968 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ operator=()

CaloCluster& CaloCluster::operator= ( const CaloCluster )
private

Disallow (avoid coverity warning).

◆ p()

double P4EEtaPhiMBase::p ( ) const
virtualinherited

magnitude of 3-momentum.

Special implementation from Frank Paige : if negative energy p is negative but eta and phi still the same.

Implements I4Momentum.

Definition at line 21 of file P4EEtaPhiMBase.cxx.

22 {
23  const double theM=this->m();
24  const double theE=this->e();
25  // if (theM==0.) return theE ;
26  // else return sqrt(theE*theE-theM*theM);
27  //DR from Frank Paige
28  // if negative energy point in the opposite direction
29  // BUT eta and phi still the same !!!
30  if (theM==0.) {
31  return theE;
32  } else {
33  double eSign = (theE >= 0) ? +1 : -1;
34  return eSign*std::sqrt(theE*theE-theM*theM);
35  }
36 
37 }

◆ p2()

double P4EEtaPhiMBase::p2 ( ) const
virtualinherited

square of momentum magnitude

This p2() implementaion is derived from the (somewhat unusual) Frank Paige implementation used to calculate p() above. What we do is look at what would happen if we were to square the answer returned by Frank's algorithm:

(1) The "eSign" would square to +1 and disappear, (2) The sqrt would disappear leaving theE*theE-theM*theM (3) In the event that theM==0, this theE*theE would indeed still equal theE*theE-theM*theM, so we simply return this quantity.

Implements I4Momentum.

Definition at line 39 of file P4EEtaPhiMBase.cxx.

40 {
48  const double theM=this->m();
49  const double theE=this->e();
50 
51  return theE*theE-theM*theM;
52 }

◆ phi() [1/2]

double CaloCluster::phi ( ) const
inlinevirtual

Retrieve phi independent of signal state.

Implements I4Momentum.

Definition at line 759 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

760 {
761  return (this->*m_getPhi)();
762 }

◆ phi() [2/2]

double CaloCluster::phi ( signalstate_t  s) const
inline

Retrieve phi for a specific signal state.

Definition at line 809 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

810 {
811  if (!hasSignalState(s)) return m_errorValue;
812  switch (s) {
814  return P4EEtaPhiM::phi();
816  return m_rawPhi;
818  return m_altPhi;
819  default:
820  return m_errorValue;
821  }
822 }

◆ phi0()

double CaloCluster::phi0 ( ) const
inline

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

Returns seed \( \varphi \) for cluster.

Definition at line 1186 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1186 { return m_phi0; }

◆ phiBE()

double CaloCluster::phiBE ( int  sam) const
inline

EMB/EMEC combined barycenter \( \varphi \).

Parameters
samsampling counter
Warning
The sampling input argument refers to the sampling number (first, second, third,...) in the EMB and EMEC. It is not identical to the corresponding CaloSampling::CaloSample indicators in these calorimeters.

Definition at line 1209 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1210 { return this->variableBE(CaloVariableType::PHI,sam); }

◆ phimax()

double CaloCluster::phimax ( sampling_type  sampling) const
inline

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

Parameters
samplingsampling indicator

Returns \( \varphi \) of cell with maximum signal in sampling.

Warning
Depreciated. This method should not be used anymore. Use getVariable(CaloVariableType::MAX_PHI,...) instead.

Definition at line 1128 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1129 {
1130  return this->isEMSampling(sampling)
1131  ? this->getVariable(CaloVariableType::MAX_PHI,sampling,true)
1132  : double(0);
1133 }

◆ phiSample()

double CaloCluster::phiSample ( sampling_type  theSampling) const
inline

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

Parameters
theSamplingsampling indicator

Returns \( \varphi \) in sampling.

Definition at line 1006 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1007 { return this->getVariable(CaloVariableType::PHI,theSampling,true); }

◆ phisize()

double CaloCluster::phisize ( sampling_type  sampling) const
inline

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

Parameters
samplingsampling indicator

Returns phi size \( \Delta\varphi \) of cluster in sampling.

Warning
Depreciated. This method should not be used anymore. Use getVariable(CaloVariableType::DELTA_PHI,...) instead.

Definition at line 1165 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1166 {
1167  return this->isEMSampling(sampling)
1168  ? this->getVariable(CaloVariableType::DELTA_PHI,sampling,true)
1169  : double(0);
1170 }

◆ pt()

double P4EEtaPhiMBase::pt ( ) const
virtualinherited

transverse momentum

Implements I4Momentum.

Definition at line 101 of file P4EEtaPhiMBase.cxx.

102  {
103  return this->p()*this->sinTh();
104  }

◆ putElement() [1/2]

void CaloClusterNavigable::putElement ( const CaloCellContainer pContainer,
const CaloCell pCell,
const double &  weight = double(1.) 
)
inlineinherited

add element to the Navigable: use pointer

Definition at line 201 of file CaloClusterNavigable.h.

204 {
205  (this->getCellLink())->putElement(pContainer,pCell,weight);
206 }

◆ putElement() [2/2]

void CaloClusterNavigable::putElement ( const CaloCellContainer pContainer,
size_t &  iCell,
const double &  weight = double(1.) 
)
inlineinherited

add element to the Navigable: use element index (direct access!)

Definition at line 209 of file CaloClusterNavigable.h.

212 {
213  (this->getCellLink())->putElement(pContainer,iCell,weight);
214 }

◆ px()

double P4EEtaPhiMBase::px ( ) const
virtualinherited

x component of momentum

Implements I4Momentum.

Definition at line 122 of file P4EEtaPhiMBase.cxx.

123  { return this->pt()*this->cosPhi();
124  }

◆ py()

double P4EEtaPhiMBase::py ( ) const
virtualinherited

y component of momentum

Implements I4Momentum.

Definition at line 126 of file P4EEtaPhiMBase.cxx.

127  { return this->pt()*this->sinPhi();
128  }

◆ pz()

double P4EEtaPhiMBase::pz ( ) const
virtualinherited

z component of momentum

Implements I4Momentum.

Definition at line 130 of file P4EEtaPhiMBase.cxx.

131  { return this->p()*this->cosTh();
132  }

◆ rapidity()

double P4EEtaPhiMBase::rapidity ( ) const
virtualinherited

rapidity

Implements I4Momentum.

Definition at line 115 of file P4EEtaPhiMBase.cxx.

116  {
117  const double theE=this->e();
118  const double thePz=this->pz();
119  return 0.5*std::log((theE+thePz)/(theE-thePz));
120  }

◆ remove() [1/2]

bool CaloClusterNavigable::remove ( const CaloCell pCell)
inlineinherited

remove object from the Navigable

Definition at line 271 of file CaloClusterNavigable.h.

272 {
273  return (this->getCellLink())->remove(pCell);
274 }

◆ remove() [2/2]

bool CaloClusterNavigable::remove ( const CaloCellContainer pContainer,
size_t &  iCell 
)
inlineinherited

remove object from the Navigable

Definition at line 277 of file CaloClusterNavigable.h.

279 {
280  return (this->getCellLink())->remove(pContainer,iCell);
281 }

◆ removeAll()

bool CaloClusterNavigable::removeAll ( )
inlineinherited

remove all objects from the Navigable

Definition at line 284 of file CaloClusterNavigable.h.

285 {
286  return (this->getCellLink())->removeAll();
287 }

◆ removeCell() [1/2]

void CaloCompositeCellBase< CaloClusterNavigable >::removeCell ( const CaloCell pCell)
inherited

Remove a cell with kinematic update.

Parameters
pCellpointer to a CaloCell object (unchanged)

Removes the cell pointed to by the input argument. The effect on the global kinematics is defined by the updateKine implementation in the derived classes.

The Navigable<CaloCellContainer,double> base class provides a remove method which can be used if no kinematic update is required.

◆ removeCell() [2/2]

void CaloCompositeCellBase< CaloClusterNavigable >::removeCell ( const CaloCellContainer pContainer,
size_t &  iCell 
)
inherited

Remove a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
pContainerpointer to cell container (unchanged)
iCellindex to cell in container (unchanged)

◆ removeCells()

void CaloCompositeCellBase< CaloClusterNavigable >::removeCells
inherited

Remove all cells without kinematic update.

◆ removeRecoStatus() [1/2]

void CaloCompositeKineBase::removeRecoStatus ( )
inlineinherited

Remove all indicators.

Definition at line 101 of file CaloCompositeKineBase.h.

102 { m_status.resetStatus(); }

◆ removeRecoStatus() [2/2]

void CaloCompositeKineBase::removeRecoStatus ( const CaloRecoStatus::StatusIndicator recIndic)
inlineinherited

Remove a given indicator.

Definition at line 96 of file CaloCompositeKineBase.h.

98 { m_status.resetStatus(recIndic); }

◆ resetBadChannel()

void CaloCluster::resetBadChannel ( )

Reset Bad channel list.

Definition at line 1429 of file CaloCluster.cxx.

1430 {
1431  m_badChannelData.clear();
1432 }

◆ resetCellLink()

void CaloClusterNavigable::resetCellLink ( const cell_link_type cellLink)
inlineinherited

Definition at line 151 of file CaloClusterNavigable.h.

152  {
154  }

◆ resetSignalState()

void CaloCluster::resetSignalState ( )
protectedvirtual

reset the signal state

Implements ISignalState.

Definition at line 1370 of file CaloCluster.cxx.

1371 {
1373 }

◆ retrieveMoment() [1/2]

bool CaloCluster::retrieveMoment ( const moment_type momType,
double &  momData,
bool  useLink = true 
) const

Definition at line 1278 of file CaloCluster.cxx.

1281 {
1282  CaloClusterMoment momData(0);
1283  if ( this->retrieveMoment(momType,momData,useLink) )
1284  {
1285  momValue = momData.getValue();
1286  return true;
1287  }
1288  return false;
1289 }

◆ retrieveMoment() [2/2]

bool CaloCluster::retrieveMoment ( const moment_type momType,
moment_value momData,
bool  useLink = true 
) const

Retrieve individual moment.

Parameters
momTypereference to (non-modifiable) moment type indicator
momDatareference to (modifiable) moment value object
useLinkextends checks to external data store if true

Returns true if requested moment type in cluster.

Definition at line 1266 of file CaloCluster.cxx.

1269 {
1270  const CaloClusterMomentStore* pMomStore = this->getMomentStore(momType,
1271  useLink);
1272  return pMomStore != nullptr
1273  ? pMomStore->retrieve(momType,momData)
1274  : false;
1275 }

◆ reweight() [1/3]

void CaloClusterNavigable::reweight ( const CaloCell pCell,
const double &  weight = double(1.) 
)
inlineinherited

re-weight (overwrite old weight)

Definition at line 251 of file CaloClusterNavigable.h.

252 {
253  (this->getCellLink())->reweight(pCell,weight);
254 }

◆ reweight() [2/3]

void CaloClusterNavigable::reweight ( const CaloCellContainer pContainer,
size_t &  iCell,
const double &  weight = double(1.) 
)
inlineinherited

re-weight (overwrite old weight)

Definition at line 257 of file CaloClusterNavigable.h.

260 {
261  (this->getCellLink())->reweight(pContainer,iCell,weight);
262 }

◆ reweight() [3/3]

void CaloClusterNavigable::reweight ( object_iter cellIter,
const double &  weight = double(1.) 
)
inlineinherited

re-weight (overwrite old weight)

Definition at line 265 of file CaloClusterNavigable.h.

266 {
267  (this->getCellLink())->reweight(cellIter,weight);
268 }

◆ reweightCell() [1/3]

void CaloCompositeCellBase< CaloClusterNavigable >::reweightCell ( cell_iterator iterCell,
double  weight 
)
inherited

Reweight a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCellinput iterator referring to a cell (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. There is no check on the validity of the iterator.

◆ reweightCell() [2/3]

void CaloCompositeCellBase< CaloClusterNavigable >::reweightCell ( const CaloCell pCell,
double  weight 
)
inherited

Reweight a cell with kinematic update.

Parameters
pCellinput pointer to a CaloCell object (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. No action if cell not in cluster. In particular, the cell is not added.

◆ reweightCell() [3/3]

void CaloCompositeCellBase< CaloClusterNavigable >::reweightCell ( const CaloCellContainer pContainer,
size_t &  iCell,
double  weight 
)
inherited

Reweight a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
pContainerinput pointer to a CaloCellContainer object (unchanged)
iCellinput index of a CaloCell in CaloCellContainer (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. No action if not a valid pointer.

◆ samplingPattern()

unsigned int CaloCluster::samplingPattern ( ) const

Get sampling bitmask.

Definition at line 1507 of file CaloCluster.cxx.

1508 {
1509  return m_samplingPattern;
1510 }

◆ set4Mom() [1/3]

void CaloCluster::set4Mom ( const CLHEP::HepLorentzVector &  rVec)
inlinevirtual

Set kinematics directly from HLV.

Implements I4Momentum.

Definition at line 852 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

853 {
854  this->setE(rVec.e());
855  this->setEta(rVec.eta());
856  this->setPhi(rVec.phi());
857  this->setM(rVec.m());
858 }

◆ set4Mom() [2/3]

void CaloCluster::set4Mom ( const I4Momentum rMom)
inlinevirtual

Set kinematics directly from four-vector.

Implements I4Momentum.

Definition at line 849 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

850 { this->set4Mom(&rMom); }

◆ set4Mom() [3/3]

void CaloCluster::set4Mom ( const I4Momentum *const  pMom)
inlinevirtual

Set kinematics from four-vector.

Implements I4Momentum.

Definition at line 841 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

842 {
843  this->setE(pMom->e());
844  this->setEta(pMom->eta());
845  this->setPhi(pMom->phi());
846  this->setM(pMom->m());
847 }

◆ setAltE()

void CaloCluster::setAltE ( double  e)
private

Set calibrated (cell weight) energy.

Definition at line 1330 of file CaloCluster.cxx.

1330 { m_altE = e; }

◆ setAltEta()

void CaloCluster::setAltEta ( double  eta)
private

Set calibrated (cell weight) eta.

Definition at line 1331 of file CaloCluster.cxx.

1331 { m_altEta = eta; }

◆ setAltM()

void CaloCluster::setAltM ( double  m)
private

Set calibrated (cell weight) m.

Definition at line 1333 of file CaloCluster.cxx.

1333 { m_altM = m; }

◆ setAltPhi()

void CaloCluster::setAltPhi ( double  phi)
private

Set calibrated (cell weight) phi.

Definition at line 1332 of file CaloCluster.cxx.

1332 { m_altPhi = phi; }

◆ setAthenaBarCode() [1/2]

void AthenaBarCodeBase::setAthenaBarCode ( AthenaBarCode_t  id)
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 28 of file AthenaBarCodeBase.cxx.

29 {
31 }

◆ setAthenaBarCode() [2/2]

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t  )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

Definition at line 71 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

71  {
72  // throw std::runtime_error("IAthenaBarCode::setAthenaBarCode():: can't set AthenaBarCode in the dummy implementation");
73  }

◆ setBarrel()

void CaloCluster::setBarrel ( bool  barrel)
inline

Sets EMB indicator.

Parameters
barrelinput flag is true if at least one cell in EMB

Definition at line 935 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

935 { m_barrel = barrel; }

◆ setBasicEnergy()

void CaloCluster::setBasicEnergy ( double  theEnergy)
inlinevirtual

Set basic energy scale signal.

Parameters
theEnergybasic energy signal

Overwrites default behaviour in CaloEnergyCluster base class

Implements CaloCompositeKineBase.

Definition at line 883 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ setBits()

void AthenaBarCodeImpl::setBits ( unsigned short  startbit,
unsigned short  nbits,
AthenaBarCode_t  id,
AthenaBarCode_t bc 
) const
protectedinherited

now id=0000000xx;

Definition at line 260 of file AthenaBarCodeImpl.cxx.

263 {
266  tmp2 = 0;
267 
268  if ((id) >= ((~tmp2) >> (TotalBits - nbits))) {
269 
270  IMessageSvc *msgsvc = Athena::getMessageSvc();
271  if (msgsvc) {
272  MsgStream msg(msgsvc, "AthenaBarCodeImpl");
273  msg << MSG::WARNING << "setBits::bit to be set:" << id
274  << " is larger than limit:" << ((~tmp2) >> (TotalBits - nbits))
275  << endmsg;
276  }
277  else {
278  std::cout << "setBits::bit to be set:" << id << " is larger than limit:"
279  << ((~tmp2) >> (TotalBits - nbits)) << std::endl;
280  }
281  throw std::runtime_error("AthenaBarCodeImpl::setBit Failed");
282  }
283 
285  tmp = (id << (TotalBits - nbits - startbit)); //tmp=00000xx00
286  tmp2 = ((~tmp2) >> (TotalBits - nbits)); //tmp2=000000011
287 
288  tmp2 = (tmp2 << (TotalBits - nbits - startbit)); //tmp2=000001100
289  tmp2 = (~tmp2); //tmp2=111110011
290 
291  //now m_barcode=aaaaayyaa
292  bc &= tmp2; //m_barcode=aaaaa00aa
293  bc |= tmp; //m_barcode=aaaaaxxaa
294 
295 }

◆ setCalE()

void CaloCluster::setCalE ( double  e)
private

Set calibrated (LC) energy.

Definition at line 1340 of file CaloCluster.cxx.

1340 { P4EEtaPhiM::setE(e); }

◆ setCalEta()

void CaloCluster::setCalEta ( double  eta)
private

Set calibrated (LC) eta.

Definition at line 1341 of file CaloCluster.cxx.

1341 { P4EEtaPhiM::setEta(eta); }

◆ setCalM()

void CaloCluster::setCalM ( double  m)
private

Set calibrated (LC) m.

Definition at line 1343 of file CaloCluster.cxx.

1343 { P4EEtaPhiM::setM(m); }

◆ setCalPhi()

void CaloCluster::setCalPhi ( double  phi)
private

Set calibrated (LC) phi.

Definition at line 1342 of file CaloCluster.cxx.

1342 { P4EEtaPhiM::setPhi(phi); }

◆ setCellLink()

bool CaloClusterNavigable::setCellLink ( CaloCellLinkContainer pLink)
inlineprotectedinherited

Definition at line 405 of file CaloClusterNavigable.h.

406 {
407  if (!pLinkStore)
408  return false;
409 
410  CaloCellLink* pLink = *m_cellLink != 0
411  ? const_cast<CaloCellLink*>(*m_cellLink) : (CaloCellLink*)0;
412 
413  m_ownLinkStore = !pLinkStore->ownElements();
415  pLink,
416  m_cellLink);
417 }

◆ setClusterSize()

void CaloCluster::setClusterSize ( unsigned int  theClusterSize)
inline

Set cluster size.

Definition at line 892 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

892 { m_clusterSize = theClusterSize; }

◆ setDataLink()

bool CaloCluster::setDataLink ( CaloShowerContainer pDataLink)
inlineprotected

Set element link for shower data.

Definition at line 1262 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1263 {
1264  if (!pDataLink)
1265  return false;
1266  CaloShower* pData = m_shower;
1267  m_ownDataStore = !pDataLink->ownElements();
1269  pData,
1270  m_dataLink);
1271 }

◆ setDataStore()

bool CaloCluster::setDataStore ( CaloShower pData,
bool  ownStores = true 
)
inlineprotected

Setup data store.

Definition at line 909 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

910 {
911  // m_dataStorePointer = pData;
912  m_ownDataStore = ownStores;
913  m_dataLink.setElement(pData);
914  m_shower = pData;
915  return m_dataLink.isValid();
916 }

◆ setDefaultHash()

void AthenaBarCodeImpl::setDefaultHash ( const char *  jobid)
staticinherited

Definition at line 298 of file AthenaBarCodeImpl.cxx.

298  {
299  getDefaultHash (jobid);
300 }

◆ setDefaultSignalState()

bool CaloCluster::setDefaultSignalState ( signalstate_t  s)
inlineprotected

Sets default signal state.

Definition at line 865 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

866 {
867  m_defSigState = s;
868  return this->setSignalState(s);
869 }

◆ setE()

void CaloCluster::setE ( double  e)
inlinevirtual

Set energy.

Reimplemented from P4EEtaPhiM.

Definition at line 767 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

768 { (this->*m_setE)(e); }

◆ setEInSamples()

void CaloCluster::setEInSamples ( const std::vector< double > &  theEnergies)
inline

Set energy in all samplings from a vector.

Parameters
theEnergiesreference to a vector holding the energies in samplings (input unchanged)
Note
The CaloSampling::CaloSample indicator is interpreted as an (unsigned) int internally. The input vector should be set up such that the index to an energy value is understood to be the CaloSampling::CaloSample of the corresponding calorimeter sampling.

Definition at line 1041 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1042 { this->setVariable(CaloVariableType::ENERGY,theEnergies,true); }

◆ setEndcap()

void CaloCluster::setEndcap ( bool  endcap)
inline

Sets EMEC indicator.

Parameters
endcapinput flag is true if at least one cell in EMEC

Definition at line 939 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

939 { m_endcap = endcap; }

◆ setenergy()

void CaloCluster::setenergy ( sampling_type  theSampling,
double  theEnergy 
)
inline

Set energy for a given sampling.

Parameters
theSamplingsampling indicator
theEnergyenergy data

Depreciated. Sets the sampling energy without updating the global kinematics.

Definition at line 1029 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1030 { this->setVariable(CaloVariableType::ENERGY,theSampling,theEnergy,true); }

◆ setenergymax()

void CaloCluster::setenergymax ( sampling_type  sampling,
double  m 
)

Set the maximum energy in a given sampling.

Definition at line 908 of file CaloCluster.cxx.

909 {
910  if ( this->isEMSampling(sampling) )
911  this->setVariable(CaloVariableType::MAX_ENERGY,sampling,m,true);
912 }

◆ setEta()

void CaloCluster::setEta ( double  eta)
inlinevirtual

Set eta.

Reimplemented from P4EEtaPhiM.

Definition at line 769 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

770 { (this->*m_setEta)(eta); }

◆ seteta()

void CaloCluster::seteta ( sampling_type  sampling,
double  eta 
)
inline

Set \( \eta \) in a given sampling.

Parameters
samplingcalorimeter sampling indicator
eta\( \eta \) value to be set

Definition at line 1048 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1049 { this->setVariable(CaloVariableType::ETA,sampling,eta,true); }

◆ setEtaInSamples()

void CaloCluster::setEtaInSamples ( const std::vector< double > &  theEtas)
inline

Set \( \eta \) in all samplings from a vector.

Parameters
theEtasreference to a vector holding the \( \eta \) in samplings (input unchanged)
Note
The CaloSampling::CaloSample indicator is interpreted as an (unsigned) int internally. The input vector should be set up such that the index to a \( \eta \) value is understood to be the CaloSampling::CaloSample of the corresponding calorimeter sampling.

Definition at line 1061 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1062 { this->setVariable(CaloVariableType::ETA,theEtas,true); }

◆ setetamax()

void CaloCluster::setetamax ( sampling_type  sampling,
double  m 
)

Set the \( \eta \) of cell with maximum energy in a given sampling.

Definition at line 914 of file CaloCluster.cxx.

915 {
916  if ( this->isEMSampling(sampling) )
917  this->setVariable(CaloVariableType::MAX_ETA,sampling,m,true);
918 }

◆ setetasize()

void CaloCluster::setetasize ( sampling_type  sampling,
double  size 
)

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

Parameters
samplingcalorimeter sampling indicator
sizeinput \( \Delta\eta \) cluster size

Definition at line 930 of file CaloCluster.cxx.

931 {
932  if ( this->isEMSampling(sampling) )
933  this->setVariable(CaloVariableType::DELTA_ETA,sampling,size,true);
934 }

◆ setLinkStore()

bool CaloClusterNavigable::setLinkStore ( CaloCellLink pLink,
bool  ownStores = true 
)
inlineprotectedinherited

Definition at line 191 of file CaloClusterNavigable.h.

193 {
194  m_cellLink.setElement(pLink);
195  m_ownLinkStore = ownStores;
196  // m_cellLinkPointer = pLink;
197  return *m_cellLink != 0;
198 }

◆ setM()

void CaloCluster::setM ( double  m)
inlinevirtual

Set mass.

Reimplemented from P4EEtaPhiM.

Definition at line 773 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

774 { (this->*m_setM)(m); }

◆ setPhi()

void CaloCluster::setPhi ( double  phi)
inlinevirtual

Set phi.

Reimplemented from P4EEtaPhiM.

Definition at line 771 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

772 { (this->*m_setPhi)(phi); }

◆ setphi()

void CaloCluster::setphi ( sampling_type  sampling,
double  phi 
)
inline

Set \( \varphi \) in a given sampling.

Parameters
samplingcalorimeter sampling indicator
phi\( \varphi \) value to be set

Definition at line 1068 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1069 { this->setVariable(CaloVariableType::PHI,sampling,phi,true); }

◆ setPhiInSamples()

void CaloCluster::setPhiInSamples ( const std::vector< double > &  thePhis)
inline

Set \( \varphi \) in all samplings from a vector.

Parameters
thePhisreference to a vector holding the \( \eta \) in samplings (input unchanged)
Note
The CaloSampling::CaloSample indicator is interpreted as an (unsigned) int internally. The input vector should be set up such that the index to a \( \varphi \) value is understood to be the CaloSampling::CaloSample of the corresponding calorimeter sampling.

Definition at line 1081 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

1082 { this->setVariable(CaloVariableType::PHI,thePhis,true); }

◆ setphimax()

void CaloCluster::setphimax ( sampling_type  sampling,
double  m 
)

Set the \( \varphi \) of cell with maximum energy in a given sampling.

Definition at line 920 of file CaloCluster.cxx.

921 {
922  if ( this->isEMSampling(sampling) )
923  this->setVariable(CaloVariableType::MAX_PHI,sampling,m,true);
924 }

◆ setphisize()

void CaloCluster::setphisize ( sampling_type  sampling,
double  size 
)

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

Parameters
samplingcalorimeter sampling indicator
sizeinput \( \Delta\varphi \) cluster size

Definition at line 940 of file CaloCluster.cxx.

941 {
942  if ( this->isEMSampling(sampling) )
943  this->setVariable(CaloVariableType::DELTA_PHI,sampling,size,true);
944 }

◆ setRawE()

void CaloCluster::setRawE ( double  e)
private

Set raw energy.

Definition at line 1320 of file CaloCluster.cxx.

1320 { m_rawE = e; }

◆ setRawEta()

void CaloCluster::setRawEta ( double  eta)
private

Set raw eta.

Definition at line 1321 of file CaloCluster.cxx.

1321 { m_rawEta = eta; }

◆ setRawM()

void CaloCluster::setRawM ( double  m)
private

Set raw m.

Definition at line 1323 of file CaloCluster.cxx.

1323 { m_rawM = m; }

◆ setRawPhi()

void CaloCluster::setRawPhi ( double  phi)
private

Set raw phi.

Definition at line 1322 of file CaloCluster.cxx.

1322 { m_rawPhi = phi; }

◆ setRecoStatus() [1/2]

void CaloCompositeKineBase::setRecoStatus ( const CaloRecoStatus recStatus)
inlineinherited

Set the reconstruction status.

Definition at line 82 of file CaloCompositeKineBase.h.

83 { m_status = theStatus; }

◆ setRecoStatus() [2/2]

void CaloCompositeKineBase::setRecoStatus ( const CaloRecoStatus::StatusIndicator recIndic)
inlineinherited

Set the reconstruction status indicator (recommended)

Definition at line 86 of file CaloCompositeKineBase.h.

88 { m_status.setStatus(recIndic); }

◆ setReserveBits()

void AthenaBarCodeImpl::setReserveBits ( AthenaBarCode_t  id)
inherited

Definition at line 223 of file AthenaBarCodeImpl.cxx.

223  {
225  initABC();
226 
227  try {
229  setBits(SReserveBits, ReserveBits, id, bc);
230  m_barcode = bc;
231  }
232  catch (const GaudiException& Exception) {
233  throw std::runtime_error(
234  "AthenaBarCodeImpl::newVersion()::Version Overflow");
235  }
236 }

◆ setSignalState()

bool CaloCluster::setSignalState ( signalstate_t  s)
protectedvirtual

Sets signal state.

Implements ISignalState.

Definition at line 1345 of file CaloCluster.cxx.

1346 {
1347  if ( !this->hasSignalState(s) ) return false;
1348 
1349  m_signalState = s;
1350 
1351  return
1352  s == statename_t::CALIBRATED ? this->setStateCal() :
1353  s == statename_t::ALTCALIBRATED ? this->setStateAlt() :
1354  s == statename_t::UNCALIBRATED ? this->setStateRaw() :
1355  false;
1356 }

◆ setStateAlt()

bool CaloCluster::setStateAlt ( )
private

Helper to switch to calibrated (cell weight) state.

Definition at line 1392 of file CaloCluster.cxx.

1393 {
1394  // std::cout << "CaloCluster [" << this
1395  // << "] setStateAlt()" << std::endl;
1400  //
1405  return true;
1406 }

◆ setStateCal()

bool CaloCluster::setStateCal ( )
private

Helper to switch to calibrated (LC) state.

Definition at line 1408 of file CaloCluster.cxx.

1409 {
1410  // std::cout << "CaloCluster [" << this
1411  // << "] setStateCal()" << std::endl;
1416  //
1421  return true;
1422 }

◆ setStateRaw()

bool CaloCluster::setStateRaw ( )
private

Helper to switch to raw state.

Definition at line 1375 of file CaloCluster.cxx.

1376 {
1377  // std::cout << "CaloCluster [" << this
1378  // << "] setStateRaw()" << std::endl;
1383  //
1388  //
1389  return true;
1390 }

◆ setStores()

bool CaloCluster::setStores ( CaloShower pData,
CaloCellLink pLink,
bool  ownStores = true 
)
inlineprotected

Setup internal store.

Definition at line 902 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

903 {
904  return ( this->setDataStore(pData,ownStores) &&
905  this->setLinkStore(pLink,ownStores) );
906 }

◆ setTime()

void CaloCluster::setTime ( double  theTime)
inline

Set cluster time.

Definition at line 889 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

889 { m_time = theTime; }

◆ setUUIDHash()

void AthenaBarCodeImpl::setUUIDHash ( AthenaBarCode_t  uuidhash)
inlineprivateinherited

Definition at line 114 of file AthenaBarCodeImpl.h.

114  {
115  m_barcode = combineWithUUIDHash(uuidhash);
116 }

◆ setVariable() [1/2]

bool CaloCluster::setVariable ( const variable_type varType,
const sampling_type samType,
const double &  varData,
bool  useLink = false 
)

General sampling variable setter.

Parameters
varTypevariable type
samTypesampling indicator
varDatadata value
useLinkif true data is stored in external store

Definition at line 872 of file CaloCluster.cxx.

876 {
877  // check samplingpattern
878  if(!this->hasSampling(samType)){
879  // std::cout << " Cluster does not have sampling " << samType << std::endl;
882  }
883 
884  // allocate modifiable data store
885  CaloSamplingData* pDataStore = this->getDataStore(varType,useLink);
886  return pDataStore != nullptr
887  ? pDataStore->storeData(varType,samType,varData)
888  : false;
889 }

◆ setVariable() [2/2]

bool CaloCluster::setVariable ( const variable_type varType,
const std::vector< double > &  varList,
bool  useLink = false 
)

Set variables of a given type in all samplings at once.

Definition at line 892 of file CaloCluster.cxx.

895 {
896  CaloSamplingData* pDataStore = this->getDataStore(varType,useLink);
897  return pDataStore != nullptr
898  ? pDataStore->storeData(varType,varList)
899  : false;
900 }

◆ setVersion() [1/2]

void AthenaBarCodeBase::setVersion ( AthenaBarCodeVersion_t  newversion)
virtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 59 of file AthenaBarCodeBase.cxx.

60 {
61  AthenaBarCodeImpl::setVersion (newversion);
62 }

◆ setVersion() [2/2]

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t  )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

Definition at line 93 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

93  {
94  // throw std::runtime_error("IAthenaBarCode::setVersion():: can't setVersion() in the dummy implementation");
95  }

◆ signalState()

CaloCluster::signalstate_t CaloCluster::signalState ( ) const
inlinevirtual

Retrieve signal state.

Implements ISignalState.

Definition at line 860 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

861 { return m_signalState; }

◆ sinPhi()

double P4EEtaPhiMBase::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 59 of file P4EEtaPhiMBase.cxx.

60 {
61  return std::sin(this->phi());
62 }

◆ sinTh()

double P4EEtaPhiMBase::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 87 of file P4EEtaPhiMBase.cxx.

88 {
89  // avoid numeric overflow if very large eta
90 
91  double aEta=std::abs(this->eta());
92  if ( aEta>710) {
93  aEta=710;
94  }
95 
96  return 1./std::cosh(aEta);
97 
98 }

◆ tanTh()

double P4EEtaPhiMBase::tanTh ( ) const
virtualinherited

tan theta

Implements I4Momentum.

Definition at line 64 of file P4EEtaPhiMBase.cxx.

65 {
66  // avoid numeric overflow if very large eta
67 
68  double theEta=this->eta();
69  if ( std::abs(theEta)>710) {
70  theEta=theEta>0 ? 710 : -710;
71  return 1./std::sinh(theEta);
72  }
73 
74  return 1./this->cotTh();
75 }

◆ unlockVariable()

bool CaloCluster::unlockVariable ( const variable_type varType)

Unlock variable (remove lock)

Definition at line 1301 of file CaloCluster.cxx.

1302 {
1303  unsigned int bitPattern(CaloVariableType::getVariableBit(varType));
1304  if ( this->isLocked(bitPattern) )
1305  {
1306  m_lockPattern = m_lockPattern ^ bitPattern;
1307  return ! this->isLocked(bitPattern);
1308  }
1309  else
1310  {
1311  return false;
1312  }
1313 }

◆ updateKine()

void CaloCluster::updateKine ( const CaloCell theCell,
double  weight 
)
protectedvirtual

Updates cluster kinematics when cell is added.

Parameters
theCellpointer to a CaloCell
weightsignal weight of cell in cluster

Present implementation performs full four-vector update for each cell added.

Implements CaloCompositeCellBase< CaloClusterNavigable >.

Definition at line 263 of file CaloCluster.cxx.

264 {
265 
266  // update global kinematics
267  //
268  // for the update of the position the normalization is not a trival
269  // thing. The previous implementation used the sum of weighted
270  // energies as normalization. This leads to unphysical eta and phi
271  // values in case negative energies are added in. The new algorithm
272  // takes therefore |E| instead of E which gives the same eta and phi
273  // as before for the 2 cases where all cells are negative or all
274  // cells are positive. In the mixed case it will give the direction
275  // of activity in the calorimeter.
276 
277  if (!theCell->caloDDE()) return;
278 
279  double theEnergyNoWeight = theCell->e();
280  double theEnergy = weight * theEnergyNoWeight;
281  double cellEta = theCell->eta();
282  double cellPhi = theCell->phi();
283  // weight might be negative for removing cells
284  // therefore the AbsEnergy can be negative ...
285  double theAbsEnergy = weight * fabs(theEnergyNoWeight);
286  double thePhi = proxim(cellPhi,this->phi());
287  double theNewEta =
288  m_posNorm * this->eta() + theAbsEnergy * cellEta;
289  double theNewPhi = m_posNorm * this->phi() + theAbsEnergy * thePhi;
290  double theNewEnergy = this->e() + theEnergy;
291  m_posNorm += theAbsEnergy;
292 
293  if ( m_posNorm != 0. )
294  {
295  this->setEta(theNewEta/m_posNorm);
296  this->setPhi(CaloPhiRange::fix (theNewPhi/m_posNorm));
297  }
298  else
299  {
300  this->setEta(0);
301  this->setPhi(0);
302  }
303 
304  this->setE(theNewEnergy);
305 
306  // calculate the cluster time from cells which provide a time
307  // two modes are under discussion - either use an energy^2 weighted
308  // average (sigma_t ~ 1/E) or just the time of the leading cell
309  // for now the energy^2 weighted average is implemented ...
310 
311  // need sampling number already for time
312  CaloSampling::CaloSample sam = theCell->caloDDE()->getSampling();
313  // unknown sampling
314  if ( sam == CaloSampling::Unknown ) return;
315 
316  unsigned pmask = 0;
317  if (sam != CaloSampling::PreSamplerB &&
319  {
320  if ( theCell->caloDDE()->is_tile() )
321  pmask = 0x8080;
322  else
323  pmask = 0x2000;
324  }
325 
326  // Is time defined?
327  if ( theCell->provenance() & pmask ) {
328  // keep the sign of weight for the time norm in case a cell is removed
329  double theTimeNorm = fabs(weight) * theEnergy * theEnergyNoWeight;
330 
331  double theNewTime = m_timeNorm * this->getTime()
332  + theTimeNorm * theCell->time();
333 
334  m_timeNorm += theTimeNorm;
335 
336  if ( m_timeNorm != 0. )
337  {
338  this->setTime(theNewTime/m_timeNorm);
339  }
340  else
341  {
342  this->setTime(0);
343  }
344  }
345 
347  // Check Sampling Variable Updates //
349 
350  // no update required
351  if ( this->allLocked() ) return;
352 
353  // update sampling quantities
354 
355  // This has gotten a bit more involved. To handle the stores for the
356  // data correctly, a pointer to each store (can be different for each
357  // variable type) has to be retrieved first (internal function). As all
358  // variables need the sampling energy, we start with this store. Note that
359  // the store for each variable can be defined by calling the corresponding
360  // set method before the first \a updateKine invocation.
361 
363  // Energy in Sampling //
365 
367  if ( ! this->isLocked(typeE) )
368  {
369  CaloSamplingData* pEStore = this->getDataStore(typeE,true);
370  if ( pEStore != nullptr )
371  {
372  // note that this is a reference to a modifiable data word!
373  pEStore->retrieveData(typeE,sam) += theEnergy;
374  }
375  }
376 
377  double theOldNorm(m_posSamNorm[sam]);
378  m_posSamNorm[sam]+=theAbsEnergy;
379  double theNewNorm(m_posSamNorm[sam]);
380 
382  // Azimuth //
384 
385  // azimuth
387  if ( ! this->isLocked(typePhi) )
388  {
389  // central azimuth
390  CaloSamplingData* pPhiStore = this->getDataStore(typePhi,true);
391  if ( pPhiStore != nullptr )
392  {
393  double& refPhiSamp = pPhiStore->retrieveData(typePhi,sam);
394  thePhi = proxim(cellPhi,refPhiSamp);
395  theNewPhi = theNewNorm != 0.
396  ? CaloPhiRange::fix((theOldNorm*refPhiSamp+theAbsEnergy*thePhi)/theNewNorm)
397  : double(0);
398 
399  // spread in azimuth
402  if ( ! this->isLocked(typeDPhi) )
403  {
404  CaloSamplingData* pDPhiStore = this->getDataStore(typeDPhi,true);
405  if ( pDPhiStore != nullptr )
406  {
407  // non-const reference -> modification in place!
408  double& refDPhiSamp = pDPhiStore->retrieveData(typeDPhi,sam);
409  double wP2
410  = theOldNorm *
411  ( refDPhiSamp*refDPhiSamp + refPhiSamp*refPhiSamp)
412  + theAbsEnergy * thePhi * thePhi;
413  refDPhiSamp = theNewNorm != 0.
414  ? wP2 / theNewNorm - theNewPhi*theNewPhi
415  : double(0);
416  if ( refDPhiSamp > 0. )
417  {
418  refDPhiSamp = sqrt(refDPhiSamp);
419  }
420  else
421  {
422  refDPhiSamp = double(0);
423  }
424  }
425  }
426  // save the new phi value
427  refPhiSamp = theNewPhi;
428  }
429  }
430 
432  // Rapidity //
434 
435 
436  // rapidity
438  if ( ! this->isLocked(typeEta) )
439  {
440  CaloSamplingData* pEtaStore = this->getDataStore(typeEta,true);
441  if ( pEtaStore != nullptr )
442  {
443  double& refEtaSamp = pEtaStore->retrieveData(typeEta,sam);
444  double theNewEta = theNewNorm != 0.
445  ? (theOldNorm*refEtaSamp+theAbsEnergy* cellEta)/theNewNorm
446  : double(0);
447 
448  // spread in eta
451  if ( ! this->isLocked(typeDEta) )
452  {
453  CaloSamplingData* pDEtaStore = this->getDataStore(typeDEta,true);
454  if ( pDEtaStore != nullptr )
455  {
456  double& refDEtaSamp = pDEtaStore->retrieveData(typeDEta,sam);
457  double wE2 = theOldNorm * (refDEtaSamp * refDEtaSamp +
458  refEtaSamp * refEtaSamp )
459  + theAbsEnergy * cellEta * cellEta;
460  refDEtaSamp = theNewNorm != 0
461  ? wE2 / theNewNorm - theNewEta * theNewEta
462  : double(0);
463  if ( refDEtaSamp > 0. )
464  {
465  refDEtaSamp = sqrt(refDEtaSamp);
466  }
467  else
468  {
469  refDEtaSamp = double(0.0);
470  }
471  }
472  }
473  // save the new eta value
474  refEtaSamp = theNewEta;
475  }
476  }
477 
479  // Maximum Energy Cell //
481 
483  if ( ! this->isLocked(typeEMax) )
484  {
485  CaloSamplingData* pEMaxStore = this->getDataStore(typeEMax,true);
486  if ( pEMaxStore != nullptr )
487  {
488  double& refEMaxSamp = pEMaxStore->retrieveData(typeEMax,sam);
489  if ( refEMaxSamp < theEnergy )
490  {
491  // set new maximum energy
492  refEMaxSamp = theEnergy;
493  // set new eta
494  CaloVariableType::VariableType typeEtaMax =
496  if ( ! this->isLocked(typeEtaMax) )
497  {
498  CaloSamplingData* pEtaMaxStore =
499  this->getDataStore(typeEtaMax,true);
500  if ( pEtaMaxStore != nullptr )
501  {
502  pEtaMaxStore->retrieveData(typeEtaMax,sam) =
503  cellEta;
504  }
505  }
506  // set new phi
507  CaloVariableType::VariableType typePhiMax =
509  if ( ! this->isLocked(typePhiMax) )
510  {
511  CaloSamplingData* pPhiMaxStore =
512  this->getDataStore(typePhiMax,true);
513  if ( pPhiMaxStore != nullptr )
514  {
515  pPhiMaxStore->retrieveData(typePhiMax,sam) = thePhi;
516  }
517  } // lock on phi of maximum sampling signal
518  } // maximum condition
519  } // data store pointer
520  } // lock on max energy
521 
522  if ( theEnergy != 0)
523  {
524  // check sampling bit
527  // count cells in endcap
528 
529  switch(sam)
530  {
532  case CaloSampling::EME1:
533  case CaloSampling::EME2:
534  case CaloSampling::EME3:
535  case CaloSampling::HEC0:
536  case CaloSampling::HEC1:
537  case CaloSampling::HEC2:
538  case CaloSampling::HEC3:
539  case CaloSampling::FCAL0:
540  case CaloSampling::FCAL1:
541  case CaloSampling::FCAL2:
542  m_nEndcap += (weight<0?-1:1);
543  break;
544  default:
545  m_nBarrel += (weight<0?-1:1);
546  break;
547  }
548  }
549 
550  if ( m_nBarrel < 0 ) m_nBarrel = 0;
551  if ( m_nEndcap < 0 ) m_nEndcap = 0;
552 
553  m_barrel = (m_nBarrel>0);
554  m_endcap = (m_nEndcap>0);
555 }

◆ variableBE()

double CaloCluster::variableBE ( const variable_type theVariable,
const int &  samplingIndex 
) const
protected

Rewrite \( e_{0} \varphi_{0} + e_{1} \varphi_{1} \) as \( \left( e_{0} + e_{1} \right) \varphi_{0} + e_{1} \left( \varphi_{1} - \varphi_{0} \right) \) for \( \varphi \) calculation.

Definition at line 953 of file CaloCluster.cxx.

955 {
956  // check input
957  unsigned int iSamp((unsigned int)sam);
958  if ( iSamp > 3 ) return m_errorValue;
959 
960  // barrel and endcap
961  if ( this->inBarrel() && this->inEndcap() )
962  {
963  // offsets for sampling indicators
964  unsigned int bOff = (unsigned int)CaloSampling::PreSamplerB;
965  unsigned int eOff = (unsigned int)CaloSampling::PreSamplerE;
966  CaloSampling::CaloSample bSample =
967  (CaloSampling::CaloSample)(bOff+iSamp);
969  (CaloSampling::CaloSample)(eOff+iSamp);
970  double eBarrel = this->getVariable(CaloVariableType::ENERGY,
971  bSample,true);
972  double eEndCap = this->getVariable(CaloVariableType::ENERGY,
973  eSample,true);
974 
975  double vBarrel = this->getVariable(varType,bSample,true);
976  double vEndCap = this->getVariable(varType,eSample,true);
977 
978  // Deal with invalid eta/phi values.
979  if (varType == CaloVariableType::PHI ||
980  varType == CaloVariableType::ETA)
981  {
982  if (vBarrel <= m_errorValue) {
983  vBarrel = 0;
984  eBarrel = 0;
985  }
986  if (vEndCap <= m_errorValue) {
987  vEndCap = 0;
988  eEndCap = 0;
989  }
990  }
991 
992  // invalid signals
993  double eSum = eBarrel + eEndCap;
994  if ( eSum == 0. ) return m_errorValue;
995  // average
996  double vAverage(m_errorValue);
997  switch ( varType )
998  {
1000  {
1001  double phiSum =
1002  eSum * vBarrel + eEndCap * CaloPhiRange::diff(vEndCap,vBarrel);
1003  vAverage = CaloPhiRange::fix(phiSum/eSum);
1004  break;
1005  }
1006  case CaloVariableType::ETA:
1007  {
1008  vAverage = ( eBarrel * vBarrel + eEndCap * vEndCap ) / eSum;
1009  break;
1010  }
1012  {
1013  vAverage = eSum;
1014  break;
1015  }
1016  default:
1017  {
1018  break;
1019  }
1020  }
1021  return vAverage;
1022  }
1023 
1024  // barrel only
1025  if ( this->inBarrel() )
1026  {
1027  unsigned int bOff = (unsigned int)CaloSampling::PreSamplerB;
1028  CaloSampling::CaloSample bSample =
1029  (CaloSampling::CaloSample)(bOff+iSamp);
1030  return this->getVariable(varType,bSample);
1031  }
1032 
1033  // endcap only
1034  if ( this->inEndcap() )
1035  {
1036  unsigned int eOff = (unsigned int)CaloSampling::PreSamplerE;
1038  (CaloSampling::CaloSample)(eOff+iSamp);
1039  return this->getVariable(varType,eSample);
1040  }
1041 
1042  // just in case
1043  return m_errorValue;
1044 }

Friends And Related Function Documentation

◆ CaloClusterContainerCnv_p1

friend class CaloClusterContainerCnv_p1
friend

◆ CaloClusterContainerCnv_p2

friend class CaloClusterContainerCnv_p2
friend

◆ CaloClusterContainerCnv_p3

friend class CaloClusterContainerCnv_p3
friend

◆ CaloClusterContainerCnv_p4

friend class CaloClusterContainerCnv_p4
friend

◆ CaloClusterContainerCnv_p5

friend class CaloClusterContainerCnv_p5
friend

◆ CaloClusterContainerCnv_p6

friend class CaloClusterContainerCnv_p6
friend

◆ CaloClusterContainerCnv_p7

friend class CaloClusterContainerCnv_p7
friend

◆ CaloClusterContainerCnvTest_p6

friend class CaloClusterContainerCnvTest_p6
friend

◆ CaloClusterContainerCnvTest_p7

friend class CaloClusterContainerCnvTest_p7
friend

◆ CaloClusterSignalState

friend struct CaloClusterSignalState
friend

◆ CaloClusterStoreHelper

friend class CaloClusterStoreHelper
friend

Member Data Documentation

◆ CounterBits

const unsigned short AthenaBarCodeImpl::CounterBits = 26
staticinherited

Definition at line 44 of file AthenaBarCodeImpl.h.

◆ m_altE

double CaloCluster::m_altE
private

Stores calibrated (cell weight) signal.

Definition at line 705 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_altEta

double CaloCluster::m_altEta
private

Stores calibrated (cell weight) signal.

Definition at line 707 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_altM

double CaloCluster::m_altM
private

Stores calibrated (cell weight) signal.

Definition at line 711 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_altPhi

double CaloCluster::m_altPhi
private

Stores calibrated (cell weight) signal.

Definition at line 709 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_badChannelData

badChannelList CaloCluster::m_badChannelData
private

◆ m_barcode

std::atomic<AthenaBarCode_t> AthenaBarCodeImpl::m_barcode
mutableprivateinherited

Definition at line 110 of file AthenaBarCodeImpl.h.

◆ m_barcodeCounter

std::atomic< AthenaBarCode_t > AthenaBarCodeImpl::m_barcodeCounter = 0
staticprivateinherited

Definition at line 109 of file AthenaBarCodeImpl.h.

◆ m_barrel

bool CaloCluster::m_barrel
private

Flag is true if at least one cell in EMB.

Definition at line 549 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_basicSignal

double CaloCluster::m_basicSignal
protected

Stores basic energy signal.

Definition at line 495 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_cellLink

cell_link_type CaloClusterNavigable::m_cellLink
privateinherited

Local pointer to cell store.

Link to cell links object

Definition at line 186 of file CaloClusterNavigable.h.

◆ m_clusterSize

unsigned int CaloCluster::m_clusterSize
private

Cluster size (e.g.

5x5, 3.7, ...)

Definition at line 554 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_dataLink

data_link_type CaloCluster::m_dataLink
protected

{

Linked Stores link to data

Definition at line 488 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_dataStore

CaloSamplingData CaloCluster::m_dataStore
protected

{\ brief Cached Stores

sampling data

Definition at line 479 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_defSigState

signalstate_t CaloCluster::m_defSigState
private

Stores default signal state.

Definition at line 693 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_e

double P4EEtaPhiM::m_e
protectedinherited

Definition at line 75 of file P4EEtaPhiM.h.

◆ m_endcap

bool CaloCluster::m_endcap
private

Flag is true if at least one cell in EMB.

Definition at line 551 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_errorValue

const double CaloCluster::m_errorValue = -999.
staticprotected

Internal error return for real numbers.

Definition at line 476 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_eta

double P4EEtaPhiM::m_eta
protectedinherited

Definition at line 76 of file P4EEtaPhiM.h.

◆ m_eta0

double CaloCluster::m_eta0
private

Cluster seed \( \eta \)

Definition at line 558 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_getE

GET_VALUE CaloCluster::m_getE {}
private

Pointer to getter functions.

Definition at line 672 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_getEta

GET_VALUE CaloCluster::m_getEta {}
private

Pointer to getter functions.

Definition at line 674 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_getM

GET_VALUE CaloCluster::m_getM {}
private

Pointer to getter functions.

Definition at line 678 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_getPhi

GET_VALUE CaloCluster::m_getPhi {}
private

Pointer to getter functions.

Definition at line 676 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_lockPattern

unsigned int CaloCluster::m_lockPattern
private

Variable lock pattern.

Definition at line 581 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_m

double P4EEtaPhiM::m_m
protectedinherited

Definition at line 78 of file P4EEtaPhiM.h.

◆ m_momentStore

CaloClusterMomentStore CaloCluster::m_momentStore
protected

cluster moments

Definition at line 480 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_nBarrel

int CaloCluster::m_nBarrel
private

Counter for number of barrel cells with non-zero weight and energy.

Definition at line 576 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_nEndcap

int CaloCluster::m_nEndcap
private

Counter for number of endcap cells with non-zero weight and energy.

Definition at line 579 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_ownDataStore

bool CaloCluster::m_ownDataStore
protected

}

Temporary stores

Definition at line 485 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_ownLinkStore

bool CaloClusterNavigable::m_ownLinkStore
protectedinherited

Definition at line 178 of file CaloClusterNavigable.h.

◆ m_phi

double P4EEtaPhiM::m_phi
protectedinherited

Definition at line 77 of file P4EEtaPhiM.h.

◆ m_phi0

double CaloCluster::m_phi0
private

Cluster seed \( \varphi \)

Definition at line 560 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_posNorm

double CaloCluster::m_posNorm
private

Stores the normalization e.g.

sum(|E|) for the position calculations.

Definition at line 568 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_posSamNorm

std::vector<double> CaloCluster::m_posSamNorm
private

Stores the normalization e.g.

sum(|E|) for the position calculations in each sampling.

Definition at line 572 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_rawE

double CaloCluster::m_rawE
private

Stores raw signal.

Definition at line 696 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_rawEta

double CaloCluster::m_rawEta
private

Stores raw signal.

Definition at line 698 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_rawM

double CaloCluster::m_rawM
private

Stores raw signal.

Definition at line 702 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_rawPhi

double CaloCluster::m_rawPhi
private

Stores raw signal.

Definition at line 700 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_samplingPattern

unsigned int CaloCluster::m_samplingPattern
protected

Sampling pattern.

Definition at line 501 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_setE

SET_VALUE CaloCluster::m_setE {}
private

Pointer to setter functions.

Definition at line 681 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_setEta

SET_VALUE CaloCluster::m_setEta {}
private

Pointer to setter functions.

Definition at line 683 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_setM

SET_VALUE CaloCluster::m_setM {}
private

Pointer to setter functions.

Definition at line 687 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_setPhi

SET_VALUE CaloCluster::m_setPhi {}
private

Pointer to setter functions.

Definition at line 685 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_shower

CaloShower* CaloCluster::m_shower
protected

}

Non-const pointer to linked store.

Definition at line 492 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_signalState

signalstate_t CaloCluster::m_signalState
private

Stores actual signal state.

Definition at line 691 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_status

CaloRecoStatus CaloCompositeKineBase::m_status
protectedinherited

Calorimeter reconstruction status.

Definition at line 58 of file CaloCompositeKineBase.h.

◆ m_time

double CaloCluster::m_time
protected

Cluster timing.

Definition at line 498 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ m_timeNorm

double CaloCluster::m_timeNorm
private

Stores the normalization for time calculation e.g.

sum(w * |w| * E^2)

Definition at line 564 of file Calorimeter/CaloEvent/CaloEvent/CaloCluster.h.

◆ ReserveBits

const unsigned short AthenaBarCodeImpl::ReserveBits = 2
staticinherited

Definition at line 46 of file AthenaBarCodeImpl.h.

◆ SCounterBits

const unsigned short AthenaBarCodeImpl::SCounterBits = UUIDBits
staticinherited

Definition at line 49 of file AthenaBarCodeImpl.h.

◆ SReserveBits

const unsigned short AthenaBarCodeImpl::SReserveBits = UUIDBits+CounterBits+VersionBits
staticinherited

Definition at line 51 of file AthenaBarCodeImpl.h.

◆ SUUIDBits

const unsigned short AthenaBarCodeImpl::SUUIDBits = 0
staticinherited

Definition at line 48 of file AthenaBarCodeImpl.h.

◆ SVersionBits

const unsigned short AthenaBarCodeImpl::SVersionBits = UUIDBits+CounterBits
staticinherited

Definition at line 50 of file AthenaBarCodeImpl.h.

◆ TotalBits

const unsigned short AthenaBarCodeImpl::TotalBits = 64
staticinherited

Definition at line 41 of file AthenaBarCodeImpl.h.

◆ UNDEFINEDBARCODE

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
staticinherited

Definition at line 52 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

◆ UNDEFINEDVERSION

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDVERSION = UNDEFINEDBARCODE
staticinherited

Definition at line 53 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

◆ UUIDBits

const unsigned short AthenaBarCodeImpl::UUIDBits = 32
staticinherited

Definition at line 43 of file AthenaBarCodeImpl.h.

◆ VersionBits

const unsigned short AthenaBarCodeImpl::VersionBits = 4
staticinherited

Definition at line 45 of file AthenaBarCodeImpl.h.


The documentation for this class was generated from the following files:
CaloSamplingHelper::isEMSampling
static bool isEMSampling(const CaloSample &rSample)
Get sampling characteristics.
Definition: CaloEvent/src/CaloSamplingHelper.cxx:143
CaloCluster::isLocked
bool isLocked(const variable_type &varType) const
Check lock status of variable.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1278
P4EEtaPhiMBase::cotTh
virtual double cotTh() const
cottan theta
Definition: P4EEtaPhiMBase.cxx:77
CaloCluster::m_ownDataStore
bool m_ownDataStore
}
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:485
P4EEtaPhiMBase::pz
virtual double pz() const
z component of momentum
Definition: P4EEtaPhiMBase.cxx:130
CaloCluster::m_setPhi
SET_VALUE m_setPhi
Pointer to setter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:685
P4EEtaPhiMBase::pt
virtual double pt() const
transverse momentum
Definition: P4EEtaPhiMBase.cxx:101
CaloCluster::SW_55ele
@ SW_55ele
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:87
GetLCDefs::Unknown
@ Unknown
Definition: GetLCDefs.h:21
AthenaBarCodeImpl::m_barcodeCounter
static std::atomic< AthenaBarCode_t > m_barcodeCounter
Definition: AthenaBarCodeImpl.h:109
CaloCompositeKineBase::setRecoStatus
void setRecoStatus(const CaloRecoStatus &recStatus)
Set the reconstruction status.
Definition: CaloCompositeKineBase.h:82
CaloCluster::phi0
double phi0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1186
CaloCluster::m_momentStore
CaloClusterMomentStore m_momentStore
cluster moments
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:480
CaloVariableType::VariableType
VariableType
Definition: CaloVariableType.h:15
I4Momentum
Definition: I4Momentum.h:31
CaloCluster::eSample
double eSample(sampling_type sampling) const
Retrieve energy in a given sampling.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:975
AthenaBarCodeImpl::m_barcode
std::atomic< AthenaBarCode_t > m_barcode
Definition: AthenaBarCodeImpl.h:110
CaloVariableType::getAllVariableBits
static unsigned int getAllVariableBits()
Definition: CaloVariableType.h:63
CaloCluster::setTime
void setTime(double theTime)
Set cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:889
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
CaloCluster::m_altPhi
double m_altPhi
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:709
PJobID_t
const unsigned char * PJobID_t
Definition: IJobIDSvc.h:21
CaloCell::phi
virtual double phi() const override final
get phi (through CaloDetDescrElement)
Definition: CaloCell.h:359
CaloShowerContainer::ownElements
bool ownElements() const
Definition: CaloShowerContainer.h:20
CaloRecoStatus::resetStatus
virtual void resetStatus()
reset reconstruction status
Definition: CaloRecoStatus.h:122
DeMoUpdate.tmp2
string tmp2
Definition: DeMoUpdate.py:1168
CaloCluster::m_getM
GET_VALUE m_getM
Pointer to getter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:678
AthenaBarCodeImpl::SUUIDBits
static const unsigned short SUUIDBits
Definition: AthenaBarCodeImpl.h:48
CaloCluster::hasSampling
bool hasSampling(const sampling_type &theSampling) const
Checks if certain sampling contributes to cluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:954
CaloVariableType::MAX_ENERGY
@ MAX_ENERGY
Definition: CaloVariableType.h:20
CaloCluster::m_basicSignal
double m_basicSignal
Stores basic energy signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:495
CaloSamplingData::retrieveData
value_type retrieveData(variable_key_type theVariable, sampling_key_type theSampling) const
Retrieve const reference to individual variable.
Definition: CaloSamplingData.h:225
CaloCluster::setCalEta
void setCalEta(double eta)
Set calibrated (LC) eta.
Definition: CaloCluster.cxx:1341
P4EEtaPhiM::setEta
virtual void setEta(double theEta)
set eta data member
Definition: P4EEtaPhiM.h:117
AthenaBarCodeImpl::hashUUID
static AthenaBarCode_t hashUUID(const char *)
Definition: AthenaBarCodeImpl.cxx:190
AthenaBarCodeImpl::UUIDBits
static const unsigned short UUIDBits
Definition: AthenaBarCodeImpl.h:43
CaloCluster::m_getPhi
GET_VALUE m_getPhi
Pointer to getter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:676
CaloCluster::setRawEta
void setRawEta(double eta)
Set raw eta.
Definition: CaloCluster.cxx:1321
CaloVariableType::PHI
@ PHI
Definition: CaloVariableType.h:17
CaloCluster::m_nEndcap
int m_nEndcap
Counter for number of endcap cells with non-zero weight and energy.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:579
CaloRecoStatus::setStatus
virtual void setStatus(const StatusIndicator &statusIndicator)
Set status.
Definition: CaloRecoStatus.h:107
CaloCluster::SW_35Econv
@ SW_35Econv
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:96
CaloClusterNavigable::cellLink
const cell_link_type & cellLink() const
Access to underlying link.
Definition: CaloClusterNavigable.h:149
AthenaBarCodeImpl::CounterBits
static const unsigned short CounterBits
Definition: AthenaBarCodeImpl.h:44
ISignalState
Definition: ISignalState.h:42
CaloCompositeKineBase::getRecoStatus
const CaloRecoStatus & getRecoStatus() const
Retrieve the reconstruction status.
Definition: CaloCompositeKineBase.h:78
CaloCluster::m_eta0
double m_eta0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:558
P4EEtaPhiMBase::cosPhi
virtual double cosPhi() const
cosinus phi
Definition: P4EEtaPhiMBase.cxx:54
IAthenaBarCode::IAthenaBarCode
IAthenaBarCode()
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:59
CaloCluster::getRawPhi
double getRawPhi() const
Access to raw phi.
Definition: CaloCluster.cxx:1317
CaloCluster::setCalE
void setCalE(double e)
Set calibrated (LC) energy.
Definition: CaloCluster.cxx:1340
CaloCluster::inBarrel
bool inBarrel() const
Returns true if at least one clustered cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:926
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
CaloSamplingData::storeData
bool storeData(variable_key_type theVariable, sampling_key_type theSampling, value_type theData)
}
Definition: CaloSamplingData.cxx:109
CaloCluster::setStateCal
bool setStateCal()
Helper to switch to calibrated (LC) state.
Definition: CaloCluster.cxx:1408
I4Momentum::p
virtual double p() const =0
momentum magnitude
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:141
P4EEtaPhiM
Definition: P4EEtaPhiM.h:25
CaloCluster::SW_35gam
@ SW_35gam
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:92
CaloCluster::getDataStore
CaloSamplingData * getDataStore(const variable_type &theVariable, bool useLink=true)
Definition: CaloCluster.cxx:1093
AthenaBarCodeImpl::SVersionBits
static const unsigned short SVersionBits
Definition: AthenaBarCodeImpl.h:50
CaloCluster::m_getEta
GET_VALUE m_getEta
Pointer to getter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:674
CaloCell_ID_FCS::FCAL1
@ FCAL1
Definition: FastCaloSim_CaloCell_ID.h:41
CaloVariableType::DELTA_PHI
@ DELTA_PHI
Definition: CaloVariableType.h:19
P4EEtaPhiM::m_e
double m_e
Definition: P4EEtaPhiM.h:75
CaloCluster::setVariable
bool setVariable(const variable_type &varType, const sampling_type &samType, const double &varData, bool useLink=false)
General sampling variable setter.
Definition: CaloCluster.cxx:872
JobID_t
uuid_t JobID_t
Definition: IJobIDSvc.h:20
CaloCell::e
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition: CaloCell.h:317
athena.value
value
Definition: athena.py:122
CaloCluster::SW_37gam
@ SW_37gam
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:93
CaloCluster::m_altE
double m_altE
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:705
CaloCluster::m_timeNorm
double m_timeNorm
Stores the normalization for time calculation e.g.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:564
CaloCluster::setSignalState
virtual bool setSignalState(signalstate_t s)
Sets signal state.
Definition: CaloCluster.cxx:1345
CaloClusterMomentStore::CaloClusterMomentIterator
Internally used iterator.
Definition: CaloClusterMomentStore.h:54
CaloCell_ID_FCS::HEC2
@ HEC2
Definition: FastCaloSim_CaloCell_ID.h:29
CaloCluster::m_setEta
SET_VALUE m_setEta
Pointer to setter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:683
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
CaloClusterNavigable::reweight
void reweight(const CaloCell *pCell, const double &weight=double(1.))
re-weight (overwrite old weight)
Definition: CaloClusterNavigable.h:251
AthenaBarCodeImpl::setBits
void setBits(unsigned short startbit, unsigned short nbits, AthenaBarCode_t id, AthenaBarCode_t &bc) const
Definition: AthenaBarCodeImpl.cxx:260
CaloCluster::SW_7_11
@ SW_7_11
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:104
CaloCell::provenance
uint16_t provenance() const
get provenance (data member)
Definition: CaloCell.h:338
CaloCluster::set4Mom
virtual void set4Mom(const I4Momentum *const pMom)
Set kinematics from four-vector.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:841
CaloCluster::setDefaultSignalState
bool setDefaultSignalState(signalstate_t s)
Sets default signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:865
CaloCluster::m_posSamNorm
std::vector< double > m_posSamNorm
Stores the normalization e.g.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:572
AthenaBarCodeImpl::getUUIDHash
AthenaBarCode_t getUUIDHash() const
Definition: AthenaBarCodeImpl.cxx:244
CaloCell::time
float time() const
get time (data member)
Definition: CaloCell.h:352
AthenaBarCodeImpl::setAthenaBarCode
void setAthenaBarCode(AthenaBarCode_t id)
Definition: AthenaBarCodeImpl.cxx:211
CaloShower
Data class for cluster variables associated with a CaloCluster.
Definition: CaloShower.h:12
P4EEtaPhiM::e
virtual double e() const
get energy data member
Definition: P4EEtaPhiM.h:102
CaloClusterMomentStore::contains
virtual bool contains(const moment_type &rMomType) const
Containment check.
Definition: CaloClusterMomentStore.h:237
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
CaloCluster::getCalE
double getCalE() const
Access to calibrated (LC) energy.
Definition: CaloCluster.cxx:1335
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
CaloSamplingHelper::getSamplingBit
static unsigned int getSamplingBit(const CaloSample &rSample)
Return a unique bit set for a given sampling.
Definition: CaloEvent/src/CaloSamplingHelper.cxx:57
CaloCluster::Unknown
@ Unknown
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:105
P4EEtaPhiM::m_m
double m_m
Definition: P4EEtaPhiM.h:78
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
CaloClusterMomentStore
Stores CaloClusterMoment in a keyed map.
Definition: CaloClusterMomentStore.h:15
CaloCluster::getMomentStorePtrs
bool getMomentStorePtrs(const CaloClusterMomentStore *&pFirstStore, const CaloClusterMomentStore *&pSecndStore, bool useLink) const
Definition: CaloCluster.cxx:1216
CaloCluster::m_setM
SET_VALUE m_setM
Pointer to setter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:687
CaloCluster::inEndcap
bool inEndcap() const
Returns true if at least one clustered cell in EMEC.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:931
P4EEtaPhiM::eta
virtual double eta() const
get eta data member
Definition: P4EEtaPhiM.h:105
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
CaloVariableType::MAX_PHI
@ MAX_PHI
Definition: CaloVariableType.h:22
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
CaloClusterNavigable::m_cellLink
cell_link_type m_cellLink
Local pointer to cell store.
Definition: CaloClusterNavigable.h:186
CaloCluster::m_dataLink
data_link_type m_dataLink
{
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:488
AthenaBarCode_t
uint64_t AthenaBarCode_t
barcode for all INav4Mom classes
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:44
CaloShower::getSamplingStore
const sampling_store & getSamplingStore() const
Retrieves the non-modifiable sampling data store.
Definition: CaloShower.h:77
CaloCluster::m_time
double m_time
Cluster timing.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:498
CaloClusterMomentStore::begin
virtual moment_iterator begin() const
{
Definition: CaloClusterMomentStore.h:220
proxim
double proxim(double b, double a)
Definition: CaloGeoHelpers/CaloGeoHelpers/proxim.h:14
CaloCompositeKineBase::CaloCompositeKineBase
CaloCompositeKineBase()
Constructor.
Definition: CaloCompositeKineBase.cxx:8
CaloClusterNavigable::end
virtual object_iter end() const
end iterator for public object access
Definition: CaloClusterNavigable.h:309
AthenaBarCodeImpl::TotalBits
static const unsigned short TotalBits
Definition: AthenaBarCodeImpl.h:41
SETVAR
#define SETVAR(v, a)
CaloCluster::m_clusterSize
unsigned int m_clusterSize
Cluster size (e.g.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:554
CaloCell_ID_FCS::HEC1
@ HEC1
Definition: FastCaloSim_CaloCell_ID.h:28
AthenaBarCodeImpl::newVersion
void newVersion()
Definition: AthenaBarCodeImpl.cxx:138
CaloCluster::m_phi0
double m_phi0
Cluster seed
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:560
CaloClusterLinkTemplate::setLink
static bool setLink(CONT *pCont, DOBJ *pDat, ELEM &rElm)
Definition: CaloClusterLinkTemplate.h:26
CaloCluster::getBadChannel
const badChannelList * getBadChannel() const
Definition: CaloCluster.cxx:1434
P4EEtaPhiMBase::hlv
virtual CLHEP::HepLorentzVector hlv() const
HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite dir...
Definition: P4EEtaPhiMBase.cxx:134
lumiFormat.i
int i
Definition: lumiFormat.py:92
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
AthenaBarCodeImpl::getDefaultHash
static AthenaBarCode_t getDefaultHash(const char *jobid=nullptr)
Definition: AthenaBarCodeImpl.cxx:304
CaloCluster::m_getE
GET_VALUE m_getE
Pointer to getter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:672
ret
T ret(T t)
Definition: rootspy.cxx:260
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
I4Momentum::e
virtual double e() const =0
energy
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloVariableType::DELTA_ETA
@ DELTA_ETA
Definition: CaloVariableType.h:18
P4EEtaPhiM::m
virtual double m() const
get mass data member
Definition: P4EEtaPhiM.h:111
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
CaloCell::caloDDE
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition: CaloCell.h:305
CaloCluster::getRawE
double getRawE() const
Access to raw energy.
Definition: CaloCluster.cxx:1315
P4EEtaPhiMBase::cosTh
virtual double cosTh() const
cosinus theta
Definition: P4EEtaPhiMBase.cxx:82
CaloCluster::m_endcap
bool m_endcap
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:551
CaloCluster::Topo_633
@ Topo_633
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:102
CaloCluster::setAltM
void setAltM(double m)
Set calibrated (cell weight) m.
Definition: CaloCluster.cxx:1333
CaloCluster::m_dataStore
CaloSamplingData m_dataStore
{\ brief Cached Stores
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:479
CaloCluster::getAltPhi
double getAltPhi() const
Access to calibrated (cell weight) phi.
Definition: CaloCluster.cxx:1327
CaloCluster::m_altM
double m_altM
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:711
AthenaBarCodeImpl::hasSameAthenaBarCodeExceptVersion
bool hasSameAthenaBarCodeExceptVersion(const IAthenaBarCode &obj) const
Definition: AthenaBarCodeImpl.cxx:120
constants.EME1
int EME1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:55
I4Momentum::eta
virtual double eta() const =0
pseudo rapidity
AthenaBarCodeImpl::SReserveBits
static const unsigned short SReserveBits
Definition: AthenaBarCodeImpl.h:51
CaloCluster::m_rawM
double m_rawM
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:702
CaloCluster::setEta
virtual void setEta(double eta)
Set eta.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:769
P4SignalState::UNCALIBRATED
@ UNCALIBRATED
Definition: ISignalState.h:30
CaloCluster::setRawM
void setRawM(double m)
Set raw m.
Definition: CaloCluster.cxx:1323
CaloCluster::m_samplingPattern
unsigned int m_samplingPattern
Sampling pattern.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:501
INavigable
Definition: INavigable.h:18
PowhegPythia8EvtGen_jetjet.theEnergy
int theEnergy
Definition: PowhegPythia8EvtGen_jetjet.py:12
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
CaloClusterNavigable::fillToken
virtual void fillToken(INavigationToken &iToken) const
fill token for navigation
Definition: CaloClusterNavigable.h:390
CaloCluster::setRawE
void setRawE(double e)
Set raw energy.
Definition: CaloCluster.cxx:1320
AthenaBarCodeImpl::getBits
AthenaBarCode_t getBits(unsigned short startbit, unsigned short nbits) const
Definition: AthenaBarCodeImpl.cxx:249
CaloCluster::getCalEta
double getCalEta() const
Access to calibrated (LC) eta.
Definition: CaloCluster.cxx:1336
AthenaBarCodeImpl::initABC
void initABC() const
Definition: AthenaBarCodeImpl.cxx:24
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
xAOD::CaloClusterBadChannelData
CaloClusterBadChannelData_v1 CaloClusterBadChannelData
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloClusterBadChannelData.h:17
CaloCluster::SW_softe
@ SW_softe
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:99
CaloCluster::setCalPhi
void setCalPhi(double phi)
Set calibrated (LC) phi.
Definition: CaloCluster.cxx:1342
CaloCluster::SW_55Econv
@ SW_55Econv
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:95
LArConditionsTestConfig.msgsvc
msgsvc
Definition: LArConditionsTestConfig.py:74
CaloPhiRange::fix
static double fix(double phi)
Definition: CaloPhiRange.cxx:25
I4Momentum::phi
virtual double phi() const =0
phi in [-pi,pi[
CaloVariableType::MAX_ETA
@ MAX_ETA
Definition: CaloVariableType.h:21
AthenaBarCodeImpl::SCounterBits
static const unsigned short SCounterBits
Definition: AthenaBarCodeImpl.h:49
CaloCluster::m_errorValue
static const double m_errorValue
Internal error return for real numbers.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:476
AthenaBarCodeImpl::combineWithUUIDHash
AthenaBarCode_t combineWithUUIDHash(const AthenaBarCode_t &) const
Definition: AthenaBarCodeImpl.h:119
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
CaloDetDescrElement::is_tile
bool is_tile() const
cell belongs to Tile
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:442
CaloRecoStatus::checkStatus
virtual bool checkStatus(const StatusIndicator &statusIndicator) const
Check status.
Definition: CaloRecoStatus.h:117
CaloCluster::setDataStore
bool setDataStore(CaloShower *pData, bool ownStores=true)
Setup data store.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:909
P4EEtaPhiM::setPhi
virtual void setPhi(double thePhi)
set phi data member
Definition: P4EEtaPhiM.h:120
CaloCluster::moment_iterator
MomentStoreIter moment_iterator
Moment iterator type for CaloCluster clients.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:205
CaloCluster::setCalM
void setCalM(double m)
Set calibrated (LC) m.
Definition: CaloCluster.cxx:1343
CaloCluster::m_rawPhi
double m_rawPhi
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:700
CaloShower::getMomentStore
const moment_store & getMomentStore() const
Access cluster moment store.
Definition: CaloShower.h:71
CaloCluster::getTime
double getTime() const
Access cluster time.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:886
WriteBchToCool.beg
beg
Definition: WriteBchToCool.py:69
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
P4EEtaPhiM::phi
virtual double phi() const
get phi data member
Definition: P4EEtaPhiM.h:108
CaloCluster::setStateAlt
bool setStateAlt()
Helper to switch to calibrated (cell weight) state.
Definition: CaloCluster.cxx:1392
CaloCell_ID_FCS::EME3
@ EME3
Definition: FastCaloSim_CaloCell_ID.h:26
CaloVariableType::getVariableBit
static unsigned int getVariableBit(const VariableType &varType)
Definition: CaloVariableType.h:25
CaloCluster::statename_t
P4SignalState statename_t
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:146
CaloSampling::getNumberOfSamplings
static constexpr unsigned int getNumberOfSamplings()
Get number of available samplings.
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:30
test_pythinning.out
out
Definition: test_pythinning.py:94
AthenaBarCodeImpl::getAthenaBarCode
AthenaBarCode_t getAthenaBarCode() const
Definition: AthenaBarCodeImpl.cxx:203
CaloCluster::setRawPhi
void setRawPhi(double phi)
Set raw phi.
Definition: CaloCluster.cxx:1322
CaloClusterNavigable::putElement
void putElement(const CaloCellContainer *pContainer, const CaloCell *pCell, const double &weight=double(1.))
add element to the Navigable: use pointer
Definition: CaloClusterNavigable.h:201
CaloCompositeKineBase::m_status
CaloRecoStatus m_status
Calorimeter reconstruction status.
Definition: CaloCompositeKineBase.h:58
CaloCluster::hlv
virtual CLHEP::HepLorentzVector hlv() const
redefine hlv() here to avoid ambiguities
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:270
CaloCluster::m_altEta
double m_altEta
Stores calibrated (cell weight) signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:707
CaloCluster::setAltE
void setAltE(double e)
Set calibrated (cell weight) energy.
Definition: CaloCluster.cxx:1330
CaloClusterMomentStore::insert
virtual void insert(const moment_type &rMomType, const moment_value &rMomData)
Insert key/data pair.
Definition: CaloClusterMomentStore.h:213
CaloClusterMomentStore::retrieve
virtual bool retrieve(const moment_type &rMomType, moment_value &rMomData) const
Retrieve cluster moment for a given key.
Definition: CaloClusterMomentStore.cxx:37
CaloCluster::setAltPhi
void setAltPhi(double phi)
Set calibrated (cell weight) phi.
Definition: CaloCluster.cxx:1332
CaloCell_ID_FCS::HEC0
@ HEC0
Definition: FastCaloSim_CaloCell_ID.h:27
P4EEtaPhiMBase::p
virtual double p() const
magnitude of 3-momentum.
Definition: P4EEtaPhiMBase.cxx:21
I4Momentum::m
virtual double m() const =0
mass
CaloCluster::m_setE
SET_VALUE m_setE
Pointer to setter functions.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:681
CaloCluster::SW_35ele
@ SW_35ele
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:88
P4EEtaPhiMBase::sinTh
virtual double sinTh() const
sinus theta
Definition: P4EEtaPhiMBase.cxx:87
CaloCluster::SW_37Econv
@ SW_37Econv
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:97
readCCLHist.int
int
Definition: readCCLHist.py:84
CaloCluster::setE
virtual void setE(double e)
Set energy.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:767
CaloCluster::m_shower
CaloShower * m_shower
}
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:492
CaloCluster::allLocked
bool allLocked() const
Check if all variables are locked.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1289
CaloCluster::getAltEta
double getAltEta() const
Access to calibrated (cell weight) eta.
Definition: CaloCluster.cxx:1326
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
Navigable::size
virtual unsigned int size() const
P4EEtaPhiMBase::sinPhi
virtual double sinPhi() const
sinus phi
Definition: P4EEtaPhiMBase.cxx:59
CaloCluster::m_defSigState
signalstate_t m_defSigState
Stores default signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:693
CaloSamplingData::contains
bool contains(variable_key_type theVariable) const
Check on available variable types.
Definition: CaloSamplingData.h:282
CaloCondBlobAlgs_fillNoiseFromASCII.hash
dictionary hash
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:109
P4EEtaPhiM::setM
virtual void setM(double theM)
set mass data member
Definition: P4EEtaPhiM.h:123
CaloDetDescrElement::getSampling
CaloCell_ID::CaloSample getSampling() const
cell sampling
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:395
CaloClusterMomentStore::end
virtual moment_iterator end() const
iterator loop terminator
Definition: CaloClusterMomentStore.h:226
AthenaBarCodeImpl::hasSameAthenaBarCode
bool hasSameAthenaBarCode(const IAthenaBarCode &obj) const
Definition: AthenaBarCodeImpl.cxx:110
CaloCluster::eta
virtual double eta() const
Retrieve eta independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:755
lumiFormat.fill
fill
Definition: lumiFormat.py:111
CaloCluster::SW_55gam
@ SW_55gam
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:91
AthenaBarCodeImpl::makeDefaultHash
static AthenaBarCode_t makeDefaultHash(const char *jobid)
Definition: AthenaBarCodeImpl.cxx:312
CaloCell_ID_FCS::PreSamplerE
@ PreSamplerE
Definition: FastCaloSim_CaloCell_ID.h:23
P4EEtaPhiMBase
Definition: P4EEtaPhiMBase.h:26
CaloCell_ID_FCS::PreSamplerB
@ PreSamplerB
Definition: FastCaloSim_CaloCell_ID.h:19
CaloClusterMoment
defines enums and data types for different moments of CaloCluster
Definition: CaloClusterMoment.h:29
CaloClusterNavigable::getCellLink
CaloCellLink * getCellLink()
Definition: CaloClusterNavigable.cxx:39
CaloCluster::m_nBarrel
int m_nBarrel
Counter for number of barrel cells with non-zero weight and energy.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:576
INavigable4Momentum
Definition: INavigable4Momentum.h:21
CaloCluster::signalstate_t
P4SignalState::State signalstate_t
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:147
CaloCluster::setStores
bool setStores(CaloShower *pData, CaloCellLink *pLink, bool ownStores=true)
Setup internal store.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:902
CaloCluster::setM
virtual void setM(double m)
Set mass.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:773
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
DetectorZone::barrel
@ barrel
CaloCluster::e
virtual double e() const
Retrieve energy independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:753
P4SignalState::CALIBRATED
@ CALIBRATED
Definition: ISignalState.h:31
P4EEtaPhiM::setE
virtual void setE(double theE)
set energy data member
Definition: P4EEtaPhiM.h:114
beamspotnt.varList
list varList
Definition: bin/beamspotnt.py:1108
CaloCluster::m_rawE
double m_rawE
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:696
CaloCluster::eta0
double eta0() const
Returns raw of cluster seed.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:1180
CaloCluster::m_posNorm
double m_posNorm
Stores the normalization e.g.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:568
CaloCluster::getAltE
double getAltE() const
Access to calibrated (cell weight) energy.
Definition: CaloCluster.cxx:1325
CaloCell_ID_FCS::FCAL2
@ FCAL2
Definition: FastCaloSim_CaloCell_ID.h:42
CaloCluster::variableBE
double variableBE(const variable_type &theVariable, const int &samplingIndex) const
Rewrite as for calculation.
Definition: CaloCluster.cxx:953
P4SignalState::ALTCALIBRATED
@ ALTCALIBRATED
Definition: ISignalState.h:32
CaloClusterNavigable::setLinkStore
bool setLinkStore(CaloCellLink *pLink, bool ownStores=true)
Definition: CaloClusterNavigable.h:191
python.test_cfgItemList.msg
msg
Definition: test_cfgItemList.py:7
CaloCluster::getMomentStore
CaloClusterMomentStore * getMomentStore(bool useLink=true)
Definition: CaloCluster.cxx:1172
CaloVariableType::ETA
@ ETA
Definition: CaloVariableType.h:16
CaloCluster::getCalPhi
double getCalPhi() const
Access to calibrated (LC) phi.
Definition: CaloCluster.cxx:1337
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
CaloCluster::getAltM
double getAltM() const
Access to calibrated (cell weight) m.
Definition: CaloCluster.cxx:1328
AODEventPicking.guid
guid
Definition: AODEventPicking.py:77
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
IAthenaBarCode::UNDEFINEDVERSION
static const AthenaBarCode_t UNDEFINEDVERSION
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:53
CaloCluster::retrieveMoment
bool retrieveMoment(const moment_type &momType, moment_value &momValue, bool useLink=true) const
Retrieve individual moment.
Definition: CaloCluster.cxx:1266
CaloCluster::m
virtual double m() const
Retrieve mass independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:764
CaloCluster::m_signalState
signalstate_t m_signalState
Stores actual signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:691
CaloCluster::setPhi
virtual void setPhi(double phi)
Set phi.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:771
CaloSamplingData
Simple data object to store all variables in calorimeter samplings.
Definition: CaloSamplingData.h:18
CaloClusterNavigable::m_ownLinkStore
bool m_ownLinkStore
Definition: CaloClusterNavigable.h:178
CaloCluster::m_badChannelData
badChannelList m_badChannelData
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:583
CaloCell_ID_FCS::HEC3
@ HEC3
Definition: FastCaloSim_CaloCell_ID.h:30
CaloCluster::SW_37ele
@ SW_37ele
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:89
CaloClusterMomentStore::size
size_t size() const
Number of stored moments.
Definition: CaloClusterMomentStore.h:242
test_pyathena.counter
counter
Definition: test_pyathena.py:15
CaloCluster::hasSignalState
virtual bool hasSignalState(signalstate_t s) const
check if signal state exists for current implementation
Definition: CaloCluster.cxx:1358
CaloClusterNavigable::getCellLinkPtr
CaloCellLink * getCellLinkPtr()
Definition: CaloClusterNavigable.h:426
P4EEtaPhiM::m_phi
double m_phi
Definition: P4EEtaPhiM.h:77
python.PyAthena.obj
obj
Definition: PyAthena.py:135
CaloCell_ID_FCS::FCAL0
@ FCAL0
Definition: FastCaloSim_CaloCell_ID.h:40
CaloCompositeCellBase< CaloClusterNavigable >
CaloCluster::setAltEta
void setAltEta(double eta)
Set calibrated (cell weight) eta.
Definition: CaloCluster.cxx:1331
CaloCluster::Topo_420
@ Topo_420
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:101
CaloCluster::m_barrel
bool m_barrel
Flag is true if at least one cell in EMB.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:549
CaloCluster::getRawM
double getRawM() const
Access to raw mass.
Definition: CaloCluster.cxx:1318
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
CaloClusterNavigable::insertElement
void insertElement(const CaloCellContainer *pContainer, const CaloCell *pCell, const double &weight=double(1.))
insert element without checking if already in store: use element pointer
Definition: CaloClusterNavigable.h:217
CaloCluster::m_rawEta
double m_rawEta
Stores raw signal.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:698
CaloCluster::getCalM
double getCalM() const
Access to calibrated (LC) m.
Definition: CaloCluster.cxx:1338
AthenaBarCodeImpl::VersionBits
static const unsigned short VersionBits
Definition: AthenaBarCodeImpl.h:45
constants.EME2
int EME2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:56
AthenaBarCodeImpl::setVersion
void setVersion(AthenaBarCodeVersion_t newversion)
Definition: AthenaBarCodeImpl.cxx:157
CaloCluster::setStateRaw
bool setStateRaw()
Helper to switch to raw state.
Definition: CaloCluster.cxx:1375
CaloVariableType::ENERGY
@ ENERGY
Definition: CaloVariableType.h:15
CaloCell::eta
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Definition: CaloCell.h:366
CaloPhiRange::diff
static double diff(double phi1, double phi2)
simple phi1 - phi2 calculation, but result is fixed to respect range.
Definition: CaloPhiRange.cxx:33
ServiceHandle
Definition: ClusterMakerTool.h:37
CaloCluster::getVariable
double getVariable(const variable_type &varType, const sampling_type &samType, bool useLink=true) const
General sampling variable access.
Definition: CaloCluster.cxx:837
AthenaBarCodeImpl::getVersion
AthenaBarCodeVersion_t getVersion() const
Definition: AthenaBarCodeImpl.cxx:131
CaloCluster::m_lockPattern
unsigned int m_lockPattern
Variable lock pattern.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:581
CaloCluster::getRawEta
double getRawEta() const
Access to raw eta.
Definition: CaloCluster.cxx:1316
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33
P4EEtaPhiM::m_eta
double m_eta
Definition: P4EEtaPhiM.h:76
CaloCluster::phi
virtual double phi() const
Retrieve phi independent of signal state.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:759
CaloCluster::isEMSampling
bool isEMSampling(const sampling_type &theSampling) const
Checks if cells from a given sampling in EMB and EMEC are in the cluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:951
AthenaBarCodeImpl::ReserveBits
static const unsigned short ReserveBits
Definition: AthenaBarCodeImpl.h:46