ATLAS Offline Software
Loading...
Searching...
No Matches
InDet::PixelCluster Class Referencefinal

#include <PixelCluster.h>

Inheritance diagram for InDet::PixelCluster:
Collaboration diagram for InDet::PixelCluster:

Public Member Functions

 PixelCluster ()
 Public, Copy, operator=, constructor.
 PixelCluster (const PixelCluster &)=default
 PixelCluster (PixelCluster &&)=default
PixelClusteroperator= (const PixelCluster &rhs)=default
PixelClusteroperator= (PixelCluster &&rhs)=default
virtual ~PixelCluster ()
 PixelCluster (const Identifier &RDOId, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, const InDet::SiWidth &width, const InDetDD::SiDetectorElement *detEl, Amg::MatrixX &&locErrMat, const float omegax=-1., const float omegay=-1., bool split=false, float splitProb1=0., float splitProb2=0.)
 PixelCluster (const Identifier &RDOId, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, const int lvl1a, std::vector< int > &&totList, const InDet::SiWidth &width, const InDetDD::SiDetectorElement *detEl, Amg::MatrixX &&locErrMat, const float omegax=-1., const float omegay=-1., bool split=false, float splitProb1=0., float splitProb2=0.)
 PixelCluster (const Identifier &RDOId, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, const int lvl1a, std::vector< int > &&totList, std::vector< float > &&chargeList, const InDet::SiWidth &width, const InDetDD::SiDetectorElement *detEl, Amg::MatrixX &&locErrMat, const float omegax=-1., const float omegay=-1., bool split=false, float splitProb1=0., float splitProb2=0.)
 PixelCluster (const Identifier &RDOId, const Amg::Vector2D &locpos, const Amg::Vector3D &globpos, std::vector< Identifier > &&rdoList, const int lvl1a, std::vector< int > &&totList, std::vector< float > &&chargeList, const InDet::SiWidth &width, const InDetDD::SiDetectorElement *detEl, Amg::MatrixX &&locErrMat, const float omegax=-1., const float omegay=-1., bool split=false, float splitProb1=0., float splitProb2=0.)
 PixelCluster (const Identifier &RDOId, const Amg::Vector2D &locpos, std::vector< Identifier > &&rdoList, const int lvl1a, int totalToT, std::vector< float > &&chargeList, float totalCharge, const InDet::SiWidth &width, const InDetDD::SiDetectorElement *detEl, Amg::MatrixX &&locErrMat, const float omegax, const float omegay, int splitInfoRaw)
virtual bool type (Trk::PrepRawDataType type) const override final
 Interface method checking the type.
virtual Trk::PrepRawDataType prdType () const override final
 Interface method checking the type.
float omegax () const
float omegay () const
const std::vector< int > & totList () const
int totalToT () const
const std::vector< float > & chargeList () const
float totalCharge () const
float energyLoss () const
 Energy lost is in the cluster is computed from the total charge id a calibration could be used.
bool isFake () const
bool setFake (bool)
bool isAmbiguous () const
bool setAmbiguous (bool)
bool isSplit () const
 access mehtods for splitting
double splitProbability1 () const
double splitProbability2 () const
int splitInfoRaw () const
int LVL1A () const
virtual MsgStream & dump (MsgStream &stream) const override final
 dump information about the PRD object.
virtual std::ostream & dump (std::ostream &stream) const override final
 dump information about the PRD object.
void packSplitInformation (bool split, float prob1, float prob2)
void setTooBigToBeSplit (bool a)
bool tooBigToBeSplit () const
void setToTList (std::vector< int > &&totList)
Identifier identify () const
 return the identifier
const Amg::Vector2DlocalPosition () const
 return the local position reference
const std::vector< Identifier > & rdoList () const
 return the List of rdo identifiers (pointers)
const Amg::MatrixXlocalCovariance () const
 return const ref to the error matrix
bool hasLocalCovariance () const
 returns localCovariance().size()!=0
void setHashAndIndex (unsigned short collHash, unsigned short objIndex)
 TEMP for testing: might make some classes friends later ...
const IdentContIndexgetHashAndIndex () const

Static Public Member Functions

static std::size_t numberOfInstantiations ()

Static Public Attributes

static std::atomic_size_t s_numberOfInstantiations

Private Attributes

float m_omegax
float m_omegay
std::vector< int > m_totList
int m_totalToT
std::vector< float > m_chargeList
float m_totalCharge
bool m_fake
bool m_ambiguous
int m_lvl1
unsigned int m_splitInfo {}
bool m_tooBigToBeSplit
Identifier m_clusId { 0 }
 PrepRawData ID, not const because of DataPool.
