]>
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 | #include "AliLog.h" | |
46 | ||
47 | ClassImp(AliPHOSTrackSegment) | |
48 | ||
49 | //____________________________________________________________________________ | |
50 | AliPHOSTrackSegment::AliPHOSTrackSegment() | |
51 | : fEmcRecPoint(0), | |
52 | fIndexInList(0), | |
53 | fCpvRecPoint(0), | |
54 | fTrack(0) | |
55 | { | |
56 | //def ctor | |
57 | fDcpv[0]=999. ; | |
58 | fDcpv[1]=999. ; | |
59 | } | |
60 | ||
61 | //____________________________________________________________________________ | |
62 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
63 | AliPHOSRecPoint * cpvrp1) | |
64 | : fEmcRecPoint(0), | |
65 | fIndexInList(0), | |
66 | fCpvRecPoint(0), | |
67 | fTrack(0) | |
68 | { | |
69 | // ctor | |
70 | ||
71 | if( emc ) | |
72 | fEmcRecPoint = emc->GetIndexInList() ; | |
73 | else | |
74 | fEmcRecPoint = -1 ; | |
75 | ||
76 | if( cpvrp1 ) | |
77 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
78 | else | |
79 | fCpvRecPoint = -1 ; | |
80 | ||
81 | fTrack = -1 ; | |
82 | ||
83 | fIndexInList = -1 ; | |
84 | fDcpv[0]=999. ; | |
85 | fDcpv[1]=999. ; | |
86 | } | |
87 | ||
88 | //____________________________________________________________________________ | |
89 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
90 | AliPHOSRecPoint * cpvrp1, | |
91 | Int_t track) | |
92 | : fEmcRecPoint(0), | |
93 | fIndexInList(0), | |
94 | fCpvRecPoint(0), | |
95 | fTrack(0) | |
96 | { | |
97 | // ctor | |
98 | ||
99 | if( emc ) | |
100 | fEmcRecPoint = emc->GetIndexInList() ; | |
101 | else | |
102 | fEmcRecPoint = -1 ; | |
103 | ||
104 | if( cpvrp1 ) | |
105 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
106 | else | |
107 | fCpvRecPoint = -1 ; | |
108 | ||
109 | fTrack = track ; | |
110 | ||
111 | fIndexInList = -1 ; | |
112 | fDcpv[0]=999. ; | |
113 | fDcpv[1]=999. ; | |
114 | } | |
115 | ||
116 | //____________________________________________________________________________ | |
117 | AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , | |
118 | AliPHOSRecPoint * cpvrp1, | |
119 | Int_t track, Float_t dx,Float_t dz) | |
120 | : fEmcRecPoint(0), | |
121 | fIndexInList(0), | |
122 | fCpvRecPoint(0), | |
123 | fTrack(0) | |
124 | { | |
125 | // ctor | |
126 | ||
127 | if( emc ) | |
128 | fEmcRecPoint = emc->GetIndexInList() ; | |
129 | else | |
130 | fEmcRecPoint = -1 ; | |
131 | ||
132 | if( cpvrp1 ) | |
133 | fCpvRecPoint = cpvrp1->GetIndexInList() ; | |
134 | else | |
135 | fCpvRecPoint = -1 ; | |
136 | ||
137 | fTrack = track ; | |
138 | ||
139 | fIndexInList = -1 ; | |
140 | ||
141 | fDcpv[0] = dx ; | |
142 | fDcpv[1] = dz ; | |
143 | } | |
144 | ||
145 | //____________________________________________________________________________ | |
146 | AliPHOSTrackSegment::AliPHOSTrackSegment( const AliPHOSTrackSegment & ts) | |
147 | : TObject(ts), | |
148 | fEmcRecPoint(0), | |
149 | fIndexInList(0), | |
150 | fCpvRecPoint(0), | |
151 | fTrack(0) | |
152 | { | |
153 | // Copy ctor | |
154 | ||
155 | ( (AliPHOSTrackSegment &)ts ).Copy(*this) ; | |
156 | } | |
157 | ||
158 | ||
159 | //____________________________________________________________________________ | |
160 | AliPHOSTrackSegment & AliPHOSTrackSegment::operator = (const AliPHOSTrackSegment &) | |
161 | { | |
162 | Fatal("operator =", "not implemented"); | |
163 | return *this; | |
164 | } | |
165 | ||
166 | //____________________________________________________________________________ | |
167 | void AliPHOSTrackSegment::Copy(TObject & obj) const | |
168 | { | |
169 | // Copy of a track segment into another track segment | |
170 | ||
171 | TObject::Copy(obj) ; | |
172 | ( (AliPHOSTrackSegment &)obj ).fEmcRecPoint = fEmcRecPoint ; | |
173 | ( (AliPHOSTrackSegment &)obj ).fCpvRecPoint = fCpvRecPoint ; | |
174 | ( (AliPHOSTrackSegment &)obj ).fIndexInList = fIndexInList ; | |
175 | ( (AliPHOSTrackSegment &)obj ).fTrack = fTrack ; | |
176 | ( (AliPHOSTrackSegment &)obj ).fDcpv[0] = fDcpv[0] ; | |
177 | ( (AliPHOSTrackSegment &)obj ).fDcpv[1] = fDcpv[1] ; | |
178 | } | |
179 | ||
180 | ||
181 | //____________________________________________________________________________ | |
182 | void AliPHOSTrackSegment::Print(const Option_t *) const | |
183 | { | |
184 | // Print all information on this track Segment | |
185 | ||
186 | ||
187 | AliInfo("Track segment"); | |
188 | printf("Stored at position %d\n", fIndexInList) ; | |
189 | printf(" Emc RecPoint # %d\n", fEmcRecPoint) ; | |
190 | if(fCpvRecPoint >= 0) | |
191 | printf(" CPV RecPoint # %d\n", fCpvRecPoint) ; | |
192 | else | |
193 | printf(" No CPV RecPoint\n"); | |
194 | if (fTrack >= 0) | |
195 | printf(" Charged track # %d\n", fTrack) ; | |
196 | else | |
197 | printf(" No Charged track\n"); | |
198 | printf(" Distance to CPV: x=%f, z=%f\n",fDcpv[0],fDcpv[1]) ; | |
199 | } | |
200 | ||
201 | //____________________________________________________________________________ | |
202 | void AliPHOSTrackSegment::SetCpvRecPoint(AliPHOSRecPoint * cpvRecPoint) | |
203 | { | |
204 | // gives an id from its position in the list | |
205 | if( cpvRecPoint ) | |
206 | fCpvRecPoint = cpvRecPoint->GetIndexInList() ; | |
207 | else | |
208 | fCpvRecPoint = -1 ; | |
209 | } | |
210 | //____________________________________________________________________________ | |
211 | Float_t AliPHOSTrackSegment::GetCpvDistance(const Option_t* dr) const | |
212 | { | |
213 | if(strcmp(dr,"x")==0||strcmp(dr,"X")==0) return fDcpv[0] ; | |
214 | if(strcmp(dr,"z")==0||strcmp(dr,"Z")==0) return fDcpv[1] ; | |
215 | if(strcmp(dr,"r")==0||strcmp(dr,"R")==0) return TMath::Sqrt(fDcpv[0]*fDcpv[0]+fDcpv[1]*fDcpv[1]) ; | |
216 | return 999. ; | |
217 | ||
218 | } |