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
l1t::EnergySumCondition Class Reference

#include <EnergySumCondition.h>

Inheritance diagram for l1t::EnergySumCondition:
l1t::ConditionEvaluation

Public Member Functions

 EnergySumCondition ()
 
 EnergySumCondition (const GlobalCondition *, const GlobalBoard *)
 from base template condition (from event setup usually) More...
 
 EnergySumCondition (const EnergySumCondition &)
 
const bool evaluateCondition (const int bxEval) const
 the core function to check if the condition matches More...
 
const GlobalBoardgetuGtB () const
 get / set the pointer to uGt GlobalBoard More...
 
const EnergySumTemplategtEnergySumTemplate () const
 get / set the pointer to a L1GtCondition More...
 
EnergySumConditionoperator= (const EnergySumCondition &)
 
void print (std::ostream &myCout) const
 print condition More...
 
void setGtEnergySumTemplate (const EnergySumTemplate *)
 
void setuGtB (const GlobalBoard *)
 set the pointer to uGT GlobalBoard More...
 
virtual ~EnergySumCondition ()
 
- Public Member Functions inherited from l1t::ConditionEvaluation
 ConditionEvaluation ()
 constructor More...
 
bool condLastResult () const
 get the latest result for the condition More...
 
int condMaxNumberObjects () const
 
void evaluateConditionStoreResult (const int bxEval)
 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...
 
void setCondMaxNumberObjects (int condMaxNumberObjectsValue)
 
void setVerbosity (const int verbosity)
 
virtual ~ConditionEvaluation ()
 destructor More...
 

Private Member Functions

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

Private Attributes

const EnergySumTemplatem_gtEnergySumTemplate
 pointer to a EnergySumTemplate More...
 
const GlobalBoardm_uGtB
 pointer to uGt GlobalBoard, to be able to get the trigger objects More...
 

Additional Inherited Members

- Protected Member Functions inherited from l1t::ConditionEvaluation
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 >
const bool checkRangeDeltaEta (const unsigned int obj1Eta, const unsigned int obj2Eta, const Type1 &lowerR, const Type1 &upperR, const unsigned int nEtaBits) const
 check if a value is in a given range More...
 
template<class Type1 >
const bool checkRangeDeltaPhi (const unsigned int obj1Phi, const unsigned int obj2Phi, const Type1 &lowerR, const Type1 &upperR) const
 check if a value is in a given range More...
 
template<class Type1 >
const bool checkRangeEta (const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR, const unsigned int nEtaBits) const
 check if a value is in a given range and outside of a veto range More...
 
template<class Type1 >
const bool checkRangePhi (const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR) const
 check if a value is in a given range and outside of a veto range More...
 
template<class Type1 , class Type2 >
const bool checkThreshold (const Type1 &thresholdL, const Type1 &thresholdH, const Type2 &value, bool condGEqValue) const
 
CombinationsInCondcombinationsInCond () const
 get all the object combinations (to fill it...) More...
 
- Protected Attributes inherited from l1t::ConditionEvaluation
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

Definition at line 37 of file EnergySumCondition.h.

Constructor & Destructor Documentation

EnergySumCondition::EnergySumCondition ( )

constructors default

Definition at line 36 of file EnergySumCondition.cc.

36  :
38 
39  //empty
40 
41 }
EnergySumCondition::EnergySumCondition ( const GlobalCondition eSumTemplate,
const GlobalBoard ptrGTB 
)

from base template condition (from event setup usually)

Definition at line 44 of file EnergySumCondition.cc.

References l1t::ConditionEvaluation::m_condMaxNumberObjects.

44  :
46  m_gtEnergySumTemplate(static_cast<const EnergySumTemplate*>(eSumTemplate)),
47  m_uGtB(ptrGTB)
48 
49 {
50 
51  // maximum number of objects received for the evaluation of the condition
52  // energy sums are global quantities - one object per event
53 
55 
56 }
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
EnergySumCondition::EnergySumCondition ( const EnergySumCondition cp)

Definition at line 72 of file EnergySumCondition.cc.

