fix for on the fly MC generation
authorjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Dec 2013 16:34:37 +0000 (16:34 +0000)
committerjgrosseo <jgrosseo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Dec 2013 16:34:37 +0000 (16:34 +0000)
ANALYSIS/AliAnalysisTaskBaseLine.cxx
ANALYSIS/AliAnalysisTaskSE.cxx
STEER/STEER/AliMCGenHandler.cxx
STEER/STEER/AliMCGenHandler.h
STEER/STEERBase/AliDummyHandler.h

index e3f5dac..e2b57da 100644 (file)
@@ -29,18 +29,22 @@ ClassImp(AliAnalysisTaskBaseLine)
 AliAnalysisTaskBaseLine::AliAnalysisTaskBaseLine() 
    :AliAnalysisTaskSE()
 {
+  // constructor
 }
 
 AliAnalysisTaskBaseLine::AliAnalysisTaskBaseLine(const char *name)
    :AliAnalysisTaskSE(name)
 {
+  // constructor
   DefineInput(0, TChain::Class());
 }
 
 AliAnalysisTaskBaseLine::~AliAnalysisTaskBaseLine()
 {
+   // destructor
 }
 
 void AliAnalysisTaskBaseLine::UserExec(Option_t *) 
 {
+  // empty exec
 }
index e957dad..58c62d6 100644 (file)
@@ -177,8 +177,8 @@ void AliAnalysisTaskSE::ConnectInputData(Option_t* /*option*/)
    // Connect input handlers (multi input handler is handled)
     ConnectMultiHandler();
     
-    if (fInputHandler) {
-       if ((fInputHandler->GetTree())->GetBranch("ESDfriend."))
+    if (fInputHandler && fInputHandler->GetTree()) {
+       if (fInputHandler->GetTree()->GetBranch("ESDfriend."))
            fESDfriend = ((AliESDInputHandler*)fInputHandler)->GetESDfriend();
 
        fInputEvent = fInputHandler->GetEvent();
index 1ac1cd8..c645abe 100644 (file)
@@ -43,7 +43,8 @@ AliMCGenHandler::AliMCGenHandler() :
     fStack(0),
     fHeader(0),
     fGenerator(0),
-    fSeedMode(0)
+    fSeedMode(0),
+    fSeed(0)
 {
   //
   // Default constructor
@@ -59,7 +60,8 @@ AliMCGenHandler::AliMCGenHandler(const char* name, const char* title) :
     fStack(0),
     fHeader(0),
     fGenerator(0),
-    fSeedMode(0)
+    fSeedMode(0),
+    fSeed(0)
 {
   //
   // Constructor
@@ -85,22 +87,31 @@ Bool_t AliMCGenHandler::Init(Option_t* /*opt*/)
     
     if (fSeedMode == 0)
       Printf("AliMCGenHandler::Init: Not setting any seed. Seed needs to be set externally!");
-    else if (fSeedMode == 1)
-    {
-      Printf("AliMCGenHandler::Init: Taking seed from current time");
-      gRandom->SetSeed(time(0));
-    }
-    else if (fSeedMode == 2)
+    else
     {
-      Printf("AliMCGenHandler::Init: Taking seed from AliEn job id");
-      TString tmp(gSystem->Getenv("ALIEN_PROC_ID"));
-      UInt_t seed = tmp.Atoi();
-      if (tmp.Length() == 0 || seed == 0)
-       AliFatal(Form("Could not retrieve AliEn job id for seed. The variable ALIEN_PROC_ID contains %s", tmp.Data()));
-      gRandom->SetSeed(seed);
+      if (fSeedMode == 1)
+      {
+       Printf("AliMCGenHandler::Init: Using manually set seed");
+      }
+      else if (fSeedMode == 2)
+      {
+       Printf("AliMCGenHandler::Init: Taking seed from current time");
+       fSeed = time(0);
+      }
+      else if (fSeedMode == 3)
+      {
+       Printf("AliMCGenHandler::Init: Taking seed from AliEn job id");
+       TString tmp(gSystem->Getenv("ALIEN_PROC_ID"));
+       fSeed = tmp.Atoi();
+       if (tmp.Length() == 0 || fSeed == 0)
+         AliFatal(Form("Could not retrieve AliEn job id for seed. The variable ALIEN_PROC_ID contains %s", tmp.Data()));
+      }
+      else
+       AliFatal(Form("Seed mode %d unknown", fSeedMode));
+
+      Printf("AliMCGenHandler::Init: Using seed: %d", fSeed);
+      gRandom->SetSeed(fSeed);
     }
-    else
-      AliFatal(Form("Seed mode %d unknown", fSeedMode));
 
     AliRunLoader* rl = AliRunLoader::Open("galice.root","FASTRUN","recreate");
     rl->MakeTree("E");
index a8be273..274bbc5 100644 (file)
@@ -41,6 +41,8 @@ public:
     
     void                SetGenerator(AliGenerator* generator) { fGenerator = generator; }
     void                SetSeedMode(Int_t mode) { fSeedMode = mode; }
+    void                SetSeed(UInt_t seed) { fSeed = seed; }
+    UInt_t              GetSeed() { return fSeed; }
 
 private:
     AliMCGenHandler(const AliMCGenHandler& handler);             
@@ -52,7 +54,8 @@ private:
     AliHeader*            fHeader;             //! current AliHeader pointer
 
     AliGenerator         *fGenerator;          // generator
-    Int_t                 fSeedMode;           // which seed is to be used: 0 (default): nothing/set externally; 1: current time; 2: AliEn job id
+    Int_t                 fSeedMode;           // which seed is to be used: 0 (default): nothing/set externally; 1: use fSeed; 2: current time; 3: AliEn job id
+    UInt_t                fSeed;               // can be used to set seed manually (fSeedMode == 1); contains last used seed (fSeedMode == 2 || 3)
 
     ClassDef(AliMCGenHandler,1)  // MC Gen Handler
 };
index f48a54a..37996ea 100644 (file)
@@ -18,6 +18,8 @@ class AliDummyHandler : public AliInputEventHandler {
     AliDummyHandler();
     AliDummyHandler(const char* name, const char* title);
     virtual ~AliDummyHandler();
+    virtual Bool_t       Init(Option_t* opt) { return AliInputEventHandler::Init(opt); }
+    virtual Bool_t Init(TTree* tree, Option_t* /*opt*/) { fTree = tree; return kTRUE; }
     Option_t            *GetDataType() const { return "MC"; }
 
  private: