CMS 3D CMS Logo

Crystal Class Reference

#include <FastSimulation/CaloGeometryTools/interface/Crystal.h>

List of all members.

Public Types

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

Public Member Functions

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

Static Public Member Functions

static unsigned oppositeDirection (unsigned iside)

Private Attributes

DetId cellid_
const BaseCrystalmyCrystal_
std::vector< CrystalNeighbourneighbours_
unsigned number_
double X0back_

Classes

class  crystalEqual


Detailed Description

Definition at line 20 of file Crystal.h.


Member Typedef Documentation

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

Definition at line 27 of file Crystal.h.

typedef math::XYZVector Crystal::XYZPoint

Definition at line 26 of file Crystal.h.

typedef math::XYZVector Crystal::XYZVector

Definition at line 25 of file Crystal.h.


Constructor & Destructor Documentation

Crystal::Crystal (  )  [inline]

Empty constructor.

Definition at line 32 of file Crystal.h.

00032 {;};

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

constructor from DetId

Definition at line 4 of file Crystal.cc.

References neighbours_.

00004                                                            :cellid_(cell),myCrystal_(xtal)
00005 {
00006   neighbours_.resize(8);
00007 }

Crystal::~Crystal (  )  [inline]

Definition at line 113 of file Crystal.h.

00113 {;};


Member Function Documentation

CrystalNeighbour& Crystal::crystalNeighbour ( unsigned  iq  )  [inline]

Direct acces to the iq-th neighbour.

Definition at line 102 of file Crystal.h.

References neighbours_.

00102 { return  neighbours_[iq];}

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

normal exiting vector for the surface

Definition at line 84 of file Crystal.h.

References BaseCrystal::exitingNormal(), and myCrystal_.

00084 {return myCrystal_->exitingNormal(side);}

const XYZVector& Crystal::getAxis (  )  const [inline]

get crystal axis

Definition at line 105 of file Crystal.h.

References BaseCrystal::getAxis(), and myCrystal_.

00105 { return myCrystal_->getAxis();}

const XYZPoint& Crystal::getBackCenter (  )  const [inline]

get front center

Definition at line 43 of file Crystal.h.

References BaseCrystal::getBackCenter(), and myCrystal_.

00043 {return myCrystal_->getBackCenter();}

const Plane3D& Crystal::getBackPlane (  )  const [inline]

back plane

Definition at line 74 of file Crystal.h.

References BaseCrystal::getBackPlane(), and myCrystal_.

00074 {return myCrystal_->getBackPlane();}

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

Definition at line 60 of file Crystal.h.

References BaseCrystal::getBackSide(), and myCrystal_.

00060 {myCrystal_->getBackSide(corners);}

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

Coordinates of the back side.

Definition at line 59 of file Crystal.h.

References BaseCrystal::getBackSide(), and myCrystal_.

00059 {myCrystal_->getBackSide(a,b,c,d);}

const XYZPoint& Crystal::getCenter (  )  const [inline]

get 1/8*(Sum of corners)

Definition at line 39 of file Crystal.h.

References BaseCrystal::getCenter(), and myCrystal_.

00039 {return myCrystal_->getCenter();};

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

get the i-th corner

Definition at line 37 of file Crystal.h.

References BaseCrystal::getCorner(), and myCrystal_.

00037 { return myCrystal_->getCorner(i);};

const DetId& Crystal::getDetId (  )  const [inline]

get the DetId

Definition at line 49 of file Crystal.h.

References cellid_.

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

00049 {return cellid_;};

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

for debugging.

Definition at line 89 of file Crystal.h.

References BaseCrystal::getDrawingCoordinates(), and myCrystal_.

00090   {
00091     myCrystal_->getDrawingCoordinates(x,y,z);
00092   }

const XYZVector& Crystal::getFifthEdge (  )  const [inline]

Direction of the fifth edge.

Definition at line 47 of file Crystal.h.

References BaseCrystal::getFifthEdge(), and myCrystal_.

00047 {return myCrystal_->getFifthEdge();}

const XYZVector& Crystal::getFirstEdge (  )  const [inline]

Direction of the first edge.

Definition at line 45 of file Crystal.h.

References BaseCrystal::getFirstEdge(), and myCrystal_.

Referenced by EcalHitMaker::getPads().

00045 {return  myCrystal_->getFirstEdge();}

const XYZPoint& Crystal::getFrontCenter (  )  const [inline]

get front center

Definition at line 41 of file Crystal.h.

References BaseCrystal::getFrontCenter(), and myCrystal_.

00041 {return myCrystal_->getFrontCenter();};

const Plane3D& Crystal::getFrontPlane (  )  const [inline]

front plane

Definition at line 72 of file Crystal.h.

References BaseCrystal::getFrontPlane(), and myCrystal_.

00072 {return myCrystal_->getFrontPlane();}

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

Definition at line 57 of file Crystal.h.

References BaseCrystal::getFrontSide(), and myCrystal_.

00057 {myCrystal_->getFrontSide(corners);}

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

coordinates of the front side

Definition at line 56 of file Crystal.h.

References BaseCrystal::getFrontSide(), and myCrystal_.

00056 {myCrystal_->getFrontSide(a,b,c,d); }

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

lateral directions

Definition at line 81 of file Crystal.h.

References BaseCrystal::getLateralEdge(), and myCrystal_.

00081 {return myCrystal_->getLateralEdge(i);}

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

get the lateral edges

Definition at line 54 of file Crystal.h.

References BaseCrystal::getLateralEdges(), and myCrystal_.

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

lateral planes

Definition at line 76 of file Crystal.h.

References BaseCrystal::getLateralPlane(), and myCrystal_.

00076 {return myCrystal_->getLateralPlane(i);}

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

Definition at line 63 of file Crystal.h.

References BaseCrystal::getLateralSide(), and myCrystal_.

00063 {myCrystal_->getLateralSide(i,corners);}

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 62 of file Crystal.h.

References BaseCrystal::getLateralSide(), and myCrystal_.

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

generic access

Definition at line 78 of file Crystal.h.

References BaseCrystal::getPlane(), and myCrystal_.

00078 { return myCrystal_->getPlane(side);}

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

00068   {myCrystal_->getSide(side,corners);}

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

generic access

Definition at line 65 of file Crystal.h.

References BaseCrystal::getSide(), and myCrystal_.

00066   {myCrystal_->getSide(side,a,b,c,d);}

const int Crystal::getSubdetNumber (  )  const [inline]

get the subdector

Definition at line 51 of file Crystal.h.

References BaseCrystal::getSubdetNumber(), and myCrystal_.

00051 {return myCrystal_->getSubdetNumber();}

double Crystal::getX0Back (  )  const [inline]

get the X0back

Definition at line 111 of file Crystal.h.

References X0back_.

00111 { return X0back_;}

unsigned Crystal::number (  )  const [inline]

get the number of the crystal

Definition at line 98 of file Crystal.h.

References number_.

00098                                  {
00099     return number_;};

static unsigned Crystal::oppositeDirection ( unsigned  iside  )  [static]

void Crystal::print ( void   )  const [inline]

Definition at line 52 of file Crystal.h.

References myCrystal_, and BaseCrystal::print().

00052 {return myCrystal_->print();}

void Crystal::setNumber ( unsigned  n  )  [inline]

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

Definition at line 95 of file Crystal.h.

References number_.

00095 {number_=n;};

void Crystal::setX0Back ( double  val  )  [inline]

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

Definition at line 108 of file Crystal.h.

References X0back_.

00108 {X0back_=val;}


Member Data Documentation

DetId Crystal::cellid_ [private]

Definition at line 117 of file Crystal.h.

Referenced by getDetId().

const BaseCrystal* Crystal::myCrystal_ [private]

Definition at line 120 of file Crystal.h.

Referenced by exitingNormal(), getAxis(), getBackCenter(), getBackPlane(), getBackSide(), getCenter(), getCorner(), getDrawingCoordinates(), getFifthEdge(), getFirstEdge(), getFrontCenter(), getFrontPlane(), getFrontSide(), getLateralEdge(), getLateralEdges(), getLateralPlane(), getLateralSide(), getPlane(), getSide(), getSubdetNumber(), and print().

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

Definition at line 118 of file Crystal.h.

Referenced by Crystal(), and crystalNeighbour().

unsigned Crystal::number_ [private]

Definition at line 113 of file Crystal.h.

Referenced by number(), and setNumber().

double Crystal::X0back_ [private]

Definition at line 119 of file Crystal.h.

Referenced by getX0Back(), and setX0Back().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:17:00 2009 for CMSSW by  doxygen 1.5.4