ATLAS Offline Software
Loading...
Searching...
No Matches
TileCell Class Referencefinal

#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
 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.
 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.
 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
 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
 TileCell (const TileCell *cell)
 copy constructor
virtual ~TileCell ()
 destructor
virtual std::unique_ptr< CaloCellclone () const override final
 clone
void setDDE (CaloDetDescrElement *const &caloDDE)
 all set methods
virtual void setEnergy (float ene) override final
 set total energy, reset eneDiff to zero (final override of CaloCell method)
void setEnergy (float e1, float e2, int gain1, int gain2)
 set energy and gain for both PMTs (TileCell specific overloads)
void setEnergy_nonvirt (float e1, float e2, int gain1, int gain2)
void setEnergy (float e1, float e2)
 set energy for both PMTs
virtual void scaleEnergy (float scale) override final
 scale energy and eneDiff (final override of CaloCell method)
void addEnergy (float e, int pmt, int gain)
 set energy and gain for one PMT
void setEqual_nonvirt (int gain)
 set the same gain for two PMTs and set energy diff to zero
virtual void setTime (float t) override final
 set cell time, reset timeDiff
void setTime_nonvirt (float t)
void setTime (float t, int pmt)
 set time for one PMT, correct timeDiff
void setQuality (unsigned char qual, unsigned char qbit, int pmt)
 set quality value and quality bits for one PMT (TileCell specific overloads)
void setQuality_nonvirt (unsigned char qual, unsigned char qbit, int pmt)
void setQual1 (unsigned char qual)
 set quality of first PMT
void setQual2 (unsigned char qual)
 set quality of second PMT
void setQbit1 (unsigned char qbit)
 set quality bits of first PMT
void setQbit2 (unsigned char qbit)
 set quality bits of second PMT
void setQual1 (unsigned char qual, unsigned char qbit)
 set quality and quality bits of first PMT
void setQual2 (unsigned char qual, unsigned char qbit)
 set quality and quality bits of second PMT
float eneDiff (void) const
 all get methods
float timeDiff (void) const
 get time diff for two PMTs (data member)
float ene1 (void) const
 get energy of first PMT
float ene2 (void) const
 get energy of second PMT
float time1 (void) const
 get time of first PMT
float time2 (void) const
 get time of second PMT
uint8_t qual1 (void) const
 get quality of first PMT (data member)
uint8_t qual2 (void) const
 get quality of second PMT (data member)
uint8_t qbit1 (void) const
 get quality bits of first PMT (data member)
uint8_t qbit2 (void) const
 get quality bits of second PMT (data member)
bool badch1 (void) const
 check if first PMT is in bad channel list and masked
bool badch2 (void) const
 check if second PMT is in bad channel list and masked
virtual bool badcell (void) const override final
 check if whole cell is bad (i.e.
int gain1 (void) const
 get gain of first PMT
int gain2 (void) const
 get gain of second PMT
IdentifierHash subcalo_hash (void) const
 get subcalo hash for TileCal cells
std::string whoami (void) const
 get name of the object
void print (void) const
 print all cell data memebers to stdout
 operator std::string () const
 Convertion operator to a std::string Can be used in a cast operation : (std::string) TileCell.
void addEnergy (float energy)
 add energy, keep eneDiff
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.
double energy () const
 get energy (data member)
float x () const
 get x (through CaloDetDescrElement)
float y () const
 get y (through CaloDetDescrElement)
float z () const
 get z (through CaloDetDescrElement)
Identifier ID () const
 get ID (from cached data member) non-virtual and inline for fast access
float time () const
 get time (data member)
uint16_t quality () const
 get quality (data member)
uint16_t provenance () const
 get provenance (data member)
CaloGain::CaloGain gain () const
 get gain (data member )
const CaloDetDescrElementcaloDDE () const
 get pointer to CaloDetDescrElement (data member)
void setCaloDDE (const CaloDetDescrElement *caloDDE)
 set pointer to CaloDetDescrElement
void addTime (float delta)
 add time
void setProvenance (uint16_t prov)
 set Provenance
void setGain (CaloGain::CaloGain gain=CaloGain::INVALIDGAIN)
 set gain
void setQuality (uint16_t quality)
 set quality
void setQuality (double quality)
 set Quality (obsolete)
virtual void set4Mom (const I4Momentum *const theI4Mom) override final
 set 4Momentum (will throw exception since cannot be implemented)
virtual void set4Mom (const I4Momentum &theI4Mom) override final
 set 4Momentum (will throw exception since cannot be implemented)
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv) override final
 set 4Momentum (will throw exception since cannot be implemented)
void set (const CaloDetDescrElement *caloDDE, const Identifier &ID)
 Fast method to change the identity of a cell.
void set (float energy, float time, uint16_t quality, uint16_t provenance, CaloGain::CaloGain gain)
 Fast method to change the data of a cell.
void set (float energy, float time, double quality, CaloGain::CaloGain gain)
 Fast method to change the data of a cell.
virtual void fillToken (INavigationToken &) const
virtual void fillToken (INavigationToken &, const std::any &) const
virtual double px () const
 x component of momentum
virtual double py () const
 y component of momentum
virtual double pz () const
 z component of momentum
virtual double p () const
 magnitude of 3-momentum.
virtual double p2 () const
 square of momentum magnitude
virtual double m2 () const
 mass squared
virtual double pt () const
 transverse momentum
virtual double iPt () const
 inverse of transverse momentum
virtual double rapidity () const
 rapidity
virtual double tanTh () const
 tan theta
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.
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors.
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is
virtual std::ostream & dump (std::ostream &out=std::cout) const
 Print I4Momentum content.
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)
P4EEtaPhiMBase functions.

These can be made final.

virtual double phi () const override final
 get phi (through CaloDetDescrElement)
virtual double eta () const override final
 get eta (through CaloDetDescrElement)
virtual double sinTh () const override final
 get sin(theta) (through CaloDetDescrElement)
virtual double cosTh () const override final
 get cos(theta) (derived from sinTh)
virtual double sinPhi () const override final
 get sin(phi)
virtual double cosPhi () const override final
 get cos(phi)
virtual double cotTh () const override final
 get cottan(theta)
virtual double m () const override final
 get mass (hardcoded to be null)
virtual double e () const override final
 get energy (data member) (synonym to method energy()
virtual double et () const override final
 get et

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)
float m_time
 time
union { 
   int   m_quality = 0 
   uint16_t   m_qualProv [2] 
   uint8_t   m_tileQual [4] 
}; 
 quality
Identifier m_ID
 offline identifier
CaloGain::CaloGain m_gain
 gain
const CaloDetDescrElementm_caloDDE
 pointer to static CaloDetDescrElement to access information that does not change from event to event

Private Member Functions

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

Private Attributes

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

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 };
@ SHIFT_AMPL
Definition TileCell.h:72
@ MASK_AMPL
Definition TileCell.h:65
@ MASK_PROV
Definition TileCell.h:78
@ KEEP_TIME
Definition TileCell.h:83
@ MASK_TIME
Definition TileCell.h:67
@ MASK_OVER
Definition TileCell.h:64
@ MASK_CMPC
Definition TileCell.h:66
@ SHIFT_ALGO
Definition TileCell.h:69
@ SHIFT_TIME
Definition TileCell.h:74
@ SHIFT_CMPC
Definition TileCell.h:73
@ MASK_ALGO
Definition TileCell.h:62
@ MASK_BADCH
Definition TileCell.h:63
@ SHIFT_BADCH
Definition TileCell.h:70
@ SHIFT_OVER
Definition TileCell.h:71

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}
CaloCell()
default constructor (should not be used, only there for persistency reason)
Definition CaloCell.h:263
float m_eneDiff
eneDiff = ene1 - ene2
Definition TileCell.h:235
float m_timeDiff
timeDiff = (time1 - time2)/2.
Definition TileCell.h:237

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

