]>
Commit | Line | Data |
---|---|---|
8628b70c | 1 | // $Id$ |
2 | ||
7cfa86a3 | 3 | AliAnalysisTaskSE* AddTaskJetPreparation( |
8628b70c | 4 | const char* dataType = "ESD", |
b91d1003 | 5 | const char* periodstr = "LHC11h", |
8628b70c | 6 | const char* usedTracks = "PicoTracks", |
7 | const char* usedMCParticles = "MCParticles", | |
8 | const char* usedClusters = "CaloClusters", | |
9 | const char* outClusName = "CaloClustersCorr", | |
10 | const Double_t hadcorr = 2.0, | |
11 | const Double_t Eexcl = 0.00, | |
12 | const Double_t phiMatch = 0.03, | |
13 | const Double_t etaMatch = 0.015, | |
14 | const Double_t minPtEt = 0.15, | |
135056c3 | 15 | const UInt_t pSel = AliVEvent::kAny, |
9ccb7f94 | 16 | const Bool_t trackclus = kTRUE, |
b91d1003 | 17 | const Bool_t doHistos = kFALSE, |
18 | const Bool_t makePicoTracks = kTRUE, | |
19 | const Bool_t isEmcalTrain = kFALSE | |
8628b70c | 20 | ) |
21 | { | |
b91d1003 | 22 | // Add task macros for all jet related helper tasks. |
23 | ||
8628b70c | 24 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
25 | if (!mgr) | |
26 | { | |
27 | Error("AddTaskJetPreparation","No analysis manager found."); | |
28 | return 0; | |
29 | } | |
30 | Bool_t isMC = (mgr->GetMCtruthEventHandler() != NULL); | |
31 | ||
32 | // Set trackcuts according to period. Every period used should be definied here | |
b91d1003 | 33 | TString period(periodstr); |
135056c3 | 34 | TString clusterColName(usedClusters); |
b91d1003 | 35 | if ( (period != "LHC11h") && (period!="LHC11a") ) |
8628b70c | 36 | { |
37 | Error("AddTaskJetPreparation","###################################################"); | |
38 | Error("AddTaskJetPreparation","Run period in AddTaskJetPreparation.C not recognized! You have to specify it for the used period, if you need jets!"); | |
b91d1003 | 39 | Error("AddTaskJetPreparation","###################################################"); |
8628b70c | 40 | return 0; |
41 | } | |
8628b70c | 42 | |
b91d1003 | 43 | if ((strcmp(dataType,"AOD") == 0) && (clusterColName == "CaloClusters")) |
135056c3 | 44 | clusterColName = "caloClusters"; |
45 | ||
b91d1003 | 46 | if (makePicoTracks && ((strcmp(dataType,"ESD") == 0) || (strcmp(dataType,"AOD") == 0)) ) |
8628b70c | 47 | { |
135056c3 | 48 | TString inputTracks = "tracks"; |
49 | ||
b91d1003 | 50 | if (strcmp(dataType,"ESD") == 0) |
8628b70c | 51 | { |
135056c3 | 52 | inputTracks = "HybridTracks"; |
53 | TString trackCuts(Form("Hybrid_%s", period.Data())); | |
8628b70c | 54 | // Hybrid tracks maker for ESD |
55 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C"); | |
135056c3 | 56 | AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks.Data(),trackCuts.Data()); |
8628b70c | 57 | hybTask->SelectCollisionCandidates(pSel); |
58 | ||
59 | // Track propagator to extend track to the TPC boundaries | |
60 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C"); | |
135056c3 | 61 | AliEmcalTrackPropagatorTask *propTask = AddTaskEmcalTrackPropagator(inputTracks.Data()); |
8628b70c | 62 | propTask->SelectCollisionCandidates(pSel); |
63 | } | |
b91d1003 | 64 | // Produce PicoTracks |
8628b70c | 65 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C"); |
135056c3 | 66 | AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker("PicoTracks", inputTracks.Data(), period.Data()); |
8628b70c | 67 | pTrackTask->SelectCollisionCandidates(pSel); |
68 | } | |
69 | ||
b91d1003 | 70 | // Produce particles used for hadronic correction |
8628b70c | 71 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C"); |
135056c3 | 72 | AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(usedTracks,clusterColName.Data(),"EmcalTracks","EmcalClusters"); |
8628b70c | 73 | emcalParts->SelectCollisionCandidates(pSel); |
74 | ||
75 | // Relate tracks and clusters | |
76 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C"); | |
77 | AliEmcalClusTrackMatcherTask *emcalClus = AddTaskEmcalClusTrackMatcher("EmcalTracks","EmcalClusters",0.1); | |
78 | emcalClus->SelectCollisionCandidates(pSel); | |
b91d1003 | 79 | if (isEmcalTrain) |
8628b70c | 80 | RequestMemory(emcalClus,100*1024); |
8628b70c | 81 | gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskHadCorr.C"); |
9ccb7f94 | 82 | AliHadCorrTask *hCorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",outClusName,hadcorr,minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos); |
8628b70c | 83 | hCorr->SelectCollisionCandidates(pSel); |
b91d1003 | 84 | if (isEmcalTrain) { |
8628b70c | 85 | if (doHistos) |
86 | RequestMemory(hCorr,250*1024); | |
b91d1003 | 87 | } |
8628b70c | 88 | |
b91d1003 | 89 | // Produce MC particles |
8628b70c | 90 | if (isMC && strlen(usedMCParticles)>0) |
91 | { | |
8628b70c | 92 | gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C"); |
93 | AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(usedMCParticles, kFALSE, kFALSE); | |
b91d1003 | 94 | mcPartTask->SelectCollisionCandidates(pSel); |
8628b70c | 95 | } |
7cfa86a3 | 96 | |
97 | // Return one task that represents the jet preparation on LEGO trains | |
98 | return emcalParts; | |
8628b70c | 99 | } |