ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.hh
Revision: 1.12
Committed: Mon Jan 24 09:21:53 2011 UTC (14 years, 3 months ago) by amagnan
Content type: text/plain
Branch: MAIN
CVS Tags: v00-05-02
Changes since 1.11: +1 -3 lines
Log Message:
add all electron WP

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