Amg::Vector2D m_localPos {}
 see derived classes for definition of meaning of LocalPosition
std::vector< Identifierm_rdoList {}
 Stores the identifiers of the RDOs.
Amg::MatrixX m_localCovariance {}
 See derived classes for definition of ErrorMatrix.
IdentContIndex m_indexAndHash
 Stores its own position (index) in collection plus the hash id for the collection (needed for the EL to IDC)

Virtual methods

Amg::Vector3D m_globalPosition = Amg::Vector3D::Zero()
InDet::SiWidth m_width {}
 col, row, and width in mm
const InDetDD::SiDetectorElementm_detEl = nullptr
 Not owning points (ownned by the store.
bool m_gangedPixel = false
const InDet::SiWidthwidth () const
 return width class reference
const Amg::Vector3DglobalPosition () const
 return global position reference
void setGangedPixel (bool ganged)
 set the flag of this cluster containing a gangedPixel
bool gangedPixel () const
 return the flag of this cluster containing a gangedPixel
virtual const InDetDD::SiDetectorElementdetectorElement () const override final
 return the detector element corresponding to this PRD The pointer will be zero if the det el is not defined (i.e.
void setDetectorElement (const InDetDD::SiDetectorElement *detEl)
 Set the m_detEl and calculate globalPostion.

Detailed Description

Constructor & Destructor Documentation

◆ PixelCluster() [1/8]

InDet::PixelCluster::PixelCluster ( )

Public, Copy, operator=, constructor.

Definition at line 196 of file PixelCluster.cxx.

197 : SiCluster(),
198 m_omegax(-1),
199 m_omegay(-1),
200 m_totalToT(0),
201 m_totalCharge(0),
202 m_fake(false),
203 m_ambiguous(false),
204 m_lvl1(0),
205 m_splitInfo(0),
206 m_tooBigToBeSplit(false) {}
SiCluster()=default

◆ PixelCluster() [2/8]

InDet::PixelCluster::PixelCluster ( const PixelCluster & )
default

◆ PixelCluster() [3/8]

InDet::PixelCluster::PixelCluster ( PixelCluster && )
default

◆ ~PixelCluster()

InDet::PixelCluster::~PixelCluster ( )
virtualdefault

◆ PixelCluster() [4/8]

InDet::PixelCluster::PixelCluster ( const Identifier & RDOId,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
const InDet::SiWidth & width,
const InDetDD::SiDetectorElement * detEl,
Amg::MatrixX && locErrMat,
const float omegax = -1.,
const float omegay = -1.,
bool split = false,
float splitProb1 = 0.,
float splitProb2 = 0. )

Definition at line 32 of file PixelCluster.cxx.

43 : SiCluster(RDOId, locpos, std::move(rdoList), width, detEl, std::move(locErrMat)) {
46 m_totList.clear();
47 m_totalToT = 0;
48 m_chargeList.clear();
49 m_totalCharge = 0;
50 m_fake = false;
51 m_ambiguous = false;
52 m_lvl1 = 0;
53 m_tooBigToBeSplit = false;
54
55 packSplitInformation(split, splitProb1, splitProb2);
56}
const InDet::SiWidth & width() const
return width class reference
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:177

◆ PixelCluster() [5/8]

InDet::PixelCluster::PixelCluster ( const Identifier & RDOId,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
const int lvl1a,
std::vector< int > && totList,
const InDet::SiWidth & width,
const InDetDD::SiDetectorElement * detEl,
Amg::MatrixX && locErrMat,
const float omegax = -1.,
const float omegay = -1.,
bool split = false,
float splitProb1 = 0.,
float splitProb2 = 0. )

Definition at line 58 of file PixelCluster.cxx.

71 : SiCluster(RDOId, locpos, std::move(rdoList), width, detEl, std::move(locErrMat)),
74 m_totList(std::move(totList)),
75 m_totalToT(0),
78 m_fake(false),
79 m_ambiguous(false),
80 m_lvl1(lvl1a),
81 m_tooBigToBeSplit(false) {
82 int n = m_totList.size();
83 for (int i = 0; i < n; i++){
85 }
86 packSplitInformation(split, splitProb1, splitProb2);
87}

◆ PixelCluster() [6/8]

InDet::PixelCluster::PixelCluster ( const Identifier & RDOId,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
const int lvl1a,
std::vector< int > && totList,
std::vector< float > && chargeList,
const InDet::SiWidth & width,
const InDetDD::SiDetectorElement * detEl,
Amg::MatrixX && locErrMat,
const float omegax = -1.,
const float omegay = -1.,
bool split = false,
float splitProb1 = 0.,
float splitProb2 = 0. )

Definition at line 89 of file PixelCluster.cxx.

103 : SiCluster(RDOId, locpos, std::move(rdoList), width, detEl, std::move(locErrMat)),
106 m_totList(std::move(totList)),
107 m_totalToT(0),
108 m_chargeList(std::move(chargeList)),
109 m_totalCharge(0),
110 m_fake(false),
111 m_ambiguous(false),
112 m_lvl1(lvl1a),
113 m_tooBigToBeSplit(false) {
114 int n = m_totList.size();
115 for (int i = 0; i < n; i++){
116 m_totalToT += int(m_totList[i]);
117 }
118 n = m_chargeList.size();
119 for (int i = 0; i < n; i++){
121 }
124 }
125 packSplitInformation(split, splitProb1, splitProb2);
126}
#define MAXCHARGE

◆ PixelCluster() [7/8]

InDet::PixelCluster::PixelCluster ( const Identifier & RDOId,
const Amg::Vector2D & locpos,
const Amg::Vector3D & globpos,
std::vector< Identifier > && rdoList,
const int lvl1a,
std::vector< int > && totList,
std::vector< float > && chargeList,
const InDet::SiWidth & width,
const InDetDD::SiDetectorElement * detEl,
Amg::MatrixX && locErrMat,
const float omegax = -1.,
const float omegay = -1.,
bool split = false,
float splitProb1 = 0.,
float splitProb2 = 0. )

Definition at line 128 of file PixelCluster.cxx.

143 : SiCluster(RDOId, locpos, globpos, std::move(rdoList), width, detEl, std::move(locErrMat)),
146 m_totList(std::move(totList)),
147 m_totalToT(0),
148 m_chargeList(std::move(chargeList)),
149 m_totalCharge(0),
150 m_fake(false),
151 m_ambiguous(false),
152 m_lvl1(lvl1a),
153 m_tooBigToBeSplit(false) {
154 int n = m_totList.size();
155 for (int i = 0; i < n; i++){
156 m_totalToT += int(m_totList[i]);
157 }
158 n = m_chargeList.size();
159 for (int i = 0; i < n; i++){
161 }
164 }
165 packSplitInformation(split, splitProb1, splitProb2);
166}

