]>
Commit | Line | Data |
---|---|---|
1c18d6ca | 1 | // $Id$ |
2 | ||
3 | AliAnalysisTaskSE* 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 | } |