Correct treatment of material in case of cosmic reconstruction (Marian)
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Aug 2009 07:53:56 +0000 (07:53 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 11 Aug 2009 07:53:56 +0000 (07:53 +0000)
STEER/AliTracker.cxx
STEER/AliTracker.h

index 269f15f..7678b65 100644 (file)
@@ -345,7 +345,7 @@ Double_t AliTracker::MeanMaterialBudget(const Double_t *start, const Double_t *e
 
 Bool_t 
 AliTracker::PropagateTrackTo(AliExternalTrackParam *track, Double_t xToGo, 
-Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp){
+                            Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp, Double_t sign){
   //----------------------------------------------------------------
   //
   // Propagates the track to the plane X=xk (cm) using the magnetic field map 
@@ -376,7 +376,7 @@ Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp){
     if (!track->PropagateTo(x,bz))  return kFALSE;
 
     MeanMaterialBudget(xyz0,xyz1,param);       
-    Double_t xrho=param[0]*param[4], xx0=param[1];
+    Double_t xrho=param[0]*param[4]*sign, xx0=param[1];
 
     if (!track->CorrectForMeanMaterial(xx0,xrho,mass)) return kFALSE;
     if (rotateTo){
@@ -399,7 +399,7 @@ Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp){
 Bool_t 
 AliTracker::PropagateTrackToBxByBz(AliExternalTrackParam *track,
 Double_t xToGo, 
-Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp){
+                                  Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp,Double_t sign){
   //----------------------------------------------------------------
   //
   // Propagates the track to the plane X=xk (cm)
@@ -431,7 +431,7 @@ Double_t mass, Double_t maxStep, Bool_t rotateTo, Double_t maxSnp){
     if (!track->PropagateToBxByBz(x,b))  return kFALSE;
 
     MeanMaterialBudget(xyz0,xyz1,param);       
-    Double_t xrho=param[0]*param[4], xx0=param[1];
+    Double_t xrho=param[0]*param[4]*sign, xx0=param[1];
 
     if (!track->CorrectForMeanMaterial(xx0,xrho,mass)) return kFALSE;
     if (rotateTo){
index ca5c8d5..693f676 100644 (file)
@@ -61,10 +61,10 @@ public:
   Double_t MeanMaterialBudget(const Double_t *start, const Double_t *end, Double_t *mparam);
   static
   Bool_t PropagateTrackTo(AliExternalTrackParam *track, Double_t x, Double_t m,
-        Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8);  
-  Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x, 
+                         Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8, Double_t sign=1.);  
+  static Bool_t PropagateTrackToBxByBz(AliExternalTrackParam *track, Double_t x, 
          Double_t m,
-        Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8);  
+                               Double_t maxStep, Bool_t rotateTo=kTRUE, Double_t maxSnp=0.8,Double_t sign=1.);  
   //
   static Double_t GetBz(const Double_t *r);
   static void GetBxByBz(const Double_t r[3], Double_t b[3]);