ROOT logo
SteerESDAnalysisTaskPIDFluctuation(const Char_t *inputfilename, Int_t maxFiles = kMaxInt, Int_t maxEv = kMaxInt)
{

  /* include path for ACLic */
  gSystem->AddIncludePath("-I$ALICE_ROOT/include");
  gSystem->AddIncludePath("-I$ALICE_ROOT/TOF");
  /* load libraries */
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  /* build analysis task class */
  gROOT->LoadMacro("AliAnalysisTaskPIDFluctuation.cxx+g");

  /* setup input chain */
  TString str = inputfilename;
  const Char_t *filename;
  TChain *chain = new TChain("esdTree");
  if (str.EndsWith(".xml")) {
    TGrid::Connect("alien://");
    Info("", "reading data list from collection:");
    TAlienCollection coll(inputfilename, maxFiles);
    coll.Reset();
    while (coll.Next()) {
      filename = coll.GetTURL();
      Info("", Form("%s", filename));
      chain->Add(filename);
    }
  }
  else if (str.EndsWith(".txt")) {
    Info("", "reading data list from text file:");
    ifstream is(inputfilename);
    Char_t buf[4096];
    while(!is.eof()) {
      is.getline(buf, 4096);
      if (is.eof()) break;
      chain->Add(buf);
      Info("", Form("%s", buf));
    }
    is.close();
  }
  else {
    Info("", "single file:");
    filename = inputfilename;
    Info("", Form("%s", filename));
    chain->Add(filename);
  }
  Info("", Form("chain is ready: %d events", chain->GetEntries()));

  /* create analysis manager */
  AliAnalysisManager *mgr = new AliAnalysisManager("EbyEFluctuationPID");

  /* define input event handler */
  AliESDInputHandler *esdh = new AliESDInputHandler();
  esdh->SetReadFriends(kFALSE);
  mgr->SetInputEventHandler(esdh);

  /* add tasks */
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(kFALSE);
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *centralityTask = AddTaskCentrality(); 
  gROOT->LoadMacro("AddAnalysisTaskPIDFluctuation.C");

  AddAnalysisTaskPIDFluctuation(AliAODTrack::kTrkGlobal, 0., 10., -0.8, 0.8);
  AddAnalysisTaskPIDFluctuation(AliAODTrack::kTrkTPCOnly, 0., 10., -0.8, 0.8);
  AddAnalysisTaskPIDFluctuation(AliAODTrack::kTrkTPCOnly, 0.3, 1.5, -0.8, 0.8);
  AddAnalysisTaskPIDFluctuation(AliAODTrack::kTrkTPCOnly, 0.3, 1.5, -0.4, 0.4);

  printf("ready-steady-go\n");

  /* start analysis */
  mgr->SetDebugLevel(0);
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  mgr->StartAnalysis("local", chain, maxEv);

  /* create dummy file to tell we are done */
  gSystem->Exec("touch done");

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