Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef DATAFORMATS_METRECO_GLOBALHALODATA_H
0002 #define DATAFORMATS_METRECO_GLOBALHALODATA_H
0003 /*
0004   [class]:  GlobalHaloData
0005   [authors]: R. Remington, The University of Florida
0006   [description]: Container class to store global beam halo data synthesized from EcalHaloData, HcalHaloData, and CSCHaloData. Also stores some variables relevant to MET for possible corrections.
0007   [date]: October 15, 2009
0008 */
0009 #include "DataFormats/METReco/interface/EcalHaloData.h"
0010 #include "DataFormats/METReco/interface/HcalHaloData.h"
0011 #include "DataFormats/METReco/interface/CSCHaloData.h"
0012 #include "DataFormats/METReco/interface/PhiWedge.h"
0013 #include "DataFormats/METReco/interface/CaloMET.h"
0014 #include "DataFormats/METReco/interface/MET.h"
0015 
0016 namespace reco {
0017   class GlobalHaloData {
0018   public:
0019     // Constructor
0020     GlobalHaloData();
0021     // Destructor
0022     ~GlobalHaloData() {}
0023 
0024     //A good cut-variable to isolate halo events with no overlapping physics from collisions
0025     float METOverSumEt() const { return METOverSumEt_; }
0026 
0027     //Correction to CaloMET x-component
0028     float DeltaMEx() const { return dMEx_; }
0029 
0030     //Correction to CaloMET y-component
0031     float DeltaMEy() const { return dMEy_; }
0032 
0033     //Correction to SumEt
0034     float DeltaSumEt() const { return dSumEt_; }
0035 
0036     //Get CaloMET Object corrected for BeamHalo
0037     reco::CaloMET GetCorrectedCaloMET(const reco::CaloMET& RawMET) const;
0038 
0039     std::vector<PhiWedge>& GetMatchedHcalPhiWedges() { return HcalPhiWedges; }
0040     const std::vector<PhiWedge>& GetMatchedHcalPhiWedges() const { return HcalPhiWedges; }
0041 
0042     std::vector<PhiWedge>& GetMatchedEcalPhiWedges() { return EcalPhiWedges; }
0043     const std::vector<PhiWedge>& GetMatchedEcalPhiWedges() const { return EcalPhiWedges; }
0044 
0045     edm::RefVector<EcalRecHitCollection>& GetEBRechits() { return ecalebrhRefs; }
0046     const edm::RefVector<EcalRecHitCollection>& GetEBRechits() const { return ecalebrhRefs; }
0047 
0048     edm::RefVector<EcalRecHitCollection>& GetEERechits() { return ecaleerhRefs; }
0049     const edm::RefVector<EcalRecHitCollection>& GetEERechits() const { return ecaleerhRefs; }
0050 
0051     edm::RefVector<HBHERecHitCollection>& GetHBHERechits() { return hbherhRefs; }
0052     const edm::RefVector<HBHERecHitCollection>& GetHBHERechits() const { return hbherhRefs; }
0053 
0054     bool GetSegmentIsHBCaloMatched() const { return segmentisHBcalomatched; }
0055     bool GetSegmentIsHECaloMatched() const { return segmentisHEcalomatched; }
0056     bool GetSegmentIsEBCaloMatched() const { return segmentisEBcalomatched; }
0057     bool GetSegmentIsEECaloMatched() const { return segmentisEEcalomatched; }
0058 
0059     bool GetHaloPatternFoundEB() const { return halopatternfoundEB; }
0060     bool GetHaloPatternFoundEE() const { return halopatternfoundEE; }
0061     bool GetHaloPatternFoundHB() const { return halopatternfoundHB; }
0062     bool GetHaloPatternFoundHE() const { return halopatternfoundHE; }
0063 
0064     //Setters
0065     void SetMETOverSumEt(float x) { METOverSumEt_ = x; }
0066     void SetMETCorrections(float x, float y) {
0067       dMEx_ = x;
0068       dMEy_ = y;
0069     }
0070 
0071     void SetSegmentIsHBCaloMatched(bool b) { segmentisHBcalomatched = b; }
0072     void SetSegmentIsHECaloMatched(bool b) { segmentisHEcalomatched = b; }
0073     void SetSegmentIsEBCaloMatched(bool b) { segmentisEBcalomatched = b; }
0074     void SetSegmentIsEECaloMatched(bool b) { segmentisEEcalomatched = b; }
0075     void SetHaloPatternFoundEB(bool b) { halopatternfoundEB = b; }
0076     void SetHaloPatternFoundEE(bool b) { halopatternfoundEE = b; }
0077     void SetHaloPatternFoundHB(bool b) { halopatternfoundHB = b; }
0078     void SetHaloPatternFoundHE(bool b) { halopatternfoundHE = b; }
0079 
0080   private:
0081     float METOverSumEt_;
0082     float dMEx_;
0083     float dMEy_;
0084     float dSumEt_;
0085 
0086     std::vector<PhiWedge> HcalPhiWedges;
0087     std::vector<PhiWedge> EcalPhiWedges;
0088 
0089     bool segmentisEBcalomatched, segmentisEEcalomatched, segmentisHBcalomatched, segmentisHEcalomatched;
0090     bool halopatternfoundEB, halopatternfoundEE, halopatternfoundHB, halopatternfoundHE;
0091 
0092     edm::RefVector<EcalRecHitCollection> ecalebrhRefs;
0093     edm::RefVector<EcalRecHitCollection> ecaleerhRefs;
0094     edm::RefVector<HBHERecHitCollection> hbherhRefs;
0095   };
0096 }  // namespace reco
0097 #endif