]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
CommitLineData
8628b70c 1// $Id$
2
7cfa86a3 3AliAnalysisTaskSE* 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",
9 const Double_t hadcorr = 2.0,
10 const Double_t Eexcl = 0.00,
11 const Double_t phiMatch = 0.03,
12 const Double_t etaMatch = 0.015,
13 const Double_t minPtEt = 0.15,
135056c3 14 const UInt_t pSel = AliVEvent::kAny,
9ccb7f94 15 const Bool_t trackclus = kTRUE,
b91d1003 16 const Bool_t doHistos = kFALSE,
17 const Bool_t makePicoTracks = kTRUE,
9f1d9336 18 const Bool_t makeTrigger = kTRUE,
6f44dd0e 19 const Bool_t isEmcalTrain = kFALSE,
a29bc208 20 const Double_t trackeff = 1.0,
024d21fa 21 const Bool_t doAODTrackProp = kTRUE,
32928fb3 22 const Bool_t modifyMatchObjs = kTRUE
8628b70c 23)
24{
b91d1003 25 // Add task macros for all jet related helper tasks.
26
8628b70c 27 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
28 if (!mgr)
29 {
30 Error("AddTaskJetPreparation","No analysis manager found.");
5fc087e1 31 return NULL;
8628b70c 32 }
8628b70c 33
33a8056d 34 AliVEventHandler *evhand = mgr->GetInputEventHandler();
35 if (!evhand) {
36 Error("AddTaskJetPreparation", "This task requires an input event handler");
37 return NULL;
38 }
39
5fc087e1 40 // Set trackcuts according to period. Every period used should be defined here
b91d1003 41 TString period(periodstr);
135056c3 42 TString clusterColName(usedClusters);
14aa1ebc 43 TString particleColName(usedMCParticles);
5fc087e1 44 TString picoTracksName(pTracksName);
7030f36f 45
33a8056d 46 TString dType("ESD");
47 if (!evhand->InheritsFrom("AliESDInputHandler"))
48 dType = "AOD";
14aa1ebc 49 if ((dType == "AOD") && (clusterColName == "CaloClusters"))
135056c3 50 clusterColName = "caloClusters";
9f1d9336 51 if ((dType == "ESD") && (clusterColName == "caloClusters"))
52 clusterColName = "CaloClusters";
135056c3 53
5f2a3bf7 54 if (0) {
55 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
56 AliEmcalTrackPropagatorTask *proptask = AddTaskEmcalTrackPropagator();
57 proptask->SelectCollisionCandidates(pSel);
58 }
59
5fc087e1 60 //----------------------- Trigger Maker -----------------------------------------------------
9f1d9336 61 if (makeTrigger) {
62 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
63 AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers");
64 emcalTriggers->SelectCollisionCandidates(pSel);
65 }
66
5fc087e1 67 //----------------------- Track Matching tasks -----------------------------------------------------
de415b0d 68 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
69 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskMatchingChain(periodstr,pSel,
70 clusterColName,
71 trackeff,doAODTrackProp,
72 0.1,modifyMatchObjs,doHistos);
73
5fc087e1 74 //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
75 TString inputTracks = "AODFilterTracks";
76 if (dType == "ESD") inputTracks = "ESDFilterTracks";
77 TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
78 TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
79 Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
80 if(makePicoTracks) {
81 //----------------------- Produce PicoTracks -----------------------------------------------------
82 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
83 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
de415b0d 84 // pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter
5fc087e1 85 pTrackTask->SelectCollisionCandidates(pSel);
86 }
9f1d9336 87
5fc087e1 88 //----------------------- Hadronic Correction -----------------------------------------------------
82915c95 89 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C");
c81aaed1 90 AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr,
33a8056d 91 minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
8628b70c 92 hCorr->SelectCollisionCandidates(pSel);
b91d1003 93 if (isEmcalTrain) {
8628b70c 94 if (doHistos)
05ef0f66 95 RequestMemory(hCorr,500*1024);
b91d1003 96 }
8628b70c 97
b91d1003 98 // Produce MC particles
5f2a3bf7 99 if(particleColName != "") {
8628b70c 100 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
c81aaed1 101 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE);
b91d1003 102 mcPartTask->SelectCollisionCandidates(pSel);
8628b70c 103 }
7cfa86a3 104
105 // Return one task that represents the jet preparation on LEGO trains
5fc087e1 106 return hCorr;
8628b70c 107}