19 |
|
p_deltaRmuons = aDir.make<TH1F>("p_deltaRmuons",";#Delta R(muons);N_{entries}",225,-1,8); |
20 |
|
p_deltaRtaus = aDir.make<TH1F>("p_deltaRtaus",";#Delta R(taus);N_{entries}",225,-1,8); |
21 |
|
//p_deltaRpftaus = aDir.make<TH1F>("p_deltaRpftaus",";#Delta R(pftaus);N_{entries}",225,-1,8); |
22 |
+ |
p_deltaRleadJet = aDir.make<TH1F>("p_deltaRleadJet",";#Delta R(leadJet);N_{entries}",225,-1,8); |
23 |
+ |
p_deltaRntoleadJet = aDir.make<TH1F>("p_deltaRntoleadJet",";#Delta R(ntoleadJet);N_{entries}",225,-1,8); |
24 |
|
|
25 |
|
|
26 |
< |
|
25 |
< |
p_partonFlavour = aDir.make<TH1F>("p_partonFlavour",";parton flavour;N_{entries}",30,0,30); |
26 |
> |
p_partonFlavour = aDir.make<TH1F>("p_partonFlavour",";parton flavour;N_{entries}",50,-25,25); |
27 |
|
p_hasJetCorrFactors = aDir.make<TH1F>("p_hasJetCorrFactors",";hasJetCorFactors;N_{entries}",2,0,2); |
28 |
|
|
29 |
|
std::vector<std::string> btagAlgos; |
33 |
|
btagAlgos.push_back("jetBProbabilityBJetTags"); |
34 |
|
btagAlgos.push_back("jetProbabilityBJetTags"); |
35 |
|
btagAlgos.push_back("simpleSecondaryVertexBJetTags"); |
36 |
< |
btagAlgos.push_back("softElectronBJetTags"); |
36 |
> |
btagAlgos.push_back("softElectronByPtBJetTags"); |
37 |
> |
btagAlgos.push_back("softElectronByIP3dBJetTags"); |
38 |
|
btagAlgos.push_back("softMuonBJetTags"); |
39 |
< |
btagAlgos.push_back("softMuonNoIPBJetTags"); |
39 |
> |
btagAlgos.push_back("softMuonByPtBJetTags"); |
40 |
> |
btagAlgos.push_back("softMuonByIP3dBJetTags"); |
41 |
|
btagAlgos.push_back("trackCountingHighEffBJetTags"); |
42 |
|
btagAlgos.push_back("trackCountingHighPurBJetTags"); |
43 |
|
|
44 |
|
const unsigned int nTags = btagAlgos.size(); |
45 |
< |
assert (nTags == 11); |
45 |
> |
assert (nTags == 13); |
46 |
|
//double min[11] = {0,0,-0.1,0,0,1,0,0,0,-5,-5}; |
47 |
|
//double max[11] = {1,1,1,6,2,5,1,1,1,20,20}; |
48 |
|
|
146 |
|
} |
147 |
|
|
148 |
|
void HistosJetsBase::FillEventHistograms(const std::vector<HbbAnalysis::Jet> & abJetCol, |
149 |
< |
const std::vector<HbbAnalysis::Jet> & anonbJetCol) |
149 |
> |
const std::vector<HbbAnalysis::Jet> & anonbJetCol, |
150 |
> |
bool genMatched) |
151 |
|
{ |
152 |
|
|
153 |
|
p_nJets->Fill(abJetCol.size()+anonbJetCol.size()); |
154 |
< |
p_nbJets->Fill(abJetCol.size()); |
154 |
> |
|
155 |
> |
unsigned int nbjets = 0; |
156 |
> |
for (std::vector<HbbAnalysis::Jet>::const_iterator iJet = abJetCol.begin(); |
157 |
> |
iJet != abJetCol.end(); |
158 |
> |
iJet++) |
159 |
> |
{ |
160 |
> |
if (genMatched){ |
161 |
> |
if (abs((*iJet).commonVars().partonFlavour) == 5) { |
162 |
> |
nbjets++; |
163 |
> |
} |
164 |
> |
} |
165 |
> |
// else { |
166 |
> |
// const HbbAnalysis::BaseVars v1 = (*iJet).recoVars(); |
167 |
> |
// bool isBad = false; |
168 |
> |
// //loop from the beginning, mark lowest btag discri jet as bad |
169 |
> |
// for (std::vector<HbbAnalysis::Jet>::const_iterator iSec = abJetCol.begin(); |
170 |
> |
// iSec != abJetCol.end(); iSec++){//loop on second jet |
171 |
> |
// if (iSec != iJet) { |
172 |
> |
// const HbbAnalysis::BaseVars v2 = (*iSec).recoVars(); |
173 |
> |
// if (HbbAnalysis::DeltaR(v1,v2) < 0.7){ |
174 |
> |
// if ((*iJet).btagVars().tCHP < (*iSec).btagVars().tCHP) isBad = true; |
175 |
> |
// } |
176 |
> |
// } |
177 |
> |
// } |
178 |
> |
// if (!isBad) nbjets++; |
179 |
> |
// } |
180 |
> |
} |
181 |
> |
if (genMatched) p_nbJets->Fill(nbjets); |
182 |
> |
else p_nbJets->Fill(abJetCol.size()); |
183 |
> |
|
184 |
|
} |
185 |
|
|
186 |
|
|
196 |
|
//p_deltaRpftaus->Fill(deltaRpftau); |
197 |
|
} |
198 |
|
|
199 |
+ |
void HistosJetsBase::FillHistograms(const HbbAnalysis::Jet & aJet, |
200 |
+ |
const HbbAnalysis::Jet & aLeadJet, |
201 |
+ |
const HbbAnalysis::Jet & aNtoLeadJet |
202 |
+ |
){ |
203 |
+ |
const HbbAnalysis::BaseVars v1 = aJet.recoVars(); |
204 |
+ |
const HbbAnalysis::BaseVars vL = aLeadJet.recoVars(); |
205 |
+ |
const HbbAnalysis::BaseVars vNtoL = aNtoLeadJet.recoVars(); |
206 |
+ |
|
207 |
+ |
p_deltaRleadJet->Fill(HbbAnalysis::DeltaR(v1,vL)); |
208 |
+ |
p_deltaRntoleadJet->Fill(HbbAnalysis::DeltaR(v1,vNtoL)); |
209 |
+ |
} |
210 |
|
|
211 |
|
void HistosJetsBase::FillHistograms(const HbbAnalysis::Jet & aJet){//FillHistograms |
212 |
|
|
232 |
|
if (isMatched) p_bDiscriminator[4][lFlav]->Fill(aJet.btagVars().probability); |
233 |
|
p_bDiscriminator[5][0]->Fill(aJet.btagVars().sSV); |
234 |
|
if (isMatched) p_bDiscriminator[5][lFlav]->Fill(aJet.btagVars().sSV); |
235 |
< |
p_bDiscriminator[6][0]->Fill(aJet.btagVars().softElectron); |
236 |
< |
if (isMatched) p_bDiscriminator[6][lFlav]->Fill(aJet.btagVars().softElectron); |
237 |
< |
p_bDiscriminator[7][0]->Fill(aJet.btagVars().softMuon); |
238 |
< |
if (isMatched) p_bDiscriminator[7][lFlav]->Fill(aJet.btagVars().softMuon); |
239 |
< |
p_bDiscriminator[8][0]->Fill(aJet.btagVars().softMuonNoIP); |
240 |
< |
if (isMatched) p_bDiscriminator[8][lFlav]->Fill(aJet.btagVars().softMuonNoIP); |
241 |
< |
p_bDiscriminator[9][0]->Fill(aJet.btagVars().tCHE); |
242 |
< |
if (isMatched) p_bDiscriminator[9][lFlav]->Fill(aJet.btagVars().tCHE); |
243 |
< |
p_bDiscriminator[10][0]->Fill(aJet.btagVars().tCHP); |
244 |
< |
if (isMatched) p_bDiscriminator[10][lFlav]->Fill(aJet.btagVars().tCHP); |
235 |
> |
p_bDiscriminator[6][0]->Fill(aJet.btagVars().softElectronByPt); |
236 |
> |
if (isMatched) p_bDiscriminator[6][lFlav]->Fill(aJet.btagVars().softElectronByPt); |
237 |
> |
p_bDiscriminator[7][0]->Fill(aJet.btagVars().softElectronByIP3d); |
238 |
> |
if (isMatched) p_bDiscriminator[7][lFlav]->Fill(aJet.btagVars().softElectronByIP3d); |
239 |
> |
p_bDiscriminator[8][0]->Fill(aJet.btagVars().softMuon); |
240 |
> |
if (isMatched) p_bDiscriminator[8][lFlav]->Fill(aJet.btagVars().softMuon); |
241 |
> |
p_bDiscriminator[9][0]->Fill(aJet.btagVars().softMuonByPt); |
242 |
> |
if (isMatched) p_bDiscriminator[9][lFlav]->Fill(aJet.btagVars().softMuonByPt); |
243 |
> |
p_bDiscriminator[10][0]->Fill(aJet.btagVars().softMuonByIP3d); |
244 |
> |
if (isMatched) p_bDiscriminator[10][lFlav]->Fill(aJet.btagVars().softMuonByIP3d); |
245 |
> |
p_bDiscriminator[11][0]->Fill(aJet.btagVars().tCHE); |
246 |
> |
if (isMatched) p_bDiscriminator[11][lFlav]->Fill(aJet.btagVars().tCHE); |
247 |
> |
p_bDiscriminator[12][0]->Fill(aJet.btagVars().tCHP); |
248 |
> |
if (isMatched) p_bDiscriminator[12][lFlav]->Fill(aJet.btagVars().tCHP); |
249 |
|
|
250 |
|
if (aJet.genJetVars().valid){ |
251 |
|
p_pTgenjet[0]->Fill(aJet.genJetVars().pT); |