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 "DataFormats/MuonReco/interface/Muon.h"
00015 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00016 #include "DataFormats/Candidate/interface/Candidate.h"
00017 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00018
00019 #include "DataFormats/TrackReco/interface/Track.h"
00020 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
00021 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
00022 #include "DataFormats/RecoCandidate/interface/IsoDeposit.h"
00023 #include "DataFormats/RecoCandidate/interface/IsoDepositFwd.h"
00024
00025 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h"
00026 #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h"
00027 #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeed.h"
00028 #include "DataFormats/MuonSeed/interface/L2MuonTrajectorySeedCollection.h"
00029 #include "DataFormats/L1Trigger/interface/L1MuonParticle.h"
00030 #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h"
00031
00032 #include "HLTrigger/HLTanalyzers/interface/JetUtil.h"
00033 #include "HLTrigger/HLTanalyzers/interface/CaloTowerBoundries.h"
00034
00035 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00036
00037 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00038 #include "DataFormats/Math/interface/Point3D.h"
00039
00040 typedef std::vector<std::string> MyStrings;
00041
00048 class HLTMuon {
00049 public:
00050 HLTMuon();
00051
00052 void setup(const edm::ParameterSet& pSet, TTree* tree);
00053
00055 void analyze(const edm::Handle<reco::MuonCollection> & muon,
00056 const edm::Handle<l1extra::L1MuonParticleCollection> & mucands1,
00057 const edm::Handle<reco::RecoChargedCandidateCollection> & mucands2,
00058 const edm::Handle<edm::ValueMap<bool> > & isoMap2,
00059 const edm::Handle<reco::RecoChargedCandidateCollection> & mucands3,
00060 const edm::Handle<edm::ValueMap<bool> > & isoMap3,
00061 const edm::Handle<reco::RecoChargedCandidateCollection> & oniaPixelCands,
00062 const edm::Handle<reco::RecoChargedCandidateCollection> & oniaTrackCands,
00063 const edm::Handle<reco::RecoChargedCandidateCollection> & munovtxcands2,
00064 const reco::BeamSpot::Point & BSPosition,
00065 TTree* tree);
00066
00067
00068 private:
00069
00070
00071 float *muonpt, *muonphi, *muoneta, *muonet, *muone, *muonchi2NDF, *muoncharge,
00072 *muonTrkIsoR03, *muonECalIsoR03, *muonHCalIsoR03, *muonD0;
00073 int *muontype, *muonNValidTrkHits, *muonNValidMuonHits;
00074 float *muonl2pt, *muonl2eta, *muonl2phi, *muonl2dr, *muonl2dz;
00075 float *muonl3pt, *muonl3eta, *muonl3phi, *muonl3dr, *muonl3dz;
00076 float *muonl2novtxpt, *muonl2novtxeta, *muonl2novtxphi, *muonl2novtxdr, *muonl2novtxdz;
00077 float *muonl2pterr, *muonl3pterr, *muonl2novtxpterr;
00078 int nmuon, nmu2cand, nmu3cand, nmu2novtxcand;
00079 int *muonl2chg, *muonl2iso, *muonl3chg, *muonl3iso, *muonl32idx, *muonl21idx, *muonl2novtxchg, *muonl2novtxiso, *muonl2novtx1idx;
00080 int nOniaPixelCand, nOniaTrackCand;
00081 float *oniaPixelpt, *oniaPixeleta, *oniaPixelphi, *oniaPixeldr, *oniaPixeldz, *oniaPixelNormChi2;
00082 float *oniaTrackpt, *oniaTracketa, *oniaTrackphi, *oniaTrackdr, *oniaTrackdz, *oniaTrackNormChi2;
00083 int *oniaPixelchg, *oniaTrackchg, *oniaPixelHits, *oniaTrackHits;
00084
00085
00086
00087 bool _Monte,_Debug;
00088
00089 int evtCounter;
00090
00091 const float etaBarrel() {return 1.4;}
00092
00093 };
00094
00095 #endif