#include "AliRun.h"
#include "AliModule.h"
#include "AliGenerator.h"
+#include "AliVertexGenFile.h"
#include "AliRunDigitizer.h"
#include "AliDigitizer.h"
#include <TObjString.h>
fConfigFileName(configFileName),
fGAliceFileName("galice.root"),
fBkgrdFileNames(NULL),
+ fUseBkgrdVertex(kTRUE),
fRegionOfInterest(kTRUE)
{
// create simulation object with default parameters
fConfigFileName(sim.fConfigFileName),
fGAliceFileName(sim.fGAliceFileName),
fBkgrdFileNames(NULL),
+ fUseBkgrdVertex(sim.fUseBkgrdVertex),
fRegionOfInterest(sim.fRegionOfInterest)
{
// copy constructor
}
fGAliceFileName = runLoader->GetFileName();
+ if (!gAlice->Generator()) {
+ Error("RunSimulation", "gAlice has no generator object. "
+ "Check your config file: %s", fConfigFileName.Data());
+ return kFALSE;
+ }
+
+ // get vertex from background file in case of merging
+ if (fUseBkgrdVertex &&
+ fBkgrdFileNames && (fBkgrdFileNames->GetEntriesFast() > 0)) {
+ Int_t signalPerBkgrd = fBkgrdFileNames->At(0)->GetUniqueID();
+ const char* fileName = ((TObjString*)
+ (fBkgrdFileNames->At(0)))->GetName();
+ Info("RunSimulation", "The vertex will be taken from the background "
+ "file %s with nSignalPerBackground = %d",
+ fileName, signalPerBkgrd);
+ AliVertexGenFile* vtxGen = new AliVertexGenFile(fileName, signalPerBkgrd);
+ gAlice->Generator()->SetVertexGenerator(vtxGen);
+ }
+
if (!fRunSimulation) {
- if (!gAlice->Generator()) {
- Error("RunSimulation", "gAlice has no generator object. "
- "Check your config file: %s", fConfigFileName.Data());
- return kFALSE;
- }
gAlice->Generator()->SetTrackingFlag(0);
}
void SetMakeSDigits(const char* detectors)
{fMakeSDigits = detectors;};
void MergeWith(const char* fileName, Int_t nSignalPerBkgrd = 1);
+ void SetUseBkgrdVertex(Bool_t useBkgrdVertex)
+ {fUseBkgrdVertex = useBkgrdVertex;};
void SetRegionOfInterest(Bool_t flag) {fRegionOfInterest = flag;};
void SetMakeDigits(const char* detectors)
{fMakeDigits = detectors;};
TString fConfigFileName; // name of the config file
TString fGAliceFileName; // name of the galice file
TObjArray* fBkgrdFileNames; // names of background files for merging
+ Bool_t fUseBkgrdVertex; // use vertex from background in case of merging
Bool_t fRegionOfInterest; // digitization in region of interest
ClassDef(AliSimulation, 1) // class for running generation, simulation and digitization