]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCLaserTrack.cxx
Update (Chiara)
[u/mrichter/AliRoot.git] / TPC / AliTPCLaserTrack.cxx
index 7a69d959a3401ec98c17cb03b1932f2d94bc4f62..4ce603349c168f3180bdab52deaa3ed93dcbaf55 100644 (file)
@@ -177,21 +177,32 @@ void AliTPCLaserTrack::LoadTracks()
   //
   
   if ( fgArrLaserTracks ) return;
+  TObjArray *arrLaserTracks = 0x0;
   
   AliCDBManager *man=AliCDBManager::Instance();
-  if (!man->GetDefaultStorage()) man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-  if (man->GetRun()<0) man->SetRun(0);
-  AliCDBEntry *entry=man->Get(AliCDBPath("TPC/Calib/LaserTracks"));
-  TObjArray *arrLaserTracks = (TObjArray*)entry->GetObject();
-  arrLaserTracks->SetOwner();
-  entry->SetOwner(kTRUE);
-  
+  if (!man->GetDefaultStorage() && gSystem->Getenv("ALICE_ROOT")) man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
+  if (man->GetDefaultStorage()){
+    if (man->GetRun()<0) man->SetRun(0);
+    AliCDBEntry *entry=man->Get(AliCDBPath("TPC/Calib/LaserTracks"));
+    if (!entry) return;
+    arrLaserTracks = (TObjArray*)entry->GetObject();
+    entry->SetOwner(kTRUE);
+  } else {
+    if (!gSystem->AccessPathName("LaserTracks.root")){
+      TFile f("LaserTracks.root");
+      arrLaserTracks=(TObjArray*)f.Get("arrLaserTracks");
+      f.Close();
+    }
+  }
   if ( !arrLaserTracks ) {
 //     AliWarning(Form("Could not get laser position data from file: '%s'",fgkDataFileName));
     return;
   }
   
+  arrLaserTracks->SetOwner();
+  
   fgArrLaserTracks = new TObjArray(fgkNLaserTracks);
+  fgArrLaserTracks->SetOwner();
   for (Int_t itrack=0; itrack<fgkNLaserTracks; itrack++){
     AliTPCLaserTrack *ltr = (AliTPCLaserTrack*)arrLaserTracks->At(itrack);
     if ( !ltr ){
@@ -201,6 +212,8 @@ void AliTPCLaserTrack::LoadTracks()
     ltr->UpdatePoints();
     fgArrLaserTracks->AddAt(new AliTPCLaserTrack(*ltr),itrack);
   }
+
+  delete arrLaserTracks;
 }
 
 
@@ -299,7 +312,6 @@ Int_t AliTPCLaserTrack::IdentifyTrack(AliExternalTrackParam *track, Int_t side)
   //
   Float_t mindist=10; // maxima minimal distance
   Int_t id = -1;
-  AliExternalTrackParam*  ltr0= (AliExternalTrackParam*)arrTracks->UncheckedAt(0);
   for (Int_t itrack=0; itrack<fgkNLaserTracks; itrack++){    
     AliTPCLaserTrack *ltr = (AliTPCLaserTrack*)arrTracks->UncheckedAt(itrack);
     if (side>=0) if (ltr->GetSide()!=side) continue;
@@ -328,13 +340,11 @@ Int_t AliTPCLaserTrack::IdentifyTrack(AliExternalTrackParam *track, Int_t side)
     if (id<0)  {
       id =itrack; 
       mindist=dist; 
-      ltr0=ltr;
       continue;
     }
     if (dist>mindist) continue;
     id = itrack;
     mindist=dist;
-    ltr0=ltr;
   }
   return id;
 }