]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
1 // $Id$
2
3 AliAnalysisTaskSE* AddTaskJetPreparation(
4   const char*    periodstr          = "LHC11h",
5   const char*    pTracksName        = "PicoTracks",
6   const char*    usedMCParticles    = "MCParticlesSelected",
7   const char*    usedClusters       = "CaloClusters",
8   const char*    outClusName        = "CaloClustersCorr",
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   useOldBitConfig          = kFALSE,
24   Bool_t   doTriggerQA              = kFALSE,
25   Int_t    nCentBins                = 4
26 )
27 {
28   // Add task macros for all jet related helper tasks.
29
30   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
31   if (!mgr)
32   {
33     Error("AddTaskJetPreparation","No analysis manager found.");
34     return NULL;
35   }
36
37   AliVEventHandler *evhand = mgr->GetInputEventHandler();
38   if (!evhand) {
39     Error("AddTaskJetPreparation", "This task requires an input event handler");
40     return NULL;
41   }
42
43   // Set trackcuts according to period. Every period used should be defined here
44   TString period(periodstr);
45   TString clusterColName(usedClusters);
46   TString particleColName(usedMCParticles);
47   TString picoTracksName(pTracksName);
48
49   TString dType("ESD");
50   if (!evhand->InheritsFrom("AliESDInputHandler")) 
51     dType = "AOD";
52   if ((dType == "AOD") && (clusterColName == "CaloClusters"))
53     clusterColName = "caloClusters";
54   if ((dType == "ESD") && (clusterColName == "caloClusters"))
55     clusterColName = "CaloClusters";
56
57   //----------------------- Trigger Maker -----------------------------------------------------
58   if (makeTrigger) {
59     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTriggerMaker.C");
60     /*
61      * Parameters (with default values):
62      *   triggersOutName      (const char *)       = "EmcalTriggers",
63      *   triggerSetupOutName  (const char *)       = "EmcalTriggerSetup",
64      *   cellsName            (const char *)       = 0,
65      *   triggersName         (const char *)       = 0,
66      *   taskName             (const char *)       = "AliEmcalTriggerMaker",
67      *   jetLowA              (int)                = 0,
68      *   jetLowB              (int)                = 0,
69      *   jetLowC              (int)                = 0,
70      *   jetHighA             (int)                = 0,
71      *   jetHighB             (int)                = 0,
72      *   jetHighC             (int)                = 0,
73      *   doQA                 (bool)               = kFALSE
74      */
75     AliEmcalTriggerMaker *emcalTriggers = AddTaskEmcalTriggerMaker("EmcalTriggers", "EmcalTriggerSetup", 0, 0, "AliEmcalTriggerMaker", 0, 0, 0, 0, 0, 0, useOldBitConfig, doTriggerQA);
76     emcalTriggers->SelectCollisionCandidates(pSel);
77   }
78
79   //----------------------- Track Matching tasks -----------------------------------------------------
80   gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMatchingChain.C");
81   AliEmcalClusTrackMatcherTask *emcalClus =  AddTaskMatchingChain(periodstr,pSel,
82                                                                   clusterColName,
83                                                                   trackeff,doAODTrackProp,
84                                                                   0.1,modifyMatchObjs,doHistos,nCentBins);
85   
86   //hard coded names of AliEmcalParticle strings to coincide with AddTaskClusTrackMatching
87   TString inputTracks = "AODFilterTracks";
88   if (dType == "ESD") inputTracks = "ESDFilterTracks";
89   TString emctracks = Form("EmcalTracks_%s",inputTracks.Data());
90   TString emcclusters = Form("EmcalClusters_%s",clusterColName.Data());
91   Printf("1-- inputTracks: %s, emcclusters: %s, emctracks: %s",inputTracks.Data(),emcclusters.Data(),emctracks.Data());
92   if(makePicoTracks) {
93     //----------------------- Produce PicoTracks -----------------------------------------------------
94     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
95     AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker(picoTracksName, inputTracks);
96     //    pTrackTask->SetTrackEfficiency(trackeff); //now done in Esd/AodFilter
97     pTrackTask->SelectCollisionCandidates(pSel);
98   }
99
100   //----------------------- Hadronic Correction -----------------------------------------------------
101   gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskHadCorr.C"); 
102   AliHadCorrTask *hCorr = AddTaskHadCorr(emctracks,emcclusters,outClusName,hadcorr,
103                                          minPtEt,phiMatch,etaMatch,Eexcl,trackclus,doHistos);
104   hCorr->SelectCollisionCandidates(pSel);
105   hCorr->SetNCentBins(nCentBins);
106   if (isEmcalTrain) {
107     if (doHistos)
108       RequestMemory(hCorr,500*1024);
109   }
110
111   // Produce MC particles
112   if(particleColName != "") {
113     gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
114     AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(particleColName, kFALSE, kFALSE);
115     mcPartTask->SelectCollisionCandidates(pSel);
116   }
117
118   // Return one task that represents the jet preparation on LEGO trains
119   return hCorr;
120 }