ROOT logo
AliAnalysisTask *AddTaskHFECalPbPbSys(Bool_t MassConst, Bool_t MassWidthCut, Bool_t MassCal, Bool_t MassNonlinear ,Double_t asspTCut, Double_t angleCut, Double_t MassCut, Double_t NsigCut,TString ID="phoSys0")
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskHFEECalPbPbSys", "No analysis manager found.");
    return NULL;
  }

  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskHFECalPbPbSys", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  if (type=="AOD"){
    ::Error("AddTaskHFECalPbPbSys", "The tasks exits because AODs are in input");
    return NULL;
  }
  Bool_t MCthere=kFALSE;
  AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
  if(!mcH){
    MCthere=kFALSE;
  }else{
    MCthere=kTRUE;
  }
  
  //analysis task 
  gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFECal.C");
  AliAnalysisTaskHFECal *hfetask = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
  mgr->AddTask(hfetask);
  // semi-central
  hfetask->SelectCollisionCandidates(AliVEvent::kSemiCentral);
  TString containerName3 = mgr->GetCommonFileName();
  containerName3 += ":PWGHF_hfeCalSemiCentral";
  containerName3 += ID;
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_SemiCentral_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName3.Data());
  mgr->ConnectInput(hfetask, 0, cinput);
  mgr->ConnectOutput(hfetask, 1, coutput1);
 
  //trigger
  AliAnalysisTaskHFECal *hfetaskTrig = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
  mgr->AddTask(hfetaskTrig);
  hfetaskTrig->SelectCollisionCandidates(AliVEvent::kEMCEGA);
  TString containerName2 = mgr->GetCommonFileName();
  containerName2 += ":PWGHF_hfeCalkTrig";
  containerName2 += ID;
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_EMCalTrig_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName2.Data());
  mgr->ConnectInput(hfetaskTrig, 0, cinput);
  mgr->ConnectOutput(hfetaskTrig, 1, coutput1);
 

  //MB trigger
  AliAnalysisTaskHFECal *hfetaskMB = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
  mgr->AddTask(hfetaskMB);
  hfetaskMB->SelectCollisionCandidates(AliVEvent::kMB);
  TString containerName4 = mgr->GetCommonFileName();
  containerName4 += ":PWGHF_hfeCalkMB";
  containerName4 += ID;
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_EMCalMB_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName4.Data());
  mgr->ConnectInput(hfetaskMB, 0, cinput);
  mgr->ConnectOutput(hfetaskMB, 1, coutput1);
  

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