CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Static Public Member Functions | Static Private Member Functions | Static Private Attributes
TrackerBounds Class Reference

#include <TrackerBounds.h>

Static Public Member Functions

static const CylinderbarrelBound ()
 
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
 

Detailed Description

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 24 of file TrackerBounds.h.

Member Function Documentation

static const Cylinder& TrackerBounds::barrelBound ( )
inlinestatic

Definition at line 27 of file TrackerBounds.h.

References check(), and theCylinder.

Referenced by StateOnTrackerBound::operator()().

27 {check(); return *theCylinder;}
static ReferenceCountingPointer< Cylinder > theCylinder
Definition: TrackerBounds.h:39
static void check()
Definition: TrackerBounds.h:44
static void TrackerBounds::check ( void  )
inlinestaticprivate

Definition at line 44 of file TrackerBounds.h.

References initialize(), and theInit.

Referenced by barrelBound(), negativeEndcapDisk(), and positiveEndcapDisk().

44 {if (!theInit) initialize();}
static void initialize()
static bool theInit
Definition: TrackerBounds.h:42
static float TrackerBounds::halfLength ( )
inlinestatic

Definition at line 34 of file TrackerBounds.h.

Referenced by initialize(), isInside(), and StateOnTrackerBound::operator()().

34 {return 273.5f;}
void TrackerBounds::initialize ( )
staticprivate

Definition at line 10 of file TrackerBounds.cc.

References epsilon, halfLength(), radius(), makeMuonMisalignmentScenario::rot, theCylinder, theInit, theNegativeDisk, and thePositiveDisk.

Referenced by check().

11 {
12  const float epsilon = 0.001; // should not matter at all
13 
14  Surface::RotationType rot; // unit rotation matrix
15  auto cb = new SimpleCylinderBounds( radius()-epsilon,
16  radius()+epsilon,
18  );
19 
20  theCylinder = new Cylinder(Cylinder::computeRadius(*cb), Surface::PositionType(0,0,0), rot, cb);
21 
22 
24  new Disk( Surface::PositionType( 0, 0, -halfLength()), rot,
25  new SimpleDiskBounds( 0, radius(), -epsilon, epsilon));
26 
28  new Disk( Surface::PositionType( 0, 0, halfLength()), rot,
29  new SimpleDiskBounds( 0, radius(), -epsilon, epsilon));
30 
31 
32  theInit = true;
33 }
static ReferenceCountingPointer< Disk > theNegativeDisk
Definition: TrackerBounds.h:40
static ReferenceCountingPointer< Disk > thePositiveDisk
Definition: TrackerBounds.h:41
static float halfLength()
Definition: TrackerBounds.h:34
static ReferenceCountingPointer< Cylinder > theCylinder
Definition: TrackerBounds.h:39
static bool theInit
Definition: TrackerBounds.h:42
static float radius()
Definition: TrackerBounds.h:33
const double epsilon
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 MuonTrackLoader::buildTrackAtPCA(), MuonSeedTrack::buildTrackAtPCA(), MuonUpdatorAtVertex::propagate(), and MuonUpdatorAtVertex::propagateToNominalLine().

35  {
36  return (point.perp() <= radius() &&
37  fabs(point.z()) <= halfLength());
38 }
T perp() const
Definition: PV3DBase.h:72
static float halfLength()
Definition: TrackerBounds.h:34
T z() const
Definition: PV3DBase.h:64
static float radius()
Definition: TrackerBounds.h:33
static const Disk& TrackerBounds::negativeEndcapDisk ( )
inlinestatic

Definition at line 28 of file TrackerBounds.h.

References check(), and theNegativeDisk.

Referenced by StateOnTrackerBound::operator()().

28 {check(); return *theNegativeDisk;}
static ReferenceCountingPointer< Disk > theNegativeDisk
Definition: TrackerBounds.h:40
static void check()
Definition: TrackerBounds.h:44
static const Disk& TrackerBounds::positiveEndcapDisk ( )
inlinestatic

Definition at line 29 of file TrackerBounds.h.

References check(), and thePositiveDisk.

Referenced by StateOnTrackerBound::operator()().

29 {check(); return *thePositiveDisk;}
static ReferenceCountingPointer< Disk > thePositiveDisk
Definition: TrackerBounds.h:41
static void check()
Definition: TrackerBounds.h:44
static float TrackerBounds::radius ( void  )
inlinestatic

Hard-wired numbers defining the envelope of the sensitive volumes.

Definition at line 33 of file TrackerBounds.h.

Referenced by initialize(), isInside(), and StateOnTrackerBound::operator()().

33 {return 112.f;}

Member Data Documentation

ReferenceCountingPointer< BoundCylinder > TrackerBounds::theCylinder = 0
staticprivate

Definition at line 39 of file TrackerBounds.h.

Referenced by barrelBound(), and initialize().

bool TrackerBounds::theInit = false
staticprivate

Definition at line 42 of file TrackerBounds.h.

Referenced by check(), and initialize().

ReferenceCountingPointer< BoundDisk > TrackerBounds::theNegativeDisk = 0
staticprivate

Definition at line 40 of file TrackerBounds.h.

Referenced by initialize(), and negativeEndcapDisk().

ReferenceCountingPointer< BoundDisk > TrackerBounds::thePositiveDisk = 0
staticprivate

Definition at line 41 of file TrackerBounds.h.

Referenced by initialize(), and positiveEndcapDisk().