ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigAnalysis
TrigInDetAnalysisExample
src
TrackDistributions.cxx
Go to the documentation of this file.
1
9
10
11
#include "
TrigInDetAnalysis/Track.h
"
12
#include "
TrigInDetAnalysisExample/TrackEfficiency.h
"
13
#include "
TrigInDetAnalysisExample/TrackDistributions.h
"
14
15
// #include "Resplot/Effplot.h"
16
// #include "Resplot/Resplot.h"
17
18
#include <cmath>
19
20
21
void
TrackDistributions::initialise
() {
22
// book the histograms
23
24
m_hchi2
=
new
TH1D(std::string(
name
()+
"-chi2"
).c_str(),
25
std::string(
name
()+
" chi2 distribution"
).c_str(), 100, 0.0, 50.0);
26
m_heta
=
new
TH1D(std::string(
name
()+
"-eta"
).c_str(),
27
std::string(
name
()+
" eta distribution"
).c_str(), 100, -3.0, 3.0);
28
m_hphi
=
new
TH1D(std::string(
name
()+
"-phi"
).c_str(),
29
std::string(
name
()+
" phi distribution"
).c_str(), 100, -3.1416, 3.1416);
30
m_hz0
=
new
TH1D(std::string(
name
()+
"-z0"
).c_str(),
31
std::string(
name
()+
" z0 distribution"
).c_str(), 100, -1000.0, 1000.0);
32
m_hd0
=
new
TH1D(std::string(
name
()+
"-d0"
).c_str(),
33
std::string(
name
()+
" d0 distribution"
).c_str(), 100, -500.0, 500.0);
34
m_hpT
=
new
TH1D(std::string(
name
()+
"-pT"
).c_str(),
35
std::string(
name
()+
" pT distribution"
).c_str(), 100, -100000, 100000);
36
m_hdeta
=
new
TH1D(std::string(
name
()+
"-deta"
).c_str(),
37
std::string(
name
()+
" eta error distribution"
).c_str(), 100, 0, 0.2);
38
m_hdphi
=
new
TH1D(std::string(
name
()+
"-dphi"
).c_str(),
39
std::string(
name
()+
" phi error distribution"
).c_str(), 100, 0, 0.2);
40
m_hdz0
=
new
TH1D(std::string(
name
()+
"-dz0"
).c_str(),
41
std::string(
name
()+
" z0 error distribution"
).c_str(), 100, 0, 1.0);
42
m_hdd0
=
new
TH1D(std::string(
name
()+
"-dd0"
).c_str(),
43
std::string(
name
()+
" d0 error distribution"
).c_str(), 100, 0, 0.5);
44
m_hdpT
=
new
TH1D(std::string(
name
()+
"-dpT"
).c_str(),
45
std::string(
name
()+
" pT error distribution"
).c_str(), 100, 0, 10000);
46
m_hblayer
=
new
TH1D(std::string(
name
()+
"-blayer"
).c_str(),
47
std::string(
name
()+
" blayer distribution"
).c_str(), 10, 0, 10.0);
48
m_hpixel
=
new
TH1D(std::string(
name
()+
"-pixel"
).c_str(),
49
std::string(
name
()+
" pixel distribution"
).c_str(), 10, 0, 10.0);
50
m_hsct
=
new
TH1D(std::string(
name
()+
"-sct"
).c_str(),
51
std::string(
name
()+
" sct distribution"
).c_str(), 10, 0, 10.0);
52
m_hsilicon
=
new
TH1D(std::string(
name
()+
"-silicon"
).c_str(),
53
std::string(
name
()+
" silicon distribution"
).c_str(), 10, 0, 10.0);
54
m_hstraw
=
new
TH1D(std::string(
name
()+
"-straw"
).c_str(),
55
std::string(
name
()+
" straw distribution"
).c_str(), 40, 0, 40.0);
56
m_htr
=
new
TH1D(std::string(
name
()+
"-tr"
).c_str(),
57
std::string(
name
()+
" tr distribution"
).c_str(), 40, 0, 40.0);
58
59
60
}
61
62
63
64
void
TrackDistributions::execute
(
const
std::vector<TIDA::Track*>&
/*reftracks*/
,
65
const
std::vector<TIDA::Track*>& testtracks,
66
TrackAssociator
*
/*matcher*/
)
67
{
68
std::cout <<
"execute() "
<<
name
() << std::endl;
69
70
// for ( int i=0 ; i<reftracks.size() ; i++ ) std::cout << i << " " << *reftracks[i] << " ref" << std::endl;
71
// for ( int i=0 ; i<testtracks.size() ; i++ ) std::cout << i << " " << *testtracks[i] << " tst" << std::endl;
72
73
// for an efficiency, we want at most 1 matching reco track
74
// for each true track
75
// for a purity, we want at most 1 true track for each
76
// reconstructed track
77
// for a resolution we only want to consider matched pairs
78
// of tracks
79
80
// this is just filling the distributions of tracks
81
// with no matching or nothin'
82
83
for
(
unsigned
i=testtracks.size() ; i-- ; ) {
84
85
#if 0
86
std::cout <<
"SUTT pt distribution "
87
<<
"\tpt="
<< reftracks[i]->pT()
88
<<
"\tpTr="
<< testtracks[i]->pT()
89
<<
"\t1/pTt="
<< 1/testpTt
90
<<
"\tDpT="
<< pTt-pTr
91
<<
"\tD1/pT="
<< 1/pTt-1/pTr
92
<< std::endl;
93
#endif
94
95
std::cout <<
"SUTT pt distribution "
<< *testtracks[i] << std::endl;
96
97
m_hchi2
->Fill( testtracks[i]->
chi2
() );
98
99
m_heta
->Fill( testtracks[i]->
eta
() );
100
m_hphi
->Fill( testtracks[i]->
phi
() );
101
102
m_hz0
->Fill( testtracks[i]->z0() );
103
104
m_hd0
->Fill( testtracks[i]->
a0
() );
105
m_hpT
->Fill( testtracks[i]->pT() );
106
107
m_hdeta
->Fill( testtracks[i]->deta() );
108
m_hdphi
->Fill( testtracks[i]->dphi() );
109
110
m_hdz0
->Fill( testtracks[i]->dz0() );
111
m_hdd0
->Fill( testtracks[i]->da0() );
112
m_hdpT
->Fill( testtracks[i]->dpT() );
113
114
m_hblayer
->Fill( testtracks[i]->bLayerHits() );
115
m_hpixel
->Fill( testtracks[i]->pixelHits() );
116
m_hsct
->Fill( testtracks[i]->sctHits() );
117
m_hsilicon
->Fill( testtracks[i]->siHits() );
118
119
m_hstraw
->Fill( testtracks[i]->strawHits() );
120
m_htr
->Fill( testtracks[i]->trHits() );
121
122
123
124
}
125
126
}
127
128
129
130
void
TrackDistributions::finalise
() {
131
// sort out all the histograms and write them out
132
std::cout <<
"SUTT TrackDistributions::finalise() "
<<
name
() << std::endl;
133
134
#if 0
135
gDirectory->pwd();
136
Directory
d(
name
());
137
d.push();
138
139
d.pop();
140
141
#endif
142
}
143
eta
Scalar eta() const
pseudorapidity method
Definition
AmgMatrixBasePlugin.h:83
phi
Scalar phi() const
phi method
Definition
AmgMatrixBasePlugin.h:67
TrackAssociator
TIDA::Associator< TIDA::Track > TrackAssociator
Definition
TrackAssociator.h:26
TrackDistributions.h
TrackEfficiency.h
Track.h
Directory
Definition
Directory.h:29
TrackAnalysis::name
const std::string & name() const
return identifier
Definition
TrackAnalysis.h:52
TrackDistributions::m_hblayer
TH1D * m_hblayer
Definition
TrackDistributions.h:58
TrackDistributions::m_hdd0
TH1D * m_hdd0
Definition
TrackDistributions.h:53
TrackDistributions::m_hpT
TH1D * m_hpT
Definition
TrackDistributions.h:48
TrackDistributions::m_hdeta
TH1D * m_hdeta
Definition
TrackDistributions.h:50
TrackDistributions::m_hz0
TH1D * m_hz0
Definition
TrackDistributions.h:46
TrackDistributions::m_heta
TH1D * m_heta
Definition
TrackDistributions.h:44
TrackDistributions::m_hdz0
TH1D * m_hdz0
Definition
TrackDistributions.h:52
TrackDistributions::execute
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)
Definition
TrackDistributions.cxx:64
TrackDistributions::m_hd0
TH1D * m_hd0
Definition
TrackDistributions.h:47
TrackDistributions::initialise
virtual void initialise()
standard operation interface
Definition
TrackDistributions.cxx:21
TrackDistributions::m_hsilicon
TH1D * m_hsilicon
Definition
TrackDistributions.h:61
TrackDistributions::m_hchi2
TH1D * m_hchi2
Definition
TrackDistributions.h:56
TrackDistributions::finalise
virtual void finalise()
Definition
TrackDistributions.cxx:130
TrackDistributions::m_hdpT
TH1D * m_hdpT
Definition
TrackDistributions.h:54
TrackDistributions::m_htr
TH1D * m_htr
Definition
TrackDistributions.h:63
TrackDistributions::m_hphi
TH1D * m_hphi
Definition
TrackDistributions.h:45
TrackDistributions::m_hsct
TH1D * m_hsct
Definition
TrackDistributions.h:60
TrackDistributions::m_hdphi
TH1D * m_hdphi
Definition
TrackDistributions.h:51
TrackDistributions::m_hpixel
TH1D * m_hpixel
Definition
TrackDistributions.h:59
TrackDistributions::m_hstraw
TH1D * m_hstraw
Definition
TrackDistributions.h:62
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition
comparitor.cxx:525
a0
double a0
Definition
globals.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0