]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/AddTaskHFEtpctof.C
Update of hfe code
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / AddTaskHFEtpctof.C
1 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){
2
3   // libraries in case
4   gSystem->Load("libANALYSIS.so");
5   gSystem->Load("libANALYSISalice.so");
6
7   AliLog::SetGlobalDebugLevel(AliLog::kError);
8   AliLog::SetClassDebugLevel("AliCFParticleGenCuts",4);
9
10   //set config file name
11   TString configFile("$ALICE_ROOT/PWGHF/hfe/macros/configs/pp/ConfigHFEpid2SYS.C");
12   //TString configFile("/d/alice12/bailhache/AliRootInstallations/11_09_2012/AliRoot/PWGHF/hfe/macros/configs/pp/ConfigHFEpid2SYS.C");
13   TString checkconfig="ConfigHFEpid2SYS";
14   if (!gROOT->GetListOfGlobalFunctions()->FindObject(checkconfig.Data()))
15     gROOT->LoadMacro(configFile.Data());
16
17   // Name
18
19   Int_t iAODfilter = (Int_t) aodfilter;
20   Int_t iDCAxy = (Int_t)(dcaxy*10.);
21   Int_t iDCAz = (Int_t)(dcaz*10.);
22   Int_t iTPCs = (Int_t)(tpcs*1000.);
23   Int_t iTOFs = (Int_t)(tofs*10.);
24   Int_t iIpSig= (Int_t)(ipSig*10.);
25   Int_t iProdCut = 1;
26   Int_t iIPAbs = 0;
27   Int_t iPixelAny = itspixelcut;
28   Int_t iEtaCorr = 0;
29   Int_t iAnalyseTaggedTracks = 0;
30   Int_t iMCQA = 0;
31   Int_t iDEStep = 0;
32   if(prodcut) iProdCut = 0;
33   if(ipAbs) iIPAbs = 1;
34   if(withetacorrection) iEtaCorr = 1;
35   if(kAnalyseTaggedTracks) iAnalyseTaggedTracks = 1;
36   if(kMCQA) iMCQA = 1;
37   if(kDEStep) iDEStep = 1;
38
39
40   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));
41   printf("appendix %s\n", appendix.Data());
42   
43   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
44   
45   // Check the analysis type using the event handlers connected to the analysis manager.
46   //==============================================================================
47   if (!mgr->GetInputEventHandler()) {
48     printf("AddTaskEventplane", "This task requires an input event handler");
49     return NULL;
50   }
51   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
52   
53   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
54   AliAnalysisTaskHFE *task = ConfigHFEpid2SYS(isMC,appendix,tpcCls,tpcClsPID,itsCls,dcaxy,dcaz,tpcs,tpcu,tofs,ipSig,prodcut,ipAbs,itspixelcut,withetacorrection,listname,ptbin,kAnalyseTaggedTracks,kMCQA,kDEStep,aodfilter);  
55
56   if (inputDataType == "AOD"){
57     task->SetAODAnalysis();
58     task->SetFillNoCuts(kTRUE);
59     //task->SetUseFilterAOD(kFALSE);
60     task->SetApplyCutAOD(kTRUE);
61   }
62   task->SelectCollisionCandidates();
63
64    
65   mgr->AddTask(task);
66
67   TString containerName = mgr->GetCommonFileName();
68   containerName += ":";
69   containerName += appendix.Data();
70
71   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
72   mgr->ConnectOutput(task,1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
73   mgr->ConnectOutput(task,2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(),AliAnalysisManager::kOutputContainer,containerName.Data()));
74   mgr->ConnectInput(task,0, cinput );    
75
76   return task;
77   
78 }