20 m_h_ntrack =
new TH1D(std::string(
m_name+
"-ntracks").c_str(), std::string(
m_name+
" n tracks").c_str(), 10, -0.5, 9.5);
21 m_h_ntrackfrac =
new TH1D(std::string(
m_name+
"-ntracksfrac").c_str(), std::string(
m_name+
" n tracks fraction").c_str(), 20, -0.5, 1.5);
26 m_h_eta =
new TH1D(std::string(
m_name+
"-eta").c_str(), std::string(
m_name+
" eta distribution").c_str(), 100, -3, 3);
27 m_h_phi =
new TH1D(std::string(
m_name+
"-phi").c_str(), std::string(
m_name+
" phi distribution").c_str(), 100, -3.15, 3.15);
28 m_h_z0 =
new TH1D(std::string(
m_name+
"-z0").c_str(), std::string(
m_name+
" z0 distribution").c_str(), 100, -200.0, 200.0);
29 m_h_d0 =
new TH1D(std::string(
m_name+
"-d0").c_str(), std::string(
m_name+
" d0 distribution").c_str(), 100, -5.0, 5.0);
30 m_h_pT =
new TH1D(std::string(
m_name+
"-pT").c_str(), std::string(
m_name+
" pT distribution").c_str(), 100, -10000, 10000);
31 m_h_chi2 =
new TH1D(std::string(
m_name+
"-chi2").c_str(), std::string(
m_name+
" chi2 distribution").c_str(), 1000, -10, 990);
40 m_h_blay =
new TH1D(std::string(
m_name+
"-blay").c_str(), std::string(
m_name+
" blayer").c_str(), 2, -0.5, 1.5);
41 m_h_pixel =
new TH1D(std::string(
m_name+
"-pixel").c_str(), std::string(
m_name+
" pixel").c_str(), 10, -0.5, 9.5);
42 m_h_sct =
new TH1D(std::string(
m_name+
"-sct").c_str(), std::string(
m_name+
" sct").c_str(), 12, -0.5, 11.5);
43 m_h_silicon =
new TH1D(std::string(
m_name+
"-silicon").c_str(), std::string(
m_name+
" silicon").c_str(), 20, -0.5, 19.5);
44 m_h_straw =
new TH1D(std::string(
m_name+
"-straw").c_str(), std::string(
m_name+
" straw").c_str(), 40, -0.5, 39.5);
45 m_h_tr =
new TH1D(std::string(
m_name+
"-tr").c_str(), std::string(
m_name+
" tr").c_str(), 40, -0.5, 39.5);
46 m_h_patt =
new TH1D(std::string(
m_name+
"-pattern").c_str(), std::string(
m_name+
" pattern").c_str(), 19, -0.5, 18.5);
47 m_h_firstpatt =
new TH1D(std::string(
m_name+
"-firstpattern").c_str(), std::string(
m_name+
" first pattern").c_str(), 19, -0.5, 18.5);
59 m_h_etaphi =
new TH2D(std::string(
m_name+
"-etaphi").c_str(), std::string(
m_name+
" etaphi").c_str(), 100, -3.0, 3.0, 100, -3.15, 3.15);
60 m_h_etapatt =
new TH2D(std::string(
m_name+
"-etapatt").c_str(), std::string(
m_name+
" etapatt").c_str(), 19, -0.5, 18.5, 100, -3.0, 3.0);
61 m_h_phipatt =
new TH2D(std::string(
m_name+
"-phipatt").c_str(), std::string(
m_name+
" phipatt").c_str(), 19, -0.5, 18.5, 100, -3.15, 3.15);
76 const std::vector<TIDA::Track*>& testTracks,
81 int mainAuthor=-1;
int countMain=0;
82 int testAuthor=-1;
int countTest=0;
83 std::vector<TIDA::Track*>::const_iterator
test, testEnd=testTracks.end();
86 if(mainAuthor==-1) mainAuthor=(*test)->author();
88 if(testAuthor==-1&&((*test)->author()!=mainAuthor)) testAuthor=(*test)->author();
90 if((*test)->author()==mainAuthor) countMain++;
91 if((*test)->author()==testAuthor) countTest++;
95 if(testAuthor<mainAuthor) {
97 m_h_ntrackfrac->Fill((
double)(countMain-countTest)/((
double)countMain));
100 if(mainAuthor==-1 || testAuthor==-1)
return;
103 std::vector<TIDA::Track*>::const_iterator
test2, test2End=testTracks.end();
104 std::vector<TIDA::Track*>::const_iterator
ref, refEnd=referenceTracks.end();
108 if(fabs((*test)->pT())<2000)
continue;
109 if(fabs((*test)->eta())>1.5)
continue;
112 if((*test)->author()!=mainAuthor)
continue;
115 double testEta = (*test)->eta();
116 double testPhi =
phi((*test)->phi());
117 double testZ0 = (*test)->z0();
118 double testD0 = (*test)->a0();
119 double testPT = (*test)->pT();
120 double testChi2 = (*test)->chi2();
123 double testBlay = (*test)->bLayerHits();
124 double testPixel = (*test)->pixelHits();
125 double testSct = (*test)->sctHits();
126 double testSilicon = (*test)->siHits();
127 double testStraw = (*test)->strawHits();
128 double testTr = (*test)->trHits();
130 unsigned int testPattern = (*test)->hitPattern();
133 bool matchOffline=
false;
134 bool matchOnline=
false;
137 for(
ref=referenceTracks.begin();
ref!=refEnd; ++
ref){
139 double refEta = (*ref)->eta();
140 double refPhi =
phi((*ref)->phi());
142 if(
deltaR(testEta, refEta, testPhi, refPhi)<0.05) matchOffline=
true;
144 if(!matchOffline)
continue;
149 if((*test2)->author()!=testAuthor)
continue;
151 double test2Eta = (*test2)->eta();
152 double test2Phi =
phi((*test2)->phi());
154 if(
deltaR(testEta, test2Eta, testPhi, test2Phi)<0.05) matchOnline=
true;
159 std::cout <<
"MISSING TRACK FOUND!" << std::endl;
180 for(
int i=0;
i<19;
i++) {
181 if((testPattern&(
int)
pow(2,
i))!=0) {