52 , m_timeDiff(0.0)
53{
54}
float time() const
get time (data member)
Definition CaloCell.h:368
double energy() const
get energy (data member)
Definition CaloCell.h:327
const CaloDetDescrElement * caloDDE() const
get pointer to CaloDetDescrElement (data member)
Definition CaloCell.h:321
uint16_t provenance() const
get provenance (data member)
Definition CaloCell.h:354
uint16_t quality() const
get quality (data member)
Definition CaloCell.h:348
CaloGain::CaloGain gain() const
get gain (data member )
Definition CaloCell.h:361

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

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}
uint8_t m_tileQual[4]
Definition CaloCell.h:247
uint8_t qual1(void) const
get quality of first PMT (data member)
Definition TileCell.h:197
float time1(void) const
get time of first PMT
Definition TileCell.h:192
int gain2(void) const
get gain of second PMT
Definition TileCell.cxx:175
uint8_t qbit2(void) const
get quality bits of second PMT (data member)
Definition TileCell.h:206
int gain1(void) const
get gain of first PMT
Definition TileCell.cxx:168
uint8_t qual2(void) const
get quality of second PMT (data member)
Definition TileCell.h:200
float ene1(void) const
get energy of first PMT
Definition TileCell.h:187
float time2(void) const
get time of second PMT
Definition TileCell.h:194
uint8_t qbit1(void) const
get quality bits of first PMT (data member)
Definition TileCell.h:203
float ene2(void) const
get energy of second PMT
Definition TileCell.h:189

◆ 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}
float eneDiff(void) const
all get methods
Definition TileCell.h:182
float timeDiff(void) const
get time diff for two PMTs (data member)
Definition TileCell.h:184

◆ 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,
int pmt,
int gain )

set energy and gain for one PMT

Definition at line 145 of file TileCell.cxx.

146{
147 if (pmt > 0) { // second pmt
148 m_eneDiff -= e;
149 m_gain = (CaloGain::CaloGain)( (m_gain & 0xFFFFFFF3) | ((gain & 3) << 2) );
150 } else { // first PMT
151 m_eneDiff += e;
152 m_gain = (CaloGain::CaloGain)( (m_gain & 0xFFFFFFFC) | ( gain & 3 ) );
153 }
154 m_energy += e;
155}
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition CaloCell.h:333
float m_energy
energy (in MeV)
Definition CaloCell.h:230
CaloGain::CaloGain m_gain
gain
Definition CaloCell.h:253

◆ addEnergy() [2/2]

void CaloCell::addEnergy ( float energy)
inline

add energy, keep eneDiff

Definition at line 170 of file CaloCell.h.

449 {
450 m_energy += energy;
451}

◆ addTime()

void CaloCell::addTime ( float delta)
inlineinherited

add time

Definition at line 454 of file CaloCell.h.

455{
456 m_time += delta;
457}
float m_time
time
Definition CaloCell.h:232

◆ 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 275 of file CaloCell.h.

282{
284 m_time = time;
285 m_ID = ID;
286 m_gain = gain;
290}
const CaloDetDescrElement * m_caloDDE
pointer to static CaloDetDescrElement to access information that does not change from event to event
Definition CaloCell.h:256
Identifier m_ID
offline identifier
Definition CaloCell.h:251
Identifier ID() const
get ID (from cached data member) non-virtual and inline for fast access
Definition CaloCell.h:295
uint16_t m_qualProv[2]
Definition CaloCell.h:246

◆ 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 214 of file TileCell.h.

214{ return (badch1() && badch2()); }
bool badch1(void) const
check if first PMT is in bad channel list and masked
Definition TileCell.h:209
bool badch2(void) const
check if second PMT is in bad channel list and masked
Definition TileCell.h:212

◆ badch1()

bool TileCell::badch1 ( void ) const
inline

check if first PMT is in bad channel list and masked

Definition at line 209 of file TileCell.h.

