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

Date:
2012/12/25 14:24:26
Revision:
1.5

Definition at line 26 of file TrackerBounds.h.

Member Function Documentation

static const Cylinder& TrackerBounds::barrelBound ( )
inlinestatic

Definition at line 29 of file TrackerBounds.h.

References check(), and theCylinder.

Referenced by StateOnTrackerBound::operator()().

29 {check(); return *theCylinder;}
static ReferenceCountingPointer< Cylinder > theCylinder
Definition: TrackerBounds.h:41
static void check()
Definition: TrackerBounds.h:46
static void TrackerBounds::check ( void  )
inlinestaticprivate

Definition at line 46 of file TrackerBounds.h.

References initialize(), and theInit.

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

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

Definition at line 36 of file TrackerBounds.h.

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

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

Definition at line 12 of file TrackerBounds.cc.

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

Referenced by check().

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

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

Definition at line 30 of file TrackerBounds.h.

References check(), and theNegativeDisk.

Referenced by StateOnTrackerBound::operator()().

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

Definition at line 31 of file TrackerBounds.h.

References check(), and thePositiveDisk.

Referenced by StateOnTrackerBound::operator()().

31 {check(); return *thePositiveDisk;}
static ReferenceCountingPointer< Disk > thePositiveDisk
Definition: TrackerBounds.h:43
static void check()
Definition: TrackerBounds.h:46
static float TrackerBounds::radius ( void  )
inlinestatic

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

Definition at line 35 of file TrackerBounds.h.

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

35 {return 112.f;}

Member Data Documentation

ReferenceCountingPointer< BoundCylinder > TrackerBounds::theCylinder = 0
staticprivate

Definition at line 41 of file TrackerBounds.h.

Referenced by barrelBound(), and initialize().

bool TrackerBounds::theInit = false
staticprivate

Definition at line 44 of file TrackerBounds.h.

Referenced by check(), and initialize().

ReferenceCountingPointer< BoundDisk > TrackerBounds::theNegativeDisk = 0
staticprivate

Definition at line 42 of file TrackerBounds.h.

Referenced by initialize(), and negativeEndcapDisk().

ReferenceCountingPointer< BoundDisk > TrackerBounds::thePositiveDisk = 0
staticprivate

Definition at line 43 of file TrackerBounds.h.

Referenced by initialize(), and positiveEndcapDisk().