AliPHOSGetter is removed here
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 Apr 2008 18:15:35 +0000 (18:15 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 9 Apr 2008 18:15:35 +0000 (18:15 +0000)
PHOS/AliPHOS.cxx
PHOS/AliPHOSDigitizer.cxx
PHOS/AliPHOSLoader.cxx
PHOS/AliPHOSReconstructor.cxx
PHOS/AliPHOSSDigitizer.cxx
PHOS/AliPHOSTrigger.cxx
PHOS/AliPHOSTrigger.h

index d4131c8..b2d8170 100644 (file)
@@ -78,7 +78,7 @@ class TFile;
 // --- AliRoot header files ---
 #include "AliMagF.h"
 #include "AliPHOS.h"
-#include "AliPHOSGetter.h"
+#include "AliPHOSLoader.h"
 #include "AliRun.h"
 #include "AliPHOSDigitizer.h"
 #include "AliPHOSSDigitizer.h"
index 2c03c8d..fa8f465 100644 (file)
@@ -700,7 +700,10 @@ Bool_t AliPHOSDigitizer::Init()
   // Makes all memory allocations
   fInit = kTRUE ; 
 
-  const AliPHOSGeometry *geom = AliPHOSGeometry::GetInstance() ;
+  AliPHOSGeometry *geom;
+  if (!(geom = AliPHOSGeometry::GetInstance())) 
+        geom = AliPHOSGeometry::GetInstance("IHEP","");
+//   const AliPHOSGeometry *geom = AliPHOSGeometry::GetInstance() ;
 
   fEmcCrystals = geom->GetNModules() * geom->GetNCristalsInModule() ;
   
index b0b330d..d76e6fa 100644 (file)
 //     ................
 //  please->GetEvent(event) ;    // reads new event from galice.root
 //                  
-//*-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
-//*--         Completely redesigned by Dmitri Peressounko March 2001  
+//-- Author: Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
+//--         Completely redesigned by Dmitri Peressounko March 2001  
 //
-//*-- YS June 2001 : renamed the original AliPHOSIndexToObject and make
-//*--         systematic usage of TFolders without changing the interface        
+//-- YS June 2001 : renamed the original AliPHOSIndexToObject and make
+//--         systematic usage of TFolders without changing the interface        
 //////////////////////////////////////////////////////////////////////////////
 
 
@@ -130,10 +130,10 @@ AliPHOSLoader::~AliPHOSLoader()
   Clean(fgkTracksName);
   Clean(fgkRecParticlesName);
   CleanFolders() ;
-  // set to 0x0 the objgetter in AliGetter ... weird isn it !
-  AliPHOSGetter * gime = AliPHOSGetter::Instance() ; // (AliLoader::GetRunLoader()->GetFileName()).Data()) ; 
-  if (gime) 
-    gime->Reset() ;
+//   // set to 0x0 the objgetter in AliGetter ... weird isn it !
+//   AliPHOSGetter * gime = AliPHOSGetter::Instance() ; // (AliLoader::GetRunLoader()->GetFileName()).Data()) ; 
+//   if (gime) 
+//     gime->Reset() ;
 }
 
 //____________________________________________________________________________ 
