CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/DataFormats/METReco/interface/BeamHaloSummary.h

Go to the documentation of this file.
00001 #ifndef DATAFORMATS_METRECO_BEAMHALOSUMMARY_H
00002 #define DATAFORMATS_METRECO_BEAMHALOSUMMARY_H
00003 
00004 /*
00005   [class]:  BeamHaloSummary
00006   [authors]: R. Remington, The University of Florida
00007   [description]: Container class that stores Ecal,CSC,Hcal, and Global BeamHalo data
00008   [date]: October 15, 2009
00009 */
00010 
00011 #include "DataFormats/Common/interface/RefVector.h"
00012 #include "DataFormats/Common/interface/Ref.h"
00013 #include "DataFormats/Common/interface/RefProd.h"
00014 
00015 #include "DataFormats/METReco/interface/CSCHaloData.h"
00016 #include "DataFormats/METReco/interface/EcalHaloData.h"
00017 #include "DataFormats/METReco/interface/HcalHaloData.h" 
00018 #include "DataFormats/METReco/interface/GlobalHaloData.h" 
00019 
00020 namespace reco {
00021   class BeamHaloInfoProducer;
00022   
00023   class BeamHaloSummary{
00024     friend class reco::BeamHaloInfoProducer; 
00025   public:
00026     
00027     //constructors
00028     BeamHaloSummary();
00029     BeamHaloSummary(CSCHaloData& csc, EcalHaloData& ecal, HcalHaloData& hcal, GlobalHaloData& global);
00030     
00031     //destructor
00032     virtual ~BeamHaloSummary() {}
00033   
00034     const bool HcalLooseHaloId()const { return  HcalHaloReport.size() ?  HcalHaloReport[0] : false ; }
00035     const bool HcalTightHaloId()const { return  HcalHaloReport.size() > 1 ? HcalHaloReport[1] : false ; }
00036     
00037     const bool EcalLooseHaloId()const { return  EcalHaloReport.size() ?  EcalHaloReport[0] : false ; }
00038     const bool EcalTightHaloId()const { return  EcalHaloReport.size() > 1 ? EcalHaloReport[1] : false ; }
00039 
00040     const bool CSCLooseHaloId() const { return CSCHaloReport.size() ? CSCHaloReport[0] : false ; }
00041     const bool CSCTightHaloId() const { return CSCHaloReport.size() > 1 ? CSCHaloReport[1] : false ; }
00042     
00043     const bool GlobalLooseHaloId() const { return GlobalHaloReport.size() ? GlobalHaloReport[0] : false ; }
00044     const bool GlobalTightHaloId() const { return GlobalHaloReport.size() > 1 ? GlobalHaloReport[1] : false ; }
00045 
00046     const bool EventSmellsLikeHalo() const { return HcalLooseHaloId() || EcalLooseHaloId() || CSCLooseHaloId() || GlobalLooseHaloId() ; }
00047     const bool LooseId() const { return EventSmellsLikeHalo(); }
00048     const bool TightId() const { return HcalTightHaloId() || EcalTightHaloId() || CSCTightHaloId() || GlobalTightHaloId() ; }
00049     const bool ExtremeTightId ()const { return  GlobalTightHaloId() ; }
00050 
00051     //  Getters
00052     std::vector<char>& GetHcalHaloReport(){return HcalHaloReport;}
00053     const std::vector<char>& GetHcalHaloReport() const { return HcalHaloReport;}
00054     
00055     std::vector<char>& GetEcalHaloReport(){return EcalHaloReport;}
00056     const std::vector<char>& GetEcalHaloReport() const {return EcalHaloReport;}
00057 
00058     std::vector<char>& GetCSCHaloReport() { return CSCHaloReport ;}
00059     const std::vector<char>& GetCSCHaloReport() const { return CSCHaloReport ; }
00060 
00061     std::vector<char>& GetGlobalHaloReport() { return GlobalHaloReport ;} 
00062     const std::vector<char>& GetGlobalHaloReport() const {return GlobalHaloReport ; }
00063 
00064     std::vector<int>& GetHcaliPhiSuspects() { return HcaliPhiSuspects ; }
00065     const std::vector<int>& GetHcaliPhiSuspects() const { return HcaliPhiSuspects ; }
00066 
00067     std::vector<int>& GetEcaliPhiSuspects() { return EcaliPhiSuspects ; }
00068     const std::vector<int>& GetEcaliPhiSuspects() const { return EcaliPhiSuspects ; }
00069 
00070     std::vector<int>& GetGlobaliPhiSuspects() { return GlobaliPhiSuspects ;}
00071     const std::vector<int>& GetGlobaliPhiSuspects() const { return GlobaliPhiSuspects ;}
00072 
00073   private: 
00074     std::vector<char>  HcalHaloReport;
00075     std::vector<char>  EcalHaloReport;
00076     std::vector<char>  CSCHaloReport;
00077     std::vector<char>  GlobalHaloReport;
00078 
00079     std::vector<int>  HcaliPhiSuspects;
00080     std::vector<int>  EcaliPhiSuspects;
00081     std::vector<int>  GlobaliPhiSuspects;
00082 
00083   };
00084   
00085 }
00086 
00087 
00088 #endif