ATLAS Offline Software
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Private Member Functions | Private Attributes | List of all members
TileCell Class Referencefinalabstract

#include <TileCell.h>

Inheritance diagram for TileCell:
Collaboration diagram for TileCell:

Public Types

enum  QUALITY_BITS {
  MASK_ALGO = 0x07, MASK_BADCH = 0x08, MASK_OVER = 0x10, MASK_AMPL = 0x20,
  MASK_CMPC = 0x40, MASK_TIME = 0x80, SHIFT_ALGO = 0, SHIFT_BADCH = 3,
  SHIFT_OVER = 4, SHIFT_AMPL = 5, SHIFT_CMPC = 6, SHIFT_TIME = 7,
  MASK_PROV = MASK_ALGO + MASK_BADCH + MASK_OVER, KEEP_TIME = MASK_TIME + MASK_AMPL
}
 definition of various bits in quality
More...
 
enum  Kind {
  P4EETAPHIM, P4IPTCOTTHPHIM, P4PTETAPHIM, P4PXPYPZE,
  UNKNOWN
}
 

Public Member Functions

 TileCell ()
 default constructor More...
 
 TileCell (const CaloDetDescrElement *const &caloDDE, float energy, float time=0.0, uint16_t quality=0, uint16_t provenance=0, CaloGain::CaloGain gain=CaloGain::INVALIDGAIN)
 constructor for TileCell when we don't care about PMT energies separetely (e.g. More...
 
 TileCell (const CaloDetDescrElement *const &caloDDE, const Identifier &cell_ID, float energy, float time=0.0, uint16_t quality=0, uint16_t provenance=0, CaloGain::CaloGain gain=CaloGain::INVALIDGAIN)
 constructor which also works for cells without CaloDDE, e.g. More...
 
 TileCell (const CaloDetDescrElement *const &caloDDE, float ene1, float ene2, float time1, float time2, int qual1, int qual2, int qbit1, int qbit2, int gain1, int gain2)
 constructor using full info from both channels separately More...
 
 TileCell (const CaloDetDescrElement *const &caloDDE, const Identifier &cell_ID, float energy, float time, uint16_t quality, uint16_t provenance, CaloGain::CaloGain, float eneDiff, float timeDiff)
 constructor used in clone() method - just copy everything More...
 
 TileCell (const TileCell *cell)
 copy constructor More...
 
virtual ~TileCell ()
 destructor More...
 
virtual std::unique_ptr< CaloCellclone () const override final
 clone More...
 
void setDDE (CaloDetDescrElement *const &caloDDE)
 all set methods More...
 
virtual void setEnergy (float ene) override final
 set total energy, reset eneDiff to zero More...
 
void setEnergy (float e1, float e2, int gain1, int gain2)
 set energy and gain for both PMTs More...
 
void setEnergy_nonvirt (float e1, float e2, int gain1, int gain2)
 
void setEnergy (float e1, float e2)
 set energy for both PMTs More...
 
virtual void addEnergy (float e) override final
 add energy, keep eneDiff More...
 
virtual void scaleEnergy (float scale) override final
 scale energy and eneDiff More...
 
void addEnergy (float e, int pmt, int gain)
 set energy and gain for one PMT More...
 
void setEqual_nonvirt (int gain)
 set the same gain for two PMTs and set energy diff to zero More...
 
virtual void setTime (float t) override final
 set cell time, reset timeDiff More...
 
void setTime_nonvirt (float t)
 
void setTime (float t, int pmt)
 set time for one PMT, correct timeDiff More...
 
void setQuality (unsigned char qual, unsigned char qbit, int pmt)
 set quality value and quality bits for one PMT More...
 
void setQuality_nonvirt (unsigned char qual, unsigned char qbit, int pmt)
 
virtual void setQuality (uint16_t quality) override final
 set quality word (from CaloCell base class) More...
 
virtual void setQuality (double quality) override final
 set Quality (from CaloCell base class, obsolete) More...
 
void setQual1 (unsigned char qual)
 set quality of first PMT More...
 
void setQual2 (unsigned char qual)
 set quality of second PMT More...
 
void setQbit1 (unsigned char qbit)
 set quality bits of first PMT More...
 
void setQbit2 (unsigned char qbit)
 set quality bits of second PMT More...
 
void setQual1 (unsigned char qual, unsigned char qbit)
 set quality and quality bits of first PMT More...
 
void setQual2 (unsigned char qual, unsigned char qbit)
 set quality and quality bits of second PMT More...
 
float eneDiff (void) const
 all get methods More...
 
float timeDiff (void) const
 get time diff for two PMTs (data member) More...
 
float ene1 (void) const
 get energy of first PMT More...
 
float ene2 (void) const
 get energy of second PMT More...
 
float time1 (void) const
 get time of first PMT More...
 
float time2 (void) const
 get time of second PMT More...
 
uint8_t qual1 (void) const
 get quality of first PMT (data member) More...
 
uint8_t qual2 (void) const
 get quality of second PMT (data member) More...
 
uint8_t qbit1 (void) const
 get quality bits of first PMT (data member) More...
 
uint8_t qbit2 (void) const
 get quality bits of second PMT (data member) More...
 
bool badch1 (void) const
 check if first PMT is in bad channel list and masked More...
 
bool badch2 (void) const
 check if second PMT is in bad channel list and masked More...
 
