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

#include <Stage2Layer2DemuxSumsAlgoFirmware.h>

Inheritance diagram for l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1:
l1t::Stage2Layer2DemuxSumsAlgo

Public Member Functions

virtual void processEvent (const std::vector< l1t::EtSum > &inputSums, std::vector< l1t::EtSum > &outputSums)
 
 Stage2Layer2DemuxSumsAlgoFirmwareImp1 (CaloParamsHelper *params)
 
virtual ~Stage2Layer2DemuxSumsAlgoFirmwareImp1 ()
 
- Public Member Functions inherited from l1t::Stage2Layer2DemuxSumsAlgo
virtual ~Stage2Layer2DemuxSumsAlgo ()
 

Private Attributes

Cordic cordic_
 
CaloParamsHelperparams_
 

Detailed Description

Definition at line 23 of file Stage2Layer2DemuxSumsAlgoFirmware.h.

Constructor & Destructor Documentation

l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::Stage2Layer2DemuxSumsAlgoFirmwareImp1 ( CaloParamsHelper params)

Definition at line 16 of file Stage2Layer2DemuxSumsAlgoFirmwareImp1.cc.

16  :
17  params_(params), cordic_(Cordic(14,6,8)) // These are the settings in the hardware - should probably make this configurable
18 {
19 }
Definition: Cordic.h:7
l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::~Stage2Layer2DemuxSumsAlgoFirmwareImp1 ( )
virtual

Definition at line 22 of file Stage2Layer2DemuxSumsAlgoFirmwareImp1.cc.

22  {
23 
24 
25 }

Member Function Documentation

void l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::processEvent ( const std::vector< l1t::EtSum > &  inputSums,
std::vector< l1t::EtSum > &  outputSums 
)
virtual

Implements l1t::Stage2Layer2DemuxSumsAlgo.

Definition at line 28 of file Stage2Layer2DemuxSumsAlgoFirmwareImp1.cc.

References objects.METAnalyzer::met, and p4.

29  {
30 
31  int32_t et(0), metx(0), mety(0), ht(0), mhtx(0), mhty(0), metPhi, mhtPhi;
32  uint32_t met, mht;
33 
34  // Add up the x, y and scalar components
35  for (std::vector<l1t::EtSum>::const_iterator eSum = inputSums.begin() ; eSum != inputSums.end() ; ++eSum )
36  {
37  switch (eSum->getType()) {
38 
39  case l1t::EtSum::EtSumType::kTotalEt:
40  et += eSum->hwPt();
41  break;
42 
43  case l1t::EtSum::EtSumType::kTotalEtx:
44  metx += eSum->hwPt();
45  break;
46 
47  case l1t::EtSum::EtSumType::kTotalEty:
48  mety += eSum->hwPt();
49  break;
50 
51  case l1t::EtSum::EtSumType::kTotalHt:
52  ht += eSum->hwPt();
53  break;
54 
55  case l1t::EtSum::EtSumType::kTotalHtx:
56  mhtx += eSum->hwPt();
57  break;
58 
59  case l1t::EtSum::EtSumType::kTotalHty:
60  mhty += eSum->hwPt();
61  break;
62 
63  default:
64  continue; // Should throw an exception or something?
65  }
66  }
67 
68  // Final MET calculation
69  cordic_( metx , mety , metPhi , met );
70 
71  // Final MHT calculation
72  cordic_( mhtx , mhty , mhtPhi , mht );
73 
74  // Make final collection
76 
77  l1t::EtSum etSumTotalEt(p4,l1t::EtSum::EtSumType::kTotalEt,et,0,0,0);
78  l1t::EtSum etSumMissingEt(p4,l1t::EtSum::EtSumType::kMissingEt,met,0,metPhi,0);
79  l1t::EtSum htSumht(p4,l1t::EtSum::EtSumType::kTotalHt,ht,0,0,0);
80  l1t::EtSum htSumMissingHt(p4,l1t::EtSum::EtSumType::kMissingHt,mht,0,mhtPhi,0);
81 
82  outputSums.push_back(etSumTotalEt);
83  outputSums.push_back(etSumMissingEt);
84  outputSums.push_back(htSumht);
85  outputSums.push_back(htSumMissingHt);
86 
87 }
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double p4[4]
Definition: TauolaWrapper.h:92

Member Data Documentation

Cordic l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::cordic_
private

Definition at line 33 of file Stage2Layer2DemuxSumsAlgoFirmware.h.

CaloParamsHelper* l1t::Stage2Layer2DemuxSumsAlgoFirmwareImp1::params_
private

Definition at line 31 of file Stage2Layer2DemuxSumsAlgoFirmware.h.