ROOT logo
SteerAnalysisTaskTOFSpectraPbPb(const Char_t *inputfilename, Bool_t mcFlag = kFALSE, Bool_t mcTuneFlag = kFALSE, Bool_t pbpbFlag = kTRUE, 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");
  gSystem->Load("libTENDER");
  gSystem->Load("libTENDERSupplies");
  /* build analysis task class */
  gROOT->LoadMacro("AliAnalysisParticle.cxx+g");
  gROOT->LoadMacro("AliAnalysisEvent.cxx+g");
  gROOT->LoadMacro("AliAnalysisTrack.cxx+g");
  gROOT->LoadMacro("AliAnalysisTaskTOFSpectraPbPb.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("SteerTaskTOFSpectraPbPb", "reading data list from collection:");
    TAlienCollection coll(inputfilename, maxFiles);
    coll.Reset();
    while (coll.Next()) {
      filename = coll.GetTURL();
      Info("SteerTaskTOFSpectraPbPb", Form("%s", filename));
      chain->Add(filename);
    }
  }
  else if (str.EndsWith(".txt")) {
    Info("SteerTaskTOFSpectraPbPb", "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("SteerTaskTOFSpectraPbPb", Form("%s", buf));
    }
    is.close();
  }
  else {
    Info("SteerTaskTOFSpectraPbPb", "single file:");
    filename = inputfilename;
    Info("SteerTaskTOFSpectraPbPb", Form("%s", filename));
    chain->Add(filename);
  }
  Info("SteerTaskTOFSpectraPbPb", Form("chain is ready: %d events", chain->GetEntries()));

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

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

  /* define MC truth event handler */
  if (mcFlag) {
    AliMCEventHandler *mch = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mch);
  }

  /* define output handler */
  AliAODHandler *outputh = new AliAODHandler();
  mgr->SetOutputEventHandler(outputh);

  /* add tasks */

#if 0
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
  AddTaskPIDResponse();

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/TenderSupplies/AddTaskTender.C");
  AddTaskTender(kFALSE,
		kFALSE,
		kTRUE,
		kFALSE,
		kFALSE,
		kFALSE,
		kFALSE,
		kFALSE,
		kFALSE);
