1 |
amagnan |
1.1 |
#include "UserCode/HbbAnalysis/interface/HistosVertexBase.hh"
|
2 |
|
|
|
3 |
|
|
namespace HbbAnalysis {//namespace
|
4 |
|
|
|
5 |
|
|
void HistosVertexBase::Initialise(TFileDirectory & aDir, std::string aName, bool aDoGenMatched)
|
6 |
|
|
{
|
7 |
|
|
p_nVertices = aDir.make<TH1F>("p_nVertices",";n_{vertex};N_{entries}",10,0,10);
|
8 |
|
|
p_trackWeights = aDir.make<TH1F>("p_trackWeights",";track weights;N_{entries}",100,0,1);
|
9 |
|
|
p_nGoodTracks = aDir.make<TH1F>("p_nGoodTracks",";n_{trks}(weight>0.5);N_{entries}",20,0,20);
|
10 |
|
|
p_chi2 = aDir.make<TH1F>("p_chi2",";#chi^{2};N_{entries}",300,0,150);
|
11 |
|
|
p_ndof = aDir.make<TH1F>("p_ndof",";n_{dof};N_{entries}",200,0,200);
|
12 |
|
|
p_x = aDir.make<TH1F>("p_x",";x (cm);N_{entries}",200,-0.4,0.4);
|
13 |
|
|
p_y = aDir.make<TH1F>("p_y",";y (cm);N_{entries}",200,-0.4,0.4);
|
14 |
|
|
p_z = aDir.make<TH1F>("p_z",";z (cm);N_{entries}",200,-40,40);
|
15 |
|
|
p_xError = aDir.make<TH1F>("p_xError",";#sigma_{x} (cm);N_{entries}",200,0,0.08);
|
16 |
|
|
p_yError = aDir.make<TH1F>("p_yError",";#sigma_{y} (cm);N_{entries}",200,0,0.08);
|
17 |
|
|
p_zError = aDir.make<TH1F>("p_zError",";#sigma_{z} (cm);N_{entries}",300,0,15);
|
18 |
|
|
p_xSig = aDir.make<TH1F>("p_xSig",";x/#sigma_{x};N_{entries}",200,0,20);
|
19 |
|
|
p_ySig = aDir.make<TH1F>("p_ySig",";y/#sigma_{y};N_{entries}",200,0,20);
|
20 |
|
|
p_zSig = aDir.make<TH1F>("p_zSig",";z/#sigma_{z};N_{entries}",200,0,20);
|
21 |
|
|
p_cov01 = aDir.make<TH1F>("p_cov01",";cov_{xy};N_{entries}",100,-0.001,0.001);
|
22 |
|
|
p_cov02 = aDir.make<TH1F>("p_cov02",";cov_{xz};N_{entries}",400,-0.2,0.2);
|
23 |
|
|
p_cov12 = aDir.make<TH1F>("p_cov12",";cov_{yz};N_{entries}",400,-0.2,0.2);
|
24 |
|
|
|
25 |
|
|
}
|
26 |
|
|
|
27 |
|
|
void HistosVertexBase::FillEventHistograms(const std::vector<HbbAnalysis::Vertex> & aCol)
|
28 |
|
|
{
|
29 |
|
|
p_nVertices->Fill(aCol.size());
|
30 |
|
|
}
|
31 |
|
|
|
32 |
|
|
void HistosVertexBase::FillHistograms(const HbbAnalysis::Vertex & aVtx, bool isLead)
|
33 |
|
|
{
|
34 |
|
|
unsigned nGoodTrks = 0;
|
35 |
|
|
|
36 |
|
|
HbbAnalysis::VertexVars lVars = aVtx.vtxVars();
|
37 |
|
|
|
38 |
|
|
for (unsigned int iTr(0); iTr<lVars.trackWeights.size(); iTr++){
|
39 |
|
|
p_trackWeights->Fill(lVars.trackWeights.at(iTr));
|
40 |
|
|
if (lVars.trackWeights.at(iTr) > 0.5) nGoodTrks++;
|
41 |
|
|
}
|
42 |
|
|
p_nGoodTracks->Fill(nGoodTrks);
|
43 |
|
|
p_chi2->Fill(lVars.chi2);
|
44 |
|
|
p_ndof->Fill(lVars.ndof);
|
45 |
|
|
p_x->Fill(lVars.x);
|
46 |
|
|
p_y->Fill(lVars.y);
|
47 |
|
|
p_z->Fill(lVars.z);
|
48 |
|
|
p_xError->Fill(lVars.xError);
|
49 |
|
|
p_yError->Fill(lVars.yError);
|
50 |
|
|
p_zError->Fill(lVars.zError);
|
51 |
|
|
if (lVars.xError != 0) p_xSig->Fill(lVars.x/lVars.xError);
|
52 |
|
|
if (lVars.yError != 0) p_ySig->Fill(lVars.y/lVars.yError);
|
53 |
|
|
if (lVars.zError != 0) p_zSig->Fill(lVars.z/lVars.zError);
|
54 |
|
|
p_cov01->Fill(lVars.cov01);
|
55 |
|
|
p_cov02->Fill(lVars.cov02);
|
56 |
|
|
p_cov12->Fill(lVars.cov12);
|
57 |
|
|
|
58 |
|
|
}
|
59 |
|
|
|
60 |
|
|
|
61 |
|
|
}//namespace
|
62 |
|
|
|