◆ PixelCluster() [8/8]

InDet::PixelCluster::PixelCluster ( const Identifier & RDOId,
const Amg::Vector2D & locpos,
std::vector< Identifier > && rdoList,
const int lvl1a,
int totalToT,
std::vector< float > && chargeList,
float totalCharge,
const InDet::SiWidth & width,
const InDetDD::SiDetectorElement * detEl,
Amg::MatrixX && locErrMat,
const float omegax,
const float omegay,
int splitInfoRaw )

Definition at line 168 of file PixelCluster.cxx.

Member Function Documentation

◆ chargeList()

const std::vector< float > & InDet::PixelCluster::chargeList ( ) const
inline

◆ detectorElement()

virtual const InDetDD::SiDetectorElement * InDet::SiCluster::detectorElement ( ) const
finaloverridevirtualinherited

return the detector element corresponding to this PRD The pointer will be zero if the det el is not defined (i.e.

it was not passed in by the ctor)

Implements Trk::PrepRawData.

◆ dump() [1/2]

MsgStream & InDet::PixelCluster::dump ( MsgStream & stream) const
finaloverridevirtual

dump information about the PRD object.

Reimplemented from InDet::SiCluster.

Definition at line 219 of file PixelCluster.cxx.

219 {
220 std::ostringstream out;
221 dump(out);
222 stream << out.str();
223 return stream;
224}
virtual MsgStream & dump(MsgStream &stream) const override final
dump information about the PRD object.

◆ dump() [2/2]

std::ostream & InDet::PixelCluster::dump ( std::ostream & stream) const
finaloverridevirtual

dump information about the PRD object.

Reimplemented from InDet::SiCluster.

Definition at line 226 of file PixelCluster.cxx.

226 {
227 const std::string lf{"\n"};
228 stream << "PixelCluster object" << lf;
229 stream << "omegax: " << m_omegax << " omegay: " << m_omegay << lf;
230 stream << "total ToT: " << m_totalToT
231 << ", calibrated charge =" << m_totalCharge << lf;
232 stream << "split information: " << (isSplit() ? "split" : "not split");
233 stream << ", probabilities " << splitProbability1() << ", "
234 << splitProbability2() << lf;
235 stream << "Base class (SiCluster):" << lf;
236 this->SiCluster::dump(stream);
237
238 return stream;
239}
virtual MsgStream & dump(MsgStream &stream) const override
dump information about the SiCluster
Definition SiCluster.cxx:88

