![]() |
![]() |
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