virtual bool badcell (void) const override final
 check if whole cell is bad (i.e. More...
 
int gain1 (void) const
 get gain of first PMT More...
 
int gain2 (void) const
 get gain of second PMT More...
 
IdentifierHash subcalo_hash (void) const
 get subcalo hash for TileCal cells More...
 
std::string whoami (void) const
 get name of the object More...
 
void print (void) const
 print all cell data memebers to stdout More...
 
 operator std::string () const
 Convertion operator to a std::string Can be used in a cast operation : (std::string) TileCell. More...
 
void assign (const CaloDetDescrElement *caloDDE, const Identifier &ID, float energy, float time, uint16_t quality, uint16_t provenance, CaloGain::CaloGain gain)
 For initializing a cell we get from a DataPool. More...
 
double energy () const
 get energy (data member) More...
 
virtual double phi () const override final
 get phi (through CaloDetDescrElement) More...
 
virtual double eta () const override final
 get eta (through CaloDetDescrElement) More...
 
virtual double sinTh () const override final
 get sin(theta) (through CaloDetDescrElement) More...
 
virtual double cosTh () const override final
 get cos(theta) (derived from sinTh) More...
 
virtual double sinPhi () const override final
 get sin(phi)
More...
 
virtual double cosPhi () const override final
 get cos(phi)
More...
 
virtual double cotTh () const override final
 get cottan(theta)
More...
 
virtual double m () const override final
 get mass (hardcoded to be null) More...
 
virtual double e () const override final
 get energy (data member) (synonym to method energy() More...
 
virtual double et () const override final
 get et
More...
 
float x () const
 get x (through CaloDetDescrElement) More...
 
float y () const
 get y (through CaloDetDescrElement) More...
 
float z () const
 get z (through CaloDetDescrElement) More...
 
Identifier ID () const
 get ID (from cached data member) non-virtual and inline for fast access More...
 
float time () const
 get time (data member) More...
 
uint16_t quality () const
 get quality (data member) More...
 
uint16_t provenance () const
 get provenance (data member) More...
 
CaloGain::CaloGain gain () const
 get gain (data member ) More...
 
const CaloDetDescrElementcaloDDE () const
 get pointer to CaloDetDescrElement (data member) More...
 
virtual void setCaloDDE (const CaloDetDescrElement *caloDDE)
 set pointer to CaloDetDescrElement More...
 
void setProvenance (uint16_t prov)
 set Provenance More...
 
void setGain (CaloGain::CaloGain gain=CaloGain::INVALIDGAIN)
 set gain More...
 
virtual void set4Mom (const I4Momentum *const theI4Mom) override final
 set 4Momentum (will throw exception since cannot be implemented) More...
 
virtual void set4Mom (const I4Momentum &theI4Mom) override final
 set 4Momentum (will throw exception since cannot be implemented) More...
 
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv) override final
 set 4Momentum (will throw exception since cannot be implemented) More...
 
void set (const CaloDetDescrElement *caloDDE, const Identifier &ID)
 Fast method to change the identity of a cell. More...
 
void set (float energy, float time, uint16_t quality, uint16_t provenance, CaloGain::CaloGain gain)
 Fast method to change the data of a cell. More...
 
void set (float energy, float time, double quality, CaloGain::CaloGain gain)
 Fast method to change the data of a cell. 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 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 tanTh () const
 tan theta More...
 
virtual CLHEP::HepLorentzVector hlv () const
 HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same
More...
 
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors. 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...
 
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 void fillToken (INavigationToken &thisToken) const =0
 
virtual void fillToken (INavigationToken &thisToken, const std::any &weight) const =0
 
virtual void fillToken (INavigationToken &) const
 
virtual void fillToken (INavigationToken &, const std::any &) const
 

Static Public Attributes

static const AthenaBarCode_t UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
 
static const AthenaBarCode_t UNDEFINEDVERSION = UNDEFINEDBARCODE
 

Protected Attributes

float m_energy
 energy (in MeV) More...
 
float m_time
 time More...
 
union {
   int   m_quality = 0
 
   uint16_t   m_qualProv [2]
 
   uint8_t   m_tileQual [4]
 
}; 
 quality More...
 
Identifier m_ID
 offline identifier More...
 
CaloGain::CaloGain m_gain
 gain More...
 
const CaloDetDescrElementm_caloDDE
 pointer to static CaloDetDescrElement to access information that does not change from event to event More...
 

Private Member Functions

void updateQuality ()
 merge quality of 2 PMTs in single cell quality More...
 

Private Attributes

float m_eneDiff
 eneDiff = ene1 - ene2 More...
 
float m_timeDiff
 timeDiff = (time1 - time2)/2. More...
 

Detailed Description

Definition at line 57 of file TileCell.h.

Member Enumeration Documentation

◆ Kind

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

Definition at line 33 of file I4Momentum.h.

◆ QUALITY_BITS

definition of various bits in quality

Enumerator
MASK_ALGO 
MASK_BADCH 
MASK_OVER 
MASK_AMPL 
MASK_CMPC 
MASK_TIME 
SHIFT_ALGO 
SHIFT_BADCH 
SHIFT_OVER 
SHIFT_AMPL 
SHIFT_CMPC 
SHIFT_TIME 
MASK_PROV 
KEEP_TIME 

Definition at line 61 of file TileCell.h.

61  {
62  MASK_ALGO = 0x07,
63  MASK_BADCH= 0x08,
64  MASK_OVER = 0x10,
65  MASK_AMPL = 0x20,
66  MASK_CMPC = 0x40,
67  MASK_TIME = 0x80,
68 
69  SHIFT_ALGO = 0,
70  SHIFT_BADCH= 3,
71  SHIFT_OVER = 4,
72  SHIFT_AMPL = 5,
73  SHIFT_CMPC = 6,
74  SHIFT_TIME = 7,
75 
76  // these 5 bits will be saved in compact CaloCellContainer and provenance for every PMT
77  // they are usually the same for all channels except bad channels
79 
80  // time saved in compact CaloCellContainer
81  // if provenance for one PMT is greater or equal KEEP_TIME
82  // i.e. at least bit[7] and bit[5] or bit[7] and bit[6] should be set
84  };

Constructor & Destructor Documentation

◆ TileCell() [1/6]

TileCell::TileCell ( )

default constructor

Definition at line 40 of file TileCell.cxx.

41  : CaloCell()
42  , m_eneDiff(0.0)
43  , m_timeDiff(0.0)
44 {
45 }

◆ TileCell() [2/6]

TileCell::TileCell ( const CaloDetDescrElement *const caloDDE,
float  energy,
float  time = 0.0,
uint16_t  quality = 0,
uint16_t  provenance = 0,
CaloGain::CaloGain  gain = CaloGain::INVALIDGAIN 
)

constructor for TileCell when we don't care about PMT energies separetely (e.g.

cells from Atlfast) only cell energy,time,quality here, no channel quality

Definition at line 47 of file TileCell.cxx.

51  , m_eneDiff(energy)
52  , m_timeDiff(0.0)
53 {
54 }

◆ TileCell() [3/6]

TileCell::TileCell ( const CaloDetDescrElement *const caloDDE,
const Identifier cell_ID,
float  energy,
float  time = 0.0,
uint16_t  quality = 0,
uint16_t  provenance = 0,
CaloGain::CaloGain  gain = CaloGain::INVALIDGAIN 
)

constructor which also works for cells without CaloDDE, e.g.

MBTS (passing null CaloDDE pointer and valid cell identifier for them)

Definition at line 56 of file TileCell.cxx.

61  , m_eneDiff(energy)
62  , m_timeDiff(0.0)
63 {
64 }

◆ TileCell() [4/6]

