ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.hh
Revision: 1.13
Committed: Fri May 27 13:24:59 2011 UTC (13 years, 11 months ago) by agilbert
Content type: text/plain
Branch: MAIN
CVS Tags: v00-05-03
Changes since 1.12: +6 -0 lines
Log Message:
Modify HbbTreeMaker to write jet energy uncertainty
Also modify renameCastorFiles.sh to remove 3 random characters in filename.

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