#include <TrackingTools/GeomPropagators/interface/TrackerBounds.h>
Static Public Member Functions | |
static const BoundCylinder & | barrelBound () |
static float | halfLength () |
static bool | isInside (const GlobalPoint &) |
static const BoundDisk & | negativeEndcapDisk () |
static const BoundDisk & | positiveEndcapDisk () |
static float | radius () |
Hard-wired numbers defining the envelope of the sensitive volumes. | |
Static Private Member Functions | |
static void | check () |
static void | initialize () |
Static Private Attributes | |
static ReferenceCountingPointer < BoundCylinder > | theCylinder = 0 |
static bool | theInit = false |
static ReferenceCountingPointer < BoundDisk > | theNegativeDisk = 0 |
static ReferenceCountingPointer < BoundDisk > | thePositiveDisk = 0 |
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 BoundCylinder& TrackerBounds::barrelBound | ( | ) | [inline, static] |
Definition at line 29 of file TrackerBounds.h.
References check(), and theCylinder.
Referenced by StateOnTrackerBound::operator()().
00029 {check(); return *theCylinder;}
Definition at line 46 of file TrackerBounds.h.
References initialize(), and theInit.
Referenced by barrelBound(), negativeEndcapDisk(), and positiveEndcapDisk().
00046 {if (!theInit) initialize();}
static float TrackerBounds::halfLength | ( | ) | [inline, static] |
Definition at line 36 of file TrackerBounds.h.
Referenced by initialize(), SmartPropagator::initTkVolume(), SmartPropagator::insideTkVol(), isInside(), and StateOnTrackerBound::operator()().
Definition at line 12 of file TrackerBounds.cc.
References geometryDiff::epsilon, halfLength(), radius(), rot, theCylinder, theInit, theNegativeDisk, and thePositiveDisk.
Referenced by check().
00013 { 00014 const float epsilon = 0.001; // should not matter at all 00015 00016 Surface::RotationType rot; // unit rotation matrix 00017 00018 theCylinder = new BoundCylinder( Surface::PositionType(0,0,0), rot, 00019 SimpleCylinderBounds( radius()-epsilon, 00020 radius()+epsilon, 00021 -halfLength(), 00022 halfLength())); 00023 theNegativeDisk = 00024 new BoundDisk( Surface::PositionType( 0, 0, -halfLength()), rot, 00025 SimpleDiskBounds( 0, radius(), -epsilon, epsilon)); 00026 00027 thePositiveDisk = 00028 new BoundDisk( Surface::PositionType( 0, 0, halfLength()), rot, 00029 SimpleDiskBounds( 0, radius(), -epsilon, epsilon)); 00030 00031 00032 theInit = true; 00033 }
bool TrackerBounds::isInside | ( | const GlobalPoint & | point | ) | [static] |
Definition at line 35 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().
00035 { 00036 return (point.perp() <= radius() && 00037 fabs(point.z()) <= halfLength()); 00038 }
static const BoundDisk& TrackerBounds::negativeEndcapDisk | ( | ) | [inline, static] |
Definition at line 30 of file TrackerBounds.h.
References check(), and theNegativeDisk.
Referenced by StateOnTrackerBound::operator()().
00030 {check(); return *theNegativeDisk;}
static const BoundDisk& TrackerBounds::positiveEndcapDisk | ( | ) | [inline, static] |
Definition at line 31 of file TrackerBounds.h.
References check(), and thePositiveDisk.
Referenced by StateOnTrackerBound::operator()().
00031 {check(); return *thePositiveDisk;}
static float TrackerBounds::radius | ( | ) | [inline, static] |
Hard-wired numbers defining the envelope of the sensitive volumes.
Definition at line 35 of file TrackerBounds.h.
Referenced by initialize(), SmartPropagator::initTkVolume(), SmartPropagator::insideTkVol(), isInside(), and StateOnTrackerBound::operator()().
ReferenceCountingPointer< BoundCylinder > TrackerBounds::theCylinder = 0 [static, private] |
bool TrackerBounds::theInit = false [static, private] |
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().