CMS 3D CMS Logo

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 EnergySumCondition &)
 
 EnergySumCondition (const GlobalCondition *, const GlobalBoard *)
 from base template condition (from event setup usually) More...
 
const bool evaluateCondition (const int bxEval) const override
 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 override
 print condition More...
 
void setGtEnergySumTemplate (const EnergySumTemplate *)
 
void setuGtB (const GlobalBoard *)
 set the pointer to uGT GlobalBoard More...
 
 ~EnergySumCondition () override
 
- 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 checkIndex (const Type1 &indexLo, const Type1 &indexHi, const unsigned int index) const
 check if a index is in a given range 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
 
template<class Type1 , class Type2 >
const bool checkUnconstrainedPt (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() [1/3]

EnergySumCondition::EnergySumCondition ( )

constructors default

Definition at line 36 of file EnergySumCondition.cc.

37  //empty
38 }

◆ EnergySumCondition() [2/3]

EnergySumCondition::EnergySumCondition ( const GlobalCondition eSumTemplate,
const GlobalBoard ptrGTB 
)

from base template condition (from event setup usually)

Definition at line 41 of file EnergySumCondition.cc.

43  m_gtEnergySumTemplate(static_cast<const EnergySumTemplate*>(eSumTemplate)),
44  m_uGtB(ptrGTB)
45 
46 {
47  // maximum number of objects received for the evaluation of the condition
48  // energy sums are global quantities - one object per event
49 
51 }

References l1t::ConditionEvaluation::m_condMaxNumberObjects.

◆ EnergySumCondition() [3/3]

EnergySumCondition::EnergySumCondition ( const EnergySumCondition cp)

Definition at line 65 of file EnergySumCondition.cc.

65 : ConditionEvaluation() { copy(cp); }

References copy().

◆ ~EnergySumCondition()

EnergySumCondition::~EnergySumCondition ( )
override

Definition at line 68 of file EnergySumCondition.cc.

68  {
69  // empty
70 }

Member Function Documentation

◆ copy()

void EnergySumCondition::copy ( const EnergySumCondition cp)
private

copy function for copy constructor and operator=

Definition at line 54 of file EnergySumCondition.cc.

54  {
55  m_gtEnergySumTemplate = cp.gtEnergySumTemplate();
56  m_uGtB = cp.getuGtB();
57 
58  m_condMaxNumberObjects = cp.condMaxNumberObjects();
59  m_condLastResult = cp.condLastResult();
60  m_combinationsInCond = cp.getCombinationsInCond();
61 
62  m_verbosity = cp.m_verbosity;
63 }

Referenced by EnergySumCondition().

◆ evaluateCondition()

const bool EnergySumCondition::evaluateCondition ( const int  bxEval) const
overridevirtual

the core function to check if the condition matches

Implements l1t::ConditionEvaluation.

Definition at line 87 of file EnergySumCondition.cc.

