]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparationJSON.C
Charged jets (pPb): Enhanced macro
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparationJSON.C
CommitLineData
1c18d6ca 1// $Id$
2
3AliAnalysisTaskSE* AddTaskJetPreparation(
4 const char* periodstr = "LHC11h",
5 const char* pTracksName = "PicoTracks",
6 const char* usedMCParticles = "MCParticlesSelected",
7 const char* usedClusters = "CaloClusters",
8 const char* outClusName = "CaloClustersCorr",
9 Double_t hadcorr = 2.0,
10 Double_t Eexcl = 0.00,
11 Double_t phiMatch = 0.03,
12 Double_t etaMatch = 0.015,
13 Double_t minPtEt = 0.15,
14 UInt_t pSel = AliVEvent::kAny,
15 Bool_t trackclus = kTRUE,
16 Bool_t doHistos = kFALSE,
17 Bool_t makePicoTracks = kTRUE,
18 Bool_t makeTrigger = kTRUE,
19 Bool_t isEmcalTrain = kFALSE,
20 Double_t trackeff = 1.0,
21 Bool_t doAODTrackProp = kTRUE,
22 Bool_t modifyMatchObjs = kTRUE,
23 Bool_t doTriggerQA = kFALSE
24)
25{
26 // Add task macros for all jet related helper tasks.
27
28 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
29 if (!mgr)
30 {
31 Error("AddTaskJetPreparation","No analysis manager found.");
32 return NULL;
33 }
34
35 AliVEventHandler *evhand = mgr->GetInputEventHandler();
36 if (!evhand) {
37 Error("AddTaskJetPreparation", "This task requires an input event handler");
38 return NULL;
39 }
40
41 // Set trackcuts according to period. Every period used should be defined here
42 TString period(periodstr);
43 TString clusterColName(usedClusters);
44 TString particleColName(usedMCParticles);
45 TString picoTracksName(pTracksName);
46
47 TString dType("ESD");
48 if (!evhand->InheritsFrom("AliESDInputHandler"))
49 dType = "AOD";
50 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
51 clusterColName = "caloClusters";
52 if ((dType == "ESD") && (clusterColName == "caloClusters"))
53 clusterColName = "CaloClusters";
54
55 //----------------------- Trigger Maker -----------------------------------------------------
56 if (makeTrigger) {
57 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMakerJSON.C");
58 AliEMCALConfiguration emctriggerconf("triggerMakerConf");
59 emctriggerconf.AddParam("doQA", new AliJSONBool(doTriggerQA));
60 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMakerJSON(emctriggerconf.CreateJSONString());
61 emcalTriggers->SelectCollisionCandidates(pSel);
62 }
63
64 //----------------------- Track Matching tasks -----------------------------------------------------
65 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
66 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel,
67 clusterColName,
68 trackeff,doAODTrackProp,
69 0.1,modifyMatchObjs,doHistos);
70
71 //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
72 TString inputTracks = "AODFilterTracks";
73 if (dType == "ESD") inputTracks = "ESDFilterTracks";
74 TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
75 TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
76 Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
77 if(makePicoTracks) {
78 //----------------------- Produce PicoTracks -----------------------------------------------------
79 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
80 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
81 // pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter
82 pTrackTask->SelectCollisionCandidates(pSel);
83 }
84
85 //----------------------- Hadronic Correction -----------------------------------------------------
86 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C");
87 AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr,
88 minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
89 hCorr->SelectCollisionCandidates(pSel);
90 if (isEmcalTrain) {
91 if (doHistos)
92 RequestMemory(hCorr,500*1024);
93 }
94
95 // Produce MC particles
96 if(particleColName != "") {
97 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
98 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE);
99 mcPartTask->SelectCollisionCandidates(pSel);
100 }
101
102 // Return one task that represents the jet preparation on LEGO trains
103 return hCorr;
104}