ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.hh
Revision: 1.14
Committed: Tue Jun 21 17:00:33 2011 UTC (13 years, 10 months ago) by amagnan
Content type: text/plain
Branch: MAIN
Changes since 1.13: +4 -0 lines
Log Message:
add LHE info

File Contents

# User Rev Content
1 amagnan 1.1 #ifndef HbbAnalysis_HbbTreeMaker_hh
2     #define HbbAnalysis_HbbTreeMaker_hh
3    
4     #include <fstream>
5     #include <string>
6     #include <iostream>
7     #include <vector>
8    
9     #include "Math/VectorUtil.h"
10    
11     #include "FWCore/Framework/interface/EDAnalyzer.h"
12     #include "FWCore/Framework/interface/ESHandle.h"
13     #include "FWCore/Framework/interface/Event.h"
14     #include "FWCore/Framework/interface/EventSetup.h"
15 amagnan 1.5 #include "FWCore/Common/interface/TriggerNames.h"
16 amagnan 1.1 #include "FWCore/ParameterSet/interface/ParameterSet.h"
17    
18     #include "DataFormats/Common/interface/Handle.h"
19 amagnan 1.6
20     #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h"
21     #include "DataFormats/L1Trigger/interface/L1JetParticle.h"
22     #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
23     #include "DataFormats/HLTReco/interface/TriggerEvent.h"
24 amagnan 1.9 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
25 amagnan 1.6
26 amagnan 1.1 #include "DataFormats/PatCandidates/interface/Lepton.h"
27     #include "DataFormats/PatCandidates/interface/Jet.h"
28     #include "DataFormats/PatCandidates/interface/Muon.h"
29     #include "DataFormats/PatCandidates/interface/Electron.h"
30     #include "DataFormats/PatCandidates/interface/Tau.h"
31    
32 amagnan 1.7 #include "SimDataFormats/GeneratorProducts/interface/GenRunInfoProduct.h"
33     #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
34 amagnan 1.14 #include "SimDataFormats/GeneratorProducts/interface/LHEEventProduct.h"
35 amagnan 1.7
36 amagnan 1.1 #include "UserCode/HbbAnalysis/interface/JetFlavour.hh"
37     #include "UserCode/HbbAnalysis/interface/HbbEvent.hh"
38    
39 agilbert 1.13 #include "CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h"
40    
41 amagnan 1.1 #include "TTree.h"
42    
43     class HbbTreeMaker : public edm::EDAnalyzer {//class
44    
45     public:
46    
47     HbbTreeMaker(const edm::ParameterSet & pset);
48     ~HbbTreeMaker();
49    
50 amagnan 1.4 void beginJob();
51 amagnan 1.1 void analyze(const edm::Event& ,
52     const edm::EventSetup&
53     );
54     void endJob();
55    
56     private:
57    
58     void HbbParticles(const edm::Handle<reco::GenParticleCollection> & aCol,
59     std::vector<HbbAnalysis::GenParticle> & aVec);
60    
61 amagnan 1.14 void HbbLHEInfo(const edm::Handle<LHEEventProduct> & aLHEEvt,
62     std::vector<HbbAnalysis::GenParticle> & aVec);
63    
64 amagnan 1.10 void HbbBeamSpot(const edm::Handle<reco::BeamSpot> & aBeamSpot,
65     HbbAnalysis::BeamSpot & aBS);
66    
67 amagnan 1.12 void HbbElectrons(const edm::Handle<std::vector<pat::Electron> > & aCol,
68 amagnan 1.1 std::vector<HbbAnalysis::Electron> & aVec);
69    
70     void HbbMuons(const edm::Handle<std::vector<pat::Muon> > & aCol,
71 amagnan 1.2 const edm::Handle<std::vector<reco::Vertex> > & aRecoVertices,
72 amagnan 1.9 const edm::Handle<reco::BeamSpot> & aBeamSpot,
73 amagnan 1.1 std::vector<HbbAnalysis::Muon> & aVec);
74    
75     void HbbTaus(const edm::Handle<std::vector<pat::Tau> > & aCol,
76     const edm::Handle<std::vector<reco::Vertex> > & aRecoVertices,
77     std::vector<HbbAnalysis::Tau> & aVec);
78    
79     void HbbJets(const edm::Handle<std::vector<pat::Jet> > & aCol,
80     const HbbAnalysis::JetFlavour & aFlavour,
81     const edm::Handle<reco::GenParticleCollection> & aGenParticles,
82     std::vector<HbbAnalysis::Jet> & aVec);
83    
84 agilbert 1.13 JetCorrectionUncertainty* jecUncCalo;
85     JetCorrectionUncertainty* jecUncPF;
86     JetCorrectionUncertainty* jecUncJPT;
87    
88 amagnan 1.1 void HbbMet(const edm::Handle<std::vector<pat::MET> > & aCol,
89     HbbAnalysis::Met & aVec);
90    
91     void HbbTrigger(const edm::Handle<edm::TriggerResults> & aCol,
92 amagnan 1.5 const edm::TriggerNames & aNames,
93 amagnan 1.1 std::vector<HbbAnalysis::Trigger> & aVec);
94    
95 amagnan 1.4 void HbbVertices(const edm::Handle<std::vector<reco::Vertex> > & aCol,
96     std::vector<HbbAnalysis::Vertex> & aVec);
97 amagnan 1.1
98    
99 amagnan 1.6 void HbbL1Objects(const edm::Handle<l1extra::L1JetParticleCollection> & aCol,
100     std::vector<HbbAnalysis::L1Object> & aVec,
101     const unsigned int aType);
102    
103     void HbbHLTObjects(const edm::Handle<trigger::TriggerEvent> & aCol,
104     std::vector<HbbAnalysis::HLTObject> & aVec);
105 amagnan 1.8
106     void fillHLTVector(const edm::InputTag & aTag,
107     const edm::Handle<trigger::TriggerEvent> & aCol,
108     std::vector<HbbAnalysis::HLTObject> & aVec,
109     const unsigned int aType);
110    
111 amagnan 1.7 void HbbGenInfo(const edm::Handle<edm::HepMCProduct> & amcProd,
112     const edm::Handle<GenRunInfoProduct> & aRunProd);
113    
114 amagnan 1.1 int debug_;
115    
116 amagnan 1.3 bool processData_;
117    
118    
119 amagnan 1.1 //flavour of jets required :
120     // 3 = u,d,s,g, 21 = g
121     // 4=c, 5=b, 45=b or c
122     unsigned int flavour_;
123    
124     bool doGen_;
125    
126     HbbAnalysis::JetFlavour jetFlav_;
127    
128     edm::InputTag genParticleSrc_;
129 amagnan 1.8 edm::InputTag trackSrc_;
130     edm::InputTag dcsSrc_;
131 amagnan 1.1 edm::InputTag electronSrc_;
132     edm::InputTag muonSrc_;
133     edm::InputTag caloTauSrc_;
134     edm::InputTag pfTauSrc_;
135     edm::InputTag caloJetSrc_;
136     edm::InputTag jptJetSrc_;
137 amagnan 1.11 edm::InputTag ak7JetSrc_;
138 amagnan 1.1 edm::InputTag pfJetSrc_;
139     edm::InputTag caloMetSrc_;
140     edm::InputTag tcMetSrc_;
141     edm::InputTag pfMetSrc_;
142     //edm::InputTag pairSrc_;
143     //edm::InputTag mmPairSrc_;
144     //edm::InputTag etPairSrc_;
145     //edm::InputTag mtPairSrc_;
146     edm::InputTag vertexSrc_;
147     edm::InputTag triggerSrc_;
148     std::vector<std::string> hltPaths_;
149 amagnan 1.6 edm::InputTag l1CenJetSrc_;
150     edm::InputTag l1TauJetSrc_;
151     edm::InputTag l1FwdJetSrc_;
152     edm::InputTag hltSummarySrc_;
153    
154 amagnan 1.1 //vector filled during processing with all existing collections
155     //std::vector<std::pair<std::string,std::string> > collections_;
156    
157     //list of processes to consider to find input collections
158     //std::vector<std::string> processVec_;
159    
160     HbbAnalysis::HbbEvent * event_;
161    
162     TTree *tree_;
163 amagnan 1.6
164     //name of the desired collection for hlt matches
165 amagnan 1.8 std::vector<edm::InputTag> hltTagsElec_;
166     std::vector<edm::InputTag> hltTagsMu_;
167     std::vector<edm::InputTag> hltTagsJet_;
168 amagnan 1.6
169 amagnan 1.1 };//class
170    
171     #endif //HbbAnalysis_HbbTreeMaker_hh