#endif

  /* create tender, setup and add to manager */
  AliTender *tender = new AliTender("TENDER");
  tender->SetCheckEventSelection(kFALSE); /* was kFALSE */
  tender->SetDefaultCDBStorage("raw://");
  mgr->AddTask(tender);
  mgr->ConnectInput(tender, 0, inputc);
  mgr->ConnectOutput(tender, 1, outputc);
  AliTOFTenderSupply *TOFtender = new AliTOFTenderSupply("TOF-TENDER");
  tender->AddSupply(TOFtender);

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

  /* pA trigger fix */
  //  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/PhysicsSelectionOADB_CINT5_pA.C");
  //  AliOADBPhysicsSelection *oadb = OADBSelection_CINT5_V0AND();
  //  physSelTask->GetPhysicsSelection()->SetCustomOADBObjects(oadb,0);

 if (pbpbFlag) {
    gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
    AliCentralitySelectionTask *centralityTask = AddTaskCentrality(); 
    //    centralityTask->SetPass(2);
    if (mcFlag) centralityTask->SetMCInput();
  }
  gROOT->LoadMacro("AddAnalysisTaskTOFSpectraPbPb.C");
  AliAnalysisTaskTOFSpectraPbPb *thisTask = AddAnalysisTaskTOFSpectraPbPb(mcFlag, mcTuneFlag, pbpbFlag);

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

}
 SteerAnalysisTaskTOFSpectraPbPb.C:1
 SteerAnalysisTaskTOFSpectraPbPb.C:2
 SteerAnalysisTaskTOFSpectraPbPb.C:3
 SteerAnalysisTaskTOFSpectraPbPb.C:4
 SteerAnalysisTaskTOFSpectraPbPb.C:5
 SteerAnalysisTaskTOFSpectraPbPb.C:6
 SteerAnalysisTaskTOFSpectraPbPb.C:7
 SteerAnalysisTaskTOFSpectraPbPb.C:8
 SteerAnalysisTaskTOFSpectraPbPb.C:9
 SteerAnalysisTaskTOFSpectraPbPb.C:10
 SteerAnalysisTaskTOFSpectraPbPb.C:11
 SteerAnalysisTaskTOFSpectraPbPb.C:12
 SteerAnalysisTaskTOFSpectraPbPb.C:13
 SteerAnalysisTaskTOFSpectraPbPb.C:14
 SteerAnalysisTaskTOFSpectraPbPb.C:15
 SteerAnalysisTaskTOFSpectraPbPb.C:16
 SteerAnalysisTaskTOFSpectraPbPb.C:17
 SteerAnalysisTaskTOFSpectraPbPb.C:18
 SteerAnalysisTaskTOFSpectraPbPb.C:19
 SteerAnalysisTaskTOFSpectraPbPb.C:20
 SteerAnalysisTaskTOFSpectraPbPb.C:21
 SteerAnalysisTaskTOFSpectraPbPb.C:22
 SteerAnalysisTaskTOFSpectraPbPb.C:23
 SteerAnalysisTaskTOFSpectraPbPb.C:24
 SteerAnalysisTaskTOFSpectraPbPb.C:25
 SteerAnalysisTaskTOFSpectraPbPb.C:26
 SteerAnalysisTaskTOFSpectraPbPb.C:27
 SteerAnalysisTaskTOFSpectraPbPb.C:28
 SteerAnalysisTaskTOFSpectraPbPb.C:29
 SteerAnalysisTaskTOFSpectraPbPb.C:30
 SteerAnalysisTaskTOFSpectraPbPb.C:31
 SteerAnalysisTaskTOFSpectraPbPb.C:32
 SteerAnalysisTaskTOFSpectraPbPb.C:33
 SteerAnalysisTaskTOFSpectraPbPb.C:34
 SteerAnalysisTaskTOFSpectraPbPb.C:35
 SteerAnalysisTaskTOFSpectraPbPb.C:36
 SteerAnalysisTaskTOFSpectraPbPb.C:37
 SteerAnalysisTaskTOFSpectraPbPb.C:38
 SteerAnalysisTaskTOFSpectraPbPb.C:39
 SteerAnalysisTaskTOFSpectraPbPb.C:40
 SteerAnalysisTaskTOFSpectraPbPb.C:41
 SteerAnalysisTaskTOFSpectraPbPb.C:42
 SteerAnalysisTaskTOFSpectraPbPb.C:43
 SteerAnalysisTaskTOFSpectraPbPb.C:44
 SteerAnalysisTaskTOFSpectraPbPb.C:45
 SteerAnalysisTaskTOFSpectraPbPb.C:46
 SteerAnalysisTaskTOFSpectraPbPb.C:47
 SteerAnalysisTaskTOFSpectraPbPb.C:48
 SteerAnalysisTaskTOFSpectraPbPb.C:49
 SteerAnalysisTaskTOFSpectraPbPb.C:50
 SteerAnalysisTaskTOFSpectraPbPb.C:51
 SteerAnalysisTaskTOFSpectraPbPb.C:52
 SteerAnalysisTaskTOFSpectraPbPb.C:53
 SteerAnalysisTaskTOFSpectraPbPb.C:54
 SteerAnalysisTaskTOFSpectraPbPb.C:55
 SteerAnalysisTaskTOFSpectraPbPb.C:56
 SteerAnalysisTaskTOFSpectraPbPb.C:57
 SteerAnalysisTaskTOFSpectraPbPb.C:58
 SteerAnalysisTaskTOFSpectraPbPb.C:59
 SteerAnalysisTaskTOFSpectraPbPb.C:60
 SteerAnalysisTaskTOFSpectraPbPb.C:61
 SteerAnalysisTaskTOFSpectraPbPb.C:62
 SteerAnalysisTaskTOFSpectraPbPb.C:63
 SteerAnalysisTaskTOFSpectraPbPb.C:64
 SteerAnalysisTaskTOFSpectraPbPb.C:65
 SteerAnalysisTaskTOFSpectraPbPb.C:66
 SteerAnalysisTaskTOFSpectraPbPb.C:67
 SteerAnalysisTaskTOFSpectraPbPb.C:68
 SteerAnalysisTaskTOFSpectraPbPb.C:69
 SteerAnalysisTaskTOFSpectraPbPb.C:70
 SteerAnalysisTaskTOFSpectraPbPb.C:71
 SteerAnalysisTaskTOFSpectraPbPb.C:72
 SteerAnalysisTaskTOFSpectraPbPb.C:73
 SteerAnalysisTaskTOFSpectraPbPb.C:74
 SteerAnalysisTaskTOFSpectraPbPb.C:75
 SteerAnalysisTaskTOFSpectraPbPb.C:76
 SteerAnalysisTaskTOFSpectraPbPb.C:77
 SteerAnalysisTaskTOFSpectraPbPb.C:78
 SteerAnalysisTaskTOFSpectraPbPb.C:79
 SteerAnalysisTaskTOFSpectraPbPb.C:80
 SteerAnalysisTaskTOFSpectraPbPb.C:81
 SteerAnalysisTaskTOFSpectraPbPb.C:82
 SteerAnalysisTaskTOFSpectraPbPb.C:83
 SteerAnalysisTaskTOFSpectraPbPb.C:84
 SteerAnalysisTaskTOFSpectraPbPb.C:85
 SteerAnalysisTaskTOFSpectraPbPb.C:86
 SteerAnalysisTaskTOFSpectraPbPb.C:87
 SteerAnalysisTaskTOFSpectraPbPb.C:88
 SteerAnalysisTaskTOFSpectraPbPb.C:89
 SteerAnalysisTaskTOFSpectraPbPb.C:90
 SteerAnalysisTaskTOFSpectraPbPb.C:91
 SteerAnalysisTaskTOFSpectraPbPb.C:92
 SteerAnalysisTaskTOFSpectraPbPb.C:93
 SteerAnalysisTaskTOFSpectraPbPb.C:94
 SteerAnalysisTaskTOFSpectraPbPb.C:95
 SteerAnalysisTaskTOFSpectraPbPb.C:96
 SteerAnalysisTaskTOFSpectraPbPb.C:97
 SteerAnalysisTaskTOFSpectraPbPb.C:98
 SteerAnalysisTaskTOFSpectraPbPb.C:99
 SteerAnalysisTaskTOFSpectraPbPb.C:100
 SteerAnalysisTaskTOFSpectraPbPb.C:101
 SteerAnalysisTaskTOFSpectraPbPb.C:102
 SteerAnalysisTaskTOFSpectraPbPb.C:103
 SteerAnalysisTaskTOFSpectraPbPb.C:104
 SteerAnalysisTaskTOFSpectraPbPb.C:105
 SteerAnalysisTaskTOFSpectraPbPb.C:106
 SteerAnalysisTaskTOFSpectraPbPb.C:107
 SteerAnalysisTaskTOFSpectraPbPb.C:108
 SteerAnalysisTaskTOFSpectraPbPb.C:109
 SteerAnalysisTaskTOFSpectraPbPb.C:110
 SteerAnalysisTaskTOFSpectraPbPb.C:111
 SteerAnalysisTaskTOFSpectraPbPb.C:112
 SteerAnalysisTaskTOFSpectraPbPb.C:113
 SteerAnalysisTaskTOFSpectraPbPb.C:114
 SteerAnalysisTaskTOFSpectraPbPb.C:115
 SteerAnalysisTaskTOFSpectraPbPb.C:116
 SteerAnalysisTaskTOFSpectraPbPb.C:117
 SteerAnalysisTaskTOFSpectraPbPb.C:118
 SteerAnalysisTaskTOFSpectraPbPb.C:119
 SteerAnalysisTaskTOFSpectraPbPb.C:120
 SteerAnalysisTaskTOFSpectraPbPb.C:121
 SteerAnalysisTaskTOFSpectraPbPb.C:122
 SteerAnalysisTaskTOFSpectraPbPb.C:123
 SteerAnalysisTaskTOFSpectraPbPb.C:124
 SteerAnalysisTaskTOFSpectraPbPb.C:125
 SteerAnalysisTaskTOFSpectraPbPb.C:126