Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:05:33

0001 #ifndef GeomPropagators_TrackerBounds_H
0002 #define GeomPropagators_TrackerBounds_H
0003 
0004 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0005 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0006 
0007 class Cylinder;
0008 class Disk;
0009 
0010 /** A definition of the envelope that contains the tracker
0011  *  sensitive detectors.
0012  *  The information is not automatically computed from the
0013  *  Tracker geometry, but is hard-coded in this class.
0014  *  However, there is very little freedom to modify the
0015  *  tracker size (ECAL constraint...),
0016  *  so a fast access to this information is very useful.
0017  *  The recommended use is: Inside the TrackerBounds
0018  *  tracker propagators are expected to work accurately.
0019  *  Outside of this volume use some kind of geane.
0020 
0021  *  Ported from ORCA
0022  */
0023 
0024 class TrackerBounds {
0025 public:
0026   static const Cylinder& barrelBound() { return *theCylinder; }
0027   static const Disk& negativeEndcapDisk() { return *theNegativeDisk; }
0028   static const Disk& positiveEndcapDisk() { return *thePositiveDisk; }
0029 
0030   /** Hard-wired numbers defining the envelope of the sensitive volumes.
0031    */
0032   static float radius() { return 112.f; }
0033   static float halfLength() { return 273.5f; }
0034   static bool isInside(const GlobalPoint&);
0035 
0036 private:
0037   static const ReferenceCountingPointer<Cylinder> theCylinder;
0038   static const ReferenceCountingPointer<Disk> theNegativeDisk;
0039   static const ReferenceCountingPointer<Disk> thePositiveDisk;
0040 };
0041 
0042 #endif