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) : hasX0(false), hasFSlope(false), allLayers(al) {}
20  DataX0(float ax0, float asX0D, float aCotTheta)
21  : hasX0(true),
23  x0(ax0),
24  sumX0D(asX0D),
25  cotTheta(aCotTheta),
26  slopeSumX0D(0.),
27  allLayers(nullptr) {}
28  void setForwardSumX0DSlope(float aSlope) {
29  hasFSlope = true;
30  slopeSumX0D = aSlope;
31  }
35  };
36 
37 public:
38  MSLayer(const DetLayer* layer, const DataX0& dataX0 = DataX0(nullptr)) dso_hidden;
39  MSLayer() {}
40 
42  float position,
43  Range range,
44  float halfThickness = 0.,
45  const DataX0& dataX0 = DataX0(nullptr)) dso_hidden;
46 
47  // sequential number to be used in "maps"
48  int seqNum() const { return theSeqNum; }
49  // void setSeqNum(int sq) { theSeqNum=sq;}
50 
51  const Range& range() const { return theRange; }
52 
53  const GeomDetEnumerators::Location& face() const { return theFace; }
54  float position() const { return thePosition; }
55  float halfThickness() const { return theHalfThickness; }
56 
57  float x0(float cotTheta) const dso_hidden;
58  float sumX0D(float cotTheta) const dso_hidden;
59 
60  bool operator==(const MSLayer& o) const dso_hidden;
61  bool operator<(const MSLayer& o) const dso_hidden;
62 
63  std::pair<PixelRecoPointRZ, bool> crossing(const PixelRecoLineRZ& line) const dso_hidden;
64  std::pair<PixelRecoPointRZ, bool> crossing(const SimpleLineRZ& line) const dso_hidden;
65 
66  float distance2(const PixelRecoPointRZ& point) const dso_hidden;
67 
68 private:
70  float thePosition;
71  Range theRange;
73  int theSeqNum;
74 
76 
77  friend class MSLayersKeeper;
78  friend std::ostream& operator<<(std::ostream& s, const MSLayer& l);
79 };
80 
81 std::ostream& operator<<(std::ostream& s, const MSLayer& l) dso_hidden;
82 std::ostream& operator<<(std::ostream& s, const MSLayer::DataX0& d) dso_hidden;
83 #endif
const MSLayersKeeper * allLayers
Definition: MSLayer.h:34
#define nullptr
float theHalfThickness
Definition: MSLayer.h:72
Range theRange
Definition: MSLayer.h:71
const Range & range() const
Definition: MSLayer.h:51
bool hasFSlope
Definition: MSLayer.h:32
const GeomDetEnumerators::Location & face() const
Definition: MSLayer.h:53
float position() const
Definition: MSLayer.h:54
int theSeqNum
Definition: MSLayer.h:73
float halfThickness() const
Definition: MSLayer.h:55
DataX0(float ax0, float asX0D, float aCotTheta)
Definition: MSLayer.h:20
bool operator<(const MSLayer &o) const
Definition: MSLayer.cc:71
DataX0 theX0Data
Definition: MSLayer.h:75
MSLayer()
Definition: MSLayer.h:39
bool operator==(const MSLayer &o) const
Definition: MSLayer.cc:67
d
Definition: ztail.py:151
float cotTheta
Definition: MSLayer.h:33
#define dso_hidden
Definition: Visibility.h:12
std::pair< PixelRecoPointRZ, bool > crossing(const PixelRecoLineRZ &line) const
Definition: MSLayer.cc:83
part
Definition: HCALResponse.h:20
int seqNum() const
Definition: MSLayer.h:48
float thePosition
Definition: MSLayer.h:70
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:117
void setForwardSumX0DSlope(float aSlope)
Definition: MSLayer.h:28
float slopeSumX0D
Definition: MSLayer.h:33
GeomDetEnumerators::Location theFace
Definition: MSLayer.h:69
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:33