◆ energyLoss()

float InDet::PixelCluster::energyLoss ( ) const
inline

Energy lost is in the cluster is computed from the total charge id a calibration could be used.

Just the ToT is returned if no calibration is available, but with a negative sign. If no ToT or Charge data are available, it gives back 0

Definition at line 219 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h.

219 {
220 if (m_totalCharge > 0.)
221 return 3.6 * Gaudi::Units::eV * m_totalCharge;
222 else if (m_totalToT > 0)
223 return -((float)m_totalToT);
224 else
225 return 0.;
226}

◆ gangedPixel()

bool InDet::SiCluster::gangedPixel ( ) const
inherited

return the flag of this cluster containing a gangedPixel

◆ getHashAndIndex()

const IdentContIndex & Trk::PrepRawData::getHashAndIndex ( ) const
inherited

◆ globalPosition()

const Amg::Vector3D & InDet::SiCluster::globalPosition ( ) const
inherited

return global position reference

◆ hasLocalCovariance()

bool Trk::PrepRawData::hasLocalCovariance ( ) const
inherited

returns localCovariance().size()!=0

◆ identify()

Identifier Trk::PrepRawData::identify ( ) const
inherited

return the identifier

◆ isAmbiguous()

bool InDet::PixelCluster::isAmbiguous ( ) const
inline

◆ isFake()

bool InDet::PixelCluster::isFake ( ) const
inline

◆ isSplit()

bool InDet::PixelCluster::isSplit ( ) const
inline

access mehtods for splitting

Definition at line 249 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h.

◆ localCovariance()

const Amg::MatrixX & Trk::PrepRawData::localCovariance ( ) const
inherited

return const ref to the error matrix

◆ localPosition()

const Amg::Vector2D & Trk::PrepRawData::localPosition ( ) const
inherited

return the local position reference

◆ LVL1A()

int InDet::PixelCluster::LVL1A ( ) const
inline

◆ numberOfInstantiations()

std::size_t Trk::ObjectCounter< Trk::PrepRawData >::numberOfInstantiations ( )
inlinestaticinherited

Definition at line 25 of file TrkObjectCounter.h.

26 {
27#ifndef NDEBUG
28 return s_numberOfInstantiations.load();
29#endif
30 return 0;
31 }
Helper to enable counting number of instantiations in debug builds.

◆ omegax()

float InDet::PixelCluster::omegax ( ) const
inline

◆ omegay()

float InDet::PixelCluster::omegay ( ) const
inline

◆ operator=() [1/2]

PixelCluster & InDet::PixelCluster::operator= ( const PixelCluster & rhs)
default

◆ operator=() [2/2]

PixelCluster & InDet::PixelCluster::operator= ( PixelCluster && rhs)
default

◆ packSplitInformation()

void InDet::PixelCluster::packSplitInformation ( bool split,
float prob1,
float prob2 )
inline

Definition at line 241 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h.

242 {
243 m_splitInfo = static_cast<unsigned int>(prob1 * SPLITMASK);
244 m_splitInfo |= (static_cast<unsigned int>(prob2 * SPLITMASK) << SPLITPREC);
245 m_splitInfo |= (static_cast<unsigned int>(split) << (2 * SPLITPREC + 1));
246}

◆ prdType()

Trk::PrepRawDataType InDet::PixelCluster::prdType ( ) const
finaloverridevirtual

Interface method checking the type.

Reimplemented from InDet::SiCluster.

Definition at line 215 of file PixelCluster.cxx.

◆ rdoList()

const std::vector< Identifier > & Trk::PrepRawData::rdoList ( ) const
inherited

return the List of rdo identifiers (pointers)

◆ setAmbiguous()

bool InDet::PixelCluster::setAmbiguous ( bool flag)
inline

Definition at line 266 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/PixelCluster.h.

266 {
267 return m_ambiguous = flag;
268}
bool flag
Definition master.py:29

◆ setDetectorElement()

void InDet::SiCluster::setDetectorElement ( const InDetDD::SiDetectorElement * detEl)
inherited

Set the m_detEl and calculate globalPostion.

◆ setFake()

bool InDet::PixelCluster::setFake ( bool flag)
inline

◆ setGangedPixel()

void InDet::SiCluster::setGangedPixel ( bool ganged)
inherited

set the flag of this cluster containing a gangedPixel

◆ setHashAndIndex()

void Trk::PrepRawData::setHashAndIndex ( unsigned short collHash,
unsigned short objIndex )
inherited

TEMP for testing: might make some classes friends later ...

