]>
Commit | Line | Data |
---|---|---|
dd233e4e | 1 | // $Id$ |
2 | // | |
3 | // Track class with minimal number of information | |
980821ba | 4 | // (targets at selection of primary tracks). |
dd233e4e | 5 | // |
cd231d42 | 6 | // Author: C.Loizides |
dd233e4e | 7 | |
8 | #include "AliPicoTrack.h" | |
b723beb6 | 9 | #include "AliExternalTrackParam.h" |
10 | #include "AliVCluster.h" | |
dd233e4e | 11 | |
12 | //_________________________________________________________________________________________________ | |
13 | AliPicoTrack::AliPicoTrack() : | |
14 | AliVTrack(), | |
b723beb6 | 15 | fPt(0), fEta(0), fPhi(0), fQ(0), fLabel(-1), fEtaEmc(0), fPhiEmc(0), fEmcal(0), fClusId(-1) |
dd233e4e | 16 | { |
17 | // Default constructor. | |
18 | } | |
19 | ||
20 | //_________________________________________________________________________________________________ | |
21 | AliPicoTrack::AliPicoTrack(Double_t pt, Double_t eta, Double_t phi, Byte_t q, Byte_t lab, | |
22 | Double_t etaemc, Double_t phiemc, Bool_t ise) : | |
23 | AliVTrack(), | |
24 | fPt(pt), fEta(eta), fPhi(phi), fQ(q), fLabel(lab), | |
b723beb6 | 25 | fEtaEmc(etaemc), fPhiEmc(phiemc), fEmcal(ise), fClusId(-1) |
dd233e4e | 26 | { |
27 | // Constructor. | |
28 | } | |
29 | ||
30 | //_________________________________________________________________________________________________ | |
31 | AliPicoTrack::AliPicoTrack(const AliPicoTrack &pc) : | |
32 | AliVTrack(pc), | |
33 | fPt(pc.fPt), fEta(pc.fEta), fPhi(pc.fPhi), | |
34 | fQ(pc.fQ), fLabel(pc.fLabel), | |
b723beb6 | 35 | fEtaEmc(pc.fEtaEmc), fPhiEmc(pc.fPhiEmc), fEmcal(pc.fEmcal), |
36 | fClusId(pc.fClusId) | |
dd233e4e | 37 | { |
38 | // Constructor. | |
39 | } | |
40 | ||
41 | //_________________________________________________________________________________________________ | |
42 | AliPicoTrack &AliPicoTrack::operator=(const AliPicoTrack &pc) | |
43 | { | |
44 | // Assignment operator. | |
45 | ||
46 | if (this!=&pc) { | |
47 | AliVTrack::operator=(pc); | |
48 | fPt = pc.fPt; | |
49 | fEta = pc.fEta; | |
50 | fPhi = pc.fPhi; | |
51 | fQ = pc.fQ; | |
52 | fLabel = pc.fLabel; | |
53 | fEtaEmc = pc.fEtaEmc; | |
54 | fPhiEmc = pc.fPhiEmc; | |
55 | fEmcal = pc.fEmcal; | |
b723beb6 | 56 | fClusId = pc.fClusId; |
dd233e4e | 57 | } |
58 | ||
59 | return *this; | |
60 | } | |
61 | ||
62 | //_________________________________________________________________________________________________ | |
63 | Int_t AliPicoTrack::Compare(const TObject* obj) const | |
64 | { | |
65 | // Compare this class with an other instance of this class used in a | |
66 | // TCollection::Sort()/TClonesArray::Sort() which is descending. | |
67 | // Returns 0 when equal, 1 when this is smaller and -1 when bigger. | |
68 | ||
69 | const AliPicoTrack *t = dynamic_cast<const AliPicoTrack*>(obj); | |
70 | if (!t) | |
71 | return -1; | |
72 | if (t->Pt()>Pt()) | |
73 | return 1; | |
74 | if (t->Pt()<Pt()) | |
75 | return -1; | |
76 | return 0; | |
77 | } | |
78 | ||
b723beb6 | 79 | //_________________________________________________________________________________________________ |
80 | void AliPicoTrack::GetEtaPhiDiff(AliVTrack *t, AliVCluster *v, Double_t &phidiff, Double_t &etadiff) | |
81 | { | |
82 | // Calculate phi and eta difference between track and cluster. | |
83 | ||
84 | phidiff = 999; | |
85 | etadiff = 999; | |
86 | ||
87 | if (!t||!v) | |
88 | return; | |
89 | ||
90 | if (!t->IsEMCAL()) | |
91 | return; | |
dd233e4e | 92 | |
4d925f52 | 93 | Double_t veta = t->GetTrackEtaOnEMCal(); |
94 | Double_t vphi = t->GetTrackPhiOnEMCal(); | |
b723beb6 | 95 | |
96 | Float_t pos[3] = {0}; | |
97 | v->GetPosition(pos); | |
98 | TVector3 cpos(pos); | |
99 | Double_t ceta = cpos.Eta(); | |
100 | Double_t cphi = cpos.Phi(); | |
101 | etadiff=veta-ceta; | |
102 | phidiff=TVector2::Phi_mpi_pi(vphi-cphi); | |
103 | } |