]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/AddTaskHFECalPbPbSys.C
Update
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskHFECalPbPbSys.C
1 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")
2 {
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTaskHFEECalPbPbSys", "No analysis manager found.");
6     return NULL;
7   }
8
9   if (!mgr->GetInputEventHandler()) {
10     ::Error("AddTaskHFECalPbPbSys", "This task requires an input event handler");
11     return NULL;
12   }
13   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
14   if (type=="AOD"){
15     ::Error("AddTaskHFECalPbPbSys", "The tasks exits because AODs are in input");
16     return NULL;
17   }
18   Bool_t MCthere=kFALSE;
19   AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
20   if(!mcH){
21     MCthere=kFALSE;
22   }else{
23     MCthere=kTRUE;
24   }
25   
26   //analysis task 
27   gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFECal.C");
28   AliAnalysisTaskHFECal *hfetask = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
29   mgr->AddTask(hfetask);
30   // semi-central
31   hfetask->SelectCollisionCandidates(AliVEvent::kSemiCentral);
32   TString containerName3 = mgr->GetCommonFileName();
33   containerName3 += ":PWGHF_hfeCalSemiCentral";
34   containerName3 += ID;
35   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
36   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_SemiCentral_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName3.Data());
37   mgr->ConnectInput(hfetask, 0, cinput);
38   mgr->ConnectOutput(hfetask, 1, coutput1);
39  
40   //trigger
41   AliAnalysisTaskHFECal *hfetaskTrig = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
42   mgr->AddTask(hfetaskTrig);
43   hfetaskTrig->SelectCollisionCandidates(AliVEvent::kEMCEGA);
44   TString containerName2 = mgr->GetCommonFileName();
45   containerName2 += ":PWGHF_hfeCalkTrig";
46   containerName2 += ID;
47   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
48   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_EMCalTrig_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName2.Data());
49   mgr->ConnectInput(hfetaskTrig, 0, cinput);
50   mgr->ConnectOutput(hfetaskTrig, 1, coutput1);
51  
52
53   //MB trigger
54   AliAnalysisTaskHFECal *hfetaskMB = ConfigHFECal(MCthere,MassConst,MassWidthCut,MassCal,MassNonlinear,asspTCut,angleCut,MassCut,NsigCut,0);
55   mgr->AddTask(hfetaskMB);
56   hfetaskMB->SelectCollisionCandidates(AliVEvent::kMB);
57   TString containerName4 = mgr->GetCommonFileName();
58   containerName4 += ":PWGHF_hfeCalkMB";
59   containerName4 += ID;
60   AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
61   AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(Form("HFE_Results_EMCalMB_%s",ID.Data()), TList::Class(),AliAnalysisManager::kOutputContainer, containerName4.Data());
62   mgr->ConnectInput(hfetaskMB, 0, cinput);
63   mgr->ConnectOutput(hfetaskMB, 1, coutput1);
64   
65
66   return NULL;
67 }