CMS 3D CMS Logo

EMTFTrack2016Extra.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 DataFormats_L1TMuon_EMTFTrack2016Extra_h
5 #define DataFormats_L1TMuon_EMTFTrack2016Extra_h
6 
7 #include <vector>
8 #include <boost/cstdint.hpp>
9 
12 
13 
14 namespace l1t {
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 ~EMTFTrack2016Extra() {};
24 
26 
29  void set_HitExtraIndices(std::vector<unsigned int> bits) { _HitExtraIndices = bits; numHitsExtra = _HitExtraIndices.size(); }
30  void push_HitExtraIndex(unsigned int bits) { _HitExtraIndices.push_back(bits); numHitsExtra = _HitExtraIndices.size(); }
31 
32  int NumHitsExtra() const { return numHitsExtra; }
34  std::vector<unsigned int> HitExtraIndices() { return _HitExtraIndices; }
35  const EMTFHit2016ExtraCollection * PtrHitsExtra() const { return &_HitsExtra; }
36  const std::vector<unsigned int> * 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<unsigned int> _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 EMTFTrack2016Extra
94 
95  // Define a vector of EMTFTrack2016Extra
96  typedef std::vector<EMTFTrack2016Extra> EMTFTrack2016ExtraCollection;
97 
98 } // End of namespace l1t
99 
100 #endif /* define DataFormats_L1TMuon_EMTFTrack2016Extra_h */
type
Definition: HCALResponse.h:21
EMTFHit2016ExtraCollection HitsExtra()
std::vector< unsigned int > HitExtraIndices()
const std::vector< unsigned int > * PtrHitExtraIndices() const
void set_thetas(std::vector< int > _thetas)
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
std::vector< int > thetas
void set_HitExtraIndices(std::vector< unsigned int > bits)
void set_theta_deg(float val)
delete x;
Definition: CaloConfig.h:22
std::vector< int > phis
const EMTFHit2016ExtraCollection * PtrHitsExtra() const
void set_straightness(int bits)
std::vector< EMTFHit2016Extra > EMTFHit2016ExtraCollection
EMTFTrack2016 CreateEMTFTrack2016()
EMTFHit2016ExtraCollection _HitsExtra
void set_HitsExtra(EMTFHit2016ExtraCollection bits)
void push_HitExtraIndex(unsigned int bits)
void set_phis(std::vector< int > _phis)
std::vector< unsigned int > _HitExtraIndices
void set_theta_rad(float val)
std::vector< EMTFTrack2016Extra > EMTFTrack2016ExtraCollection
void push_HitExtra(EMTFHit2016Extra bits)