ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//____________________________________________________________________
//////////////////////////////////////////////////////////////////////
//                                                                  //
// class AliRunLoader                                               //
//                                                                  //
// This class aims to be the unque interface for managing data I/O. //
// It stores Loaders for all modules which, knows names             //
// of the files were data are to be stored.                         //
//                                                                  //
// It aims to substitud AliRun in automatic data managing           //
// thus there is no necessity of loading gAlice from file in order  //
// to get access to the data.                                       //
//                                                                  //
// Logical place to put the specific Loader to the given            //
// detector is detector  itself (i.e ITSLoader in ITS).             //
// But, to load detector object one need to load gAlice, and        //
// by the way all other detectors with their geometrieces and       //
// so on. So, if one need to open TPC clusters there is no          //
// principal need to read everything.                               //
//                                                                  //
//                                                                  //
// When RunLoader is read from the file it does not connect to      //
// the folder structure automatically. It must be connected         //
// (mounted) manualy. Default event folder is defined by            //
// AliConfig::GetDefaultEventFolderName()                           //
// but can be mounted elsewhere. Usefull specially in merging case, //
// when more than pone session needs to be loaded                   //
//                                                                  //
//////////////////////////////////////////////////////////////////////

#include "AliRunLoader.h"
#include "AliLog.h"
#include "AliRun.h"
#include "AliLoader.h"
#include "AliHeader.h"
#include "AliStack.h"
#include "AliDetector.h"
#include "AliCDBManager.h"
#include "AliCDBLocal.h"
#include "AliCentralTrigger.h"

#include <TTree.h>
#include <TBranch.h>
#include <TROOT.h>
#include <TFile.h>
#include <TFolder.h>
#include <TObjArray.h>
#include <TString.h>

ClassImp(AliRunLoader)

AliRunLoader* AliRunLoader::fgRunLoader = 0x0;

const TString AliRunLoader::fgkRunLoaderName("RunLoader");
const TString AliRunLoader::fgkHeaderBranchName("Header");
const TString AliRunLoader::fgkTriggerBranchName("ClassMask");
const TString AliRunLoader::fgkHeaderContainerName("TE");
const TString AliRunLoader::fgkTriggerContainerName("TreeCT");
const TString AliRunLoader::fgkKineContainerName("TreeK");
const TString AliRunLoader::fgkTrackRefsContainerName("TreeTR");
const TString AliRunLoader::fgkKineBranchName("Particles");
const TString AliRunLoader::fgkDefaultKineFileName("Kinematics.root");
const TString AliRunLoader::fgkDefaultTrackRefsFileName("TrackRefs.root");
const TString AliRunLoader::fgkGAliceName("gAlice");
const TString AliRunLoader::fgkDefaultTriggerFileName("Trigger.root");
/**************************************************************************/

AliRunLoader::AliRunLoader():
 fLoaders(0x0),
 fEventFolder(0x0),
 fRun(-1),
 fCurrentEvent(0),
 fGAFile(0x0),
 fHeader(0x0),
 fStack(0x0),
 fCTrigger(0x0),
 fKineDataLoader(0x0),
 fTrackRefsDataLoader(0x0),
 fNEventsPerFile(1),
 fNEventsPerRun(0),
 fUnixDirName(".")
{
  AliConfig::Instance();//force to build the folder structure
  if (!fgRunLoader) fgRunLoader = this;
}
/**************************************************************************/

AliRunLoader::AliRunLoader(const char* eventfoldername):
 TNamed(fgkRunLoaderName,fgkRunLoaderName),
 fLoaders(new TObjArray()),
 fEventFolder(0x0),
 fRun(-1),
 fCurrentEvent(0),
 fGAFile(0x0),
 fHeader(0x0),
 fStack(0x0),
 fCTrigger(0x0),
 fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
 fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
 fNEventsPerFile(1),
 fNEventsPerRun(0),
 fUnixDirName(".")
{
//ctor
  SetEventFolderName(eventfoldername);
 if (!fgRunLoader) fgRunLoader = this;
}
/**************************************************************************/

AliRunLoader::~AliRunLoader()
{
//dtor

  
  UnloadHeader();
  UnloadgAlice();
  if (fgRunLoader == this) fgRunLoader = 0x0;  
  if(fLoaders) {
    fLoaders->SetOwner();
    delete fLoaders;
  }
  
  delete fKineDataLoader;
  delete fTrackRefsDataLoader;
  
  
  RemoveEventFolder();
  
  //fEventFolder is deleted by the way of removing - TopAliceFolder owns it
  if( fCTrigger ) delete  fCTrigger;
  delete fStack;
  delete fGAFile;
}
/**************************************************************************/

AliRunLoader::AliRunLoader(TFolder* topfolder):
 TNamed(fgkRunLoaderName,fgkRunLoaderName),
 fLoaders(new TObjArray()),
 fEventFolder(topfolder),
 fRun(-1),
 fCurrentEvent(0),
 fGAFile(0x0),
 fHeader(0x0),
 fStack(0x0),
 fCTrigger(0x0),
 fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
 fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
 fNEventsPerFile(1),
 fNEventsPerRun(0),
 fUnixDirName(".")
{
//ctor
 if(topfolder == 0x0)
  {
    TString errmsg("Parameter is NULL");
    AliError(errmsg.Data());
    throw errmsg;
    return;
  }
 
 TObject* obj = fEventFolder->FindObject(fgkRunLoaderName);
 if (obj)
  { //if it is, then sth. is going wrong... exits aliroot session
    TString errmsg("In Event Folder Named ");
    errmsg+=fEventFolder->GetName();
    errmsg+=" object named "+fgkRunLoaderName+" already exists. I am confused ...";

    AliError(errmsg.Data());
    throw errmsg;
    return;//never reached
  }

 if (!fgRunLoader) fgRunLoader = this;
   
 fEventFolder->Add(this);//put myself to the folder to accessible for all
  
}

/**************************************************************************/

Int_t AliRunLoader::GetEvent(Int_t evno)
{
//Gets event number evno
//Reloads all data properly
//PH  if (fCurrentEvent == evno) return 0;
  
  if (evno < 0)
   {
     AliError("Can not give the event with negative number");
     return 4;
   }

  if (evno >= GetNumberOfEvents())
   {
     AliError(Form("There is no event with number %d",evno));
     return 3;
   }
  
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  AliDebug(1, Form("          GETTING EVENT  %d",evno));
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
  AliDebug(1, ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
   
  fCurrentEvent = evno;

  Int_t retval;
  
  //Reload header (If header was loaded)
  if (GetHeader())
   {
     retval = TreeE()->GetEvent(fCurrentEvent);
     if ( retval == 0)
      {
        AliError(Form("Cannot find event: %d\n ",fCurrentEvent));
        return 5;
      }
   }
  //Reload stack (If header was loaded)
  if (TreeE()) fStack = GetHeader()->Stack();
  //Set event folder in stack (it does not mean that we read kinematics from file)
   if( GetTrigger() && TreeCT() ) {
      retval = TreeCT()->GetEvent(fCurrentEvent);
      if ( retval < 0 )      {
         AliError(Form("Error occured while GetEvent for Trigger. Event %d",evno));
         return 2;
      }
   }
  
  retval = SetEvent();
  if (retval)
   {
     AliError(Form("Error occured while setting event %d",evno));
     return 1;
   }
   
  //Post Track References
  retval = fTrackRefsDataLoader->GetEvent();
  if (retval)
   {
     AliError(Form("Error occured while GetEvent for Track References. Event %d",evno));
     return 2;
   }

  //Read Kinematics if loaded
  retval = fKineDataLoader->GetEvent();
  if (retval)
   {
     AliError(Form("Error occured while GetEvent for Kinematics. Event %d",evno));
     return 2;
   }

  if (fStack && fKineDataLoader->GetBaseLoader(0)->IsLoaded())
    {
	fStack->ConnectTree(TreeK());
	
      if (fStack->GetEvent() == kFALSE)
	{
	  AliError(Form("Error occured while GetEvent for Stack. Event %d",evno));
	  return 2;
	}
    }

  //Trigger data reloading in all loaders 
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
     retval = loader->GetEvent();
     if (retval)
      {
       AliError(Form("Error occured while getting event for %s. Event %d.",
		     loader->GetDetectorName().Data(), evno));
       return 3;
      }
   }
  
  SetDetectorAddresses();
  
  return 0;
}
/**************************************************************************/
Int_t AliRunLoader::SetEvent()
{
//if kinematics was loaded Cleans folder data

  Int_t retval;
  
  retval = fKineDataLoader->SetEvent();
  if (retval)
   {
     AliError("SetEvent for Kinamtics Data Loader retutned error.");
     return retval;
   }
  retval = fTrackRefsDataLoader->SetEvent(); 
  if (retval)
   {
     AliError("SetEvent for Track References Data Loader retutned error.");
     return retval;
   }

  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
     retval = loader->SetEvent();
     if (retval)
      {
        AliError(Form("SetEvent for %s Data Loader retutned error.",loader->GetName()));
        return retval;
      }
   }

  return 0;
}
/**************************************************************************/

Int_t AliRunLoader::SetEventNumber(Int_t evno)
{
  //cleans folders and sets the root dirs in files 
  if (fCurrentEvent == evno) return 0;
  fCurrentEvent = evno;
  return SetEvent();
}

/**************************************************************************/
AliCDBEntry* AliRunLoader::GetCDBEntry(const char* name) const
{
//Get an AliCDBEntry from the run data storage
  
  AliDebug(1, Form("Getting CDBEntry with name %s",name));

  if ( !(AliCDBManager::Instance()->IsDefaultStorageSet()) ) {
    AliError("No run data storage defined!");
    return 0x0;
  }
  return AliCDBManager::Instance()->GetDefaultStorage()->Get(name, GetHeader()->GetRun());

}

/**************************************************************************/
AliRunLoader* AliRunLoader::Open
  (const char* filename, const char* eventfoldername, Option_t* option)
{
//Opens a desired file 'filename'
//gets the the run-Loader and mounts it desired folder
//returns the pointer to run Loader which can be further used for accessing data 
//in case of error returns NULL
 
 static const TString kwebaddress("http://alisoft.cern.ch/people/skowron/codedoc/split/index.html");
 AliDebugClass(1,Form("\n\n\nNew I/O strcture: See more info:\n %s\n\n\n",kwebaddress.Data()));
 
 AliRunLoader* result = 0x0;
 
 /* ************************************************ */
 /* Chceck if folder with given name already exists  */
 /* ************************************************ */
 
 TObject* obj = AliConfig::Instance()->GetTopFolder()->FindObject(eventfoldername);
 if(obj)
  {
    TFolder* fold = dynamic_cast<TFolder*>(obj);
    if (fold == 0x0)
     {
      AliErrorClass("Such a obejct already exists in top alice folder and it is not a folder.");
      return 0x0;
     }
    
    //check if we can get RL from that folder
    result = AliRunLoader::GetRunLoader(eventfoldername);
    if (result == 0x0)
     {
       AliErrorClass(Form("Folder %s already exists, and can not find session there. Can not mount.",eventfoldername));
       return 0x0;
     }

    if (result->GetFileName().CompareTo(filename) != 0)
     {
       AliErrorClass("Other file is mounted in demanded folder. Can not mount.");
       return 0x0;
     }

    //check if now is demanded (re)creation 
    if ( AliLoader::TestFileOption(option) == kFALSE)
     {
       AliErrorClass(Form("Session already exists in folder %s and this session option is %s. Unable to proceed.",
			  eventfoldername,option));
       return 0x0;
     }
     
    //check if demanded option is update and existing one 
    TString tmpstr(option);
    if ( (tmpstr.CompareTo("update",TString::kIgnoreCase) == 0) && 
         (result->fGAFile->IsWritable() == kFALSE) )
     { 
       AliErrorClass(Form("Session already exists in folder %s and is not writable while this session option is %s. Unable to proceed.",
			  eventfoldername,option));
       return 0x0;
     }
     
    AliWarningClass("Session is already opened and mounted in demanded folder");	
    if (!fgRunLoader) fgRunLoader = result; //PH get access from any place
    return result;
  } //end of checking in case of existance of object named identically that folder session is being opened
 
 
 TFile * gAliceFile = TFile::Open(filename,option);//open a file
 if (!gAliceFile) 
  {//null pointer returned
    AliFatalClass(Form("Can not open file %s.",filename));
    return 0x0;
  }
  
 if (gAliceFile->IsOpen() == kFALSE)
  {//pointer to valid object returned but file is not opened
    AliErrorClass(Form("Can not open file %s.",filename));
    return 0x0;
  }
 
 //if file is "read" or "update" than we try to find AliRunLoader there - if not found cry and exit
 //else create new AliRunLoader
 if ( AliLoader::TestFileOption(option) )
  { 
    AliDebugClass(1, "Reading RL from file");
    
    result = dynamic_cast<AliRunLoader*>(gAliceFile->Get(fgkRunLoaderName));//get the run Loader from the file
    if (result == 0x0)
     {//didn't get
       AliErrorClass(Form("Can not find run-Loader in file %s.",filename));
       delete gAliceFile;//close the file
       return 0x0;
     }
    Int_t tmp = result->SetEventFolderName(eventfoldername);//mount a event folder   
    if (tmp)//if SetEvent  returned error
     {
       AliErrorClass(Form("Can not mount event in folder %s.",eventfoldername));
       delete result; //delete run-Loader
       delete gAliceFile;//close the file
       return 0x0;
     }
  }
 else
  {
    AliDebugClass(1, Form("Creating new AliRunLoader. Folder name is %s",eventfoldername));
    try
     {  
       result = new AliRunLoader(eventfoldername);
     }
    catch (TString& errmsg)
     {
       AliErrorClass(Form("AliRunLoader constrcutor has thrown exception: %s\n",errmsg.Data()));
       delete result;
       delete gAliceFile;//close the file
       return 0x0;
     }
  }
 
//procedure for extracting dir name from the file name 
 TString fname(filename);
 Int_t  nsl = fname.Last('#');//look for hash in file name
 TString dirname;
 if (nsl < 0) {//hash not found
   nsl = fname.Last('/');// look for slash
   if (nsl < 0) 
     nsl = fname.Last(':');// look for colon e.g. rfio:galice.root
 }

 if (nsl < 0) dirname = "./";      // no directory path, use "."
 else dirname = fname.Remove(nsl+1);// directory path
 
 AliDebugClass(1, Form("Dir name is : %s",dirname.Data()));
 
 result->SetDirName(dirname); 
 result->SetGAliceFile(gAliceFile);//set the pointer to gAliceFile
 if (!fgRunLoader) fgRunLoader = result; //PH get access from any place
 return result;
}
/**************************************************************************/
Int_t AliRunLoader::GetNumberOfEvents()
{
 //returns number of events in Run
 Int_t retval;
 if( TreeE() == 0x0 )
  {
    retval = LoadHeader();
    if (retval) 
     {
       AliError("Error occured while loading header");
       return -1;
     }
  }
 return (Int_t)TreeE()->GetEntries();
}
/**************************************************************************/

void AliRunLoader::MakeHeader()
{
 //Makes header and connects it to header tree (if it exists)
  AliDebug(1, "");
  if(fHeader == 0x0)
   {
     AliDebug(1, "Creating new Header Object");
     fHeader= new AliHeader();
   }
  TTree* tree = TreeE();
  if (tree)
   {
     AliDebug(1, "Got Tree from folder.");
     TBranch* branch = tree->GetBranch(fgkHeaderBranchName);
     if (branch == 0x0)
      {
        AliDebug(1, "Creating new branch");
        branch = tree->Branch(fgkHeaderBranchName, "AliHeader", &fHeader, 4000, 0);
        branch->SetAutoDelete(kFALSE);
      }
     else
      {
        AliDebug(1, "Got Branch from Tree");
        branch->SetAddress(&fHeader);
        tree->GetEvent(fCurrentEvent);
        fStack = fHeader->Stack(); //should be safe - if we created Stack, header returns pointer to the same object
        if (fStack)
         {
           if (TreeK()) {
	       fStack->ConnectTree(TreeK());
	       fStack->GetEvent();
	   }
         }
        else
        {
          AliDebug(1, "Header does not have a stack.");
        }
      }
   } 
  AliDebug(1, "Exiting MakeHeader method");
}
/**************************************************************************/

