ROOT logo
void runAnaEPFlatenningProof(Int_t mode = 0, const char *folder = "/alice/data",
			     const char *dataset = "LHC10h_000138396_hlt_clustering",
			     Int_t workers=28,
			     Bool_t usePS = kFALSE,
			     const char *minBias = "CPBI",
			     Int_t firstFile = 0, Int_t lastFile = -1)
{
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libOADB");
  gSystem->AddIncludePath("-I$ALICE_ROOT/include ");

  if (mode==0 || mode==2) {
    // Connect to Proof
    gEnv->SetValue("XSec.GSI.DelegProxy","2");
    Char_t *alienuser = gSystem->Getenv("alien_API_USER");
    cout<<"==> Your AliEn username is: "<<alienuser<<endl;

    //    TProof::Mgr("alice-caf.cern.ch")->SetROOTVersion("VO_ALICE@ROOT::v5-33-02a");

    TProof *p = TProof::Open(alienuser!=0 ? Form("%s@alice-caf.cern.ch",
						 alienuser) : "alice-caf.cern.ch",
			     workers>0 ? Form("workers=%d",workers) : "");

    gProof->EnablePackage("VO_ALICE@AliRoot::v5-03-23-AN");

    if (1) {
      gProof->Exec("TGrid::Connect(\"alien://\")",kTRUE);
      gSystem->Setenv("OADB_PATH","alien:///alice/cern.ch/user/c/cheshkov/OADB");
      gProof->Exec("gSystem->Setenv(\"OADB_PATH\",\"alien:///alice/cern.ch/user/c/cheshkov/OADB\")",kTRUE);
    }
  }

  // Create the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("EPFlatenningAnalysis");

  Bool_t esdData = kTRUE;
  TString tempStr1 = folder;
  if (tempStr1.Contains("AOD")) esdData = kFALSE;
  TString tempStr2 = dataset;
  if (tempStr2.Contains("AOD")) esdData = kFALSE;
  if (esdData) {
    AliESDInputHandler* esdH = new AliESDInputHandler();
    esdH->SetInactiveBranches("FMD AliRawDataErrorLogs CaloClusters Cascades EMCALCells EMCALTrigger ESDfriend.fTracks Kinks MuonTracks TrdTracks");
    esdH->SetReadFriends(kFALSE);
    mgr->SetInputEventHandler(esdH);
  }
  else {
    AliAODInputHandler* aodH = new AliAODInputHandler();
    mgr->SetInputEventHandler(aodH);
  }

  // physics and centrality selection
  if (esdData && usePS) {
    gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
    AliPhysicsSelectionTask *physicsSelectionTask = AddTaskPhysicsSelection(kFALSE);
  }

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();

  // Create task
  if (mode==0 || mode==2) {
    if (0) {
      gProof->Load(Form("%s/STEER/STEERBase/AliEventplane.cxx++g",
			gSystem->Getenv("ALICE_ROOT")));
      gProof->Load(Form("%s/ANALYSIS/AliVZEROEPSelectionTask.cxx++g",
			gSystem->Getenv("ALICE_ROOT")));
    }
    gProof->Load(Form("%s/AliAnaVZEROEPFlatenning.cxx++g",
		      gSystem->pwd()));
  }
  else {
    gROOT->LoadMacro(Form("%s/AliAnaVZEROEPFlatenning.cxx++g",
			  gSystem->pwd()));
  }

  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskVZEROEPSelection.C");
  AliVZEROEPSelectionTask *selTask = AddTaskVZEROEPSelection();

  AliAnaVZEROEPFlatenning *task = new AliAnaVZEROEPFlatenning("AliAnaVZEROEPFlatenning");
  task->SetMBTrigName(minBias);
  if (usePS) task->SetUsePhysSel(kTRUE);
  task->SetInput("/home/cheshkov/alice/AliRoot/PWGPP/VZERO/save/VZERO.EPFlatenning.PS.LHC11h_000170162_p1_muon_.root");
  
  // Add task
  mgr->AddTask(task);

  // Create containers for input/output
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput = 
    mgr->CreateContainer("coutput", TList::Class(), 
			 AliAnalysisManager::kOutputContainer, (!usePS) ? Form("VZERO.EPFlatenning.%s.root",dataset) : Form("VZERO.EPFlatenning.PS.%s.root",dataset));

  // Connect input/output
  mgr->ConnectInput(task, 0, cinput);
  mgr->ConnectOutput(task, 1, coutput);

  // Enable debug printouts
  mgr->SetDebugLevel(3);

  if (!mgr->InitAnalysis())
    return;

  mgr->PrintStatus();

  if (mode==0)
    mgr->StartAnalysis("proof", Form("%s/%s",folder,dataset));
  else {
    TGrid::Connect("alien://");
    TChain *chain = new TChain("esdTree");
    TGridResult *res = gGrid->Query(folder,"AliESDs.root");
    Int_t nFiles = res->GetEntries();
    if (lastFile < 0) lastFile = nFiles - 1;
    for(Int_t iFile = firstFile; iFile <= lastFile; ++iFile) {
      TString filename = res->GetKey(iFile, "turl");
      if(filename == "") continue;
      chain->AddFile(filename.Data());
    }
    if (mode==2) {
      gProof->Exec("TGrid::Connect(\"alien://\")",kTRUE);
      mgr->StartAnalysis("proof", chain);
    }
    else
      mgr->StartAnalysis("local", chain);
  }
}

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