CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EMTFTrackExtra.h
Go to the documentation of this file.
1 // Class for muon tracks in EMTF - AWB 04.01.16
2 // Mostly copied from L1Trigger/L1TMuonEndCap/interface/MuonInternalTrack.h
3 
4 #ifndef __l1t_EMTFTrackExtra_h__
5 #define __l1t_EMTFTrackExtra_h__
6 
7 #include <vector>
8 #include <boost/cstdint.hpp>
9 
12 
13 
14 namespace l1t {
15  class EMTFTrackExtra: public EMTFTrack {
16  public:
17 
19  first_bx(-999), second_bx(-999), pt_XML(-999), theta_int(-999), theta_deg(-999), theta_rad(-999),
20  type(-999), rank(-999), layer(-999), straightness(-999), strip(-999), isGMT(-999), numHitsExtra(0)
21  {};
22 
23  virtual ~EMTFTrackExtra() {};
24 
26 
28  void push_HitExtra(EMTFHitExtra bits) { _HitsExtra.push_back(bits); numHitsExtra = _HitsExtra.size(); }
30  void push_HitExtraIndex(uint bits) { _HitExtraIndices.push_back(bits); numHitsExtra = _HitExtraIndices.size(); }
31 
32  int NumHitsExtra() const { return numHitsExtra; }
34  std::vector<uint> HitExtraIndices() { return _HitExtraIndices; }
35  const EMTFHitExtraCollection * PtrHitsExtra() const { return &_HitsExtra; }
36  const std::vector<uint> * PtrHitExtraIndices() const { return &_HitExtraIndices; }
37 
38  /* // Can't have a vector of vectors of vectors in ROOT files */
39  /* void set_deltas (vector< vector<int> > _deltas) { deltas = _deltas; } */
40  void set_phis (std::vector<int> _phis) { phis = _phis; }
41  void set_thetas (std::vector<int> _thetas) { thetas = _thetas; }
42 
43  void set_first_bx (int bits) { first_bx = bits; }
44  void set_second_bx (int bits) { second_bx = bits; }
45  void set_pt_XML (float val) { pt_XML = val; }
46  void set_theta_int (int bits) { theta_int = bits; }
47  void set_theta_deg (float val) { theta_deg = val; }
48  void set_theta_rad (float val) { theta_rad = val; }
49  void set_type (int bits) { type = bits; }
50  void set_rank (int bits) { rank = bits; }
51  void set_layer (int bits) { layer = bits; }
53  void set_strip (int bits) { strip = bits; }
54  void set_isGMT (int bits) { isGMT = bits; }
55 
56  int First_BX() const { return first_bx; }
57  int Second_BX() const { return second_bx; }
58  float Pt_XML() const { return pt_XML; }
59  int Theta_int() const { return theta_int; }
60  float Theta_deg() const { return theta_deg; }
61  float Theta_rad() const { return theta_rad; }
62  int Type() const { return type; }
63  int Rank() const { return rank; }
64  int Layer() const { return layer; }
65  int Straightness() const { return straightness; }
66  int Strip() const { return strip; }
67  int IsGMT() const { return isGMT; }
68 
69  private:
70 
72  std::vector<uint> _HitExtraIndices;
73 
74  /* // Can't have a vector of vectors of vectors in ROOT files */
75  /* std::vector< std::vector<int> > deltas; */
76  std::vector<int> phis;
77  std::vector<int> thetas;
78 
79  int first_bx; // ? - ?. Filled in emulator.
80  int second_bx; // ? - ?. Filled in emulator.
81  float pt_XML; // ? - ?. Filled in emulator.
82  int theta_int; // ? - ?. Filled in emulator.
83  float theta_deg; // ? - ?. Filled in emulator.
84  float theta_rad; // ? - ?. Filled in emulator.
85  int type; // Don't remember what this is - AWB 06.04.16
86  int rank; // ? - ?. Filled in emulator.
87  int layer; // ? - ?. Computed in BXAnalyzer.h. How can we access?
88  int straightness; // ? - ?. Filled in emulator.
89  int strip; // ? - ?. Computed in SortSector.h. How can we access?
90  int isGMT; // 0 or 1. Filled in emulator.
92 
93  }; // End of class EMTFTrackExtra
94 
95  // Define a vector of EMTFTrackExtra
96  typedef std::vector<EMTFTrackExtra> EMTFTrackExtraCollection;
97 
98 } // End of namespace l1t
99 
100 #endif /* define __l1t_EMTFTrackExtra_h__ */
std::vector< EMTFHitExtra > EMTFHitExtraCollection
Definition: EMTFHitExtra.h:94
type
Definition: HCALResponse.h:21
int Straightness() const
float Theta_rad() const
void set_straightness(int bits)
void set_HitExtraIndices(std::vector< uint > bits)
void push_HitExtra(EMTFHitExtra bits)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
const std::vector< uint > * PtrHitExtraIndices() const
int Layer() const
std::vector< uint > HitExtraIndices()
int Strip() const
int First_BX() const
int NumHitsExtra() const
void set_first_bx(int bits)
int Second_BX() const
void set_layer(int bits)
EMTFHitExtraCollection HitsExtra()
void set_HitsExtra(EMTFHitExtraCollection bits)
void push_HitExtraIndex(uint bits)
virtual ~EMTFTrackExtra()
void set_theta_deg(float val)
float Pt_XML() const
void set_isGMT(int bits)
void set_thetas(std::vector< int > _thetas)
void set_rank(int bits)
void set_theta_int(int bits)
float Theta_deg() const
std::vector< uint > _HitExtraIndices
std::vector< int > phis
void set_theta_rad(float val)
void set_strip(int bits)
void set_type(int bits)
void set_pt_XML(float val)
EMTFHitExtraCollection _HitsExtra
std::vector< int > thetas
int IsGMT() const
EMTFTrack CreateEMTFTrack()
int Theta_int() const
std::vector< EMTFTrackExtra > EMTFTrackExtraCollection
void set_second_bx(int bits)
const EMTFHitExtraCollection * PtrHitsExtra() const
void set_phis(std::vector< int > _phis)