void AliRunLoader::MakeStack()
{
//Creates the stack object -  do not connect the tree
  if(fStack == 0x0)
   { 
     fStack = new AliStack(10000);
   }
}
/**************************************************************************/

void AliRunLoader::MakeTrigger()
{
 // Makes trigger object and connects it to trigger tree (if it exists)
   AliDebug( 1, "" );
   if( fCTrigger == 0x0 ) {
      AliDebug( 1, "Creating new Trigger Object" );
      fCTrigger = new AliCentralTrigger();
   }
   TTree* tree = TreeCT();
   if( tree ) {
      fCTrigger->MakeBranch( fgkTriggerBranchName, tree );
      tree->GetEvent( fCurrentEvent );
   }

   AliDebug( 1, "Exiting MakeTrigger method" );
}
/**************************************************************************/

void AliRunLoader::MakeTree(Option_t *option)
{
//Creates trees
  const char *oK  = strstr(option,"K");  //Kine
  const char *oE  = strstr(option,"E");  //Header
  const char *oGG = strstr(option,"GG"); //Central TriGGer
  
  if(oK)
  { 
      if (fKineDataLoader->GetBaseLoader(0)->IsLoaded() == kFALSE)
      {
	  AliError("Load Kinematics first");
      }
      else
      {
	  if (!TreeK()) {
	      fKineDataLoader->MakeTree();
	      MakeStack();
	  } 
	  fStack->ConnectTree(TreeK());
	  WriteKinematics("OVERWRITE");
      }
  } // TreeK
  
  if(oE && !TreeE())
   { 
     fGAFile->cd();
     TTree* tree = new TTree(fgkHeaderContainerName,"Tree with Headers");
     GetEventFolder()->Add(tree);
     MakeHeader();
     WriteHeader("OVERWRITE");
   }
  
   if(oGG && !TreeCT())
   {
      // create the CTP Trigger output file and tree
      TFile* file = gROOT->GetFile( fgkDefaultTriggerFileName );
      if( !file ) {
        char* tmp = gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() );
        file = TFile::Open(tmp , "RECREATE" ) ;
        delete[] tmp;
      }

      file->cd();
      TTree* tree = new TTree( fgkTriggerContainerName, "Tree with Central Trigger Mask" );
      GetEventFolder()->Add(tree);
      MakeTrigger();
  //    WriteHeader("OVERWRITE");
   }

  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
    loader->MakeTree(option);
   }

}
/**************************************************************************/
    
Int_t AliRunLoader::LoadgAlice()
{
//Loads gAlice from file
 if (GetAliRun())
  {
    AliWarning("AliRun is already in folder. Unload first.");
    return 0;
  }
 AliRun* alirun = dynamic_cast<AliRun*>(fGAFile->Get(fgkGAliceName));
 if (alirun == 0x0)
  {
    AliError(Form("Can not find gAlice in file %s",fGAFile->GetName()));
    return 2;
  }
 alirun->SetRunLoader(this);
 if (gAlice)
  {
    AliWarning(Form("gAlice already exists. Putting retrived object in folder named %s",
		    GetEventFolder()->GetName()));
  }
 else
  {
    gAlice = alirun;
  }
 SetDetectorAddresses();//calls SetTreeAddress for all detectors
 return 0; 
}
/**************************************************************************/

Int_t AliRunLoader::LoadHeader()
{
//loads treeE and reads header object for current event
 if (TreeE())
  {
     AliWarning("Header is already loaded. Use ReloadHeader to force reload. Nothing done");
     return 0;
  }
 
 if (GetEventFolder() == 0x0)
  {
    AliError("Event folder not specified yet");
    return 1;
  }

 if (fGAFile == 0x0)
  {
    AliError("Session not opened. Use AliRunLoader::Open");
    return 2;
  }
 
 if (fGAFile->IsOpen() == kFALSE)
  {
    AliError("Session not opened. Use AliRunLoader::Open");
    return 2;
  }

 TTree* tree = dynamic_cast<TTree*>(fGAFile->Get(fgkHeaderContainerName));
 if (tree == 0x0)
  {
    AliError(Form("Can not find header tree named %s in file %s",
		  fgkHeaderContainerName.Data(),fGAFile->GetName()));
    return 2;
  }

 if (tree == TreeE()) return 0;

 CleanHeader();
 GetEventFolder()->Add(tree);
 MakeHeader();//creates header object and connects to tree
 return 0; 

}
/**************************************************************************/

Int_t AliRunLoader::LoadTrigger(Option_t* option)
{
   //Load treeCT
   static Bool_t warned = kFALSE;
   if( TreeCT() ) {
      if (!warned) AliWarning("Trigger is already loaded. Nothing done. Message will not be repeated.");
      warned = kTRUE;
      return 0;
   }
 
   if( GetEventFolder() == 0x0 ) {
      AliError("Event folder not specified yet");
      return 1;
   }
   // get the CTP Trigger output file and tree
  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 ) ;
      if (!file || file->IsOpen() == kFALSE ) {
         AliError( Form( "Can not open trigger file %s", trgfile.Data() ) );
         return 2;
      }
   }
   file->cd();

   TTree* tree = dynamic_cast<TTree*>(file->Get( fgkTriggerContainerName ));
   if( !tree ) {
      AliError( Form( "Can not find trigger tree named %s in file %s",
                      fgkTriggerContainerName.Data(), file->GetName() ) );
      return 2;
   }

   CleanTrigger();

   fCTrigger = dynamic_cast<AliCentralTrigger*>(file->Get( "AliCentralTrigger" ));
   GetEventFolder()->Add( tree );
   MakeTrigger();

   return 0;
}

/**************************************************************************/

Int_t AliRunLoader::LoadKinematics(Option_t* option)
{
//Loads the kinematics 
 Int_t retval = fKineDataLoader->GetBaseLoader(0)->Load(option);
 if (retval)
  {
    AliError("Error occured while loading kinamatics tree.");
    return retval;
  }
 if (fStack) 
  {
      fStack->ConnectTree(TreeK());
      retval = fStack->GetEvent();
    if ( retval == kFALSE)
     {
       AliError("Error occured while loading kinamatics tree.");
       return retval;
     }
    
  }
 return 0;
}
/**************************************************************************/

Int_t AliRunLoader::OpenDataFile(const TString& filename,TFile*& file,TDirectory*& dir,Option_t* opt,Int_t cl)
{
//Opens File with kinematics
 if (file)
  {
    if (file->IsOpen() == kFALSE)
     {//pointer is not null but file is not opened
       AliWarning("Pointer to file is not null, but file is not opened");//risky any way
       delete file;
       file = 0x0; //proceed with opening procedure
     }
    else
     { 
       AliWarning(Form("File  %s already opened",filename.Data()));
       return 0;
     }
  }
//try to find if that file is opened somewere else
 file = (TFile *)( gROOT->GetListOfFiles()->FindObject(filename) );
 if (file)
  {
   if(file->IsOpen() == kTRUE)
    {
     AliWarning(Form("File %s already opened by sombody else.",file->GetName()));
     return 0;
    }
  }

 file = TFile::Open(filename,opt);
 if (file == 0x0)
  {//file is null
    AliError(Form("Can not open file %s",filename.Data()));
    return 1;
  }
 if (file->IsOpen() == kFALSE)
  {//file is not opened
    AliError(Form("Can not open file %s",filename.Data()));
   return 1;
  }
  
 file->SetCompressionLevel(cl);
 
 dir = AliLoader::ChangeDir(file,fCurrentEvent);
 if (dir == 0x0)
  {
    AliError(Form("Can not change to root directory in file %s",filename.Data()));
    return 3;
  }
 return 0; 
}
/**************************************************************************/

TTree* AliRunLoader::TreeE() const
{
 //returns the tree from folder; shortcut method
 if (AliDebugLevel() > 10) fEventFolder->ls();
 TObject *obj = fEventFolder->FindObject(fgkHeaderContainerName);
 return (obj)?dynamic_cast<TTree*>(obj):0x0;
}
/**************************************************************************/

TTree* AliRunLoader::TreeCT() const
{
 //returns the tree from folder; shortcut method
   if (AliDebugLevel() > 10) fEventFolder->ls();
   TObject *obj = fEventFolder->FindObject(fgkTriggerContainerName);
   return (obj)?dynamic_cast<TTree*>(obj):0x0;
}
/**************************************************************************/

AliHeader* AliRunLoader::GetHeader() const
{
//returns pointer header object
 return fHeader;
}
/**************************************************************************/

AliCentralTrigger* AliRunLoader::GetTrigger() const
{
//returns pointer trigger object
   return fCTrigger;
}

/**************************************************************************/
 
TTree* AliRunLoader::TreeK() const
{
 //returns the tree from folder; shortcut method
 TObject *obj = GetEventFolder()->FindObject(fgkKineContainerName);
 return (obj)?dynamic_cast<TTree*>(obj):0x0;
}
/**************************************************************************/

TTree* AliRunLoader::TreeTR() const
{
 //returns the tree from folder; shortcut method
 TObject* obj = GetEventFolder()->FindObject(fgkTrackRefsContainerName);
 return (obj)?dynamic_cast<TTree*>(obj):0x0;
}
/**************************************************************************/

AliRun* AliRunLoader::GetAliRun() const
{
//returns AliRun which sits in the folder
 if (fEventFolder == 0x0) return 0x0;
 TObject *obj = fEventFolder->FindObject(fgkGAliceName);
 return (obj)?dynamic_cast<AliRun*>(obj):0x0;
}
/**************************************************************************/

Int_t AliRunLoader::WriteHeader(Option_t* opt)
{
//writes treeE
  AliDebug(1, "WRITING HEADER");
  
  TTree* tree = TreeE();
  if ( tree == 0x0)
   {
     AliWarning("Can not find Header Tree in Folder");
     return 0;
   } 
  if (fGAFile->IsWritable() == kFALSE)
   {
     AliError(Form("File %s is not writable",fGAFile->GetName()));
     return 1;
   }

  TObject* obj = fGAFile->Get(fgkHeaderContainerName);
  if (obj)
   { //if they exist, see if option OVERWRITE is used
     TString tmp(opt);
     if(tmp.Contains("OVERWRITE",TString::kIgnoreCase) == 0)
      {//if it is not used -  give an error message and return an error code
        AliError("Tree already exisists. Use option \"OVERWRITE\" to overwrite previous data");
        return 3;
      }
   }
  fGAFile->cd();
  tree->SetDirectory(fGAFile);
  tree->Write(0,TObject::kOverwrite);

  AliDebug(1, "WRITTEN\n\n");
  
  return 0;
}

/**************************************************************************/

Int_t AliRunLoader::WriteTrigger(Option_t* opt)
{
   //writes TreeCT
   AliDebug( 1, "WRITING TRIGGER" );
  
   TTree* tree = TreeCT();
   if ( tree == 0x0) {
      AliWarning("Can not find Trigger Tree in Folder");
      return 0;
   }

   TFile* file = gROOT->GetFile( gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() ) ) ;
   if( !file || !file->IsOpen() ) {
      AliError( "can't write Trigger, file is not open" );
      return kFALSE;
   }

   TObject* obj = file->Get( fgkTriggerContainerName );
   if( obj ) { //if they exist, see if option OVERWRITE is used
      TString tmp(opt);
      if( tmp.Contains( "OVERWRITE", TString::kIgnoreCase ) == 0) {
         //if it is not used -  give an error message and return an error code
         AliError( "Tree already exisists. Use option \"OVERWRITE\" to overwrite previous data" );
         return 3;
      }
   }
   file->cd();
   fCTrigger->Write( 0, TObject::kOverwrite );
   tree->Write( 0, TObject::kOverwrite );
   file->Flush();

   AliDebug(1, "WRITTEN\n\n");
  
   return 0;
}
/**************************************************************************/

Int_t AliRunLoader::WriteAliRun(Option_t* /*opt*/)
{
//writes AliRun object to the file
  fGAFile->cd();
  if (GetAliRun()) GetAliRun()->Write();
  return 0;
}
/**************************************************************************/

Int_t AliRunLoader::WriteKinematics(Option_t* opt)
{
//writes Kinematics
  return fKineDataLoader->GetBaseLoader(0)->WriteData(opt);
}
/**************************************************************************/
Int_t AliRunLoader::WriteTrackRefs(Option_t* opt)
{
//writes Track References tree
  return fTrackRefsDataLoader->GetBaseLoader(0)->WriteData(opt);
}
/**************************************************************************/

Int_t AliRunLoader::WriteHits(Option_t* opt)
{
//Calls WriteHits for all loaders
  Int_t res;
  Int_t result = 0;
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     res = loader->WriteHits(opt);
     if (res)
      {
        AliError(Form("Failed to write hits for %s (%d)",loader->GetDetectorName().Data(),res));
        result = 1;
      }
   }
  return result;
}
/**************************************************************************/

Int_t AliRunLoader::WriteSDigits(Option_t* opt)
{
//Calls WriteSDigits for all loaders
  Int_t res;
  Int_t result = 0;
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     res = loader->WriteSDigits(opt);
     if (res)
      {
        AliError(Form("Failed to write summable digits for %s.",loader->GetDetectorName().Data()));
        result = 1;
      }
   }
  return result;
}
/**************************************************************************/

Int_t AliRunLoader::WriteDigits(Option_t* opt)
{
//Calls WriteDigits for all loaders
  Int_t res;
  Int_t result = 0;
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   { 
     res = loader->WriteDigits(opt);
     if (res)
      {
        AliError(Form("Failed to write digits for %s.",loader->GetDetectorName().Data()));
        result = 1;
      }
   }
  return result;
}
/**************************************************************************/

Int_t AliRunLoader::WriteRecPoints(Option_t* opt)
{
//Calls WriteRecPoints for all loaders
  Int_t res;
  Int_t result = 0;
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     res = loader->WriteRecPoints(opt);
     if (res)
      {
        AliError(Form("Failed to write Reconstructed Points for %s.",
		      loader->GetDetectorName().Data()));
        result = 1;
      }
   }
  return result;
}
/**************************************************************************/

Int_t AliRunLoader::WriteTracks(Option_t* opt)
{
//Calls WriteTracks for all loaders
  Int_t res;
  Int_t result = 0;
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     res = loader->WriteTracks(opt);
     if (res)
      {
        AliError(Form("Failed to write Tracks for %s.",
		      loader->GetDetectorName().Data()));
        result = 1;
      }
   }
  return result;
}
/**************************************************************************/

Int_t AliRunLoader::WriteRunLoader(Option_t* /*opt*/)
{
//Writes itself to the file
  CdGAFile();
  this->Write(0,TObject::kOverwrite);
  return 0;
}
/**************************************************************************/

Int_t AliRunLoader::SetEventFolderName(const TString& name)
{  
//sets top folder name for this run; of alread
  if (name.IsNull())
   {
     AliError("Name is empty");
     return 1;
   }
  
  //check if such a folder already exists - try to find it in alice top folder
  TObject* obj = AliConfig::Instance()->GetTopFolder()->FindObject(name);
  if(obj)
   {
     TFolder* fold = dynamic_cast<TFolder*>(obj);
     if (fold == 0x0)
      {
       AliError("Such a obejct already exists in top alice folder and it is not a folder.");
       return 2;
      }
     //folder which was found is our folder
     if (fEventFolder == fold)
      {
       return 0;
      }
     else
      {
       AliError("Such a folder already exists in top alice folder. Can not mount.");
       return 2;
      }
   }

  //event is alredy connected, just change name of the folder
  if (fEventFolder) 
   {
     fEventFolder->SetName(name);
     return 0;
   }

  if (fKineDataLoader == 0x0)
    fKineDataLoader = new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics");

  if ( fTrackRefsDataLoader == 0x0)
    fTrackRefsDataLoader = new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References");
   
  //build the event folder structure
  AliDebug(1, Form("Creating new event folder named %s",name.Data()));
  fEventFolder = AliConfig::Instance()->BuildEventFolder(name,"Event Folder");
  fEventFolder->Add(this);//put myself to the folder to accessible for all
  
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     loader->Register(fEventFolder);//build folder structure for this detector
   }
  
  fKineDataLoader->SetEventFolder(GetEventFolder());
  fTrackRefsDataLoader->SetEventFolder(GetEventFolder());
  fKineDataLoader->SetFolder(GetEventFolder());
  fTrackRefsDataLoader->SetFolder(GetEventFolder());
  
  fEventFolder->SetOwner();
  return 0;
}
/**************************************************************************/

