ROOT logo
#define TENDER

void runProofNormalization(const char * dataset = "LHC09b12_7TeV_0.5T", TString dataSetPath ="/PWG0/jgrosseo/",const char * filename = "LHC09b12_7TeV_0.5T_norm.root", Bool_t isMC = 1,Int_t nev =123456789) {

#ifdef TENDER
  TGrid::Connect("alien://");
#endif
  gEnv->SetValue("XSec.GSI.DelegProxy","2");
  TProof::Open("alice-caf","workers=1x");// limit the number of workers
  //  gROOT->ProcessLine(Form(".include %s/include",gSystem->ExpandPathName("$ALICE_ROOT")));
  //  gSystem->AddIncludePath("-I${ALICE_ROOT}/include/ -I${ALICE_ROOT}/PWG0/ -I${ALICE_ROOT}/PWG0/dNdEta/");
  //  gSystem->AddIncludePath("-I${ALICE_ROOT}/include/");
    // Use a precompiled tag
    TString alirootMode="";    // STEERBase,ESD,AOD,ANALYSIS,ANALYSISalice (default aliroot mode)
    //alirootMode="ALIROOT";     // $ALICE_ROOT/macros/loadlibs.C
    //  alirootMode="REC";     // $ALICE_ROOT/macros/loadlibsrec.C
    //  alirootMode="SIM";     // $ALICE_ROOT/macros/loadlibssim.C
    //  alirootMode="TRAIN";   // $ALICE_ROOT/macros/loadlibstrain.C (not working yet)
    //  alirootMode="CUSTOM";  // nothing is loaded, but aliroot variables are set (not working yet)
 
    TString extraLibs;
    extraLibs= ""; // not needed in default aliroot mode
    extraLibs+="CDB:RAWDatabase:STEER:TENDER:TRDbase:STAT:TRDrec:VZERObase:VZEROsim:VZEROrec:RAWDatarec:TPCbase:TPCrec:TPCcalib:TENDERSupplies:RAWDatabase:RAWDatarec:RAWDatasim:TOFbase:TOFrec";
    TList *list = new TList();
    // sets $ALIROOT_MODE on each worker to let proof to know to run in special mode
    list->Add(new TNamed("ALIROOT_MODE", alirootMode.Data()));
    // sets $ALIROOT_EXTRA_LIBS on each worker to let proof to know to load extra libs
    list->Add(new TNamed("ALIROOT_EXTRA_LIBS", extraLibs.Data()));
#ifdef TENDER
    list->Add(new TNamed("ALIROOT_ENABLE_ALIEN", "1"));
#endif
    // connect to proof
    gProof->EnablePackage("VO_ALICE@AliRoot::v4-21-22-AN", list);
    //    gProof->Exec("TGrid::Connect(\"alien://\");");
  // gProof->UploadPackage("$ALICE_ROOT/obj/STEERBase");
  // gProof->EnablePackage("$ALICE_ROOT/obj/STEERBase");
  // gProof->UploadPackage("$ALICE_ROOT/obj/ESD");
  // gProof->EnablePackage("$ALICE_ROOT/obj/ESD");
  // gProof->UploadPackage("$ALICE_ROOT/obj/AOD");
  // gProof->EnablePackage("$ALICE_ROOT/obj/AOD");
  // gProof->UploadPackage("$ALICE_ROOT/obj/ANALYSIS");
  // gProof->EnablePackage("$ALICE_ROOT/obj/ANALYSIS");
  // gProof->UploadPackage("$ALICE_ROOT/obj/OADB");
  // gProof->EnablePackage("$ALICE_ROOT/obj/OADB");
  // gProof->UploadPackage("$ALICE_ROOT/obj/ANALYSISalice");
  // gProof->EnablePackage("$ALICE_ROOT/obj/ANALYSISalice");
//   gProof->UploadPackage("STEERBase.par");
//   gProof->EnablePackage("STEERBase");
//   gProof->UploadPackage("ESD.par");
//   gProof->EnablePackage("ESD");
//   gProof->UploadPackage("AOD.par");
//   gProof->EnablePackage("AOD");
//   gProof->UploadPackage("ANALYSIS.par");
//   gProof->EnablePackage("ANALYSIS");
//   gProof->UploadPackage("ANALYSISalice.par");
//   gProof->EnablePackage("ANALYSISalice");
//   gProof->UploadPackage("CORRFW.par");
//   gProof->EnablePackage("CORRFW"); 

  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");
  //  mgr->SetDebugLevel(3);
  // Add ESD handler
  AliESDInputHandler* esdH = new AliESDInputHandler; 

  mgr->SetInputEventHandler(esdH);
	
  if(isMC) {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mc->SetReadTR(kFALSE);
    mgr->SetMCtruthEventHandler(mc);
  }
  //____________________________________________//

#ifdef TENDER
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/TenderSupplies/AddTaskTender.C");
  AliAnalysisTask* tender=0x0;
  if(!isMC)
    {
      tender = AddTaskTender(kTRUE);
      // tender->SetDebugLevel(10);
    }
  else
    {
      tender = AddTaskTender(kFALSE);
      // tender->SetDebugLevel(10);
    }
#endif

  gROOT->LoadMacro("$(ALICE_ROOT)/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  AliPhysicsSelectionTask* physSelTask = AddTaskPhysicsSelection(isMC,1,!isMC); // Use Physics Selection. Enable computation of BG if is not MC
  //  task->SelectCollisionCandidates(); /// This should be disabled, at least for MC: we need all the events
  physSelTask->GetPhysicsSelection()->SetBin0Callback("TaskNormalization");

  // assign simple task
  AliCollisionNormalizationTask * task = new AliCollisionNormalizationTask("TaskNormalization");
  //  task->SetMC();
  task->SetMC(isMC);
  mgr->AddTask(task);



  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();	
  mgr->ConnectInput(task,0,cinput1);


  
  // Attach output
  cOutput = mgr->CreateContainer("Norm", TList::Class(), AliAnalysisManager::kOutputContainer,filename);
  mgr->ConnectOutput(task, 1, cOutput);      
	
  if (!mgr->InitAnalysis()) return;
	
  mgr->PrintStatus();
  mgr->StartAnalysis("proof",dataSetPath+dataset+"#esdTree",nev);

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