]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AOD/AliAODTrdTrack.cxx
adding return for non-void function
[u/mrichter/AliRoot.git] / STEER / AOD / AliAODTrdTrack.cxx
CommitLineData
9aa7ebff 1#include "AliAODTrdTrack.h"
2
3AliAODTrdTrack::AliAODTrdTrack() :
4 AliVTrdTrack(),
5 fGlobalStack(-1),
6 fPID(0),
7 fLayerMask(0),
8 fA(0),
9 fFlagsTiming(0),
10 fTracklets(),
11 fTrackMatch(0x0),
12 fLabel(-1)
13{
14 // default constructor
15
16 fTracklets.SetClass("AliAODTrdTracklet", 6);
17}
18
19AliAODTrdTrack::AliAODTrdTrack(const AliVTrdTrack &rhs) :
20 AliVTrdTrack(rhs),
21 fGlobalStack(5*rhs.GetSector() + rhs.GetStack()),
22 fPID(rhs.GetPID()),
23 fLayerMask(rhs.GetLayerMask()),
24 fA(rhs.GetA()),
25 fFlagsTiming(rhs.GetFlagsTiming()),
26 fTracklets(),
27 fTrackMatch(rhs.GetTrackMatch()),
28 fLabel(rhs.GetLabel())
29{
30 // constructor from abstract base class
31
32 // copy the contributing tracklets
33 for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
34 const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
35 if (trkl)
36 new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
37 }
38}
39
40AliAODTrdTrack::AliAODTrdTrack(const AliAODTrdTrack& rhs) :
41 AliVTrdTrack(rhs),
42 fGlobalStack(rhs.fGlobalStack),
43 fPID(rhs.fPID),
44 fLayerMask(rhs.fLayerMask),
45 fA(rhs.fA),
46 fFlagsTiming(rhs.fFlagsTiming),
47 fTracklets(),
48 fTrackMatch(rhs.fTrackMatch),
49 fLabel(rhs.fLabel)
50{
51 // copy constructor
52
53 // copy the contributing tracklets
54 for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
55 const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
56 if (trkl)
57 new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
58 }
59}
60
61AliAODTrdTrack& AliAODTrdTrack::operator=(const AliAODTrdTrack& rhs)
62{
63 // assignment operator
64
65 if (&rhs != this)
66 AliVTrdTrack::operator=(rhs);
67
68 fGlobalStack = rhs.fGlobalStack;
69 fPID = rhs.fPID;
70 fLayerMask = rhs.fLayerMask;
71 fA = rhs.fA;
72 fFlagsTiming = rhs.fFlagsTiming;
73 fTrackMatch = rhs.fTrackMatch;
74 fLabel = rhs.fLabel;
75
76 // assign the contributing tracklets
77 for (Int_t iTracklet = 0; iTracklet < 6; ++iTracklet) {
78 const AliVTrdTracklet *trkl = rhs.GetTracklet(iTracklet);
79 if (trkl)
80 new (fTracklets[iTracklet]) AliAODTrdTracklet(*trkl);
81 }
82
83 return *this;
84}
85
86void AliAODTrdTrack::Copy(TObject &rhs) const
87{
88 // copy
89
90 AliVTrdTrack::Copy(rhs);
91}
92
93Int_t AliAODTrdTrack::GetPt() const
94{
95 // calculate pt from a as done in hardware
96
97 const Int_t maskIdLut[64] = {
98 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
99 -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 2, -1, 3, 4, 5,
100 -1, -1, -1, -1, -1, -1, -1, 6, -1, -1, -1, 7, -1, 8, 9, 10,
101 -1, -1, -1, 11, -1, 12, 13, 14, -1, 15, 16, 17, 18, 19, 20, 21
102 };
103
104 const Int_t c1Lut[32] = {
105 -2371, -2474, -2474, -2474, -2563, -2448, -2578, -2578,
106 -2578, -2670, -2557, -2578, -2578, -2670, -2557, -2578,
107 -2670, -2557, -2763, -2557, -2644, -2523, -1, -1,
108 -1, -1, -1, -1, -1, -1, -1, -1
109 };
110
111 if (this->GetA() != 0) {
112 Int_t layerMaskId = maskIdLut[this->GetLayerMask()];
113 Int_t c1 = c1Lut[layerMaskId];
114 Int_t c1Ext = c1 << 8;
115 Int_t ptRawStage4 = c1Ext / ((this->GetA() >> 2) != 0 ? (this->GetA() >> 2) : 1 );
116 Int_t ptRawComb4 = ptRawStage4;
117 Int_t ptExtComb4 = (ptRawComb4 > 0) ? ptRawComb4 + 33 : ptRawComb4 - 30;
118
119 return -ptExtComb4/2;
120 }
121 else
122 return 0;
123}