]>
Commit | Line | Data |
---|---|---|
b9a6a391 | 1 | // $Id$ |
2 | ||
3 | #include <Riostream.h> | |
4 | #include <TROOT.h> | |
5 | #include <TParticle.h> | |
6 | #include <TClonesArray.h> | |
7 | ||
8 | #include "AliTkChargedJet.h" | |
9 | ||
10 | //------------------------------------------------------------------------- | |
11 | // implemenatation of AliTkChargedJet | |
12 | //------------------------------------------------------------------------- | |
13 | ClassImp(AliTkChargedJet) | |
14 | ||
15 | AliTkChargedJet::AliTkChargedJet() : TObject() | |
16 | { | |
17 | fEta=-999; | |
18 | fPhi=-999; | |
19 | fPt=-999; | |
20 | fParticles=new TClonesArray("TParticle",1000); | |
21 | } | |
22 | ||
23 | AliTkChargedJet::AliTkChargedJet(jet j) : TObject() | |
24 | { | |
25 | // save center of the jet (eg. of seed particle) | |
26 | AliTkEtaPhiVector center = j.getCentroid(); | |
27 | fEta = center.Eta(); | |
28 | fPhi = center.Phi(); | |
29 | fPt = j.getPt(); | |
30 | fNParticles = j.getNParticles(); | |
31 | ||
32 | fParticles = j.getParticles(); | |
33 | if (fParticles->GetEntries() != j.getNParticles()) { | |
34 | cerr << "AliTkChargedJet: cannot happen!" << endl; | |
35 | } | |
36 | } | |
37 | ||
38 | AliTkChargedJet::~AliTkChargedJet() | |
39 | { | |
40 | if(fParticles) { | |
41 | fParticles->Clear(); | |
42 | delete fParticles; | |
43 | } | |
44 | } | |
45 | ||
46 | Float_t AliTkChargedJet::getPtInRadius(Float_t r) const | |
47 | { | |
48 | Float_t pt = 0.0; | |
49 | Float_t rSq = r*r; | |
50 | AliTkEtaPhiVector center(this->getEta(), this->getPhi()); | |
51 | TIterator *iter = this->fParticles->MakeIterator(); | |
52 | TParticle *particle; | |
53 | while ((particle = (TParticle *) iter->Next()) != NULL) { | |
54 | AliTkEtaPhiVector v(particle->Eta(),particle->Phi()); | |
55 | if (center.diffSq(v) < rSq) { | |
56 | pt += particle->Pt(); | |
57 | } | |
58 | } | |
59 | return pt; | |
60 | } | |
61 | ||
62 | Int_t AliTkChargedJet::getParticlesInRadius(Float_t r) const | |
63 | { | |
64 | Int_t part = 0; | |
65 | Float_t rSq = r*r; | |
66 | AliTkEtaPhiVector center(this->getEta(), this->getPhi()); | |
67 | TIterator *iter = this->fParticles->MakeIterator(); | |
68 | TParticle *particle; | |
69 | while ((particle = (TParticle *) iter->Next()) != NULL) { | |
70 | AliTkEtaPhiVector v(particle->Eta(),particle->Phi()); | |
71 | if (center.diffSq(v) < rSq) { | |
72 | part ++; | |
73 | } | |
74 | } | |
75 | return part; | |
76 | } | |
77 | ||
78 | Int_t AliTkChargedJet::getNChargedInRadius(Float_t /*r*/) const | |
79 | { | |
80 | return -1; | |
81 | } | |
82 | ||
83 | Int_t AliTkChargedJet::getNNeutralInRadius(Float_t /*r*/) const | |
84 | { | |
85 | return -1; | |
86 | } |