CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Attributes
Crystal Class Reference

#include <Crystal.h>

Classes

class  crystalEqual
 

Public Types

typedef ROOT::Math::Plane3D Plane3D
 
typedef math::XYZVector XYZPoint
 
typedef math::XYZVector XYZVector
 

Public Member Functions

 Crystal ()=default
 Empty constructor. More...
 
 Crystal (const DetId &cell, const BaseCrystal *bc=nullptr)
 constructor from DetId More...
 
CrystalNeighbourcrystalNeighbour (unsigned iq)
 Direct acces to the iq-th neighbour. More...
 
const XYZVectorexitingNormal (const CaloDirection &side) const
 normal exiting vector for the surface More...
 
const XYZVectorgetAxis () const
 get crystal axis More...
 
const XYZPointgetBackCenter () const
 get front center More...
 
const Plane3DgetBackPlane () const
 back plane More...
 
void getBackSide (XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
 Coordinates of the back side. More...
 
void getBackSide (std::vector< XYZPoint > &corners) const
 
const XYZPointgetCenter () const
 get 1/8*(Sum of corners) More...
 
const XYZPointgetCorner (unsigned i) const
 get the i-th corner More...
 
const DetIdgetDetId () const
 get the DetId More...
 
void getDrawingCoordinates (std::vector< float > &x, std::vector< float > &y, std::vector< float > &z) const
 for debugging. More...
 
const XYZVectorgetFifthEdge () const
 Direction of the fifth edge. More...
 
const XYZVectorgetFirstEdge () const
 Direction of the first edge. More...
 
const XYZPointgetFrontCenter () const
 get front center More...
 
const Plane3DgetFrontPlane () const
 front plane More...
 
void getFrontSide (XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
 coordinates of the front side More...
 
void getFrontSide (std::vector< XYZPoint > &corners) const
 
const XYZVectorgetLateralEdge (unsigned i) const
 lateral directions More...
 
void getLateralEdges (unsigned i, XYZPoint &a, XYZPoint &b) const
 get the lateral edges More...
 
const Plane3DgetLateralPlane (unsigned i) const
 lateral planes More...
 
void getLateralSide (unsigned i, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
 Coordinates of the i=th lateral side. More...
 
void getLateralSide (unsigned i, std::vector< XYZPoint > &corners) const
 
const Plane3DgetPlane (const CaloDirection &side) const
 generic access More...
 
void getSide (const CaloDirection &side, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
 generic access More...
 
void getSide (const CaloDirection &side, std::vector< XYZPoint > &corners) const
 
const int getSubdetNumber () const
 get the subdector More...
 
double getX0Back () const
 get the X0back More...
 
unsigned number () const
 get the number of the crystal More...
 
void print () const
 
void setNumber (unsigned n)
 it might be useful to have a number assigned to the crystal More...
 
void setX0Back (double val)
 set X0back (it depends on the choosen origin, it isn't purely geometrical) More...
 
 ~Crystal ()
 

Static Public Member Functions

static unsigned oppositeDirection (unsigned iside)
 

Private Attributes

DetId cellid_
 
const BaseCrystalmyCrystal_ = nullptr
 
std::vector< CrystalNeighbourneighbours_
 
unsigned number_ = 0
 
double X0back_ = 0.
 

Detailed Description

Definition at line 20 of file Crystal.h.

Member Typedef Documentation

◆ Plane3D

typedef ROOT::Math::Plane3D Crystal::Plane3D

Definition at line 24 of file Crystal.h.

◆ XYZPoint

typedef math::XYZVector Crystal::XYZPoint

Definition at line 23 of file Crystal.h.

◆ XYZVector

typedef math::XYZVector Crystal::XYZVector

Definition at line 22 of file Crystal.h.

Constructor & Destructor Documentation

◆ Crystal() [1/2]

Crystal::Crystal ( )
default

Empty constructor.

◆ Crystal() [2/2]

Crystal::Crystal ( const DetId cell,
const BaseCrystal bc = nullptr 
)

constructor from DetId

Definition at line 4 of file Crystal.cc.

References neighbours_.

4  : cellid_(cell), myCrystal_(xtal) {
5  neighbours_.resize(8);
6 }
DetId cellid_
Definition: Crystal.h:113
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
std::vector< CrystalNeighbour > neighbours_
Definition: Crystal.h:114

◆ ~Crystal()

Crystal::~Crystal ( )
inline

Definition at line 109 of file Crystal.h.

109 { ; };

Member Function Documentation

◆ crystalNeighbour()

CrystalNeighbour& Crystal::crystalNeighbour ( unsigned  iq)
inline

Direct acces to the iq-th neighbour.

Definition at line 98 of file Crystal.h.

References neighbours_.

98 { return neighbours_[iq]; }
std::vector< CrystalNeighbour > neighbours_
Definition: Crystal.h:114

◆ exitingNormal()

const XYZVector& Crystal::exitingNormal ( const CaloDirection side) const
inline

normal exiting vector for the surface

Definition at line 82 of file Crystal.h.

References BaseCrystal::exitingNormal(), and myCrystal_.

82 { return myCrystal_->exitingNormal(side); }
const XYZVector & exitingNormal(const CaloDirection &side) const
normal exiting vector for the surface
Definition: BaseCrystal.h:92
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getAxis()

const XYZVector& Crystal::getAxis ( ) const
inline

get crystal axis

Definition at line 101 of file Crystal.h.

References BaseCrystal::getAxis(), and myCrystal_.

101 { return myCrystal_->getAxis(); }
const XYZVector & getAxis() const
get crystal axis
Definition: BaseCrystal.h:102
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getBackCenter()

const XYZPoint& Crystal::getBackCenter ( ) const
inline

get front center

Definition at line 40 of file Crystal.h.

References BaseCrystal::getBackCenter(), and myCrystal_.

40 { return myCrystal_->getBackCenter(); }
const XYZPoint & getBackCenter() const
get front center
Definition: BaseCrystal.h:52
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getBackPlane()

const Plane3D& Crystal::getBackPlane ( ) const
inline

back plane

Definition at line 72 of file Crystal.h.

References BaseCrystal::getBackPlane(), and myCrystal_.

72 { return myCrystal_->getBackPlane(); }
const Plane3D & getBackPlane() const
back plane
Definition: BaseCrystal.h:80
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getBackSide() [1/2]

void Crystal::getBackSide ( XYZPoint a,
XYZPoint b,
XYZPoint c,
XYZPoint d 
) const
inline

Coordinates of the back side.

Definition at line 56 of file Crystal.h.

References a, b, c, ztail::d, BaseCrystal::getBackSide(), and myCrystal_.

56 { myCrystal_->getBackSide(a, b, c, d); }
void getBackSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the back side.
Definition: BaseCrystal.cc:133
d
Definition: ztail.py:151
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

◆ getBackSide() [2/2]

void Crystal::getBackSide ( std::vector< XYZPoint > &  corners) const
inline

Definition at line 57 of file Crystal.h.

References BaseCrystal::getBackSide(), and myCrystal_.

57 { myCrystal_->getBackSide(corners); }
void getBackSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the back side.
Definition: BaseCrystal.cc:133
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getCenter()

const XYZPoint& Crystal::getCenter ( ) const
inline

get 1/8*(Sum of corners)

Definition at line 36 of file Crystal.h.

References BaseCrystal::getCenter(), and myCrystal_.

36 { return myCrystal_->getCenter(); };
const XYZPoint & getCenter() const
get 1/8*(Sum of corners)
Definition: BaseCrystal.h:48
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getCorner()

const XYZPoint& Crystal::getCorner ( unsigned  i) const
inline

get the i-th corner

Definition at line 34 of file Crystal.h.

References BaseCrystal::getCorner(), mps_fire::i, and myCrystal_.

34 { return myCrystal_->getCorner(i); };
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
const XYZPoint & getCorner(unsigned i) const
get the i-th corner
Definition: BaseCrystal.h:46

◆ getDetId()

const DetId& Crystal::getDetId ( void  ) const
inline

get the DetId

Definition at line 46 of file Crystal.h.

References cellid_.

Referenced by EcalHitMaker::EcalHitMaker(), and Crystal::crystalEqual::operator()().

46 { return cellid_; };
DetId cellid_
Definition: Crystal.h:113

◆ getDrawingCoordinates()

void Crystal::getDrawingCoordinates ( std::vector< float > &  x,
std::vector< float > &  y,
std::vector< float > &  z 
) const
inline

for debugging.

Definition at line 87 of file Crystal.h.

References BaseCrystal::getDrawingCoordinates(), myCrystal_, x, y, and z.

87  {
89  }
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
void getDrawingCoordinates(std::vector< float > &x, std::vector< float > &y, std::vector< float > &z) const
for debugging.
Definition: BaseCrystal.cc:167

◆ getFifthEdge()

const XYZVector& Crystal::getFifthEdge ( ) const
inline

Direction of the fifth edge.

Definition at line 44 of file Crystal.h.

References BaseCrystal::getFifthEdge(), and myCrystal_.

44 { return myCrystal_->getFifthEdge(); }
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
const XYZVector & getFifthEdge() const
Direction of the fifth edge.
Definition: BaseCrystal.h:56

◆ getFirstEdge()

const XYZVector& Crystal::getFirstEdge ( ) const
inline

Direction of the first edge.

Definition at line 42 of file Crystal.h.

References BaseCrystal::getFirstEdge(), and myCrystal_.

Referenced by EcalHitMaker::getPads().

42 { return myCrystal_->getFirstEdge(); }
const XYZVector & getFirstEdge() const
Direction of the first edge.
Definition: BaseCrystal.h:54
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getFrontCenter()

const XYZPoint& Crystal::getFrontCenter ( ) const
inline

get front center

Definition at line 38 of file Crystal.h.

References BaseCrystal::getFrontCenter(), and myCrystal_.

38 { return myCrystal_->getFrontCenter(); };
const XYZPoint & getFrontCenter() const
get front center
Definition: BaseCrystal.h:50
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getFrontPlane()

const Plane3D& Crystal::getFrontPlane ( ) const
inline

front plane

Definition at line 70 of file Crystal.h.

References BaseCrystal::getFrontPlane(), and myCrystal_.

70 { return myCrystal_->getFrontPlane(); }
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
const Plane3D & getFrontPlane() const
front plane
Definition: BaseCrystal.h:78

◆ getFrontSide() [1/2]

void Crystal::getFrontSide ( XYZPoint a,
XYZPoint b,
XYZPoint c,
XYZPoint d 
) const
inline

coordinates of the front side

Definition at line 53 of file Crystal.h.

References a, b, c, ztail::d, BaseCrystal::getFrontSide(), and myCrystal_.

53 { myCrystal_->getFrontSide(a, b, c, d); }
void getFrontSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
coordinates of the front side
Definition: BaseCrystal.cc:117
d
Definition: ztail.py:151
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

◆ getFrontSide() [2/2]

void Crystal::getFrontSide ( std::vector< XYZPoint > &  corners) const
inline

Definition at line 54 of file Crystal.h.

References BaseCrystal::getFrontSide(), and myCrystal_.

54 { myCrystal_->getFrontSide(corners); }
void getFrontSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
coordinates of the front side
Definition: BaseCrystal.cc:117
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getLateralEdge()

const XYZVector& Crystal::getLateralEdge ( unsigned  i) const
inline

lateral directions

Definition at line 79 of file Crystal.h.

References BaseCrystal::getLateralEdge(), mps_fire::i, and myCrystal_.

79 { return myCrystal_->getLateralEdge(i); }
const XYZVector & getLateralEdge(unsigned i) const
lateral directions
Definition: BaseCrystal.h:89
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getLateralEdges()

void Crystal::getLateralEdges ( unsigned  i,
XYZPoint a,
XYZPoint b 
) const
inline

get the lateral edges

Definition at line 51 of file Crystal.h.

References a, b, BaseCrystal::getLateralEdges(), mps_fire::i, and myCrystal_.

51 { myCrystal_->getLateralEdges(i, a, b); };
void getLateralEdges(unsigned i, XYZPoint &, XYZPoint &) const
get the lateral edges
Definition: BaseCrystal.cc:109
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

◆ getLateralPlane()

const Plane3D& Crystal::getLateralPlane ( unsigned  i) const
inline

lateral planes

Definition at line 74 of file Crystal.h.

References BaseCrystal::getLateralPlane(), mps_fire::i, and myCrystal_.

74 { return myCrystal_->getLateralPlane(i); }
const Plane3D & getLateralPlane(unsigned i) const
lateral planes
Definition: BaseCrystal.h:82
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getLateralSide() [1/2]

void Crystal::getLateralSide ( unsigned  i,
XYZPoint a,
XYZPoint b,
XYZPoint c,
XYZPoint d 
) const
inline

Coordinates of the i=th lateral side.

Definition at line 59 of file Crystal.h.

References a, b, c, ztail::d, BaseCrystal::getLateralSide(), mps_fire::i, and myCrystal_.

59  {
61  }
void getLateralSide(unsigned i, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the i=th lateral side.
Definition: BaseCrystal.cc:149
d
Definition: ztail.py:151
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

◆ getLateralSide() [2/2]

void Crystal::getLateralSide ( unsigned  i,
std::vector< XYZPoint > &  corners 
) const
inline

Definition at line 62 of file Crystal.h.

References BaseCrystal::getLateralSide(), mps_fire::i, and myCrystal_.

62 { myCrystal_->getLateralSide(i, corners); }
void getLateralSide(unsigned i, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the i=th lateral side.
Definition: BaseCrystal.cc:149
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getPlane()

const Plane3D& Crystal::getPlane ( const CaloDirection side) const
inline

generic access

Definition at line 76 of file Crystal.h.

References BaseCrystal::getPlane(), and myCrystal_.

76 { return myCrystal_->getPlane(side); }
const Plane3D & getPlane(const CaloDirection &side) const
generic access
Definition: BaseCrystal.h:84
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getSide() [1/2]

void Crystal::getSide ( const CaloDirection side,
XYZPoint a,
XYZPoint b,
XYZPoint c,
XYZPoint d 
) const
inline

generic access

Definition at line 64 of file Crystal.h.

References a, b, c, ztail::d, BaseCrystal::getSide(), and myCrystal_.

64  {
65  myCrystal_->getSide(side, a, b, c, d);
66  }
void getSide(const CaloDirection &side, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
generic access
Definition: BaseCrystal.cc:224
d
Definition: ztail.py:151
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

◆ getSide() [2/2]

void Crystal::getSide ( const CaloDirection side,
std::vector< XYZPoint > &  corners 
) const
inline

Definition at line 67 of file Crystal.h.

References BaseCrystal::getSide(), and myCrystal_.

67 { myCrystal_->getSide(side, corners); }
void getSide(const CaloDirection &side, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
generic access
Definition: BaseCrystal.cc:224
const BaseCrystal * myCrystal_
Definition: Crystal.h:116

◆ getSubdetNumber()

const int Crystal::getSubdetNumber ( ) const
inline

get the subdector

Definition at line 48 of file Crystal.h.

References BaseCrystal::getSubdetNumber(), and myCrystal_.

48 { return myCrystal_->getSubdetNumber(); }
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
const int getSubdetNumber() const
get the subdector
Definition: BaseCrystal.h:60

◆ getX0Back()

double Crystal::getX0Back ( ) const
inline

get the X0back

Definition at line 107 of file Crystal.h.

References X0back_.

107 { return X0back_; }
double X0back_
Definition: Crystal.h:115

◆ number()

unsigned Crystal::number ( ) const
inline

get the number of the crystal

Definition at line 95 of file Crystal.h.

References number_.

95 { return number_; };
unsigned number_
Definition: Crystal.h:112

◆ oppositeDirection()

static unsigned Crystal::oppositeDirection ( unsigned  iside)
static

◆ print()

void Crystal::print ( void  ) const
inline

Definition at line 49 of file Crystal.h.

References myCrystal_, and BaseCrystal::print().

49 { return myCrystal_->print(); }
const BaseCrystal * myCrystal_
Definition: Crystal.h:116
void print() const
Definition: BaseCrystal.cc:237

◆ setNumber()

void Crystal::setNumber ( unsigned  n)
inline

it might be useful to have a number assigned to the crystal

Definition at line 92 of file Crystal.h.

References dqmiodumpmetadata::n, and number_.

92 { number_ = n; };
unsigned number_
Definition: Crystal.h:112

◆ setX0Back()

void Crystal::setX0Back ( double  val)
inline

set X0back (it depends on the choosen origin, it isn't purely geometrical)

Definition at line 104 of file Crystal.h.

References heppy_batch::val, and X0back_.

104 { X0back_ = val; }
double X0back_
Definition: Crystal.h:115

Member Data Documentation

◆ cellid_

DetId Crystal::cellid_
private

Definition at line 113 of file Crystal.h.

Referenced by getDetId().

◆ myCrystal_

const BaseCrystal* Crystal::myCrystal_ = nullptr
private

◆ neighbours_

std::vector<CrystalNeighbour> Crystal::neighbours_
private

Definition at line 114 of file Crystal.h.

Referenced by Crystal(), and crystalNeighbour().

◆ number_

unsigned Crystal::number_ = 0
private

Definition at line 112 of file Crystal.h.

Referenced by number(), and setNumber().

◆ X0back_

double Crystal::X0back_ = 0.
private

Definition at line 115 of file Crystal.h.

Referenced by getX0Back(), and setX0Back().