13 #include <TStopwatch.h>
14 #include <TObjArray.h>
15 #include <TObjString.h>
18 #include <AliRunLoader.h>
19 #include <AliHeader.h>
20 #include <AliGenPythiaEventHeader.h>
21 #include <AliTkConeJetEvent.h>
22 #include <AliTkConeJetFinderV2.h>
23 #include <AliJetParticle.h>
24 #include <AliJetParticlesReader.h>
25 #include <AliJetParticlesReaderKine.h>
26 #include <AliJetParticlesReaderESD.h>
27 #include <AliJetParticlesReaderHLT.h>
28 #include <AliJetEventParticles.h>
32 kITSin=0x0001,kITSout=0x0002,kITSrefit=0x0004,kITSpid=0x0008,
33 kTPCin=0x0010,kTPCout=0x0020,kTPCrefit=0x0040,kTPCpid=0x0080,
34 kTRDin=0x0100,kTRDout=0x0200,kTRDrefit=0x0400,kTRDpid=0x0800,
35 kTOFin=0x1000,kTOFout=0x2000,kTOFrefit=0x4000,kTOFpid=0x8000,
36 kPHOSpid=0x10000, kRICHpid=0x20000,
42 void testJets(Char_t *input,Int_t esd=0,Float_t ptcut=2.0,Float_t radius=0.3)
45 TObjArray *dirs=new TObjArray(10);
46 dirs->Add(new TObjString(input));
48 AliJetParticlesReader *reader=0;
51 reader=new AliJetParticlesReaderKine(dirs);
52 //((AliJetParticlesReaderKine*)reader)->SetUseTracks(kTRUE);
53 ((AliJetParticlesReaderKine*)reader)->SetCharged(kTRUE);
54 ((AliJetParticlesReaderKine*)reader)->SetEM(kFALSE);
55 ((AliJetParticlesReaderKine*)reader)->SetNeutral(kFALSE);
58 reader=new AliJetParticlesReaderESD(0,dirs);
59 ((AliJetParticlesReaderESD*)reader)->SetCompareFlag(0x0030);
62 reader=new AliJetParticlesReaderHLT(kTRUE,dirs);
65 reader=new AliJetParticlesReaderHLT(kFALSE,dirs);
68 reader=new AliJetParticlesReaderKine(dirs);
69 //((AliJetParticlesReaderKine*)reader)->SetUseTracks(kTRUE);
70 ((AliJetParticlesReaderKine*)reader)->SetCharged(kTRUE);
71 ((AliJetParticlesReaderKine*)reader)->SetEM(kTRUE);
72 ((AliJetParticlesReaderKine*)reader)->SetNeutral(kTRUE);
75 reader=new AliJetParticlesReaderKine(dirs);
76 //((AliJetParticlesReaderKine*)reader)->SetUseTracks(kTRUE);
77 ((AliJetParticlesReaderKine*)reader)->SetCharged(kTRUE);
78 ((AliJetParticlesReaderKine*)reader)->SetEM(kTRUE);
79 ((AliJetParticlesReaderKine*)reader)->SetNeutral(kFALSE);
82 cout << "Parameter settings: " << endl;
83 cout << "0 == Kine (ch)" << endl;
84 cout << "1 == TPC" << endl;
85 cout << "2 == Conformal" << endl;
86 cout << "3 == Hough" << endl;
87 cout << "10 == Kine (all)" << endl;
88 cout << "11 == Kine (ch+em)" << endl;
91 //reader->ReadEventsFromTo(0,10);
92 reader->SetPtCut(ptcut,100);
93 reader->SetEtaCut(-0.9,0.9);
98 // create the jet finder
100 AliTkConeJetFinderV2 *ConeFinder = new AliTkConeJetFinderV2();
101 ConeFinder->defaultSettings();
102 //ConeFinder->setSettings(120,40);
103 if(gErrorIgnoreLevel<=kWarning)
104 ConeFinder->setOutput(kTRUE);
105 ConeFinder->setEtMinJet(1.);
106 ConeFinder->setEtCut(-1);
107 ConeFinder->setRadius(radius);
108 sprintf(buffer,"./conefinder-type%d.evout.root",esd);
109 //cout << "Cone Jet Finder init: " << endl;
110 ConeFinder->setEvOutFilename(buffer);
114 while(reader->Next())
116 const AliJetEventParticles *ev=reader->GetEventParticles();
117 if(gErrorIgnoreLevel<=kWarning){
118 cout << "Read event: " << counter << endl;
121 TString dummy="Counter: ";
125 ConeFinder->initEvent(ev,dummy);
127 ConeFinder->finishEvent();
129 ConeFinder->finish();
135 void readJets(Int_t nMaxEvents,Char_t *filename)
138 TChain *theTree = new TChain("jets");
139 theTree->Add(filename);
140 AliTkConeJetEvent *event = new AliTkConeJetEvent();
141 theTree->SetBranchAddress("ConeFinder",&event);
143 Int_t treeentries=(Int_t)theTree->GetEntries();
144 if((nMaxEvents<0) || (nMaxEvents>treeentries))
145 nMaxEvents=treeentries;
147 cout << "Found " << nMaxEvents << " in " << filename << endl;
149 //=========================================================================
150 // start the event loop
151 //=========================================================================
153 while(nEvent<nMaxEvents){
154 if ((nEvent % 100) == 0) {
155 cout << "Analysing event " << nEvent << endl;
158 //connect the cone jets
159 theTree->GetEvent(nEvent);
161 AliJetEventParticles *jetparts=event->getJetParticles();
164 const TClonesArray *p=jetparts->GetParticles();
165 for(Int_t i=0;i<p->GetEntriesFast();i++) {
167 ((AliJetParticle*)p->At(i))->Print();
171 TClonesArray *tkjets=event->getJets();
173 cerr << "No Cone jet found in event " << nEvent << ", exiting..." <<endl;