CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
L1GtEnergySumCondition Class Reference

#include <L1GtEnergySumCondition.h>

Inheritance diagram for L1GtEnergySumCondition:
L1GtConditionEvaluation

Public Member Functions

const bool evaluateCondition () const
 the core function to check if the condition matches More...
 
const L1GtEnergySumTemplategtEnergySumTemplate () const
 get / set the pointer to a L1GtCondition More...
 
const L1GlobalTriggerPSBgtPSB () const
 get / set the pointer to PSB More...
 
 L1GtEnergySumCondition ()
 
 L1GtEnergySumCondition (const L1GtCondition *, const L1GlobalTriggerPSB *)
 from base template condition (from event setup usually) More...
 
 L1GtEnergySumCondition (const L1GtEnergySumCondition &)
 
L1GtEnergySumConditionoperator= (const L1GtEnergySumCondition &)
 
void print (std::ostream &myCout) const
 print condition More...
 
void setGtEnergySumTemplate (const L1GtEnergySumTemplate *)
 
void setGtPSB (const L1GlobalTriggerPSB *)
 set the pointer to PSB More...
 
virtual ~L1GtEnergySumCondition ()
 
- Public Member Functions inherited from L1GtConditionEvaluation
bool condLastResult () const
 get the latest result for the condition More...
 
int condMaxNumberObjects () const
 
void evaluateConditionStoreResult ()
 call evaluateCondition and save last result More...
 
CombinationsInCond const & getCombinationsInCond () const
 get all the object combinations evaluated to true in the condition More...
 
virtual std::string getNumericExpression () const
 get numeric expression More...
 
 L1GtConditionEvaluation ()
 constructor More...
 
void setCondMaxNumberObjects (int condMaxNumberObjectsValue)
 
void setVerbosity (const int verbosity)
 
virtual ~L1GtConditionEvaluation ()
 destructor More...
 

Private Member Functions

void copy (const L1GtEnergySumCondition &cp)
 copy function for copy constructor and operator= More...
 

Private Attributes

const L1GtEnergySumTemplatem_gtEnergySumTemplate
 pointer to a L1GtEnergySumTemplate More...
 
const L1GlobalTriggerPSBm_gtPSB
 pointer to PSB, to be able to get the trigger objects More...
 

Additional Inherited Members

- Protected Member Functions inherited from L1GtConditionEvaluation
template<class Type1 >
const bool checkBit (const Type1 &mask, const unsigned int bitNumber) const
 check if a bit with a given number is set in a mask More...
 
template<class Type1 , class Type2 >
const bool checkThreshold (const Type1 &threshold, const Type2 &value, const bool condGEqValue) const
 
CombinationsInCondcombinationsInCond () const
 get all the object combinations (to fill it...) More...
 
- Protected Attributes inherited from L1GtConditionEvaluation
CombinationsInCond m_combinationsInCond
 store all the object combinations evaluated to true in the condition More...
 
bool m_condLastResult
 the last result of evaluateCondition() More...
 
int m_condMaxNumberObjects
 
int m_verbosity
 verbosity level More...
 

Detailed Description

Description: evaluation of a CondEnergySum condition.

Implementation: <TODO: enter implementation details>

Author
: Vasile Mihai Ghete - HEPHY Vienna

Definition at line 33 of file L1GtEnergySumCondition.h.

Constructor & Destructor Documentation

L1GtEnergySumCondition::L1GtEnergySumCondition ( )

constructors default

Definition at line 40 of file L1GtEnergySumCondition.cc.

40  :
42 
43  //empty
44 
45 }
L1GtEnergySumCondition::L1GtEnergySumCondition ( const L1GtCondition eSumTemplate,
const L1GlobalTriggerPSB ptrPSB 
)

from base template condition (from event setup usually)

Definition at line 48 of file L1GtEnergySumCondition.cc.

References L1GtConditionEvaluation::m_condMaxNumberObjects.

49  :
51  m_gtEnergySumTemplate(static_cast<const L1GtEnergySumTemplate*>(eSumTemplate)),
52  m_gtPSB(ptrPSB)
53 
54 {
55 
56  // maximum number of objects received for the evaluation of the condition
57  // energy sums are global quantities - one object per event
58 
60 
61 }
const L1GlobalTriggerPSB * m_gtPSB
pointer to PSB, to be able to get the trigger objects
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
L1GtEnergySumCondition::L1GtEnergySumCondition ( const L1GtEnergySumCondition cp)

