94 Bool_t success = kTRUE;
98 cout <<
"-E- " << fName <<
"::DoFind: "
99 <<
"MCTrack array missing! " << endl;
103 cout <<
"-E- " << fName <<
"::DoFind: "
104 <<
"MCPoint array missing! " << endl;
109 cout <<
"-E- " << fName <<
"::DoFind: "
110 <<
"Hit array missing! " << endl;
115 cout <<
"-E- " << fName <<
"::DoFind: "
116 <<
"Track array missing! " << endl;
121 Int_t nNoMCTrack = 0;
123 Int_t nNoStsPoint = 0;
128 FairMCPoint* pMCpt = NULL;
133 Int_t nHits =
fStsHits->GetEntriesFast();
138 Int_t mcTrackIndex = 0;
139 Int_t trackIndex = 0;
143 map<Int_t, Int_t> hitMap;
146 for (Int_t iHit = 0; iHit < nHits; iHit++) {
150 if (ptIndex < 0)
continue;
152 if (!pMCpt)
continue;
153 mcTrackIndex = pMCpt->GetTrackID();
154 hitMap[mcTrackIndex]++;
158 map<Int_t, Int_t> trackMap;
164 for (Int_t iMCTrack = 0; iMCTrack <
nMCTracks; iMCTrack++) {
166 if (!pMCtr)
continue;
169 if (hitMap[iMCTrack] < 3)
continue;
172 cout <<
"-I- " << fName <<
": StsTrack " << nTracks <<
" created from MCTrack " << iMCTrack <<
" ("
174 trackMap[iMCTrack] = nTracks++;
177 if (
fVerbose > 2) cout <<
"-I- " << GetName() <<
": " << endl;
180 for (Int_t iHit = 0; iHit < nHits; iHit++) {
183 cout <<
"-E- " << fName <<
"::DoFind: Empty slot "
184 <<
"in StsHitArray at position " << iHit << endl;
190 if (ptIndex < 0)
continue;
193 cout <<
"-E- " << fName <<
"::DoFind: No reference "
194 <<
"MCPoint " << ptIndex <<
" for hit " << iHit << endl;
199 mcTrackIndex = pMCpt->GetTrackID();
200 if (mcTrackIndex < 0 || mcTrackIndex >
nMCTracks) {
201 cout <<
"-E- " << fName <<
"::DoFind: "
202 <<
"MCTrack index out of range. " << mcTrackIndex <<
" " <<
nMCTracks << endl;
207 if (trackMap.find(mcTrackIndex) == trackMap.end())
continue;
208 trackIndex = trackMap[mcTrackIndex];
211 cout <<
"-E- " << fName <<
"::DoFind: "
212 <<
"No StsTrack pointer. " << iHit <<
" " << ptIndex <<
" " << mcTrackIndex <<
" " << trackIndex << endl;
219 cout <<
"Sts Hit " << iHit <<
" from StsPoint " << ptIndex <<
" (MCTrack " << mcTrackIndex
220 <<
") added to StsTrack " << trackIndex << endl;
226 cout <<
"-------------------------------------------------------" << endl;
227 cout <<
"-I- " << fName << endl;
228 cout <<
"Sts hits: " << nHits << endl;
229 cout <<
"MCTracks: total " <<
nMCTracks <<
", accepted " << nMCacc <<
", reconstructable: " << nTracks << endl;
230 if (nNoStsHit) cout <<
"StsHits not found : " << nNoStsHit << endl;
231 if (nNoStsPoint) cout <<
"StsPoints not found : " << nNoStsPoint << endl;
232 if (nNoMCTrack) cout <<
"MCTracks not found : " << nNoMCTrack << endl;
233 if (nNoTrack) cout <<
"StsTracks not found : " << nNoTrack << endl;
234 cout <<
"-------------------------------------------------------" << endl;
240 cout << setw(15) << left << fName <<
": " <<
nMCTracks <<
", acc. " << nMCacc <<
", rec. " << nTracks << endl;