TileCell::TileCell ( const CaloDetDescrElement *const caloDDE,
float  ene1,
float  ene2,
float  time1,
float  time2,
int  qual1,
int  qual2,
int  qbit1,
int  qbit2,
int  gain1,
int  gain2 
)

constructor using full info from both channels separately

Definition at line 66 of file TileCell.cxx.

70  : CaloCell(caloDDE,ene1+ene2,(time1+time2)/2.0, 0, 0,
71  (CaloGain::CaloGain) ( 0xFFFFFFF0 | (static_cast<unsigned int>(gain2) << 2) | (gain1 & 3) ))
73  , m_timeDiff((time1-time2)/2.)
74 {
75  m_tileQual[0] = std::min(255,abs(qual1));
76  // cppcheck-suppress objectIndex
77  m_tileQual[1] = std::min(255,abs(qual2));
78  // cppcheck-suppress objectIndex
79  m_tileQual[2] = (qbit1 & 0xFF);
80  // cppcheck-suppress objectIndex
81  m_tileQual[3] = (qbit2 & 0xFF);
82 }

◆ TileCell() [5/6]

TileCell::TileCell ( const CaloDetDescrElement *const caloDDE,
const Identifier cell_ID,
float  energy,
float  time,
uint16_t  quality,
uint16_t  provenance,
CaloGain::CaloGain  gain,
float  eneDiff,
float  timeDiff 
)

constructor used in clone() method - just copy everything

Definition at line 91 of file TileCell.cxx.

99 {
100 }

◆ TileCell() [6/6]

TileCell::TileCell ( const TileCell cell)

copy constructor

Definition at line 84 of file TileCell.cxx.

85  : CaloCell(cell->caloDDE(),cell->ID(),cell->energy(),cell->time(),cell->quality(),cell->provenance(),cell->gain())
86  , m_eneDiff(cell->eneDiff())
87  , m_timeDiff(cell->timeDiff())
88 {
89 }

◆ ~TileCell()

TileCell::~TileCell ( )
virtual

destructor

Definition at line 102 of file TileCell.cxx.

103 { }

Member Function Documentation

◆ addEnergy() [1/2]

void TileCell::addEnergy ( float  e)
finaloverridevirtual

add energy, keep eneDiff

Reimplemented from CaloCell.

Definition at line 140 of file TileCell.cxx.

141 {
142  m_energy += ene;
143 }

◆ addEnergy() [2/2]

void TileCell::addEnergy ( float  e,
int  pmt,
int  gain 
)

set energy and gain for one PMT

Definition at line 149 of file TileCell.cxx.

150 {
151  if (pmt > 0) { // second pmt
152  m_eneDiff -= e;
153  m_gain = (CaloGain::CaloGain)( (m_gain & 0xFFFFFFF3) | ((gain & 3) << 2) );
154  } else { // first PMT
155  m_eneDiff += e;
156  m_gain = (CaloGain::CaloGain)( (m_gain & 0xFFFFFFFC) | ( gain & 3 ) );
157  }
158  m_energy += e;
159 }

◆ assign()

void CaloCell::assign ( const CaloDetDescrElement caloDDE,
const Identifier ID,
float  energy,
float  time,
uint16_t  quality,
uint16_t  provenance,
CaloGain::CaloGain  gain 
)
inlineinherited

For initializing a cell we get from a DataPool.

Definition at line 259 of file CaloCell.h.

266 {
267  m_energy = energy;
268  m_time = time;
269  m_ID = ID;
270  m_gain = gain;
271  m_caloDDE = caloDDE;
272  m_qualProv[0]=quality;
274 }

◆ badcell()

virtual bool TileCell::badcell ( void  ) const
inlinefinaloverridevirtual

check if whole cell is bad (i.e.

no energy measurement at all in this cell)

Reimplemented from CaloCell.

Definition at line 220 of file TileCell.h.

220 { return (badch1() && badch2()); }

◆ badch1()

bool TileCell::badch1 ( void  ) const
inline

check if first PMT is in bad channel list and masked

Definition at line 215 of file TileCell.h.

215 { return ((m_tileQual[2]&TileCell::MASK_BADCH) != 0); }

◆ badch2()

bool TileCell::badch2 ( void  ) const
inline

check if second PMT is in bad channel list and masked

Definition at line 218 of file TileCell.h.

218 { return ((m_tileQual[3]&TileCell::MASK_BADCH) != 0); }

◆ caloDDE()

const CaloDetDescrElement * CaloCell::caloDDE ( ) const
inlineinherited

get pointer to CaloDetDescrElement (data member)

Definition at line 305 of file CaloCell.h.

305  {
306  return m_caloDDE;
307 }

◆ clone()

std::unique_ptr< CaloCell > TileCell::clone ( ) const
finaloverridevirtual

clone

Reimplemented from CaloCell.

Definition at line 106 of file TileCell.cxx.

107 {
108  return std::make_unique<TileCell>(this->caloDDE(),
109  this->ID(),
110  this->energy(),
111  this->time(),
112  this->quality(),
113  this->provenance(),
114  this->gain(),
115  this->eneDiff(),
116  this->timeDiff());
117 }

◆ cosPhi()

double CaloCell::cosPhi ( ) const
inlinefinaloverridevirtualinherited

get cos(phi)

Reimplemented from P4EEtaPhiMBase.

Definition at line 401 of file CaloCell.h.

402 {
403  return m_caloDDE->cosPhi();
404 }

◆ cosTh()

double CaloCell::cosTh ( ) const
inlinefinaloverridevirtualinherited

get cos(theta) (derived from sinTh)

Reimplemented from P4EEtaPhiMBase.

Definition at line 380 of file CaloCell.h.

381 {
382  return m_caloDDE->cosTh();
383 }

◆ cotTh()

double CaloCell::cotTh ( ) const
inlinefinaloverridevirtualinherited

get cottan(theta)

Reimplemented from P4EEtaPhiMBase.

Definition at line 387 of file CaloCell.h.

388 {
389  return m_caloDDE->cotTh();
390 }

◆ dump()

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()

double CaloCell::e ( ) const
inlinefinaloverridevirtualinherited