Definition at line 77 of file L1GtEnergySumCondition.cc.

References copy().

77  :
79 
80  copy(cp);
81 
82 }
void copy(const L1GtEnergySumCondition &cp)
copy function for copy constructor and operator=
L1GtEnergySumCondition::~L1GtEnergySumCondition ( )
virtual

Definition at line 85 of file L1GtEnergySumCondition.cc.

85  {
86 
87  // empty
88 
89 }

Member Function Documentation

void L1GtEnergySumCondition::copy ( const L1GtEnergySumCondition cp)
private

copy function for copy constructor and operator=

Definition at line 64 of file L1GtEnergySumCondition.cc.

References L1GtConditionEvaluation::condLastResult(), L1GtConditionEvaluation::condMaxNumberObjects(), L1GtConditionEvaluation::getCombinationsInCond(), gtEnergySumTemplate(), gtPSB(), L1GtConditionEvaluation::m_combinationsInCond, L1GtConditionEvaluation::m_condLastResult, L1GtConditionEvaluation::m_condMaxNumberObjects, m_gtEnergySumTemplate, m_gtPSB, and L1GtConditionEvaluation::m_verbosity.

Referenced by L1GtEnergySumCondition(), and operator=().

64  {
65 
67  m_gtPSB = cp.gtPSB();
68 
72 
74 
75 }
bool m_condLastResult
the last result of evaluateCondition()
CombinationsInCond m_combinationsInCond
store all the object combinations evaluated to true in the condition
const L1GtEnergySumTemplate * gtEnergySumTemplate() const
get / set the pointer to a L1GtCondition
const L1GlobalTriggerPSB * gtPSB() const
get / set the pointer to PSB
const L1GlobalTriggerPSB * m_gtPSB
pointer to PSB, to be able to get the trigger objects
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
CombinationsInCond const & getCombinationsInCond() const
get all the object combinations evaluated to true in the condition
bool condLastResult() const
get the latest result for the condition
const bool L1GtEnergySumCondition::evaluateCondition ( ) const
virtual

the core function to check if the condition matches

Implements L1GtConditionEvaluation.

Definition at line 114 of file L1GtEnergySumCondition.cc.

References L1GtConditionEvaluation::checkBit(), L1GtConditionEvaluation::checkThreshold(), hitfit::clear(), L1GtConditionEvaluation::combinationsInCond(), L1GtCondition::condGEq(), L1GctEtTotal::et(), L1GctEtHad::et(), L1GctEtMiss::et(), L1GctHtMiss::et(), ETM, ETT, L1GtEnergySumTemplate::ObjectParameter::etThreshold, L1GlobalTriggerPSB::getCandL1ETM(), L1GlobalTriggerPSB::getCandL1ETT(), L1GlobalTriggerPSB::getCandL1HTM(), L1GlobalTriggerPSB::getCandL1HTT(), HTM, HTT, m_gtEnergySumTemplate, m_gtPSB, L1GtEnergySumTemplate::objectParameter(), L1GtCondition::objectType(), L1GctEtTotal::overFlow(), L1GctEtHad::overFlow(), L1GctEtMiss::overFlow(), L1GctHtMiss::overFlow(), L1GctEtMiss::phi(), L1GctHtMiss::phi(), L1GtEnergySumTemplate::ObjectParameter::phiRange0Word, and L1GtEnergySumTemplate::ObjectParameter::phiRange1Word.

114  {
115 
116  // number of trigger objects in the condition
117  // in fact, there is only one object
118  int iCondition = 0;
119 
120  // condition result condResult set to true if the energy sum
121  // passes all requirements
122  bool condResult = false;
123 
124  // store the indices of the calorimeter objects
125  // from the combination evaluated in the condition
126  SingleCombInCond objectsInComb;
127 
128  // clear the m_combinationsInCond vector
130 
131  // clear the indices in the combination
132  objectsInComb.clear();
133 
134  // get energy, phi (ETM and HTM) and overflow for the trigger object
135 
136  unsigned int candEt = 0;
137  unsigned int candPhi = 0;
138  bool candOverflow = false;
139 
140  switch ((m_gtEnergySumTemplate->objectType())[0]) {
141  case ETT: {
142  const L1GctEtTotal* cand1 = m_gtPSB->getCandL1ETT();
143 
144  if (cand1 == 0) {
145  return false;
146  }
147 
148  candEt = cand1->et();
149  candOverflow = cand1->overFlow();
150 
151  break;
152  }
153  case ETM: {
154  const L1GctEtMiss* cand2 = m_gtPSB->getCandL1ETM();
155 
156  if (cand2 == 0) {
157  return false;
158  }
159 
160  candEt = cand2->et();
161  candPhi = cand2->phi();
162  candOverflow = cand2->overFlow();
163 
164  break;
165  }
166  case HTT: {
167  const L1GctEtHad* cand3 = m_gtPSB->getCandL1HTT();
168 
169  if (cand3 == 0) {
170  return false;
171  }
172 
173  candEt = cand3->et();
174  candOverflow = cand3->overFlow();
175 
176  break;
177  }
178  case HTM: {
179  const L1GctHtMiss* cand4 = m_gtPSB->getCandL1HTM();
180 
181  if (cand4 == 0) {
182  return false;
183  }
184 
185  candEt = cand4->et();
186  candPhi = cand4->phi();
187  candOverflow = cand4->overFlow();
188 
189  break;
190  }
191  default: {
192  // should not arrive here
193  return false;
194 
195  break;
196  }
197  }
198 
200  ( *(m_gtEnergySumTemplate->objectParameter()) )[iCondition];
201 
202  // check energy threshold and overflow
203  // overflow evaluation:
204  // for condGEq >=
205  // candidate overflow true -> condition true
206  // candidate overflow false -> evaluate threshold
207  // for condGEq =
208  // candidate overflow true -> condition false
209  // candidate overflow false -> evaluate threshold
210  //
211 
212  bool condGEqVal = m_gtEnergySumTemplate->condGEq();
213 
214  if (condGEqVal) {
215  if (!candOverflow) {
216  if (!checkThreshold(objPar.etThreshold, candEt, condGEqVal)) {
217  return false;
218  }
219  }
220  } else {
221  if (candOverflow) {
222  return false;
223  } else {
224  if (!checkThreshold(objPar.etThreshold, candEt, condGEqVal)) {
225  return false;
226  }
227  }
228 
229  }
230 
231  // for ETM and HTM check phi also
232  // for overflow, the phi requirements are ignored
233 
234  if (!candOverflow) {
235  if ( ( m_gtEnergySumTemplate->objectType() )[0] == ETM) {
236 
237  // phi bitmask is saved in two uint64_t (see parser)
238  if (candPhi < 64) {
239  if (!checkBit(objPar.phiRange0Word, candPhi)) {
240 
241  return false;
242  }
243  } else {
244  if (!checkBit(objPar.phiRange1Word, candPhi - 64)) {
245 
246  return false;
247  }
248  }
249 
250  } else if ( ( m_gtEnergySumTemplate->objectType() )[0] == HTM) {
251 
252  // phi bitmask is in the first word for HTM
253  if (candPhi < 64) {
254  if (!checkBit(objPar.phiRange0Word, candPhi)) {
255 
256  return false;
257  }
258  } else {
259  if (!checkBit(objPar.phiRange1Word, candPhi - 64)) {
260 
261  return false;
262  }
263  }
264  }
265  }
266 
267 
268  // index is always zero, as they are global quantities (there is only one object)
269  int indexObj = 0;
270 
271  objectsInComb.push_back(indexObj);
272  (combinationsInCond()).push_back(objectsInComb);
273 
274  // if we get here all checks were successfull for this combination
275  // set the general result for evaluateCondition to "true"
276 
277  condResult = true;
278  return condResult;
279 
280 }
bool overFlow() const
get the overflow
Definition: L1GctEtTotal.h:48
unsigned et() const
get the Et
Definition: L1GctEtTotal.h:45
Definition: L1GtObject.h:39
const bool checkBit(const Type1 &mask, const unsigned int bitNumber) const
check if a bit with a given number is set in a mask
Definition: L1GtObject.h:36
CombinationsInCond & combinationsInCond() const
get all the object combinations (to fill it...)
const L1GctEtTotal * getCandL1ETT() const
pointer to ETT data list
std::vector< int > SingleCombInCond
typedefs
Persistable copy of missing Et measured at Level-1.
Definition: L1GctEtMiss.h:18
const std::vector< L1GtObject > & objectType() const
get / set the trigger object type(s) in the condition
Definition: L1GtCondition.h:90
unsigned phi() const
get the Et
Definition: L1GctEtMiss.h:64
bool overFlow() const
get the overflow
Definition: L1GctEtHad.h:48
Definition: L1GtObject.h:38
bool overFlow() const
get the overflow
Definition: L1GctEtMiss.h:61
bool overFlow() const
get the overflow
Definition: L1GctHtMiss.h:63
unsigned et() const
get the Et
Definition: L1GctEtHad.h:45
const std::vector< ObjectParameter > * objectParameter() const
Persistable copy of total Et measured at Level-1.
Definition: L1GctEtTotal.h:18
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
Definition: matutil.cc:167
const bool checkThreshold(const Type1 &threshold, const Type2 &value, const bool condGEqValue) const
unsigned et() const
get the magnitude
Definition: L1GctHtMiss.h:60
Persistable copy of total Ht measured at Level-1.
Definition: L1GctEtHad.h:18
const L1GlobalTriggerPSB * m_gtPSB
pointer to PSB, to be able to get the trigger objects
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
const L1GctHtMiss * getCandL1HTM() const
pointer to HTM data list
Persistable copy of missing Et measured at Level-1.
Definition: L1GctHtMiss.h:16
const L1GctEtMiss * getCandL1ETM() const
pointer to ETM data list
unsigned et() const
get the magnitude
Definition: L1GctEtMiss.h:58
Definition: L1GtObject.h:37
const bool condGEq() const
get / set condition GEq flag
const L1GctEtHad * getCandL1HTT() const
pointer to HTT data list
unsigned phi() const
get the Et
Definition: L1GctHtMiss.h:66
typedef for a single object template
const L1GtEnergySumTemplate* L1GtEnergySumCondition::gtEnergySumTemplate ( ) const
inline

