]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
update from Salvatore, Ruediger for some bug fixes
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
... / ...
CommitLineData
1// $Id$
2
3AliAnalysisTaskSE* AddTaskJetPreparation(
4 const char* dataType = "ESD",
5 const char* periodstr = "LHC11h",
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,
15 const UInt_t pSel = AliVEvent::kAny,
16 const Bool_t trackclus = kTRUE,
17 const Bool_t doHistos = kFALSE,
18 const Bool_t makePicoTracks = kTRUE,
19 const Bool_t isEmcalTrain = kFALSE
20)
21{
22 // Add task macros for all jet related helper tasks.
23
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
33 TString period(periodstr);
34 TString clusterColName(usedClusters);
35 if ( (period != "LHC11h") && (period!="LHC11a") )
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!");
39 Error("AddTaskJetPreparation","###################################################");
40 return 0;
41 }
42
43 if ((strcmp(dataType,"AOD") == 0) && (clusterColName == "CaloClusters"))
44 clusterColName = "caloClusters";
45
46 if (makePicoTracks && ((strcmp(dataType,"ESD") == 0) || (strcmp(dataType,"AOD") == 0)) )
47 {
48 TString inputTracks = "tracks";
49
50 if (strcmp(dataType,"ESD") == 0)
51 {
52 inputTracks = "HybridTracks";
53 TString trackCuts(Form("Hybrid_%s", period.Data()));
54 // Hybrid tracks maker for ESD
55 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C");
56 AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks.Data(),trackCuts.Data());
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");
61 AliEmcalTrackPropagatorTask *propTask = AddTaskEmcalTrackPropagator(inputTracks.Data());
62 propTask->SelectCollisionCandidates(pSel);
63 }
64 // Produce PicoTracks
65 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
66 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker("PicoTracks", inputTracks.Data(), period.Data());
67 pTrackTask->SelectCollisionCandidates(pSel);
68 }
69
70 // Produce particles used for hadronic correction
71 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C");
72 AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(usedTracks,clusterColName.Data(),"EmcalTracks","EmcalClusters");
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);
79 if (isEmcalTrain)
80 RequestMemory(emcalClus,100*1024);
81 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskHadCorr.C");
82 AliHadCorrTask *hCorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",outClusName,hadcorr,minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
83 hCorr->SelectCollisionCandidates(pSel);
84 if (isEmcalTrain) {
85 if (doHistos)
86 RequestMemory(hCorr,250*1024);
87 }
88
89 // Produce MC particles
90 if (isMC && strlen(usedMCParticles)>0)
91 {
92 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
93 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(usedMCParticles, kFALSE, kFALSE);
94 mcPartTask->SelectCollisionCandidates(pSel);
95 }
96
97 // Return one task that represents the jet preparation on LEGO trains
98 return emcalParts;
99}