get energy (data member) (synonym to method energy()

Implements I4Momentum.

Definition at line 317 of file CaloCell.h.

318 {
319  return m_energy;
320 }

◆ ene1()

float TileCell::ene1 ( void  ) const
inline

get energy of first PMT

Definition at line 193 of file TileCell.h.

193 { return (m_energy+m_eneDiff)/2.; }

◆ ene2()

float TileCell::ene2 ( void  ) const
inline

get energy of second PMT

Definition at line 195 of file TileCell.h.

195 { return (m_energy-m_eneDiff)/2.; }

◆ eneDiff()

float TileCell::eneDiff ( void  ) const
inline

all get methods

get energy diff for two PMTs (data member)

Definition at line 188 of file TileCell.h.

188 { return m_eneDiff; }

◆ energy()

double CaloCell::energy ( ) const
inlineinherited

get energy (data member)

Definition at line 311 of file CaloCell.h.

312 {
313  return m_energy;
314 }

◆ errors()

const I4MomentumError * P4EEtaPhiMBase::errors ( ) const
virtualinherited

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

Implements I4Momentum.

Reimplemented in P4EEtaPhiM.

Definition at line 175 of file P4EEtaPhiMBase.cxx.

176 {
177  return 0;
178 }

◆ et()

double CaloCell::et ( ) const
inlinefinaloverridevirtualinherited

get et

Reimplemented from P4EEtaPhiMBase.

Definition at line 407 of file CaloCell.h.

408 {
409  return this->e() * this->sinTh();
410 }

◆ eta()

double CaloCell::eta ( ) const
inlinefinaloverridevirtualinherited

get eta (through CaloDetDescrElement)

Implements I4Momentum.

Definition at line 366 of file CaloCell.h.

367 {
368  return m_caloDDE->eta();
369 }

◆ fillToken() [1/4]

virtual void NavigableTerminalNode::fillToken ( INavigationToken ) const
inlinevirtualinherited

Implements INavigable.

Definition at line 31 of file NavigableTerminalNode.h.

31 { };

◆ fillToken() [2/4]

virtual void NavigableTerminalNode::fillToken ( INavigationToken ,
const std::any &   
) const
inlinevirtualinherited

Implements INavigable.

Definition at line 32 of file NavigableTerminalNode.h.

32 { };

◆ fillToken() [3/4]

virtual void INavigable::fillToken ( INavigationToken thisToken) const
pure virtualinherited

Implemented in egamma, eflowObject, Analysis::TauJet, 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 >, Analysis::Muon, 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 >, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, Jet, Navigable< CONT, RPAR, COLL >, Navigable< INavigable4MomentumCollection, MissingETHandlers::Weight >, Navigable< MuonContainer, double >, Navigable< INavigable4MomentumCollection, double >, Navigable< DataVector< INavigable4Momentum > >, Navigable< EMShowerMinimalContainer, double >, Navigable< CaloClusterContainer, double >, Navigable< PhotonContainer, double >, Navigable< ExampleHitContainer, double >, Navigable< ExampleHitContainer >, Navigable< Analysis::MuonContainer, double >, Navigable< DataVector< INavigable4Momentum >, double >, Navigable< CaloCellLinkContainer, double >, Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, Navigable< Rec::TrackParticleContainer, double >, Navigable< CaloCellContainer, double >, Navigable< egammaContainer, double >, Navigable< ElectronContainer, double >, Navigable< TruthParticleContainer, double >, Navigable< JetCollection, double >, CaloClusterNavigable, Analysis::ParticleShallowClone, Analysis::ISvxConstituent, Analysis::ISvxAssociation, Analysis::MuonAssociation, and NavigableTerminalNode.

◆ fillToken() [4/4]

virtual void INavigable::fillToken ( INavigationToken thisToken,
const std::any &  weight 
) const
pure virtualinherited

Implemented in 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 >, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, eflowObject, egamma, Analysis::TauJet, Analysis::Muon, Navigable< CONT, RPAR, COLL >, Navigable< INavigable4MomentumCollection, MissingETHandlers::Weight >, Navigable< MuonContainer, double >, Navigable< INavigable4MomentumCollection, double >, Navigable< DataVector< INavigable4Momentum > >, Navigable< EMShowerMinimalContainer, double >, Navigable< CaloClusterContainer, double >, Navigable< PhotonContainer, double >, Navigable< ExampleHitContainer, double >, Navigable< ExampleHitContainer >, Navigable< Analysis::MuonContainer, double >, Navigable< DataVector< INavigable4Momentum >, double >, Navigable< CaloCellLinkContainer, double >, Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, Navigable< Rec::TrackParticleContainer, double >, Navigable< CaloCellContainer, double >, Navigable< egammaContainer, double >, Navigable< ElectronContainer, double >, Navigable< TruthParticleContainer, double >, Navigable< JetCollection, double >, Jet, CaloClusterNavigable, Analysis::ParticleShallowClone, Analysis::ISvxConstituent, Analysis::ISvxAssociation, Analysis::MuonAssociation, and NavigableTerminalNode.

◆ gain()

CaloGain::CaloGain CaloCell::gain ( ) const
inlineinherited

get gain (data member )

Definition at line 345 of file CaloCell.h.

346 {
347  return m_gain;
348 }

◆ gain1()

int TileCell::gain1 ( void  ) const

get gain of first PMT

Definition at line 182 of file TileCell.cxx.

183 {
184  int gain = m_gain & 3;
185 
186  return ( ( gain < 2) ? gain : CaloGain::INVALIDGAIN);
187 }

◆ gain2()

int TileCell::gain2 ( void  ) const

get gain of second PMT

Definition at line 189 of file TileCell.cxx.

190 {
191  int gain = (m_gain >> 2) & 3;
192 
193  return ( ( gain < 2) ? gain : CaloGain::INVALIDGAIN);
194 }

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

◆ hasSameAthenaBarCode()

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

◆ hasSameAthenaBarCodeExceptVersion()

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

◆ hlv()

CLHEP::HepLorentzVector P4EEtaPhiMBase::hlv ( ) const
virtualinherited

HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same

Implements I4Momentum.

Reimplemented in CaloCluster.

Definition at line 134 of file P4EEtaPhiMBase.cxx.

135 {
136  //minimize the number of calculation and dereference
137  const double theCosTh=this->cosTh();
138 
139  // DR from Frank Paige
140  // negative energy point in opposite direction
141  // BUT Eta and Phi still the same
142  // double theP=theE;
143 
144  const double theP=this->p();
145 
146  const double theSinTh=std::sqrt(1.-theCosTh*theCosTh);
147  const double thePt=theP*theSinTh;
148  const double thePx=thePt*this->cosPhi();
149  const double thePy=thePt*this->sinPhi();
150  const double thePz=theP*theCosTh;
151 
152 
153  return CLHEP::HepLorentzVector(thePx,thePy,thePz,this->e());
154 
155 }

◆ ID()

Identifier CaloCell::ID ( ) const
inlineinherited

get ID (from cached data member) non-virtual and inline for fast access

Definition at line 279 of file CaloCell.h.

279  {
280  return m_ID;
281 }

◆ 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  }