209{ 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 212 of file TileCell.h.

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

◆ caloDDE()

const CaloDetDescrElement * CaloCell::caloDDE ( ) const
inlineinherited

get pointer to CaloDetDescrElement (data member)

Definition at line 321 of file CaloCell.h.

321 {
322 return m_caloDDE;
323}

◆ 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 417 of file CaloCell.h.

418{
419 return m_caloDDE->cosPhi();
420}

◆ cosTh()

double CaloCell::cosTh ( ) const
inlinefinaloverridevirtualinherited

get cos(theta) (derived from sinTh)

Reimplemented from P4EEtaPhiMBase.

Definition at line 396 of file CaloCell.h.

397{
398 return m_caloDDE->cosTh();
399}

◆ cotTh()

double CaloCell::cotTh ( ) const
inlinefinaloverridevirtualinherited

get cottan(theta)

Reimplemented from P4EEtaPhiMBase.

Definition at line 403 of file CaloCell.h.

404{
405 return m_caloDDE->cotTh();
406}

◆ 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}
virtual double m() const =0
mass
virtual double phi() const =0
phi in [-pi,pi[
virtual double eta() const =0
pseudo rapidity
virtual double e() const =0
energy

◆ e()

double CaloCell::e ( ) const
inlinefinaloverridevirtualinherited

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

Implements I4Momentum.

Definition at line 333 of file CaloCell.h.

334{
335 return m_energy;
336}

◆ ene1()

float TileCell::ene1 ( void ) const
inline

get energy of first PMT

Definition at line 187 of file TileCell.h.

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

◆ ene2()

float TileCell::ene2 ( void ) const
inline

get energy of second PMT

Definition at line 189 of file TileCell.h.

189{ 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 182 of file TileCell.h.

182{ return m_eneDiff; }

◆ energy()

double CaloCell::energy ( ) const
inlineinherited

get energy (data member)

Definition at line 327 of file CaloCell.h.

328{
329 return m_energy;
330}

◆ 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 423 of file CaloCell.h.

424{
425 return this->e() * this->sinTh();
426}
virtual double sinTh() const override final
get sin(theta) (through CaloDetDescrElement)
Definition CaloCell.h:389

◆ eta()

double CaloCell::eta ( void ) const
inlinefinaloverridevirtualinherited

get eta (through CaloDetDescrElement)

Implements I4Momentum.

Definition at line 382 of file CaloCell.h.

383{
384 return m_caloDDE->eta();
385}

◆ fillToken() [1/2]

virtual void NavigableTerminalNode::fillToken ( INavigationToken & ) const
inlinevirtualinherited

Implements INavigable.

Definition at line 31 of file NavigableTerminalNode.h.

31{ };

◆ fillToken() [2/2]

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

Implements INavigable.

Definition at line 32 of file NavigableTerminalNode.h.

32{ };

◆ gain()

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

get gain (data member )

Definition at line 361 of file CaloCell.h.

362{
363 return m_gain;
364}

◆ gain1()

int TileCell::gain1 ( void ) const

get gain of first PMT

Definition at line 168 of file TileCell.cxx.

169{
170 int gain = m_gain & 3;
171
172 return ( ( gain < 2) ? gain : CaloGain::INVALIDGAIN);
173}
@ INVALIDGAIN
Definition CaloGain.h:18

◆ gain2()

int TileCell::gain2 ( void ) const

get gain of second PMT

Definition at line 175 of file TileCell.cxx.

176{
177 int gain = (m_gain >> 2) & 3;
178
179 return ( ( gain < 2) ? gain : CaloGain::INVALIDGAIN);
180}

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

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

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

67 {
68 return UNDEFINEDBARCODE;
69 }
static const AthenaBarCode_t UNDEFINEDBARCODE

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

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

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

85 {
86 return UNDEFINEDVERSION;
87 }
static const AthenaBarCode_t UNDEFINEDVERSION

◆ hasSameAthenaBarCode()

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

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

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

77 {
78 return false;
79 }

◆ hasSameAthenaBarCodeExceptVersion()

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

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

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

81 {
82 return false;
83 }

◆ 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}
virtual double cosPhi() const
cosinus phi
virtual double p() const
magnitude of 3-momentum.
virtual double sinPhi() const
sinus phi
virtual double cosTh() const
cosinus theta

◆ ID()

Identifier CaloCell::ID ( ) const
inlineinherited

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

Definition at line 295 of file CaloCell.h.

295 {
296 return m_ID;
297}

◆ 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 }
virtual double pt() const
transverse momentum

◆ 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 ( void ) const
inlinefinaloverridevirtualinherited

get mass (hardcoded to be null)

Implements I4Momentum.

Definition at line 340 of file CaloCell.h.

341{
342 // zero mass by convention
343 return 0.;
344}

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

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 191 of file TileCell.cxx.

192{
193 std::ostringstream text(std::ostringstream::out);
194
195 text << whoami();
196 text << " Id = " << s_cabling->getTileID()->to_string(subcalo_hash(),-2); // two levels above adc_id
197 text << " ener = " << energy();
198 text << " gain = " << gain();
199 text << " time = " << time();
200 text << " qual = " << quality();
201 text << " prov = " << provenance();
202 text << " E1 = " << ene1();
203 text << " G1 = " << gain1();
204 text << " T1 = " << time1();
205 text << " Q1 = " << (int)qual1() << " " << (int)qbit1();
206 text << " E2 = " << ene2();
207 text << " G2 = " << gain2();
208 text << " T2 = " << time2();
209 text << " Q2 = " << (int)qual2() << " " << (int)qbit2();
210 text << " eta = " << eta();
211 text << " phi = " << phi();
212 text << " r = " << caloDDE()->r();
213
214 return text.str();
215}
virtual double phi() const override final
get phi (through CaloDetDescrElement)
Definition CaloCell.h:375
virtual double eta() const override final
get eta (through CaloDetDescrElement)
Definition CaloCell.h:382
IdentifierHash subcalo_hash(void) const
get subcalo hash for TileCal cells
Definition TileCell.h:222
std::string whoami(void) const
get name of the object
Definition TileCell.h:225

◆ 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 ( void ) const
inlinefinaloverridevirtualinherited

get phi (through CaloDetDescrElement)

Implements I4Momentum.

Definition at line 375 of file CaloCell.h.

376{
377 return m_caloDDE->phi();
378}

◆ print()

void TileCell::print ( void ) const

print all cell data memebers to stdout

Definition at line 186 of file TileCell.cxx.

187{
188 std::cout << (std::string) (*this) << std::endl;
189}

◆ provenance()

uint16_t CaloCell::provenance ( ) const
inlineinherited

get provenance (data member)

Definition at line 354 of file CaloCell.h.

355{
356 // cppcheck-suppress objectIndex
357 return m_qualProv[1];
358}

◆ 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 }
virtual double sinTh() const
sinus theta

