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