CMS 3D CMS Logo

Stub.h
Go to the documentation of this file.
1 #ifndef L1Trigger_TrackerDTC_Stub_h
2 #define L1Trigger_TrackerDTC_Stub_h
3 
5 
6 #include <utility>
7 #include <vector>
8 
9 namespace trackerDTC {
10 
11  // representation of a stub
12  class Stub {
13  public:
14  Stub(const edm::ParameterSet&, const Setup&, SensorModule*, const TTStubRef&);
15  ~Stub() {}
16 
17  // underlying TTStubRef
18  TTStubRef ttStubRef() const { return ttStubRef_; }
19  // did pass pt and eta cut
20  bool valid() const { return valid_; }
21  // stub bend in quarter pitch units
22  int bend() const { return bend_; }
23  // bit accurate representation of Stub
24  TTDTC::BV frame(int region) const;
25  // checks stubs region assignment
26  bool inRegion(int region) const;
27 
28  private:
29  // truncates double precision to f/w integer equivalent
30  double digi(double value, double precision) const;
31  // 64 bit stub in hybrid data format
32  TTDTC::BV formatHybrid(int region) const;
33  // 64 bit stub in tmtt data format
34  TTDTC::BV formatTMTT(int region) const;
35 
36  // stores, calculates and provides run-time constants
37  const Setup* setup_;
38  // representation of an outer tracker sensormodule
40  // underlying TTStubRef
42  // chosen TT algorithm
43  bool hybrid_;
44  // passes pt and eta cut
45  bool valid_;
46  // column number in pitch units
47  int col_;
48  // row number in half pitch units
49  int row_;
50  // bend number in quarter pitch units
51  int bend_;
52  // reduced row number for look up
53  int rowLUT_;
54  // sub row number inside reduced row number
55  int rowSub_;
56  // stub r w.r.t. an offset in cm
57  double r_;
58  // stub phi w.r.t. detector region centre in rad
59  double phi_;
60  // stub z w.r.t. an offset in cm
61  double z_;
62  // slope of linearized stub phi in rad / pitch
63  double m_;
64  // intercept of linearized stub phi in rad
65  double c_;
66  // radius of a column of strips/pixel in cm
67  double d_;
68  // range of stub qOverPt in 1/cm
69  std::pair<double, double> qOverPt_;
70  // range of stub cot(theta)
71  std::pair<double, double> cot_;
72  // range of stub extrapolated phi to radius chosenRofPhi in rad
73  std::pair<double, double> phiT_;
74  // shared regions this stub belongs to [0-1]
75  std::vector<int> regions_;
76  };
77 
78 } // namespace trackerDTC
79 
80 #endif
const Setup * setup_
Definition: Stub.h:37
double r_
Definition: Stub.h:57
int rowSub_
Definition: Stub.h:55
bool valid() const
Definition: Stub.h:20
std::bitset< TTBV::S > BV
Definition: TTDTC.h:20
TTStubRef ttStubRef_
Definition: Stub.h:41
bool hybrid_
Definition: Stub.h:43
bool inRegion(int region) const
Definition: Stub.cc:143
std::vector< int > regions_
Definition: Stub.h:75
double phi_
Definition: Stub.h:59
double c_
Definition: Stub.h:65
double m_
Definition: Stub.h:63
double d_
Definition: Stub.h:67
bool valid_
Definition: Stub.h:45
Stub(const edm::ParameterSet &, const Setup &, SensorModule *, const TTStubRef &)
Definition: Stub.cc:13
Definition: value.py:1
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:42
TTDTC::BV formatHybrid(int region) const
Definition: Stub.cc:149
int rowLUT_
Definition: Stub.h:53
std::pair< double, double > phiT_
Definition: Stub.h:73
std::pair< double, double > qOverPt_
Definition: Stub.h:69
TTDTC::BV frame(int region) const
Definition: Stub.cc:140
SensorModule * sm_
Definition: Stub.h:39
TTStubRef ttStubRef() const
Definition: Stub.h:18
Definition: DTC.h:10
double z_
Definition: Stub.h:61
double digi(double value, double precision) const
Definition: Stub.cc:146
std::pair< double, double > cot_
Definition: Stub.h:71
int bend() const
Definition: Stub.h:22
TTDTC::BV formatTMTT(int region) const
Definition: Stub.cc:169