1 AliJetReader *CreateJetReader(Char_t *jr); // Common config
\r
2 AliJetFinder *CreateJetFinder(Char_t *jf);
\r
4 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf); // for the new AF
\r
5 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf,AliAnalysisManager* mgr,AliAnalysisDataContainer *cinput); // for the old AF
\r
7 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf)
\r
9 // Creates a jet finder task, configures it and adds it to the analysis manager.
\r
11 // Get the pointer to the existing analysis manager via the static access method.
\r
12 //==============================================================================
\r
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
\r
15 ::Error("AddTaskJets", "No analysis manager to connect to.");
\r
19 // Check the analysis type using the event handlers connected to the analysis manager.
\r
20 //==============================================================================
\r
21 if (!mgr->GetInputEventHandler()) {
\r
22 ::Error("AddTaskJets", "This task requires an input event handler");
\r
26 // Create the task and configure it.
\r
27 //===========================================================================
\r
28 AliAnalysisTaskJets *jetana;
\r
29 AliJetReader *er = CreateJetReader(jr);
\r
30 // Define jet header and jet finder
\r
31 AliJetFinder *jetFinder = CreateJetFinder(jf);
\r
34 if (er) jetFinder->SetJetReader(er);
\r
37 jetana = new AliAnalysisTaskJets(Form("JetAnalysis%s%s",jr,jf));
\r
38 AliAnalysisDataContainer *cout_jet = mgr->CreateContainer(Form("jethist%s%s",jr,jf), TList::Class(),
\r
39 AliAnalysisManager::kOutputContainer, Form("jethist%s_%s.root",jr,jf));
\r
40 // Connect jet finder to task.
\r
41 jetana->SetJetFinder(jetFinder);
\r
42 jetana->SetConfigFile("");
\r
43 jetana->SetDebugLevel(10);
\r
44 mgr->AddTask(jetana);
\r
46 // Create ONLY the output containers for the data produced by the task.
\r
47 // Get and connect other common input/output containers via the manager as below
\r
48 //==============================================================================
\r
49 mgr->ConnectInput (jetana, 0, mgr->GetCommonInputContainer());
\r
50 // AOD output slot will be used in a different way in future
\r
51 mgr->ConnectOutput (jetana, 0, mgr->GetCommonOutputContainer());
\r
52 mgr->ConnectOutput (jetana, 1, cout_jet);
\r
57 AliAnalysisTaskJets *AddTaskJets(Char_t *jr, Char_t *jf,AliAnalysisManager* mgr,AliAnalysisDataContainer *cinput)
\r
59 // This is only for running on PROOF with the old root version 5-22-00
\r
60 // and the older version of the AF
\r
62 // Creates a jet fider task, configures it and adds it to the analysis manager.
\r
63 // Get the pointer to the existing analysis manager via the static access method.
\r
64 //==============================================================================
\r
67 ::Error("AddTaskJets", "No analysis manager to connect to.");
\r
71 // Check the analysis type using the event handlers connected to the analysis manager.
\r
72 //==============================================================================
\r
73 if (!mgr->GetInputEventHandler()) {
\r
74 ::Error("AddTaskJets", "This task requires an input event handler");
\r
78 // Create the task and configure it.
\r
79 //===========================================================================
\r
80 AliAnalysisTaskJets *jetana;
\r
81 AliJetReader *er = CreateJetReader(jr);
\r
83 // Define jet header and jet finder
\r
84 AliJetFinder *jetFinder = CreateJetFinder(jf);
\r
87 if (er) jetFinder->SetJetReader(er);
\r
90 jetana = new AliAnalysisTaskJets(Form("JetAnalysis%s%s",jr,jf));
\r
91 AliAnalysisDataContainer *cout_jet = mgr->CreateContainer(Form("jethist%s%s",jr,jf), TList::Class(),AliAnalysisManager::kOutputContainer, Form("jethist%s_%s.root",jr,jf));
\r
92 // Connect jet finder to task.
\r
93 jetana->SetJetFinder(jetFinder);
\r
94 jetana->SetConfigFile("");
\r
95 jetana->SetDebugLevel(10);
\r
96 mgr->AddTask(jetana);
\r
98 // Create the output containers for the data produced by the task.
\r
99 //==============================================================================
\r
100 // AOD output slot will be used in a different way in future
\r
101 // we need to have different names for each usage
\r
102 c_aodjet = mgr->CreateContainer(Form("cAODjet%s%s",jr,jf), TTree::Class(),
\r
103 AliAnalysisManager::kExchangeContainer);
\r
104 // Connect to data containers
\r
105 mgr->ConnectInput (jetana,0, cinput );
\r
106 mgr->ConnectOutput (jetana,0, c_aodjet );
\r
107 mgr->ConnectOutput (jetana, 1, cout_jet);
\r
112 AliJetFinder *CreateJetFinder(Char_t *jf){
\r
116 AliCdfJetHeader *jh = new AliCdfJetHeader();
\r
117 jh->SetRadius(0.7);
\r
119 jetFinder = new AliCdfJetFinder();
\r
120 jetFinder->SetOutputFile("jets.root");
\r
121 if (jh) jetFinder->SetJetHeader(jh);
\r
125 AliDAJetHeader *jh=new AliDAJetHeader();
\r
126 jh->SetComment("DA jet code with default parameters");
\r
127 jh->SelectJets(kTRUE);
\r
130 jetFinder = new AliDAJetFinder();
\r
131 if (jh) jetFinder->SetJetHeader(jh);
\r
136 AliFastJetHeader *jh = new AliFastJetHeader();
\r
137 jh->SetRparam(0.7); // setup parameters
\r
139 jetFinder = new AliFastJetFinder();
\r
140 jetFinder->SetOutputFile("jets.root");
\r
141 if (jh) jetFinder->SetJetHeader(jh);
\r
145 AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
\r
146 jh->SetComment("UA1 jet code with default parameters");
\r
148 jh->SetRadius(1.0);
\r
150 jh->SetLegoNbinPhi(432);
\r
151 jh->SetLegoNbinEta(274);
\r
152 jh->SetLegoEtaMin(-2);
\r
153 jh->SetLegoEtaMax(+2);
\r
154 jh->SetJetEtaMax(0.5);
\r
155 jh->SetJetEtaMin(-0.5);
\r
156 jh->SetMinJetEt(10.);
\r
158 jetFinder = new AliUA1JetFinderV1();
\r
159 if (jh) jetFinder->SetJetHeader(jh);
\r
163 ::Error("AddTaskJets", "Wrong jet finder selected\n");
\r
171 AliJetReader *CreateJetReader(Char_t *jr){
\r
172 AliJetReader *er = 0;
\r
176 AliJetKineReaderHeader *jrh = new AliJetKineReaderHeader();
\r
177 jrh->SetComment("MC full Kinematics");
\r
178 jrh->SetFastSimTPC(kFALSE);
\r
179 jrh->SetFastSimEMCAL(kFALSE);
\r
181 jrh->SetFiducialEta(-2.1,2.1); // to take all MC particles default is 0 .9
\r
182 // Define reader and set its header
\r
183 er = new AliJetKineReader();
\r
184 er->SetReaderHeader(jrh);
\r
188 AliJetESDReaderHeader *jrh = new AliJetESDReaderHeader();
\r
189 jrh->SetComment("Testing");
\r
190 jrh->SetFirstEvent(0);
\r
191 jrh->SetLastEvent(1000);
\r
193 jrh->SetReadSignalOnly(kFALSE);
\r
194 // Define reader and set its header
\r
195 er = new AliJetESDReader();
\r
196 er->SetReaderHeader(jrh);
\r
200 AliJetAODReaderHeader *jrh = new AliJetAODReaderHeader();
\r
201 jrh->SetComment("AOD Reader");
\r
203 jrh->SetTestFilterMask(1<<0);
\r
204 // Define reader and set its header
\r
205 er = new AliJetAODReader();
\r
206 er->SetReaderHeader(jrh);
\r
210 ::Error("AddTaskJets", "Wrong jet reader selected\n");
\r