]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/macros/AddTaskJetResponseMaker.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / macros / AddTaskJetResponseMaker.C
CommitLineData
5193b38c 1// $Id$
2
3AliJetResponseMaker* AddTaskJetResponseMaker(
cfc2ac24 4 const char *ntracks1 = "Tracks",
5 const char *nclusters1 = "CaloClusters",
6 const char *njets1 = "Jets",
7 const char *nrho1 = "Rho",
f304dbe7 8 Double_t jetradius1 = 0.2,
cfc2ac24 9 const char *ntracks2 = "MCParticles",
10 const char *nclusters2 = "",
11 const char *njets2 = "MCJets",
12 const char *nrho2 = "",
f304dbe7 13 Double_t jetradius2 = 0.2,
5193b38c 14 Double_t jetptcut = 1,
624bef5b 15 Double_t jetareacut = 0.557,
7cd832c7 16 Double_t jetBias = 5,
17 Int_t biasType = 0, // 0 = charged, 1 = neutral, 2 = both
cfc2ac24 18 UInt_t matching = AliJetResponseMaker::kGeometrical,
7f76e479 19 Double_t maxDistance1 = 0.25,
20 Double_t maxDistance2 = 0.25,
7cd832c7 21 const char *cutType = "TPC",
4643d2e8 22 Int_t ptHardBin = -999,
507f74bc 23 Double_t minCent = -999,
24 Double_t maxCent = -999,
53dca394 25 const char *taskname = "AliJetResponseMaker",
cfc2ac24 26 Bool_t biggerMatrix = kFALSE,
dead24fd 27 AliJetResponseMaker* address = 0,
28 Double_t nefmincut = -10,
3c9775d9 29 Double_t nefmaxcut = 10,
de3a2387 30 Int_t jetTagging = 0,
31 Double_t maxTrackPt = 100
5193b38c 32)
33{
34 // Get the pointer to the existing analysis manager via the static access method.
35 //==============================================================================
36 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
37 if (!mgr)
38 {
39 ::Error("AddTaskJetResponseMaker", "No analysis manager to connect to.");
40 return NULL;
41 }
42
43 // Check the analysis type using the event handlers connected to the analysis manager.
44 //==============================================================================
45 if (!mgr->GetInputEventHandler())
46 {
47 ::Error("AddTaskJetResponseMaker", "This task requires an input event handler");
48 return NULL;
49 }
50
51 //-------------------------------------------------------
52 // Init the task and do settings
53 //-------------------------------------------------------
54
7cd832c7 55 TString name(Form("%s_%s_%s_Bias%d_BiasType%d_%s",taskname,njets1,njets2,(Int_t)floor(jetBias),biasType,cutType));
507f74bc 56
57 if (minCent != -999 && maxCent != -999)
58 name += Form("_Cent%d_%d", (Int_t)floor(minCent), (Int_t)floor(maxCent));
59
60 if (ptHardBin != -999)
61 name += Form("_PtHard%d", ptHardBin);
dead24fd 62 if (nefmaxcut<1.0)
63 name += Form("_NEF%d", (Int_t)(100*nefmaxcut));
64
53dca394 65 AliJetResponseMaker* jetTask = address;
66 if (jetTask)
67 new (jetTask) AliJetResponseMaker(name);
68 else
69 jetTask = new AliJetResponseMaker(name);
70
7cd832c7 71 AliParticleContainer *trackCont1 = jetTask->AddParticleContainer(ntracks1);
72 AliClusterContainer *clusCont1 = jetTask->AddClusterContainer(nclusters1);
73 AliJetContainer *jetCont1 = jetTask->AddJetContainer(njets1, cutType, jetradius1);
74 jetCont1->SetRhoName(nrho1);
75 jetCont1->SetLeadingHadronType(biasType);
76 jetCont1->SetPtBiasJetTrack(jetBias);
77 jetCont1->SetPtBiasJetClus(jetBias);
78 jetCont1->SetJetPtCut(jetptcut);
79 jetCont1->SetPercAreaCut(jetareacut);
80 jetCont1->SetIsParticleLevel(kFALSE);
81 jetCont1->ConnectParticleContainer(trackCont1);
82 jetCont1->ConnectClusterContainer(clusCont1);
dead24fd 83 jetCont1->SetNEFCut(nefmincut,nefmaxcut);
3c9775d9 84 jetCont1->SetFlavourCut(jetTagging);
de3a2387 85 jetCont1->SetMaxTrackPt(maxTrackPt);
3c9775d9 86
dead24fd 87
7cd832c7 88 AliParticleContainer *trackCont2 = jetTask->AddParticleContainer(ntracks2);
bf9072ca 89 trackCont2->SelectPhysicalPrimaries(kTRUE);
7892ca4d 90 trackCont2->SetParticlePtCut(0);
7cd832c7 91 AliClusterContainer *clusCont2 = jetTask->AddClusterContainer(nclusters2);
92 AliJetContainer *jetCont2 = jetTask->AddJetContainer(njets2, cutType, jetradius2);
93 jetCont2->SetRhoName(nrho2);
94 jetCont2->SetLeadingHadronType(biasType);
95 jetCont2->SetPtBiasJetTrack(jetBias);
96 jetCont2->SetPtBiasJetClus(jetBias);
97 jetCont2->SetJetPtCut(jetptcut);
98 jetCont2->SetPercAreaCut(jetareacut);
99 jetCont2->SetIsParticleLevel(kTRUE);
100 jetCont2->ConnectParticleContainer(trackCont2);
101 jetCont2->ConnectClusterContainer(clusCont2);
3c9775d9 102 jetCont2->SetFlavourCut(jetTagging);
de3a2387 103 jetCont2->SetMaxTrackPt(1000); // disable default 100 GeV/c track cut for particle level jets
3c9775d9 104
dead24fd 105
7f76e479 106 jetTask->SetMatching(matching, maxDistance1, maxDistance2);
4643d2e8 107 jetTask->SetVzRange(-10,10);
ed0243d8 108 jetTask->SetIsPythia(kTRUE);
4643d2e8 109 jetTask->SetPtHardBin(ptHardBin);
507f74bc 110 jetTask->SetCentRange(minCent,maxCent);
cfc2ac24 111
112 if (biggerMatrix)
113 jetTask->SetHistoBins(1000,0,500);
5193b38c 114
115 //-------------------------------------------------------
116 // Final settings, pass to manager and set the containers
117 //-------------------------------------------------------
118
119 mgr->AddTask(jetTask);
120
121 // Create containers for input/output
122 AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer() ;
4643d2e8 123 TString contname(name);
5193b38c 124 contname += "_histos";
125 AliAnalysisDataContainer *coutput1 = mgr->CreateContainer(contname.Data(),
126 TList::Class(),AliAnalysisManager::kOutputContainer,
127 Form("%s", AliAnalysisManager::GetCommonFileName()));
128 mgr->ConnectInput (jetTask, 0, cinput1 );
129 mgr->ConnectOutput (jetTask, 1, coutput1 );
130
131 return jetTask;
132}