get / set the pointer to a L1GtCondition

Definition at line 65 of file L1GtEnergySumCondition.h.

References m_gtEnergySumTemplate.

Referenced by copy().

65  {
66  return m_gtEnergySumTemplate;
67  }
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
const L1GlobalTriggerPSB* L1GtEnergySumCondition::gtPSB ( ) const
inline

get / set the pointer to PSB

Definition at line 72 of file L1GtEnergySumCondition.h.

References m_gtPSB.

Referenced by copy().

72  {
73  return m_gtPSB;
74  }
const L1GlobalTriggerPSB * m_gtPSB
pointer to PSB, to be able to get the trigger objects
L1GtEnergySumCondition & L1GtEnergySumCondition::operator= ( const L1GtEnergySumCondition cp)

Definition at line 92 of file L1GtEnergySumCondition.cc.

References copy().

93 {
94  copy(cp);
95  return *this;
96 }
void copy(const L1GtEnergySumCondition &cp)
copy function for copy constructor and operator=
void L1GtEnergySumCondition::print ( std::ostream &  myCout) const
virtual

print condition

Reimplemented from L1GtConditionEvaluation.

Definition at line 282 of file L1GtEnergySumCondition.cc.

References m_gtEnergySumTemplate, L1GtEnergySumTemplate::print(), and L1GtConditionEvaluation::print().

Referenced by L1GtCorrelationCondition::evaluateCondition(), and L1GlobalTriggerGTL::run().

282  {
283 
284  m_gtEnergySumTemplate->print(myCout);
286 
287 }
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
virtual void print(std::ostream &myCout) const
print condition
virtual void print(std::ostream &myCout) const
print the condition
void L1GtEnergySumCondition::setGtEnergySumTemplate ( const L1GtEnergySumTemplate eSumTempl)

Definition at line 99 of file L1GtEnergySumCondition.cc.

References m_gtEnergySumTemplate.

100  {
101 
102  m_gtEnergySumTemplate = eSumTempl;
103 
104 }
const L1GtEnergySumTemplate * m_gtEnergySumTemplate
pointer to a L1GtEnergySumTemplate
void L1GtEnergySumCondition::setGtPSB ( const L1GlobalTriggerPSB ptrPSB)

set the pointer to PSB

Definition at line 107 of file L1GtEnergySumCondition.cc.

References m_gtPSB.

107  {
108 
109  m_gtPSB = ptrPSB;
110 
111 }
const L1GlobalTriggerPSB * m_gtPSB
pointer to PSB, to be able to get the trigger objects

Member Data Documentation

const L1GtEnergySumTemplate* L1GtEnergySumCondition::m_gtEnergySumTemplate
private
const L1GlobalTriggerPSB* L1GtEnergySumCondition::m_gtPSB
private

pointer to PSB, to be able to get the trigger objects

Definition at line 89 of file L1GtEnergySumCondition.h.

Referenced by copy(), evaluateCondition(), gtPSB(), and setGtPSB().