-
- if (testTrack == 4) { // tracking requirements verified, track is found
- nReconstructibleTracksCheck++;
- hNHitComp->Fill(nHitOK);
- particle = runLoader->GetHeader()->Stack()->Particle(trackID);
-// printf(" trackID: %d , PDG code: %d \n",trackID,particle->GetPdgCode());
- trackParam = trackRef->GetTrackParamAtVertex();
- x1 = trackParam->GetNonBendingCoor();
- y1 = trackParam->GetBendingCoor();
- z1 = trackParam->GetZ();
- pX1 = trackParam->Px();
- pY1 = trackParam->Py();
- pZ1 = trackParam->Pz();
- p1 = trackParam->P();
-
-// printf(" Ref. track at vertex: x,y,z: %f %f %f px,py,pz,p: %f %f %f %f \n",x1,y1,z1,pX1,pY1,pZ1,p1);
-
- trackParam = ((AliMUONTrack *)trackRecoArray->At(indexOK))->GetTrackParamAtVertex();
- x2 = trackParam->GetNonBendingCoor();
- y2 = trackParam->GetBendingCoor();
- z2 = trackParam->GetZ();
- pX2 = trackParam->Px();
- pY2 = trackParam->Py();
- pZ2 = trackParam->Pz();
- p2 = trackParam->P();
-// printf(" Reconst. track at vertex: x,y,z: %f %f %f px,py,pz: %f %f %f %f \n",x2,y2,z2,pX2,pY2,pZ2,p2);
-
- hResMomVertex->Fill(p2-p1);
-
- trackParamAtHit = trackRef->GetTrackParamAtHit();
- trackParam = (AliMUONTrackParam*) trackParamAtHit->First();
- x1 = trackParam->GetNonBendingCoor();
- y1 = trackParam->GetBendingCoor();
- z1 = trackParam->GetZ();
- pX1 = trackParam->Px();
- pY1 = trackParam->Py();
- pZ1 = trackParam->Pz();
- p1 = trackParam->P();
-// printf(" Ref. track at 1st hit: x,y,z: %f %f %f px,py,pz: %f %f %f \n",x1,y1,z1,pX1,pY1,pZ1);
- trackParamAtHit = ((AliMUONTrack *) trackRecoArray->At(indexOK))->GetTrackParamAtHit();
- trackParam = (AliMUONTrackParam*) trackParamAtHit->First();
- x2 = trackParam->GetNonBendingCoor();
- y2 = trackParam->GetBendingCoor();
- z2 = trackParam->GetZ();
- pX2 = trackParam->Px();
- pY2 = trackParam->Py();
- pZ2 = trackParam->Pz();
- p2 = trackParam->P();
-// printf(" Reconst. track at 1st hit: x,y,z: %f %f %f px,py,pz: %f %f %f \n",x2,y2,z2,pX2,pY2,pZ2);
-
- hResMomFirstHit->Fill(p2-p1);
+
+ if (testTrack == 4 || maxChi2 < 5.*sigmaCut*sigmaCut) { // tracking requirements verified, track is found
+ nReconstructibleTracksCheck++;
+ hNClusterComp->Fill(nClusterOk);
+ trackParam = trackRef->GetTrackParamAtVertex();
+ x1 = trackParam->GetNonBendingCoor();
+ y1 = trackParam->GetBendingCoor();
+ z1 = trackParam->GetZ();
+ pX1 = trackParam->Px();
+ pY1 = trackParam->Py();
+ pZ1 = trackParam->Pz();
+ p1 = trackParam->P();
+
+ // printf(" Ref. track at vertex: x,y,z: %f %f %f px,py,pz,p: %f %f %f %f \n",x1,y1,z1,pX1,pY1,pZ1,p1);
+ trackReco = trackOK;
+ trackParam = new AliMUONTrackParam(*((AliMUONTrackParam*)(trackReco->GetTrackParamAtCluster()->First())));
+ AliMUONTrackExtrap::ExtrapToVertex(trackParam,x1,y1,z1,0.,0.);
+ x2 = trackParam->GetNonBendingCoor();
+ y2 = trackParam->GetBendingCoor();
+ z2 = trackParam->GetZ();
+ pX2 = trackParam->Px();
+ pY2 = trackParam->Py();
+ pZ2 = trackParam->Pz();
+ p2 = trackParam->P();
+ delete trackParam;
+ // printf(" Reconst. track at vertex: x,y,z: %f %f %f px,py,pz: %f %f %f %f \n",x2,y2,z2,pX2,pY2,pZ2,p2);
+
+ hResMomVertex->Fill(p2-p1);
+
+ trackParam = (AliMUONTrackParam*) trackRef->GetTrackParamAtCluster()->First();
+ x1 = trackParam->GetNonBendingCoor();
+ y1 = trackParam->GetBendingCoor();
+ z1 = trackParam->GetZ();
+ pX1 = trackParam->Px();
+ pY1 = trackParam->Py();
+ pZ1 = trackParam->Pz();
+ p1 = trackParam->P();
+ // printf(" Ref. track at 1st cluster: x,y,z: %f %f %f px,py,pz: %f %f %f \n",x1,y1,z1,pX1,pY1,pZ1);
+ trackParam = (AliMUONTrackParam*) trackOK->GetTrackParamAtCluster()->First();
+ x2 = trackParam->GetNonBendingCoor();
+ y2 = trackParam->GetBendingCoor();
+ z2 = trackParam->GetZ();
+ pX2 = trackParam->Px();
+ pY2 = trackParam->Py();
+ pZ2 = trackParam->Pz();
+ p2 = trackParam->P();
+ // printf(" Reconst. track at 1st cluster: x,y,z: %f %f %f px,py,pz: %f %f %f \n",x2,y2,z2,pX2,pY2,pZ2);
+
+ hResMomFirstCluster->Fill(p2-p1);