new Muon-Hadron correlation task in DHC (Constantin Loizides <cloizides@lbl.gov>...
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / FourierDecomposition / AddTaskDhc.C
1 AliDhcTask *AddTaskDhc(Int_t iAna = 1)
2 {
3   const char *nTracks     = "PicoTracks";
4   const char *inputTracks = "HybridTracks";
5
6   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7   if (!mgr) {
8     Error("AddTaskDhc", "No analysis manager found.");
9     return;
10   }
11
12   // Track Cuts
13   gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C");
14   AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks,"Hybrid_LHC11h");
15
16   // Pico Tracks
17   gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
18   AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(nTracks, inputTracks, "LHC11h");
19
20   // Binning
21   Double_t arPt[5] = {0.5, 1.0, 2.0, 4.0};
22   TAxis *axPt = new TAxis(3,arPt);
23   Double_t arCent[5] = {0.0, 20.0, 40.0, 60.0, 100.0};
24   TAxis *axCent = new TAxis(4,arCent);
25   TAxis *axZvtx = new TAxis(1,-10.0,10.0);
26   Double_t arCentMix[9] = {0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0, 80.0, 100.0};
27   TAxis *axCentMix = new TAxis(8,arCentMix);
28   TAxis *axZvtxMix = new TAxis(8,-10.0,10.0);
29
30   // Efficiency correction files
31   TFile *fiHEff  = 0;
32   TFile *fiMuEff = 0;
33   fiHEff = TFile::Open("alien:///alice/cern.ch/user/t/tschuste/correction_hybrid_nulled.root","OLD");
34   if (!fiHEff){
35     cout << "Requested file:" << fiHEff << " was not opened. ABORT." << endl;
36     return;
37   }
38   THnF* hHEff = (THnF*) fiHEff->Get("correction");
39   
40   fiMuEff = TFile::Open("alien:///alice/cern.ch/user/t/tschuste/correction_muon.root","OLD");
41   if (!fiMuEff){
42     cout << "Requested file:" << fiMuEff << " was not opened. ABORT." << endl;
43     return;
44   }
45   THnF* hMuEff = (THnF*) fiMuEff->Get("correction");
46   
47
48   AliDhcTask *dhcTask_NW = new AliDhcTask("Task_tschuste_Dhc_NW");
49   if (iAna==1) { // h-h
50     Int_t nDetaBins = 40;
51     Int_t nDPhiBins = 72;
52     dhcTask_NW->SetAnaMode(AliDhcTask::kHH);
53     dhcTask_NW->SetHEffT(hHEff);
54     dhcTask_NW->SetHEffA(hHEff);
55     dhcTask_NW->SetEtaMax(1.2);
56   } else if (iAna==2) { // mu-h
57     Int_t nDetaBins = 100;
58     Int_t nDPhiBins = 36;
59     dhcTask_NW->SetAnaMode(AliDhcTask::kMuH);
60     dhcTask_NW->SetHEffT(hMuEff);
61     dhcTask_NW->SetHEffA(hHEff);
62     dhcTask_NW->SetEtaMax(5.0);
63   }
64   dhcTask_NW->SetTracksName(nTracks);
65   dhcTask_NW->SetDoWeights(kFALSE);
66   dhcTask_NW->SetCentMethod("V0M");
67   dhcTask_NW->SetDEtaDPhiBins(nDetaBins,nDPhiBins);
68   dhcTask_NW->SetPtTBins(axPt);
69   dhcTask_NW->SetPtABins(axPt);
70   dhcTask_NW->SetCentBins(axCent);
71   dhcTask_NW->SetZVtxBins(axZvtx);
72   dhcTask_NW->SetCentMixBins(axCentMix);
73   dhcTask_NW->SetZVtxMixBins(axZvtxMix);
74   dhcTask_NW->SelectCollisionCandidates(AliVEvent::kINT7);
75   dhcTask_NW->SetVerbosity(10);
76   mgr->AddTask(dhcTask_NW);
77   
78   AliAnalysisDataContainer *co_Dhc_NW = mgr->CreateContainer("Cont_tschuste_DhcAna_NW", 
79                                                              TList::Class(),
80                                                              AliAnalysisManager::kOutputContainer,
81                                                              Form("%s:PWGCF.outDhc_NW_%d.root", AliAnalysisManager::GetCommonFileName(), iAna));
82   mgr->ConnectInput(dhcTask_NW,0,mgr->GetCommonInputContainer());
83   mgr->ConnectOutput(dhcTask_NW,1,co_Dhc_NW);
84   
85   return dhcTask_NW;
86
87 }