#include "AliDetector.h"
#include "AliHeader.h"
#include "AliMC.h"
-#include "AliMagFC.h"
-#include "AliMagFCM.h"
-#include "AliMagFDM.h"
#include "AliPDG.h"
#include "AliRun.h"
#include "AliStack.h"
//_______________________________________________________________________
AliRun::AliRun():
- fRun(-1),
- fEvent(0),
+// fRun(-1),
fEventNrInRun(-1),
fModules(0),
fMCApp(0),
- fField(0),
fNdets(0),
fConfigFunction(""),
- fRandom(0),
fBaseFileName(""),
- fIsRootGeometry(kFALSE),
- fGeometryFromCDB(kFALSE),
- fGeometryFileName(""),
- fTriggerDescriptor(""),
fRunLoader(0x0)
{
//
//_____________________________________________________________________________
AliRun::AliRun(const char *name, const char *title):
TNamed(name,title),
- fRun(-1),
- fEvent(0),
fEventNrInRun(-1),
fModules(new TObjArray(77)), // Support list for the Detectors
fMCApp(new AliMC(GetName(),GetTitle())),
- fField(0),
fNdets(0),
fConfigFunction("Config();"),
- fRandom(new TRandom3()),
fBaseFileName(""),
- fIsRootGeometry(kFALSE),
- fGeometryFromCDB(kFALSE),
- fGeometryFileName(""),
- fTriggerDescriptor(""),
fRunLoader(0x0)
{
//
gAlice = this;
// Set random number generator
- gRandom = fRandom;
+ gRandom = new TRandom3();
if (gSystem->Getenv("CONFIG_SEED")) {
gRandom->SetSeed(static_cast<UInt_t>(atoi(gSystem->Getenv("CONFIG_SEED"))));
// Add to list of browsable
gROOT->GetListOfBrowsables()->Add(this,name);
- // Create default mag field
- fField = new AliMagFC("Map1"," ",2.,1.,10.);
-
}
-
//_______________________________________________________________________
AliRun::~AliRun()
{
{
TFolder* evfold = fRunLoader->GetEventFolder();
TFolder* modfold = dynamic_cast<TFolder*>(evfold->FindObjectAny(AliConfig::GetModulesFolderName()));
+ if(!modfold) AliFatal(Form("Folder %s not found\n",AliConfig::GetModulesFolderName().Data()));
TIter next(fModules);
AliModule *mod;
while((mod = (AliModule*)next()))
}
}
- delete fField;
delete fMCApp;
delete gMC; gMC=0;
if (fModules) {
}
-//_______________________________________________________________________
-void AliRun::SetField(AliMagF* magField)
-{
- //
- // Set Magnetic Field Map
- //
- fField = magField;
- fField->ReadField();
-}
-
-//_______________________________________________________________________
-void AliRun::SetRootGeometry(Bool_t flag)
-{
-// Instruct application that the geometry is to be retreived from a root file.
- fIsRootGeometry = flag;
- if (flag && gMC) gMC->SetRootGeometry();
-}
-
-//_______________________________________________________________________
-void AliRun::SetGeometryFromCDB()
-{
- // Set the loading of geometry from cdb instead of creating it
- // A default CDB storage needs to be set before this method is called
- if(AliCDBManager::Instance()->IsDefaultStorageSet() &&
- AliCDBManager::Instance()->GetRun() >= 0){
- SetRootGeometry();
- fGeometryFromCDB = kTRUE;
- }else{
- AliError("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
- AliError("Loading of geometry from CDB ignored. First set a default CDB storage!");
- AliError("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
- }
-}
-
//_____________________________________________________________________________
-
void AliRun::InitLoaders()
{
//creates list of getters
/**** R E L O A D ****/
/*****************************************/
- AliRunLoader::GetRunLoader()->GetEvent(event);
+ AliRunLoader::Instance()->GetEvent(event);
/*****************************************/
/**** P O S T R E L O A D I N G ****/
detector->SetTreeAddress();
}
- return AliRunLoader::GetRunLoader()->GetHeader()->GetNtrack();
+ return AliRunLoader::Instance()->GetHeader()->GetNtrack();
}
//_______________________________________________________________________
// Convert Hits to sumable digits
//
- for (Int_t nevent=0; nevent<AliRunLoader::GetRunLoader()->TreeE()->GetEntries(); nevent++) {
+ for (Int_t nevent=0; nevent<AliRunLoader::Instance()->TreeE()->GetEntries(); nevent++) {
GetEvent(nevent);
Hits2SDigits(selected);
SDigits2Digits(selected);
//_______________________________________________________________________
-
void AliRun::Tree2Tree(Option_t *option, const char *selected)
{
//
}
}
-//
-// MC Application
-//
-
-//_______________________________________________________________________
-void AliRun::Field(const Double_t* x, Double_t *b) const
-{
- //
- // Return the value of the magnetic field
- //
-
- if (Field()) Field()->Field(x,b);
-
- else {
- AliError("No mag field defined!");
- b[0]=b[1]=b[2]=0.;
- }
-
-
-}
-
-//
-// End of MC Application
-//
//_______________________________________________________________________
void AliRun::Streamer(TBuffer &R__b)
if (!gAlice) gAlice = this;
AliRun::Class()->ReadBuffer(R__b, this);
gROOT->GetListOfBrowsables()->Add(this,"Run");
-
- gRandom = fRandom;
+ gRandom = new TRandom3();
} else {
AliRun::Class()->WriteBuffer(R__b, this);
}
}
-//_______________________________________________________________________
+//_______________________________________________________________________
void AliRun::SetGenEventHeader(AliGenEventHeader* header)
{
- AliRunLoader::GetRunLoader()->GetHeader()->SetGenEventHeader(header);
+ AliRunLoader::Instance()->GetHeader()->SetGenEventHeader(header);
}
//_______________________________________________________________________
-
Int_t AliRun::GetEvNumber() const
{
//Returns number of current event
return fRunLoader->GetEventNumber();
}
-//_______________________________________________________________________
+//_______________________________________________________________________
void AliRun::SetRunLoader(AliRunLoader* rloader)
{
//
TString evfoldname;
TFolder* evfold = fRunLoader->GetEventFolder();
if (evfold) evfoldname = evfold->GetName();
- else AliWarning("Did not get Event Folder from Run Loader");
+ else AliFatal("Did not get Event Folder from Run Loader");
if ( fRunLoader->GetAliRun() )
{//if alrun already exists in folder
}
}
+//_______________________________________________________________________
void AliRun::AddModule(AliModule* mod)
{
//