ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/VHbbAnalysis/VHbbDataFormats/src/Histos.cc
Revision: 1.1
Committed: Tue Jul 19 14:18:09 2011 UTC (13 years, 9 months ago) by bortigno
Content type: text/plain
Branch: MAIN
CVS Tags: Jul21st2011, Jul20th2011
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 bortigno 1.1 #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbEvent.h"
2     #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbCandidate.h"
3     #include "VHbbAnalysis/VHbbDataFormats/interface/VHbbProxy.h"
4     #include "VHbbAnalysis/VHbbDataFormats/interface/CutsAndHistos.h"
5     #include <TH1F.h>
6     #include "DataFormats/GeometryVector/interface/VectorUtil.h"
7     #include <sstream>
8     #include "TKey.h"
9    
10     class MCHistos : public Histos {
11    
12     public:
13    
14     virtual void book(TFile &f, std::string suffix) {
15    
16     TDirectory *subDir;
17    
18     if( ! f.GetDirectory(suffix.c_str()) )
19     subDir = f.mkdir(suffix.c_str());
20     else
21     subDir = f.GetDirectory(suffix.c_str());
22    
23     subDir->cd();
24    
25     bin_mass = 500;
26     min_mass = 0;
27     max_mass = 300;
28    
29     bin_pt = 500;
30     min_pt = 0;
31     max_pt = 500;
32    
33     bin_hel = 50;
34     min_hel = 0;
35     max_hel = 1;
36    
37     //from MC
38     McH_simHMass = new TH1F(("simHiggsMass"+suffix).c_str(),("Sim Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
39     McH_simHPt = new TH1F(("simHiggsPt"+suffix).c_str(),("Sim Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
40     McH_simZMass = new TH1F(("simZMass"+suffix).c_str(),("Sim Z Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
41     McH_simZPt = new TH1F(("simZPt"+suffix).c_str(),("Sim Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
42     McH_simWMass = new TH1F(("simWMass"+suffix).c_str(),("Sim W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
43     McH_simWPt = new TH1F(("simWPt"+suffix).c_str(),("Sim W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
44    
45     }
46    
47     virtual void fill(VHbbProxy &iProxy,float w) {
48    
49     const VHbbEvent *iEvent = iProxy.getVHbbEvent();
50     if(iEvent)
51     {
52     //from MC
53     McH_simHMass->Fill(iEvent->mcH.fourMomentum.M(), w);
54     McH_simHPt->Fill(iEvent->mcH.fourMomentum.Pt(), w);
55     McH_simZMass->Fill(iEvent->mcZ.fourMomentum.M(), w);
56     McH_simZPt->Fill(iEvent->mcZ.fourMomentum.Pt(), w);
57     McH_simWMass->Fill(iEvent->mcW.fourMomentum.M(), w);
58     McH_simWPt->Fill(iEvent->mcW.fourMomentum.Pt(), w);
59     }
60     }
61    
62    
63     TH1F * McH_simHMass;
64     TH1F * McH_simHPt;
65     TH1F * McH_simWMass;
66     TH1F * McH_simWPt;
67     TH1F * McH_simZMass;
68     TH1F * McH_simZPt;
69    
70     private:
71    
72     Int_t bin_mass;
73     Double_t min_mass;
74     Double_t max_mass;
75    
76     Int_t bin_pt;
77     Double_t min_pt;
78     Double_t max_pt;
79    
80     Int_t bin_hel;
81     Double_t min_hel;
82     Double_t max_hel;
83    
84    
85     };
86    
87    
88     class BTagHistos : public Histos {
89    
90     public:
91    
92     virtual void book(TFile &f, std::string suffix) {
93    
94     TDirectory *subDir;
95     if( ! f.GetDirectory(suffix.c_str()) )
96     subDir = f.mkdir(suffix.c_str());
97     else
98     subDir = f.GetDirectory(suffix.c_str());
99     subDir->cd();
100    
101     bin_btag_prob = 20;
102     min_btag_prob = 0;
103     max_btag_prob = 1;
104    
105     bin_btag_count = 10;
106     min_btag_count = 0;
107     max_btag_count = 10;
108    
109     //Candidates
110     BTagH_bJet1_csv = new TH1F(("BJet1_CSV"+suffix).c_str(),("BJet1 CSV ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
111     BTagH_bJet2_csv = new TH1F(("BJet2_CSV"+suffix).c_str(),("BJet2 CSV ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
112     BTagH_bJet1_csvmva = new TH1F(("BJet1_CSVMVA"+suffix).c_str(),("BJet1 CSVMVA ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
113     BTagH_bJet2_csvmva = new TH1F(("BJet2_CSVMVA"+suffix).c_str(),("BJet2 CSVMVA ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
114     BTagH_bJet1_ssvhe = new TH1F(("BJet1_SSVHE"+suffix).c_str(),("BJet1 SSVHE ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
115     BTagH_bJet2_ssvhe = new TH1F(("BJet2_SSVHE"+suffix).c_str(),("BJet2 SSVHE ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
116     BTagH_bJet1_jpb = new TH1F(("BJet1_JPB"+suffix).c_str(),("BJet1 JPB ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
117     BTagH_bJet2_jpb = new TH1F(("BJet2_JPB"+suffix).c_str(),("BJet2 JPB ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
118     BTagH_bJet1_tche = new TH1F(("BJet1_TCHE"+suffix).c_str(),("BJet1 TCHE ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count );
119     BTagH_bJet2_tche = new TH1F(("BJet2_TCHE"+suffix).c_str(),("BJet2 TCHE ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count );
120     BTagH_bJet1_jp = new TH1F(("BJet1_JP"+suffix).c_str(),("BJet1 JP ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
121     BTagH_bJet2_jp = new TH1F(("BJet2_JP"+suffix).c_str(),("BJet2 JP ("+suffix+")").c_str(), bin_btag_prob, min_btag_prob, max_btag_prob );
122     BTagH_bJet1_tchp = new TH1F(("BJet1_TCHP"+suffix).c_str(),("BJet1 TCHP ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count );
123     BTagH_bJet2_tchp = new TH1F(("BJet2_TCHP"+suffix).c_str(),("BJet2 TCHP ("+suffix+")").c_str(), bin_btag_count, min_btag_count, max_btag_count );
124    
125     }
126    
127     virtual void fill(VHbbProxy &iProxy,float w) {
128    
129     const VHbbEvent *iEvent = iProxy.getVHbbEvent();
130     const std::vector<VHbbCandidate> *iCand = iProxy.getVHbbCandidate();
131    
132     //Candidates
133     if(iCand->size() > 0){
134     VHbbCandidate::CandidateType iCandType = iCand->at(0).candidateType;
135     VHbbCandidate::HiggsCandidate H = iCand->at(0).H;
136    
137     BTagH_bJet1_csv->Fill(H.jets.at(0).csv, w);
138     BTagH_bJet2_csv->Fill(H.jets.at(1).csv, w);
139     BTagH_bJet1_csvmva->Fill(H.jets.at(0).csvmva, w);
140     BTagH_bJet2_csvmva->Fill(H.jets.at(1).csvmva, w);
141     BTagH_bJet1_ssvhe->Fill(H.jets.at(0).ssvhe, w);
142     BTagH_bJet2_ssvhe->Fill(H.jets.at(1).ssvhe, w);
143     BTagH_bJet1_tche->Fill(H.jets.at(0).tche, w);
144     BTagH_bJet2_tche->Fill(H.jets.at(1).tche, w);
145     BTagH_bJet1_tchp->Fill(H.jets.at(0).tchp, w);
146     BTagH_bJet2_tchp->Fill(H.jets.at(1).tchp, w);
147     BTagH_bJet1_jpb->Fill(H.jets.at(0).jpb, w);
148     BTagH_bJet2_jpb->Fill(H.jets.at(1).jpb, w);
149     BTagH_bJet1_jp->Fill(H.jets.at(0).jp, w);
150     BTagH_bJet2_jp->Fill(H.jets.at(1).jp, w);
151    
152     }
153     }
154    
155     TH1F * BTagH_bJet1_csv;
156     TH1F * BTagH_bJet2_csv;
157     TH1F * BTagH_bJet1_csvmva;
158     TH1F * BTagH_bJet2_csvmva;
159     TH1F * BTagH_bJet1_ssvhe;
160     TH1F * BTagH_bJet2_ssvhe;
161     TH1F * BTagH_bJet1_jpb;
162     TH1F * BTagH_bJet2_jpb;
163     TH1F * BTagH_bJet1_tche;
164     TH1F * BTagH_bJet2_tche;
165     TH1F * BTagH_bJet1_jp;
166     TH1F * BTagH_bJet2_jp;
167     TH1F * BTagH_bJet1_tchp;
168     TH1F * BTagH_bJet2_tchp;
169    
170     private:
171    
172     Int_t bin_btag_prob;
173     Double_t min_btag_prob;
174     Double_t max_btag_prob;
175    
176     Int_t bin_btag_count;
177     Double_t min_btag_count;
178     Double_t max_btag_count;
179    
180     };
181    
182     class StandardHistos : public Histos {
183    
184     public:
185    
186     virtual void book(TFile &f, std::string suffix) {
187    
188     TDirectory *subDir;
189     if( ! f.GetDirectory(suffix.c_str()) )
190     subDir = f.mkdir(suffix.c_str());
191     else
192     subDir = f.GetDirectory(suffix.c_str());
193     subDir->cd();
194    
195     bin_mass = 500;
196     min_mass = 0;
197     max_mass = 300;
198    
199     bin_pt = 500;
200     min_pt = 0;
201     max_pt = 500;
202    
203     bin_hel = 50;
204     min_hel = 0;
205     max_hel = 1;
206    
207     bin_btag = 20;
208     min_btag = 0;
209     max_btag = 1;
210    
211     bin_deltaR = bin_deltaPhi = bin_deltaEta = 20;
212     min_deltaR = min_deltaPhi = min_deltaEta = 0;
213     max_deltaR = max_deltaPhi = max_deltaEta = 5;
214    
215     //Candidates
216     StH_simpleJet1_pt = new TH1F(("SimpleJet1_pt"+suffix).c_str(),("Simple Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
217     StH_simpleJet2_pt = new TH1F(("SimpleJet2_pt"+suffix).c_str(),("Simple Jet2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
218     StH_simpleJet1_bTag = new TH1F(("SimpleJet1_bTag"+suffix).c_str(),("Simple Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
219     StH_simpleJet2_bTag = new TH1F(("SimpleJet2_bTag"+suffix).c_str(),("Simple Jet2 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
220     StH_simpleJets_dR = new TH1F(("SimpleJets_dR"+suffix).c_str(),("Simple Jets deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
221     StH_simpleJets_dPhi = new TH1F(("SimpleJets_dPhi"+suffix).c_str(),("Simple Jets deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
222     StH_simpleJets_dEta = new TH1F(("SimpleJets_dEta"+suffix).c_str(),("Simple Jets deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
223    
224     StH_HMass = new TH1F(("HiggsMass"+suffix).c_str(),(" Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
225     StH_HPt = new TH1F(("HiggsPt"+suffix).c_str(),(" Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
226     StH_HHel = new TH1F(("HiggsHel"+suffix).c_str(),("Higgs helicity angle ("+suffix+")").c_str(), bin_hel, min_hel, max_hel );
227     StH_HPullAngle = new TH1F(("HiggsPullAngle"+suffix).c_str(),("Higgs pull angle ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
228    
229     StH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
230     StH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
231     StH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix).c_str(),(" ZH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
232    
233     StH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
234     StH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
235     StH_WH_dPhi = new TH1F(("WH_dPhi"+suffix).c_str(),(" WH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
236    
237     }
238    
239     virtual void fill(VHbbProxy &iProxy,float w) {
240    
241     const VHbbEvent *iEvent = iProxy.getVHbbEvent();
242     const std::vector<VHbbCandidate> *iCand = iProxy.getVHbbCandidate();
243    
244     //Candidates
245     if(iCand->size() > 0){
246     VHbbCandidate::CandidateType iCandType = iCand->at(0).candidateType;
247     VHbbCandidate::HiggsCandidate H = iCand->at(0).H;
248     VHbbCandidate::VectorCandidate V = iCand->at(0).V;
249    
250     StH_simpleJet1_pt->Fill(H.jets.at(0).fourMomentum.Pt(), w);
251     StH_simpleJet2_pt->Fill(H.jets.at(1).fourMomentum.Pt(), w);
252     StH_simpleJet1_bTag->Fill(H.jets.at(0).csv, w);
253     StH_simpleJet2_bTag->Fill(H.jets.at(1).csv, w);
254     StH_simpleJets_dR->Fill(H.jets.at(0).fourMomentum.DeltaR(H.jets.at(1).fourMomentum), w);
255     StH_simpleJets_dPhi->Fill(H.jets.at(0).fourMomentum.DeltaPhi(H.jets.at(1).fourMomentum), w);
256     StH_simpleJets_dEta->Fill(TMath::Abs(H.jets.at(0).fourMomentum.Eta()-H.jets.at(1).fourMomentum.Eta()), w);
257    
258     StH_HMass->Fill(H.fourMomentum.M(), w);
259     StH_HPt->Fill(H.fourMomentum.Pt(), w);
260     // StH_HHel->Fill(H.hel(), w);
261     StH_HPullAngle->Fill(H.deltaTheta, w);
262     if( iCandType == VHbbCandidate::Zmumu || iCandType == VHbbCandidate::Zee || iCandType == VHbbCandidate::Znn ){
263     StH_ZMass->Fill(V.fourMomentum.M(), w);
264     StH_ZPt->Fill(V.fourMomentum.Pt(), w);
265     StH_ZH_dPhi->Fill(V.fourMomentum.DeltaPhi(H.fourMomentum.Phi()), w);
266     }
267     else if(iCandType == VHbbCandidate::Wen || iCandType == VHbbCandidate::Wmun){
268     StH_WMass->Fill(V.fourMomentum.M(), w);
269     StH_WPt->Fill(V.fourMomentum.Pt(), w);
270     StH_WH_dPhi->Fill(V.fourMomentum.DeltaPhi(H.fourMomentum.Phi()), w);
271     }
272    
273     }
274     }
275    
276     TH1F * StH_simpleJet1_pt;
277     TH1F * StH_simpleJet2_pt;
278     TH1F * StH_simpleJet1_bTag;
279     TH1F * StH_simpleJet2_bTag;
280     TH1F * StH_simpleJets_dR;
281     TH1F * StH_simpleJets_dPhi;
282     TH1F * StH_simpleJets_dEta;
283    
284     TH1F * StH_HMass;
285     TH1F * StH_HPt;
286     TH1F * StH_HHel;
287     TH1F * StH_HPullAngle;
288     TH1F * StH_WMass;
289     TH1F * StH_WPt;
290     TH1F * StH_WH_dPhi;
291     TH1F * StH_ZMass;
292     TH1F * StH_ZPt;
293     TH1F * StH_ZH_dPhi;
294    
295     private:
296    
297     Int_t bin_btag;
298     Double_t min_btag;
299     Double_t max_btag;
300    
301     Int_t bin_deltaEta;
302     Double_t min_deltaEta;
303     Double_t max_deltaEta;
304    
305     Int_t bin_deltaPhi;
306     Double_t min_deltaPhi;
307     Double_t max_deltaPhi;
308    
309     Int_t bin_deltaR;
310     Double_t min_deltaR;
311     Double_t max_deltaR;
312    
313     Int_t bin_mass;
314     Double_t min_mass;
315     Double_t max_mass;
316    
317     Int_t bin_pt;
318     Double_t min_pt;
319     Double_t max_pt;
320    
321     Int_t bin_hel;
322     Double_t min_hel;
323     Double_t max_hel;
324    
325     };
326    
327     class HardJetHistos : public Histos {
328    
329     public:
330    
331     virtual void book(TFile &f, std::string suffix) {
332    
333     TDirectory *subDir;
334     if( ! f.GetDirectory(suffix.c_str()) )
335     subDir = f.mkdir(suffix.c_str());
336     else
337     subDir = f.GetDirectory(suffix.c_str());
338     subDir->cd();
339    
340     bin_mass = 500;
341     min_mass = 0;
342     max_mass = 300;
343    
344     bin_pt = 500;
345     min_pt = 0;
346     max_pt = 500;
347    
348     bin_hel = 50;
349     min_hel = 0;
350     max_hel = 1;
351    
352     bin_btag = 20;
353     min_btag = 0;
354     max_btag = 1;
355    
356     bin_deltaR = bin_deltaPhi = bin_deltaEta = 20;
357     min_deltaR = min_deltaPhi = min_deltaEta = 0;
358     max_deltaR = max_deltaPhi = max_deltaEta = 5;
359    
360     //Candidates
361    
362     HardJetH_subJet1_pt = new TH1F(("SubJet1_pt"+suffix).c_str(),("Sub Jet1 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
363     HardJetH_subJet2_pt = new TH1F(("SubJet2_pt"+suffix).c_str(),("Sub Jet2 pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
364     HardJetH_subJet1_bTag = new TH1F(("SubJet1_bTag"+suffix).c_str(),("Sub Jet1 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
365     HardJetH_subJet2_bTag = new TH1F(("SubJet2_bTag"+suffix).c_str(),("Sub Jet2 bTag ("+suffix+")").c_str(), bin_btag, min_btag, max_btag );
366     HardJetH_subJets_dR = new TH1F(("SubJets_dR"+suffix).c_str(),("Sub Jets deltaR ("+suffix+")").c_str(), bin_deltaR, min_deltaR, max_deltaR );
367     HardJetH_subJets_dPhi = new TH1F(("SubJets_dPhi"+suffix).c_str(),("Sub Jets deltaPhi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
368     HardJetH_subJets_dEta = new TH1F(("SubJets_dEta"+suffix).c_str(),("Sub Jets deltaEta ("+suffix+")").c_str(), bin_deltaEta, min_deltaEta, max_deltaEta );
369    
370     HardJetH_HMass = new TH1F(("HiggsMass"+suffix).c_str(),(" Higgs Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
371     HardJetH_HPt = new TH1F(("HiggsPt"+suffix).c_str(),(" Higgs Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
372     HardJetH_HHel = new TH1F(("HiggsHel"+suffix).c_str(),("Higgs helicity angle ("+suffix+")").c_str(), bin_hel, min_hel, max_hel );
373    
374     HardJetH_ZMass = new TH1F(("ZMass"+suffix).c_str(),(" Z Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
375     HardJetH_ZPt = new TH1F(("ZPt"+suffix).c_str(),(" Z Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
376     HardJetH_ZH_dPhi = new TH1F(("ZH_dPhi"+suffix).c_str(),(" ZH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
377    
378     HardJetH_WMass = new TH1F(("WMass"+suffix).c_str(),(" W Mass ("+suffix+")").c_str(), bin_mass, min_mass, max_mass );
379     HardJetH_WPt = new TH1F(("WPt"+suffix).c_str(),(" W Pt ("+suffix+")").c_str(), bin_pt, min_pt, max_pt );
380     HardJetH_WH_dPhi = new TH1F(("WH_dPhi"+suffix).c_str(),(" WH delta Phi ("+suffix+")").c_str(), bin_deltaPhi, min_deltaPhi, max_deltaPhi );
381    
382     }
383    
384     virtual void fill(VHbbProxy &iProxy,float w) {
385    
386     const VHbbEvent *iEvent = iProxy.getVHbbEvent();
387     if(iEvent)
388     { const std::vector<VHbbCandidate> *iCand = iProxy.getVHbbCandidate();
389    
390     //Candidates
391     if(iCand->size() > 0){
392     VHbbCandidate::CandidateType iCandType = iCand->at(0).candidateType;
393     VHbbCandidate::HiggsCandidate H = iCand->at(0).H;
394     VHbbCandidate::VectorCandidate V = iCand->at(0).V;
395     std::vector<VHbbEvent::HardJet> iHardJets = iEvent->hardJets;
396     VHbbEvent::HardJet iHardJet = iHardJets.at(0);
397    
398     HardJetH_subJet1_pt->Fill(iHardJet.subFourMomentum.at(0).Pt(), w);
399     HardJetH_subJet2_pt->Fill(iHardJet.subFourMomentum.at(1).Pt(), w);
400     //SubJet information on btag missing
401     // HardJetH_subJet1_bTag->Fill(iHardJet.at(0).csv, w);
402     // HardJetH_subJet2_bTag->Fill(iHardJet.at(1).csv, w);
403     HardJetH_subJets_dR->Fill(iHardJet.subFourMomentum.at(0).DeltaR(iHardJet.subFourMomentum.at(1)), w);
404     HardJetH_subJets_dPhi->Fill(iHardJet.subFourMomentum.at(0).DeltaPhi(iHardJet.subFourMomentum.at(1)), w);
405     HardJetH_subJets_dEta->Fill(TMath::Abs(iHardJet.subFourMomentum.at(0).Eta()-iHardJet.subFourMomentum.at(1).Eta()), w);
406    
407     //Here there should be the higgs candidate from HardJet
408     // HardJetH_HMass->Fill(H.fourMomentum.M(), w);
409     // HardJetH_HPt->Fill(H.fourMomentum.Pt(), w);
410     // // HardJetH_HHel->Fill(H.hel(), w);
411     // if( iCandType == VHbbCandidate::Zmumu || iCandType == VHbbCandidate::Zee || iCandType == VHbbCandidate::Znn ){
412     // HardJetH_ZMass->Fill(V.fourMomentum.M(), w);
413     // HardJetH_ZPt->Fill(V.fourMomentum.Pt(), w);
414     // HardJetH_ZH_dPhi->Fill(V.fourMomentum.DeltaPhi(H.fourMomentum.Phi()), w);
415     // }
416     // else if(iCandType == VHbbCandidate::Wen || iCandType == VHbbCandidate::Wmun){
417     // HardJetH_WMass->Fill(V.fourMomentum.M(), w);
418     // HardJetH_WPt->Fill(V.fourMomentum.Pt(), w);
419     // HardJetH_WH_dPhi->Fill(V.fourMomentum.DeltaPhi(H.fourMomentum.Phi()), w);
420     // }
421     }
422     }
423     }
424    
425     TH1F * HardJetH_subJet1_pt;
426     TH1F * HardJetH_subJet2_pt;
427     TH1F * HardJetH_subJet1_bTag;
428     TH1F * HardJetH_subJet2_bTag;
429     TH1F * HardJetH_subJets_dR;
430     TH1F * HardJetH_subJets_dPhi;
431     TH1F * HardJetH_subJets_dEta;
432    
433     TH1F * HardJetH_HMass;
434     TH1F * HardJetH_HPt;
435     TH1F * HardJetH_HHel;
436     TH1F * HardJetH_WMass;
437     TH1F * HardJetH_WPt;
438     TH1F * HardJetH_WH_dPhi;
439     TH1F * HardJetH_ZMass;
440     TH1F * HardJetH_ZPt;
441     TH1F * HardJetH_ZH_dPhi;
442    
443     private:
444    
445     Int_t bin_btag;
446     Double_t min_btag;
447     Double_t max_btag;
448    
449     Int_t bin_deltaEta;
450     Double_t min_deltaEta;
451     Double_t max_deltaEta;
452    
453     Int_t bin_deltaPhi;
454     Double_t min_deltaPhi;
455     Double_t max_deltaPhi;
456    
457     Int_t bin_deltaR;
458     Double_t min_deltaR;
459     Double_t max_deltaR;
460    
461     Int_t bin_mass;
462     Double_t min_mass;
463     Double_t max_mass;
464    
465     Int_t bin_pt;
466     Double_t min_pt;
467     Double_t max_pt;
468    
469     Int_t bin_hel;
470     Double_t min_hel;
471     Double_t max_hel;
472    
473     };