1 AliJetReader *CreateJetReader(Char_t *jr); // Common config
\r
2 AliJetFinder *CreateJetFinder(Char_t *jf,Float_t radius = -1);
\r
4 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf,Float_t radius = -1); // for the new AF
\r
6 AliAnalysisTaskJets *AddTaskJets(){
\r
7 // fills the standard "jets" branch in the AOD
\r
8 // need the ESDFilter to run before, to access the AODtracks
\r
9 // Tracks selected by the first Filter (1<<0)
\r
10 // needs to be adapted for different cuts
\r
12 // UA1 as standard chosen, since it is the most robust and simple JF
\r
13 // R = 0.4 suffficient to provide accurate jet axis for correlation studies
\r
14 // energy resolution suffers a little
\r
15 // Acceptance of jets not limited by the Jet Finder but should be done
\r
16 // by user to abs(eta) < 0.5
\r
18 return AddTaskJets("AOD","UA1",0.4);
\r
24 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf, Float_t radius)
\r
26 // Creates a jet finder task, configures it and adds it to the analysis manager.
\r
28 // Get the pointer to the existing analysis manager via the static access method.
\r
29 //==============================================================================
\r
30 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
32 ::Error("AddTaskJets", "No analysis manager to connect to.");
\r
36 // Check the analysis type using the event handlers connected to the analysis manager.
\r
37 //==============================================================================
\r
38 if (!mgr->GetInputEventHandler()) {
\r
39 ::Error("AddTaskJets", "This task requires an input event handler");
\r
43 AliAODHandler *aodh = (AliAODHandler*)mgr->GetOutputEventHandler();
\r
45 ::Error("AddTaskJets", "This task needs an output event handler");
\r
50 // Create the task and configure it.
\r
51 //===========================================================================
\r
52 AliAnalysisTaskJets *jetana;
\r
53 AliJetReader *er = CreateJetReader(jr);
\r
54 // Define jet header and jet finder
\r
55 AliJetFinder *jetFinder = CreateJetFinder(jf,radius);
\r
58 if (er) jetFinder->SetJetReader(er);
\r
62 if(radius>0)cRadius = Form("%02d",(int)(radius*10));
\r
64 jetana = new AliAnalysisTaskJets(Form("JetAnalysis%s%s%s",jr,jf,cRadius));
\r
65 TString type = mgr->GetInputEventHandler()->GetDataType();
\r
66 if (type == "AOD") jetana->SetNonStdBranch(Form("jets%s",jf));
\r
73 AliAnalysisDataContainer *cout_jet = mgr->CreateContainer(Form("jethist%s%s%s",c_jr.Data(),c_jf.Data(),cRadius), TList::Class(),
\r
74 AliAnalysisManager::kOutputContainer, Form("jethist_%s_%s%s.root",c_jr.Data(),c_jf.Data(),cRadius));
\r
75 // Connect jet finder to task.
\r
76 jetana->SetJetFinder(jetFinder);
\r
77 jetana->SetConfigFile("");
\r
78 jetana->SetDebugLevel(0);
\r
79 mgr->AddTask(jetana);
\r
81 // Create ONLY the output containers for the data produced by the task.
\r
82 // Get and connect other common input/output containers via the manager as below
\r
83 //==============================================================================
\r
84 mgr->ConnectInput (jetana, 0, mgr->GetCommonInputContainer());
\r
85 // AOD output slot will be used in a different way in future
\r
86 mgr->ConnectOutput (jetana, 0, mgr->GetCommonOutputContainer());
\r
87 mgr->ConnectOutput (jetana, 1, cout_jet);
\r
92 AliJetFinder *CreateJetFinder(Char_t *jf,Float_t radius){
\r
93 AliJetFinder *jetFinder = 0;
\r
97 AliCdfJetHeader *jh = new AliCdfJetHeader();
\r
100 jetFinder = new AliCdfJetFinder();
\r
101 jetFinder->SetOutputFile("jets.root");
\r
102 if (jh) jetFinder->SetJetHeader(jh);
\r
106 AliDAJetHeader *jh=new AliDAJetHeader();
\r
107 jh->SetComment("DA jet code with default parameters");
\r
108 jh->SelectJets(kTRUE);
\r
111 jetFinder = new AliDAJetFinder();
\r
112 if (jh) jetFinder->SetJetHeader(jh);
\r
117 AliFastJetHeaderV1 *jh = new AliFastJetHeaderV1();
\r
118 jh->SetRparam(0.4); // setup parameters
\r
119 if(radius>0)jh->SetRparam(radius);
\r
120 jh->SetAlgorithm(2); // antikt from fastjet/JetDefinition.hh
\r
121 jetFinder = new AliFastJetFinder();
\r
122 if (jh) jetFinder->SetJetHeader(jh);
\r
126 AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
\r
127 jh->SetComment("UA1 jet code with default parameters");
\r
129 jh->SetRadius(0.4);
\r
130 if(radius>0)jh->SetRadius(radius);
\r
133 jh->SetNAcceptJets(6);
\r
134 jh->SetLegoNbinPhi(432);
\r
135 jh->SetLegoNbinEta(274);
\r
136 jh->SetLegoEtaMin(-2);
\r
137 jh->SetLegoEtaMax(+2);
\r
138 jh->SetMinJetEt(5.);
\r
139 jh->SetJetEtaMax(1.5);
\r
140 jh->SetJetEtaMin(-1.5);
\r
142 jetFinder = new AliUA1JetFinderV1();
\r
143 if (jh) jetFinder->SetJetHeader(jh);
\r
147 AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
\r
148 jh->SetComment("UA1 jet code with default MC parameters");
\r
150 jh->SetRadius(1.0);
\r
151 if(radius>0)jh->SetRadius(radius);
\r
153 jh->SetNAcceptJets(6);
\r
154 jh->SetLegoNbinPhi(432);
\r
155 jh->SetLegoNbinEta(274);
\r
156 jh->SetLegoEtaMin(-2);
\r
157 jh->SetLegoEtaMax(+2);
\r
158 jh->SetMinJetEt(5.);
\r
159 jh->SetJetEtaMax(1.5);
\r
160 jh->SetJetEtaMin(-1.5);
\r
161 jetFinder = new AliUA1JetFinderV1();
\r
162 if (jh) jetFinder->SetJetHeader(jh);
\r
165 Printf("\n >>>>>>> AddTaskJets Error Wrong jet finder selected\n");
\r
173 AliJetReader *CreateJetReader(Char_t *jr){
\r
174 AliJetReader *er = 0;
\r
178 AliJetKineReaderHeader *jrh = new AliJetKineReaderHeader();
\r
179 jrh->SetComment("MC full Kinematics");
\r
180 jrh->SetFastSimTPC(kFALSE);
\r
181 jrh->SetFastSimEMCAL(kFALSE);
\r
183 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0 .9
\r
184 // Define reader and set its header
\r
185 er = new AliJetKineReader();
\r
186 er->SetReaderHeader(jrh);
\r
189 AliJetKineReaderHeader *jrh = new AliJetKineReaderHeader();
\r
190 jrh->SetComment("MC full Kinematics spearate config charged only");
\r
191 jrh->SetFastSimTPC(kFALSE);
\r
192 jrh->SetFastSimEMCAL(kFALSE);
\r
193 jrh->SetChargedOnly(kTRUE);
\r
195 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0 .9
\r
196 // Define reader and set its header
\r
197 er = new AliJetKineReader();
\r
198 er->SetReaderHeader(jrh);
\r
201 AliJetESDReaderHeader *jrh = new AliJetESDReaderHeader();
\r
202 jrh->SetComment("Testing");
\r
203 jrh->SetFirstEvent(0);
\r
204 jrh->SetLastEvent(1000);
\r
206 jrh->SetReadSignalOnly(kFALSE);
\r
207 // Define reader and set its header
\r
208 er = new AliJetESDReader();
\r
209 er->SetReaderHeader(jrh);
\r
213 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
214 jrh->SetComment("AOD Reader");
\r
216 jrh->SetTestFilterMask(1<<0);
\r
217 // Define reader and set its header
\r
218 er = new AliJetAODReader();
\r
219 er->SetReaderHeader(jrh);
\r
222 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
223 jrh->SetComment("AOD MC Reader");
\r
225 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0.9
\r
226 jrh->SetReadAODMC(1);// 1 all primary MC , 2 all primary charged
\r
227 // Define reader and set its header
\r
228 er = new AliJetAODReader();
\r
229 er->SetReaderHeader(jrh);
\r
232 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
233 jrh->SetComment("AOD MC Reader");
\r
235 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0.9
\r
236 jrh->SetReadAODMC(2);// 1 all primary MC , 2 all primary charged
\r
237 // Define reader and set its header
\r
238 er = new AliJetAODReader();
\r
239 er->SetReaderHeader(jrh);
\r
243 ::Error("AddTaskJets", "Wrong jet reader selected\n");
\r