CMS 3D CMS Logo

MSLayer.h
Go to the documentation of this file.
1 #ifndef MSLayer_H
2 #define MSLayer_H
7 #include <iosfwd>
8 
10 
11 class DetLayer;
12 class MSLayersKeeper;
13 
14 class MSLayer {
15 public:
17 
18  struct DataX0 {
19  DataX0(const MSLayersKeeper *al = nullptr)
20  : hasX0(false), allLayers(al) { }
21  DataX0(float ax0, float asX0D, float aCotTheta)
22  : hasX0(true), hasFSlope(false), x0(ax0), sumX0D(asX0D),
23  cotTheta(aCotTheta), allLayers(nullptr) { }
24  void setForwardSumX0DSlope(float aSlope)
25  { hasFSlope= true; slopeSumX0D = aSlope; }
29  };
30 
31 public:
32  MSLayer(const DetLayer* layer, const DataX0& dataX0 = DataX0(nullptr) ) dso_hidden;
33  MSLayer() { }
34 
36  float halfThickness = 0.,
37  const DataX0& dataX0 = DataX0(nullptr) ) dso_hidden;
38 
39 
40  // sequential number to be used in "maps"
41  int seqNum() const { return theSeqNum;}
42  // void setSeqNum(int sq) { theSeqNum=sq;}
43 
44 
45  const Range & range() const { return theRange; }
46 
47  const GeomDetEnumerators::Location & face() const { return theFace; }
48  float position() const { return thePosition; }
49  float halfThickness() const { return theHalfThickness; }
50 
51  float x0(float cotTheta) const dso_hidden;
52  float sumX0D(float cotTheta) const dso_hidden;
53 
54 
55  bool operator== (const MSLayer &o) const dso_hidden;
56  bool operator< (const MSLayer &o) const dso_hidden;
57 
58  std::pair<PixelRecoPointRZ,bool> crossing(const PixelRecoLineRZ &line) const dso_hidden;
59  std::pair<PixelRecoPointRZ,bool> crossing(const SimpleLineRZ &line) const dso_hidden;
60 
61 
62  float distance2(const PixelRecoPointRZ & point) const dso_hidden;
63 
64 private:
65 
67  float thePosition;
68  Range theRange;
70  int theSeqNum;
71 
73 
74  friend class MSLayersKeeper;
75  friend std::ostream& operator<<( std::ostream& s, const MSLayer & l);
76 
77 };
78 
79 std::ostream& operator<<( std::ostream& s, const MSLayer & l) dso_hidden;
80 std::ostream& operator<<( std::ostream& s, const MSLayer::DataX0 & d) dso_hidden;
81 #endif
const MSLayersKeeper * allLayers
Definition: MSLayer.h:28
#define nullptr
float theHalfThickness
Definition: MSLayer.h:69
Range theRange
Definition: MSLayer.h:68
const Range & range() const
Definition: MSLayer.h:45
bool hasFSlope
Definition: MSLayer.h:26
const GeomDetEnumerators::Location & face() const
Definition: MSLayer.h:47
float position() const
Definition: MSLayer.h:48
int theSeqNum
Definition: MSLayer.h:70
float halfThickness() const
Definition: MSLayer.h:49
DataX0(float ax0, float asX0D, float aCotTheta)
Definition: MSLayer.h:21
bool operator<(const MSLayer &o) const
Definition: MSLayer.cc:76
DataX0 theX0Data
Definition: MSLayer.h:72
MSLayer()
Definition: MSLayer.h:33
bool operator==(const MSLayer &o) const
Definition: MSLayer.cc:71
float cotTheta
Definition: MSLayer.h:27
#define dso_hidden
Definition: Visibility.h:12
std::pair< PixelRecoPointRZ, bool > crossing(const PixelRecoLineRZ &line) const
Definition: MSLayer.cc:90
part
Definition: HCALResponse.h:20
int seqNum() const
Definition: MSLayer.h:41
float thePosition
Definition: MSLayer.h:67
DataX0(const MSLayersKeeper *al=0)
Definition: MSLayer.h:19
friend std::ostream & operator<<(std::ostream &s, const MSLayer &l)
float distance2(const PixelRecoPointRZ &point) const
Definition: MSLayer.cc:122
void setForwardSumX0DSlope(float aSlope)
Definition: MSLayer.h:24
float slopeSumX0D
Definition: MSLayer.h:27
GeomDetEnumerators::Location theFace
Definition: MSLayer.h:66
PixelRecoRange< float > Range
Definition: MSLayer.h:16
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
float sumX0D
Definition: MSLayer.h:27