]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetPreparation.C
update from Ruediger
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetPreparation.C
CommitLineData
8628b70c 1// $Id$
2
3//#define EMCALTRAIN
4
5void AddTaskJetPreparation(
6 const char* dataType = "ESD",
7 const char* usedTracks = "PicoTracks",
8 const char* usedMCParticles = "MCParticles",
9 const char* usedClusters = "CaloClusters",
10 const char* outClusName = "CaloClustersCorr",
11 const Double_t hadcorr = 2.0,
12 const Double_t Eexcl = 0.00,
13 const Double_t phiMatch = 0.03,
14 const Double_t etaMatch = 0.015,
15 const Double_t minPtEt = 0.15,
16 const UInt_t pSel = 0,
17 const Bool_t doHistos = kFALSE
18)
19{
20 // TODO: Implement compatability for AODs (cluster names e.g.)
21 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22 if (!mgr)
23 {
24 Error("AddTaskJetPreparation","No analysis manager found.");
25 return 0;
26 }
27 Bool_t isMC = (mgr->GetMCtruthEventHandler() != NULL);
28
29 // Set trackcuts according to period. Every period used should be definied here
30 TString period("");
31 TString trackCuts("");
32 TString eper(gSystem->Getenv("ETRAIN_PERIOD"));
33 if (eper.BeginsWith("lhc12g") || eper.BeginsWith("lhc11h") || eper.BeginsWith("lhc12a15a") || eper.BeginsWith("LHC12g") || eper.BeginsWith("LHC12a15a"))
34 period = "LHC11h";
35 else if (eper.BeginsWith("lhc11a"))
36 period = "LHC11a";
37 else
38 {
39 Error("AddTaskJetPreparation","###################################################");
40 Error("AddTaskJetPreparation","Run period in AddTaskJetPreparation.C not recognized! You have to specify it for the used period, if you need jets!");
41 return 0;
42 }
43
44 const char* inputTracks = "HybridTracks";
45 trackCuts = Form("Hybrid_%s", period.Data());
46
47 Bool_t makePicoTracks = kTRUE;
48 if ((eper == "lhc10hs") || (eper == "lhc11hs")) {
49 makePicoTracks = kFALSE;
50 }
51
52 if( makePicoTracks && ((strcmp(dataType,"ESD") == 0) || (strcmp(dataType,"AOD") == 0)) )
53 {
54 if(strcmp(dataType,"ESD") == 0)
55 {
56 // Hybrid tracks maker for ESD
57 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalEsdTpcTrack.C");
58 AliEmcalEsdTpcTrackTask *hybTask = AddTaskEmcalEsdTpcTrack(inputTracks,trackCuts.Data());
59 hybTask->SelectCollisionCandidates(pSel);
60
61 // Track propagator to extend track to the TPC boundaries
62 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalTrackPropagator.C");
63 AliEmcalTrackPropagatorTask *propTask = AddTaskEmcalTrackPropagator(inputTracks);
64 propTask->SelectCollisionCandidates(pSel);
65 }
66 // PicoTracks maker to produce pico tracks
67 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalPicoTrackMaker.C");
68 AliEmcalPicoTrackMaker *pTrackTask = AddTaskEmcalPicoTrackMaker("PicoTracks", inputTracks, period.Data());
69 pTrackTask->SelectCollisionCandidates(pSel);
70 }
71
72 // Make particles used for hadronic correction
73 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalParticleMaker.C");
74 AliEmcalParticleMaker *emcalParts = AddTaskEmcalParticleMaker(usedTracks,usedClusters,"EmcalTracks","EmcalClusters");
75 emcalParts->SelectCollisionCandidates(pSel);
76
77 // Relate tracks and clusters
78 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskEmcalClusTrackMatcher.C");
79 AliEmcalClusTrackMatcherTask *emcalClus = AddTaskEmcalClusTrackMatcher("EmcalTracks","EmcalClusters",0.1);
80 emcalClus->SelectCollisionCandidates(pSel);
81 #ifdef EMCALTRAIN
82 RequestMemory(emcalClus,100*1024);
83 #endif
84 gROOT->LoadMacro("$ALICE_ROOT/PWGJE/EMCALJetTasks/macros/AddTaskHadCorr.C");
85 AliHadCorrTask *hCorr = AddTaskHadCorr("EmcalTracks","EmcalClusters",outClusName,hadcorr,minPtEt,phiMatch,etaMatch,Eexcl,doHistos);
86 hCorr->SelectCollisionCandidates(pSel);
87 #ifdef EMCALTRAIN
88 if (doHistos)
89 RequestMemory(hCorr,250*1024);
90 #endif
91
92 if (isMC && strlen(usedMCParticles)>0)
93 {
94 // Make MC particles
95 gROOT->LoadMacro("$ALICE_ROOT/PWG/EMCAL/macros/AddTaskMCTrackSelector.C");
96 AliEmcalMCTrackSelector *mcPartTask = AddTaskMCTrackSelector(usedMCParticles, kFALSE, kFALSE);
97 mcPartTask->SelectCollisionCandidates(AliVEvent::kAny);
98 }
99}