◆ 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 203 of file TileCell.h.

203{ return m_tileQual[2]; }

◆ qbit2()

uint8_t TileCell::qbit2 ( void ) const
inline

get quality bits of second PMT (data member)

Definition at line 206 of file TileCell.h.

206{ return m_tileQual[3]; }

◆ qual1()

uint8_t TileCell::qual1 ( void ) const
inline

get quality of first PMT (data member)

Definition at line 197 of file TileCell.h.

197{ return m_tileQual[0]; }

◆ qual2()

uint8_t TileCell::qual2 ( void ) const
inline

get quality of second PMT (data member)

Definition at line 200 of file TileCell.h.

200{ return m_tileQual[1]; }

◆ quality()

uint16_t CaloCell::quality ( ) const
inlineinherited

get quality (data member)

Definition at line 348 of file CaloCell.h.

349{
350 return m_qualProv[0];
351}

◆ 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 }
virtual double pz() const
z component of momentum

◆ scaleEnergy()

void TileCell::scaleEnergy ( float scale)
finaloverridevirtual

scale energy and eneDiff (final override of CaloCell method)

Reimplemented from CaloCell.

Definition at line 140 of file TileCell.cxx.

141{
142 m_energy *= scale;
143 m_eneDiff *= scale;
144}

◆ set() [1/3]

void CaloCell::set ( const CaloDetDescrElement * caloDDE,
const Identifier & ID )
inlineinherited

Fast method to change the identity of a cell.

Definition at line 511 of file CaloCell.h.

512 {
513 m_ID = ID;
515}

◆ 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 104 of file CaloCell.cxx.

108{
110 m_time = time;
111 m_quality = (int)(quality);
112 m_gain = gain;
113}
int m_quality
Definition CaloCell.h:245

◆ 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 89 of file CaloCell.cxx.

94{
96 m_time = time;
97 m_gain = gain;
99 // cppcheck-suppress objectIndex
101}

