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
trackerDTC::Stub::~Stub
~Stub()
Definition: Stub.h:15
trackerDTC::Stub::Stub
Stub(const edm::ParameterSet &, const Setup &, SensorModule *, const TTStubRef &)
Definition: Stub.cc:13
trackerDTC::SensorModule
Definition: SensorModule.h:11
trackerDTC::Stub::frame
TTDTC::BV frame(int region) const
Definition: Stub.cc:139
trackerDTC::Stub::formatHybrid
TTDTC::BV formatHybrid(int region) const
Definition: Stub.cc:148
TTDTC::BV
std::bitset< TTBV::S > BV
Definition: TTDTC.h:20
trackerDTC::Stub
Definition: Stub.h:12
trackerDTC::Stub::bend_
int bend_
Definition: Stub.h:51
trackerDTC::Stub::sm_
SensorModule * sm_
Definition: Stub.h:39
trackerDTC::Setup
Class to process and provide run-time constants used by Track Trigger emulators.
Definition: Setup.h:41
trackerDTC::Stub::col_
int col_
Definition: Stub.h:47
edm::Ref< TTStubDetSetVec, TTStub< Ref_Phase2TrackerDigi_ > >
trackerDTC::Stub::cot_
std::pair< double, double > cot_
Definition: Stub.h:71
trackerDTC::Stub::formatTMTT
TTDTC::BV formatTMTT(int region) const
Definition: Stub.cc:166
trackerDTC::Stub::bend
int bend() const
Definition: Stub.h:22
trackerDTC::Stub::rowLUT_
int rowLUT_
Definition: Stub.h:53
trackerDTC::Stub::qOverPt_
std::pair< double, double > qOverPt_
Definition: Stub.h:69
trackerDTC::Stub::phi_
double phi_
Definition: Stub.h:59
trackerDTC::Stub::c_
double c_
Definition: Stub.h:65
trackerDTC::Stub::m_
double m_
Definition: Stub.h:63
common_cff.precision
precision
Definition: common_cff.py:44
edm::ParameterSet
Definition: ParameterSet.h:36
value
Definition: value.py:1
trackerDTC::Stub::z_
double z_
Definition: Stub.h:61
trackerDTC::Stub::digi
double digi(double value, double precision) const
Definition: Stub.cc:145
trackerDTC
Definition: DTC.h:10
trackerDTC::Stub::hybrid_
bool hybrid_
Definition: Stub.h:43
Setup.h
trackerDTC::Stub::valid
bool valid() const
Definition: Stub.h:20
trackerDTC::Stub::phiT_
std::pair< double, double > phiT_
Definition: Stub.h:73
trackerDTC::Stub::inRegion
bool inRegion(int region) const
Definition: Stub.cc:142
trackerDTC::Stub::regions_
std::vector< int > regions_
Definition: Stub.h:75
trackerDTC::Stub::setup_
const Setup * setup_
Definition: Stub.h:37
trackerDTC::Stub::ttStubRef_
TTStubRef ttStubRef_
Definition: Stub.h:41
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
trackerDTC::Stub::r_
double r_
Definition: Stub.h:57
trackerDTC::Stub::d_
double d_
Definition: Stub.h:67
trackerDTC::Stub::row_
int row_
Definition: Stub.h:49
trackerDTC::Stub::ttStubRef
TTStubRef ttStubRef() const
Definition: Stub.h:18
trackerDTC::Stub::valid_
bool valid_
Definition: Stub.h:45
trackerDTC::Stub::rowSub_
int rowSub_
Definition: Stub.h:55