#include <TrackerBounds.h>
Static Public Member Functions | |
static const Cylinder & | barrelBound () |
static float | halfLength () |
static bool | isInside (const GlobalPoint &) |
static const Disk & | negativeEndcapDisk () |
static const Disk & | positiveEndcapDisk () |
static float | radius () |
Static Private Member Functions | |
static void | check () |
static void | initialize () |
Static Private Attributes | |
static ReferenceCountingPointer < Cylinder > | theCylinder = 0 |
static bool | theInit = false |
static ReferenceCountingPointer< Disk > | theNegativeDisk = 0 |
static ReferenceCountingPointer< Disk > | thePositiveDisk = 0 |
A definition of the envelope that contains the tracker sensitive detectors. The information is not automatically computed from the Tracker geometry, but is hard-coded in this class. However, there is very little freedom to modify the tracker size (ECAL constraint...), so a fast access to this information is very useful. The recommended use is: Inside the TrackerBounds tracker propagators are expected to work accurately. Outside of this volume use some kind of geane.
Ported from ORCA
Definition at line 26 of file TrackerBounds.h.
static const Cylinder& TrackerBounds::barrelBound | ( | ) | [inline, static] |
Definition at line 29 of file TrackerBounds.h.
References check(), and theCylinder.
Referenced by StateOnTrackerBound::operator()().
{check(); return *theCylinder;}
static void TrackerBounds::check | ( | void | ) | [inline, static, private] |
Definition at line 46 of file TrackerBounds.h.
References initialize(), and theInit.
Referenced by barrelBound(), negativeEndcapDisk(), and positiveEndcapDisk().
{if (!theInit) initialize();}
static float TrackerBounds::halfLength | ( | ) | [inline, static] |
Definition at line 36 of file TrackerBounds.h.
Referenced by initialize(), isInside(), and StateOnTrackerBound::operator()().
{return 273.5f;}
void TrackerBounds::initialize | ( | ) | [static, private] |
Definition at line 12 of file TrackerBounds.cc.
References epsilon, halfLength(), radius(), makeMuonMisalignmentScenario::rot, theCylinder, theInit, theNegativeDisk, and thePositiveDisk.
Referenced by check().
{ const float epsilon = 0.001; // should not matter at all Surface::RotationType rot; // unit rotation matrix auto cb = new SimpleCylinderBounds( radius()-epsilon, radius()+epsilon, -halfLength(), halfLength() ); theCylinder = new Cylinder(Cylinder::computeRadius(*cb), Surface::PositionType(0,0,0), rot, cb); theNegativeDisk = new Disk( Surface::PositionType( 0, 0, -halfLength()), rot, new SimpleDiskBounds( 0, radius(), -epsilon, epsilon)); thePositiveDisk = new Disk( Surface::PositionType( 0, 0, halfLength()), rot, new SimpleDiskBounds( 0, radius(), -epsilon, epsilon)); theInit = true; }
bool TrackerBounds::isInside | ( | const GlobalPoint & | point | ) | [static] |
Definition at line 37 of file TrackerBounds.cc.
References halfLength(), PV3DBase< T, PVType, FrameType >::perp(), radius(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by MuonSeedTrack::buildTrackAtPCA(), MuonTrackLoader::buildTrackAtPCA(), MuonUpdatorAtVertex::propagate(), and MuonUpdatorAtVertex::propagateToNominalLine().
{ return (point.perp() <= radius() && fabs(point.z()) <= halfLength()); }
static const Disk& TrackerBounds::negativeEndcapDisk | ( | ) | [inline, static] |
Definition at line 30 of file TrackerBounds.h.
References check(), and theNegativeDisk.
Referenced by StateOnTrackerBound::operator()().
{check(); return *theNegativeDisk;}
static const Disk& TrackerBounds::positiveEndcapDisk | ( | ) | [inline, static] |
Definition at line 31 of file TrackerBounds.h.
References check(), and thePositiveDisk.
Referenced by StateOnTrackerBound::operator()().
{check(); return *thePositiveDisk;}
static float TrackerBounds::radius | ( | void | ) | [inline, static] |
Hard-wired numbers defining the envelope of the sensitive volumes.
Definition at line 35 of file TrackerBounds.h.
Referenced by initialize(), and isInside().
{return 112.f;}
ReferenceCountingPointer< BoundCylinder > TrackerBounds::theCylinder = 0 [static, private] |
Definition at line 41 of file TrackerBounds.h.
Referenced by barrelBound(), and initialize().
bool TrackerBounds::theInit = false [static, private] |
Definition at line 44 of file TrackerBounds.h.
Referenced by check(), and initialize().
ReferenceCountingPointer< BoundDisk > TrackerBounds::theNegativeDisk = 0 [static, private] |
Definition at line 42 of file TrackerBounds.h.
Referenced by initialize(), and negativeEndcapDisk().
ReferenceCountingPointer< BoundDisk > TrackerBounds::thePositiveDisk = 0 [static, private] |
Definition at line 43 of file TrackerBounds.h.
Referenced by initialize(), and positiveEndcapDisk().