◆ 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; };

◆ m()

double CaloCell::m ( ) const
inlinefinaloverridevirtualinherited

get mass (hardcoded to be null)

Implements I4Momentum.

Definition at line 324 of file CaloCell.h.

325 {
326  // zero mass by convention
327  return 0.;
328 }

◆ 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 }

◆ newVersion()

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  }

◆ operator std::string()

TileCell::operator std::string ( ) const

Convertion operator to a std::string Can be used in a cast operation : (std::string) TileCell.

Definition at line 205 of file TileCell.cxx.

206 {
207  std::ostringstream text(std::ostringstream::out);
208 
209  text << whoami();
210  text << " Id = " << s_cabling->getTileID()->to_string(subcalo_hash(),-2); // two levels above adc_id
211  text << " ener = " << energy();
212  text << " gain = " << gain();
213  text << " time = " << time();
214  text << " qual = " << quality();
215  text << " prov = " << provenance();
216  text << " E1 = " << ene1();
217  text << " G1 = " << gain1();
218  text << " T1 = " << time1();
219  text << " Q1 = " << (int)qual1() << " " << (int)qbit1();
220  text << " E2 = " << ene2();
221  text << " G2 = " << gain2();
222  text << " T2 = " << time2();
223  text << " Q2 = " << (int)qual2() << " " << (int)qbit2();
224  text << " eta = " << eta();
225  text << " phi = " << phi();
226  text << " r = " << caloDDE()->r();
227 
228  return text.str();
229 }

◆ 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()

double CaloCell::phi ( ) const
inlinefinaloverridevirtualinherited

get phi (through CaloDetDescrElement)

Implements I4Momentum.

Definition at line 359 of file CaloCell.h.

360 {
361  return m_caloDDE->phi();
362 }

◆ print()

void TileCell::print ( void  ) const

print all cell data memebers to stdout

Definition at line 200 of file TileCell.cxx.

201 {
202  std::cout << (std::string) (*this) << std::endl;
203 }

◆ provenance()

uint16_t CaloCell::provenance ( ) const
inlineinherited

get provenance (data member)

Definition at line 338 of file CaloCell.h.

339 {
340  // cppcheck-suppress objectIndex
341  return m_qualProv[1];
342 }

◆ 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  }

◆ 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  }

◆ qbit1()

uint8_t TileCell::qbit1 ( void  ) const
inline

get quality bits of first PMT (data member)

Definition at line 209 of file TileCell.h.

209 { return m_tileQual[2]; }

◆ qbit2()

uint8_t TileCell::qbit2 ( void  ) const
inline

get quality bits of second PMT (data member)

Definition at line 212 of file TileCell.h.

212 { return m_tileQual[3]; }

◆ qual1()

uint8_t TileCell::qual1 ( void  ) const
inline

get quality of first PMT (data member)

Definition at line 203 of file TileCell.h.

203 { return m_tileQual[0]; }

◆ qual2()

uint8_t TileCell::qual2 ( void  ) const
inline

get quality of second PMT (data member)

Definition at line 206 of file TileCell.h.

206 { return m_tileQual[1]; }

◆ quality()

uint16_t CaloCell::quality ( ) const
inlineinherited

get quality (data member)

Definition at line 332 of file CaloCell.h.

333 {
334  return m_qualProv[0];
335 }

◆ 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  }

◆ scaleEnergy()

void TileCell::scaleEnergy ( float  scale)
finaloverridevirtual

scale energy and eneDiff

Reimplemented from CaloCell.

Definition at line 144 of file TileCell.cxx.

145 {
146  m_energy *= scale;
147  m_eneDiff *= scale;
148 }

◆ set() [1/3]

void CaloCell::set ( const CaloDetDescrElement caloDDE,
const Identifier ID 
)
inherited

Fast method to change the identity of a cell.

Definition at line 90 of file CaloCell.cxx.

92 {
93  m_ID = ID;
95 }

◆ set() [2/3]

void CaloCell::set ( float  energy,
float  time,
double  quality,
CaloGain::CaloGain  gain 
)
inherited

Fast method to change the data of a cell.

OBSOLETE

Definition at line 114 of file CaloCell.cxx.

118 {
119  m_energy = energy;
120  m_time = time;
121  m_quality = (int)(quality);
122  m_gain = gain;
123 }

◆ set() [3/3]

void CaloCell::set ( float  energy,
float  time,
uint16_t  quality,
uint16_t  provenance,
CaloGain::CaloGain  gain 
)
inherited

Fast method to change the data of a cell.

Definition at line 99 of file CaloCell.cxx.

104 {
105  m_energy = energy;
106  m_time = time;
107  m_gain = gain;
108  m_qualProv[0]=quality;
109  // cppcheck-suppress objectIndex
111 }

◆ set4Mom() [1/3]

void CaloCell::set4Mom ( const CLHEP::HepLorentzVector &  theHlv)
finaloverridevirtualinherited

set 4Momentum (will throw exception since cannot be implemented)

Reimplemented from P4EEtaPhiMBase.

Definition at line 193 of file CaloCell.cxx.

194 {
195  std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
196  std::abort();
197 }

◆ set4Mom() [2/3]

void CaloCell::set4Mom ( const I4Momentum theI4Mom)
finaloverridevirtualinherited

set 4Momentum (will throw exception since cannot be implemented)

Reimplemented from P4EEtaPhiMBase.

Definition at line 187 of file CaloCell.cxx.

188 {
189  std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
190  std::abort();
191 }

◆ set4Mom() [3/3]

void CaloCell::set4Mom ( const I4Momentum *const  theI4Mom)
finaloverridevirtualinherited

set 4Momentum (will throw exception since cannot be implemented)

Reimplemented from P4EEtaPhiMBase.

Definition at line 179 of file CaloCell.cxx.

180 {
181  std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
182  std::abort();
183 
184 }

◆ setAthenaBarCode()

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  }

◆ setCaloDDE()

void CaloCell::setCaloDDE ( const CaloDetDescrElement caloDDE)
virtualinherited

set pointer to CaloDetDescrElement

Definition at line 127 of file CaloCell.cxx.

128 {
129  m_caloDDE = caloDDE;
130  if(m_caloDDE) {
131  m_ID = m_caloDDE->identify();
132  }
133 }

◆ setDDE()

void TileCell::setDDE ( CaloDetDescrElement *const caloDDE)
inline

all set methods

set CaloDDE pointer

Definition at line 133 of file TileCell.h.

133 { m_caloDDE = caloDDE; }

◆ setEnergy() [1/3]

