ATLAS Offline Software
VtxR3Analysis.cxx
Go to the documentation of this file.
1 
12 
14 
15 
16 VtxR3Analysis::VtxR3Analysis( const std::string& n ) :
17  VertexAnalysis( n ),
18  m_initialised(false),
19  m_monTool(nullptr),
20  m_hnvtx(nullptr),
21  m_hzed(nullptr),
22  m_hx(nullptr),
23  m_hy(nullptr),
24  m_hntrax(nullptr),
25  m_hnvtx_rec(nullptr),
26  m_hzed_rec(nullptr),
27  m_hx_rec(nullptr),
28  m_hy_rec(nullptr),
29  m_hntrax_rec(nullptr),
30  m_hzed_res(nullptr),
31  m_hx_res(nullptr),
32  m_hy_res(nullptr),
33  m_rdz_vs_zed(nullptr),
34  m_rdz_vs_ntrax(nullptr),
35  m_rdz_vs_nvtx(nullptr),
36  m_eff_zed(nullptr),
37  m_eff_ntrax(nullptr),
38  m_eff_nvtx(nullptr),
39  m_eff_mu(nullptr),
40  m_eff_lb(nullptr)
41 {}
42 
43 
45 
46  m_initialised = true;
47 
48  // std::cout << "VtxAnalysis::initialise() " << name() << std::endl;
49 
50 
51  // mdir = new TIDDirectory(name());
52  // mdir->push();
53 
54 
55 
56  m_hnvtx = new TIDA::Histogram<float>( monTool(), "vx_nvtx" );
57  m_hzed = new TIDA::Histogram<float>( monTool(), "vx_zed" );
58  m_hx = new TIDA::Histogram<float>( monTool(), "vx_x" );
59  m_hy = new TIDA::Histogram<float>( monTool(), "vx_y" );
60  m_hntrax = new TIDA::Histogram<float>( monTool(), "vx_ntrax" );
61 
62 
63  m_hnvtx_rec = new TIDA::Histogram<float>( monTool(), "vx_nvtx_rec" );
64  m_hzed_rec = new TIDA::Histogram<float>( monTool(), "vx_zed_rec" );
65  m_hx_rec = new TIDA::Histogram<float>( monTool(), "vx_x_rec" );
66  m_hy_rec = new TIDA::Histogram<float>( monTool(), "vx_y_rec" );
67  m_hntrax_rec = new TIDA::Histogram<float>( monTool(), "vx_ntrax_rec" );
68 
69  m_hzed_res = new TIDA::Histogram<float>( monTool(), "vx_zed_res" );
70  m_hx_res = new TIDA::Histogram<float>( monTool(), "vx_x_res" );
71  m_hy_res = new TIDA::Histogram<float>( monTool(), "vx_y_res" );
72 
73  m_rdz_vs_zed = new TIDA::Histogram<float>( monTool(), "vx_rdz_vs_zed" );
74  m_rdz_vs_ntrax = new TIDA::Histogram<float>( monTool(), "vx_rdz_vs_ntrax" );
75  m_rdz_vs_nvtx = new TIDA::Histogram<float>( monTool(), "vx_rdz_vs_nvtx" );
76 
77  m_eff_zed = new TIDA::Histogram<float>( monTool(), "vx_zed_eff" );
78  m_eff_ntrax = new TIDA::Histogram<float>( monTool(), "vx_ntrax_eff" );
79  m_eff_nvtx = new TIDA::Histogram<float>( monTool(), "vx_nvtx_eff" );
80  m_eff_mu = new TIDA::Histogram<float>( monTool(), "vx_mu_eff" );
81  m_eff_lb = new TIDA::Histogram<float>( monTool(), "vx_lb_eff" );
82 
84 
85 }
86 
87 
88 void VtxR3Analysis::execute( const std::vector<TIDA::Vertex*>& vtx0,
89  const std::vector<TIDA::Vertex*>& vtx1,
90  const TIDA::Event* tevt ) {
91 
92  // std::cout << "VtxAnalysis::execute() initialised: " << m_initialised << "\tevent: " << tevt << std::endl;
93 
94  if ( !m_initialised ) return;
95 
96  // if ( vtx1.size()<2 ) return;
97 
98 #if 0
99  std::cout << "VtxAnalysis::execute() " << name()
100  << "\tvtx0.size() " << vtx0.size()
101  << "\tvtx1.size() " << vtx1.size()
102  << std::endl;
103 #endif
104 
105 
106  VertexMatcher m("vtx_matcher", 10 );
107 
108  m.match( vtx0, vtx1 );
109 
110  m_hnvtx->Fill( vtx0.size() );
111  m_hnvtx_rec->Fill( vtx1.size() );
112 
113  // for ( unsigned i=0 ; i<vtx0.size() ; i++ ) {
114  for ( unsigned i=0 ; i<vtx0.size() ; i++ ) {
115 
116  if ( i>0 ) break;
117 
118  // std::cout << i << "\tref z " << vtx0[i]->z();
119 
120  m_hzed->Fill( vtx0[i]->z() );
121  m_hx->Fill( vtx0[i]->x() );
122  m_hy->Fill( vtx0[i]->y() );
123 
124 
125  m_hntrax->Fill( vtx0[i]->Ntracks() );
126 
127  const TIDA::Vertex* mv = m.matched( vtx0[i] );
128 
129  if ( mv ) {
130 
131  // std::cout << "\ttest z " << mv->z() << " : delta z " << (mv->z()-vtx0[i]->z()) << std::endl;
132 
135 
136  m_hzed_rec->Fill( mv->z() );
137  m_hx_rec->Fill( mv->x() );
138  m_hy_rec->Fill( mv->y() );
139  m_hntrax_rec->Fill( mv->Ntracks() );
140 
141  m_hzed_res->Fill( mv->z() - vtx0[i]->z() );
142  m_hx_res->Fill( mv->x() - vtx0[i]->x() );
143  m_hy_res->Fill( mv->y() - vtx0[i]->y() );
144 
145  m_rdz_vs_zed->Fill( vtx0[i]->z(), mv->z() - vtx0[i]->z() );
146  m_rdz_vs_ntrax->Fill( vtx0[i]->Ntracks(), mv->z() - vtx0[i]->z() );
147  m_rdz_vs_nvtx->Fill( vtx0.size(), mv->z() - vtx0[i]->z() );
148 
149  m_eff_zed->Fill( vtx0[i]->z(), 1 );
150  m_eff_ntrax->Fill( vtx0[i]->Ntracks(), 1 );
151  m_eff_nvtx->Fill( vtx0.size(), 1 );
152 
153  m_eff_mu->Fill( tevt->mu(), 1 );
154  m_eff_lb->Fill( tevt->lumi_block(), 1 );
155 
156  }
157  else {
158  // std::cout << "\t" << "------" << std::endl;
159 
160  m_eff_zed->Fill( vtx0[i]->z(), 0 );
161 
162  m_eff_ntrax->Fill( vtx0[i]->Ntracks(), 0 );
163  m_eff_nvtx->Fill( vtx0.size(), 0 );
164 
165  m_eff_mu->Fill( tevt->mu(), 0 );
166  m_eff_lb->Fill( tevt->lumi_block(), 0 );
167  }
168 
169  }
170 
171 }
172 
173 
174 
175 
177  // std::cout << "VtxAnalysis::finalise() " << name() << std::endl;
178 }
179 
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
VtxR3Analysis::m_rdz_vs_nvtx
TIDA::Histogram< float > * m_rdz_vs_nvtx
Definition: VtxR3Analysis.h:70
VtxR3Analysis::monTool
ToolHandle< GenericMonitoringTool > * monTool()
Definition: VtxR3Analysis.h:42
TIDA::Vertex::y
double y() const
Definition: TIDAVertex.h:52
TIDA::Event
Definition: TIDAEvent.h:33
TIDA::Event::lumi_block
void lumi_block(unsigned lb)
Definition: TIDAEvent.h:44
x
#define x
VtxR3Analysis::m_hx_res
TIDA::Histogram< float > * m_hx_res
Definition: VtxR3Analysis.h:65
TIDA::Histogram< float >
VtxR3Analysis::m_hzed
TIDA::Histogram< float > * m_hzed
Definition: VtxR3Analysis.h:53
VtxR3Analysis::m_hntrax_rec
TIDA::Histogram< float > * m_hntrax_rec
Definition: VtxR3Analysis.h:62
TIDA::Histogram::Fill
void Fill(T d) const
Definition: TIDAHistogram.h:35
VtxR3Analysis::initialise
void initialise()
Definition: VtxR3Analysis.cxx:44
VtxR3Analysis::m_hy_rec
TIDA::Histogram< float > * m_hy_rec
Definition: VtxR3Analysis.h:61
VtxR3Analysis::execute
void execute(const std::vector< TIDA::Vertex * > &vtx0, const std::vector< TIDA::Vertex * > &vtx1, const TIDA::Event *te=0)
Definition: VtxR3Analysis.cxx:88
VtxR3Analysis::m_rdz_vs_zed
TIDA::Histogram< float > * m_rdz_vs_zed
Definition: VtxR3Analysis.h:68
VtxR3Analysis::m_eff_zed
TIDA::Histogram< float > * m_eff_zed
Definition: VtxR3Analysis.h:75
VtxR3Analysis::m_hzed_res
TIDA::Histogram< float > * m_hzed_res
Definition: VtxR3Analysis.h:64
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
beamspotman.n
n
Definition: beamspotman.py:731
VtxR3Analysis::m_hy
TIDA::Histogram< float > * m_hy
Definition: VtxR3Analysis.h:55
VtxR3Analysis::m_eff_mu
TIDA::Histogram< float > * m_eff_mu
Definition: VtxR3Analysis.h:78
VtxR3Analysis::m_hnvtx
TIDA::Histogram< float > * m_hnvtx
Definition: VtxR3Analysis.h:52
VtxR3Analysis::m_hx_rec
TIDA::Histogram< float > * m_hx_rec
Definition: VtxR3Analysis.h:60
VtxR3Analysis::m_initialised
bool m_initialised
Definition: VtxR3Analysis.h:46
VtxR3Analysis::m_rdz_vs_ntrax
TIDA::Histogram< float > * m_rdz_vs_ntrax
Definition: VtxR3Analysis.h:69
VtxR3Analysis::m_eff_lb
TIDA::Histogram< float > * m_eff_lb
Definition: VtxR3Analysis.h:79
TIDA::Vertex
Definition: TIDAVertex.h:23
VtxR3Analysis::m_hzed_rec
TIDA::Histogram< float > * m_hzed_rec
Definition: VtxR3Analysis.h:59
VtxR3Analysis::finalise
void finalise()
Definition: VtxR3Analysis.cxx:176
VertexAnalysis::name
const std::string & name() const
Definition: VertexAnalysis.h:33
VtxR3Analysis::m_eff_nvtx
TIDA::Histogram< float > * m_eff_nvtx
Definition: VtxR3Analysis.h:77
VtxR3Analysis::m_hy_res
TIDA::Histogram< float > * m_hy_res
Definition: VtxR3Analysis.h:66
TIDA::Vertex::z
double z() const
Definition: TIDAVertex.h:53
TIDA::Event::mu
void mu(double m)
Definition: TIDAEvent.h:47
VtxR3Analysis::m_hntrax
TIDA::Histogram< float > * m_hntrax
Definition: VtxR3Analysis.h:56
TIDA::Vertex::Ntracks
int Ntracks() const
Definition: TIDAVertex.h:62
VtxR3Analysis.h
y
#define y
VtxR3Analysis::m_eff_ntrax
TIDA::Histogram< float > * m_eff_ntrax
Definition: VtxR3Analysis.h:76
VertexAnalysis
Definition: VertexAnalysis.h:25
VertexMatcher.h
VtxR3Analysis::m_hx
TIDA::Histogram< float > * m_hx
Definition: VtxR3Analysis.h:54
VertexMatcher
Definition: VertexMatcher.h:22
VtxR3Analysis::m_hnvtx_rec
TIDA::Histogram< float > * m_hnvtx_rec
Definition: VtxR3Analysis.h:58
VtxR3Analysis::VtxR3Analysis
VtxR3Analysis(const std::string &n)
Definition: VtxR3Analysis.cxx:16
TIDA::Vertex::x
double x() const
Definition: TIDAVertex.h:51