◆ 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 127 of file CaloCell.cxx.

128{
129 std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
130 std::abort();
131}

◆ 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 121 of file CaloCell.cxx.

122{
123 std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
124 std::abort();
125}

◆ 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 115 of file CaloCell.cxx.

116{
117 std::cout << " FATAL ERROR : CaloCell::set4Mom called. Cannot change 4mom " << std::endl ;
118 std::abort();
119}

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t )
inlinevirtualinherited

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

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

set pointer to CaloDetDescrElement

Definition at line 503 of file CaloCell.h.

503 {
505 if (m_caloDDE) {
506 m_ID = m_caloDDE->identify();
507 }
508}

◆ 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}
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling

◆ setEnergy() [2/3]

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

set energy and gain for both PMTs (TileCell specific overloads)

Definition at line 265 of file TileCell.h.

266{
267 setEnergy_nonvirt(e1, e2, gain1, gain2);
268}
void setEnergy_nonvirt(float e1, float e2, int gain1, int gain2)
Definition TileCell.h:257

◆ setEnergy() [3/3]

void TileCell::setEnergy ( float ene)
finaloverridevirtual

set total energy, reset eneDiff to zero (final override of CaloCell method)

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}
@ TILEONEHIGH
Definition CaloGain.h:17
@ TILEONELOW
Definition CaloGain.h:16

◆ setEnergy_nonvirt()

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

Definition at line 257 of file TileCell.h.

258{
259 m_eneDiff = e1-e2;
260 m_energy = e1+e2;
261 m_gain = (CaloGain::CaloGain) ( 0xFFFFFFF0 | (static_cast<unsigned int>(gain2) << 2) | (gain1 & 3) );
262}

◆ 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 286 of file TileCell.h.

286 {
287 m_eneDiff = 0;
288 m_gain = (CaloGain::CaloGain) ( 0xFFFFFFF0 | (static_cast<unsigned int>(gain) << 2) | (gain & 3) );
289}

◆ setGain()

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

set gain

Definition at line 497 of file CaloCell.h.

498{
499 m_gain = gain;
500}

◆ setProvenance()

void CaloCell::setProvenance ( uint16_t prov)
inlineinherited

set Provenance

Definition at line 490 of file CaloCell.h.

491{
492 // cppcheck-suppress objectIndex
493 m_qualProv[1] = prov;
494}

◆ setQbit1()

void TileCell::setQbit1 ( unsigned char qbit)
inline

set quality bits of first PMT

Definition at line 168 of file TileCell.h.

168{ m_tileQual[2] = qbit; }

◆ setQbit2()

void TileCell::setQbit2 ( unsigned char qbit)
inline

set quality bits of second PMT

Definition at line 171 of file TileCell.h.

171{ m_tileQual[3] = qbit; }

◆ setQual1() [1/2]

void TileCell::setQual1 ( unsigned char qual)
inline

set quality of first PMT

Definition at line 162 of file TileCell.h.