void TileCell::setEnergy ( float  e1,
float  e2 
)

set energy for both PMTs

Definition at line 134 of file TileCell.cxx.

135 {
136  m_eneDiff = e1-e2;
137  m_energy = e1+e2;
138 }

◆ setEnergy() [2/3]

void TileCell::setEnergy ( float  e1,
float  e2,
int  gain1,
int  gain2 
)
inline

set energy and gain for both PMTs

Definition at line 271 of file TileCell.h.

272 {
274 }

◆ setEnergy() [3/3]

void TileCell::setEnergy ( float  ene)
finaloverridevirtual

set total energy, reset eneDiff to zero

Reimplemented from CaloCell.

Definition at line 123 of file TileCell.cxx.

124 {
125  m_energy = ene;
126 
127  // cells with single PMT should always have zero energy in second PMT
129  m_eneDiff = ene;
130  } else {
131  m_eneDiff = 0.0;
132  }
133 }

◆ setEnergy_nonvirt()

void TileCell::setEnergy_nonvirt ( float  e1,
float  e2,
int  gain1,
int  gain2 
)
inline

Definition at line 263 of file TileCell.h.

264 {
265  m_eneDiff = e1-e2;
266  m_energy = e1+e2;
267  m_gain = (CaloGain::CaloGain) ( 0xFFFFFFF0 | (static_cast<unsigned int>(gain2) << 2) | (gain1 & 3) );
268 }

◆ setEqual_nonvirt()

void TileCell::setEqual_nonvirt ( int  gain)
inline

set the same gain for two PMTs and set energy diff to zero

Definition at line 292 of file TileCell.h.

292  {
293  m_eneDiff = 0;
294  m_gain = (CaloGain::CaloGain) ( 0xFFFFFFF0 | (static_cast<unsigned int>(gain) << 2) | (gain & 3) );
295 }

◆ setGain()

void CaloCell::setGain ( CaloGain::CaloGain  gain = CaloGain::INVALIDGAIN)
inherited

set gain

Definition at line 173 of file CaloCell.cxx.

174 {
175  m_gain = gain;
176 }

◆ setProvenance()

void CaloCell::setProvenance ( uint16_t  prov)
inherited

set Provenance

Definition at line 167 of file CaloCell.cxx.

168 {
169  // cppcheck-suppress objectIndex
170  m_qualProv[1] = prov;
171 }

◆ setQbit1()

void TileCell::setQbit1 ( unsigned char  qbit)
inline

set quality bits of first PMT

Definition at line 174 of file TileCell.h.

174 { m_tileQual[2] = qbit; }

◆ setQbit2()

void TileCell::setQbit2 ( unsigned char  qbit)
inline

set quality bits of second PMT

Definition at line 177 of file TileCell.h.

177 { m_tileQual[3] = qbit; }

◆ setQual1() [1/2]

void TileCell::setQual1 ( unsigned char  qual)
inline

set quality of first PMT

Definition at line 168 of file TileCell.h.

168 { m_tileQual[0] = qual; }

◆ setQual1() [2/2]

void TileCell::setQual1 ( unsigned char  qual,
unsigned char  qbit 
)
inline

set quality and quality bits of first PMT

Definition at line 180 of file TileCell.h.

180 { m_tileQual[0] = qual; m_tileQual[2] = qbit; }

◆ setQual2() [1/2]

void TileCell::setQual2 ( unsigned char  qual)
inline

set quality of second PMT

Definition at line 171 of file TileCell.h.

171 { m_tileQual[1] = qual; }

◆ setQual2() [2/2]

void TileCell::setQual2 ( unsigned char  qual,
unsigned char  qbit 
)
inline

set quality and quality bits of second PMT

Definition at line 183 of file TileCell.h.

183 { m_tileQual[1] = qual; m_tileQual[3] = qbit; }

◆ setQuality() [1/3]

void TileCell::setQuality ( double  quality)
finaloverridevirtual

set Quality (from CaloCell base class, obsolete)

Reimplemented from CaloCell.

Definition at line 177 of file TileCell.cxx.

178 {
180 }

◆ setQuality() [2/3]

void TileCell::setQuality ( uint16_t  quality)
finaloverridevirtual

set quality word (from CaloCell base class)

Reimplemented from CaloCell.

Definition at line 172 of file TileCell.cxx.

173 {
175 }

◆ setQuality() [3/3]

void TileCell::setQuality ( unsigned char  qual,
unsigned char  qbit,
int  pmt 
)
inline

set quality value and quality bits for one PMT

Definition at line 286 of file TileCell.h.

287 {
288  setQuality_nonvirt(qual, qbit, pmt);
289 }

◆ setQuality_nonvirt()

void TileCell::setQuality_nonvirt ( unsigned char  qual,
unsigned char  qbit,
int  pmt 
)
inline

Definition at line 278 of file TileCell.h.

278  {
279  // cppcheck-suppress objectIndex
280  m_tileQual[0+pmt] = qual;
281  // cppcheck-suppress objectIndex
282  m_tileQual[2+pmt] = qbit;
283 }

◆ setTime() [1/2]

void TileCell::setTime ( float  t)
inlinefinaloverridevirtual

set cell time, reset timeDiff

Reimplemented from CaloCell.

Definition at line 257 of file TileCell.h.

258 {
260 }

◆ setTime() [2/2]

void TileCell::setTime ( float  t,
int  pmt 
)

set time for one PMT, correct timeDiff

Definition at line 161 of file TileCell.cxx.

162 {
163  if (pmt > 0) { // second pmt in a cell with index "1",
164  m_time = (m_time + t)/2.;
165  m_timeDiff = m_time - t;
166  } else { // second in a cell pmt with index "0"
167  m_time = (t + m_time)/2.;
168  m_timeDiff = t - m_time;
169  }
170 }

◆ setTime_nonvirt()

void TileCell::setTime_nonvirt ( float  t)
inline

Definition at line 250 of file TileCell.h.

251 {
252  m_time = t;
253  m_timeDiff = 0.0;
254 }

◆ setVersion()

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  }

◆ sinPhi()

double CaloCell::sinPhi ( ) const
inlinefinaloverridevirtualinherited

get sin(phi)

Reimplemented from P4EEtaPhiMBase.

Definition at line 394 of file CaloCell.h.

395 {
396  return m_caloDDE->sinPhi();
397 }

◆ sinTh()

double CaloCell::sinTh ( ) const
inlinefinaloverridevirtualinherited

get sin(theta) (through CaloDetDescrElement)

Reimplemented from P4EEtaPhiMBase.

Definition at line 373 of file CaloCell.h.

