]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRunLoader.cxx
protection agains wrong centrality bin
[u/mrichter/AliRoot.git] / STEER / AliRunLoader.cxx
index 3bfbf993eead358911fa573bf4d36c53e5497513..3e0f17257a7f1130e6acc91f33258732431c148a 100644 (file)
@@ -86,6 +86,7 @@ const TString AliRunLoader::fgkDefaultTriggerFileName("Trigger.root");
 AliRunLoader::AliRunLoader():
  fLoaders(0x0),
  fEventFolder(0x0),
+ fRun(-1),
  fCurrentEvent(0),
  fGAFile(0x0),
  fHeader(0x0),
@@ -94,6 +95,7 @@ AliRunLoader::AliRunLoader():
  fKineDataLoader(0x0),
  fTrackRefsDataLoader(0x0),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
   AliConfig::Instance();//force to build the folder structure
@@ -105,6 +107,7 @@ AliRunLoader::AliRunLoader(const char* eventfoldername):
  TNamed(fgkRunLoaderName,fgkRunLoaderName),
  fLoaders(new TObjArray()),
  fEventFolder(0x0),
+ fRun(-1),
  fCurrentEvent(0),
  fGAFile(0x0),
  fHeader(0x0),
@@ -113,6 +116,7 @@ AliRunLoader::AliRunLoader(const char* eventfoldername):
  fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
  fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
 //ctor
@@ -124,11 +128,11 @@ AliRunLoader::AliRunLoader(const char* eventfoldername):
 AliRunLoader::~AliRunLoader()
 {
 //dtor
-  if (fgRunLoader == this) fgRunLoader = 0x0;
+
   
   UnloadHeader();
   UnloadgAlice();
-  
+  if (fgRunLoader == this) fgRunLoader = 0x0;  
   if(fLoaders) {
     fLoaders->SetOwner();
     delete fLoaders;
@@ -142,7 +146,6 @@ AliRunLoader::~AliRunLoader()
   
   //fEventFolder is deleted by the way of removing - TopAliceFolder owns it
   if( fCTrigger ) delete  fCTrigger;
-  delete fHeader;
   delete fStack;
   delete fGAFile;
 }
@@ -152,6 +155,7 @@ AliRunLoader::AliRunLoader(TFolder* topfolder):
  TNamed(fgkRunLoaderName,fgkRunLoaderName),
  fLoaders(new TObjArray()),
  fEventFolder(topfolder),
+ fRun(-1),
  fCurrentEvent(0),
  fGAFile(0x0),
  fHeader(0x0),
@@ -160,6 +164,7 @@ AliRunLoader::AliRunLoader(TFolder* topfolder):
  fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
  fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
 //ctor
@@ -615,7 +620,9 @@ void AliRunLoader::MakeTree(Option_t *option)
       // create the CTP Trigger output file and tree
       TFile* file = gROOT->GetFile( fgkDefaultTriggerFileName );
       if( !file ) {
-         file = TFile::Open( gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() ), "RECREATE" ) ;
+        char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() );
+        file = TFile::Open(tmp , "RECREATE" ) ;
+        delete[] tmp;
       }
 
       file->cd();
@@ -712,9 +719,10 @@ Int_t AliRunLoader::LoadHeader()
 Int_t AliRunLoader::LoadTrigger(Option_t* option)
 {
    //Load treeCT
-
+   static Bool_t warned = kFALSE;
    if( TreeCT() ) {
-      AliWarning("Trigger is already loaded. Nothing done");
+      if (!warned) AliWarning("Trigger is already loaded. Nothing done. Message will not be repeated.");
+      warned = kTRUE;
       return 0;
    }
  
@@ -723,8 +731,11 @@ Int_t AliRunLoader::LoadTrigger(Option_t* option)
       return 1;
    }
    // get the CTP Trigger output file and tree
-   TString trgfile = gSystem->ConcatFileName( fUnixDirName.Data(),
-                                              fgkDefaultTriggerFileName.Data() );
+  char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(),
+                                      fgkDefaultTriggerFileName.Data() );
+  TString trgfile(tmp);
+  delete[] tmp;
+  
    TFile* file = gROOT->GetFile( trgfile );
    if( !file ) {
       file = TFile::Open( trgfile, option ) ;
@@ -1953,7 +1964,6 @@ void AliRunLoader::UnloadHeader()
  //removes TreeE from folder and deletes it
  // as well as fHeader object
  CleanHeader();
- delete fHeader;
  fHeader = 0x0;
 }
 /**************************************************************************/