162{ 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 174 of file TileCell.h.

174{ 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 165 of file TileCell.h.

165{ 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 177 of file TileCell.h.

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

◆ setQuality() [1/3]

void CaloCell::setQuality ( double quality)
inlineinherited

set Quality (obsolete)

Definition at line 466 of file CaloCell.h.

467{
468 m_quality = (int)(quality);
469}

◆ setQuality() [2/3]

void CaloCell::setQuality ( uint16_t quality)
inlineinherited

set quality

Definition at line 460 of file CaloCell.h.

461{
462 m_qualProv[0] = quality;
463}

◆ setQuality() [3/3]

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

set quality value and quality bits for one PMT (TileCell specific overloads)

Definition at line 280 of file TileCell.h.

281{
282 setQuality_nonvirt(qual, qbit, pmt);
283}
void setQuality_nonvirt(unsigned char qual, unsigned char qbit, int pmt)
Definition TileCell.h:272

◆ setQuality_nonvirt()

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

Definition at line 272 of file TileCell.h.

272 {
273 // cppcheck-suppress objectIndex
274 m_tileQual[0+pmt] = qual;
275 // cppcheck-suppress objectIndex
276 m_tileQual[2+pmt] = qbit;
277}

◆ setTime() [1/2]

void TileCell::setTime ( float t)
inlinefinaloverridevirtual

set cell time, reset timeDiff

Reimplemented from CaloCell.

Definition at line 251 of file TileCell.h.

252{
254}
void setTime_nonvirt(float t)
Definition TileCell.h:244

◆ setTime() [2/2]

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

set time for one PMT, correct timeDiff

Definition at line 157 of file TileCell.cxx.

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

◆ setTime_nonvirt()

void TileCell::setTime_nonvirt ( float t)
inline

Definition at line 244 of file TileCell.h.

245{
246 m_time = t;
247 m_timeDiff = 0.0;
248}

◆ setVersion()

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t )
inlinevirtualinherited

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

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 410 of file CaloCell.h.

411{
412 return m_caloDDE->sinPhi();
413}

◆ sinTh()

double CaloCell::sinTh ( ) const
inlinefinaloverridevirtualinherited

get sin(theta) (through CaloDetDescrElement)

Reimplemented from P4EEtaPhiMBase.

Definition at line 389 of file CaloCell.h.

390{
391 return m_caloDDE->sinTh();
392}

◆ subcalo_hash()

IdentifierHash TileCell::subcalo_hash ( void ) const
inline

get subcalo hash for TileCal cells

Definition at line 222 of file TileCell.h.

222{ 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}
virtual double cotTh() const
cottan theta

◆ time()

float CaloCell::time ( ) const
inlineinherited

get time (data member)

Definition at line 368 of file CaloCell.h.

369{
370 return m_time;
371}

◆ time1()

float TileCell::time1 ( void ) const
inline

get time of first PMT

Definition at line 192 of file TileCell.h.

192{ return (m_time+m_timeDiff); }

◆ time2()

float TileCell::time2 ( void ) const
inline

get time of second PMT

Definition at line 194 of file TileCell.h.

194{ return (m_time-m_timeDiff); }

◆ timeDiff()

float TileCell::timeDiff ( void ) const
inline

get time diff for two PMTs (data member)

Definition at line 184 of file TileCell.h.

184{ 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 225 of file TileCell.h.

225{ return "TileCell"; }

◆ x()

float CaloCell::x ( ) const
inlineinherited

get x (through CaloDetDescrElement)

Definition at line 429 of file CaloCell.h.

430{
431 return m_caloDDE->x();
432}

◆ y()

float CaloCell::y ( ) const
inlineinherited

get y (through CaloDetDescrElement)

Definition at line 436 of file CaloCell.h.

437{
438 return m_caloDDE->y();
439}

◆ z()

float CaloCell::z ( ) const
inlineinherited

get z (through CaloDetDescrElement)

Definition at line 443 of file CaloCell.h.

444{
445 return m_caloDDE->z();
446}

Member Data Documentation

◆ [union]

union { ... } CaloCell

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 256 of file CaloCell.h.

◆ m_eneDiff

float TileCell::m_eneDiff
private

eneDiff = ene1 - ene2

Definition at line 235 of file TileCell.h.

◆ m_energy

float CaloCell::m_energy
protectedinherited

energy (in MeV)

Definition at line 230 of file CaloCell.h.

◆ m_gain

CaloGain::CaloGain CaloCell::m_gain
protectedinherited

gain

Definition at line 253 of file CaloCell.h.

◆ m_ID

Identifier CaloCell::m_ID
protectedinherited

offline identifier

Definition at line 251 of file CaloCell.h.

◆ m_quality

int CaloCell::m_quality = 0
inherited

Definition at line 245 of file CaloCell.h.

◆ m_qualProv

uint16_t CaloCell::m_qualProv[2]
inherited

Definition at line 246 of file CaloCell.h.

◆ m_tileQual

uint8_t CaloCell::m_tileQual[4]
inherited

Definition at line 247 of file CaloCell.h.

◆ m_time

float CaloCell::m_time
protectedinherited

time

Definition at line 232 of file CaloCell.h.

◆ m_timeDiff

float TileCell::m_timeDiff
private

timeDiff = (time1 - time2)/2.

Definition at line 237 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: