Additional arithmetic protections (Yu.Belikov)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Nov 2003 20:23:48 +0000 (20:23 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Nov 2003 20:23:48 +0000 (20:23 +0000)
ITS/AliCascadeVertexer.cxx
ITS/AliITStrackerV2.cxx
ITS/AliV0vertexer.cxx

index 3ac3ea8..be8cacd 100644 (file)
@@ -50,11 +50,11 @@ Int_t AliCascadeVertexer::V0sTracks2CascadeVertices(AliESD *event) {
    TObjArray trks(ntr);
    for (i=0; i<ntr; i++) {
        AliESDtrack *esdtr=event->GetTrack(i);
-       Int_t status=esdtr->GetStatus();
+       UInt_t status=esdtr->GetStatus();
+       UInt_t flags=AliESDtrack::kITSin|AliESDtrack::kTPCin;
 
        if ((status&AliESDtrack::kITSrefit)==0)
-       if ((status&AliESDtrack::kITSout)!=0 || (status&AliESDtrack::kITSin)==0)
-           continue;
+          if ((status&flags)!=status) continue;
 
        AliITStrackV2 *iotrack=new AliITStrackV2(*esdtr);
        iotrack->SetLabel(i);  // now it is the index in array of ESD tracks
index e12775e..ad23d4f 100644 (file)
@@ -370,12 +370,13 @@ Int_t AliITStrackerV2::PropagateBack(AliESD *event) {
      ResetTrackToFollow(*t);
 
      // propagete to vertex [SR, GSI 17.02.2003]
-     fTrackToFollow.PropagateTo(3.,0.0028,65.19);
-     fTrackToFollow.PropagateToVertex();
-
-     // Start Time measurement [SR, GSI 17.02.2003]
-     fTrackToFollow.StartTimeIntegral();
-     fTrackToFollow.PropagateTo(3.,-0.0028,65.19);
+     // Start Time measurement [SR, GSI 17.02.2003], corrected by I.Belikov
+     if (fTrackToFollow.PropagateTo(3.,0.0028,65.19)) {
+       if (fTrackToFollow.PropagateToVertex()) {
+          fTrackToFollow.StartTimeIntegral();
+       }
+       fTrackToFollow.PropagateTo(3.,-0.0028,65.19);
+     }
 
      fTrackToFollow.ResetCovariance(); fTrackToFollow.ResetClusters();
      if (RefitAt(49.,&fTrackToFollow,t)) {
index f8ec53c..120a926 100644 (file)
@@ -45,11 +45,11 @@ Int_t AliV0vertexer::Tracks2V0vertices(AliESD *event) {
    Int_t i;
    for (i=0; i<nentr; i++) {
      AliESDtrack *esd=event->GetTrack(i);
-     Int_t status=esd->GetStatus();
+     UInt_t status=esd->GetStatus();
+     UInt_t flags=AliESDtrack::kITSin|AliESDtrack::kTPCin;
 
-  if ((status&AliESDtrack::kITSrefit)==0)
-     if ((status&AliESDtrack::kITSout)!=0 || (status&AliESDtrack::kITSin)==0)
-  continue;
+     if ((status&AliESDtrack::kITSrefit)==0)
+        if ((status&flags)!=status) continue;
 
      AliITStrackV2 *iotrack=new AliITStrackV2(*esd);
      iotrack->SetLabel(i);  // now it is the index in array of ESD tracks