12 #include <CLHEP/Vector/EulerAngles.h>
13 #include <CLHEP/Vector/Rotation.h>
19 #include <gearimpl/Vector3D.h>
22 #include <marlin/Global.h>
23 #include <streamlog/streamlog.h>
32 :_gearType(subdetector)
68 int encodedStripID = 0;
82 return encodedStripID;
133 streamlog_out(ERROR) <<
"SiStripGeom::getLayerRealID - layerID: " << layerID <<
" out of range!!!"
151 streamlog_out(ERROR) <<
"SiStripGeom::getLayerIDCTypeNo - layer: " <<
152 realLayerID <<
" not found in layer list!!!" << std::endl;
163 if (
_layerType.size()>(
unsigned short int)layerID)
170 std::cout <<
" size " <<
_layerType.size() << std::endl;
171 streamlog_out(ERROR) <<
"SiStripGeom::getLayerType - layerID: "
172 << layerID <<
" out of range!!!" << std::endl;
190 streamlog_out(ERROR) <<
"SiStripGeom::getLayerRadius - layerID: " << layerID <<
" out of range!!!"
209 streamlog_out(ERROR) <<
"SiStripGeom::getLayerHalfPhi - layerID: " << layerID <<
" out of range!!!"
222 if (
_layerPhi0.size()>(
unsigned short int)layerID)
228 streamlog_out(ERROR) <<
"SiStripGeom::getLayerPhi0 - layerID: " << layerID <<
" out of range!!!"
247 streamlog_out(ERROR) <<
"SiStripGeom::getNLadders - layerID: " << layerID <<
" out of range!!!"
266 streamlog_out(ERROR) <<
"SiStripGeom::getLadderThick - layerID: " << layerID <<
" out of range!!!"
282 streamlog_out(ERROR) <<
"SiStripGeom::getLadderWidth - layerID: " << layerID <<
" out of range!!!"
296 streamlog_out(ERROR) <<
"SiStripGeom::getLadderLength - layerID: " << layerID <<
" out of range!!!"
310 streamlog_out(ERROR) <<
"SiStripGeom::getLadderOffsetY - layerID: " << layerID <<
" out of range!!!"
324 streamlog_out(ERROR) <<
"SiStripGeom::getLadderOffsetZ - layerID: " << layerID <<
" out of range!!!"
338 streamlog_out(ERROR) <<
"SiStripGeom::getLadderPhi - ladderID: " << ladderID <<
" out of range!!!"
366 streamlog_out(ERROR) <<
"SiStripGeom::getNSensors - layerID: " << layerID <<
" out of range!!!"
426 streamlog_out(ERROR) <<
"SiStripGeom::getSensorThick - layerID: " << layerID <<
" out of range!!!"
443 streamlog_out(ERROR) <<
"SiStripGeom::getSensorWidth - layerID: "
444 << layerID <<
" out of range!!!" << std::endl;
472 streamlog_out(ERROR) <<
"SiStripGeom::getSensorLength - layerID: " << layerID <<
" out of range!!!"
486 streamlog_out(ERROR) <<
"SiStripGeom::getSensorGapInBetween - layerID: " << layerID <<
" out of range!!!"
500 streamlog_out(ERROR) <<
"SiStripGeom::getSensorRimWidthInZ - layerID: " << layerID <<
" out of range!!!"
514 streamlog_out(ERROR) <<
"SiStripGeom::getSensorRimWidthInRPhi - layerID: " << layerID <<
" out of range!!!"
virtual double getSensorRimWidthInZ(short int layerID) const
Get width of sensor rim in Z (passive part of silicon)
std::vector< double > _sensorWidth
virtual double getSensorThick(short int layerID) const
Get sensor thickness.
virtual double getLadderPhi(short int layerID, short int ladderID) const
Get ladder rotation - phi angle.
std::vector< double > _ladderOffsetZ
std::vector< double > _ladderThick
std::vector< int > _numberOfLadders
virtual short int getLayerType(short int layerID) const
Get layer type.
virtual double getSensorLength(short int layerID) const
Get sensor length.
std::vector< double > _layerHalfPhi
std::vector< int > _layerRealID
virtual short int getNLadders(short int layerID) const
Get number of ladders.
virtual short int getLayerIDCTypeNo(int realLayerID) const
Transform real layer ID to C-type numbering 0 - n ...
std::vector< double > _ladderOffsetY
virtual double getLadderOffsetZ(short int layerID) const
Get ladder offset in Z.
virtual double getSensorWidthMin(short int layerID) const
Get sensor width 2 (the narrower one for forward-type sensors)
virtual double getLadderLength(short int layerID) const
Get ladder length.
virtual double getLayerRadius(short int layerID) const
Get layer radius.
std::vector< int > _layerType
std::vector< double > _sensorThick
std::vector< double > _sensorRimWidthInZ
virtual ~SiStripGeom()
Destructor.
std::vector< double > _ladderLength
virtual double getLadderThick(short int layerID) const
Get ladder thickness.
virtual short int getNSensors(short int layerID) const
Get number of sensors for given ladder.
std::vector< double > _sensorGapInBtw
virtual double getSensorRimWidthInRPhi(short int layerID) const
Get width of sensor rim in R-Phi (passive part of silicon)
std::vector< int > _numberOfSensors
std::vector< double > _sensorWidth2
std::vector< double > _ladderWidth
virtual double getLadderOffsetY(short int layerID) const
Get ladder offset in Y.
std::vector< double > _layerRadius
virtual double getLayerHalfPhi(const int &layerID) const
Get layer semiangle.
virtual double getLayerPhi0(short int layerID) const
Get layer phi zero angle.
std::vector< double > _sensorLength
std::vector< double > _sensorRimWidthInRPhi
virtual int encodeStripID(StripType type, int stripID) const
Encode stripID.
virtual int getLayerRealID(short int layerID) const
Get layer real ID.
virtual double getSensorGapInBetween(short int layerID) const
Get gap size inbetween sensors.
SiStripGeom(const std::string &detector)
Constructor.
virtual double getSensorWidthMax(short int layerID) const
Get sensor width (the wider one for forward-type sensors)
std::vector< double > _layerPhi0
virtual double getLadderWidth(short int layerID) const
Get ladder width (the wider one for forward sensors)