374 {
375  return m_caloDDE->sinTh();
376 }

◆ subcalo_hash()

IdentifierHash TileCell::subcalo_hash ( void  ) const
inline

get subcalo hash for TileCal cells

Definition at line 228 of file TileCell.h.

228 { return m_caloDDE->subcalo_hash(); }

◆ 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 }

◆ time()

float CaloCell::time ( ) const
inlineinherited

get time (data member)

Definition at line 352 of file CaloCell.h.

353 {
354  return m_time;
355 }

◆ time1()

float TileCell::time1 ( void  ) const
inline

get time of first PMT

Definition at line 198 of file TileCell.h.

198 { return (m_time+m_timeDiff); }

◆ time2()

float TileCell::time2 ( void  ) const
inline

get time of second PMT

Definition at line 200 of file TileCell.h.

200 { return (m_time-m_timeDiff); }

◆ timeDiff()

float TileCell::timeDiff ( void  ) const
inline

get time diff for two PMTs (data member)

Definition at line 190 of file TileCell.h.

190 { return m_timeDiff; }

◆ updateQuality()

void TileCell::updateQuality ( )
private

merge quality of 2 PMTs in single cell quality

◆ whoami()

std::string TileCell::whoami ( void  ) const
inline

get name of the object

Definition at line 231 of file TileCell.h.

231 { return "TileCell"; }

◆ x()

float CaloCell::x ( ) const
inlineinherited

get x (through CaloDetDescrElement)

Definition at line 413 of file CaloCell.h.

414 {
415  return m_caloDDE->x();
416 }

◆ y()

float CaloCell::y ( ) const
inlineinherited

get y (through CaloDetDescrElement)

Definition at line 420 of file CaloCell.h.

421 {
422  return m_caloDDE->y();
423 }

◆ z()

float CaloCell::z ( ) const
inlineinherited

get z (through CaloDetDescrElement)

Definition at line 427 of file CaloCell.h.

428 {
429  return m_caloDDE->z();
430 }

Member Data Documentation

◆ @4

union { ... }

quality

◆ m_caloDDE

const CaloDetDescrElement* CaloCell::m_caloDDE
protectedinherited

pointer to static CaloDetDescrElement to access information that does not change from event to event

Definition at line 240 of file CaloCell.h.

◆ m_eneDiff

float TileCell::m_eneDiff
private

eneDiff = ene1 - ene2

Definition at line 241 of file TileCell.h.

◆ m_energy

float CaloCell::m_energy
protectedinherited

energy (in MeV)

Definition at line 214 of file CaloCell.h.

◆ m_gain

CaloGain::CaloGain CaloCell::m_gain
protectedinherited

gain

Definition at line 237 of file CaloCell.h.

◆ m_ID

Identifier CaloCell::m_ID
protectedinherited

offline identifier

Definition at line 235 of file CaloCell.h.

◆ m_quality

int CaloCell::m_quality = 0
inherited

Definition at line 229 of file CaloCell.h.

◆ m_qualProv

uint16_t CaloCell::m_qualProv[2]
inherited

Definition at line 230 of file CaloCell.h.

◆ m_tileQual

uint8_t CaloCell::m_tileQual[4]
inherited

Definition at line 231 of file CaloCell.h.

◆ m_time

float CaloCell::m_time
protectedinherited

time

Definition at line 216 of file CaloCell.h.

◆ m_timeDiff

float TileCell::m_timeDiff
private

timeDiff = (time1 - time2)/2.

Definition at line 243 of file TileCell.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.


