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...
 
CombinationsInCondgetCombinationsInCond () const
 get all the object combinations evaluated to true in the condition More...
 
virtual std::string getNumericExpression ()
 get numeric expression More...
 
 L1GtConditionEvaluation ()
 constructor More...
 
 L1GtConditionEvaluation (L1GtConditionEvaluation &)
 copy 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
 
- Protected Attributes inherited from L1GtConditionEvaluation
CombinationsInCondm_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

$Date$ $Revision$

Definition at line 35 of file L1GtEnergySumCondition.h.

Constructor & Destructor Documentation

L1GtEnergySumCondition::L1GtEnergySumCondition ( )

constructors default

Definition at line 42 of file L1GtEnergySumCondition.cc.

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

from base template condition (from event setup usually)

Definition at line 50 of file L1GtEnergySumCondition.cc.

References L1GtConditionEvaluation::m_condMaxNumberObjects.

51  :
53  m_gtEnergySumTemplate(static_cast<const L1GtEnergySumTemplate*>(eSumTemplate)),
54  m_gtPSB(ptrPSB)
55 
56 {
57 
58  // maximum number of objects received for the evaluation of the condition
59  // energy sums are global quantities - one object per event
60 
62 
63 }
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 79 of file L1GtEnergySumCondition.cc.

References copy().

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

Definition at line 87 of file L1GtEnergySumCondition.cc.

87  {
88 
89  // empty
90 
91 }

Member Function Documentation

void L1GtEnergySumCondition::copy ( const L1GtEnergySumCondition cp)
private

copy function for copy constructor and operator=

Definition at line 66 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=().

66  {
67 
69  m_gtPSB = cp.gtPSB();
70 
74 
76 
77 }
CombinationsInCond * m_combinationsInCond
store all the object combinations evaluated to true in the condition
CombinationsInCond * getCombinationsInCond() const
get all the object combinations evaluated to true in the condition
bool m_condLastResult
the last result of evaluateCondition()
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
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 116 of file L1GtEnergySumCondition.cc.

References L1GtConditionEvaluation::checkBit(), L1GtConditionEvaluation::checkThreshold(), 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(), L1GctEtHad::overFlow(), L1GctEtTotal::overFlow(), L1GctEtMiss::overFlow(), L1GctHtMiss::overFlow(), L1GctEtMiss::phi(), L1GctHtMiss::phi(), L1GtEnergySumTemplate::ObjectParameter::phiRange0Word, and L1GtEnergySumTemplate::ObjectParameter::phiRange1Word.

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

References m_gtEnergySumTemplate.

Referenced by copy().

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

get / set the pointer to PSB

Definition at line 74 of file L1GtEnergySumCondition.h.

References m_gtPSB.

Referenced by copy().

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

Definition at line 94 of file L1GtEnergySumCondition.cc.

References copy().

95 {
96  copy(cp);
97  return *this;
98 }
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 284 of file L1GtEnergySumCondition.cc.

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

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

284  {
285 
286  m_gtEnergySumTemplate->print(myCout);
288 
289 }
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 101 of file L1GtEnergySumCondition.cc.

References m_gtEnergySumTemplate.

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

set the pointer to PSB

Definition at line 109 of file L1GtEnergySumCondition.cc.

References m_gtPSB.

109  {
110 
111  m_gtPSB = ptrPSB;
112 
113 }
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 91 of file L1GtEnergySumCondition.h.

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