index 1c5074a..778365a 100644 (file)
@@ -167,7 +167,8 @@ void AliPHOSReconstructor::FillESD(TTree* digitsTree, TTree* clustersTree,
 
   AliPHOSTrigger tr ;
   //   tr.SetPatchSize(1);//create 4x4 patches
-  tr.Trigger();
+  tr.SetSimulation(kFALSE);
+  tr.Trigger(digitsArray);
   
   Float_t maxAmp2x2  = tr.Get2x2MaxAmplitude();
   Float_t maxAmpnxn  = tr.GetnxnMaxAmplitude();
@@ -186,9 +187,10 @@ void AliPHOSReconstructor::FillESD(TTree* digitsTree, TTree* clustersTree,
   AliDebug(2, Form("Trigger 4x4 max amp %f , out amp %f, SM %d, iphi %d, ieta %d",
                   maxAmpnxn, ampOutOfPatchnxn, iSMnxn,iCrystalPhinxn, iCrystalEtanxn));
 
-  Int_t iRelId2x2 []= {iSM2x2+1,0,iCrystalPhi2x2,iCrystalEta2x2};// PHOS modules in order to calculate AbsId need to be 1-5 not 0-4 as returns trigger.
+  // Attention! PHOS modules in order to calculate AbsId need to be 1-5 not 0-4 as returns trigger.
+  Int_t iRelId2x2 []= {iSM2x2+1,0,iCrystalPhi2x2,iCrystalEta2x2};
   Int_t iAbsId2x2 =-1;
-  Int_t iRelIdnxn []= {iSMnxn+1,0,iCrystalPhinxn,iCrystalEtanxn};// PHOS modules in order to calculate AbsId need to be 1-5 not 0-4 as returns trigger.
+  Int_t iRelIdnxn []= {iSMnxn+1,0,iCrystalPhinxn,iCrystalEtanxn};
   Int_t iAbsIdnxn =-1;
   TVector3    pos2x2(-1,-1,-1);
   TVector3    posnxn(-1,-1,-1);
index d86e4b8..e5bbb10 100644 (file)
@@ -74,7 +74,6 @@
 
 // --- ROOT system ---
 #include "TBenchmark.h"
-               //#include "TObjectTable.h"
 
 // --- Standard library ---
 
@@ -82,7 +81,7 @@
 #include "AliLog.h"
 #include "AliPHOSGeometry.h" 
 #include "AliPHOSDigit.h"
-#include "AliPHOSGetter.h"
+#include "AliPHOSLoader.h"
 #include "AliPHOSHit.h"
 #include "AliPHOSSDigitizer.h"
 
@@ -149,33 +148,29 @@ AliPHOSSDigitizer& AliPHOSSDigitizer::operator = (const AliPHOSSDigitizer& qa)
 //____________________________________________________________________________ 
 AliPHOSSDigitizer::~AliPHOSSDigitizer() {
   //dtor
-  AliPHOSGetter * gime =
-    AliPHOSGetter::Instance();  
-  gime->PhosLoader()->CleanSDigitizer();
+  AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
+  if(rl){
+    AliPHOSLoader * phosLoader = 
+      dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
+    phosLoader->CleanSDigitizer() ;
+  }
 }
 
 //____________________________________________________________________________ 
 void AliPHOSSDigitizer::Init()
 {
-  // Uses the getter to access the required files
+  // Uses the Loader to access the required files
   
   fInit = kTRUE ; 
   
-  AliPHOSGetter * gime = AliPHOSGetter::Instance(GetTitle(), fEventFolderName.Data());  
-  if ( gime == 0 ) {
-    Fatal("Init" ,"Could not obtain the Getter object for file %s and event %s !", GetTitle(), fEventFolderName.Data()) ;  
-    return ;
-  } 
-  
-  TString opt("SDigits") ; 
-  if(gime->VersionExists(opt) ) { 
-    Error( "Init", "Give a version name different from %s", fEventFolderName.Data() ) ;
-    fInit = kFALSE ; 
-  }
-
-  gime->PostSDigitizer(this);
-  gime->PhosLoader()->GetSDigitsDataLoader()->GetBaseTaskLoader()->SetDoNotReload(kTRUE);
+  //to prevent cleaning of this object while GetEvent is called
+  AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
+  if (!rl)
+    rl = AliRunLoader::Open(GetTitle(), fEventFolderName) ; 
+
+  AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
+  phosLoader->PostSDigitizer(this);
+  phosLoader->GetSDigitsDataLoader()->GetBaseTaskLoader()->SetDoNotReload(kTRUE);
 }
 
 //____________________________________________________________________________ 
@@ -218,7 +213,8 @@ void AliPHOSSDigitizer::Exec(Option_t *option)
        AliInfo("QA status in RAW was Info") ;
   }
 */
-  AliPHOSGetter * gime = AliPHOSGetter::Instance() ;
+  AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
+  AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
 
   //switch off reloading of this task while getting event
   if (!fInit) { // to prevent overwrite existing file
@@ -227,20 +223,33 @@ void AliPHOSSDigitizer::Exec(Option_t *option)
   }
 
   if (fLastEvent == -1) 
-    fLastEvent = gime->MaxEvent() - 1 ;
+    fLastEvent = rl->GetNumberOfEvents() - 1 ;
   else 
-    fLastEvent = TMath::Min(fFirstEvent, gime->MaxEvent()); // only ine event at the time 
+    fLastEvent = TMath::Min(fFirstEvent, rl->GetNumberOfEvents()); // only one event at the time 
   Int_t nEvents   = fLastEvent - fFirstEvent + 1;
   
   Int_t ievent, i;
 
   for (ievent = fFirstEvent; ievent <= fLastEvent; ievent++) {    
-    gime->Event(ievent,"H") ;   
-    TTree * treeS = gime->TreeS(); 
-    TClonesArray * hits = gime->Hits() ;
-    TClonesArray * sdigits = gime->SDigits() ;
+    rl->GetEvent(ievent) ;
+    TTree * treeS = phosLoader->TreeS(); 
+    if(!treeS){
+      phosLoader->MakeTree("S");
+      treeS = phosLoader->TreeS();
+    }
+
+    phosLoader->CleanHits() ; 
+    phosLoader->LoadHits("READ") ;
+
+    TClonesArray * hits    = phosLoader->Hits() ;
+    TClonesArray * sdigits = phosLoader->SDigits() ;
+    if( !sdigits ) {
+      phosLoader->MakeSDigitsArray() ; 
+      sdigits = phosLoader->SDigits() ;
+    }
     sdigits->Clear();
     Int_t nSdigits = 0 ;
+
     //Now make SDigits from hits, for PHOS it is the same, so just copy    
     for ( i = 0 ; i < hits->GetEntries() ; i++ ) {
       AliPHOSHit * hit = dynamic_cast<AliPHOSHit *>(hits->At(i)) ;
@@ -287,16 +296,11 @@ void AliPHOSSDigitizer::Exec(Option_t *option)
 
     Int_t bufferSize = 32000 ;
     TBranch * sdigitsBranch = treeS->Branch("PHOS",&sdigits,bufferSize);
-
     sdigitsBranch->Fill() ;
 
-    gime->WriteSDigits("OVERWRITE");
+    phosLoader->WriteSDigits("OVERWRITE");
+    phosLoader->WriteSDigitizer("OVERWRITE");
 
-    //Next - SDigitizer
-
-    gime->WriteSDigitizer("OVERWRITE");
-    //gObjectTable->Print() ; 
-  
     if(strstr(option,"deb"))
       PrintSDigits(option) ;
       
@@ -309,12 +313,11 @@ void AliPHOSSDigitizer::Exec(Option_t *option)
 
   Unload();
 
-  //  gime->PhosLoader()->GetSDigitsDataLoader()->GetBaseTaskLoader()->SetDoNotReload(kTRUE);
-  
   if(strstr(option,"tim")){
     gBenchmark->Stop("PHOSSDigitizer");
     Info("Exec","   took %f seconds for SDigitizing  %f seconds per event",
-        gBenchmark->GetCpuTime("PHOSSDigitizer"), gBenchmark->GetCpuTime("PHOSSDigitizer")/nEvents) ;
+        gBenchmark->GetCpuTime("PHOSSDigitizer"), 
+        gBenchmark->GetCpuTime("PHOSSDigitizer")/nEvents) ;
   }
   
 }
@@ -347,17 +350,18 @@ void AliPHOSSDigitizer::PrintSDigits(Option_t * option)
 {
   // Prints list of digits produced in the current pass of AliPHOSDigitizer
 
-
-  AliPHOSGetter * gime = AliPHOSGetter::Instance() ; 
+  AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
+  AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
 
   // Get PHOS Geometry object
   AliPHOSGeometry *geom;
   if (!(geom = AliPHOSGeometry::GetInstance())) 
         geom = AliPHOSGeometry::GetInstance("IHEP","");
 
-  const TClonesArray * sdigits = gime->SDigits() ;
+  const TClonesArray * sdigits = phosLoader->SDigits() ;
   
-  Info( "\nPrintSDigits", "event # %d %d sdigits", gAlice->GetEvNumber(), sdigits->GetEntriesFast() ) ; 
+  Info( "\nPrintSDigits", "event # %d %d sdigits", 
+       gAlice->GetEvNumber(), sdigits->GetEntriesFast() ) ; 
 
   if(strstr(option,"all")||strstr(option,"EMC")){
     
@@ -406,8 +410,8 @@ void AliPHOSSDigitizer::PrintSDigits(Option_t * option)
 void AliPHOSSDigitizer::Unload() const
 {
   // Unloads the objects from the folder
-  AliPHOSGetter * gime = AliPHOSGetter::Instance() ; 
-  AliPHOSLoader * loader = gime->PhosLoader() ; 
-  loader->UnloadHits() ; 
-  loader->UnloadSDigits() ; 
+  AliRunLoader* rl = AliRunLoader::GetRunLoader(fEventFolderName) ;
+  AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
+  phosLoader->UnloadHits() ; 
+  phosLoader->UnloadSDigits() ; 
 }
index a389722..ba2bbc4 100644 (file)
 
 
 // --- ROOT system ---
+#include "TMath.h"
 
 // --- ALIROOT system ---
+#include "AliConfig.h"
 #include "AliPHOS.h"
 #include "AliPHOSTrigger.h" 
 #include "AliPHOSGeometry.h"
-#include "AliPHOSGetter.h" 
+#include "AliPHOSDigit.h" 
+#include "AliPHOSLoader.h" 
 #include "AliPHOSPulseGenerator.h" 
 #include "AliTriggerInput.h"
 
@@ -121,6 +124,7 @@ AliPHOSTrigger::AliPHOSTrigger(const AliPHOSTrigger & trig) :
   // cpy ctor
 }
 
+//_________________________________________________________________________
 AliPHOSTrigger::~AliPHOSTrigger() 
 {
   // dtor
@@ -640,32 +644,21 @@ void AliPHOSTrigger::SetTriggers(const TClonesArray * ampmatrix, const Int_t iMo
 }
 
 //____________________________________________________________________________
-void AliPHOSTrigger::Trigger() 
+void AliPHOSTrigger::Trigger(TClonesArray *digits) 
 {
-
   //Main Method to select triggers.
 
-  AliRunLoader * rl = AliRunLoader::GetRunLoader(); 
-  TString fileName = rl->GetFileName() ; 
-  DoIt(fileName.Data()) ; 
+  fDigitsList = digits;
+  DoIt() ; 
 }
 
 //____________________________________________________________________________
-void AliPHOSTrigger::Trigger(const char * fileName) 
-{
-
-  //Main Method to select triggers.
-
-  
-  DoIt(fileName) ; 
-}
-
-//____________________________________________________________________________
-void AliPHOSTrigger::DoIt(const char * fileName) 
+void AliPHOSTrigger::DoIt()
 {
   // does the trigger job
 
-  AliPHOSGetter * gime = AliPHOSGetter::Instance( fileName ) ;
+  AliRunLoader* rl = AliRunLoader::GetRunLoader() ;
+  AliPHOSLoader * phosLoader = dynamic_cast<AliPHOSLoader*>(rl->GetLoader("PHOSLoader"));
   
   // Get PHOS Geometry object
   AliPHOSGeometry *geom;
@@ -683,7 +676,7 @@ void AliPHOSTrigger::DoIt(const char * fileName)
 
   //Take the digits list if simulation
   if(fSimulation)
-    fDigitsList = gime->Digits() ;
+    fDigitsList = phosLoader->Digits() ;
   
   if(!fDigitsList)
     AliFatal("Digits not found !") ;
@@ -707,7 +700,7 @@ void AliPHOSTrigger::DoIt(const char * fileName)
     //Set the trigger
     if(fIsolateInModule)
       SetTriggers(ampmods,imod,ampmax2,ampmaxn) ;
-    if(!fIsolateInModule)
+    else
       SetTriggers(amptrus,imod,ampmax2,ampmaxn) ;
   }
 
index eb93c77..bacc11f 100644 (file)
@@ -47,8 +47,8 @@ class AliPHOSTrigger : public AliTriggerDetector {
 
   virtual void    CreateInputs(); //Define trigger inputs for Central Trigger Processor
   void            Print(const Option_t * opt ="") const ;  
-  virtual void    Trigger();  //Make PHOS trigger
-  void    Trigger(const char * fileName);  //Make PHOS trigger
+  virtual void    Trigger() {}                   //Make PHOS trigger
+  void            Trigger(TClonesArray *digits); //Make PHOS trigger
 
   //Getters
   Float_t  Get2x2MaxAmplitude()  const {return f2x2MaxAmp ; }
@@ -126,7 +126,7 @@ class AliPHOSTrigger : public AliTriggerDetector {
 
   void SetTriggers(const TClonesArray * amptrus, Int_t iMod, const TMatrixD &ampmax2,const TMatrixD &ampmaxn) ;
 
-  void DoIt(const char * fileName) ; 
+  void DoIt() ; 
  
  private: