ROOT logo
SteerAODAnalysisTaskPIDFluctuation(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("aodTree");
  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("PIDFluctuation");

  /* define input event handler */
  AliAODInputHandler *aodh = new AliAODInputHandler();
  mgr->SetInputEventHandler(aodh);

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

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

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