CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/DataFormats/METReco/interface/CSCHaloData.h

Go to the documentation of this file.
00001 #ifndef DATAFORMATS_METRECO_CSCHALODATA_H
00002 #define DATAFORMATS_METRECO_CSCHALODATA_H
00003 #include "TMath.h"
00004 #include <vector>
00005 
00006 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00007 #include "DataFormats/TrackReco/interface/Track.h"
00008 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h"
00009 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutRecord.h"
00010 #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h"
00011 #include "DataFormats/GeometrySurface/interface/Cylinder.h"
00012 #include "DataFormats/GeometrySurface/interface/Plane.h"
00013 #include "DataFormats/GeometrySurface/interface/Cone.h"
00014 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00015 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00016 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00017 #include "DataFormats/GeometryVector/interface/LocalVector.h"
00018 #include "DataFormats/METReco/interface/HaloData.h"
00019 
00020 #include "DataFormats/Common/interface/RefVector.h"
00021 #include "DataFormats/Common/interface/Ref.h"
00022 #include "DataFormats/Common/interface/RefProd.h"
00023 /*
00024   [class]:  CSCHaloData
00025   [authors]: R. Remington, The University of Florida
00026   [description]: Container class to store beam halo data specific to the CSC subdetector
00027   [date]: October 15, 2009
00028 */
00029 
00030 namespace reco {
00031   
00032   class CSCHaloData{
00033     
00034   public:
00035     // Default constructor
00036     CSCHaloData();
00037 
00038     virtual ~CSCHaloData(){}
00039 
00040     // Number of HaloTriggers in +/- endcap
00041     int NumberOfHaloTriggers (HaloData::Endcap z= HaloData::both) const ;
00042     int NHaloTriggers(HaloData::Endcap z = HaloData::both ) const { return NumberOfHaloTriggers(z);}
00043     // Number of Halo Tracks in +/-  endcap
00044     int NumberOfHaloTracks(HaloData::Endcap z= HaloData::both) const ;
00045     int NHaloTracks(HaloData::Endcap z = HaloData::both) const { return NumberOfHaloTracks(z) ;}
00046 
00047     // Halo trigger bit from the HLT  
00048     bool CSCHaloHLTAccept() const {return HLTAccept;}
00049 
00050     // Number of chamber-level triggers with non-collision timing
00051     short int NumberOfOutOfTimeTriggers(HaloData::Endcap z = HaloData::both ) const;
00052     short int NOutOfTimeTriggers(HaloData::Endcap z = HaloData::both) const {return NumberOfOutOfTimeTriggers(z);}
00053     // Number of CSCRecHits with non-collision timing
00054     short int NumberOfOutTimeHits() const { return nOutOfTimeHits;}
00055     short int NOutOfTimeHits() const {return nOutOfTimeHits;}
00056 
00057     // Get Reference to the Tracks
00058     edm::RefVector<reco::TrackCollection>& GetTracks(){return TheTrackRefs;}
00059     const edm::RefVector<reco::TrackCollection>& GetTracks()const {return TheTrackRefs;}
00060     
00061     // Set Number of Halo Triggers
00062     void SetNumberOfHaloTriggers(int PlusZ,  int MinusZ ){ nTriggers_PlusZ =PlusZ; nTriggers_MinusZ = MinusZ ;}
00063 
00064     // Set number of chamber-level triggers with non-collision timing
00065     void SetNOutOfTimeTriggers(short int PlusZ,short int MinusZ){ nOutOfTimeTriggers_PlusZ = PlusZ ; nOutOfTimeTriggers_MinusZ = MinusZ;}
00066     // Set number of CSCRecHits with non-collision timing
00067     void SetNOutOfTimeHits(short int num){ nOutOfTimeHits = num ;}
00068 
00069     // Set HLT Bit
00070     void SetHLTBit(bool status) { HLTAccept = status ;} 
00071 
00072     // Get GlobalPoints of CSC tracking rechits nearest to the calorimeters
00073     //std::vector<const GlobalPoint>& GetCSCTrackImpactPositions() const {return TheGlobalPositions;}
00074     const std::vector<GlobalPoint>& GetCSCTrackImpactPositions() const {return TheGlobalPositions;}
00075     std::vector<GlobalPoint>& GetCSCTrackImpactPositions() {return TheGlobalPositions;}
00076     
00077   private:
00078     edm::RefVector<reco::TrackCollection> TheTrackRefs;
00079 
00080     // The GlobalPoints from constituent rechits nearest to the calorimeter of CSC tracks
00081     std::vector<GlobalPoint> TheGlobalPositions;
00082     int nTriggers_PlusZ;
00083     int nTriggers_MinusZ;
00084 
00085     // CSC halo trigger reported by the HLT
00086     bool HLTAccept;
00087    
00088     int nTracks_PlusZ;
00089     int nTracks_MinusZ;
00090 
00091     // number of  out-of-time chamber-level triggers (assumes the event triggered at the bx of the beam crossing)
00092     short int nOutOfTimeTriggers_PlusZ;
00093     short int nOutOfTimeTriggers_MinusZ;
00094     // number of out-of-time CSCRecHit2Ds (assumes the event triggered at the bx of the beam crossing)
00095     short int nOutOfTimeHits;
00096 
00097   };
00098 
00099 
00100   
00101 }
00102   
00103 
00104 #endif