References copy().

72  :
74 
75  copy(cp);
76 
77 }
void copy(const EnergySumCondition &cp)
copy function for copy constructor and operator=
EnergySumCondition::~EnergySumCondition ( )
virtual

Definition at line 80 of file EnergySumCondition.cc.

80  {
81 
82  // empty
83 
84 }

Member Function Documentation

void EnergySumCondition::copy ( const EnergySumCondition cp)
private

copy function for copy constructor and operator=

Definition at line 59 of file EnergySumCondition.cc.

References l1t::ConditionEvaluation::condLastResult(), l1t::ConditionEvaluation::condMaxNumberObjects(), l1t::ConditionEvaluation::getCombinationsInCond(), getuGtB(), gtEnergySumTemplate(), and l1t::ConditionEvaluation::m_verbosity.

Referenced by EnergySumCondition().

59  {
60 
62  m_uGtB = cp.getuGtB();
63 
67 
69 
70 }
CombinationsInCond const & getCombinationsInCond() const
get all the object combinations evaluated to true in the condition
const GlobalBoard * getuGtB() const
get / set the pointer to uGt GlobalBoard
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects
bool condLastResult() const
get the latest result for the condition
const EnergySumTemplate * gtEnergySumTemplate() const
get / set the pointer to a L1GtCondition
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
CombinationsInCond m_combinationsInCond
store all the object combinations evaluated to true in the condition
int m_verbosity
verbosity level
bool m_condLastResult
the last result of evaluateCondition()
const bool EnergySumCondition::evaluateCondition ( const int  bxEval) const
virtual

the core function to check if the condition matches

Implements l1t::ConditionEvaluation.

Definition at line 108 of file EnergySumCondition.cc.

References BXVector< T >::at(), hitfit::clear(), EnergySumTemplate::ObjectParameter::etHighThreshold, EnergySumTemplate::ObjectParameter::etLowThreshold, BXVector< T >::getLastBX(), l1t::EtSum::getType(), l1t::gtETM, l1t::gtETM2, l1t::gtETT, l1t::gtHTM, l1t::gtHTT, l1t::gtMinBiasHFM0, l1t::gtMinBiasHFM1, l1t::gtMinBiasHFP0, l1t::gtMinBiasHFP1, l1t::L1Candidate::hwPhi(), l1t::L1Candidate::hwPt(), L1Analysis::kMissingEt, L1Analysis::kMissingHt, L1Analysis::kTotalEt, L1Analysis::kTotalHt, LogDebug, EnergySumTemplate::ObjectParameter::phiWindow1Lower, EnergySumTemplate::ObjectParameter::phiWindow1Upper, EnergySumTemplate::ObjectParameter::phiWindow2Lower, EnergySumTemplate::ObjectParameter::phiWindow2Upper, and BXVector< T >::size().