void AliRunLoader::AddLoader(AliLoader* loader)
 {
 //Adds the Loader for given detector 
  if (loader == 0x0) //if null shout and exit
   {
     AliError("Parameter is NULL");
     return;
   }
  loader->SetDirName(fUnixDirName);
  if (fEventFolder) loader->SetEventFolder(fEventFolder); //if event folder is already defined, 
                                                          //pass information to the Loader
  fLoaders->Add(loader);//add the Loader to the array
 }
/**************************************************************************/

void AliRunLoader::AddLoader(AliDetector* det)
 {
//Asks module (detector) ro make a Loader and stores in the array
   if (det == 0x0) return;
   AliLoader* get = det->GetLoader();//try to get loader
   if (get == 0x0)  get = det->MakeLoader(fEventFolder->GetName());//if did not obtain, ask to make it

   if (get) 
    {
      AliDebug(1, Form("Detector: %s   Loader : %s",det->GetName(),get->GetName()));
      AddLoader(get);
    }
 }

/**************************************************************************/

AliLoader* AliRunLoader::GetLoader(const char* detname) const
{
//returns loader for given detector
//note that naming convention is TPCLoader not just TPC
  return (AliLoader*)fLoaders->FindObject(detname);
}

/**************************************************************************/

AliLoader* AliRunLoader::GetLoader(AliDetector* det) const
{
//get loader for detector det
 if(det == 0x0) return 0x0;
 TString getname(det->GetName());
 getname+="Loader";
 AliDebug(1, Form(" Loader name is %s",getname.Data()));
 return GetLoader(getname);
}

/**************************************************************************/

void AliRunLoader::CleanFolders()
{
//  fEventFolder->Add(this);//put myself to the folder to accessible for all

  CleanDetectors();
  CleanHeader();
  CleanKinematics();
  CleanTrigger();
}
/**************************************************************************/

void AliRunLoader::CleanDetectors()
{
//Calls CleanFolders for all detectors
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
     loader->CleanFolders();
   }
}
/**************************************************************************/

void AliRunLoader::RemoveEventFolder()
{
//remove all the tree of event 
//all the stuff changing EbE stays untached (PDGDB, tasks, etc.)

 if (fEventFolder == 0x0) return;
 fEventFolder->SetOwner(kFALSE);//don't we want to deleted while removing the folder that we are sitting in
 fEventFolder->Remove(this);//remove us drom folder
 
 AliConfig::Instance()->GetTopFolder()->SetOwner(); //brings ownership back for fEventFolder since it sits in top folder
 AliConfig::Instance()->GetTopFolder()->Remove(fEventFolder); //remove the event tree
 delete fEventFolder;
}
/**************************************************************************/

void AliRunLoader::SetGAliceFile(TFile* gafile)
{
//sets pointer to galice.root file
 fGAFile = gafile;
}

/**************************************************************************/

Int_t AliRunLoader::LoadHits(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  AliDebug(1, "Loading Hits");
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     AliDebug(1, "Option is All");
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer array
   }   

  AliDebug(1, Form("For detectors. Number of detectors chosen for loading %d",loaders->GetEntries()));
  
  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    AliDebug(1, Form("    Calling LoadHits(%s) for %s",opt,loader->GetName()));
    loader->LoadHits(opt);
   }
  AliDebug(1, "Done");
  return 0;
} 

/**************************************************************************/

Int_t AliRunLoader::LoadSDigits(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->LoadSDigits(opt);
   }
  return 0;
} 

/**************************************************************************/

Int_t AliRunLoader::LoadDigits(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->LoadDigits(opt);
   }
  return 0;
} 
/**************************************************************************/

Int_t AliRunLoader::LoadRecPoints(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->LoadRecPoints(opt);
   }
  return 0;
} 
/**************************************************************************/

Int_t AliRunLoader::LoadRecParticles(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->LoadRecParticles(opt);
   }
  return 0;
} 
/**************************************************************************/

Int_t AliRunLoader::LoadTracks(Option_t* detectors,Option_t* opt)
{
//LoadHits in selected detectors i.e. detectors="ITS TPC TRD" or "all"

  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->LoadTracks(opt);
   }
  return 0;
} 
/**************************************************************************/