◆ setTooBigToBeSplit()

void InDet::PixelCluster::setTooBigToBeSplit ( bool a)
inline

◆ setToTList()

void InDet::PixelCluster::setToTList ( std::vector< int > && totList)

Definition at line 249 of file PixelCluster.cxx.

249 {
250 m_totList = std::move(totList);
251 m_totalToT = 0;
252 for (int f : m_totList) {
253 m_totalToT += f;
254 }
255}

◆ splitInfoRaw()

int InDet::PixelCluster::splitInfoRaw ( ) const
inline

◆ splitProbability1()

double InDet::PixelCluster::splitProbability1 ( ) const
inline

◆ splitProbability2()

double InDet::PixelCluster::splitProbability2 ( ) const
inline

◆ tooBigToBeSplit()

bool InDet::PixelCluster::tooBigToBeSplit ( ) const
inline

◆ totalCharge()

float InDet::PixelCluster::totalCharge ( ) const
inline

◆ totalToT()

int InDet::PixelCluster::totalToT ( ) const
inline

◆ totList()

const std::vector< int > & InDet::PixelCluster::totList ( ) const
inline

◆ type()

bool InDet::PixelCluster::type ( Trk::PrepRawDataType type) const
finaloverridevirtual

Interface method checking the type.

Reimplemented from Trk::PrepRawData.

Definition at line 211 of file PixelCluster.cxx.

211 {
214}
virtual bool type(Trk::PrepRawDataType type) const override final
Interface method checking the type.

◆ width()

const InDet::SiWidth & InDet::SiCluster::width ( ) const
inherited

return width class reference

Member Data Documentation

◆ m_ambiguous

bool InDet::PixelCluster::m_ambiguous
private

◆ m_chargeList

std::vector<float> InDet::PixelCluster::m_chargeList
private

◆ m_clusId

Identifier Trk::PrepRawData::m_clusId { 0 }
privateinherited

PrepRawData ID, not const because of DataPool.

Definition at line 156 of file PrepRawData.h.

156{ 0 };

◆ m_detEl

const InDetDD::SiDetectorElement* InDet::SiCluster::m_detEl = nullptr
privateinherited

Not owning points (ownned by the store.

Definition at line 139 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h.

◆ m_fake

bool InDet::PixelCluster::m_fake
private

◆ m_gangedPixel

bool InDet::SiCluster::m_gangedPixel = false
privateinherited

◆ m_globalPosition

Amg::Vector3D InDet::SiCluster::m_globalPosition = Amg::Vector3D::Zero()
privateinherited

◆ m_indexAndHash

IdentContIndex Trk::PrepRawData::m_indexAndHash
privateinherited

Stores its own position (index) in collection plus the hash id for the collection (needed for the EL to IDC)

Definition at line 167 of file PrepRawData.h.

◆ m_localCovariance

Amg::MatrixX Trk::PrepRawData::m_localCovariance {}
privateinherited

See derived classes for definition of ErrorMatrix.

Definition at line 163 of file PrepRawData.h.

163{};

◆ m_localPos

Amg::Vector2D Trk::PrepRawData::m_localPos {}
privateinherited

see derived classes for definition of meaning of LocalPosition

Definition at line 159 of file PrepRawData.h.

159{};

◆ m_lvl1

int InDet::PixelCluster::m_lvl1
private

◆ m_omegax

float InDet::PixelCluster::m_omegax
private

◆ m_omegay

float InDet::PixelCluster::m_omegay
private

◆ m_rdoList

std::vector<Identifier> Trk::PrepRawData::m_rdoList {}
privateinherited

Stores the identifiers of the RDOs.

Definition at line 161 of file PrepRawData.h.

161{};

◆ m_splitInfo

unsigned int InDet::PixelCluster::m_splitInfo {}
private

◆ m_tooBigToBeSplit

bool InDet::PixelCluster::m_tooBigToBeSplit
private

◆ m_totalCharge

float InDet::PixelCluster::m_totalCharge
private

◆ m_totalToT

int InDet::PixelCluster::m_totalToT
private

◆ m_totList

std::vector<int> InDet::PixelCluster::m_totList
private

◆ m_width

InDet::SiWidth InDet::SiCluster::m_width {}
privateinherited

col, row, and width in mm

Definition at line 137 of file InnerDetector/InDetRecEvent/InDetPrepRawData/InDetPrepRawData/SiCluster.h.

137{};

◆ s_numberOfInstantiations

std::atomic_size_t Trk::ObjectCounter< Trk::PrepRawData >::s_numberOfInstantiations
inlinestaticinherited

Definition at line 22 of file TrkObjectCounter.h.


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