ATLAS Offline Software
Loading...
Searching...
No Matches
TrackEfficiency Class Reference

#include <TrackEfficiency.h>

Inheritance diagram for TrackEfficiency:
Collaboration diagram for TrackEfficiency:

Public Member Functions

 TrackEfficiency (const std::string &name)
virtual void initialise ()
 standard operation interface
virtual void execute (const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)
virtual void finalise ()
virtual void execute (const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, TrigObjectMatcher *)
virtual void execute (const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *)
virtual void execute (const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, const TIDA::Event *event, double *)
virtual void execute (const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *, double *, TIDARoiDescriptor *)
const std::string & name () const
 return identifier
virtual void execute_vtx (const std::vector< TIDA::Vertex * > &, const std::vector< TIDA::Vertex * > &, const TIDA::Event *=0)
void addHistogram (TH1 *h)
const std::map< std::string, TH1 * > & getHistograms () const
 access the histograms
std::map< std::string, TH1 * >::const_iterator begin () const
std::map< std::string, TH1 * >::const_iterator end () const
void setBeamRef (double x, double y, double z=0)
 set the beamline positions
void setBeamRef (const std::vector< double > &v)
void setBeamTest (double x, double y, double z=0)
void setBeamTest (const std::vector< double > &v)
double beamRefx () const
double beamRefy () const
double beamRefz () const
double beamTestx () const
double beamTesty () const
double beamTestz () const
TIDA::FeatureStorestore ()
const TIDA::Eventevent () const
void setevent (TIDA::Event *e)
const TIDARoiDescriptorroi () const
void setroi (TIDARoiDescriptor *r)

Protected Attributes

std::string m_name
 identifier of the of the analysis - also used for the root directory into which the histograms are put
std::map< std::string, TH1 * > m_histos
 lookup table for the histograms by name - does this need to be in the base class?
double m_xBeamReference
 beamline positions reference sample
double m_yBeamReference
double m_zBeamReference
double m_xBeamTest
 test sample
double m_yBeamTest
double m_zBeamTest
TIDA::FeatureStore m_store
TIDA::Eventm_event
TIDARoiDescriptorm_roi

Detailed Description

Definition at line 25 of file TrackEfficiency.h.

Constructor & Destructor Documentation

◆ TrackEfficiency()

TrackEfficiency::TrackEfficiency ( const std::string & name)
inline

Definition at line 33 of file TrackEfficiency.h.

33 :
35 { }
const std::string & name() const
return identifier
TrackAnalysis(const std::string &name)
the beam test parts are not really usable in a multithreaded environment

Member Function Documentation

◆ addHistogram()

void TrackAnalysis::addHistogram ( TH1 * h)
inlineinherited

Definition at line 97 of file TrackAnalysis.h.

97 {
98 std::string name = h->GetName();
99 m_histos.insert( std::map<std::string, TH1*>::value_type( name, h) );
100 }
std::map< std::string, TH1 * > m_histos
lookup table for the histograms by name - does this need to be in the base class?

◆ beamRefx()

double TrackAnalysis::beamRefx ( ) const
inlineinherited

Definition at line 124 of file TrackAnalysis.h.

124{ return m_xBeamReference; }
double m_xBeamReference
beamline positions reference sample

◆ beamRefy()

double TrackAnalysis::beamRefy ( ) const
inlineinherited

Definition at line 125 of file TrackAnalysis.h.

125{ return m_yBeamReference; }
double m_yBeamReference

◆ beamRefz()

double TrackAnalysis::beamRefz ( ) const
inlineinherited

Definition at line 126 of file TrackAnalysis.h.

126{ return m_zBeamReference; }
double m_zBeamReference

◆ beamTestx()

double TrackAnalysis::beamTestx ( ) const
inlineinherited

Definition at line 128 of file TrackAnalysis.h.

128{ return m_xBeamTest; }
double m_xBeamTest
test sample

◆ beamTesty()

double TrackAnalysis::beamTesty ( ) const
inlineinherited

Definition at line 129 of file TrackAnalysis.h.

129{ return m_yBeamTest; }

◆ beamTestz()

double TrackAnalysis::beamTestz ( ) const
inlineinherited

Definition at line 130 of file TrackAnalysis.h.

130{ return m_zBeamTest; }

◆ begin()

std::map< std::string, TH1 * >::const_iterator TrackAnalysis::begin ( ) const
inlineinherited

Definition at line 105 of file TrackAnalysis.h.

105{ return m_histos.begin(); }

◆ end()

std::map< std::string, TH1 * >::const_iterator TrackAnalysis::end ( ) const
inlineinherited

Definition at line 106 of file TrackAnalysis.h.

106{ return m_histos.end(); }

◆ event()

const TIDA::Event * TrackAnalysis::event ( ) const
inlineinherited

Definition at line 135 of file TrackAnalysis.h.

135{ return m_event; }
TIDA::Event * m_event

◆ execute() [1/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & ,
const std::vector< TIDA::Track * > & ,
TrackAssociator * ,
const TIDA::Event *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 68 of file TrackAnalysis.h.

71 { }

◆ execute() [2/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & ,
const std::vector< TIDA::Track * > & ,
TrackAssociator * ,
const TIDA::Event * ,
double * ,
TIDARoiDescriptor *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 81 of file TrackAnalysis.h.

86 { }

◆ execute() [3/5]

void TrackEfficiency::execute ( const std::vector< TIDA::Track * > & tracks1,
const std::vector< TIDA::Track * > & tracks2,
TrackAssociator * matcher )
virtual

Implements TrackAnalysis.

Definition at line 78 of file TrackEfficiency.cxx.

81{
82 std::cout << "execute() " << name() << std::endl;
83
84 // for ( int i=0 ; i<reftracks.size() ; i++ ) std::cout << i << " " << *reftracks[i] << " ref" << std::endl;
85 // for ( int i=0 ; i<testtracks.size() ; i++ ) std::cout << i << " " << *testtracks[i] << " tst" << std::endl;
86
87 // for an efficiency, we want at most 1 matching reco track
88 // for each true track
89 // for a purity, we want at most 1 true track for each
90 // reconstructed track
91 // for a resolution we only want to consider matched pairs
92 // of tracks
93
94 // this is an efficiency
95 for ( unsigned i=reftracks.size() ; i-- ; ) {
96
97 // get the matched reco track for this true track if
98 // there is one - returns NULL if no matching track
99
100 // std::cout << i << " " << *reftracks[i] << std::endl;
101
102 const TIDA::Track* matchedreco = matcher->matched(reftracks[i]);
103
104 std::cout << "\t\tSUTT Analysis " << name() << "\t" << i << " " << *reftracks[i] << " -> ";
105
106 if ( matchedreco ) {
107
108 std::cout << *matchedreco << std::endl;
109
110 // convert pt in MeV to GeV
111 double pTt = reftracks[i]->pT()/1000; // convert to GeV
112 double pTr = matchedreco->pT()/1000; // convert to GeV
113
114#if 0
115 effvsPT->Fill( reftracks[i]->pT() );
116 effvseta->Fill( reftracks[i]->eta() );
117 effvsphi->Fill( reftracks[i]->phi() );
118 effvsd0->Fill( reftracks[i]->a0() );
119
120
121 // fill the plots
122 iptvipt->Fill( 1/pTt, 1/pTt-1/pTr );
123 ptvpt->Fill( reftracks[i]->pT(), pTt-pTr );
124
125 phivpt->Fill( reftracks[i]->pT(), reftracks[i]->phi()-matchedreco->phi() );
126 etavpt->Fill( reftracks[i]->pT(), reftracks[i]->eta()-matchedreco->eta() );
127 z0vpt->Fill( reftracks[i]->pT(), reftracks[i]->z0()-matchedreco->z0() );
128 d0vpt->Fill( reftracks[i]->pT(), reftracks[i]->a0()-matchedreco->a0() );
129
130 ptveta->Fill( reftracks[i]->eta(), pTt-pTr);
131 iptveta->Fill( reftracks[i]->eta(), 1/pTt-1/pTr);
132 phiveta->Fill( reftracks[i]->eta(), reftracks[i]->phi()-matchedreco->phi() );
133 etaveta->Fill( reftracks[i]->eta(), reftracks[i]->eta()-matchedreco->eta() );
134 z0veta->Fill( reftracks[i]->eta(), reftracks[i]->z0()-matchedreco->z0() );
135
136 z0vz0->Fill( reftracks[i]->z0(), reftracks[i]->z0()-matchedreco->z0() );
137 d0vd0->Fill( reftracks[i]->a0(), reftracks[i]->a0()-matchedreco->a0() );
138#endif
139
140 std::cout << "SUTT pt res "
141 << "\tpt=" << reftracks[i]->pT()
142 << "\tpTr=" << pTt
143 << "\t1/pTt=" << 1/pTt
144 << "\tDpT=" << pTt-pTr
145 << "\tD1/pT=" << 1/pTt-1/pTr
146 << std::endl;
147
148 }
149 else {
150 std::cout << " NULL" << std::endl;
151#if 0
152
153 effvsPT->FillTrueOnly( reftracks[i]->pT() );
154 effvseta->FillTrueOnly( reftracks[i]->eta() );
155 effvsphi->FillTrueOnly( reftracks[i]->phi() );
156 effvsd0->FillTrueOnly( reftracks[i]->a0() );
157#endif
158
159 }
160 }
161
162
163
164}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
virtual const S * matched(T *t)
double a0
Definition globals.cxx:27

◆ execute() [4/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & tracks1,
const std::vector< TIDA::Track * > & tracks2,
TrackAssociator * matcher,
const TIDA::Event * event,
double *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 73 of file TrackAnalysis.h.

77 {
78 execute( tracks1, tracks2, matcher, event );
79 }
const TIDA::Event * event() const
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)

◆ execute() [5/5]

virtual void TrackAnalysis::execute ( const std::vector< TIDA::Track * > & tracks1,
const std::vector< TIDA::Track * > & tracks2,
TrackAssociator * matcher,
TrigObjectMatcher *  )
inlinevirtual

Reimplemented from TrackAnalysis.

Definition at line 61 of file TrackAnalysis.h.

64 {
65 execute( tracks1, tracks2, matcher );
66 }

◆ execute_vtx()

virtual void TrackAnalysis::execute_vtx ( const std::vector< TIDA::Vertex * > & ,
const std::vector< TIDA::Vertex * > & ,
const TIDA::Event * = 0 )
inlinevirtualinherited

Reimplemented in Analysis_Tier0, and AnalysisR3_Tier0.

Definition at line 89 of file TrackAnalysis.h.

91 { }

◆ finalise()

void TrackEfficiency::finalise ( )
virtual

Implements TrackAnalysis.

Definition at line 168 of file TrackEfficiency.cxx.

168 {
169 // sort out all the histograms and write them out
170 std::cout << "SUTT TrackEfficiency::finalise() " << name() << std::endl;
171
172#if 0
173 gDirectory->pwd();
174 Directory d(name());
175 d.push();
176 effvsPT->Finalise();
177 effvseta->Finalise(Effplot::FitQuad);
178 effvsphi->Finalise(Effplot::FitQuad);
179 effvsd0->Finalise(Effplot::FitQuad);
180 effvsPT->Write();
181 effvseta->Write();
182 effvsphi->Write();
183 effvsd0->Write();
184
185 iptvipt->Finalise();
186 ptvpt->Finalise();
187
188 phivpt->Finalise();
189 etavpt->Finalise();
190 z0vpt->Finalise();
191 d0vpt->Finalise();
192
193 ptveta->Finalise();
194 iptveta->Finalise();
195 phiveta->Finalise();
196 etaveta->Finalise();
197 z0veta->Finalise();
198
199 z0vz0->Finalise();
200 d0vd0->Finalise();
201
202 // maybe put a Write() call into Finalise() ???
203 iptvipt->Write();
204 ptvpt->Write();
205
206 phivpt->Write();
207 etavpt->Write();
208 z0vpt->Write();
209 d0vpt->Write();
210
211 ptveta->Write();
212 iptveta->Write();
213 phiveta->Write();
214 etaveta->Write();
215 z0veta->Write();
216
217 z0vz0->Write();
218 d0vd0->Write();
219
220
221 d.pop();
222
223#endif
224}

◆ getHistograms()

const std::map< std::string, TH1 * > & TrackAnalysis::getHistograms ( ) const
inlineinherited

access the histograms

Definition at line 103 of file TrackAnalysis.h.

103{ return m_histos; }

◆ initialise()

void TrackEfficiency::initialise ( )
virtual

standard operation interface

Implements TrackAnalysis.

Definition at line 20 of file TrackEfficiency.cxx.

20 {
21 // book the histograms
22
23#if 0
24 double limits[23] = { 0, 500, 1000, 1500, 2000, 2500,
25 3000, 4000, 5000, 6000, 7000, 8000,
26 10000, 12000, 14000, 16000, 20000, 25000,
27 30000, 35000, 40000, 50000, 60000 };
28#endif
29
30
31#if 0
32 double limits[13] = { 0, 1000, 2000, 3000, 5000, 7000,
33 10000, 14000, 20000, 30000, 40000, 60000, 100000 };
34
35 double limits2[24] = { 0, 1000, 2000, 3000, 5000, 7000, 8000, 8500, 9000, 9500,
36 10000, 10500, 11000, 11500, 12000, 12500, 13000, 13500, 14000,
37 20000, 30000, 40000, 60000, 100000 };
38#endif
39
40 double limits2[18] = { 0, 1000, 2000, 3000, 5000, 7000,
41 8000, 9000, 10000, 11000, 12000, 13000,
42 14000, 20000, 30000, 40000, 60000, 100000 };
43
44 std::vector<double> limits;
45 for ( int i=0 ; i<18 ; i++ ) limits.push_back(limits2[i]);
46
47#if 0
48 // efficiencies
49 effvsPT = new Effplot( "efficiency vs pt", limits );
50 effvseta = new Effplot( "efficiency vs eta", 8, -3, 3);
51 effvsphi = new Effplot( "efficiency vs phi", 8, -M_PI, M_PI );
52 // effvsd0 = new Effplot( "efficiency vs d0", 20, -100, 100 );
53 effvsd0 = new Effplot( "efficiency vs d0", 200, -200, 200 );
54
55 // resolutions
56 iptvipt = new Resplot( "resolution ipt vs ipt", 20, -0.2, 0.2, 21, -0.01, 0.01);
57
58 ptvpt = new Resplot( "resolution pt vs pt", limits, 41, -10, 10 );
59 phivpt = new Resplot( "resolution phi vs pt", limits, 41, -0.01, 0.01 );
60 etavpt = new Resplot( "resolution eta vs pt", limits, 41, -0.01, 0.01 );
61 z0vpt = new Resplot( "resolution z0 vs pt", limits, 41, -1, 1 );
62 d0vpt = new Resplot( "resolution d0 vs pt", limits, 61, -0.3, 0.3 );
63
64 ptveta = new Resplot( "resolution pt vs eta", 12, -3, 3, 41, -10, 10);
65 iptveta = new Resplot( "resolution ipt vs eta", 12, -3, 3, 41, -0.01, 0.01);
66 phiveta = new Resplot( "resolution phi vs eta", 12, -3, 3, 41, -0.01, 0.01);
67 etaveta = new Resplot( "resolution eta vs eta", 12, -3, 3, 41, -0.01, 0.01);
68 z0veta = new Resplot( "resolution z vs eta", 12, -3, 3, 41, -1, 1);
69
70 z0vz0 = new Resplot( "resolution z vs z", 40, -200, 200, 41, -1, 1);
71 d0vd0 = new Resplot( "resolution d0 vs d0", 20, -5, 5, 61, -0.3, 0.3);
72#endif
73
74}
#define M_PI

◆ name()

const std::string & TrackAnalysis::name ( ) const
inlineinherited

return identifier

Definition at line 52 of file TrackAnalysis.h.

52{ return m_name; }
std::string m_name
identifier of the of the analysis - also used for the root directory into which the histograms are pu...

◆ roi()

const TIDARoiDescriptor * TrackAnalysis::roi ( ) const
inlineinherited

Definition at line 138 of file TrackAnalysis.h.

138{ return m_roi; }
TIDARoiDescriptor * m_roi

◆ setBeamRef() [1/2]

void TrackAnalysis::setBeamRef ( const std::vector< double > & v)
inlineinherited

Definition at line 112 of file TrackAnalysis.h.

112 {
113 if ( v.size()>0 ) m_xBeamReference = v[0];
114 if ( v.size()>1 ) m_yBeamReference = v[1];
115 if ( v.size()>2 ) m_zBeamReference = v[2];
116 }

◆ setBeamRef() [2/2]

void TrackAnalysis::setBeamRef ( double x,
double y,
double z = 0 )
inlineinherited

set the beamline positions

Definition at line 109 of file TrackAnalysis.h.

#define y
#define x
#define z

◆ setBeamTest() [1/2]

void TrackAnalysis::setBeamTest ( const std::vector< double > & v)
inlineinherited

Definition at line 118 of file TrackAnalysis.h.

118 {
119 if ( v.size()>0 ) m_xBeamTest = v[0];
120 if ( v.size()>1 ) m_yBeamTest = v[1];
121 if ( v.size()>2 ) m_zBeamTest = v[2];
122 }

◆ setBeamTest() [2/2]

void TrackAnalysis::setBeamTest ( double x,
double y,
double z = 0 )
inlineinherited

Definition at line 110 of file TrackAnalysis.h.

◆ setevent()

void TrackAnalysis::setevent ( TIDA::Event * e)
inlineinherited

Definition at line 136 of file TrackAnalysis.h.

◆ setroi()

void TrackAnalysis::setroi ( TIDARoiDescriptor * r)
inlineinherited

Definition at line 139 of file TrackAnalysis.h.

139{ m_roi=r; }
int r
Definition globals.cxx:22

◆ store()

TIDA::FeatureStore & TrackAnalysis::store ( )
inlineinherited

Definition at line 133 of file TrackAnalysis.h.

133{ return m_store; }
TIDA::FeatureStore m_store

Member Data Documentation

◆ m_event

TIDA::Event* TrackAnalysis::m_event
protectedinherited

Definition at line 164 of file TrackAnalysis.h.

◆ m_histos

std::map<std::string, TH1*> TrackAnalysis::m_histos
protectedinherited

lookup table for the histograms by name - does this need to be in the base class?

Definition at line 149 of file TrackAnalysis.h.

◆ m_name

std::string TrackAnalysis::m_name
protectedinherited

identifier of the of the analysis - also used for the root directory into which the histograms are put

Definition at line 145 of file TrackAnalysis.h.

◆ m_roi

TIDARoiDescriptor* TrackAnalysis::m_roi
protectedinherited

Definition at line 165 of file TrackAnalysis.h.

◆ m_store

TIDA::FeatureStore TrackAnalysis::m_store
protectedinherited

Definition at line 162 of file TrackAnalysis.h.

◆ m_xBeamReference

double TrackAnalysis::m_xBeamReference
protectedinherited

beamline positions reference sample

Definition at line 153 of file TrackAnalysis.h.

◆ m_xBeamTest

double TrackAnalysis::m_xBeamTest
protectedinherited

test sample

Definition at line 158 of file TrackAnalysis.h.

◆ m_yBeamReference

double TrackAnalysis::m_yBeamReference
protectedinherited

Definition at line 154 of file TrackAnalysis.h.

◆ m_yBeamTest

double TrackAnalysis::m_yBeamTest
protectedinherited

Definition at line 159 of file TrackAnalysis.h.

◆ m_zBeamReference

double TrackAnalysis::m_zBeamReference
protectedinherited

Definition at line 155 of file TrackAnalysis.h.

◆ m_zBeamTest

double TrackAnalysis::m_zBeamTest
protectedinherited

Definition at line 160 of file TrackAnalysis.h.


The documentation for this class was generated from the following files: