CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/HLTrigger/HLTanalyzers/interface/HLTMuon.h

Go to the documentation of this file.
00001 #ifndef HLTMUON_H
00002 #define HLTMUON_H
00003 
00004 #include "TH1.h"
00005 #include "TH2.h"
00006 #include "TFile.h"
00007 #include "TNamed.h"
00008 #include <vector>
00009 #include <map>
00010 #include "TROOT.h"
00011 #include "TChain.h"
00012 
00013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Framework/interface/EventSetup.h"
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include "DataFormats/Common/interface/Handle.h"
00018 #include "DataFormats/MuonReco/interface/Muon.h"
00019 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00020 #include "DataFormats/Candidate/interface/Candidate.h"
00021 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00022 
00023 #include "DataFormats/TrackReco/interface/Track.h"
00024 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00025 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
00026 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
00027 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00028 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
00029 //#include "DataFormats/MuonReco/interface/MuonTrackLinks.h"
00030 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h"
00031 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h"
00032 #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h" 
00033 #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h" 
00034 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h" 
00035 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" 
00036 #include "DataFormats/VertexReco/interface/Vertex.h"
00037 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00038 
00039 #include "HLTrigger/HLTanalyzers/interface/JetUtil.h"
00040 #include "HLTrigger/HLTanalyzers/interface/CaloTowerBoundries.h"
00041 
00042 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00043 
00044 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00045 #include "DataFormats/Math/interface/Point3D.h"
00046 
00047 #include "TrackingTools/PatternTools/interface/ClosestApproachInRPhi.h"
00048 #include "DataFormats/Common/interface/RefToBase.h"
00049 #include "DataFormats/Math/interface/Error.h"
00050 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
00051 #include "MagneticField/Engine/interface/MagneticField.h"
00052 
00053 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00054 #include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h"
00055 #include "TMath.h"
00056 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
00057 
00058 
00059 typedef std::vector<std::string> MyStrings;
00060 
00067 class HLTMuon {
00068 public:
00069   HLTMuon(); 
00070 
00071   void setup(const edm::ParameterSet& pSet, TTree* tree);
00072 
00074   void analyze(const edm::Handle<reco::MuonCollection>                 & muon,
00075                const edm::Handle<l1extra::L1MuonParticleCollection>    & mucands1, 
00076                const edm::Handle<reco::RecoChargedCandidateCollection> & mucands2,
00077                const edm::Handle<edm::ValueMap<bool> >                 & isoMap2,
00078                const edm::Handle<reco::RecoChargedCandidateCollection> & mucands3,
00079                const edm::Handle<edm::ValueMap<bool> >                 & isoMap3,
00080                const edm::Handle<edm::ValueMap<bool> >                 & isoTrk10Map3,
00081                const edm::Handle<reco::RecoChargedCandidateCollection> & oniaPixelCands,
00082                const edm::Handle<reco::RecoChargedCandidateCollection> & oniaTrackCands,
00083                const edm::Handle<reco::VertexCollection>               & dimuvtxcands3,
00084                const edm::Handle<reco::RecoChargedCandidateCollection> & munovtxcands2, 
00085                const edm::Handle<reco::MuonCollection>                 & trkmucands,
00086                //const reco::BeamSpot::Point & BSPosition,
00087                const edm::ESHandle<MagneticField> & theMagField,
00088                const edm::Handle<reco::BeamSpot> & recoBeamSpotHandle,
00089                TTree* tree);
00090 
00091 
00092 private:
00093 
00094   int validChambers(const reco::TrackRef & track);
00095 
00096   // Tree variables
00097   float *muonpt, *muonphi, *muoneta, *muonet, *muone, *muonchi2NDF, *muoncharge,
00098   *muonTrkIsoR03, *muonECalIsoR03, *muonHCalIsoR03, *muonD0;
00099   int *muontype, *muonNValidTrkHits, *muonNValidMuonHits;
00100   float *muonl2pt, *muonl2eta, *muonl2phi, *muonl2dr, *muonl2dz, *muonl2vtxz;
00101   float *muonl3pt, *muonl3eta, *muonl3phi, *muonl3dr, *muonl3dz, *muonl3vtxz, *muonl3normchi2;
00102   float *muonl2novtxpt, *muonl2novtxeta, *muonl2novtxphi, *muonl2novtxdr, *muonl2novtxdz; 
00103   float *muonl2pterr, *muonl3pterr, *muonl2novtxpterr;
00104   int nmuon, nmu2cand, nmu3cand, nmu2novtxcand, ntrackermuoncand;
00105   int *muonl2chg, *muonl2iso, *muonl2nhits, *muonl2nchambers, *muonl2nstat, *muonl3chg, *muonl3iso, *muonl32idx, *muonl3nhits, *muonl21idx, *muonl2novtxchg, *muonl2novtxiso, *muonl2novtx1idx, *muonl2novtxnhits, *muonl2novtxnchambers;
00106   int *muonl3ntrackerhits, *muonl3nmuonhits, *muonl3trk10iso;
00107   float *trackermuonpt, *trackermuonphi, *trackermuoneta;
00108   int *trackermuonchg, *trackermuonnhits;
00109 
00110 
00111   int nOniaPixelCand, nOniaTrackCand;
00112   float *oniaPixelpt, *oniaPixeleta, *oniaPixelphi, *oniaPixeldr, *oniaPixeldz, *oniaPixelNormChi2;
00113   float *oniaTrackpt, *oniaTracketa, *oniaTrackphi, *oniaTrackdr, *oniaTrackdz, *oniaTrackNormChi2;
00114   int *oniaPixelchg, *oniaTrackchg, *oniaPixelHits, *oniaTrackHits;
00115   int nDiMu,nDiMuVtx;
00116   float *dimudca;
00117   int *dimu1st,*dimu2nd,*dimuvtx1st,*dimuvtx2nd;
00118   float *dimuvtxchi2,*dimuvtxr,*dimuvtxrsig,*dimuvtxroversig,*dimuvtxcosalpha;
00119   float *dimuvtxmu2dipmax, *dimuvtxmu2dipmin, *dimuvtxmu2dipsigmax, *dimuvtxmu2dipsigmin;
00120         
00121 
00122   // input variables
00123   bool _Monte,_Debug;
00124 
00125   int evtCounter;
00126 
00127   static float etaBarrel() { return 1.4; }
00128 
00129 };
00130 
00131 #endif