]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveDet/AliEveMUONTrack.cxx
Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveMUONTrack.cxx
index e38290fa7cdbd444169a1e77f57d2b370badcce2..ef0c2f2a703adb4b60c6532f5495e64e93d6ade3 100644 (file)
@@ -12,7 +12,6 @@
 #include <EveBase/AliEveEventManager.h>
 
 #include <AliMagF.h>
-#include <AliMagFMaps.h>
 #include <AliLog.h>
 #include <AliESDMuonTrack.h>
 #include <AliESDEvent.h>
 #include <AliMUONConstants.h>
 #include <AliMUONESDInterface.h>
 #include <AliMUONVCluster.h>
-#include <AliMUONRecoParam.h>
 
 #include <TClonesArray.h>
-#include <TStyle.h>
-#include <TROOT.h>
+#include <TGeoGlobalMagField.h>
 #include <TParticle.h>
 #include <TParticlePDG.h>
+#include <TROOT.h>
+#include <TStyle.h>
 
 #include <Riostream.h>
 
@@ -46,7 +45,6 @@
 
 ClassImp(AliEveMUONTrack)
 
-AliMagF* AliEveMUONTrack::fgFieldMap = 0;
 
 //______________________________________________________________________________
 AliEveMUONTrack::AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs) :
@@ -63,9 +61,6 @@ AliEveMUONTrack::AliEveMUONTrack(TEveRecTrack* t, TEveTrackPropagator* rs) :
   //
   // constructor
   //
-
-  if (fgFieldMap == 0)
-    fgFieldMap = AliEveEventManager::AssertMagField();
 }
 
 //______________________________________________________________________________
@@ -530,7 +525,6 @@ void AliEveMUONTrack::MakeMUONTrack(AliMUONTrack *mtrack)
     if (iHit == 0) {
       if (IsMUONTrack() || IsESDTrack()) {
        pt = TMath::Sqrt(trackParam->Px()*trackParam->Px()+trackParam->Py()*trackParam->Py());
-       printf("Set line color = %d \n",ColorIndex(pt));
        SetLineColor(ColorIndex(pt));
       }
       pv[0] = trackParam->Px();
@@ -649,7 +643,7 @@ void AliEveMUONTrack::MakeMUONTriggerTrack(AliMUONTriggerTrack *mtrack)
 
   char form[1000];
 
-  sprintf(form,"MUONTriggerTrack %2d",mtrack->GetLoTrgNum());
+  snprintf(form,1000,"MUONTriggerTrack %2d",mtrack->GetLoTrgNum());
   SetName(form);
   SetLineStyle(1);
 
@@ -676,14 +670,8 @@ void AliEveMUONTrack::MakeESDTrack(AliESDMuonTrack *mtrack)
 
   fTrack = new AliMUONTrack();
 
-  AliMUONRecoParam* recoParam = AliMUONRecoParam::GetCosmicParam();
-  
-  cout << "FIXME: should get recoParam from OCDB here !" << endl;
-  
   // create a simple track from the ESD track
-  AliMUONESDInterface::ESDToMUON(recoParam,*mtrack,*fTrack);
-
-  delete recoParam;
+  AliMUONESDInterface::ESDToMUON(*mtrack,*fTrack);
   
   // reset track parameters at vertex to the ones at DCA
   AliMUONTrackParam paramAtDCA;
@@ -821,37 +809,6 @@ void AliEveMUONTrack::Propagate(Float_t *xr, Float_t *yr, Float_t *zr, Int_t i1,
 
 }
 
-//______________________________________________________________________________
-void AliEveMUONTrack::GetField(Double_t *position, Double_t *field)
-{
-  //
-  // returns field components at position, for a give field map
-  //
-
-  /// interface for arguments in double precision (Why ? ChF)
-  Float_t x[3], b[3];
-
-  x[0] = position[0]; x[1] = position[1]; x[2] = position[2];
-
-  if (fgFieldMap) {
-    fgFieldMap->Field(x,b);
-  }
-  else {
-    AliWarning("No field map");
-    field[0] = field[1] = field[2] = 0.0;
-    return;
-  }
-
-  // force components
-  //b[1] = 0.0;
-  //b[2] = 0.0;
-
-  field[0] = b[0]; field[1] = b[1]; field[2] = b[2];
-
-  return;
-
-}
-
 //______________________________________________________________________________
 void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step,
                                  Double_t* vect, Double_t* vout)
@@ -930,8 +887,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step,
       rest  = step - tl;
       if (TMath::Abs(h) > TMath::Abs(rest)) h = rest;
       //cmodif: call gufld(vout,f) changed into:
-
-      GetField(vout,f);
+      TGeoGlobalMagField::Instance()->Field(vout,f);
 
       // *
       // *             start of integration
@@ -975,7 +931,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step,
       xyzt[2] = zt;
 
       //cmodif: call gufld(xyzt,f) changed into:
-      GetField(xyzt,f);
+      TGeoGlobalMagField::Instance()->Field(xyzt,f);
 
       at     = a + secxs[0];
       bt     = b + secys[0];
@@ -1012,7 +968,7 @@ void AliEveMUONTrack::OneStepRungekutta(Double_t charge, Double_t step,
       xyzt[2] = zt;
 
       //cmodif: call gufld(xyzt,f) changed into:
-      GetField(xyzt,f);
+      TGeoGlobalMagField::Instance()->Field(xyzt,f);
 
       z      = z + (c + (seczs[0] + seczs[1] + seczs[2]) * kthird) * h;
       y      = y + (b + (secys[0] + secys[1] + secys[2]) * kthird) * h;
@@ -1114,3 +1070,32 @@ Int_t AliEveMUONTrack::ColorIndex(Float_t val)
   return gStyle->GetColorPalette(TMath::Min(nCol - 1, cBin));
 
 }
+
+//==============================================================================
+// Temporary AliEveMUONTrackList
+//==============================================================================
+
+//______________________________________________________________________________
+void AliEveMUONTrackList::HackMomentumLimits(Bool_t recurse)
+{
+  // Find momentum limits from included tracks.
+
+  fLimPt = fLimP = 0;
+
+  for (List_i i=BeginChildren(); i!=EndChildren(); ++i)
+  {
+    TEveTrack* track = dynamic_cast<TEveTrack*>(*i);
+    if (track)
+    {
+      fLimPt = TMath::Max(fLimPt, track->GetMomentum().Perp());
+      fLimP  = TMath::Max(fLimP,  track->GetMomentum().Mag());
+    }
+    if (recurse)
+      FindMomentumLimits(*i, recurse);
+  }
+
+  fLimPt = RoundMomentumLimit(fLimPt);
+  fLimP  = RoundMomentumLimit(fLimP);
+  if (fMaxPt == 0) fMaxPt = fLimPt;
+  if (fMaxP  == 0) fMaxP  = fLimP;
+}