Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:04:31

0001 // Description: Collection representing remaining ECAL energy post-L1EG clustering
0002 // and the associated HCAL tower. The ECAL crystal TPs "simEcalEBTriggerPrimitiveDigis"
0003 // within a 5x5 tower region are clustered to retain this ECAL energy info for passing
0004 // to the GCT or further algos. The HCAL energy from the "simHcalTriggerPrimitiveDigis"
0005 // is not specifically used in the L1EG algo beyond H/E, so the HCAL values here
0006 // correspond to the full, initial HCAL TP energy.
0007 
0008 #ifndef DataFormats_L1TCalorimeterPhase2_CaloTower_HH
0009 #define DataFormats_L1TCalorimeterPhase2_CaloTower_HH
0010 
0011 #include <vector>
0012 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0013 
0014 namespace l1tp2 {
0015 
0016   class CaloTower : public l1t::L1Candidate {
0017   public:
0018     CaloTower()
0019         : l1t::L1Candidate(),
0020           ecalTowerEt_(0.0),
0021           hcalTowerEt_(0.0),
0022           towerIPhi_(-99),
0023           towerIEta_(-99),
0024           towerPhi_(-99),
0025           towerEta_(-99),
0026           l1egTowerEt_(0.0),
0027           nL1eg_(0),
0028           l1egTrkSS_(0),
0029           l1egTrkIso_(0),
0030           l1egStandaloneSS_(0),
0031           l1egStandaloneIso_(0),
0032           isBarrel_(false){};
0033 
0034   public:
0035     inline float ecalTowerEt() const { return ecalTowerEt_; };
0036     inline float hcalTowerEt() const { return hcalTowerEt_; };
0037     inline int towerIPhi() const { return towerIPhi_; };
0038     inline int towerIEta() const { return towerIEta_; };
0039     inline float towerPhi() const { return towerPhi_; };
0040     inline float towerEta() const { return towerEta_; };
0041     inline float l1egTowerEt() const { return l1egTowerEt_; };
0042     inline int nL1eg() const { return nL1eg_; };
0043     inline int l1egTrkSS() const { return l1egTrkSS_; };
0044     inline int l1egTrkIso() const { return l1egTrkIso_; };
0045     inline int l1egStandaloneSS() const { return l1egStandaloneSS_; };
0046     inline int l1egStandaloneIso() const { return l1egStandaloneIso_; };
0047     inline bool isBarrel() const { return isBarrel_; };
0048 
0049     void setEcalTowerEt(float et) { ecalTowerEt_ = et; };
0050     void setHcalTowerEt(float et) { hcalTowerEt_ = et; };
0051     void setTowerIPhi(int iPhi) { towerIPhi_ = iPhi; };
0052     void setTowerIEta(int iEta) { towerIEta_ = iEta; };
0053     void setTowerPhi(float phi) { towerPhi_ = phi; };
0054     void setTowerEta(float eta) { towerEta_ = eta; };
0055     void setL1egTowerEt(float et) { l1egTowerEt_ = et; };
0056     void setNL1eg(int n) { nL1eg_ = n; };
0057     void setL1egTrkSS(int trkSS) { l1egTrkSS_ = trkSS; };
0058     void setL1egTrkIso(int trkIso) { l1egTrkIso_ = trkIso; };
0059     void setL1egStandaloneSS(int staSS) { l1egStandaloneSS_ = staSS; };
0060     void setL1egStandaloneIso(int staIso) { l1egStandaloneIso_ = staIso; };
0061     void setIsBarrel(bool isBarrel) { isBarrel_ = isBarrel; };
0062 
0063   private:
0064     float ecalTowerEt_ = 0.0;
0065     float hcalTowerEt_ = 0.0;
0066     int towerIPhi_ = -99;
0067     int towerIEta_ = -99;
0068     float towerPhi_ = -99;
0069     float towerEta_ = -99;
0070 
0071     // L1EG info
0072     float l1egTowerEt_ = 0.0;
0073     int nL1eg_ = 0;
0074     int l1egTrkSS_ = 0;
0075     int l1egTrkIso_ = 0;
0076     int l1egStandaloneSS_ = 0;
0077     int l1egStandaloneIso_ = 0;
0078 
0079     bool isBarrel_ = false;
0080   };
0081 
0082   // Collection of either ECAL or HCAL TPs with the Layer1 calibration constant attached, et_calibration
0083   typedef std::vector<CaloTower> CaloTowerCollection;
0084 
0085 }  // namespace l1tp2
0086 #endif