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 };
32 double limits[13] = { 0, 1000, 2000, 3000, 5000, 7000,
33 10000, 14000, 20000, 30000, 40000, 60000, 100000 };
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 };
40 double limits2[18] = { 0, 1000, 2000, 3000, 5000, 7000,
41 8000, 9000, 10000, 11000, 12000, 13000,
42 14000, 20000, 30000, 40000, 60000, 100000 };
44 std::vector<double> limits;
45 for (
int i=0 ;
i<18 ;
i++ ) limits.push_back(limits2[
i]);
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 );
53 effvsd0 =
new Effplot(
"efficiency vs d0", 200, -200, 200 );
56 iptvipt =
new Resplot(
"resolution ipt vs ipt", 20, -0.2, 0.2, 21, -0.01, 0.01);
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 );
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);
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);
79 const std::vector<TIDA::Track*>& ,
82 std::cout <<
"execute() " <<
name() << std::endl;
95 for (
unsigned i=reftracks.size() ;
i-- ; ) {
104 std::cout <<
"\t\tSUTT Analysis " <<
name() <<
"\t" <<
i <<
" " << *reftracks[
i] <<
" -> ";
108 std::cout << *matchedreco << std::endl;
111 double pTt = reftracks[
i]->
pT()/1000;
112 double pTr = matchedreco->
pT()/1000;
115 effvsPT->Fill( reftracks[
i]->
pT() );
116 effvseta->Fill( reftracks[
i]->
eta() );
117 effvsphi->Fill( reftracks[
i]->
phi() );
118 effvsd0->Fill( reftracks[
i]->
a0() );
122 iptvipt->Fill( 1/pTt, 1/pTt-1/pTr );
123 ptvpt->Fill( reftracks[
i]->
pT(), pTt-pTr );
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() );
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() );
136 z0vz0->Fill( reftracks[
i]->
z0(), reftracks[
i]->
z0()-matchedreco->
z0() );
137 d0vd0->Fill( reftracks[
i]->
a0(), reftracks[
i]->
a0()-matchedreco->
a0() );
140 std::cout <<
"SUTT pt res "
141 <<
"\tpt=" << reftracks[
i]->pT()
143 <<
"\t1/pTt=" << 1/pTt
144 <<
"\tDpT=" << pTt-pTr
145 <<
"\tD1/pT=" << 1/pTt-1/pTr
150 std::cout <<
" NULL" << std::endl;
153 effvsPT->FillTrueOnly( reftracks[
i]->
pT() );
154 effvseta->FillTrueOnly( reftracks[
i]->
eta() );
155 effvsphi->FillTrueOnly( reftracks[
i]->
phi() );
156 effvsd0->FillTrueOnly( reftracks[
i]->
a0() );
170 std::cout <<
"SUTT TrackEfficiency::finalise() " <<
name() << std::endl;
177 effvseta->Finalise(Effplot::FitQuad);
178 effvsphi->Finalise(Effplot::FitQuad);
179 effvsd0->Finalise(Effplot::FitQuad);