]>
Commit | Line | Data |
---|---|---|
1 | /************************************************************************** | |
2 | * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
3 | * * | |
4 | * Author: The ALICE Off-line Project. * | |
5 | * Contributors are mentioned in the code where appropriate. * | |
6 | * * | |
7 | * Permission to use, copy, modify and distribute this software and its * | |
8 | * documentation strictly for non-commercial purposes is hereby granted * | |
9 | * without fee, provided that the above copyright notice appears in all * | |
10 | * copies and that both the copyright notice and this permission notice * | |
11 | * appear in the supporting documentation. The authors make no claims * | |
12 | * about the suitability of this software for any purpose. It is * | |
13 | * provided "as is" without express or implied warranty. * | |
14 | **************************************************************************/ | |
15 | /* $Id$ */ | |
16 | ||
17 | /* History of cvs commits: | |
18 | * | |
19 | * $Log$ | |
20 | * Revision 1.30 2006/08/28 10:01:56 kharlov | |
21 | * Effective C++ warnings fixed (Timur Pocheptsov) | |
22 | * | |
23 | * Revision 1.29 2005/05/28 14:19:05 schutz | |
24 | * Compilation warnings fixed by T.P. | |
25 | * | |
26 | */ | |
27 | ||
28 | //_________________________________________________________________________ | |
29 | // Track segment in PHOS | |
30 | // Can be : 1 EmcRecPoint | |
31 | // 1 EmcRecPoint + 1 CPV | |
32 | // 1 EmcRecPoint + 1 CPV + 1 charged track | |
33 | // | |
34 | //*-- Author: Dmitri Peressounko (RRC KI & SUBATECH) | |
35 | ||
36 | // --- ROOT system --- | |
37 | ||
38 | ||
39 | // --- Standard library --- | |
40 | ||
41 | // --- AliRoot header files --- | |
42 | #include "AliPHOSEmcRecPoint.h" | |
43 | #include "AliPHOSTrackSegment.h" | |
44 | #include "AliESDtrack.h" | |
45 | ||
46 | ClassImp(AliPHOSTrackSegment) | |
47 | ||
48 | //____________________________________________________________________________ | |
49 | AliPHOSTrackSegment::AliPHOSTrackSegment() | |
50 | : fEmcRecPoint(0), | |
51 | fIndexInList(0), | |
52 | fCpvRecPoint(0), | |
53 | fTrack(0) | |
54 | { | |
55 | //def ctor | |
56 | fDcpv[0]=999. ; | |
57 | fDcpv[1]=999. ; | |
58 | } | |
59 | ||
60 | //____________________________________________________________________________ | |
61 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
62 | AliPHOSRecPoint * cpvrp1) | |
63 | : fEmcRecPoint(0), | |
64 | fIndexInList(0), | |
65 | fCpvRecPoint(0), | |
66 | fTrack(0) | |
67 | { | |
68 | // ctor | |
69 | ||
70 | if( emc ) | |
71 | fEmcRecPoint = emc->GetIndexInList() ; | |
72 | else | |
73 | fEmcRecPoint = -1 ; | |
74 | ||
75 | if( cpvrp1 ) | |
76 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
77 | else | |
78 | fCpvRecPoint = -1 ; | |
79 | ||
80 | fTrack = -1 ; | |
81 | ||
82 | fIndexInList = -1 ; | |
83 | fDcpv[0]=999. ; | |
84 | fDcpv[1]=999. ; | |
85 | } | |
86 | ||
87 | //____________________________________________________________________________ | |
88 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
89 | AliPHOSRecPoint * cpvrp1, | |
90 | Int_t track) | |
91 | : fEmcRecPoint(0), | |
92 | fIndexInList(0), | |
93 | fCpvRecPoint(0), | |
94 | fTrack(0) | |
95 | { | |
96 | // ctor | |
97 | ||
98 | if( emc ) | |
99 | fEmcRecPoint = emc->GetIndexInList() ; | |
100 | else | |
101 | fEmcRecPoint = -1 ; | |
102 | ||
103 | if( cpvrp1 ) | |
104 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
105 | else | |
106 | fCpvRecPoint = -1 ; | |
107 | ||
108 | fTrack = track ; | |
109 | ||
110 | fIndexInList = -1 ; | |
111 | fDcpv[0]=999. ; | |
112 | fDcpv[1]=999. ; | |
113 | } | |
114 | ||
115 | //____________________________________________________________________________ | |
116 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
117 | AliPHOSRecPoint * cpvrp1, | |
118 | Int_t track, Float_t dx,Float_t dz) | |
119 | : fEmcRecPoint(0), | |
120 | fIndexInList(0), | |
121 | fCpvRecPoint(0), | |
122 | fTrack(0) | |
123 | { | |
124 | // ctor | |
125 | ||
126 | if( emc ) | |
127 | fEmcRecPoint = emc->GetIndexInList() ; | |
128 | else | |
129 | fEmcRecPoint = -1 ; | |
130 | ||
131 | if( cpvrp1 ) | |
132 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
133 | else | |
134 | fCpvRecPoint = -1 ; | |
135 | ||
136 | fTrack = track ; | |
137 | ||
138 | fIndexInList = -1 ; | |
139 | ||
140 | fDcpv[0] = dx ; | |
141 | fDcpv[1] = dz ; | |
142 | } | |
143 | ||
144 | //____________________________________________________________________________ | |
145 | AliPHOSTrackSegment::AliPHOSTrackSegment( const AliPHOSTrackSegment & ts) | |
146 | : TObject(ts), | |
147 | fEmcRecPoint(0), | |
148 | fIndexInList(0), | |
149 | fCpvRecPoint(0), | |
150 | fTrack(0) | |
151 | { | |
152 | // Copy ctor | |
153 | ||
154 | ( (AliPHOSTrackSegment &)ts ).Copy(*this) ; | |
155 | } | |
156 | ||
157 | ||
158 | //____________________________________________________________________________ | |
159 | void AliPHOSTrackSegment::Copy(TObject & obj) const | |
160 | { | |
161 | // Copy of a track segment into another track segment | |
162 | ||
163 | TObject::Copy(obj) ; | |
164 | ( (AliPHOSTrackSegment &)obj ).fEmcRecPoint = fEmcRecPoint ; | |
165 | ( (AliPHOSTrackSegment &)obj ).fCpvRecPoint = fCpvRecPoint ; | |
166 | ( (AliPHOSTrackSegment &)obj ).fIndexInList = fIndexInList ; | |
167 | ( (AliPHOSTrackSegment &)obj ).fTrack = fTrack ; | |
168 | ( (AliPHOSTrackSegment &)obj ).fDcpv[0] = fDcpv[0] ; | |
169 | ( (AliPHOSTrackSegment &)obj ).fDcpv[1] = fDcpv[1] ; | |
170 | } | |
171 | ||
172 | ||
173 | //____________________________________________________________________________ | |
174 | void AliPHOSTrackSegment::Print(const Option_t *) const | |
175 | { | |
176 | // Print all information on this track Segment | |
177 | ||
178 | ||
179 | Info("Print", ""); | |
180 | printf("Stored at position %d\n", fIndexInList) ; | |
181 | printf(" Emc RecPoint # %d\n", fEmcRecPoint) ; | |
182 | if(fCpvRecPoint >= 0) | |
183 | printf(" CPV RecPoint # %d\n", fCpvRecPoint) ; | |
184 | else | |
185 | printf(" No CPV RecPoint\n"); | |
186 | if (fTrack >= 0) | |
187 | printf(" Charged track # %d\n", fTrack) ; | |
188 | else | |
189 | printf(" No Charged track\n"); | |
190 | printf(" Distance to CPV: x=%f, z=%f\n",fDcpv[0],fDcpv[1]) ; | |
191 | } | |
192 | ||
193 | //____________________________________________________________________________ | |
194 | void AliPHOSTrackSegment::SetCpvRecPoint(AliPHOSRecPoint * cpvRecPoint) | |
195 | { | |
196 | // gives an id from its position in the list | |
197 | if( cpvRecPoint ) | |
198 | fCpvRecPoint = cpvRecPoint->GetIndexInList() ; | |
199 | else | |
200 | fCpvRecPoint = -1 ; | |
201 | } | |
202 | //____________________________________________________________________________ | |
203 | Float_t AliPHOSTrackSegment::GetCpvDistance(const Option_t* dr) const | |
204 | { | |
205 | if(strcmp(dr,"x")==0||strcmp(dr,"X")==0) return fDcpv[0] ; | |
206 | if(strcmp(dr,"z")==0||strcmp(dr,"Z")==0) return fDcpv[1] ; | |
207 | if(strcmp(dr,"r")==0||strcmp(dr,"R")==0) return TMath::Sqrt(fDcpv[0]*fDcpv[0]+fDcpv[1]*fDcpv[1]) ; | |
208 | return 999. ; | |
209 | ||
210 | } |