//Author: Alice Offline Group http://alisoft.cern.ch
//Responsible: Piotr.Skowronski@cern.ch
//
-#include <AliLoader.h>
+#include "AliLoader.h"
//Root includes
#include <TROOT.h>
-#include <TFolder.h>
#include <TFile.h>
-#include <TTree.h>
-#include <TTask.h>
+#include <TFolder.h>
#include <TString.h>
-#include <TError.h>
+#include <TTask.h>
//AliRoot includes
-#include <AliRun.h>
-#include <AliRunLoader.h>
-#include <AliRunDigitizer.h>
-#include <AliDigitizer.h>
-#include <AliDetector.h>
#include "AliConfig.h"
-
-Int_t AliLoader::fgDebug = 0;
+#include "AliDetector.h"
+#include "AliDigitizer.h"
+#include "AliLog.h"
+#include "AliRun.h"
+#include "AliRunLoader.h"
const TString AliLoader::fgkDefaultHitsContainerName("TreeH");
const TString AliLoader::fgkDefaultDigitsContainerName = "TreeD";
fModuleFolder(0x0),
fTasksFolder(0x0),
fQAFolder(0x0)
- {
+{
//default constructor
}
fQAFolder(0x0)
{
//ctor
- if (GetDebug()) Info("AliLoader(const Char_t* detname,const Char_t* eventfoldername)",
- "detname = %s eventfoldername = %s",detname,eventfoldername);
+ AliDebug(1, Form("detname = %s eventfoldername = %s",detname,eventfoldername));
//try to find folder eventfoldername in top alice folder
//safe because GetTopFolder will abort in case of failure
//fileoption's don't need to initialized because default TString ctor does it correctly
}
/*****************************************************************************/
-AliLoader::AliLoader(const AliLoader& source):TNamed(source) {
+AliLoader::AliLoader(const AliLoader& source) :
+ TNamed(source),
+ fDataLoaders(source.fDataLoaders),
+ fDetectorName(source.fDetectorName),
+ fEventFolder(source.fEventFolder),
+ fDataFolder(source.fDataFolder),
+ fDetectorDataFolder(source.fDetectorDataFolder),
+ fModuleFolder(source.fModuleFolder),
+ fTasksFolder(source.fTasksFolder),
+ fQAFolder(source.fQAFolder)
+{
// dummy copy constructor
if(&source==this)return;
- Fatal("AliLoader","Copy constructor not implemented. Aborting");
+ AliFatal("Copy constructor not implemented. Aborting");
return;
}
// dummy assignment operator
if(&source==this) return *this;
- Fatal("AliLoader","Assignment operator not implemented. Aborting");
+ AliFatal("Assignment operator not implemented. Aborting");
return *this;
}
//
if (dl == 0x0)
{
- Error("AddDataLoader","Pointer is NULL");
+ AliError("Pointer is NULL");
return;
}
if (fDataLoaders->FindObject(dl->GetName()))
{
- Error("AddDataLoader","Such a loader exists");
+ AliError("Such a loader exists");
return;
}
fDataLoaders->AddLast(dl);
retval = dl->GetEvent();
if (retval)
{
- Error("GetEvent","Error occured while GetEvent for %s",dl->GetName());
+ AliError(Form("Error occured while GetEvent for %s",dl->GetName()));
return retval;
}
}
if (!fDataFolder)
{
- Fatal("GetDataFolder","Can not find AliRoot data folder. Aborting");
+ AliFatal("Can not find AliRoot data folder. Aborting");
return 0x0;
}
}
if (!fTasksFolder)
{
- Fatal("GetTasksFolder","Can not find tasks folder. Aborting");
+ AliFatal("Can not find tasks folder. Aborting");
return 0x0;
}
}
if (!fModuleFolder)
{
- Fatal("GetModulesFolder","Can not find modules folder. Aborting");
+ AliFatal("Can not find modules folder. Aborting");
return 0x0;
}
}
if (fQAFolder == 0x0)
{
- Fatal("GetQAFolder","Can not find Quality Assurance folder. Aborting");
+ AliFatal("Can not find Quality Assurance folder. Aborting");
return 0x0;
}
}
TTask* qat = AliRunLoader::GetRunQATask();
if ( qat == 0x0 )
{
- Error("QAtask","Can not get RunQATask. (Name:%s)",GetName());
+ AliError(Form("Can not get RunQATask. (Name:%s)",GetName()));
return 0x0;
}
if ( dqat == 0x0 )
{
- Error("QAtask","Can not find QATask in RunQATask for %s",GetDetectorName().Data());
+ AliError(Form("Can not find QATask in RunQATask for %s",GetDetectorName().Data()));
return 0x0;
}
if(taskname.BeginsWith(name))
return task ;
}
- Error("QAtask","Can not find sub-task with name starting with %s in task %s",name,dqat->GetName());
+ AliError(Form("Can not find sub-task with name starting with %s in task %s",name,dqat->GetName()));
return 0x0;
}
/*****************************************************************************/
if (file == 0x0)
{
- ::Error("AliLoader::ChangeDir","File is null");
+ AliErrorClass("File is null");
return 0x0;
}
if (file->IsOpen() == kFALSE)
{
- ::Error("AliLoader::ChangeDir","File is not opened");
+ AliErrorClass("File is not opened");
return 0x0;
}
TString dirname("Event");
dirname+=eventno;
- if (AliLoader::fgDebug > 1)
- ::Info("AliLoader::ChangeDir","Changing Dir to %s in file %s.",dirname.Data(),file->GetName());
+ AliDebugClass(1, Form("Changing Dir to %s in file %s.",dirname.Data(),file->GetName()));
Bool_t result;
if (dir == 0x0)
{
- if (AliLoader::fgDebug > 1)
- ::Info("AliLoader::ChangeDir","Can not find directory %s in file %s, creating...",
- dirname.Data(),file->GetName());
+ AliDebugClass(1, Form("Can not find directory %s in file %s, creating...",
+ dirname.Data(),file->GetName()));
if (file->IsWritable() == kFALSE)
{
- ::Error("AliLoader::ChangeDir","Can not create directory. File %s in not writable.",
- file->GetName());
+ AliErrorClass(Form("Can not create directory. File %s in not writable.",
+ file->GetName()));
return 0x0;
}
TDirectory* newdir = file->mkdir(dirname);
if (newdir == 0x0)
{
- ::Error("AliLoader::ChangeDir","Failed to create new directory in file %s.",
- file->GetName());
+ AliErrorClass(Form("Failed to create new directory in file %s.",
+ file->GetName()));
return 0x0;
}
result = file->cd(dirname);
AliDataLoader* dl;
while ((dl = (AliDataLoader*)next()))
{
- if (GetDebug()) Info("CleanFolders","name = %s cleaning",dl->GetName());
+ AliDebug(1, Form("name = %s cleaning",dl->GetName()));
dl->Clean();
}
}
//removes and deletes detector task from Run Task
if ( GetSDigitsDataLoader()->GetBaseTaskLoader() == 0x0 )
{
- Warning("CleanSDigitizer","Task Loader for SDigits does not exist");
+ AliWarning("Task Loader for SDigits does not exist");
return;
}
GetSDigitsDataLoader()->GetBaseTaskLoader()->Clean();
//removes and deletes detector task from Run Task
if ( GetDigitsDataLoader()->GetBaseTaskLoader() == 0x0 )
{
- Warning("CleanDigitizer","Task Loader for Digits does not exist");
+ AliWarning("Task Loader for Digits does not exist");
return;
}
GetDigitsDataLoader()->GetBaseTaskLoader()->Clean();
//removes and deletes detector Reconstructioner from Run Reconstructioner
if ( GetRecPointsDataLoader()->GetBaseTaskLoader() == 0x0 )
{
- Warning("CleanSDigitizer","Task Loader for SDigits does not exist");
+ AliWarning("Task Loader for SDigits does not exist");
return;
}
GetRecPointsDataLoader()->GetBaseTaskLoader()->Clean();
//removes and deletes detector task from Run Task
if ( GetTracksDataLoader()->GetBaseTaskLoader() == 0x0 )
{
- Warning("CleanTracker","Task Loader for Tracks does not exist");
+ AliWarning("Task Loader for Tracks does not exist");
return;
}
GetTracksDataLoader()->GetBaseTaskLoader()->Clean();
if ( GetRecParticlesDataLoader()->GetBaseTaskLoader() == 0x0 )
{
- Warning("CleanPIDTask","Task Loader for Reconstructed Particles does not exist");
+ AliWarning("Task Loader for Reconstructed Particles does not exist");
return;
}
GetRecParticlesDataLoader()->GetBaseTaskLoader()->Clean();
Int_t err = dl->Reload();
if (err)
{
- Error("ReloadAll","Reload returned error for %s",dl->GetName());
+ AliError(Form("Reload returned error for %s",dl->GetName()));
return err;
}
}
//sets the event folder
if (eventfolder == 0x0)
{
- Error("SetEventFolder","Stupid joke. Argument is NULL");
+ AliError("Stupid joke. Argument is NULL");
return 1;
}
//creation of folder structure as well (some detectors needs folders
//alrady in constructors)
- if (GetDebug()) Info("Register","Name is %s.",GetName());
+ AliDebug(1, Form("Name is %s.",GetName()));
if (eventFolder == 0x0)
{
- Error("Register","Event folder is not set.");
+ AliError("Event folder is not set.");
return 1;
}
Int_t retval = AliConfig::Instance()->AddDetector(eventFolder,fDetectorName,fDetectorName);
if(retval)
{
- Error("SetEventFolder","Can not create tasks and/or folders for %s. Event folder name is %s",
- fDetectorName.Data(),eventFolder->GetName());
+ AliError(Form("Can not create tasks and/or folders for %s. Event folder name is %s",
+ fDetectorName.Data(),eventFolder->GetName()));
return retval;
}
SetEventFolder(eventFolder);
/*****************************************************************************/
void AliLoader::SetDirName(TString& dirname)
{
-//adds "dirname/" to each file
+//adds "dirname" to each file. Dirname should end with "#","/", or ":"
TIter next(fDataLoaders);
AliDataLoader* dl;
while((dl = (AliDataLoader*)next()))
TObject* obj = GetDetectorDataFolder()->FindObject(name);
if(obj)
{
- if (GetDebug())
- Info("Clean(const TString&)","name=%s, cleaning %s.",GetName(),name.Data());
+ AliDebug(1, Form("name=%s, cleaning %s.",GetName(),name.Data()));
GetDetectorDataFolder()->Remove(obj);
delete obj;
}
if (opt.CompareTo("update",TString::kIgnoreCase)) return kTRUE;
return kFALSE;
}
+
+/*****************************************************************************/
+
+void AliLoader::SetDebug(Int_t deb)
+{
+ // Sets debug level
+ AliLog::SetClassDebugLevel("AliRunLoader", deb);
+ AliLog::SetClassDebugLevel("AliLoader", deb);
+ AliLog::SetClassDebugLevel("AliDataLoader", deb);
+ AliLog::SetClassDebugLevel("AliBaseLoader", deb);
+ AliLog::SetClassDebugLevel("AliObjectLoader", deb);
+ AliLog::SetClassDebugLevel("AliTreeLoader", deb);
+ AliLog::SetClassDebugLevel("AliTaskLoader", deb);
+ AliLog::SetClassDebugLevel("AliConfig", deb);
+}
/*****************************************************************************/
void AliLoader::SetTAddrInDet()