87  {
88  // number of trigger objects in the condition
89  // in fact, there is only one object
90  int iCondition = 0;
91 
92  // condition result condResult set to true if the energy sum
93  // passes all requirements
94  bool condResult = false;
95 
96  // store the indices of the calorimeter objects
97  // from the combination evaluated in the condition
98  SingleCombInCond objectsInComb;
99 
100  // clear the m_combinationsInCond vector
102 
103  // clear the indices in the combination
104  objectsInComb.clear();
105 
107 
108  // Look at objects in bx = bx + relativeBx
109  int useBx = bxEval + m_gtEnergySumTemplate->condRelativeBx();
110 
111  // Fail condition if attempting to get Bx outside of range
112  if ((useBx < candVec->getFirstBX()) || (useBx > candVec->getLastBX())) {
113  return false;
114  }
115 
116  // If no candidates, no use looking any further.
117  int numberObjects = candVec->size(useBx);
118  if (numberObjects < 1) {
119  return false;
120  }
121 
123  bool MissingEnergy = false;
124  int centbit = 0;
125  switch ((m_gtEnergySumTemplate->objectType())[0]) {
126  case gtETM:
128  MissingEnergy = true;
129  break;
130  case gtETT:
132  MissingEnergy = false;
133  break;
134  case gtETTem:
136  MissingEnergy = false;
137  break;
138  case gtHTM:
140  MissingEnergy = true;
141  break;
142  case gtHTT:
144  MissingEnergy = false;
145  break;
146  case gtETMHF:
148  MissingEnergy = true;
149  break;
150  case gtTowerCount:
152  MissingEnergy = false;
153  break;
154  case gtMinBiasHFP0:
156  MissingEnergy = false;
157  break;
158  case gtMinBiasHFM0:
160  MissingEnergy = false;
161  break;
162  case gtMinBiasHFP1:
164  MissingEnergy = false;
165  break;
166  case gtMinBiasHFM1:
168  MissingEnergy = false;
169  break;
170  case gtAsymmetryEt:
172  MissingEnergy = false;
173  break;
174  case gtAsymmetryHt:
176  MissingEnergy = false;
177  break;
178  case gtAsymmetryEtHF:
180  MissingEnergy = false;
181  break;
182  case gtAsymmetryHtHF:
184  MissingEnergy = false;
185  break;
186  case gtCentrality0:
187  centbit = 0;
189  MissingEnergy = false;
190  break;
191  case gtCentrality1:
192  centbit = 1;
194  MissingEnergy = false;
195  break;
196  case gtCentrality2:
197  centbit = 2;
199  MissingEnergy = false;
200  break;
201  case gtCentrality3:
202  centbit = 3;
204  MissingEnergy = false;
205  break;
206  case gtCentrality4:
207  centbit = 4;
209  MissingEnergy = false;
210  break;
211  case gtCentrality5:
212  centbit = 5;
214  MissingEnergy = false;
215  break;
216  case gtCentrality6:
217  centbit = 6;
219  MissingEnergy = false;
220  break;
221  case gtCentrality7:
222  centbit = 7;
224  MissingEnergy = false;
225  break;
226  default:
227  edm::LogError("L1TGlobal")
228  << "\n Error: "
229  << "Unmatched object type from template to EtSumType, (m_gtEnergySumTemplate->objectType())[0] = "
230  << (m_gtEnergySumTemplate->objectType())[0] << std::endl;
232  break;
233  }
234 
235  // get energy, phi (ETM and HTM) and overflow for the trigger object
236  unsigned int candEt = 0;
237  unsigned int candPhi = 0;
238  bool candOverflow = false;
239  for (int iEtSum = 0; iEtSum < numberObjects; ++iEtSum) {
240  l1t::EtSum cand = *(candVec->at(useBx, iEtSum));
241  if (cand.getType() != type)
242  continue;
243  candEt = cand.hwPt();
244  candPhi = cand.hwPhi();
245  }
246 
248 
249  // check energy threshold and overflow
250  // overflow evaluation:
251  // for condGEq >=
252  // candidate overflow true -> condition true
253  // candidate overflow false -> evaluate threshold
254  // for condGEq =
255  // candidate overflow true -> condition false
256  // candidate overflow false -> evaluate threshold
257  //
258 
259  bool condGEqVal = m_gtEnergySumTemplate->condGEq();
260 
262  bool myres = checkBit(candEt, centbit);
263  //std::cout << "CCLC: Checking bit " << centbit << "\tResult is: " << myres << std::endl;
264  if (!myres) {
265  LogDebug("L1TGlobal") << "\t\t l1t::EtSum failed Centrality bit" << std::endl;
266  return false;
267  }
268  } else {
269  // check energy threshold
270  if (!checkThreshold(objPar.etLowThreshold, objPar.etHighThreshold, candEt, condGEqVal)) {
271  LogDebug("L1TGlobal") << "\t\t l1t::EtSum failed checkThreshold" << std::endl;
272  return false;
273  }
274 
275  if (!condGEqVal && candOverflow)
276  return false;
277 
278  // for ETM and HTM check phi also
279  // for overflow, the phi requirements are ignored
280  if (MissingEnergy) {
281  // check phi
282  if (!checkRangePhi(
283  candPhi, objPar.phiWindow1Lower, objPar.phiWindow1Upper, objPar.phiWindow2Lower, objPar.phiWindow2Upper)) {
284  LogDebug("L1TGlobal") << "\t\t l1t::EtSum failed checkRange(phi)" << std::endl;
285  return false;
286  }
287  }
288  }
289 
290  // index is always zero, as they are global quantities (there is only one object)
291  int indexObj = 0;
292 
293  objectsInComb.push_back(indexObj);
294  (combinationsInCond()).push_back(objectsInComb);
295 
296  // if we get here all checks were successfull for this combination
297  // set the general result for evaluateCondition to "true"
298 
299  condResult = true;
300  return condResult;
301 }

