00001 #ifndef JetPlusTrackAnalysis_h
00002 #define JetPlusTrackAnalysis_h
00003
00004 #include "TrackingTools/TrackAssociator/interface/TrackDetectorAssociator.h"
00005
00006 #include "FWCore/Framework/interface/EDAnalyzer.h"
00007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00008 #include <string>
00009 #include <memory>
00010 #include <map>
00011
00012 namespace edm {
00013 class Event;
00014 class EventSetup;
00015 class ParameterSet;
00016 }
00017 #include "TFile.h"
00018 #include "TTree.h"
00019
00023 namespace cms
00024 {
00025
00026 class JetPlusTrackAnalysis : public edm::EDAnalyzer
00027 {
00028 public:
00029
00030 JetPlusTrackAnalysis(const edm::ParameterSet& fParameters);
00031
00032 virtual ~JetPlusTrackAnalysis();
00033
00034 virtual void analyze(const edm::Event&, const edm::EventSetup&);
00035 virtual void beginJob(const edm::EventSetup& ) ;
00036 virtual void endJob() ;
00037
00038 private:
00039
00040 std::string fOutputFileName ;
00041 bool allowMissingInputs_;
00042 TFile* hOutputFile ;
00043 TTree * myTree;
00044 int NumRecoJetsCaloTower, NumRecoJetsCorrected, NumRecoJetsRecHit, NumGenJets, NumRecoJetsJetPlusTrack;
00045 float JetRecoEtCaloTower[100],JetRecoEtaCaloTower[100],JetRecoPhiCaloTower[100];
00046 float JetRecoEtCorrected[100],JetRecoEtCorrectedZS[100],JetRecoEtaCorrected[100],JetRecoPhiCorrected[100];
00047 float JetRecoGenRecType[100],JetRecoGenPartonType[100];
00048 float JetRecoEtRecHit[100],EcalEmpty[100],HcalEmpty[100];
00049 float JetRecoEtJetPlusTrack[100],JetRecoEtaJetPlusTrack[100],JetRecoPhiJetPlusTrack[100];
00050 float JetGenEt[10],JetGenEta[10],JetGenPhi[10],JetGenCode[10];
00051 int Code[4000],Charge[4000],NumPart,NumRecoTrack;
00052 float partpx[4000],partpy[4000],partpz[4000],parte[4000],partm[4000];
00053 float TrackRecoEt[5000],TrackRecoEta[5000],TrackRecoPhi[5000];
00054 int run, event;
00055
00056 double mCone;
00057 edm::InputTag mInputJetsCaloTower;
00058 edm::InputTag mInputJetsCorrected;
00059 edm::InputTag mInputJetsGen;
00060 edm::InputTag mInputCaloTower;
00061 edm::InputTag mInputPVfCTF;
00062 std::string m_inputTrackLabel;
00063 std::vector<edm::InputTag> ecalLabels_;
00064 edm::InputTag ebrechit;
00065 edm::InputTag eerechit;
00066 edm::InputTag calotower;
00067 edm::InputTag hbhelabel_;
00068 edm::InputTag holabel_;
00069 edm::InputTag dtrecseg;
00070 edm::InputTag cscseg;
00071 const CaloGeometry* geo;
00072 };
00073 }
00074 #endif