ROOT logo
void PHOSPbPbQA(const char* dataset="collection.xml")
{
  gSystem->Load("libTree.so");
  gSystem->Load("libGeom.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  
  //load analysis framework
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice"); //AliAnalysisTaskSE

  gSystem->Load("libPWGGAPHOSTasks.so");
  
  gSystem->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");

  cout << "PHOSPbPbQA: processing collection " << dataset << endl;

  TString data = dataset;
  TChain* chain = 0;
  
  if(data.Contains(".xml")) {
    
    TGrid::Connect("alien://");
    
    chain = new TChain("esdTree");
    TGridCollection * collection = dynamic_cast<TGridCollection*>(TAlienCollection::Open(dataset));
    
    TAlienResult* result = collection->GetGridResult("",0 ,0);
    TList* rawFileList = result->GetFileInfoList();
    
    for (Int_t counter=0 ; counter < rawFileList->GetEntries() ; counter++) {
      TFileInfo * fi =  static_cast<TFileInfo*>(rawFileList->At(counter)) ; 
      const char * rawFile = fi->GetCurrentUrl()->GetUrl() ;  
      printf("Processing %s\n", rawFile) ;
      chain->Add(rawFile);
      printf("Chain: %d entries.\n",chain->GetEntries()); 
    }
  }
  
  if(data.Contains(".txt")) {
    gROOT->LoadMacro("$ALICE_ROOT/PWG0/CreateESDChain.C");
    chain = CreateESDChain(dataset, 300);
  }
  
  if(data.Contains(".root")) {
    chain = new TChain("esdTree");
    chain->Add(dataset);
  }

  AliLog::SetGlobalLogLevel(AliLog::kError);
  
  Int_t nentr = chain->GetEntries();
  printf("Number of events in the collection is %d\n",nentr);

  // Make the analysis manager
  AliAnalysisManager *mgr  = new AliAnalysisManager("Manager", "Manager");

    // Input handler
  AliESDInputHandler *esdHandler = new AliESDInputHandler();
  mgr->SetInputEventHandler(esdHandler);
  
  // Output handler
  AliESDHandler* esdoutHandler   = new AliESDHandler();
  
  // Debug level
  mgr->SetDebugLevel(0);
  
  //Add centrality task!
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;
  // taskCentrality->SetMCInput();

  // Add my task
  AliAnalysisTaskPHOSPbPbQA *task1 = new AliAnalysisTaskPHOSPbPbQA("PbPbQA");
  mgr->AddTask(task1);
  
  // Create containers for input/output
  AliAnalysisDataContainer *cinput   = mgr->GetCommonInputContainer(); 
  AliAnalysisDataContainer *coutput = mgr->CreateContainer("histESD",TList::Class(),
							    AliAnalysisManager::kOutputContainer,
							    "PHOSPbPbQA.root"); 
  
  // Connect input/output for task1
  mgr->ConnectInput(task1 , 0, cinput);
  mgr->ConnectOutput(task1, 1, coutput);
  
  if (mgr->InitAnalysis()) {
    mgr->PrintStatus();
    mgr->StartAnalysis("local", chain);
  }
  
  cout <<" Analysis ended sucessfully "<< endl ;
  
}
 PHOSPbPb.C:1
 PHOSPbPb.C:2
 PHOSPbPb.C:3
 PHOSPbPb.C:4
 PHOSPbPb.C:5
 PHOSPbPb.C:6
 PHOSPbPb.C:7
 PHOSPbPb.C:8
 PHOSPbPb.C:9
 PHOSPbPb.C:10
 PHOSPbPb.C:11
 PHOSPbPb.C:12
 PHOSPbPb.C:13
 PHOSPbPb.C:14
 PHOSPbPb.C:15
 PHOSPbPb.C:16
 PHOSPbPb.C:17
 PHOSPbPb.C:18
 PHOSPbPb.C:19
 PHOSPbPb.C:20
 PHOSPbPb.C:21
 PHOSPbPb.C:22
 PHOSPbPb.C:23
 PHOSPbPb.C:24
 PHOSPbPb.C:25
 PHOSPbPb.C:26
 PHOSPbPb.C:27
 PHOSPbPb.C:28
 PHOSPbPb.C:29
 PHOSPbPb.C:30
 PHOSPbPb.C:31
 PHOSPbPb.C:32
 PHOSPbPb.C:33
 PHOSPbPb.C:34
 PHOSPbPb.C:35
 PHOSPbPb.C:36
 PHOSPbPb.C:37
 PHOSPbPb.C:38
 PHOSPbPb.C:39
 PHOSPbPb.C:40
 PHOSPbPb.C:41
 PHOSPbPb.C:42
 PHOSPbPb.C:43
 PHOSPbPb.C:44
 PHOSPbPb.C:45
 PHOSPbPb.C:46
 PHOSPbPb.C:47
 PHOSPbPb.C:48
 PHOSPbPb.C:49
 PHOSPbPb.C:50
 PHOSPbPb.C:51
 PHOSPbPb.C:52
 PHOSPbPb.C:53
 PHOSPbPb.C:54
 PHOSPbPb.C:55
 PHOSPbPb.C:56
 PHOSPbPb.C:57
 PHOSPbPb.C:58
 PHOSPbPb.C:59
 PHOSPbPb.C:60
 PHOSPbPb.C:61
 PHOSPbPb.C:62
 PHOSPbPb.C:63
 PHOSPbPb.C:64
 PHOSPbPb.C:65
 PHOSPbPb.C:66
 PHOSPbPb.C:67
 PHOSPbPb.C:68
 PHOSPbPb.C:69
 PHOSPbPb.C:70
 PHOSPbPb.C:71
 PHOSPbPb.C:72
 PHOSPbPb.C:73
 PHOSPbPb.C:74
 PHOSPbPb.C:75
 PHOSPbPb.C:76
 PHOSPbPb.C:77
 PHOSPbPb.C:78
 PHOSPbPb.C:79
 PHOSPbPb.C:80
 PHOSPbPb.C:81
 PHOSPbPb.C:82
 PHOSPbPb.C:83
 PHOSPbPb.C:84
 PHOSPbPb.C:85
 PHOSPbPb.C:86
 PHOSPbPb.C:87
 PHOSPbPb.C:88
 PHOSPbPb.C:89
 PHOSPbPb.C:90
 PHOSPbPb.C:91
 PHOSPbPb.C:92
 PHOSPbPb.C:93
 PHOSPbPb.C:94
 PHOSPbPb.C:95