]>
Commit | Line | Data |
---|---|---|
5193b38c | 1 | // $Id$ |
2 | ||
3 | AliJetResponseMaker* 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 | } |