108  {
109 
110  // number of trigger objects in the condition
111  // in fact, there is only one object
112  int iCondition = 0;
113 
114  // condition result condResult set to true if the energy sum
115  // passes all requirements
116  bool condResult = false;
117 
118  // store the indices of the calorimeter objects
119  // from the combination evaluated in the condition
120  SingleCombInCond objectsInComb;
121 
122  // clear the m_combinationsInCond vector
124 
125  // clear the indices in the combination
126  objectsInComb.clear();
127 
129 
130  // Look at objects in bx = bx + relativeBx
131  int useBx = bxEval + m_gtEnergySumTemplate->condRelativeBx();
132 
133  int numberObjects = candVec->size(useBx);
134  if (numberObjects < 1) {
135  return false;
136  }
137 
138  // Fail condition if attempting to get Bx outside of range
139  if( ( useBx < candVec->getFirstBX() ) ||
140  ( useBx > candVec->getLastBX() ) ) {
141  return false;
142  }
143 
144 
146  bool MissingEnergy = false;
147  switch( (m_gtEnergySumTemplate->objectType())[0] ){
148  case gtETM:
150  MissingEnergy = true;
151  break;
152  case gtETT:
154  MissingEnergy = false;
155  break;
156  case gtHTM:
158  MissingEnergy = true;
159  break;
160  case gtHTT:
162  MissingEnergy = false;
163  break;
164  case gtETM2:
165  type = l1t::EtSum::EtSumType::kMissingEt;//type = l1t::EtSum::EtSumType::kMissingEt2;
166  MissingEnergy = true;
167  break;
168  case gtMinBiasHFP0:
169  type = l1t::EtSum::EtSumType::kMinBiasHFP0; //l1t::EtSum::EtSumType::kTotalEt;//type = l1t::EtSum::EtSumType::kMinBiasHFP0;
170  MissingEnergy = false;
171  break;
172  case gtMinBiasHFM0:
173  type = l1t::EtSum::EtSumType::kMinBiasHFM0; //l1t::EtSum::EtSumType::kTotalEt;//type = l1t::EtSum::EtSumType::kMinBiasHFM0;
174  MissingEnergy = false;
175  break;
176  case gtMinBiasHFP1:
177  type = l1t::EtSum::EtSumType::kMinBiasHFP1; //l1t::EtSum::EtSumType::kTotalEt;//type = l1t::EtSum::EtSumType::kMinBiasHFP1;
178  MissingEnergy = false;
179  break;
180  case gtMinBiasHFM1:
181  type = l1t::EtSum::EtSumType::kMinBiasHFM1; //l1t::EtSum::EtSumType::kTotalEt;//type = l1t::EtSum::EtSumType::kMinBiasHFM1;
182  MissingEnergy = false;
183  break;
184  default:
185  edm::LogError("L1TGlobal")
186  << "\n Error: "
187  << "Unmatched object type from template to EtSumType, (m_gtEnergySumTemplate->objectType())[0] = "
189  << std::endl;
191  break;
192  }
193 
194 
195  // get energy, phi (ETM and HTM) and overflow for the trigger object
196  unsigned int candEt = 0;
197  unsigned int candPhi = 0;
198  bool candOverflow = false;
199  for( int iEtSum = 0; iEtSum < numberObjects; ++iEtSum ){
200  l1t::EtSum cand = *(candVec->at(useBx,iEtSum));
201  if( cand.getType() != type ) continue;
202  candEt = cand.hwPt();
203  candPhi = cand.hwPhi();
204  }
205 
206 
208  ( *(m_gtEnergySumTemplate->objectParameter()) )[iCondition];
209 
210  // check energy threshold and overflow
211  // overflow evaluation:
212  // for condGEq >=
213  // candidate overflow true -> condition true
214  // candidate overflow false -> evaluate threshold
215  // for condGEq =
216  // candidate overflow true -> condition false
217  // candidate overflow false -> evaluate threshold
218  //
219 
220  bool condGEqVal = m_gtEnergySumTemplate->condGEq();
221 
222  // check energy threshold
223  if ( !checkThreshold(objPar.etLowThreshold, objPar.etHighThreshold, candEt, condGEqVal) ) {
224  LogDebug("L1TGlobal") << "\t\t l1t::EtSum failed checkThreshold" << std::endl;
225  return false;
226  }
227 
228  if( !condGEqVal && candOverflow ) return false;
229 
230  // for ETM and HTM check phi also
231  // for overflow, the phi requirements are ignored
232  if( MissingEnergy ){
233  // check phi
234  if( !checkRangePhi(candPhi, objPar.phiWindow1Lower, objPar.phiWindow1Upper, objPar.phiWindow2Lower, objPar.phiWindow2Upper) ){
235  LogDebug("L1TGlobal") << "\t\t l1t::EtSum failed checkRange(phi)" << std::endl;
236  return false;
237  }
238  }
239 
240 
241  // index is always zero, as they are global quantities (there is only one object)
242  int indexObj = 0;
243 
244  objectsInComb.push_back(indexObj);
245  (combinationsInCond()).push_back(objectsInComb);
246 
247  // if we get here all checks were successfull for this combination
248  // set the general result for evaluateCondition to "true"
249 
250  condResult = true;
251  return condResult;
252 
253 }
#define LogDebug(id)
type
Definition: HCALResponse.h:21
unsigned size(int bx) const
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects
std::vector< int > SingleCombInCond
typedefs
const bool condGEq() const
get / set condition GEq flag
int hwPhi() const
Definition: L1Candidate.cc:79
const bool checkThreshold(const Type1 &thresholdL, const Type1 &thresholdH, const Type2 &value, bool condGEqValue) const
const std::vector< ObjectParameter > * objectParameter() const
const int & condRelativeBx() const
get / set the condition relative bx
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
void clear(CLHEP::HepGenMatrix &m)
Helper function: Reset all elements of a matrix to 0.
Definition: matutil.cc:167
const std::vector< GlobalObject > & objectType() const
get / set the trigger object type(s) in the condition
const BXVector< const l1t::EtSum * > * getCandL1EtSum() const
pointer to Tau data list
Definition: GlobalBoard.h:168
typedef for a single object template
int hwPt() const
Definition: L1Candidate.cc:69
int getLastBX() const
EtSumType getType() const
Definition: EtSum.cc:37
EtSumType
Definition: EtSum.h:20
CombinationsInCond & combinationsInCond() const
get all the object combinations (to fill it...)
const bool checkRangePhi(const unsigned int bitNumber, const Type1 &W1beginR, const Type1 &W1endR, const Type1 &W2beginR, const Type1 &W2endR) const
check if a value is in a given range and outside of a veto range
const T & at(int bx, unsigned i) const
const GlobalBoard* l1t::EnergySumCondition::getuGtB ( ) const
inline

