ROOT logo
//--------------------------------------------------------------------------
// Base macro for submitting single muon analysis.
//
// In case it is not run with full aliroot, it needs to have in the working directory:
//  - STEERBase.par
//  - AOD.par
//  - ESD.par
//  - ANALYSIS.par
//  - ANALYSISalice.par
//  - PWG3muon.par
//
// The macro reads ESDs and outputs file:
// - SingleMuESD.root
//--------------------------------------------------------------------------

void RunSingleMuonAnalysisFromESD(Bool_t local = kFALSE) {

  TStopwatch timer;
  timer.Start();

  gSystem->Load("libTree");
  gSystem->Load("libGeom");
  gSystem->Load("libVMC");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libSTEERBase");
  gSystem->Load("libAOD");
  gSystem->Load("libESD");
  gSystem->Load("libPWGmuon.so");

  TChain* chain = new TChain("esdTree");

  if (!local) {
    printf("*** Connect to AliEn ***\n");
    TGrid::Connect("alien://");
    TAlienCollection* coll = TAlienCollection::Open("wn.xml");
    TGridResult* result = coll->GetGridResult("",0,0);
    for(Int_t i = 0; i < result->GetEntries(); i++) {
      printf("TURL = %s \n",result->GetKey(i,"turl"));
      chain->Add(result->GetKey(i,"turl"));
    }
  } else {
    chain->Add("/path_1_to/AliESDs.root");
    chain->Add("/path_2_to/AliESDs.root");
    chain->Add("/path_3_to/AliESDs.root");
  }

  //____________________________________________//
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);  

  //____________________________________________//
  // ntuple task
  AliAnalysisTaskSingleMuESD *task = new AliAnalysisTaskSingleMuESD("TaskSingleMuESD");
  // force values for the trigger mask, for version where 
  // GetFiredTriggerClasses() does not work
  //task->SetTriggerType("MUON");
  mgr->AddTask(task);

  // Create containers for input/output

  // input
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();

  // output
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("ctree", TNtuple::Class(),AliAnalysisManager::kOutputContainer,"SingleMuESD.root");
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("chist", TH1F::Class(),AliAnalysisManager::kOutputContainer,"SingleMuESD.root");

  //____________________________________________//
  mgr->ConnectInput(task,0,cinput);
  mgr->ConnectOutput(task,0,coutput1);
  mgr->ConnectOutput(task,1,coutput2);

  if (mgr->InitAnalysis()) {
    mgr->PrintStatus();
    mgr->StartAnalysis("local",chain);
  }
  
  timer.Stop();
  timer.Print();
}

 RunSingleMuonAnalysisFromESD.C:1
 RunSingleMuonAnalysisFromESD.C:2
 RunSingleMuonAnalysisFromESD.C:3
 RunSingleMuonAnalysisFromESD.C:4
 RunSingleMuonAnalysisFromESD.C:5
 RunSingleMuonAnalysisFromESD.C:6
 RunSingleMuonAnalysisFromESD.C:7
 RunSingleMuonAnalysisFromESD.C:8
 RunSingleMuonAnalysisFromESD.C:9
 RunSingleMuonAnalysisFromESD.C:10
 RunSingleMuonAnalysisFromESD.C:11
 RunSingleMuonAnalysisFromESD.C:12
 RunSingleMuonAnalysisFromESD.C:13
 RunSingleMuonAnalysisFromESD.C:14
 RunSingleMuonAnalysisFromESD.C:15
 RunSingleMuonAnalysisFromESD.C:16
 RunSingleMuonAnalysisFromESD.C:17
 RunSingleMuonAnalysisFromESD.C:18
 RunSingleMuonAnalysisFromESD.C:19
 RunSingleMuonAnalysisFromESD.C:20
 RunSingleMuonAnalysisFromESD.C:21
 RunSingleMuonAnalysisFromESD.C:22
 RunSingleMuonAnalysisFromESD.C:23
 RunSingleMuonAnalysisFromESD.C:24
 RunSingleMuonAnalysisFromESD.C:25
 RunSingleMuonAnalysisFromESD.C:26
 RunSingleMuonAnalysisFromESD.C:27
 RunSingleMuonAnalysisFromESD.C:28
 RunSingleMuonAnalysisFromESD.C:29
 RunSingleMuonAnalysisFromESD.C:30
 RunSingleMuonAnalysisFromESD.C:31
 RunSingleMuonAnalysisFromESD.C:32
 RunSingleMuonAnalysisFromESD.C:33
 RunSingleMuonAnalysisFromESD.C:34
 RunSingleMuonAnalysisFromESD.C:35
 RunSingleMuonAnalysisFromESD.C:36
 RunSingleMuonAnalysisFromESD.C:37
 RunSingleMuonAnalysisFromESD.C:38
 RunSingleMuonAnalysisFromESD.C:39
 RunSingleMuonAnalysisFromESD.C:40
 RunSingleMuonAnalysisFromESD.C:41
 RunSingleMuonAnalysisFromESD.C:42
 RunSingleMuonAnalysisFromESD.C:43
 RunSingleMuonAnalysisFromESD.C:44
 RunSingleMuonAnalysisFromESD.C:45
 RunSingleMuonAnalysisFromESD.C:46
 RunSingleMuonAnalysisFromESD.C:47
 RunSingleMuonAnalysisFromESD.C:48
 RunSingleMuonAnalysisFromESD.C:49
 RunSingleMuonAnalysisFromESD.C:50
 RunSingleMuonAnalysisFromESD.C:51
 RunSingleMuonAnalysisFromESD.C:52
 RunSingleMuonAnalysisFromESD.C:53
 RunSingleMuonAnalysisFromESD.C:54
 RunSingleMuonAnalysisFromESD.C:55
 RunSingleMuonAnalysisFromESD.C:56
 RunSingleMuonAnalysisFromESD.C:57
 RunSingleMuonAnalysisFromESD.C:58
 RunSingleMuonAnalysisFromESD.C:59
 RunSingleMuonAnalysisFromESD.C:60
 RunSingleMuonAnalysisFromESD.C:61
 RunSingleMuonAnalysisFromESD.C:62
 RunSingleMuonAnalysisFromESD.C:63
 RunSingleMuonAnalysisFromESD.C:64
 RunSingleMuonAnalysisFromESD.C:65
 RunSingleMuonAnalysisFromESD.C:66
 RunSingleMuonAnalysisFromESD.C:67
 RunSingleMuonAnalysisFromESD.C:68
 RunSingleMuonAnalysisFromESD.C:69
 RunSingleMuonAnalysisFromESD.C:70
 RunSingleMuonAnalysisFromESD.C:71
 RunSingleMuonAnalysisFromESD.C:72
 RunSingleMuonAnalysisFromESD.C:73
 RunSingleMuonAnalysisFromESD.C:74
 RunSingleMuonAnalysisFromESD.C:75
 RunSingleMuonAnalysisFromESD.C:76
 RunSingleMuonAnalysisFromESD.C:77
 RunSingleMuonAnalysisFromESD.C:78
 RunSingleMuonAnalysisFromESD.C:79
 RunSingleMuonAnalysisFromESD.C:80
 RunSingleMuonAnalysisFromESD.C:81
 RunSingleMuonAnalysisFromESD.C:82
 RunSingleMuonAnalysisFromESD.C:83
 RunSingleMuonAnalysisFromESD.C:84