]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
Add possibility to enable trigger patch QA in the jet preparation
[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",
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}