]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGJE/EMCALJetTasks/macros/AddTaskJetEmbeddingFromGen.C
Merge branch 'master' into TPCdev
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetEmbeddingFromGen.C
index 8bee89e743c06a0ebb1c2435cf056d5333c6f67e..0c3e0f9f892f781645d8e54208e7dc3793d7d34e 100644 (file)
@@ -1,17 +1,61 @@
 // $Id$
 
+AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
+  Int_t           genType        = 0, //use Pythia as default
+  Double_t        ptHardMin      = 50.,
+  Double_t        ptHardMax      = 1000.,
+  Double_t        ecms           = 2760.,
+  const char     *tracksName     = "GenParticles",
+  const char     *taskName       = "JetEmbeddingFromGenTask",
+  const Double_t  minPt          = 10,
+  const Double_t  maxPt          = 10,
+  const Double_t  minEta         = -0.9,
+  const Double_t  maxEta         = 0.9,
+  const Double_t  minPhi         = 0,
+  const Double_t  maxPhi         = TMath::Pi() * 2,
+  const Bool_t    copyArray      = kTRUE,
+  const Bool_t    drawQA         = kTRUE,
+  const char     *pythiaInfoName = "PythiaInfo",
+  Float_t            ptWeight        =0,
+  Int_t               kTune            =2,
+  Int_t               kColorReco     =1,
+  Float_t            kQuench        =4.4e6,
+  Int_t               kAnglePyquen = 2   
+)
+{
+  AliGenerator *genGen = NULL;
+  if(genType==0) { //PYTHIA Perugia 2011
+    gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenPythia.C");
+    genGen = AddMCGenPythia(ecms, ptHardMin, ptHardMax, kTune,kColorReco,ptWeight);
+  }
+  else if(genType==1 || genType==2) { //QPYTHIA and PYQUEN
+    gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/train/AddMCGenQuench.C");
+    genGen = AddMCGenQuench(ecms, ptHardMin, ptHardMax, genType,kQuench,kAnglePyquen,ptWeight);
+  }
+  if(!genGen)   {
+    ::Error("AddTaskJetEmbeddingFromGenTask", "Generator does not exist");
+    return NULL;
+  }
+
+  AliJetEmbeddingFromGenTask *task = AddTaskJetEmbeddingFromGen(genGen,tracksName,taskName,minPt,maxPt,minEta,maxEta,minPhi,maxPhi,copyArray,drawQA,pythiaInfoName);
+
+  return task;
+
+}
+
 AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
   AliGenerator   *genGen,
-  const char     *tracksName   = "GenParticles",
-  const char     *taskName     = "JetEmbeddingFromGenTask",
-  const Double_t  minPt        = 10,
-  const Double_t  maxPt        = 10,
-  const Double_t  minEta       = -0.9,
-  const Double_t  maxEta       = 0.9,
-  const Double_t  minPhi       = 0,
-  const Double_t  maxPhi       = TMath::Pi() * 2,
-  const Bool_t    copyArray    = kTRUE,
-  const Bool_t    drawQA       = kFALSE
+  const char     *tracksName     = "GenParticles",
+  const char     *taskName       = "JetEmbeddingFromGenTask",
+  const Double_t  minPt          = 10,
+  const Double_t  maxPt          = 10,
+  const Double_t  minEta         = -0.9,
+  const Double_t  maxEta         = 0.9,
+  const Double_t  minPhi         = 0,
+  const Double_t  maxPhi         = TMath::Pi() * 2,
+  const Bool_t    copyArray      = kTRUE,
+  const Bool_t    drawQA         = kTRUE,
+  const char     *pythiaInfoName = ""
 )
 {  
   // Get the pointer to the existing analysis manager via the static access method.
@@ -36,8 +80,13 @@ AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
   //-------------------------------------------------------
 
   AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
-  jetEmb->SetGen(genGen);
+  // if pythia is used as a generator, tell it not to print the event history to the screen
+  if(genGen) {
+    if(TString(genGen->IsA()->GetName()).EqualTo("AliGenPythia")) genGen->AliGenPythia::SetEventListRange(-10, -10);
+    jetEmb->SetGen(genGen);
+  }
   jetEmb->SetTracksName(tracksName);
+  jetEmb->SetPythiaInfoName(pythiaInfoName);
   jetEmb->SetEtaRange(minEta, maxEta);
   jetEmb->SetPhiRange(minPhi, maxPhi);
   jetEmb->SetPtRange(minPt, maxPt);
@@ -58,7 +107,7 @@ AliJetEmbeddingFromGenTask* AddTaskJetEmbeddingFromGen(
     AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
                                                           TList::Class(),
                                                           AliAnalysisManager::kOutputContainer,
-                                                          "AnalysisResults.root");
+                                                          Form("%s",AliAnalysisManager::GetCommonFileName()));
     mgr->ConnectOutput(jetEmb, 1, outc);
   }