CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 digi(double value, double precision) const
Definition: Stub.cc:146
double r_
Definition: Stub.h:57
int rowSub_
Definition: Stub.h:55
std::bitset< TTBV::S > BV
Definition: TTDTC.h:20
TTStubRef ttStubRef_
Definition: Stub.h:41
bool hybrid_
Definition: Stub.h:43
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
TTDTC::BV formatTMTT(int region) const
Definition: Stub.cc:169
double d_
Definition: Stub.h:67
TTDTC::BV formatHybrid(int region) const
Definition: Stub.cc:149
bool valid_
Definition: Stub.h:45
TTDTC::BV frame(int region) const
Definition: Stub.cc:140
Stub(const edm::ParameterSet &, const Setup &, SensorModule *, const TTStubRef &)
Definition: Stub.cc:13
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:42
int rowLUT_
Definition: Stub.h:53
std::pair< double, double > phiT_
Definition: Stub.h:73
std::pair< double, double > qOverPt_
Definition: Stub.h:69
SensorModule * sm_
Definition: Stub.h:39
TTStubRef ttStubRef() const
Definition: Stub.h:18
int bend() const
Definition: Stub.h:22
double z_
Definition: Stub.h:61
std::pair< double, double > cot_
Definition: Stub.h:71
bool inRegion(int region) const
Definition: Stub.cc:143
bool valid() const
Definition: Stub.h:20