ROOT logo
AliAnalysisTask *AddTaskHFEtpctof(Bool_t isMC,Bool_t kAnalyseTaggedTracks = kFALSE, Bool_t kMCQA = kFALSE, Bool_t kDEStep = kFALSE, Int_t aodfilter=-1, Int_t tpcCls=110,  Int_t tpcClsPID = 70, Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, Double_t tpcs=0., Double_t tpcu=3., Double_t tofs=3., Double_t ipSig=3.0, Bool_t prodcut = kFALSE, Bool_t ipAbs = kFALSE, Int_t itspixelcut=AliHFEextraCuts::kAny, Bool_t withetacorrection=kFALSE, TString listname="", Int_t ptbin=0){

  // libraries in case
  gSystem->Load("libANALYSIS.so");
  gSystem->Load("libANALYSISalice.so");

  AliLog::SetGlobalDebugLevel(AliLog::kError);
  AliLog::SetClassDebugLevel("AliCFParticleGenCuts",4);

  //set config file name
  TString configFile("$ALICE_ROOT/PWGHF/hfe/macros/configs/pp/ConfigHFEpid2SYS.C");
  //TString configFile("/d/alice12/bailhache/AliRootInstallations/11_09_2012/AliRoot/PWGHF/hfe/macros/configs/pp/ConfigHFEpid2SYS.C");
  TString checkconfig="ConfigHFEpid2SYS";
  if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
    gROOT->LoadMacro(configFile.Data());

  // Name

  Int_t iAODfilter = (Int_t) aodfilter;
  Int_t iDCAxy = (Int_t)(dcaxy*10.);
  Int_t iDCAz = (Int_t)(dcaz*10.);
  Int_t iTPCs = (Int_t)(tpcs*1000.);
  Int_t iTOFs = (Int_t)(tofs*10.);
  Int_t iIpSig= (Int_t)(ipSig*10.);
  Int_t iProdCut = 1;
  Int_t iIPAbs = 0;
  Int_t iPixelAny = itspixelcut;
  Int_t iEtaCorr = 0;
  Int_t iAnalyseTaggedTracks = 0;
  Int_t iMCQA = 0;
  Int_t iDEStep = 0;
  if(prodcut) iProdCut = 0;
  if(ipAbs) iIPAbs = 1;
  if(withetacorrection) iEtaCorr = 1;
  if(kAnalyseTaggedTracks) iAnalyseTaggedTracks = 1;
  if(kMCQA) iMCQA = 1;
  if(kDEStep) iDEStep = 1;


  TString appendix(TString::Format("T%dM%dD%df%dt%di%dr%dz%ds%dt%db%dp%da%dpa%detacorr%dptbin%d",iAnalyseTaggedTracks,iMCQA,iDEStep,iAODfilter,tpcCls,itsCls,iDCAxy,iDCAz,iTPCs,iTOFs,iIpSig,iProdCut,iIPAbs,iPixelAny,iEtaCorr,ptbin));
  printf("appendix %s\n", appendix.Data());
  
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //==============================================================================
  if (!mgr->GetInputEventHandler()) {
    printf("AddTaskEventplane", "This task requires an input event handler");
    return NULL;
  }
  TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  
  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
  AliAnalysisTaskHFE *task = ConfigHFEpid2SYS(isMC,appendix,tpcCls,tpcClsPID,itsCls,dcaxy,dcaz,tpcs,tpcu,tofs,ipSig,prodcut,ipAbs,itspixelcut,withetacorrection,listname,ptbin,kAnalyseTaggedTracks,kMCQA,kDEStep,aodfilter);  

  if (inputDataType == "AOD"){
    task->SetAODAnalysis();
    task->SetFillNoCuts(kTRUE);
    //task->SetUseFilterAOD(kFALSE);
    task->SetApplyCutAOD(kTRUE);
  }
  task->SelectCollisionCandidates();

   
  mgr->AddTask(task);

  TString containerName = mgr->GetCommonFileName();
  containerName += ":";
  containerName += appendix.Data();

  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
  mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
  mgr->ConnectOutput(task,2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
  mgr->ConnectInput(task,0, cinput );    

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