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(Char_t *jr, Char_t *jf, Float_t radius)
\r
8 // Creates a jet finder task, configures it and adds it to the analysis manager.
\r
10 // Get the pointer to the existing analysis manager via the static access method.
\r
11 //==============================================================================
\r
12 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
14 ::Error("AddTaskJets", "No analysis manager to connect to.");
\r
18 // Check the analysis type using the event handlers connected to the analysis manager.
\r
19 //==============================================================================
\r
20 if (!mgr->GetInputEventHandler()) {
\r
21 ::Error("AddTaskJets", "This task requires an input event handler");
\r
25 AliAODHandler *aodh = (AliAODHandler*)mgr->GetOutputEventHandler();
\r
27 ::Error("AddTaskJets", "This task needs an output event handler");
\r
32 // Create the task and configure it.
\r
33 //===========================================================================
\r
34 AliAnalysisTaskJets *jetana;
\r
35 AliJetReader *er = CreateJetReader(jr);
\r
36 // Define jet header and jet finder
\r
37 AliJetFinder *jetFinder = CreateJetFinder(jf,radius);
\r
40 if (er) jetFinder->SetJetReader(er);
\r
44 if(radius>0)cRadius = Form("%02d",(int)(radius*10));
\r
46 jetana = new AliAnalysisTaskJets(Form("JetAnalysis%s%s%s",jr,jf,cRadius));
\r
47 TString type = mgr->GetInputEventHandler()->GetDataType();
\r
48 if (type == "AOD") jetana->SetNonStdBranch(Form("jets%s",jf));
\r
55 AliAnalysisDataContainer *cout_jet = mgr->CreateContainer(Form("jethist%s%s%s",c_jr.Data(),c_jf.Data(),cRadius), TList::Class(),
\r
56 AliAnalysisManager::kOutputContainer, Form("jethist_%s_%s%s.root",c_jr.Data(),c_jf.Data(),cRadius));
\r
57 // Connect jet finder to task.
\r
58 jetana->SetJetFinder(jetFinder);
\r
59 jetana->SetConfigFile("");
\r
60 jetana->SetDebugLevel(0);
\r
61 mgr->AddTask(jetana);
\r
63 // Create ONLY the output containers for the data produced by the task.
\r
64 // Get and connect other common input/output containers via the manager as below
\r
65 //==============================================================================
\r
66 mgr->ConnectInput (jetana, 0, mgr->GetCommonInputContainer());
\r
67 // AOD output slot will be used in a different way in future
\r
68 mgr->ConnectOutput (jetana, 0, mgr->GetCommonOutputContainer());
\r
69 mgr->ConnectOutput (jetana, 1, cout_jet);
\r
74 AliJetFinder *CreateJetFinder(Char_t *jf,Float_t radius){
\r
75 AliJetFinder *jetFinder = 0;
\r
79 AliCdfJetHeader *jh = new AliCdfJetHeader();
\r
82 jetFinder = new AliCdfJetFinder();
\r
83 jetFinder->SetOutputFile("jets.root");
\r
84 if (jh) jetFinder->SetJetHeader(jh);
\r
88 AliDAJetHeader *jh=new AliDAJetHeader();
\r
89 jh->SetComment("DA jet code with default parameters");
\r
90 jh->SelectJets(kTRUE);
\r
93 jetFinder = new AliDAJetFinder();
\r
94 if (jh) jetFinder->SetJetHeader(jh);
\r
99 AliFastJetHeaderV1 *jh = new AliFastJetHeaderV1();
\r
100 jh->SetRparam(0.4); // setup parameters
\r
101 if(radius>0)jh->SetRparam(radius);
\r
102 jh->SetAlgorithm(2); // antikt from fastjet/JetDefinition.hh
\r
103 // tmp CKB for checking with leticia
\r
104 jh->SetRparam(0.2); // setup parameters
\r
106 jh->SetRapRange(-0.9,0.9);
\r
107 jh->SetGhostArea(0.01);
\r
108 jh->SetGhostEtaMax(7.);
\r
110 jetFinder = new AliFastJetFinder();
\r
111 if (jh) jetFinder->SetJetHeader(jh);
\r
115 AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
\r
116 jh->SetComment("UA1 jet code with default parameters");
\r
118 jh->SetRadius(0.4);
\r
119 if(radius>0)jh->SetRadius(radius);
\r
122 jh->SetNAcceptJets(6);
\r
123 jh->SetLegoNbinPhi(432);
\r
124 jh->SetLegoNbinEta(274);
\r
125 jh->SetLegoEtaMin(-2);
\r
126 jh->SetLegoEtaMax(+2);
\r
127 jh->SetMinJetEt(10.);
\r
128 jh->SetJetEtaMax(1.5);
\r
129 jh->SetJetEtaMin(-1.5);
\r
131 jetFinder = new AliUA1JetFinderV1();
\r
132 if (jh) jetFinder->SetJetHeader(jh);
\r
136 AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
\r
137 jh->SetComment("UA1 jet code with default MC parameters");
\r
139 jh->SetRadius(1.0);
\r
140 if(radius>0)jh->SetRadius(radius);
\r
142 jh->SetNAcceptJets(6);
\r
143 jh->SetLegoNbinPhi(432);
\r
144 jh->SetLegoNbinEta(274);
\r
145 jh->SetLegoEtaMin(-2);
\r
146 jh->SetLegoEtaMax(+2);
\r
147 jh->SetMinJetEt(10.);
\r
148 jh->SetJetEtaMax(1.5);
\r
149 jh->SetJetEtaMin(-1.5);
\r
150 jetFinder = new AliUA1JetFinderV1();
\r
151 if (jh) jetFinder->SetJetHeader(jh);
\r
154 Printf("\n >>>>>>> AddTaskJets Error Wrong jet finder selected\n");
\r
162 AliJetReader *CreateJetReader(Char_t *jr){
\r
163 AliJetReader *er = 0;
\r
167 AliJetKineReaderHeader *jrh = new AliJetKineReaderHeader();
\r
168 jrh->SetComment("MC full Kinematics");
\r
169 jrh->SetFastSimTPC(kFALSE);
\r
170 jrh->SetFastSimEMCAL(kFALSE);
\r
172 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0 .9
\r
173 // Define reader and set its header
\r
174 er = new AliJetKineReader();
\r
175 er->SetReaderHeader(jrh);
\r
178 AliJetKineReaderHeader *jrh = new AliJetKineReaderHeader();
\r
179 jrh->SetComment("MC full Kinematics spearate config charged only");
\r
180 jrh->SetFastSimTPC(kFALSE);
\r
181 jrh->SetFastSimEMCAL(kFALSE);
\r
182 jrh->SetChargedOnly(kTRUE);
\r
184 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0 .9
\r
185 // Define reader and set its header
\r
186 er = new AliJetKineReader();
\r
187 er->SetReaderHeader(jrh);
\r
190 AliJetESDReaderHeader *jrh = new AliJetESDReaderHeader();
\r
191 jrh->SetComment("Testing");
\r
192 jrh->SetFirstEvent(0);
\r
193 jrh->SetLastEvent(1000);
\r
195 jrh->SetReadSignalOnly(kFALSE);
\r
196 // Define reader and set its header
\r
197 er = new AliJetESDReader();
\r
198 er->SetReaderHeader(jrh);
\r
202 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
203 jrh->SetComment("AOD Reader");
\r
205 jrh->SetTestFilterMask(1<<0);
\r
206 // Define reader and set its header
\r
207 er = new AliJetAODReader();
\r
208 er->SetReaderHeader(jrh);
\r
211 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
212 jrh->SetComment("AOD MC Reader");
\r
214 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0.9
\r
215 jrh->SetReadAODMC(1);// 1 all primary MC , 2 all primary charged
\r
216 // Define reader and set its header
\r
217 er = new AliJetAODReader();
\r
218 er->SetReaderHeader(jrh);
\r
221 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
222 jrh->SetComment("AOD MC Reader");
\r
224 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0.9
\r
225 jrh->SetReadAODMC(2);// 1 all primary MC , 2 all primary charged
\r
226 // Define reader and set its header
\r
227 er = new AliJetAODReader();
\r
228 er->SetReaderHeader(jrh);
\r
232 ::Error("AddTaskJets", "Wrong jet reader selected\n");
\r