Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-05-11 03:34:02

0001 #ifndef DataFormats_L1Trigger_EGamma_h
0002 #define DataFormats_L1Trigger_EGamma_h
0003 
0004 #include "DataFormats/L1Trigger/interface/L1Candidate.h"
0005 #include "DataFormats/L1Trigger/interface/BXVector.h"
0006 #include "DataFormats/L1Trigger/interface/L1TObjComparison.h"
0007 
0008 namespace l1t {
0009 
0010   class EGamma;
0011   typedef BXVector<EGamma> EGammaBxCollection;
0012   typedef edm::Ref<EGammaBxCollection> EGammaRef;
0013   typedef edm::RefVector<EGammaBxCollection> EGammaRefVector;
0014   typedef std::vector<EGammaRef> EGammaVectorRef;
0015 
0016   typedef ObjectRefBxCollection<EGamma> EGammaRefBxCollection;
0017   typedef ObjectRefPair<EGamma> EGammaRefPair;
0018   typedef ObjectRefPairBxCollection<EGamma> EGammaRefPairBxCollection;
0019 
0020   class EGamma : public L1Candidate {
0021   public:
0022     EGamma() { clear_extended(); }
0023 
0024     // ctor from base allowed, but note that extended variables will be set to zero:
0025     EGamma(const L1Candidate& rhs) : L1Candidate(rhs) { clear_extended(); }
0026 
0027     EGamma(const LorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
0028 
0029     EGamma(const PolarLorentzVector& p4, int pt = 0, int eta = 0, int phi = 0, int qual = 0, int iso = 0);
0030 
0031     ~EGamma() override;
0032 
0033     void setTowerIEta(short int ieta);  // ieta of seed tower
0034     void setTowerIPhi(short int iphi);  // iphi of seed tower
0035     void setRawEt(short int pt);        // raw (uncalibrated) cluster sum
0036     void setIsoEt(short int iso);       // raw isolation sum - cluster sum
0037     void setFootprintEt(short int fp);  // raw footprint
0038     void setNTT(short int ntt);         // n towers above threshold
0039     void setShape(short int s);         // cluster shape variable
0040     void setTowerHoE(short int HoE);    // H/E as computed in Layer-1
0041 
0042     short int towerIEta() const;
0043     short int towerIPhi() const;
0044     short int rawEt() const;
0045     short int isoEt() const;
0046     short int footprintEt() const;
0047     short int nTT() const;
0048     short int shape() const;
0049     short int towerHoE() const;
0050 
0051     bool operator==(const l1t::EGamma& rhs) const;
0052     inline bool operator!=(const l1t::EGamma& rhs) const { return !(operator==(rhs)); };
0053 
0054   private:
0055     using L1Candidate::operator==;
0056     using L1Candidate::operator!=;
0057     // additional hardware quantities common to L1 global EG
0058     void clear_extended();
0059     short int towerIEta_;
0060     short int towerIPhi_;
0061     short int rawEt_;
0062     short int isoEt_;
0063     short int footprintEt_;
0064     short int nTT_;
0065     short int shape_;
0066     short int towerHoE_;
0067   };
0068 
0069 }  // namespace l1t
0070 
0071 #endif