ATLAS Offline Software
Loading...
Searching...
No Matches
TrackDistributions.cxx
Go to the documentation of this file.
1
9
10
14
15// #include "Resplot/Effplot.h"
16// #include "Resplot/Resplot.h"
17
18#include <cmath>
19
20
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
64void 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
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
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
TIDA::Associator< TIDA::Track > TrackAssociator
const std::string & name() const
return identifier
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)
virtual void initialise()
standard operation interface
double chi2(TH1 *h0, TH1 *h1)
double a0
Definition globals.cxx:27