Fix to Savannah bug 49014 (A. Mastroserio)
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Apr 2009 14:13:51 +0000 (14:13 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Apr 2009 14:13:51 +0000 (14:13 +0000)
ITS/AliITS.cxx
ITS/AliITSDetTypeRec.cxx
ITS/AliITSDetTypeSim.cxx
ITS/AliITSLoader.cxx
ITS/AliITSLoader.h
ITS/AliITSTrigger.cxx

index be61326..89817ee 100644 (file)
@@ -705,7 +705,7 @@ void AliITS::HitsToDigits(Int_t evNumber,Int_t bgrev,Int_t size,
   } // end for module
   
   ClearModules();
-  
   // Add random noise to FO signals
   if (all || det[0]) { // SPD present
     fDetTypeSim->ProcessNoiseForFastOr();
@@ -1110,16 +1110,12 @@ void AliITS::Digits2Raw(){
   if (!itsLoader) {
     AliError("ITS loader is NULL.");
   }
-  else {
-    AliBaseLoader* foLoader = itsLoader->GetFOSignalsLoader();
-    if (!foLoader) {
-      AliError("FO signals base loader not retrieved.");
-    }
-    else {
-      foLoader->Load();
-      foSignals = (AliITSFOSignalsSPD*) foLoader->Get();
-    }
-  }
+   else {
+      if(!itsLoader->TreeD()) AliError("   !!! No TreeD available !!!");
+      foSignals = (AliITSFOSignalsSPD*)itsLoader->TreeD()->GetUserInfo()->FindObject("AliITSFOSignalsSPD");
+      if(!foSignals) AliError("FO signals not retrieved");
+     }
   Bool_t deleteFOsignalsLater = kFALSE;
   if (!foSignals) {
     AliError("FO signals not available. No FO bits will be written.");
index ad45956..f1a7379 100644 (file)
@@ -851,16 +851,11 @@ void AliITSDetTypeRec::DigitsToRecPoints(TTree *treeD,TTree *treeR,Int_t lastent
     if (!itsLoader) {
       AliError("ITS loader is NULL.");
     }
-    else {
-      AliBaseLoader* foLoader = itsLoader->GetFOSignalsLoader();
-      if (!foLoader) {
-       AliError("FO signals base loader not retrieved.");
-      }
-      else {
-       foLoader->Load();
-       fFOSignals = (AliITSFOSignalsSPD*) foLoader->Get();
-      }
-    }
+   else {
+      fFOSignals = (AliITSFOSignalsSPD*)itsLoader->TreeD()->GetUserInfo()->FindObject("AliITSFOSignalsSPD");
+      if(!fFOSignals) AliError("FO signals not retrieved");
+     }
+
   }
 
   
index daf293b..798a72e 100644 (file)
@@ -999,18 +999,12 @@ void AliITSDetTypeSim::WriteFOSignals() {
     return;
   }
 
-  AliBaseLoader* foLoader = fLoader->GetFOSignalsLoader();
-  if (!foLoader) {
-    AliError("Base loader (FO) not retrieved.");
-    return;
+  if(!fLoader->TreeD()){
+   AliError("No TreeD available");
+   return;
   }
-  
-  // make a new fo signals object - to have the loader own and delete as it wants later
-  AliITSFOSignalsSPD *foSignals = new AliITSFOSignalsSPD(*GetFOSignals());
-
-  foLoader->Post(foSignals);
-
-  foLoader->WriteData();
-
+  TTree *tree = fLoader->TreeD();
+  AliITSFOSignalsSPD *foSignals = new AliITSFOSignalsSPD(*GetFOSignals()); 
+  tree->GetUserInfo()->Add(foSignals);
 }
 
index fd49c8f..962b1fc 100644 (file)
@@ -85,12 +85,6 @@ fGeom(0){
     fDataLoaders->Add(cascadeDataLoader);
     cascadeDataLoader->SetEventFolder(fEventFolder);
     cascadeDataLoader->SetFolder(GetDetectorDataFolder());
-    
-    // 2009/03/03: addition of object loader for fast-or signals (Henrik Tydesjo)
-    AliDataLoader* dl = GetDigitsDataLoader();
-    AliBaseLoader* foLoader = new AliObjectLoader("AliITSFOSignalsSPD",dl);
-    dl->AddBaseLoader(foLoader);
-    
 }
 /**********************************************************************/
 AliITSLoader::AliITSLoader(const Char_t *name,TFolder *topfolder): 
@@ -131,13 +125,6 @@ fGeom(0){
     fDataLoaders->Add(cascadeDataLoader);
     cascadeDataLoader->SetEventFolder(fEventFolder);
     cascadeDataLoader->SetFolder(GetDetectorDataFolder());
-    
-    // 2009/03/03: addition of object loader for fast-or signals (Henrik Tydesjo)
-    AliDataLoader* dl = GetDigitsDataLoader();
-    AliBaseLoader* foLoader = new AliObjectLoader("AliITSFOSignalsSPD",dl);
-    dl->AddBaseLoader(foLoader);
-
-    
 }
 
 
@@ -373,14 +360,3 @@ void AliITSLoader::SetITSgeom(AliITSgeom *geom){
     }// end if
     fGeom=geom;
 }
-//______________________________________________________________________
-AliBaseLoader* AliITSLoader::GetFOSignalsLoader() {
-  // return pointer to FO signals base loader
-  AliDataLoader* dl = GetDigitsDataLoader();
-  if (!dl) {
-    AliError("Data loader is NULL.");
-    return NULL;
-  }
-  return dl->GetBaseLoader("AliITSFOSignalsSPD");
-}
-
index 642457e..4e0825f 100644 (file)
@@ -106,9 +106,6 @@ class AliITSLoader: public AliLoader{
     virtual Int_t  WriteBackTracks(Option_t* opt=""){
         return GetBackTracksDataLoader()->GetBaseLoader(0)->WriteData(opt);}
 
-    virtual AliBaseLoader* GetFOSignalsLoader();
-
-        
     // Geometry. Geom is read from file, unless already loaded
     // readout from file can be forced if force=kTRUE
     AliITSgeom* GetITSgeom(Bool_t force=kFALSE); 
index 7ee066b..84c42df 100644 (file)
@@ -82,20 +82,21 @@ void AliITSTrigger::Trigger() {
   // Get the FO signals for this event
   AliITSFOSignalsSPD* foSignals = NULL;
   AliRunLoader* runLoader = AliRunLoader::Instance();
+  runLoader->LoadDigits();
   AliITSLoader* itsLoader = (AliITSLoader*) runLoader->GetLoader("ITSLoader");
   if (!itsLoader) {
     AliError("ITS loader is NULL.");
   }
-  else {
-    AliBaseLoader* foLoader = itsLoader->GetFOSignalsLoader();
-    if (!foLoader) {
-      AliError("FO signals base loader not retrieved.");
-    }
-    else {
-      foLoader->Load();
-      foSignals = (AliITSFOSignalsSPD*) foLoader->Get();
-    }
-  }
+
+   else {
+      TTree *tree = itsLoader->TreeD();
+      if(!tree) {
+        AliError("TreeD not available");
+        return;
+      }
+      foSignals = (AliITSFOSignalsSPD*)tree->GetUserInfo()->FindObject("AliITSFOSignalsSPD");
+      if(!foSignals) AliError("FO signals not retrieved");
+     }
 
   // Process the FO signals
   if (foSignals) {