get / set the pointer to uGt GlobalBoard

Definition at line 76 of file EnergySumCondition.h.

References m_uGtB.

Referenced by copy().

76  {
77  return m_uGtB;
78  }
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects
const EnergySumTemplate* l1t::EnergySumCondition::gtEnergySumTemplate ( ) const
inline

get / set the pointer to a L1GtCondition

Definition at line 69 of file EnergySumCondition.h.

References m_gtEnergySumTemplate.

Referenced by copy().

69  {
70  return m_gtEnergySumTemplate;
71  }
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
l1t::EnergySumCondition & EnergySumCondition::operator= ( const EnergySumCondition cp)

Definition at line 87 of file EnergySumCondition.cc.

References filterCSVwithJSON::copy.

88 {
89  copy(cp);
90  return *this;
91 }
void copy(const EnergySumCondition &cp)
copy function for copy constructor and operator=
void EnergySumCondition::print ( std::ostream &  myCout) const
virtual

print condition

Reimplemented from l1t::ConditionEvaluation.

Definition at line 255 of file EnergySumCondition.cc.

References l1t::ConditionEvaluation::print().

Referenced by l1t::CorrCondition::evaluateCondition(), and l1t::GlobalBoard::runGTL().

255  {
256 
257  m_gtEnergySumTemplate->print(myCout);
259 
260 }
virtual void print(std::ostream &myCout) const
print condition
virtual void print(std::ostream &myCout) const
print the condition
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
void EnergySumCondition::setGtEnergySumTemplate ( const EnergySumTemplate eSumTempl)

Definition at line 94 of file EnergySumCondition.cc.

94  {
95 
96  m_gtEnergySumTemplate = eSumTempl;
97 
98 }
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
void EnergySumCondition::setuGtB ( const GlobalBoard ptrGTB)

set the pointer to uGT GlobalBoard

Definition at line 101 of file EnergySumCondition.cc.

101  {
102 
103  m_uGtB = ptrGTB;
104 
105 }
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects

Member Data Documentation

const EnergySumTemplate* l1t::EnergySumCondition::m_gtEnergySumTemplate
private

pointer to a EnergySumTemplate

Definition at line 90 of file EnergySumCondition.h.

Referenced by gtEnergySumTemplate().

const GlobalBoard* l1t::EnergySumCondition::m_uGtB
private

pointer to uGt GlobalBoard, to be able to get the trigger objects

Definition at line 93 of file EnergySumCondition.h.

Referenced by getuGtB().