ROOT logo
SteerAnalysisTaskPIDFluctuation(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");
  AliAnalysisTaskPIDFluctuation *thisTask = AddAnalysisTaskPIDFluctuation();

  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");

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