void AliRunLoader::UnloadHits(Option_t* detectors)
{
  //unloads hits for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadHits();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadSDigits(Option_t* detectors)
{
  //unloads SDigits for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadSDigits();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadDigits(Option_t* detectors)
{
  //unloads Digits for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadDigits();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadRecPoints(Option_t* detectors)
{
  //unloads RecPoints for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadRecPoints();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadAll(Option_t* detectors)
{
  //calls UnloadAll for detectors names specified in parameter
  // option "all" passed can be passed
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadAll();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadTracks(Option_t* detectors)
{
  //unloads Tracks for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadTracks();
   }
}
/**************************************************************************/

void AliRunLoader::UnloadRecParticles(Option_t* detectors)
{
  //unloads Particles for detectors specified in parameter
  TObjArray* loaders;
  TObjArray arr;

  const char* oAll = strstr(detectors,"all");
  if (oAll)
   {
     loaders = fLoaders;
   }
  else
   {
     GetListOfDetectors(detectors,arr);//this method looks for all Loaders corresponding to names (many) specified in detectors option
     loaders = &arr;//get the pointer to array
   }   

  TIter next(loaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
    loader->UnloadRecParticles();
   }
}
/**************************************************************************/

AliRunLoader* AliRunLoader::GetRunLoader(const char* eventfoldername)
{
//returns RunLoader from folder named eventfoldername
  TFolder* evfold= dynamic_cast<TFolder*>(AliConfig::Instance()->GetTopFolder()->FindObject(eventfoldername));
  if (evfold == 0x0)
   {
     return 0x0;
   }
  AliRunLoader* runget = dynamic_cast<AliRunLoader*>(evfold->FindObject(AliRunLoader::fgkRunLoaderName));
  return runget;
  
}
/**************************************************************************/

AliLoader* AliRunLoader::GetDetectorLoader(const char* detname, const char* eventfoldername)
{
//get the loader of the detector with the given name from the global
//run loader object
  AliRunLoader* runLoader = GetRunLoader(eventfoldername);
  if (!runLoader) {
    AliErrorClass("No run loader found");
    return NULL;
  }
  return runLoader->GetDetectorLoader(detname);
}
/**************************************************************************/

AliLoader* AliRunLoader::GetDetectorLoader(const char* detname)
{
//get the loader of the detector with the given name from the global
//run loader object
  
  char loadername[256];
  snprintf(loadername, 255, "%sLoader", detname);
  AliLoader* loader = GetLoader(loadername);
  if (!loader) {
    AliError(Form("No loader for %s found", detname));
    return NULL;
  }
  return loader;
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeH(const char* detname, Bool_t maketree, const char* eventfoldername)
{
//get the tree with hits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeH() && maketree) loader->MakeTree("H");
  return loader->TreeH();
}

/**************************************************************************/

TTree* AliRunLoader::GetTreeH(const char* detname, Bool_t maketree)
{
//get the tree with hits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeH() && maketree) loader->MakeTree("H");
  return loader->TreeH();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeS(const char* detname, Bool_t maketree,const char* eventfoldername)
{
//get the tree with summable digits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeS() && maketree) loader->MakeTree("S");
  return loader->TreeS();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeS(const char* detname, Bool_t maketree)
{
//get the tree with summable digits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeS() && maketree) loader->MakeTree("S");
  return loader->TreeS();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeD(const char* detname, Bool_t maketree,const char* eventfoldername)
{
//get the tree with digits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeD() && maketree) loader->MakeTree("D");
  return loader->TreeD();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeD(const char* detname, Bool_t maketree)
{
//get the tree with digits of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeD() && maketree) loader->MakeTree("D");
  return loader->TreeD();
}
/**************************************************************************/
TTree* AliRunLoader::GetTreeR(const char* detname, Bool_t maketree,const char* eventfoldername)
{
//get the tree with clusters of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeR() && maketree) loader->MakeTree("R");
  return loader->TreeR();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeR(const char* detname, Bool_t maketree)
{
//get the tree with clusters of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeR() && maketree) loader->MakeTree("R");
  return loader->TreeR();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeT(const char* detname, Bool_t maketree,const char* eventfoldername)
{
//get the tree with tracks of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeT() && maketree) loader->MakeTree("T");
  return loader->TreeT();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeT(const char* detname, Bool_t maketree)
{
//get the tree with tracks of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeT() && maketree) loader->MakeTree("T");
  return loader->TreeT();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeP(const char* detname, Bool_t maketree,const char* eventfoldername)
{
//get the tree with particles of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname,eventfoldername);
  if (!loader) return NULL;
  if (!loader->TreeP() && maketree) loader->MakeTree("P");
  return loader->TreeP();
}
/**************************************************************************/

TTree* AliRunLoader::GetTreeP(const char* detname, Bool_t maketree)
{
//get the tree with particles of the detector with the given name
//if maketree is true and the tree does not exist, the tree is created
  AliLoader* loader = GetDetectorLoader(detname);
  if (!loader) return NULL;
  if (!loader->TreeP() && maketree) loader->MakeTree("P");
  return loader->TreeP();
}

/**************************************************************************/

void AliRunLoader::CdGAFile()
{
//sets gDirectory to galice file
//work around 
  if(fGAFile) fGAFile->cd();
}
 
/**************************************************************************/

void AliRunLoader::GetListOfDetectors(const char * namelist,TObjArray& pointerarray) const
 {
//this method looks for all Loaders corresponding 
//to names (many) specified in namelist i.e. namelist ("ITS TPC TRD")
  
   char buff[10];
   char dets [200];
   strncpy(dets,namelist,199);//compiler cries when char* = const Option_t*;
   //   dets[strlen(dets)+1] = '\n';//set endl at the end of string 
   char* pdet = dets;
   Int_t tmp;
   for(;;)
    {
      tmp = sscanf(pdet,"%9s",buff);//read the string from the input string pdet into buff
      if ( (buff[0] == 0) || (tmp == 0) ) break; //if not read
     
      pdet = strstr(pdet,buff) + strlen(buff);//move the input pointer about number of bytes (letters) read
      //I am aware that is a little complicated. I don't know the number of spaces between detector names
      //so I read the string, than I find where it starts (strstr) and move the pointer about length of a string
      //If there is a better way, please write me (Piotr.Skowronski@cern.ch)
      //construct the Loader name
      TString getname(buff);
      getname+="Loader";
      AliLoader* loader = GetLoader(getname);//get the Loader
      if (loader)
       {
        pointerarray.Add(loader);
       }
      else
       {
        AliError(Form("Can not find Loader for %s",buff));
       }
        
      buff[0] = 0;
    }
 }
/*****************************************************************************/ 

void AliRunLoader::Clean(const TString& name)
{
//removes object with given name from event folder and deletes it
  if (GetEventFolder() == 0x0) return;
  TObject* obj = GetEventFolder()->FindObject(name);
  if(obj)
   {
     AliDebug(1, Form("name=%s, cleaning %s.",GetName(),name.Data()));
     GetEventFolder()->Remove(obj);
     delete obj;
     obj = 0x0;
   }
}

/*****************************************************************************/ 

void AliRunLoader::SetCompressionLevel(Int_t cl)
{
//Sets Compression Level in all files
 if (fGAFile) fGAFile->SetCompressionLevel(cl);
 SetKineComprLevel(cl);
 SetTrackRefsComprLevel(cl);
 TIter next(fLoaders);
 AliLoader *loader;
 while((loader = (AliLoader*)next()))
  {
   loader->SetCompressionLevel(cl);
  }
}
/**************************************************************************/

void AliRunLoader::SetKineComprLevel(Int_t cl)
{
//Sets comression level in Kine File
  fKineDataLoader->SetCompressionLevel(cl);
}
/**************************************************************************/

void AliRunLoader::SetTrackRefsComprLevel(Int_t cl)
{
//Sets comression level in Track Refences File
  fTrackRefsDataLoader->SetCompressionLevel(cl);
}
/**************************************************************************/

void AliRunLoader::UnloadHeader()
{
 //removes TreeE from folder and deletes it
 // as well as fHeader object
 CleanHeader();
 fHeader = 0x0;
}
/**************************************************************************/

void AliRunLoader::UnloadTrigger()
{
 //removes TreeCT from folder and deletes it
 // as well as fHeader object
   CleanTrigger();
   delete fCTrigger;
   fCTrigger = 0x0;
}

/**************************************************************************/

void AliRunLoader::UnloadKinematics()
{
//Unloads Kinematics
 fKineDataLoader->GetBaseLoader(0)->Unload();
}
/**************************************************************************/

void AliRunLoader::UnloadTrackRefs()
{
//Unloads Track Refernces
 fTrackRefsDataLoader->GetBaseLoader(0)->Unload();
}
/**************************************************************************/

void AliRunLoader::UnloadgAlice()
{
//Unloads gAlice
 if (gAlice == GetAliRun())
  {
   AliDebug(1, "Set gAlice = 0x0");
   gAlice = 0x0;//if gAlice is the same that in folder (to be deleted by the way of folder)
  }
 AliRun* alirun = GetAliRun();
 if (GetEventFolder()) GetEventFolder()->Remove(alirun);
 delete alirun;
}
/**************************************************************************/

void  AliRunLoader::MakeTrackRefsContainer()
{
// Makes a tree for Track References
  fTrackRefsDataLoader->MakeTree();
}
/**************************************************************************/

Int_t AliRunLoader::LoadTrackRefs(Option_t* option)
{
//Load track references from file (opens file and posts tree to folder)

 return fTrackRefsDataLoader->GetBaseLoader(0)->Load(option);
}
/**************************************************************************/

void  AliRunLoader::SetDirName(TString& dirname)
{
//sets directory name 
  if (dirname.IsNull()) return;
  fUnixDirName = dirname;
  fKineDataLoader->SetDirName(dirname);
  fTrackRefsDataLoader->SetDirName(dirname);
  
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
    loader->SetDirName(dirname);
   }

}
/*****************************************************************************/ 

Int_t AliRunLoader::GetFileOffset() const
{
//returns the file number that is added to the file name for current event
  return Int_t(fCurrentEvent/fNEventsPerFile);
}

/*****************************************************************************/ 
const TString AliRunLoader::SetFileOffset(const TString& fname)
{
//adds the the number to the file name at proper place for current event
  Long_t offset = (Long_t)GetFileOffset();
  if (offset < 1) return fname;
  TString soffset;
  soffset += offset;//automatic conversion to string
  TString dotroot(".root");
  const TString& offfsetdotroot = offset + dotroot;
  TString out = fname;
  out = out.ReplaceAll(dotroot,offfsetdotroot);
  AliDebug(1, Form(" in=%s out=%s",fname.Data(),out.Data()));
  return out;
}
/*****************************************************************************/ 

void AliRunLoader::SetDigitsFileNameSuffix(const TString& suffix)
{
//adds the suffix before ".root", 
//e.g. TPC.Digits.root -> TPC.DigitsMerged.root
//made on Jiri Chudoba demand

  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next())) 
   {
     loader->SetDigitsFileNameSuffix(suffix);
   }
}
/*****************************************************************************/ 

TString AliRunLoader::GetFileName() const
{
//returns name of galice file
 TString result;
 if (fGAFile == 0x0) return result;
 result = fGAFile->GetName();
 return result;
}
/*****************************************************************************/ 

void AliRunLoader::SetDetectorAddresses()
{
 //calls SetTreeAddress for all detectors
  if (GetAliRun()==0x0) return;
  TIter next(GetAliRun()->Modules());
  AliModule* mod;
  while((mod = (AliModule*)next())) 
   {
     AliDetector* det = dynamic_cast<AliDetector*>(mod);
     if (det) det->SetTreeAddress();
   }
}
/*****************************************************************************/ 

void AliRunLoader::Synchronize()
{
  //synchrinizes all writtable files 
  TIter next(fLoaders);
  AliLoader *loader;
  while((loader = (AliLoader*)next()))
   {
     loader->Synchronize();
   }
  
  fKineDataLoader->Synchronize();
  fTrackRefsDataLoader->Synchronize();

  TFile* file = gROOT->GetFile( gSystem->ConcatFileName( fUnixDirName.Data(), fgkDefaultTriggerFileName.Data() ) ) ;
  if( file ) file->Flush();
  
  if (fGAFile) fGAFile->Flush();
}
/*****************************************************************************/ 
/*****************************************************************************/ 
 AliRunLoader.cxx:1
 AliRunLoader.cxx:2
 AliRunLoader.cxx:3
 AliRunLoader.cxx:4
 AliRunLoader.cxx:5
 AliRunLoader.cxx:6
 AliRunLoader.cxx:7
 AliRunLoader.cxx:8
 AliRunLoader.cxx:9
 AliRunLoader.cxx:10
 AliRunLoader.cxx:11
 AliRunLoader.cxx:12
 AliRunLoader.cxx:13
 AliRunLoader.cxx:14
 AliRunLoader.cxx:15
 AliRunLoader.cxx:16
 AliRunLoader.cxx:17
 AliRunLoader.cxx:18
 AliRunLoader.cxx:19
 AliRunLoader.cxx:20
 AliRunLoader.cxx:21
 AliRunLoader.cxx:22
 AliRunLoader.cxx:23
 AliRunLoader.cxx:24
 AliRunLoader.cxx:25
 AliRunLoader.cxx:26
 AliRunLoader.cxx:27
 AliRunLoader.cxx:28
 AliRunLoader.cxx:29
 AliRunLoader.cxx:30
 AliRunLoader.cxx:31
 AliRunLoader.cxx:32
 AliRunLoader.cxx:33
 AliRunLoader.cxx:34
 AliRunLoader.cxx:35
 AliRunLoader.cxx:36
 AliRunLoader.cxx:37
 AliRunLoader.cxx:38
 AliRunLoader.cxx:39
 AliRunLoader.cxx:40
 AliRunLoader.cxx:41
 AliRunLoader.cxx:42
 AliRunLoader.cxx:43
 AliRunLoader.cxx:44
 AliRunLoader.cxx:45
 AliRunLoader.cxx:46
 AliRunLoader.cxx:47
 AliRunLoader.cxx:48
 AliRunLoader.cxx:49
 AliRunLoader.cxx:50
 AliRunLoader.cxx:51
 AliRunLoader.cxx:52
 AliRunLoader.cxx:53
 AliRunLoader.cxx:54
 AliRunLoader.cxx:55
 AliRunLoader.cxx:56
 AliRunLoader.cxx:57
 AliRunLoader.cxx:58
 AliRunLoader.cxx:59
 AliRunLoader.cxx:60
 AliRunLoader.cxx:61
 AliRunLoader.cxx:62
 AliRunLoader.cxx:63
 AliRunLoader.cxx:64
 AliRunLoader.cxx:65
 AliRunLoader.cxx:66
 AliRunLoader.cxx:67
 AliRunLoader.cxx:68
 AliRunLoader.cxx:69
 AliRunLoader.cxx:70
 AliRunLoader.cxx:71
 AliRunLoader.cxx:72
 AliRunLoader.cxx:73
 AliRunLoader.cxx:74
 AliRunLoader.cxx:75
 AliRunLoader.cxx:76
 AliRunLoader.cxx:77
 AliRunLoader.cxx:78
 AliRunLoader.cxx:79
 AliRunLoader.cxx:80
 AliRunLoader.cxx:81
 AliRunLoader.cxx:82
 AliRunLoader.cxx:83
 AliRunLoader.cxx:84
 AliRunLoader.cxx:85
 AliRunLoader.cxx:86
 AliRunLoader.cxx:87
 AliRunLoader.cxx:88
 AliRunLoader.cxx:89
 AliRunLoader.cxx:90
 AliRunLoader.cxx:91
 AliRunLoader.cxx:92
 AliRunLoader.cxx:93
 AliRunLoader.cxx:94
 AliRunLoader.cxx:95
 AliRunLoader.cxx:96
 AliRunLoader.cxx:97
 AliRunLoader.cxx:98
 AliRunLoader.cxx:99
 AliRunLoader.cxx:100
 AliRunLoader.cxx:101
 AliRunLoader.cxx:102
 AliRunLoader.cxx:103
 AliRunLoader.cxx:104
 AliRunLoader.cxx:105
 AliRunLoader.cxx:106
 AliRunLoader.cxx:107
 AliRunLoader.cxx:108
 AliRunLoader.cxx:109
 AliRunLoader.cxx:110
 AliRunLoader.cxx:111
 AliRunLoader.cxx:112
 AliRunLoader.cxx:113
 AliRunLoader.cxx:114
 AliRunLoader.cxx:115
 AliRunLoader.cxx:116
 AliRunLoader.cxx:117
 AliRunLoader.cxx:118
 AliRunLoader.cxx:119
 AliRunLoader.cxx:120
 AliRunLoader.cxx:121
 AliRunLoader.cxx:122
 AliRunLoader.cxx:123
 AliRunLoader.cxx:124
 AliRunLoader.cxx:125
 AliRunLoader.cxx:126
 AliRunLoader.cxx:127
 AliRunLoader.cxx:128
 AliRunLoader.cxx:129
 AliRunLoader.cxx:130
 AliRunLoader.cxx:131
 AliRunLoader.cxx:132
 AliRunLoader.cxx:133
 AliRunLoader.cxx:134
 AliRunLoader.cxx:135
 AliRunLoader.cxx:136
 AliRunLoader.cxx:137
 AliRunLoader.cxx:138
 AliRunLoader.cxx:139
 AliRunLoader.cxx:140
 AliRunLoader.cxx:141
 AliRunLoader.cxx:142
 AliRunLoader.cxx:143
 AliRunLoader.cxx:144
 AliRunLoader.cxx:145
 AliRunLoader.cxx:146
 AliRunLoader.cxx:147
 AliRunLoader.cxx:148
 AliRunLoader.cxx:149
 AliRunLoader.cxx:150
 AliRunLoader.cxx:151
 AliRunLoader.cxx:152
 AliRunLoader.cxx:153
 AliRunLoader.cxx:154
 AliRunLoader.cxx:155
 AliRunLoader.cxx:156
 AliRunLoader.cxx:157
 AliRunLoader.cxx:158
 AliRunLoader.cxx:159
 AliRunLoader.cxx:160
 AliRunLoader.cxx:161
 AliRunLoader.cxx:162
 AliRunLoader.cxx:163
 AliRunLoader.cxx:164
 AliRunLoader.cxx:165
 AliRunLoader.cxx:166
 AliRunLoader.cxx:167
 AliRunLoader.cxx:168
 AliRunLoader.cxx:169
 AliRunLoader.cxx:170
 AliRunLoader.cxx:171
 AliRunLoader.cxx:172
 AliRunLoader.cxx:173
 AliRunLoader.cxx:174
 AliRunLoader.cxx:175
 AliRunLoader.cxx:176
 AliRunLoader.cxx:177
 AliRunLoader.cxx:178
 AliRunLoader.cxx:179
 AliRunLoader.cxx:180
 AliRunLoader.cxx:181
 AliRunLoader.cxx:182
 AliRunLoader.cxx:183
 AliRunLoader.cxx:184
 AliRunLoader.cxx:185
 AliRunLoader.cxx:186
 AliRunLoader.cxx:187
 AliRunLoader.cxx:188
 AliRunLoader.cxx:189
 AliRunLoader.cxx:190
 AliRunLoader.cxx:191
 AliRunLoader.cxx:192
 AliRunLoader.cxx:193
 AliRunLoader.cxx:194
 AliRunLoader.cxx:195
 AliRunLoader.cxx:196
 AliRunLoader.cxx:197
 AliRunLoader.cxx:198
 AliRunLoader.cxx:199
 AliRunLoader.cxx:200
 AliRunLoader.cxx:201
 AliRunLoader.cxx:202
 AliRunLoader.cxx:203
 AliRunLoader.cxx:204
 AliRunLoader.cxx:205
 AliRunLoader.cxx:206
 AliRunLoader.cxx:207
 AliRunLoader.cxx:208
 AliRunLoader.cxx:209
 AliRunLoader.cxx:210
 AliRunLoader.cxx:211
 AliRunLoader.cxx:212
 AliRunLoader.cxx:213
 AliRunLoader.cxx:214
 AliRunLoader.cxx:215
 AliRunLoader.cxx:216
 AliRunLoader.cxx:217
 AliRunLoader.cxx:218
 AliRunLoader.cxx:219
 AliRunLoader.cxx:220
 AliRunLoader.cxx:221
 AliRunLoader.cxx:222
 AliRunLoader.cxx:223
 AliRunLoader.cxx:224
 AliRunLoader.cxx:225
 AliRunLoader.cxx:226
 AliRunLoader.cxx:227
 AliRunLoader.cxx:228
 AliRunLoader.cxx:229
 AliRunLoader.cxx:230
 AliRunLoader.cxx:231
 AliRunLoader.cxx:232
 AliRunLoader.cxx:233
 AliRunLoader.cxx:234
 AliRunLoader.cxx:235
 AliRunLoader.cxx:236
 AliRunLoader.cxx:237
 AliRunLoader.cxx:238
 AliRunLoader.cxx:239
 AliRunLoader.cxx:240
 AliRunLoader.cxx:241
 AliRunLoader.cxx:242
 AliRunLoader.cxx:243
 AliRunLoader.cxx:244
 AliRunLoader.cxx:245
 AliRunLoader.cxx:246
 AliRunLoader.cxx:247
 AliRunLoader.cxx:248
 AliRunLoader.cxx:249
 AliRunLoader.cxx:250
 AliRunLoader.cxx:251
 AliRunLoader.cxx:252
 AliRunLoader.cxx:253
 AliRunLoader.cxx:254
 AliRunLoader.cxx:255
 AliRunLoader.cxx:256
 AliRunLoader.cxx:257
 AliRunLoader.cxx:258
 AliRunLoader.cxx:259
 AliRunLoader.cxx:260
 AliRunLoader.cxx:261
 AliRunLoader.cxx:262
 AliRunLoader.cxx:263
 AliRunLoader.cxx:264
 AliRunLoader.cxx:265
 AliRunLoader.cxx:266
 AliRunLoader.cxx:267
 AliRunLoader.cxx:268
 AliRunLoader.cxx:269
 AliRunLoader.cxx:270
 AliRunLoader.cxx:271
 AliRunLoader.cxx:272
 AliRunLoader.cxx:273
 AliRunLoader.cxx:274
 AliRunLoader.cxx:275
 AliRunLoader.cxx:276
 AliRunLoader.cxx:277
 AliRunLoader.cxx:278
 AliRunLoader.cxx:279
 AliRunLoader.cxx:280
 AliRunLoader.cxx:281
 AliRunLoader.cxx:282
 AliRunLoader.cxx:283
 AliRunLoader.cxx:284
 AliRunLoader.cxx:285
 AliRunLoader.cxx:286
 AliRunLoader.cxx:287
 AliRunLoader.cxx:288
 AliRunLoader.cxx:289
 AliRunLoader.cxx:290
 AliRunLoader.cxx:291
 AliRunLoader.cxx:292
 AliRunLoader.cxx:293
 AliRunLoader.cxx:294
 AliRunLoader.cxx:295
 AliRunLoader.cxx:296
 AliRunLoader.cxx:297
 AliRunLoader.cxx:298
 AliRunLoader.cxx:299
 AliRunLoader.cxx:300
 AliRunLoader.cxx:301
 AliRunLoader.cxx:302
 AliRunLoader.cxx:303
 AliRunLoader.cxx:304
 AliRunLoader.cxx:305
 AliRunLoader.cxx:306
 AliRunLoader.cxx:307
 AliRunLoader.cxx:308
 AliRunLoader.cxx:309
 AliRunLoader.cxx:310
 AliRunLoader.cxx:311
 AliRunLoader.cxx:312
 AliRunLoader.cxx:313
 AliRunLoader.cxx:314
 AliRunLoader.cxx:315
 AliRunLoader.cxx:316
 AliRunLoader.cxx:317
 AliRunLoader.cxx:318
 AliRunLoader.cxx:319
 AliRunLoader.cxx:320
 AliRunLoader.cxx:321
 AliRunLoader.cxx:322
 AliRunLoader.cxx:323
 AliRunLoader.cxx:324
 AliRunLoader.cxx:325
 AliRunLoader.cxx:326
 AliRunLoader.cxx:327
 AliRunLoader.cxx:328
 AliRunLoader.cxx:329
 AliRunLoader.cxx:330
 AliRunLoader.cxx:331
 AliRunLoader.cxx:332
 AliRunLoader.cxx:333
 AliRunLoader.cxx:334
 AliRunLoader.cxx:335
 AliRunLoader.cxx:336
 AliRunLoader.cxx:337
 AliRunLoader.cxx:338
 AliRunLoader.cxx:339
 AliRunLoader.cxx:340
 AliRunLoader.cxx:341
 AliRunLoader.cxx:342
 AliRunLoader.cxx:343
 AliRunLoader.cxx:344
 AliRunLoader.cxx:345
 AliRunLoader.cxx:346
 AliRunLoader.cxx:347
 AliRunLoader.cxx:348
 AliRunLoader.cxx:349
 AliRunLoader.cxx:350
 AliRunLoader.cxx:351
 AliRunLoader.cxx:352
 AliRunLoader.cxx:353
 AliRunLoader.cxx:354
 AliRunLoader.cxx:355
 AliRunLoader.cxx:356
 AliRunLoader.cxx:357
 AliRunLoader.cxx:358
 AliRunLoader.cxx:359
 AliRunLoader.cxx:360
 AliRunLoader.cxx:361
 AliRunLoader.cxx:362
 AliRunLoader.cxx:363
 AliRunLoader.cxx:364
 AliRunLoader.cxx:365
 AliRunLoader.cxx:366
 AliRunLoader.cxx:367
 AliRunLoader.cxx:368
 AliRunLoader.cxx:369
 AliRunLoader.cxx:370
 AliRunLoader.cxx:371
 AliRunLoader.cxx:372
 AliRunLoader.cxx:373
 AliRunLoader.cxx:374
 AliRunLoader.cxx:375
 AliRunLoader.cxx:376
 AliRunLoader.cxx:377
 AliRunLoader.cxx:378
 AliRunLoader.cxx:379
 AliRunLoader.cxx:380
 AliRunLoader.cxx:381
 AliRunLoader.cxx:382
 AliRunLoader.cxx:383
 AliRunLoader.cxx:384
 AliRunLoader.cxx:385
 AliRunLoader.cxx:386
 AliRunLoader.cxx:387
 AliRunLoader.cxx:388
 AliRunLoader.cxx:389
 AliRunLoader.cxx:390
 AliRunLoader.cxx:391
 AliRunLoader.cxx:392
 AliRunLoader.cxx:393
 AliRunLoader.cxx:394
 AliRunLoader.cxx:395
 AliRunLoader.cxx:396
 AliRunLoader.cxx:397
 AliRunLoader.cxx:398
 AliRunLoader.cxx:399
 AliRunLoader.cxx:400
 AliRunLoader.cxx:401
 AliRunLoader.cxx:402
 AliRunLoader.cxx:403
 AliRunLoader.cxx:404
 AliRunLoader.cxx:405
 AliRunLoader.cxx:406
 AliRunLoader.cxx:407
 AliRunLoader.cxx:408
 AliRunLoader.cxx:409
 AliRunLoader.cxx:410
 AliRunLoader.cxx:411
 AliRunLoader.cxx:412
 AliRunLoader.cxx:413
 AliRunLoader.cxx:414
 AliRunLoader.cxx:415
 AliRunLoader.cxx:416
 AliRunLoader.cxx:417
 AliRunLoader.cxx:418
 AliRunLoader.cxx:419
 AliRunLoader.cxx:420
 AliRunLoader.cxx:421
 AliRunLoader.cxx:422
 AliRunLoader.cxx:423
 AliRunLoader.cxx:424
 AliRunLoader.cxx:425
 AliRunLoader.cxx:426
 AliRunLoader.cxx:427
 AliRunLoader.cxx:428
 AliRunLoader.cxx:429
 AliRunLoader.cxx:430
 AliRunLoader.cxx:431
 AliRunLoader.cxx:432
 AliRunLoader.cxx:433
 AliRunLoader.cxx:434
 AliRunLoader.cxx:435
 AliRunLoader.cxx:436
 AliRunLoader.cxx:437
 AliRunLoader.cxx:438
 AliRunLoader.cxx:439
 AliRunLoader.cxx:440
 AliRunLoader.cxx:441
 AliRunLoader.cxx:442
 AliRunLoader.cxx:443
 AliRunLoader.cxx:444
 AliRunLoader.cxx:445
 AliRunLoader.cxx:446
 AliRunLoader.cxx:447
 AliRunLoader.cxx:448
 AliRunLoader.cxx:449
 AliRunLoader.cxx:450
 AliRunLoader.cxx:451
 AliRunLoader.cxx:452
 AliRunLoader.cxx:453
 AliRunLoader.cxx:454
 AliRunLoader.cxx:455
 AliRunLoader.cxx:456
 AliRunLoader.cxx:457
 AliRunLoader.cxx:458
 AliRunLoader.cxx:459
 AliRunLoader.cxx:460
 AliRunLoader.cxx:461
 AliRunLoader.cxx:462
 AliRunLoader.cxx:463
 AliRunLoader.cxx:464
 AliRunLoader.cxx:465
 AliRunLoader.cxx:466
 AliRunLoader.cxx:467
 AliRunLoader.cxx:468
 AliRunLoader.cxx:469
 AliRunLoader.cxx:470
 AliRunLoader.cxx:471
 AliRunLoader.cxx:472
 AliRunLoader.cxx:473
 AliRunLoader.cxx:474
 AliRunLoader.cxx:475
 AliRunLoader.cxx:476
 AliRunLoader.cxx:477
 AliRunLoader.cxx:478
 AliRunLoader.cxx:479
 AliRunLoader.cxx:480
 AliRunLoader.cxx:481
 AliRunLoader.cxx:482
 AliRunLoader.cxx:483
 AliRunLoader.cxx:484
 AliRunLoader.cxx:485
 AliRunLoader.cxx:486
 AliRunLoader.cxx:487
 AliRunLoader.cxx:488
 AliRunLoader.cxx:489
 AliRunLoader.cxx:490
 AliRunLoader.cxx:491
 AliRunLoader.cxx:492
 AliRunLoader.cxx:493
 AliRunLoader.cxx:494
 AliRunLoader.cxx:495
 AliRunLoader.cxx:496
 AliRunLoader.cxx:497
 AliRunLoader.cxx:498
 AliRunLoader.cxx:499
 AliRunLoader.cxx:500
 AliRunLoader.cxx:501
 AliRunLoader.cxx:502
 AliRunLoader.cxx:503
 AliRunLoader.cxx:504
 AliRunLoader.cxx:505
 AliRunLoader.cxx:506
 AliRunLoader.cxx:507
 AliRunLoader.cxx:508
 AliRunLoader.cxx:509
 AliRunLoader.cxx:510
 AliRunLoader.cxx:511
 AliRunLoader.cxx:512
 AliRunLoader.cxx:513
 AliRunLoader.cxx:514
 AliRunLoader.cxx:515
 AliRunLoader.cxx:516
 AliRunLoader.cxx:517
 AliRunLoader.cxx:518
 AliRunLoader.cxx:519
 AliRunLoader.cxx:520
 AliRunLoader.cxx:521
 AliRunLoader.cxx:522
 AliRunLoader.cxx:523
 AliRunLoader.cxx:524
 AliRunLoader.cxx:525
 AliRunLoader.cxx:526
 AliRunLoader.cxx:527
 AliRunLoader.cxx:528
 AliRunLoader.cxx:529
 AliRunLoader.cxx:530
 AliRunLoader.cxx:531
 AliRunLoader.cxx:532
 AliRunLoader.cxx:533
 AliRunLoader.cxx:534
 AliRunLoader.cxx:535
 AliRunLoader.cxx:536
 AliRunLoader.cxx:537
 AliRunLoader.cxx:538
 AliRunLoader.cxx:539
 AliRunLoader.cxx:540
 AliRunLoader.cxx:541
 AliRunLoader.cxx:542
 AliRunLoader.cxx:543
 AliRunLoader.cxx:544
 AliRunLoader.cxx:545
 AliRunLoader.cxx:546
 AliRunLoader.cxx:547
 AliRunLoader.cxx:548
 AliRunLoader.cxx:549
 AliRunLoader.cxx:550
 AliRunLoader.cxx:551
 AliRunLoader.cxx:552
 AliRunLoader.cxx:553
 AliRunLoader.cxx:554
 AliRunLoader.cxx:555
 AliRunLoader.cxx:556
 AliRunLoader.cxx:557
 AliRunLoader.cxx:558
 AliRunLoader.cxx:559
 AliRunLoader.cxx:560
 AliRunLoader.cxx:561
 AliRunLoader.cxx:562
 AliRunLoader.cxx:563
 AliRunLoader.cxx:564
 AliRunLoader.cxx:565
 AliRunLoader.cxx:566
 AliRunLoader.cxx:567
 AliRunLoader.cxx:568
 AliRunLoader.cxx:569
 AliRunLoader.cxx:570
 AliRunLoader.cxx:571
 AliRunLoader.cxx:572
 AliRunLoader.cxx:573
 AliRunLoader.cxx:574
 AliRunLoader.cxx:575
 AliRunLoader.cxx:576
 AliRunLoader.cxx:577
 AliRunLoader.cxx:578
 AliRunLoader.cxx:579
 AliRunLoader.cxx:580
 AliRunLoader.cxx:581
 AliRunLoader.cxx:582
 AliRunLoader.cxx:583
 AliRunLoader.cxx:584
 AliRunLoader.cxx:585
 AliRunLoader.cxx:586
 AliRunLoader.cxx:587
 AliRunLoader.cxx:588
 AliRunLoader.cxx:589
 AliRunLoader.cxx:590
 AliRunLoader.cxx:591
 AliRunLoader.cxx:592
 AliRunLoader.cxx:593
 AliRunLoader.cxx:594
 AliRunLoader.cxx:595
 AliRunLoader.cxx:596
 AliRunLoader.cxx:597
 AliRunLoader.cxx:598
 AliRunLoader.cxx:599
 AliRunLoader.cxx:600
 AliRunLoader.cxx:601
 AliRunLoader.cxx:602
 AliRunLoader.cxx:603
 AliRunLoader.cxx:604
 AliRunLoader.cxx:605
 AliRunLoader.cxx:606
 AliRunLoader.cxx:607
 AliRunLoader.cxx:608
 AliRunLoader.cxx:609
 AliRunLoader.cxx:610
 AliRunLoader.cxx:611
 AliRunLoader.cxx:612
 AliRunLoader.cxx:613
 AliRunLoader.cxx:614
 AliRunLoader.cxx:615
 AliRunLoader.cxx:616
 AliRunLoader.cxx:617
 AliRunLoader.cxx:618
 AliRunLoader.cxx:619
 AliRunLoader.cxx:620
 AliRunLoader.cxx:621
 AliRunLoader.cxx:622
 AliRunLoader.cxx:623
 AliRunLoader.cxx:624
 AliRunLoader.cxx:625
 AliRunLoader.cxx:626
 AliRunLoader.cxx:627
 AliRunLoader.cxx:628
 AliRunLoader.cxx:629
 AliRunLoader.cxx:630
 AliRunLoader.cxx:631
 AliRunLoader.cxx:632
 AliRunLoader.cxx:633
 AliRunLoader.cxx:634
 AliRunLoader.cxx:635
 AliRunLoader.cxx:636
 AliRunLoader.cxx:637
 AliRunLoader.cxx:638
 AliRunLoader.cxx:639
 AliRunLoader.cxx:640
 AliRunLoader.cxx:641
 AliRunLoader.cxx:642
 AliRunLoader.cxx:643
 AliRunLoader.cxx:644
 AliRunLoader.cxx:645
 AliRunLoader.cxx:646
 AliRunLoader.cxx:647
 AliRunLoader.cxx:648
 AliRunLoader.cxx:649
 AliRunLoader.cxx:650
 AliRunLoader.cxx:651
 AliRunLoader.cxx:652
 AliRunLoader.cxx:653
 AliRunLoader.cxx:654
 AliRunLoader.cxx:655
 AliRunLoader.cxx:656
 AliRunLoader.cxx:657
 AliRunLoader.cxx:658
 AliRunLoader.cxx:659
 AliRunLoader.cxx:660
 AliRunLoader.cxx:661
 AliRunLoader.cxx:662
 AliRunLoader.cxx:663
 AliRunLoader.cxx:664
 AliRunLoader.cxx:665
 AliRunLoader.cxx:666
 AliRunLoader.cxx:667
 AliRunLoader.cxx:668
 AliRunLoader.cxx:669
 AliRunLoader.cxx:670
 AliRunLoader.cxx:671
 AliRunLoader.cxx:672
 AliRunLoader.cxx:673
 AliRunLoader.cxx:674
 AliRunLoader.cxx:675
 AliRunLoader.cxx:676
 AliRunLoader.cxx:677
 AliRunLoader.cxx:678
 AliRunLoader.cxx:679
 AliRunLoader.cxx:680
 AliRunLoader.cxx:681
 AliRunLoader.cxx:682
 AliRunLoader.cxx:683
 AliRunLoader.cxx:684
 AliRunLoader.cxx:685
 AliRunLoader.cxx:686
 AliRunLoader.cxx:687
 AliRunLoader.cxx:688
 AliRunLoader.cxx:689
 AliRunLoader.cxx:690
 AliRunLoader.cxx:691
 AliRunLoader.cxx:692
 AliRunLoader.cxx:693
 AliRunLoader.cxx:694
 AliRunLoader.cxx:695
 AliRunLoader.cxx:696
 AliRunLoader.cxx:697
 AliRunLoader.cxx:698
 AliRunLoader.cxx:699
 AliRunLoader.cxx:700
 AliRunLoader.cxx:701
 AliRunLoader.cxx:702
 AliRunLoader.cxx:703
 AliRunLoader.cxx:704
 AliRunLoader.cxx:705
 AliRunLoader.cxx:706
 AliRunLoader.cxx:707
 AliRunLoader.cxx:708
 AliRunLoader.cxx:709
 AliRunLoader.cxx:710
 AliRunLoader.cxx:711
 AliRunLoader.cxx:712
 AliRunLoader.cxx:713
 AliRunLoader.cxx:714
 AliRunLoader.cxx:715
 AliRunLoader.cxx:716
 AliRunLoader.cxx:717
 AliRunLoader.cxx:718
 AliRunLoader.cxx:719
 AliRunLoader.cxx:720
 AliRunLoader.cxx:721
 AliRunLoader.cxx:722
 AliRunLoader.cxx:723
 AliRunLoader.cxx:724
 AliRunLoader.cxx:725
 AliRunLoader.cxx:726
 AliRunLoader.cxx:727
 AliRunLoader.cxx:728
 AliRunLoader.cxx:729
 AliRunLoader.cxx:730
 AliRunLoader.cxx:731
 AliRunLoader.cxx:732
 AliRunLoader.cxx:733
 AliRunLoader.cxx:734
 AliRunLoader.cxx:735
 AliRunLoader.cxx:736
 AliRunLoader.cxx:737
 AliRunLoader.cxx:738
 AliRunLoader.cxx:739
 AliRunLoader.cxx:740
 AliRunLoader.cxx:741
 AliRunLoader.cxx:742
 AliRunLoader.cxx:743
 AliRunLoader.cxx:744
 AliRunLoader.cxx:745
 AliRunLoader.cxx:746
 AliRunLoader.cxx:747
 AliRunLoader.cxx:748
 AliRunLoader.cxx:749
 AliRunLoader.cxx:750
 AliRunLoader.cxx:751
 AliRunLoader.cxx:752
 AliRunLoader.cxx:753
 AliRunLoader.cxx:754
 AliRunLoader.cxx:755
 AliRunLoader.cxx:756
 AliRunLoader.cxx:757
 AliRunLoader.cxx:758
 AliRunLoader.cxx:759
 AliRunLoader.cxx:760
 AliRunLoader.cxx:761
 AliRunLoader.cxx:762
 AliRunLoader.cxx:763
 AliRunLoader.cxx:764
 AliRunLoader.cxx:765
 AliRunLoader.cxx:766
 AliRunLoader.cxx:767
 AliRunLoader.cxx:768
 AliRunLoader.cxx:769
 AliRunLoader.cxx:770
 AliRunLoader.cxx:771
 AliRunLoader.cxx:772
 AliRunLoader.cxx:773
 AliRunLoader.cxx:774
 AliRunLoader.cxx:775
 AliRunLoader.cxx:776
 AliRunLoader.cxx:777
 AliRunLoader.cxx:778
 AliRunLoader.cxx:779
 AliRunLoader.cxx:780
 AliRunLoader.cxx:781
 AliRunLoader.cxx:782
 AliRunLoader.cxx:783
 AliRunLoader.cxx:784
 AliRunLoader.cxx:785
 AliRunLoader.cxx:786
 AliRunLoader.cxx:787
 AliRunLoader.cxx:788
 AliRunLoader.cxx:789
 AliRunLoader.cxx:790
 AliRunLoader.cxx:791
 AliRunLoader.cxx:792
 AliRunLoader.cxx:793
 AliRunLoader.cxx:794
 AliRunLoader.cxx:795
 AliRunLoader.cxx:796
 AliRunLoader.cxx:797
 AliRunLoader.cxx:798
 AliRunLoader.cxx:799
 AliRunLoader.cxx:800
 AliRunLoader.cxx:801
 AliRunLoader.cxx:802
 AliRunLoader.cxx:803
 AliRunLoader.cxx:804
 AliRunLoader.cxx:805
 AliRunLoader.cxx:806
 AliRunLoader.cxx:807
 AliRunLoader.cxx:808
 AliRunLoader.cxx:809
 AliRunLoader.cxx:810
 AliRunLoader.cxx:811
 AliRunLoader.cxx:812
 AliRunLoader.cxx:813
 AliRunLoader.cxx:814
 AliRunLoader.cxx:815
 AliRunLoader.cxx:816
 AliRunLoader.cxx:817
 AliRunLoader.cxx:818
 AliRunLoader.cxx:819
 AliRunLoader.cxx:820
 AliRunLoader.cxx:821
 AliRunLoader.cxx:822
 AliRunLoader.cxx:823
 AliRunLoader.cxx:824
 AliRunLoader.cxx:825
 AliRunLoader.cxx:826
 AliRunLoader.cxx:827
 AliRunLoader.cxx:828
 AliRunLoader.cxx:829
 AliRunLoader.cxx:830
 AliRunLoader.cxx:831
 AliRunLoader.cxx:832
 AliRunLoader.cxx:833
 AliRunLoader.cxx:834
 AliRunLoader.cxx:835
 AliRunLoader.cxx:836
 AliRunLoader.cxx:837
 AliRunLoader.cxx:838
 AliRunLoader.cxx:839
 AliRunLoader.cxx:840
 AliRunLoader.cxx:841
 AliRunLoader.cxx:842
 AliRunLoader.cxx:843
 AliRunLoader.cxx:844
 AliRunLoader.cxx:845
 AliRunLoader.cxx:846
 AliRunLoader.cxx:847
 AliRunLoader.cxx:848
 AliRunLoader.cxx:849
 AliRunLoader.cxx:850
 AliRunLoader.cxx:851
 AliRunLoader.cxx:852
 AliRunLoader.cxx:853
 AliRunLoader.cxx:854
 AliRunLoader.cxx:855
 AliRunLoader.cxx:856
 AliRunLoader.cxx:857
 AliRunLoader.cxx:858
 AliRunLoader.cxx:859
 AliRunLoader.cxx:860
 AliRunLoader.cxx:861
 AliRunLoader.cxx:862
 AliRunLoader.cxx:863
 AliRunLoader.cxx:864
 AliRunLoader.cxx:865
 AliRunLoader.cxx:866
 AliRunLoader.cxx:867
 AliRunLoader.cxx:868
 AliRunLoader.cxx:869
 AliRunLoader.cxx:870
 AliRunLoader.cxx:871
 AliRunLoader.cxx:872
 AliRunLoader.cxx:873
 AliRunLoader.cxx:874
 AliRunLoader.cxx:875
 AliRunLoader.cxx:876
 AliRunLoader.cxx:877
 AliRunLoader.cxx:878
 AliRunLoader.cxx:879
 AliRunLoader.cxx:880
 AliRunLoader.cxx:881
 AliRunLoader.cxx:882
 AliRunLoader.cxx:883
 AliRunLoader.cxx:884
 AliRunLoader.cxx:885
 AliRunLoader.cxx:886
 AliRunLoader.cxx:887
 AliRunLoader.cxx:888
 AliRunLoader.cxx:889
 AliRunLoader.cxx:890
 AliRunLoader.cxx:891
 AliRunLoader.cxx:892
 AliRunLoader.cxx:893
 AliRunLoader.cxx:894
 AliRunLoader.cxx:895
 AliRunLoader.cxx:896
 AliRunLoader.cxx:897
 AliRunLoader.cxx:898
 AliRunLoader.cxx:899
 AliRunLoader.cxx:900
 AliRunLoader.cxx:901
 AliRunLoader.cxx:902
 AliRunLoader.cxx:903
 AliRunLoader.cxx:904
 AliRunLoader.cxx:905
 AliRunLoader.cxx:906
 AliRunLoader.cxx:907
 AliRunLoader.cxx:908
 AliRunLoader.cxx:909
 AliRunLoader.cxx:910
 AliRunLoader.cxx:911
 AliRunLoader.cxx:912
 AliRunLoader.cxx:913
 AliRunLoader.cxx:914
 AliRunLoader.cxx:915
 AliRunLoader.cxx:916
 AliRunLoader.cxx:917
 AliRunLoader.cxx:918
 AliRunLoader.cxx:919
 AliRunLoader.cxx:920
 AliRunLoader.cxx:921
 AliRunLoader.cxx:922
 AliRunLoader.cxx:923
 AliRunLoader.cxx:924
 AliRunLoader.cxx:925
 AliRunLoader.cxx:926
 AliRunLoader.cxx:927
 AliRunLoader.cxx:928
 AliRunLoader.cxx:929
 AliRunLoader.cxx:930
 AliRunLoader.cxx:931
 AliRunLoader.cxx:932
 AliRunLoader.cxx:933
 AliRunLoader.cxx:934
 AliRunLoader.cxx:935
 AliRunLoader.cxx:936
 AliRunLoader.cxx:937
 AliRunLoader.cxx:938
 AliRunLoader.cxx:939
 AliRunLoader.cxx:940
 AliRunLoader.cxx:941
 AliRunLoader.cxx:942
 AliRunLoader.cxx:943
 AliRunLoader.cxx:944
 AliRunLoader.cxx:945
 AliRunLoader.cxx:946
 AliRunLoader.cxx:947
 AliRunLoader.cxx:948
 AliRunLoader.cxx:949
 AliRunLoader.cxx:950
 AliRunLoader.cxx:951
 AliRunLoader.cxx:952
 AliRunLoader.cxx:953
 AliRunLoader.cxx:954
 AliRunLoader.cxx:955
 AliRunLoader.cxx:956
 AliRunLoader.cxx:957
 AliRunLoader.cxx:958
 AliRunLoader.cxx:959
 AliRunLoader.cxx:960
 AliRunLoader.cxx:961
 AliRunLoader.cxx:962
 AliRunLoader.cxx:963
 AliRunLoader.cxx:964
 AliRunLoader.cxx:965
 AliRunLoader.cxx:966
 AliRunLoader.cxx:967
 AliRunLoader.cxx:968
 AliRunLoader.cxx:969
 AliRunLoader.cxx:970
 AliRunLoader.cxx:971
 AliRunLoader.cxx:972
 AliRunLoader.cxx:973
 AliRunLoader.cxx:974
 AliRunLoader.cxx:975
 AliRunLoader.cxx:976
 AliRunLoader.cxx:977
 AliRunLoader.cxx:978
 AliRunLoader.cxx:979
 AliRunLoader.cxx:980
 AliRunLoader.cxx:981
 AliRunLoader.cxx:982
 AliRunLoader.cxx:983
 AliRunLoader.cxx:984
 AliRunLoader.cxx:985
 AliRunLoader.cxx:986
 AliRunLoader.cxx:987
 AliRunLoader.cxx:988
 AliRunLoader.cxx:989
 AliRunLoader.cxx:990
 AliRunLoader.cxx:991
 AliRunLoader.cxx:992
 AliRunLoader.cxx:993
 AliRunLoader.cxx:994
 AliRunLoader.cxx:995
 AliRunLoader.cxx:996
 AliRunLoader.cxx:997
 AliRunLoader.cxx:998
 AliRunLoader.cxx:999
 AliRunLoader.cxx:1000
 AliRunLoader.cxx:1001
 AliRunLoader.cxx:1002
 AliRunLoader.cxx:1003
 AliRunLoader.cxx:1004
 AliRunLoader.cxx:1005
 AliRunLoader.cxx:1006
 AliRunLoader.cxx:1007
 AliRunLoader.cxx:1008
 AliRunLoader.cxx:1009
 AliRunLoader.cxx:1010
 AliRunLoader.cxx:1011
 AliRunLoader.cxx:1012
 AliRunLoader.cxx:1013
 AliRunLoader.cxx:1014
 AliRunLoader.cxx:1015
 AliRunLoader.cxx:1016
 AliRunLoader.cxx:1017
 AliRunLoader.cxx:1018
 AliRunLoader.cxx:1019
 AliRunLoader.cxx:1020
 AliRunLoader.cxx:1021
 AliRunLoader.cxx:1022
 AliRunLoader.cxx:1023
 AliRunLoader.cxx:1024
 AliRunLoader.cxx:1025
 AliRunLoader.cxx:1026
 AliRunLoader.cxx:1027
 AliRunLoader.cxx:1028
 AliRunLoader.cxx:1029
 AliRunLoader.cxx:1030
 AliRunLoader.cxx:1031
 AliRunLoader.cxx:1032
 AliRunLoader.cxx:1033
 AliRunLoader.cxx:1034
 AliRunLoader.cxx:1035
 AliRunLoader.cxx:1036
 AliRunLoader.cxx:1037
 AliRunLoader.cxx:1038
 AliRunLoader.cxx:1039
 AliRunLoader.cxx:1040
 AliRunLoader.cxx:1041
 AliRunLoader.cxx:1042
 AliRunLoader.cxx:1043
 AliRunLoader.cxx:1044
 AliRunLoader.cxx:1045
 AliRunLoader.cxx:1046
 AliRunLoader.cxx:1047
 AliRunLoader.cxx:1048
 AliRunLoader.cxx:1049
 AliRunLoader.cxx:1050
 AliRunLoader.cxx:1051
 AliRunLoader.cxx:1052
 AliRunLoader.cxx:1053
 AliRunLoader.cxx:1054
 AliRunLoader.cxx:1055
 AliRunLoader.cxx:1056
 AliRunLoader.cxx:1057
 AliRunLoader.cxx:1058
 AliRunLoader.cxx:1059
 AliRunLoader.cxx:1060
 AliRunLoader.cxx:1061
 AliRunLoader.cxx:1062
 AliRunLoader.cxx:1063
 AliRunLoader.cxx:1064
 AliRunLoader.cxx:1065
 AliRunLoader.cxx:1066
 AliRunLoader.cxx:1067
 AliRunLoader.cxx:1068
 AliRunLoader.cxx:1069
 AliRunLoader.cxx:1070
 AliRunLoader.cxx:1071
 AliRunLoader.cxx:1072
 AliRunLoader.cxx:1073
 AliRunLoader.cxx:1074
 AliRunLoader.cxx:1075
 AliRunLoader.cxx:1076
 AliRunLoader.cxx:1077
 AliRunLoader.cxx:1078
 AliRunLoader.cxx:1079
 AliRunLoader.cxx:1080
 AliRunLoader.cxx:1081
 AliRunLoader.cxx:1082
 AliRunLoader.cxx:1083
 AliRunLoader.cxx:1084
 AliRunLoader.cxx:1085
 AliRunLoader.cxx:1086
 AliRunLoader.cxx:1087
 AliRunLoader.cxx:1088
 AliRunLoader.cxx:1089
 AliRunLoader.cxx:1090
 AliRunLoader.cxx:1091
 AliRunLoader.cxx:1092
 AliRunLoader.cxx:1093
 AliRunLoader.cxx:1094
 AliRunLoader.cxx:1095
 AliRunLoader.cxx:1096
 AliRunLoader.cxx:1097
 AliRunLoader.cxx:1098
 AliRunLoader.cxx:1099
 AliRunLoader.cxx:1100
 AliRunLoader.cxx:1101
 AliRunLoader.cxx:1102
 AliRunLoader.cxx:1103
 AliRunLoader.cxx:1104
 AliRunLoader.cxx:1105
 AliRunLoader.cxx:1106
 AliRunLoader.cxx:1107
 AliRunLoader.cxx:1108
 AliRunLoader.cxx:1109
 AliRunLoader.cxx:1110
 AliRunLoader.cxx:1111
 AliRunLoader.cxx:1112
 AliRunLoader.cxx:1113
 AliRunLoader.cxx:1114
 AliRunLoader.cxx:1115
 AliRunLoader.cxx:1116
 AliRunLoader.cxx:1117
 AliRunLoader.cxx:1118
 AliRunLoader.cxx:1119
 AliRunLoader.cxx:1120
 AliRunLoader.cxx:1121
 AliRunLoader.cxx:1122
 AliRunLoader.cxx:1123
 AliRunLoader.cxx:1124
 AliRunLoader.cxx:1125
 AliRunLoader.cxx:1126
 AliRunLoader.cxx:1127
 AliRunLoader.cxx:1128
 AliRunLoader.cxx:1129
 AliRunLoader.cxx:1130
 AliRunLoader.cxx:1131
 AliRunLoader.cxx:1132
 AliRunLoader.cxx:1133
 AliRunLoader.cxx:1134
 AliRunLoader.cxx:1135
 AliRunLoader.cxx:1136
 AliRunLoader.cxx:1137
 AliRunLoader.cxx:1138
 AliRunLoader.cxx:1139
 AliRunLoader.cxx:1140
 AliRunLoader.cxx:1141
 AliRunLoader.cxx:1142
 AliRunLoader.cxx:1143
 AliRunLoader.cxx:1144
 AliRunLoader.cxx:1145
 AliRunLoader.cxx:1146
 AliRunLoader.cxx:1147
 AliRunLoader.cxx:1148
 AliRunLoader.cxx:1149
 AliRunLoader.cxx:1150
 AliRunLoader.cxx:1151
 AliRunLoader.cxx:1152
 AliRunLoader.cxx:1153
 AliRunLoader.cxx:1154
 AliRunLoader.cxx:1155
 AliRunLoader.cxx:1156
 AliRunLoader.cxx:1157
 AliRunLoader.cxx:1158
 AliRunLoader.cxx:1159
 AliRunLoader.cxx:1160
 AliRunLoader.cxx:1161
 AliRunLoader.cxx:1162
 AliRunLoader.cxx:1163
 AliRunLoader.cxx:1164
 AliRunLoader.cxx:1165
 AliRunLoader.cxx:1166
 AliRunLoader.cxx:1167
 AliRunLoader.cxx:1168
 AliRunLoader.cxx:1169
 AliRunLoader.cxx:1170
 AliRunLoader.cxx:1171
 AliRunLoader.cxx:1172
 AliRunLoader.cxx:1173
 AliRunLoader.cxx:1174
 AliRunLoader.cxx:1175
 AliRunLoader.cxx:1176
 AliRunLoader.cxx:1177
 AliRunLoader.cxx:1178
 AliRunLoader.cxx:1179
 AliRunLoader.cxx:1180
 AliRunLoader.cxx:1181
 AliRunLoader.cxx:1182
 AliRunLoader.cxx:1183
 AliRunLoader.cxx:1184
 AliRunLoader.cxx:1185
 AliRunLoader.cxx:1186
 AliRunLoader.cxx:1187
 AliRunLoader.cxx:1188
 AliRunLoader.cxx:1189
 AliRunLoader.cxx:1190
 AliRunLoader.cxx:1191
 AliRunLoader.cxx:1192
 AliRunLoader.cxx:1193
 AliRunLoader.cxx:1194
 AliRunLoader.cxx:1195
 AliRunLoader.cxx:1196
 AliRunLoader.cxx:1197
 AliRunLoader.cxx:1198
 AliRunLoader.cxx:1199
 AliRunLoader.cxx:1200
 AliRunLoader.cxx:1201
 AliRunLoader.cxx:1202
 AliRunLoader.cxx:1203
 AliRunLoader.cxx:1204
 AliRunLoader.cxx:1205
 AliRunLoader.cxx:1206
 AliRunLoader.cxx:1207
 AliRunLoader.cxx:1208
 AliRunLoader.cxx:1209
 AliRunLoader.cxx:1210
 AliRunLoader.cxx:1211
 AliRunLoader.cxx:1212
 AliRunLoader.cxx:1213
 AliRunLoader.cxx:1214
 AliRunLoader.cxx:1215
 AliRunLoader.cxx:1216
 AliRunLoader.cxx:1217
 AliRunLoader.cxx:1218
 AliRunLoader.cxx:1219
 AliRunLoader.cxx:1220
 AliRunLoader.cxx:1221
 AliRunLoader.cxx:1222
 AliRunLoader.cxx:1223
 AliRunLoader.cxx:1224
 AliRunLoader.cxx:1225
 AliRunLoader.cxx:1226
 AliRunLoader.cxx:1227
 AliRunLoader.cxx:1228
 AliRunLoader.cxx:1229
 AliRunLoader.cxx:1230
 AliRunLoader.cxx:1231
 AliRunLoader.cxx:1232
 AliRunLoader.cxx:1233
 AliRunLoader.cxx:1234
 AliRunLoader.cxx:1235
 AliRunLoader.cxx:1236
 AliRunLoader.cxx:1237
 AliRunLoader.cxx:1238
 AliRunLoader.cxx:1239
 AliRunLoader.cxx:1240
 AliRunLoader.cxx:1241
 AliRunLoader.cxx:1242
 AliRunLoader.cxx:1243
 AliRunLoader.cxx:1244
 AliRunLoader.cxx:1245
 AliRunLoader.cxx:1246
 AliRunLoader.cxx:1247
 AliRunLoader.cxx:1248
 AliRunLoader.cxx:1249
 AliRunLoader.cxx:1250
 AliRunLoader.cxx:1251
 AliRunLoader.cxx:1252
 AliRunLoader.cxx:1253
 AliRunLoader.cxx:1254
 AliRunLoader.cxx:1255
 AliRunLoader.cxx:1256
 AliRunLoader.cxx:1257
 AliRunLoader.cxx:1258
 AliRunLoader.cxx:1259
 AliRunLoader.cxx:1260
 AliRunLoader.cxx:1261
 AliRunLoader.cxx:1262
 AliRunLoader.cxx:1263
 AliRunLoader.cxx:1264
 AliRunLoader.cxx:1265
 AliRunLoader.cxx:1266
 AliRunLoader.cxx:1267
 AliRunLoader.cxx:1268
 AliRunLoader.cxx:1269
 AliRunLoader.cxx:1270
 AliRunLoader.cxx:1271
 AliRunLoader.cxx:1272
 AliRunLoader.cxx:1273
 AliRunLoader.cxx:1274
 AliRunLoader.cxx:1275
 AliRunLoader.cxx:1276
 AliRunLoader.cxx:1277
 AliRunLoader.cxx:1278
 AliRunLoader.cxx:1279
 AliRunLoader.cxx:1280
 AliRunLoader.cxx:1281
 AliRunLoader.cxx:1282
 AliRunLoader.cxx:1283
 AliRunLoader.cxx:1284
 AliRunLoader.cxx:1285
 AliRunLoader.cxx:1286
 AliRunLoader.cxx:1287
 AliRunLoader.cxx:1288
 AliRunLoader.cxx:1289
 AliRunLoader.cxx:1290
 AliRunLoader.cxx:1291
 AliRunLoader.cxx:1292
 AliRunLoader.cxx:1293
 AliRunLoader.cxx:1294
 AliRunLoader.cxx:1295
 AliRunLoader.cxx:1296
 AliRunLoader.cxx:1297
 AliRunLoader.cxx:1298
 AliRunLoader.cxx:1299
 AliRunLoader.cxx:1300
 AliRunLoader.cxx:1301
 AliRunLoader.cxx:1302
 AliRunLoader.cxx:1303
 AliRunLoader.cxx:1304
 AliRunLoader.cxx:1305
 AliRunLoader.cxx:1306
 AliRunLoader.cxx:1307
 AliRunLoader.cxx:1308
 AliRunLoader.cxx:1309
 AliRunLoader.cxx:1310
 AliRunLoader.cxx:1311
 AliRunLoader.cxx:1312
 AliRunLoader.cxx:1313
 AliRunLoader.cxx:1314
 AliRunLoader.cxx:1315
 AliRunLoader.cxx:1316
 AliRunLoader.cxx:1317
 AliRunLoader.cxx:1318
 AliRunLoader.cxx:1319
 AliRunLoader.cxx:1320
 AliRunLoader.cxx:1321
 AliRunLoader.cxx:1322
 AliRunLoader.cxx:1323
 AliRunLoader.cxx:1324
 AliRunLoader.cxx:1325
 AliRunLoader.cxx:1326
 AliRunLoader.cxx:1327
 AliRunLoader.cxx:1328
 AliRunLoader.cxx:1329
 AliRunLoader.cxx:1330
 AliRunLoader.cxx:1331
 AliRunLoader.cxx:1332
 AliRunLoader.cxx:1333
 AliRunLoader.cxx:1334
 AliRunLoader.cxx:1335
 AliRunLoader.cxx:1336
 AliRunLoader.cxx:1337
 AliRunLoader.cxx:1338
 AliRunLoader.cxx:1339
 AliRunLoader.cxx:1340
 AliRunLoader.cxx:1341
 AliRunLoader.cxx:1342
 AliRunLoader.cxx:1343
 AliRunLoader.cxx:1344
 AliRunLoader.cxx:1345
 AliRunLoader.cxx:1346
 AliRunLoader.cxx:1347
 AliRunLoader.cxx:1348
 AliRunLoader.cxx:1349
 AliRunLoader.cxx:1350
 AliRunLoader.cxx:1351
 AliRunLoader.cxx:1352
 AliRunLoader.cxx:1353
 AliRunLoader.cxx:1354
 AliRunLoader.cxx:1355
 AliRunLoader.cxx:1356
 AliRunLoader.cxx:1357
 AliRunLoader.cxx:1358
 AliRunLoader.cxx:1359
 AliRunLoader.cxx:1360
 AliRunLoader.cxx:1361
 AliRunLoader.cxx:1362
 AliRunLoader.cxx:1363
 AliRunLoader.cxx:1364
 AliRunLoader.cxx:1365
 AliRunLoader.cxx:1366
 AliRunLoader.cxx:1367
 AliRunLoader.cxx:1368
 AliRunLoader.cxx:1369
 AliRunLoader.cxx:1370
 AliRunLoader.cxx:1371
 AliRunLoader.cxx:1372
 AliRunLoader.cxx:1373
 AliRunLoader.cxx:1374
 AliRunLoader.cxx:1375
 AliRunLoader.cxx:1376
 AliRunLoader.cxx:1377
 AliRunLoader.cxx:1378
 AliRunLoader.cxx:1379
 AliRunLoader.cxx:1380
 AliRunLoader.cxx:1381
 AliRunLoader.cxx:1382
 AliRunLoader.cxx:1383
 AliRunLoader.cxx:1384
 AliRunLoader.cxx:1385
 AliRunLoader.cxx:1386
 AliRunLoader.cxx:1387
 AliRunLoader.cxx:1388
 AliRunLoader.cxx:1389
 AliRunLoader.cxx:1390
 AliRunLoader.cxx:1391
 AliRunLoader.cxx:1392
 AliRunLoader.cxx:1393
 AliRunLoader.cxx:1394
 AliRunLoader.cxx:1395
 AliRunLoader.cxx:1396
 AliRunLoader.cxx:1397
 AliRunLoader.cxx:1398
 AliRunLoader.cxx:1399
 AliRunLoader.cxx:1400
 AliRunLoader.cxx:1401
 AliRunLoader.cxx:1402
 AliRunLoader.cxx:1403
 AliRunLoader.cxx:1404
 AliRunLoader.cxx:1405
 AliRunLoader.cxx:1406
 AliRunLoader.cxx:1407
 AliRunLoader.cxx:1408
 AliRunLoader.cxx:1409
 AliRunLoader.cxx:1410
 AliRunLoader.cxx:1411
 AliRunLoader.cxx:1412
 AliRunLoader.cxx:1413
 AliRunLoader.cxx:1414
 AliRunLoader.cxx:1415
 AliRunLoader.cxx:1416
 AliRunLoader.cxx:1417
 AliRunLoader.cxx:1418
 AliRunLoader.cxx:1419
 AliRunLoader.cxx:1420
 AliRunLoader.cxx:1421
 AliRunLoader.cxx:1422
 AliRunLoader.cxx:1423
 AliRunLoader.cxx:1424
 AliRunLoader.cxx:1425
 AliRunLoader.cxx:1426
 AliRunLoader.cxx:1427
 AliRunLoader.cxx:1428
 AliRunLoader.cxx:1429
 AliRunLoader.cxx:1430
 AliRunLoader.cxx:1431
 AliRunLoader.cxx:1432
 AliRunLoader.cxx:1433
 AliRunLoader.cxx:1434
 AliRunLoader.cxx:1435
 AliRunLoader.cxx:1436
 AliRunLoader.cxx:1437
 AliRunLoader.cxx:1438
 AliRunLoader.cxx:1439
 AliRunLoader.cxx:1440
 AliRunLoader.cxx:1441
 AliRunLoader.cxx:1442
 AliRunLoader.cxx:1443
 AliRunLoader.cxx:1444
 AliRunLoader.cxx:1445
 AliRunLoader.cxx:1446
 AliRunLoader.cxx:1447
 AliRunLoader.cxx:1448
 AliRunLoader.cxx:1449
 AliRunLoader.cxx:1450
 AliRunLoader.cxx:1451
 AliRunLoader.cxx:1452
 AliRunLoader.cxx:1453
 AliRunLoader.cxx:1454
 AliRunLoader.cxx:1455
 AliRunLoader.cxx:1456
 AliRunLoader.cxx:1457
 AliRunLoader.cxx:1458
 AliRunLoader.cxx:1459
 AliRunLoader.cxx:1460
 AliRunLoader.cxx:1461
 AliRunLoader.cxx:1462
 AliRunLoader.cxx:1463
 AliRunLoader.cxx:1464
 AliRunLoader.cxx:1465
 AliRunLoader.cxx:1466
 AliRunLoader.cxx:1467
 AliRunLoader.cxx:1468
 AliRunLoader.cxx:1469
 AliRunLoader.cxx:1470
 AliRunLoader.cxx:1471
 AliRunLoader.cxx:1472
 AliRunLoader.cxx:1473
 AliRunLoader.cxx:1474
 AliRunLoader.cxx:1475
 AliRunLoader.cxx:1476
 AliRunLoader.cxx:1477
 AliRunLoader.cxx:1478
 AliRunLoader.cxx:1479
 AliRunLoader.cxx:1480
 AliRunLoader.cxx:1481
 AliRunLoader.cxx:1482
 AliRunLoader.cxx:1483
 AliRunLoader.cxx:1484
 AliRunLoader.cxx:1485
 AliRunLoader.cxx:1486
 AliRunLoader.cxx:1487
 AliRunLoader.cxx:1488
 AliRunLoader.cxx:1489
 AliRunLoader.cxx:1490
 AliRunLoader.cxx:1491
 AliRunLoader.cxx:1492
 AliRunLoader.cxx:1493
 AliRunLoader.cxx:1494
 AliRunLoader.cxx:1495
 AliRunLoader.cxx:1496
 AliRunLoader.cxx:1497
 AliRunLoader.cxx:1498
 AliRunLoader.cxx:1499
 AliRunLoader.cxx:1500
 AliRunLoader.cxx:1501
 AliRunLoader.cxx:1502
 AliRunLoader.cxx:1503
 AliRunLoader.cxx:1504
 AliRunLoader.cxx:1505
 AliRunLoader.cxx:1506
 AliRunLoader.cxx:1507
 AliRunLoader.cxx:1508
 AliRunLoader.cxx:1509
 AliRunLoader.cxx:1510
 AliRunLoader.cxx:1511
 AliRunLoader.cxx:1512
 AliRunLoader.cxx:1513
 AliRunLoader.cxx:1514
 AliRunLoader.cxx:1515
 AliRunLoader.cxx:1516
 AliRunLoader.cxx:1517
 AliRunLoader.cxx:1518
 AliRunLoader.cxx:1519
 AliRunLoader.cxx:1520
 AliRunLoader.cxx:1521
 AliRunLoader.cxx:1522
 AliRunLoader.cxx:1523
 AliRunLoader.cxx:1524
 AliRunLoader.cxx:1525
 AliRunLoader.cxx:1526
 AliRunLoader.cxx:1527
 AliRunLoader.cxx:1528
 AliRunLoader.cxx:1529
 AliRunLoader.cxx:1530
 AliRunLoader.cxx:1531
 AliRunLoader.cxx:1532
 AliRunLoader.cxx:1533
 AliRunLoader.cxx:1534
 AliRunLoader.cxx:1535
 AliRunLoader.cxx:1536
 AliRunLoader.cxx:1537
 AliRunLoader.cxx:1538
 AliRunLoader.cxx:1539
 AliRunLoader.cxx:1540
 AliRunLoader.cxx:1541
 AliRunLoader.cxx:1542
 AliRunLoader.cxx:1543
 AliRunLoader.cxx:1544
 AliRunLoader.cxx:1545
 AliRunLoader.cxx:1546
 AliRunLoader.cxx:1547
 AliRunLoader.cxx:1548
 AliRunLoader.cxx:1549
 AliRunLoader.cxx:1550
 AliRunLoader.cxx:1551
 AliRunLoader.cxx:1552
 AliRunLoader.cxx:1553
 AliRunLoader.cxx:1554
 AliRunLoader.cxx:1555
 AliRunLoader.cxx:1556
 AliRunLoader.cxx:1557
 AliRunLoader.cxx:1558
 AliRunLoader.cxx:1559
 AliRunLoader.cxx:1560
 AliRunLoader.cxx:1561
 AliRunLoader.cxx:1562
 AliRunLoader.cxx:1563
 AliRunLoader.cxx:1564
 AliRunLoader.cxx:1565
 AliRunLoader.cxx:1566
 AliRunLoader.cxx:1567
 AliRunLoader.cxx:1568
 AliRunLoader.cxx:1569
 AliRunLoader.cxx:1570
 AliRunLoader.cxx:1571
 AliRunLoader.cxx:1572
 AliRunLoader.cxx:1573
 AliRunLoader.cxx:1574
 AliRunLoader.cxx:1575
 AliRunLoader.cxx:1576
 AliRunLoader.cxx:1577
 AliRunLoader.cxx:1578
 AliRunLoader.cxx:1579
 AliRunLoader.cxx:1580
 AliRunLoader.cxx:1581
 AliRunLoader.cxx:1582
 AliRunLoader.cxx:1583
 AliRunLoader.cxx:1584
 AliRunLoader.cxx:1585
 AliRunLoader.cxx:1586
 AliRunLoader.cxx:1587
 AliRunLoader.cxx:1588
 AliRunLoader.cxx:1589
 AliRunLoader.cxx:1590
 AliRunLoader.cxx:1591
 AliRunLoader.cxx:1592
 AliRunLoader.cxx:1593
 AliRunLoader.cxx:1594
 AliRunLoader.cxx:1595
 AliRunLoader.cxx:1596
 AliRunLoader.cxx:1597
 AliRunLoader.cxx:1598
 AliRunLoader.cxx:1599
 AliRunLoader.cxx:1600
 AliRunLoader.cxx:1601
 AliRunLoader.cxx:1602
 AliRunLoader.cxx:1603
 AliRunLoader.cxx:1604
 AliRunLoader.cxx:1605
 AliRunLoader.cxx:1606
 AliRunLoader.cxx:1607
 AliRunLoader.cxx:1608
 AliRunLoader.cxx:1609
 AliRunLoader.cxx:1610
 AliRunLoader.cxx:1611
 AliRunLoader.cxx:1612
 AliRunLoader.cxx:1613
 AliRunLoader.cxx:1614
 AliRunLoader.cxx:1615
 AliRunLoader.cxx:1616
 AliRunLoader.cxx:1617
 AliRunLoader.cxx:1618
 AliRunLoader.cxx:1619
 AliRunLoader.cxx:1620
 AliRunLoader.cxx:1621
 AliRunLoader.cxx:1622
 AliRunLoader.cxx:1623
 AliRunLoader.cxx:1624
 AliRunLoader.cxx:1625
 AliRunLoader.cxx:1626
 AliRunLoader.cxx:1627
 AliRunLoader.cxx:1628
 AliRunLoader.cxx:1629
 AliRunLoader.cxx:1630
 AliRunLoader.cxx:1631
 AliRunLoader.cxx:1632
 AliRunLoader.cxx:1633
 AliRunLoader.cxx:1634
 AliRunLoader.cxx:1635
 AliRunLoader.cxx:1636
 AliRunLoader.cxx:1637
 AliRunLoader.cxx:1638
 AliRunLoader.cxx:1639
 AliRunLoader.cxx:1640
 AliRunLoader.cxx:1641
 AliRunLoader.cxx:1642
 AliRunLoader.cxx:1643
 AliRunLoader.cxx:1644
 AliRunLoader.cxx:1645
 AliRunLoader.cxx:1646
 AliRunLoader.cxx:1647
 AliRunLoader.cxx:1648
 AliRunLoader.cxx:1649
 AliRunLoader.cxx:1650
 AliRunLoader.cxx:1651
 AliRunLoader.cxx:1652
 AliRunLoader.cxx:1653
 AliRunLoader.cxx:1654
 AliRunLoader.cxx:1655
 AliRunLoader.cxx:1656
 AliRunLoader.cxx:1657
 AliRunLoader.cxx:1658
 AliRunLoader.cxx:1659
 AliRunLoader.cxx:1660
 AliRunLoader.cxx:1661
 AliRunLoader.cxx:1662
 AliRunLoader.cxx:1663
 AliRunLoader.cxx:1664
 AliRunLoader.cxx:1665
 AliRunLoader.cxx:1666
 AliRunLoader.cxx:1667
 AliRunLoader.cxx:1668
 AliRunLoader.cxx:1669
 AliRunLoader.cxx:1670
 AliRunLoader.cxx:1671
 AliRunLoader.cxx:1672
 AliRunLoader.cxx:1673
 AliRunLoader.cxx:1674
 AliRunLoader.cxx:1675
 AliRunLoader.cxx:1676
 AliRunLoader.cxx:1677
 AliRunLoader.cxx:1678
 AliRunLoader.cxx:1679
 AliRunLoader.cxx:1680
 AliRunLoader.cxx:1681
 AliRunLoader.cxx:1682
 AliRunLoader.cxx:1683
 AliRunLoader.cxx:1684
 AliRunLoader.cxx:1685
 AliRunLoader.cxx:1686
 AliRunLoader.cxx:1687
 AliRunLoader.cxx:1688
 AliRunLoader.cxx:1689
 AliRunLoader.cxx:1690
 AliRunLoader.cxx:1691
 AliRunLoader.cxx:1692
 AliRunLoader.cxx:1693
 AliRunLoader.cxx:1694
 AliRunLoader.cxx:1695
 AliRunLoader.cxx:1696
 AliRunLoader.cxx:1697
 AliRunLoader.cxx:1698
 AliRunLoader.cxx:1699
 AliRunLoader.cxx:1700
 AliRunLoader.cxx:1701
 AliRunLoader.cxx:1702
 AliRunLoader.cxx:1703
 AliRunLoader.cxx:1704
 AliRunLoader.cxx:1705
 AliRunLoader.cxx:1706
 AliRunLoader.cxx:1707
 AliRunLoader.cxx:1708
 AliRunLoader.cxx:1709
 AliRunLoader.cxx:1710
 AliRunLoader.cxx:1711
 AliRunLoader.cxx:1712
 AliRunLoader.cxx:1713
 AliRunLoader.cxx:1714
 AliRunLoader.cxx:1715
 AliRunLoader.cxx:1716
 AliRunLoader.cxx:1717
 AliRunLoader.cxx:1718
 AliRunLoader.cxx:1719
 AliRunLoader.cxx:1720
 AliRunLoader.cxx:1721
 AliRunLoader.cxx:1722
 AliRunLoader.cxx:1723
 AliRunLoader.cxx:1724
 AliRunLoader.cxx:1725
 AliRunLoader.cxx:1726
 AliRunLoader.cxx:1727
 AliRunLoader.cxx:1728
 AliRunLoader.cxx:1729
 AliRunLoader.cxx:1730
 AliRunLoader.cxx:1731
 AliRunLoader.cxx:1732
 AliRunLoader.cxx:1733
 AliRunLoader.cxx:1734
 AliRunLoader.cxx:1735
 AliRunLoader.cxx:1736
 AliRunLoader.cxx:1737
 AliRunLoader.cxx:1738
 AliRunLoader.cxx:1739
 AliRunLoader.cxx:1740
 AliRunLoader.cxx:1741
 AliRunLoader.cxx:1742
 AliRunLoader.cxx:1743
 AliRunLoader.cxx:1744
 AliRunLoader.cxx:1745
 AliRunLoader.cxx:1746
 AliRunLoader.cxx:1747
 AliRunLoader.cxx:1748
 AliRunLoader.cxx:1749
 AliRunLoader.cxx:1750
 AliRunLoader.cxx:1751
 AliRunLoader.cxx:1752
 AliRunLoader.cxx:1753
 AliRunLoader.cxx:1754
 AliRunLoader.cxx:1755
 AliRunLoader.cxx:1756
 AliRunLoader.cxx:1757
 AliRunLoader.cxx:1758
 AliRunLoader.cxx:1759
 AliRunLoader.cxx:1760
 AliRunLoader.cxx:1761
 AliRunLoader.cxx:1762
 AliRunLoader.cxx:1763
 AliRunLoader.cxx:1764
 AliRunLoader.cxx:1765
 AliRunLoader.cxx:1766
 AliRunLoader.cxx:1767
 AliRunLoader.cxx:1768
 AliRunLoader.cxx:1769
 AliRunLoader.cxx:1770
 AliRunLoader.cxx:1771
 AliRunLoader.cxx:1772
 AliRunLoader.cxx:1773
 AliRunLoader.cxx:1774
 AliRunLoader.cxx:1775
 AliRunLoader.cxx:1776
 AliRunLoader.cxx:1777
 AliRunLoader.cxx:1778
 AliRunLoader.cxx:1779
 AliRunLoader.cxx:1780
 AliRunLoader.cxx:1781
 AliRunLoader.cxx:1782
 AliRunLoader.cxx:1783
 AliRunLoader.cxx:1784
 AliRunLoader.cxx:1785
 AliRunLoader.cxx:1786
 AliRunLoader.cxx:1787
 AliRunLoader.cxx:1788
 AliRunLoader.cxx:1789
 AliRunLoader.cxx:1790
 AliRunLoader.cxx:1791
 AliRunLoader.cxx:1792
 AliRunLoader.cxx:1793
 AliRunLoader.cxx:1794
 AliRunLoader.cxx:1795
 AliRunLoader.cxx:1796
 AliRunLoader.cxx:1797
 AliRunLoader.cxx:1798
 AliRunLoader.cxx:1799
 AliRunLoader.cxx:1800
 AliRunLoader.cxx:1801
 AliRunLoader.cxx:1802
 AliRunLoader.cxx:1803
 AliRunLoader.cxx:1804
 AliRunLoader.cxx:1805
 AliRunLoader.cxx:1806
 AliRunLoader.cxx:1807
 AliRunLoader.cxx:1808
 AliRunLoader.cxx:1809
 AliRunLoader.cxx:1810
 AliRunLoader.cxx:1811
 AliRunLoader.cxx:1812
 AliRunLoader.cxx:1813
 AliRunLoader.cxx:1814
 AliRunLoader.cxx:1815
 AliRunLoader.cxx:1816
 AliRunLoader.cxx:1817
 AliRunLoader.cxx:1818
 AliRunLoader.cxx:1819
 AliRunLoader.cxx:1820
 AliRunLoader.cxx:1821
 AliRunLoader.cxx:1822
 AliRunLoader.cxx:1823
 AliRunLoader.cxx:1824
 AliRunLoader.cxx:1825
 AliRunLoader.cxx:1826
 AliRunLoader.cxx:1827
 AliRunLoader.cxx:1828
 AliRunLoader.cxx:1829
 AliRunLoader.cxx:1830
 AliRunLoader.cxx:1831
 AliRunLoader.cxx:1832
 AliRunLoader.cxx:1833
 AliRunLoader.cxx:1834
 AliRunLoader.cxx:1835
 AliRunLoader.cxx:1836
 AliRunLoader.cxx:1837
 AliRunLoader.cxx:1838
 AliRunLoader.cxx:1839
 AliRunLoader.cxx:1840
 AliRunLoader.cxx:1841
 AliRunLoader.cxx:1842
 AliRunLoader.cxx:1843
 AliRunLoader.cxx:1844
 AliRunLoader.cxx:1845
 AliRunLoader.cxx:1846
 AliRunLoader.cxx:1847
 AliRunLoader.cxx:1848
 AliRunLoader.cxx:1849
 AliRunLoader.cxx:1850
 AliRunLoader.cxx:1851
 AliRunLoader.cxx:1852
 AliRunLoader.cxx:1853
 AliRunLoader.cxx:1854
 AliRunLoader.cxx:1855
 AliRunLoader.cxx:1856
 AliRunLoader.cxx:1857
 AliRunLoader.cxx:1858
 AliRunLoader.cxx:1859
 AliRunLoader.cxx:1860
 AliRunLoader.cxx:1861
 AliRunLoader.cxx:1862
 AliRunLoader.cxx:1863
 AliRunLoader.cxx:1864
 AliRunLoader.cxx:1865
 AliRunLoader.cxx:1866
 AliRunLoader.cxx:1867
 AliRunLoader.cxx:1868
 AliRunLoader.cxx:1869
 AliRunLoader.cxx:1870
 AliRunLoader.cxx:1871
 AliRunLoader.cxx:1872
 AliRunLoader.cxx:1873
 AliRunLoader.cxx:1874
 AliRunLoader.cxx:1875
 AliRunLoader.cxx:1876
 AliRunLoader.cxx:1877
 AliRunLoader.cxx:1878
 AliRunLoader.cxx:1879
 AliRunLoader.cxx:1880
 AliRunLoader.cxx:1881
 AliRunLoader.cxx:1882
 AliRunLoader.cxx:1883
 AliRunLoader.cxx:1884
 AliRunLoader.cxx:1885
 AliRunLoader.cxx:1886
 AliRunLoader.cxx:1887
 AliRunLoader.cxx:1888
 AliRunLoader.cxx:1889
 AliRunLoader.cxx:1890
 AliRunLoader.cxx:1891
 AliRunLoader.cxx:1892
 AliRunLoader.cxx:1893
 AliRunLoader.cxx:1894
 AliRunLoader.cxx:1895
 AliRunLoader.cxx:1896
 AliRunLoader.cxx:1897
 AliRunLoader.cxx:1898
 AliRunLoader.cxx:1899
 AliRunLoader.cxx:1900
 AliRunLoader.cxx:1901
 AliRunLoader.cxx:1902
 AliRunLoader.cxx:1903
 AliRunLoader.cxx:1904
 AliRunLoader.cxx:1905
 AliRunLoader.cxx:1906
 AliRunLoader.cxx:1907
 AliRunLoader.cxx:1908
 AliRunLoader.cxx:1909
 AliRunLoader.cxx:1910
 AliRunLoader.cxx:1911
 AliRunLoader.cxx:1912
 AliRunLoader.cxx:1913
 AliRunLoader.cxx:1914
 AliRunLoader.cxx:1915
 AliRunLoader.cxx:1916
 AliRunLoader.cxx:1917
 AliRunLoader.cxx:1918
 AliRunLoader.cxx:1919
 AliRunLoader.cxx:1920
 AliRunLoader.cxx:1921
 AliRunLoader.cxx:1922
 AliRunLoader.cxx:1923
 AliRunLoader.cxx:1924
 AliRunLoader.cxx:1925
 AliRunLoader.cxx:1926
 AliRunLoader.cxx:1927
 AliRunLoader.cxx:1928
 AliRunLoader.cxx:1929
 AliRunLoader.cxx:1930
 AliRunLoader.cxx:1931
 AliRunLoader.cxx:1932
 AliRunLoader.cxx:1933
 AliRunLoader.cxx:1934
 AliRunLoader.cxx:1935
 AliRunLoader.cxx:1936
 AliRunLoader.cxx:1937
 AliRunLoader.cxx:1938
 AliRunLoader.cxx:1939
 AliRunLoader.cxx:1940
 AliRunLoader.cxx:1941
 AliRunLoader.cxx:1942
 AliRunLoader.cxx:1943
 AliRunLoader.cxx:1944
 AliRunLoader.cxx:1945
 AliRunLoader.cxx:1946
 AliRunLoader.cxx:1947
 AliRunLoader.cxx:1948
 AliRunLoader.cxx:1949
 AliRunLoader.cxx:1950
 AliRunLoader.cxx:1951
 AliRunLoader.cxx:1952
 AliRunLoader.cxx:1953
 AliRunLoader.cxx:1954
 AliRunLoader.cxx:1955
 AliRunLoader.cxx:1956
 AliRunLoader.cxx:1957
 AliRunLoader.cxx:1958
 AliRunLoader.cxx:1959
 AliRunLoader.cxx:1960
 AliRunLoader.cxx:1961
 AliRunLoader.cxx:1962
 AliRunLoader.cxx:1963
 AliRunLoader.cxx:1964
 AliRunLoader.cxx:1965
 AliRunLoader.cxx:1966
 AliRunLoader.cxx:1967
 AliRunLoader.cxx:1968
 AliRunLoader.cxx:1969
 AliRunLoader.cxx:1970
 AliRunLoader.cxx:1971
 AliRunLoader.cxx:1972
 AliRunLoader.cxx:1973
 AliRunLoader.cxx:1974
 AliRunLoader.cxx:1975
 AliRunLoader.cxx:1976
 AliRunLoader.cxx:1977
 AliRunLoader.cxx:1978
 AliRunLoader.cxx:1979
 AliRunLoader.cxx:1980
 AliRunLoader.cxx:1981
 AliRunLoader.cxx:1982
 AliRunLoader.cxx:1983
 AliRunLoader.cxx:1984
 AliRunLoader.cxx:1985
 AliRunLoader.cxx:1986
 AliRunLoader.cxx:1987
 AliRunLoader.cxx:1988
 AliRunLoader.cxx:1989
 AliRunLoader.cxx:1990
 AliRunLoader.cxx:1991
 AliRunLoader.cxx:1992
 AliRunLoader.cxx:1993
 AliRunLoader.cxx:1994
 AliRunLoader.cxx:1995
 AliRunLoader.cxx:1996
 AliRunLoader.cxx:1997
 AliRunLoader.cxx:1998
 AliRunLoader.cxx:1999
 AliRunLoader.cxx:2000
 AliRunLoader.cxx:2001
 AliRunLoader.cxx:2002
 AliRunLoader.cxx:2003
 AliRunLoader.cxx:2004
 AliRunLoader.cxx:2005
 AliRunLoader.cxx:2006
 AliRunLoader.cxx:2007
 AliRunLoader.cxx:2008
 AliRunLoader.cxx:2009
 AliRunLoader.cxx:2010
 AliRunLoader.cxx:2011
 AliRunLoader.cxx:2012
 AliRunLoader.cxx:2013
 AliRunLoader.cxx:2014
 AliRunLoader.cxx:2015
 AliRunLoader.cxx:2016
 AliRunLoader.cxx:2017
 AliRunLoader.cxx:2018
 AliRunLoader.cxx:2019
 AliRunLoader.cxx:2020
 AliRunLoader.cxx:2021
 AliRunLoader.cxx:2022
 AliRunLoader.cxx:2023
 AliRunLoader.cxx:2024
 AliRunLoader.cxx:2025
 AliRunLoader.cxx:2026
 AliRunLoader.cxx:2027
 AliRunLoader.cxx:2028
 AliRunLoader.cxx:2029
 AliRunLoader.cxx:2030
 AliRunLoader.cxx:2031
 AliRunLoader.cxx:2032
 AliRunLoader.cxx:2033
 AliRunLoader.cxx:2034
 AliRunLoader.cxx:2035
 AliRunLoader.cxx:2036
 AliRunLoader.cxx:2037
 AliRunLoader.cxx:2038
 AliRunLoader.cxx:2039
 AliRunLoader.cxx:2040
 AliRunLoader.cxx:2041
 AliRunLoader.cxx:2042
 AliRunLoader.cxx:2043
 AliRunLoader.cxx:2044
 AliRunLoader.cxx:2045
 AliRunLoader.cxx:2046
 AliRunLoader.cxx:2047
 AliRunLoader.cxx:2048
 AliRunLoader.cxx:2049
 AliRunLoader.cxx:2050
 AliRunLoader.cxx:2051
 AliRunLoader.cxx:2052
 AliRunLoader.cxx:2053
 AliRunLoader.cxx:2054
 AliRunLoader.cxx:2055
 AliRunLoader.cxx:2056
 AliRunLoader.cxx:2057
 AliRunLoader.cxx:2058
 AliRunLoader.cxx:2059
 AliRunLoader.cxx:2060
 AliRunLoader.cxx:2061
 AliRunLoader.cxx:2062
 AliRunLoader.cxx:2063