ROOT logo
void Pi0Spectrum(const char* dataset="collection.xml")
{

  /* $Id$ */
    
  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->AddIncludePath("-I$ALICE_ROOT/include -I$ALICE_ROOT/PHOS");

  // A task can be compiled dynamically with AClic
  gROOT->LoadMacro("AliCaloPhoton.cxx+g");
  gROOT->LoadMacro("AliPHOSEPFlattener.cxx++") ;
  gROOT->LoadMacro("AliAnalysisTaskPi0Flow.cxx+g");
  
  // Connect to alien
  TString token = gSystem->Getenv("GRID_TOKEN") ;
  if (1) // token == "OK" ) 
    TGrid::Connect("alien://");
  else 
    AliInfo("You are not connected to the GRID") ; 

  cout << "Pi0Analysis: processing collection " << dataset << endl;
  
  // Create the chain
  TChain* 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()); 
  }


  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("Pi0Spectrum");
  
  // ESD input handler
  AliESDInputHandler* esdH = new AliESDInputHandler();
  esdH->SetReadFriends(kFALSE);
  mgr->SetInputEventHandler(esdH);

  
  // Debug level
  mgr->SetDebugLevel(0);

  // Add physics selection
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection();

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality() ;
 // taskCentrality->SetPass(2); // remember to set the pass you are processing!!! 

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskEventplane.C");
  AliEPSelectionTask *taskEP = AddTaskEventplane() ; 
  
  // Add my task
  AliAnalysisTaskPi0Flow *task1 = new AliAnalysisTaskPi0Flow("Pi0Spectrum");

  TFile *fBadMap = TFile::Open("alien:///alice/cern.ch/user/p/prsnko/BadMaps/BadMap_LHC10h_period1.root");
  //  TFile *fBadMap = TFile::Open("BadMap_LHC10h_period1.root");
  if(fBadMap->IsOpen()){
    printf("\n\n...Adding PHOS bad channel map \n") ;
    gROOT->cd();
    char key[55] ;
    for(Int_t mod=1;mod<4; mod++){
      sprintf(key,"PHOS_BadMap_mod%d",mod) ;
      TH2I * h = (TH2I*)fBadMap->Get(key) ;
      if(h)
        task1->SetPHOSBadMap(mod,h) ;
    }
    fBadMap->Close() ;
  }

  task1->SelectCollisionCandidates();
  mgr->AddTask(task1);

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