References BXVector< T >::at(), clear(), EnergySumTemplate::ObjectParameter::etHighThreshold, EnergySumTemplate::ObjectParameter::etLowThreshold, BXVector< T >::getLastBX(), l1t::gtAsymmetryEt, l1t::gtAsymmetryEtHF, l1t::gtAsymmetryHt, l1t::gtAsymmetryHtHF, l1t::gtCentrality0, l1t::gtCentrality1, l1t::gtCentrality2, l1t::gtCentrality3, l1t::gtCentrality4, l1t::gtCentrality5, l1t::gtCentrality6, l1t::gtCentrality7, l1t::gtETM, l1t::gtETMHF, l1t::gtETT, l1t::gtETTem, l1t::gtHTM, l1t::gtHTT, l1t::gtMinBiasHFM0, l1t::gtMinBiasHFM1, l1t::gtMinBiasHFP0, l1t::gtMinBiasHFP1, l1t::gtTowerCount, L1Analysis::kAsymEt, L1Analysis::kAsymEtHF, L1Analysis::kAsymHt, L1Analysis::kAsymHtHF, L1Analysis::kCentrality, L1Analysis::kMinBiasHFM0, L1Analysis::kMinBiasHFM1, L1Analysis::kMinBiasHFP0, L1Analysis::kMinBiasHFP1, L1Analysis::kMissingEt, L1Analysis::kMissingEtHF, L1Analysis::kMissingHt, L1Analysis::kTotalEt, L1Analysis::kTotalEtEm, L1Analysis::kTotalHt, L1Analysis::kTowerCount, LogDebug, EnergySumTemplate::ObjectParameter::phiWindow1Lower, EnergySumTemplate::ObjectParameter::phiWindow1Upper, EnergySumTemplate::ObjectParameter::phiWindow2Lower, EnergySumTemplate::ObjectParameter::phiWindow2Upper, and BXVector< T >::size().

◆ getuGtB()

const GlobalBoard* l1t::EnergySumCondition::getuGtB ( ) const
inline

get / set the pointer to uGt GlobalBoard

Definition at line 69 of file EnergySumCondition.h.

69 { return m_uGtB; }

References m_uGtB.

◆ gtEnergySumTemplate()

const EnergySumTemplate* l1t::EnergySumCondition::gtEnergySumTemplate ( ) const
inline

get / set the pointer to a L1GtCondition

Definition at line 64 of file EnergySumCondition.h.

64 { return m_gtEnergySumTemplate; }

References m_gtEnergySumTemplate.

◆ operator=()

l1t::EnergySumCondition & EnergySumCondition::operator= ( const EnergySumCondition cp)

Definition at line 73 of file EnergySumCondition.cc.

73  {
74  copy(cp);
75  return *this;
76 }

References filterCSVwithJSON::copy.

◆ print()

void EnergySumCondition::print ( std::ostream &  myCout) const
overridevirtual

◆ setGtEnergySumTemplate()

void EnergySumCondition::setGtEnergySumTemplate ( const EnergySumTemplate eSumTempl)

Definition at line 79 of file EnergySumCondition.cc.

79  {
80  m_gtEnergySumTemplate = eSumTempl;
81 }

◆ setuGtB()

void EnergySumCondition::setuGtB ( const GlobalBoard ptrGTB)

set the pointer to uGT GlobalBoard

Definition at line 84 of file EnergySumCondition.cc.

84 { m_uGtB = ptrGTB; }

Member Data Documentation

◆ m_gtEnergySumTemplate

const EnergySumTemplate* l1t::EnergySumCondition::m_gtEnergySumTemplate
private

pointer to a EnergySumTemplate

Definition at line 79 of file EnergySumCondition.h.

Referenced by gtEnergySumTemplate().

◆ m_uGtB

const GlobalBoard* l1t::EnergySumCondition::m_uGtB
private

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

Definition at line 82 of file EnergySumCondition.h.

Referenced by getuGtB().

GlobalCondition::condRelativeBx
const int & condRelativeBx() const
get / set the condition relative bx
Definition: GlobalCondition.h:81
l1t::gtHTM
Definition: GlobalObject.h:24
l1t::gtCentrality0
Definition: GlobalObject.h:36
L1Analysis::kAsymEtHF
Definition: L1AnalysisL1UpgradeDataFormat.h:42
l1t::EnergySumCondition::m_gtEnergySumTemplate
const EnergySumTemplate * m_gtEnergySumTemplate
pointer to a EnergySumTemplate
Definition: EnergySumCondition.h:79
l1t::ConditionEvaluation::checkThreshold
const bool checkThreshold(const Type1 &thresholdL, const Type1 &thresholdH, const Type2 &value, bool condGEqValue) const
Definition: ConditionEvaluation.h:165
l1t::ConditionEvaluation::m_combinationsInCond
CombinationsInCond m_combinationsInCond
store all the object combinations evaluated to true in the condition
Definition: ConditionEvaluation.h:154
l1t::ConditionEvaluation::combinationsInCond
CombinationsInCond & combinationsInCond() const
get all the object combinations (to fill it...)
Definition: ConditionEvaluation.h:84
l1t::ConditionEvaluation::print
virtual void print(std::ostream &myCout) const
print condition
Definition: ConditionEvaluation.cc:32
l1t::gtETTem
Definition: GlobalObject.h:31
l1t::gtMinBiasHFP1
Definition: GlobalObject.h:29
l1t::gtMinBiasHFM1
Definition: GlobalObject.h:30
hgcal_conditions::parameters
Definition: HGCConditions.h:86
l1t::gtAsymmetryEt
Definition: GlobalObject.h:32
GlobalCondition::objectType
const std::vector< l1t::GlobalObject > & objectType() const
get / set the trigger object type(s) in the condition
Definition: GlobalCondition.h:66
L1Analysis::kTowerCount
Definition: L1AnalysisL1UpgradeDataFormat.h:38
l1t::gtCentrality5
Definition: GlobalObject.h:41
EnergySumTemplate::ObjectParameter::phiWindow1Upper
unsigned int phiWindow1Upper
Definition: EnergySumTemplate.h:60
l1t::gtCentrality7
Definition: GlobalObject.h:43
l1t::gtAsymmetryHt
Definition: GlobalObject.h:33
l1t::gtCentrality4
Definition: GlobalObject.h:40
l1t::gtTowerCount
Definition: GlobalObject.h:26
BXVector< const l1t::EtSum * >
EnergySumTemplate::ObjectParameter::phiWindow2Upper
unsigned int phiWindow2Upper
Definition: EnergySumTemplate.h:62
SingleCombInCond
std::vector< int > SingleCombInCond
typedefs
Definition: L1GlobalTriggerObjectMapFwd.h:29
L1Analysis::kMinBiasHFP1
Definition: L1AnalysisL1UpgradeDataFormat.h:30
l1t::ConditionEvaluation::checkRangePhi
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
Definition: ConditionEvaluation.h:354
l1t::ConditionEvaluation::checkBit
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: ConditionEvaluation.h:253
L1Analysis::kMissingEtHF
Definition: L1AnalysisL1UpgradeDataFormat.h:25
l1t::GlobalBoard::getCandL1EtSum
const BXVector< const l1t::EtSum * > * getCandL1EtSum() const
pointer to Tau data list
Definition: GlobalBoard.h:150
EnergySumTemplate::ObjectParameter
typedef for a single object template
Definition: EnergySumTemplate.h:54
L1Analysis::kTotalEt
Definition: L1AnalysisL1UpgradeDataFormat.h:17
l1t::gtETMHF
Definition: GlobalObject.h:25
l1t::gtHTT
Definition: GlobalObject.h:23
l1t::EnergySumCondition::copy
void copy(const EnergySumCondition &cp)
copy function for copy constructor and operator=
Definition: EnergySumCondition.cc:54
l1t::ConditionEvaluation::ConditionEvaluation
ConditionEvaluation()
constructor
Definition: ConditionEvaluation.h:42
L1Analysis::kAsymEt
Definition: L1AnalysisL1UpgradeDataFormat.h:40
l1t::gtCentrality1
Definition: GlobalObject.h:37
l1t::gtETM
Definition: GlobalObject.h:21
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
L1Analysis::kAsymHt
Definition: L1AnalysisL1UpgradeDataFormat.h:41
clear
void clear(HadCaloObj &c)
Definition: data.h:124
EnergySumTemplate::print
void print(std::ostream &myCout) const override
print the condition
Definition: EnergySumTemplate.cc:70
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
l1t::gtAsymmetryEtHF
Definition: GlobalObject.h:34
BXVector::at
const T & at(int bx, unsigned i) const
l1t::gtCentrality6
Definition: GlobalObject.h:42
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
l1t::EtSum
Definition: EtSum.h:20
GlobalCondition::condGEq
const bool condGEq() const
get / set condition GEq flag
Definition: GlobalCondition.h:71
cand
Definition: decayParser.h:32
l1t::gtMinBiasHFP0
Definition: GlobalObject.h:27
L1Analysis::kMissingHt
Definition: L1AnalysisL1UpgradeDataFormat.h:20
EnergySumTemplate::ObjectParameter::phiWindow1Lower
unsigned int phiWindow1Lower
Definition: EnergySumTemplate.h:59
EnergySumTemplate::ObjectParameter::etLowThreshold
unsigned int etLowThreshold
Definition: EnergySumTemplate.h:55
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
L1Analysis::kMissingEt
Definition: L1AnalysisL1UpgradeDataFormat.h:19
EnergySumTemplate::objectParameter
const std::vector< ObjectParameter > * objectParameter() const
Definition: EnergySumTemplate.h:71
l1t::gtETT
Definition: GlobalObject.h:22
EnergySumTemplate::ObjectParameter::phiWindow2Lower
unsigned int phiWindow2Lower
Definition: EnergySumTemplate.h:61
l1t::gtCentrality3
Definition: GlobalObject.h:39
L1Analysis::kAsymHtHF
Definition: L1AnalysisL1UpgradeDataFormat.h:43
L1Analysis::kMinBiasHFM0
Definition: L1AnalysisL1UpgradeDataFormat.h:29
L1Analysis::kMinBiasHFM1
Definition: L1AnalysisL1UpgradeDataFormat.h:31
l1t::ConditionEvaluation::m_condLastResult
bool m_condLastResult
the last result of evaluateCondition()
Definition: ConditionEvaluation.h:151
L1Analysis::kCentrality
Definition: L1AnalysisL1UpgradeDataFormat.h:39
l1t::gtMinBiasHFM0
Definition: GlobalObject.h:28
l1t::EtSum::EtSumType
EtSumType
Definition: EtSum.h:22
BXVector::size
unsigned size(int bx) const
L1Analysis::kTotalEtEm
Definition: L1AnalysisL1UpgradeDataFormat.h:33
l1t::ConditionEvaluation::m_verbosity
int m_verbosity
verbosity level
Definition: ConditionEvaluation.h:157
l1t::ConditionEvaluation::m_condMaxNumberObjects
int m_condMaxNumberObjects
Definition: ConditionEvaluation.h:148
L1Analysis::kTotalHt
Definition: L1AnalysisL1UpgradeDataFormat.h:18
BXVector::getLastBX
int getLastBX() const
l1t::gtCentrality2
Definition: GlobalObject.h:38
EnergySumTemplate::ObjectParameter::etHighThreshold
unsigned int etHighThreshold
Definition: EnergySumTemplate.h:56
l1t::gtAsymmetryHtHF
Definition: GlobalObject.h:35
l1t::EnergySumCondition::m_uGtB
const GlobalBoard * m_uGtB
pointer to uGt GlobalBoard, to be able to get the trigger objects
Definition: EnergySumCondition.h:82
L1Analysis::kMinBiasHFP0
Definition: L1AnalysisL1UpgradeDataFormat.h:28