]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
update from Salvatore, Ruediger for some bug fixes
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
CommitLineData
8628b70c 1// $Id$
2
7cfa86a3 3AliAnalysisTaskSE* 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}