CMS 3D CMS Logo

MuonTemplate.h
Go to the documentation of this file.
1 #ifndef L1Trigger_L1TGlobal_MuonTemplate_h
2 #define L1Trigger_L1TGlobal_MuonTemplate_h
3 
25 // system include files
26 #include <string>
27 #include <iosfwd>
28 
29 // user include files
30 
31 // base class
33 
34 // forward declarations
35 
36 // class declaration
37 class MuonTemplate : public GlobalCondition {
38 public:
39  // constructor
40  MuonTemplate();
41 
42  // constructor
43  MuonTemplate(const std::string&);
44 
45  // constructor
47 
48  // copy constructor
49  MuonTemplate(const MuonTemplate&);
50 
51  // destructor
52  ~MuonTemplate() override;
53 
54  // assign operator
56 
57 public:
58  struct Window {
59  unsigned int lower;
60  unsigned int upper;
61  };
62 
63  // typedef for a single object template
64  struct ObjectParameter {
65  unsigned int unconstrainedPtHigh;
66  unsigned int unconstrainedPtLow;
67  unsigned int impactParameterHigh;
68  unsigned int impactParameterLow;
69  unsigned int ptHighThreshold;
70  unsigned int ptLowThreshold;
71  unsigned int indexHigh;
72  unsigned int indexLow;
73  bool enableMip;
74  bool enableIso;
75  bool requestIso;
76  unsigned int qualityLUT;
77  unsigned int isolationLUT;
78  unsigned int impactParameterLUT;
79  unsigned long long etaRange;
80  unsigned int phiHigh;
81  unsigned int phiLow;
82 
83  int charge;
84 
85  std::vector<Window> etaWindows;
86 
87  unsigned int phiWindow1Lower;
88  unsigned int phiWindow1Upper;
89  unsigned int phiWindow2Lower;
90  unsigned int phiWindow2Upper;
91 
92  std::vector<Window> tfMuonIndexWindows;
93  };
94 
95  // typedef for correlation parameters
96  // chargeCorrelation is defined always
97  // see documentation for meaning
99  unsigned int chargeCorrelation;
100  //unsigned long long deltaEtaRange;
101 
102  unsigned long long deltaPhiRange0Word;
103  unsigned long long deltaPhiRange1Word;
104  //unsigned int deltaPhiMaxbits;
105 
106  unsigned long long deltaEtaRange;
107 
108  unsigned long long deltaPhiRange;
109  unsigned int deltaPhiMaxbits;
110 
111  unsigned int deltaEtaRangeLower;
112  unsigned int deltaEtaRangeUpper;
113 
114  unsigned int deltaPhiRangeLower;
115  unsigned int deltaPhiRangeUpper;
116  };
117 
118 public:
119  inline const std::vector<ObjectParameter>* objectParameter() const { return &m_objectParameter; }
120 
122 
124  void setConditionParameter(const std::vector<ObjectParameter>& objParameter,
125  const CorrelationParameter& corrParameter);
126 
128  void print(std::ostream& myCout) const override;
129 
131  friend std::ostream& operator<<(std::ostream&, const MuonTemplate&);
132 
133 private:
135  void copy(const MuonTemplate& cp);
136 
137 private:
139  std::vector<ObjectParameter> m_objectParameter;
141 };
142 
143 #endif
void copy(const MuonTemplate &cp)
copy function for copy constructor and operator=
MuonTemplate & operator=(const MuonTemplate &)
Definition: MuonTemplate.cc:59
void print(std::ostream &myCout) const override
print the condition
Definition: MuonTemplate.cc:71
unsigned long long etaRange
Definition: MuonTemplate.h:79
std::vector< ObjectParameter > m_objectParameter
variables containing the parameters
Definition: MuonTemplate.h:139
unsigned int upper
Definition: MuonTemplate.h:60
unsigned long long deltaPhiRange0Word
Definition: MuonTemplate.h:102
const std::vector< ObjectParameter > * objectParameter() const
Definition: MuonTemplate.h:119
unsigned long long deltaPhiRange1Word
Definition: MuonTemplate.h:103
void setConditionParameter(const std::vector< ObjectParameter > &objParameter, const CorrelationParameter &corrParameter)
set functions
Definition: MuonTemplate.cc:65
unsigned int lower
Definition: MuonTemplate.h:59
std::vector< Window > etaWindows
Definition: MuonTemplate.h:85
std::vector< Window > tfMuonIndexWindows
Definition: MuonTemplate.h:92
const CorrelationParameter * correlationParameter() const
Definition: MuonTemplate.h:121
~MuonTemplate() override
Definition: MuonTemplate.cc:54
CorrelationParameter m_correlationParameter
Definition: MuonTemplate.h:140
friend std::ostream & operator<<(std::ostream &, const MuonTemplate &)
output stream operator