]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | // $Id$ |
2 | ||
7cfa86a3 | 3 | AliAnalysisTaskSE* AddTaskJetPreparation( |
b91d1003 | 4 | const char* periodstr = "LHC11h", |
5fc087e1 | 5 | const char* pTracksName = "PicoTracks", |
b0e0004e | 6 | const char* usedMCParticles = "MCParticlesSelected", |
8628b70c | 7 | const char* usedClusters = "CaloClusters", |
8 | const char* outClusName = "CaloClustersCorr", | |
77a44622 | 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 | |
8628b70c | 24 | ) |
25 | { | |
b91d1003 | 26 | // Add task macros for all jet related helper tasks. |
27 | ||
8628b70c | 28 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
29 | if (!mgr) | |
30 | { | |
31 | Error("AddTaskJetPreparation","No analysis manager found."); | |
5fc087e1 | 32 | return NULL; |
8628b70c | 33 | } |
8628b70c | 34 | |
33a8056d | 35 | AliVEventHandler *evhand = mgr->GetInputEventHandler(); |
36 | if (!evhand) { | |
37 | Error("AddTaskJetPreparation", "This task requires an input event handler"); | |
38 | return NULL; | |
39 | } | |
40 | ||
5fc087e1 | 41 | // Set trackcuts according to period. Every period used should be defined here |
b91d1003 | 42 | TString period(periodstr); |
135056c3 | 43 | TString clusterColName(usedClusters); |
14aa1ebc | 44 | TString particleColName(usedMCParticles); |
5fc087e1 | 45 | TString picoTracksName(pTracksName); |
7030f36f | 46 | |
33a8056d | 47 | TString dType("ESD"); |
48 | if (!evhand->InheritsFrom("AliESDInputHandler")) | |
49 | dType = "AOD"; | |
14aa1ebc | 50 | if ((dType == "AOD") && (clusterColName == "CaloClusters")) |
135056c3 | 51 | clusterColName = "caloClusters"; |
9f1d9336 | 52 | if ((dType == "ESD") && (clusterColName == "caloClusters")) |
53 | clusterColName = "CaloClusters"; | |
135056c3 | 54 | |
5fc087e1 | 55 | //----------------------- Trigger Maker ----------------------------------------------------- |
9f1d9336 | 56 | if (makeTrigger) { |
57 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C"); | |
77a44622 | 58 | AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers", doTriggerQA); |
9f1d9336 | 59 | emcalTriggers->SelectCollisionCandidates(pSel); |
60 | } | |
61 | ||
5fc087e1 | 62 | //----------------------- Track Matching tasks ----------------------------------------------------- |
de415b0d | 63 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C"); |
64 | AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel, | |
65 | clusterColName, | |
66 | trackeff,doAODTrackProp, | |
67 | 0.1,modifyMatchObjs,doHistos); | |
68 | ||
5fc087e1 | 69 | //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching |
70 | TString inputTracks = "AODFilterTracks"; | |
71 | if (dType == "ESD") inputTracks = "ESDFilterTracks"; | |
72 | TString emctracks = Form("EmcalTracks_%s",inputTracks.Data()); | |
73 | TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data()); | |
74 | Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data()); | |
75 | if(makePicoTracks) { | |
76 | //----------------------- Produce PicoTracks ----------------------------------------------------- | |
77 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C"); | |
78 | AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks); | |
de415b0d | 79 | // pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter |
5fc087e1 | 80 | pTrackTask->SelectCollisionCandidates(pSel); |
81 | } | |
9f1d9336 | 82 | |
5fc087e1 | 83 | //----------------------- Hadronic Correction ----------------------------------------------------- |
82915c95 | 84 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C"); |
c81aaed1 | 85 | AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr, |
33a8056d | 86 | minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos); |
8628b70c | 87 | hCorr->SelectCollisionCandidates(pSel); |
b91d1003 | 88 | if (isEmcalTrain) { |
8628b70c | 89 | if (doHistos) |
05ef0f66 | 90 | RequestMemory(hCorr,500*1024); |
b91d1003 | 91 | } |
8628b70c | 92 | |
b91d1003 | 93 | // Produce MC particles |
5f2a3bf7 | 94 | if(particleColName != "") { |
8628b70c | 95 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C"); |
c81aaed1 | 96 | AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE); |
b91d1003 | 97 | mcPartTask->SelectCollisionCandidates(pSel); |
8628b70c | 98 | } |
7cfa86a3 | 99 | |
100 | // Return one task that represents the jet preparation on LEGO trains | |
5fc087e1 | 101 | return hCorr; |
8628b70c | 102 | } |