62 |
|
float b; |
63 |
|
float hf; |
64 |
|
float jtpt[MAXJETS]; |
65 |
+ |
float jtcorpt[MAXJETS]; |
66 |
|
float refpt[MAXJETS]; |
67 |
|
float jteta[MAXJETS]; |
68 |
|
float refeta[MAXJETS]; |
86 |
|
virtual void beginJob() ; |
87 |
|
virtual void analyze(const edm::Event&, const edm::EventSetup&); |
88 |
|
virtual void endJob() ; |
89 |
+ |
bool selectJet(int i); |
90 |
|
|
91 |
|
// ----------member data --------------------------- |
92 |
|
|
93 |
|
bool usePat_; |
94 |
|
bool doMC_; |
95 |
< |
|
96 |
< |
double genJetPtMin_; |
97 |
< |
|
95 |
> |
bool filterJets_; |
96 |
> |
bool diJetsOnly_; |
97 |
> |
bool matchDiJets_; |
98 |
> |
|
99 |
> |
double genPtMin_; |
100 |
> |
double ptMin_; |
101 |
> |
double emfMin_; |
102 |
> |
double n90Min_; |
103 |
> |
double n90hitMin_; |
104 |
|
|
105 |
|
edm::InputTag jetTag_; |
106 |
|
|
111 |
|
edm::Handle<reco::Centrality> cent; |
112 |
|
|
113 |
|
edm::Handle<reco::JetView> jets; |
114 |
< |
// edm::Handle<pat::JetCollection> jets; |
107 |
< |
|
114 |
> |
edm::Handle<pat::JetCollection> patjets; |
115 |
|
|
116 |
|
edm::Service<TFileService> fs; |
117 |
|
|
118 |
|
}; |
119 |
|
|
120 |
+ |
bool HiJetResponseAnalyzer::selectJet(int i){ |
121 |
+ |
|
122 |
+ |
const reco::Jet& jet = (*jets)[i]; |
123 |
+ |
|
124 |
+ |
if(usePat_){ |
125 |
+ |
// cout<<"a"<<endl; |
126 |
+ |
const pat::Jet& patjet = (*patjets)[i]; |
127 |
+ |
// cout<<"b"<<endl; |
128 |
+ |
|
129 |
+ |
if(patjet.emEnergyFraction() <= emfMin_) return false; |
130 |
+ |
// cout<<"c"<<endl; |
131 |
+ |
|
132 |
+ |
if(patjet.jetID().n90Hits <= n90hitMin_) return false; |
133 |
+ |
// cout<<"d"<<endl; |
134 |
+ |
|
135 |
+ |
if(doMC_){ |
136 |
+ |
|
137 |
+ |
} |
138 |
+ |
|
139 |
+ |
} |
140 |
+ |
|
141 |
+ |
return true; |
142 |
+ |
|
143 |
+ |
} |
144 |
+ |
|
145 |
+ |
|
146 |
+ |
|
147 |
|
// |
148 |
|
// constants, enums and typedefs |
149 |
|
// |
159 |
|
|
160 |
|
{ |
161 |
|
//now do what ever initialization is needed |
128 |
– |
genJetPtMin_ = 0; |
129 |
– |
|
130 |
– |
usePat_ = false; |
131 |
– |
doMC_ = false; |
162 |
|
|
163 |
< |
jetTag_ = edm::InputTag("selectedPatJets"); |
163 |
> |
ptMin_ = iConfig.getUntrackedParameter<double>("ptMin",0); |
164 |
> |
genPtMin_ = iConfig.getUntrackedParameter<double>("genPtMin",0); |
165 |
> |
emfMin_ = iConfig.getUntrackedParameter<double>("emfMin",0); |
166 |
> |
n90Min_ = iConfig.getUntrackedParameter<double>("n90Min",0); |
167 |
> |
n90hitMin_ = iConfig.getUntrackedParameter<double>("n90hitMin",0); |
168 |
> |
|
169 |
> |
filterJets_ = iConfig.getUntrackedParameter<bool>("filterJets",true); |
170 |
> |
diJetsOnly_ = iConfig.getUntrackedParameter<bool>("diJetsOnly",true); |
171 |
> |
matchDiJets_ = iConfig.getUntrackedParameter<bool>("usePat",true); |
172 |
> |
usePat_ = iConfig.getUntrackedParameter<bool>("usePat",true); |
173 |
> |
doMC_ = iConfig.getUntrackedParameter<bool>("doMC",true); |
174 |
> |
jetTag_ = iConfig.getUntrackedParameter<edm::InputTag>("src",edm::InputTag("selectedPatJets")); |
175 |
|
|
176 |
|
} |
177 |
|
|
196 |
|
using namespace edm; |
197 |
|
|
198 |
|
iEvent.getByLabel(jetTag_,jets); |
199 |
< |
cout<<"a"<<endl; |
199 |
> |
if(usePat_)iEvent.getByLabel(jetTag_,patjets); |
200 |
|
|
201 |
|
jra_.nref = 0; |
202 |
|
for(unsigned int j = 0 ; j < jets->size(); ++j){ |
162 |
– |
cout<<"b"<<endl; |
203 |
|
|
204 |
|
// const pat::Jet& jet = (*jets)[j]; |
205 |
< |
const reco::Jet jet = (*jets)[j]; |
205 |
> |
if(filterJets_ && !selectJet(j)) continue; |
206 |
> |
|
207 |
> |
const reco::Jet& jet = (*jets)[j]; |
208 |
> |
|
209 |
|
jra_.jtpt[jra_.nref] = jet.pt(); |
210 |
|
jra_.jteta[jra_.nref] = jet.eta(); |
211 |
|
jra_.jtphi[jra_.nref] = jet.phi(); |
212 |
< |
cout<<"c"<<endl; |
213 |
< |
|
212 |
> |
jra_.jtcorpt[jra_.nref] = jet.pt(); |
213 |
> |
|
214 |
|
if(usePat_){ |
215 |
< |
const pat::Jet& patjet = (*jets)[j]; |
215 |
> |
const pat::Jet& patjet = (*patjets)[j]; |
216 |
> |
|
217 |
> |
jra_.jtpt[jra_.nref] = patjet.correctedJet("raw").pt(); |
218 |
> |
jra_.jtcorpt[jra_.nref] = patjet.pt(); |
219 |
|
|
220 |
|
if(doMC_ && patjet.genJet() != 0){ |
221 |
< |
// if(jet.genJet()->pt() < genJetPtMin_) continue; |
221 |
> |
if(patjet.genJet()->pt() < genPtMin_) continue; |
222 |
|
jra_.refpt[jra_.nref] = patjet.genJet()->pt(); |
223 |
|
jra_.refeta[jra_.nref] = patjet.genJet()->eta(); |
224 |
|
jra_.refphi[jra_.nref] = patjet.genJet()->phi(); |
249 |
|
t->Branch("hf",&jra_.hf,"hf/F"); |
250 |
|
t->Branch("nref",&jra_.nref,"nref/I"); |
251 |
|
t->Branch("jtpt",jra_.jtpt,"jtpt[nref]/F"); |
252 |
+ |
t->Branch("jtcorpt",jra_.jtcorpt,"jtcorpt[nref]/F"); |
253 |
|
t->Branch("refpt",jra_.refpt,"refpt[nref]/F"); |
254 |
|
t->Branch("jteta",jra_.jteta,"jteta[nref]/F"); |
255 |
|
t->Branch("refeta",jra_.refeta,"refeta[nref]/F"); |