ROOT logo
AliAnalysisTask *AddTaskHFECal(Bool_t MassConst, Bool_t MassWidthCut, Bool_t MassNonlinear)
{
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTaskHFEECal", "No analysis manager found.");
    return NULL;
  }

  if (!mgr->GetInputEventHandler()) {
    ::Error("AddTaskHFECal", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
  if (type=="AOD"){
    ::Error("AddTaskHFECal", "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;
  }
  
  Bool_t MassCal = kTRUE;
  Double_t masscut = 0.05;
  if(!MassConst)masscut = 0.1;
  //analysis task 
  gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFECal.C");

  AliAnalysisTaskHFECal *hfetaskCent = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,0.5,0.1,masscut,-5,1);
  AliAnalysisTaskHFECal *hfetaskTrig= ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,0.5,0.1,masscut,-5,1);
  AliAnalysisTaskHFECal *hfetaskTrig2= ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,0.5,0.1,masscut,-5,1);
 
  mgr->AddTask(hfetaskCent);
  mgr->AddTask(hfetaskTrig);
  mgr->AddTask(hfetaskTrig2);
  
  
  // central trigger
  hfetaskCent->SelectCollisionCandidates(AliVEvent::kCentral);
  
  TString containerName = mgr->GetCommonFileName();
  containerName += ":PWGHF_hfeCalCentral";
  
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("HFE_Results_EMCalCentral", TList::Class(),AliAnalysisManager::kOutputContainer, containerName.Data());
  mgr->ConnectInput(hfetaskCent, 0, cinput);
  mgr->ConnectOutput(hfetaskCent, 1, coutput1);

  //L1 gamma trigger
  hfetaskTrig->SelectCollisionCandidates(AliVEvent::kEMCEGA);
  
  TString containerName2 = mgr->GetCommonFileName();
  containerName2 += ":PWGHF_hfeCalTrigEGA";
  
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("HFE_Results_EMCalTrigEGA", TList::Class(),AliAnalysisManager::kOutputContainer, containerName2.Data());
  mgr->ConnectInput(hfetaskTrig, 0, cinput);
  mgr->ConnectOutput(hfetaskTrig, 1, coutput1);
  
  
  // semi-central
  //hfetaskTrig2->SelectCollisionCandidates(AliVEvent::kSemiCentral | AliVEvent::kCentral);
  hfetaskTrig2->SelectCollisionCandidates(AliVEvent::kAny);
  
  TString containerName3 = mgr->GetCommonFileName();
  containerName3 += ":PWGHF_hfeCalSemiCentral";
  
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("HFE_Results_SemiCentral", TList::Class(),AliAnalysisManager::kOutputContainer, containerName3.Data());
  mgr->ConnectInput(hfetaskTrig2, 0, cinput);
  mgr->ConnectOutput(hfetaskTrig2, 1, coutput1);

 
  //if(MCthere)
    //{
    //MB trigger
    AliAnalysisTaskHFECal *hfetaskMB = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,0.5,0.1,masscut,-5,1);
    mgr->AddTask(hfetaskMB);
    hfetaskMB->SelectCollisionCandidates(AliVEvent::kMB);

    TString containerName4 = mgr->GetCommonFileName();
    containerName4 += ":PWGHF_hfeCalkMB";

     AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
     AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("HFE_Results_EMCalMB", TList::Class(),AliAnalysisManager::kOutputContainer, containerName4.Data());
     mgr->ConnectInput(hfetaskMB, 0, cinput);
     mgr->ConnectOutput(hfetaskMB, 1, coutput1);
     //}

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