The documentation for this class was generated from the following files:
CaloDetDescrElement::cosPhi
float cosPhi() const
for fast px py pz computation
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:391
P4EEtaPhiMBase::cotTh
virtual double cotTh() const
cottan theta
Definition: P4EEtaPhiMBase.cxx:77
P4EEtaPhiMBase::pz
virtual double pz() const
z component of momentum
Definition: P4EEtaPhiMBase.cxx:130
P4EEtaPhiMBase::pt
virtual double pt() const
transverse momentum
Definition: P4EEtaPhiMBase.cxx:101
TileCell::setTime_nonvirt
void setTime_nonvirt(float t)
Definition: TileCell.h:250
TileCell::time1
float time1(void) const
get time of first PMT
Definition: TileCell.h:198
CaloCell::m_tileQual
uint8_t m_tileQual[4]
Definition: CaloCell.h:231
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
CaloCell::phi
virtual double phi() const override final
get phi (through CaloDetDescrElement)
Definition: CaloCell.h:359
CaloDetDescrElement::cotTh
float cotTh() const
for fast px py pz computation
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:387
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
TileCell::SHIFT_BADCH
@ SHIFT_BADCH
Definition: TileCell.h:70
TileCell::MASK_ALGO
@ MASK_ALGO
Definition: TileCell.h:62
CaloDetDescrElement::y
float y() const
cell y
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:365
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
egammaEnergyPositionAllSamples::e1
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
TileCell::time2
float time2(void) const
get time of second PMT
Definition: TileCell.h:200
P4EEtaPhiMBase::cosPhi
virtual double cosPhi() const
cosinus phi
Definition: P4EEtaPhiMBase.cxx:54
ReadBchFromCool.pmt
pmt
Definition: ReadBchFromCool.py:62
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
TileCell::ene1
float ene1(void) const
get energy of first PMT
Definition: TileCell.h:193
TileCell::badch1
bool badch1(void) const
check if first PMT is in bad channel list and masked
Definition: TileCell.h:215
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
CaloCell::e
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition: CaloCell.h:317
TileCell::SHIFT_AMPL
@ SHIFT_AMPL
Definition: TileCell.h:72
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
CaloCell::provenance
uint16_t provenance() const
get provenance (data member)
Definition: CaloCell.h:338
CaloCell::time
float time() const
get time (data member)
Definition: CaloCell.h:352
yodamerge_tmp.scale
scale
Definition: yodamerge_tmp.py:138
TileCell::whoami
std::string whoami(void) const
get name of the object
Definition: TileCell.h:231
TileCell::MASK_BADCH
@ MASK_BADCH
Definition: TileCell.h:63
CaloCell::energy
double energy() const
get energy (data member)
Definition: CaloCell.h:311
CaloGain::INVALIDGAIN
@ INVALIDGAIN
Definition: CaloGain.h:18
TileCell::timeDiff
float timeDiff(void) const
get time diff for two PMTs (data member)
Definition: TileCell.h:190
TileCell::SHIFT_ALGO
@ SHIFT_ALGO
Definition: TileCell.h:69
CaloCell::m_quality
int m_quality
Definition: CaloCell.h:229
TileCell::qual2
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition: TileCell.h:206
CaloDetDescrElement::identify
Identifier identify() const override final
cell identifier
Definition: CaloDetDescrElement.cxx:64
CaloCell::CaloCell
CaloCell()
default constructor (should not be used, only there for persistency reason)
Definition: CaloCell.h:247
CaloCell::setQuality
virtual void setQuality(uint16_t quality)
set quality
Definition: CaloCell.cxx:156
CaloGain::TILEONELOW
@ TILEONELOW
Definition: CaloGain.h:16
I4Momentum::e
virtual double e() const =0
energy
CaloCell::caloDDE
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition: CaloCell.h:305
TileCell::MASK_OVER
@ MASK_OVER
Definition: TileCell.h:64
TileCell::badch2
bool badch2(void) const
check if second PMT is in bad channel list and masked
Definition: TileCell.h:218
TileCell::MASK_AMPL
@ MASK_AMPL
Definition: TileCell.h:65
P4EEtaPhiMBase::cosTh
virtual double cosTh() const
cosinus theta
Definition: P4EEtaPhiMBase.cxx:82
TileCell::setEnergy_nonvirt
void setEnergy_nonvirt(float e1, float e2, int gain1, int gain2)
Definition: TileCell.h:263
CaloCell::m_qualProv
uint16_t m_qualProv[2]
Definition: CaloCell.h:230
CaloCell::m_gain
CaloGain::CaloGain m_gain
gain
Definition: CaloCell.h:237
CaloCell::m_energy
float m_energy
energy (in MeV)
Definition: CaloCell.h:214
I4Momentum::eta
virtual double eta() const =0
pseudo rapidity
TileCell::MASK_CMPC
@ MASK_CMPC
Definition: TileCell.h:66
TileCell::qbit1
uint8_t qbit1(void) const
get quality bits of first PMT (data member)
Definition: TileCell.h:209
TileCell::SHIFT_CMPC
@ SHIFT_CMPC
Definition: TileCell.h:73
TileCell::gain1
int gain1(void) const
get gain of first PMT
Definition: TileCell.cxx:182
TileCell::eneDiff
float eneDiff(void) const
all get methods
Definition: TileCell.h:188
I4Momentum::phi
virtual double phi() const =0
phi in [-pi,pi[
CaloCell::quality
uint16_t quality() const
get quality (data member)
Definition: CaloCell.h:332
min
#define min(a, b)
Definition: cfImp.cxx:40
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
TileCell::MASK_PROV
@ MASK_PROV
Definition: TileCell.h:78
TileCell::setQuality_nonvirt
void setQuality_nonvirt(unsigned char qual, unsigned char qbit, int pmt)
Definition: TileCell.h:278
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
TileCell::subcalo_hash
IdentifierHash subcalo_hash(void) const
get subcalo hash for TileCal cells
Definition: TileCell.h:228
TileCell::KEEP_TIME
@ KEEP_TIME
Definition: TileCell.h:83
TileCell::m_timeDiff
float m_timeDiff
timeDiff = (time1 - time2)/2.
Definition: TileCell.h:243
CaloCell::gain
CaloGain::CaloGain gain() const
get gain (data member )
Definition: CaloCell.h:345
CaloCell::ID
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
Definition: CaloCell.h:279
CaloGain::CaloGain
CaloGain
Definition: CaloGain.h:11
CaloDetDescrElement::x
float x() const
cell x
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:363
P4EEtaPhiMBase::p
virtual double p() const
magnitude of 3-momentum.
Definition: P4EEtaPhiMBase.cxx:21
I4Momentum::m
virtual double m() const =0
mass
TileCell::qbit2
uint8_t qbit2(void) const
get quality bits of second PMT (data member)
Definition: TileCell.h:212
TileCell::gain2
int gain2(void) const
get gain of second PMT
Definition: TileCell.cxx:189
TileCell::MASK_TIME
@ MASK_TIME
Definition: TileCell.h:67
TileCell::ene2
float ene2(void) const
get energy of second PMT
Definition: TileCell.h:195
P4EEtaPhiMBase::sinTh
virtual double sinTh() const
sinus theta
Definition: P4EEtaPhiMBase.cxx:87
P4EEtaPhiMBase::sinPhi
virtual double sinPhi() const
sinus phi
Definition: P4EEtaPhiMBase.cxx:59
CaloCell::m_time
float m_time
time
Definition: CaloCell.h:216
egammaEnergyPositionAllSamples::e2
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
CaloDetDescrElement::z
float z() const
cell z
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:367
CaloDetDescrElement::cosTh
float cosTh() const
for fast px py pz computation
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:385
TileCell::SHIFT_TIME
@ SHIFT_TIME
Definition: TileCell.h:74
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TileCell::qual1
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition: TileCell.h:203
makeTransCanvas.text
text
Definition: makeTransCanvas.py:11
beamspotman.qual
qual
Definition: beamspotman.py:481
CaloDetDescrElement::eta
float eta() const
cell eta
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:344
CaloDetDescrElement::phi
float phi() const
cell phi
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:346
CaloCell::m_caloDDE
const CaloDetDescrElement * m_caloDDE
pointer to static CaloDetDescrElement to access information that does not change from event to event
Definition: CaloCell.h:240
CaloDetDescrElement::sinTh
float sinTh() const
for algorithm working in transverse Energy
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:383
IAthenaBarCode::UNDEFINEDVERSION
static const AthenaBarCode_t UNDEFINEDVERSION
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:53
CaloDetDescrElement::r
float r() const
cell r
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:348
TileCell::SHIFT_OVER
@ SHIFT_OVER
Definition: TileCell.h:71
CaloDetDescrElement::sinPhi
float sinPhi() const
for fast px py pz computation
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:389
TileCell::m_eneDiff
float m_eneDiff
eneDiff = ene1 - ene2
Definition: TileCell.h:241
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
CaloGain::TILEONEHIGH
@ TILEONEHIGH
Definition: CaloGain.h:17
CaloDetDescrElement::subcalo_hash
IdentifierHash subcalo_hash() const
cell subcalo hash
Definition: Calorimeter/CaloDetDescr/CaloDetDescr/CaloDetDescrElement.h:418
CaloCell::m_ID
Identifier m_ID
offline identifier
Definition: CaloCell.h:235
CaloCell::sinTh
virtual double sinTh() const override final
get sin(theta) (through CaloDetDescrElement)
Definition: CaloCell.h:373
CaloCell::eta
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Definition: CaloCell.h:366
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33