ROOT logo
// $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         = kTRUE,
  const char     *pythiaInfoName = ""
)
{  
  // Get the pointer to the existing analysis manager via the static access method.
  //==============================================================================
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr)
  {
    ::Error("AddTaskJetEmbedding", "No analysis manager to connect to.");
    return NULL;
  }  
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler())
  {
    ::Error("AddTaskJetEmbedding", "This task requires an input event handler");
    return NULL;
  }
  
  //-------------------------------------------------------
  // Init the task and do settings
  //-------------------------------------------------------

  AliJetEmbeddingFromGenTask *jetEmb = new AliJetEmbeddingFromGenTask(taskName,drawQA);
  // 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);
  jetEmb->SetCopyArray(copyArray);

  //-------------------------------------------------------
  // Final settings, pass to manager and set the containers
  //-------------------------------------------------------

  mgr->AddTask(jetEmb);
    
  // Create containers for input/output
  mgr->ConnectInput (jetEmb, 0, mgr->GetCommonInputContainer() );

  if (drawQA) {
    TString contName = taskName;
    contName += "_histos";
    AliAnalysisDataContainer *outc = mgr->CreateContainer(contName,
                                                          TList::Class(),
                                                          AliAnalysisManager::kOutputContainer,
                                                          Form("%s",AliAnalysisManager::GetCommonFileName()));
    mgr->ConnectOutput(jetEmb, 1, outc);
  }


  return jetEmb;
}
 AddTaskJetEmbeddingFromGen.C:1
 AddTaskJetEmbeddingFromGen.C:2
 AddTaskJetEmbeddingFromGen.C:3
 AddTaskJetEmbeddingFromGen.C:4
 AddTaskJetEmbeddingFromGen.C:5
 AddTaskJetEmbeddingFromGen.C:6
 AddTaskJetEmbeddingFromGen.C:7
 AddTaskJetEmbeddingFromGen.C:8
 AddTaskJetEmbeddingFromGen.C:9
 AddTaskJetEmbeddingFromGen.C:10
 AddTaskJetEmbeddingFromGen.C:11
 AddTaskJetEmbeddingFromGen.C:12
 AddTaskJetEmbeddingFromGen.C:13
 AddTaskJetEmbeddingFromGen.C:14
 AddTaskJetEmbeddingFromGen.C:15
 AddTaskJetEmbeddingFromGen.C:16
 AddTaskJetEmbeddingFromGen.C:17
 AddTaskJetEmbeddingFromGen.C:18
 AddTaskJetEmbeddingFromGen.C:19
 AddTaskJetEmbeddingFromGen.C:20
 AddTaskJetEmbeddingFromGen.C:21
 AddTaskJetEmbeddingFromGen.C:22
 AddTaskJetEmbeddingFromGen.C:23
 AddTaskJetEmbeddingFromGen.C:24
 AddTaskJetEmbeddingFromGen.C:25
 AddTaskJetEmbeddingFromGen.C:26
 AddTaskJetEmbeddingFromGen.C:27
 AddTaskJetEmbeddingFromGen.C:28
 AddTaskJetEmbeddingFromGen.C:29
 AddTaskJetEmbeddingFromGen.C:30
 AddTaskJetEmbeddingFromGen.C:31
 AddTaskJetEmbeddingFromGen.C:32
 AddTaskJetEmbeddingFromGen.C:33
 AddTaskJetEmbeddingFromGen.C:34
 AddTaskJetEmbeddingFromGen.C:35
 AddTaskJetEmbeddingFromGen.C:36
 AddTaskJetEmbeddingFromGen.C:37
 AddTaskJetEmbeddingFromGen.C:38
 AddTaskJetEmbeddingFromGen.C:39
 AddTaskJetEmbeddingFromGen.C:40
 AddTaskJetEmbeddingFromGen.C:41
 AddTaskJetEmbeddingFromGen.C:42
 AddTaskJetEmbeddingFromGen.C:43
 AddTaskJetEmbeddingFromGen.C:44
 AddTaskJetEmbeddingFromGen.C:45
 AddTaskJetEmbeddingFromGen.C:46
 AddTaskJetEmbeddingFromGen.C:47
 AddTaskJetEmbeddingFromGen.C:48
 AddTaskJetEmbeddingFromGen.C:49
 AddTaskJetEmbeddingFromGen.C:50
 AddTaskJetEmbeddingFromGen.C:51
 AddTaskJetEmbeddingFromGen.C:52
 AddTaskJetEmbeddingFromGen.C:53
 AddTaskJetEmbeddingFromGen.C:54
 AddTaskJetEmbeddingFromGen.C:55
 AddTaskJetEmbeddingFromGen.C:56
 AddTaskJetEmbeddingFromGen.C:57
 AddTaskJetEmbeddingFromGen.C:58
 AddTaskJetEmbeddingFromGen.C:59
 AddTaskJetEmbeddingFromGen.C:60
 AddTaskJetEmbeddingFromGen.C:61
 AddTaskJetEmbeddingFromGen.C:62
 AddTaskJetEmbeddingFromGen.C:63
 AddTaskJetEmbeddingFromGen.C:64
 AddTaskJetEmbeddingFromGen.C:65
 AddTaskJetEmbeddingFromGen.C:66
 AddTaskJetEmbeddingFromGen.C:67
 AddTaskJetEmbeddingFromGen.C:68
 AddTaskJetEmbeddingFromGen.C:69
 AddTaskJetEmbeddingFromGen.C:70
 AddTaskJetEmbeddingFromGen.C:71
 AddTaskJetEmbeddingFromGen.C:72
 AddTaskJetEmbeddingFromGen.C:73
 AddTaskJetEmbeddingFromGen.C:74
 AddTaskJetEmbeddingFromGen.C:75
 AddTaskJetEmbeddingFromGen.C:76
 AddTaskJetEmbeddingFromGen.C:77
 AddTaskJetEmbeddingFromGen.C:78
 AddTaskJetEmbeddingFromGen.C:79
 AddTaskJetEmbeddingFromGen.C:80
 AddTaskJetEmbeddingFromGen.C:81
 AddTaskJetEmbeddingFromGen.C:82
 AddTaskJetEmbeddingFromGen.C:83
 AddTaskJetEmbeddingFromGen.C:84
 AddTaskJetEmbeddingFromGen.C:85
 AddTaskJetEmbeddingFromGen.C:86
 AddTaskJetEmbeddingFromGen.C:87
 AddTaskJetEmbeddingFromGen.C:88
 AddTaskJetEmbeddingFromGen.C:89
 AddTaskJetEmbeddingFromGen.C:90
 AddTaskJetEmbeddingFromGen.C:91
 AddTaskJetEmbeddingFromGen.C:92
 AddTaskJetEmbeddingFromGen.C:93
 AddTaskJetEmbeddingFromGen.C:94
 AddTaskJetEmbeddingFromGen.C:95
 AddTaskJetEmbeddingFromGen.C:96
 AddTaskJetEmbeddingFromGen.C:97
 AddTaskJetEmbeddingFromGen.C:98
 AddTaskJetEmbeddingFromGen.C:99
 AddTaskJetEmbeddingFromGen.C:100
 AddTaskJetEmbeddingFromGen.C:101
 AddTaskJetEmbeddingFromGen.C:102
 AddTaskJetEmbeddingFromGen.C:103
 AddTaskJetEmbeddingFromGen.C:104
 AddTaskJetEmbeddingFromGen.C:105
 AddTaskJetEmbeddingFromGen.C:106
 AddTaskJetEmbeddingFromGen.C:107
 AddTaskJetEmbeddingFromGen.C:108
 AddTaskJetEmbeddingFromGen.C:109
 AddTaskJetEmbeddingFromGen.C:110
 AddTaskJetEmbeddingFromGen.C:111
 AddTaskJetEmbeddingFromGen.C:112
 AddTaskJetEmbeddingFromGen.C:113
 AddTaskJetEmbeddingFromGen.C:114
 AddTaskJetEmbeddingFromGen.C:115
 AddTaskJetEmbeddingFromGen.C:116
 AddTaskJetEmbeddingFromGen.C:117