]>
Commit | Line | Data |
---|---|---|
d16062ac | 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 | ||
16 | // $Id$ | |
17 | ||
18 | /////////////////////////////////////////////////////////////////////////// | |
19 | // Class AliEvent | |
20 | // Creation and investigation of an Alice physics event. | |
21 | // An AliEvent can be constructed by adding AliTracks, Alivertices | |
22 | // and/or AliJets. | |
23 | // | |
24 | // The basic functionality of AliEvent is identical to the one of AliVertex. | |
25 | // So, an AliEvent may be regarded as the primary vertex with some | |
26 | // additional functionality compared to AliVertex. | |
27 | // | |
28 | // Coding example to make an event consisting of a primary vertex | |
29 | // and 2 secondary vertices. | |
30 | // -------------------------------------------------------------- | |
31 | // v1 contains the tracks 1,2,3 and 4 | |
32 | // v2 contains the tracks 5,6 and 7 | |
33 | // v3 contains the jets 1 and 2 | |
34 | // | |
35 | // AliTrack t1,t2,t3,t4,t5,t6,t7; | |
36 | // ... | |
37 | // ... // code to fill the track data | |
38 | // ... | |
39 | // | |
40 | // AliJet j1,j2; | |
41 | // ... | |
42 | // ... // code to fill the jet data | |
43 | // ... | |
44 | // | |
45 | // AliEvent evt(5); | |
46 | // | |
47 | // evt.AddTrack(t1); | |
48 | // evt.AddTrack(t2); | |
49 | // evt.AddTrack(t3); | |
50 | // evt.AddTrack(t4); | |
51 | // | |
52 | // Float_t r0[3]={2.4,0.1,-8.5}; | |
53 | // evt.SetPosition(r0,"car"); | |
54 | // | |
55 | // AliVertex v1(2); | |
56 | // v1.AddTrack(t5); | |
57 | // v1.AddTrack(t6); | |
58 | // v1.AddTrack(t7); | |
59 | // | |
60 | // Float_t r1[3]={1.6,-3.2,5.7}; | |
61 | // v1.SetPosition(r1,"car"); | |
62 | // | |
63 | // AliVertex v2; | |
64 | // | |
65 | // v2.AddJet(j1); | |
66 | // v2.AddJet(j2); | |
67 | // | |
68 | // Float_t r2[3]={6.2,4.8,1.3}; | |
69 | // v2.SetPosition(r2,"car"); | |
70 | // | |
71 | // evt.Info("sph"); | |
72 | // v1.ListAll(); | |
73 | // v2.List("cyl"); | |
74 | // | |
75 | // Float_t etot=evt.GetEnergy(); | |
76 | // Ali3Vector ptot=evt.Get3Momentum(); | |
77 | // Float_t loc[3]; | |
78 | // evt.GetPosition(loc,"sph"); | |
79 | // AliPosition r=v1.GetPosition(); | |
80 | // r.Info(); | |
81 | // Int_t nt=v2.GetNtracks(); | |
82 | // AliTrack* tv=v2.GetTrack(1); // Access track number 1 of Vertex v2 | |
83 | // | |
84 | // Specify the vertices v2 and v3 as secondary vertices of the primary | |
85 | // | |
86 | // evt.AddVertex(v2); | |
87 | // evt.AddVertex(v3); | |
88 | // | |
89 | // evt.List(); | |
90 | // | |
91 | // Int_t nv=evt.GetNvtx(); | |
92 | // AliVertex* vx=evt.GetVertex(1); // Access 1st secondary vertex | |
93 | // Float_t e=vx->GetEnergy(); | |
94 | // | |
95 | // Float_t M=evt.GetInvmass(); | |
96 | // | |
97 | // Reconstruct the event from scratch | |
98 | // | |
99 | // evt.Reset(); | |
100 | // evt.SetNvmax(25); // Increase initial no. of sec. vertices | |
101 | // evt.AddTrack(t3); | |
102 | // evt.AddTrack(t7); | |
103 | // evt.AddJet(j2); | |
104 | // Float_t pos[3]={7,9,4}; | |
105 | // evt.SetPosition(pos,"car"); | |
106 | // | |
107 | // Note : All quantities are in GeV, GeV/c or GeV/c**2 | |
108 | // | |
109 | //--- Author: Nick van Eijndhoven 27-may-2001 UU-SAP Utrecht | |
110 | //- Modified: NvE $Date$ UU-SAP Utrecht | |
111 | /////////////////////////////////////////////////////////////////////////// | |
112 | ||
113 | #include "AliEvent.h" | |
114 | ||
115 | ClassImp(AliEvent) // Class implementation to enable ROOT I/O | |
116 | ||
117 | AliEvent::AliEvent() | |
118 | { | |
119 | // Default constructor. | |
120 | // All variables initialised to default values. | |
121 | fDaytime.Set(); | |
122 | fRun=0; | |
123 | fEvent=0; | |
124 | AliVertex::AliVertex(); | |
125 | } | |
126 | /////////////////////////////////////////////////////////////////////////// | |
127 | AliEvent::AliEvent(Int_t n) | |
128 | { | |
129 | // Create an event to hold initially a maximum of n tracks | |
130 | // All variables initialised to default values | |
131 | fDaytime.Set(); | |
132 | fRun=0; | |
133 | fEvent=0; | |
134 | if (n > 0) | |
135 | { | |
136 | AliVertex::AliVertex(n); | |
137 | } | |
138 | else | |
139 | { | |
140 | cout << endl; | |
141 | cout << " *AliEvent* Initial max. number of tracks entered : " << n << endl; | |
142 | cout << " This is invalid. Default initial maximum will be used." << endl; | |
143 | cout << endl; | |
144 | AliVertex::AliVertex(); | |
145 | } | |
146 | } | |
147 | /////////////////////////////////////////////////////////////////////////// | |
148 | AliEvent::~AliEvent() | |
149 | { | |
150 | // Default destructor | |
151 | } | |
152 | /////////////////////////////////////////////////////////////////////////// | |
153 | void AliEvent::Reset() | |
154 | { | |
155 | // Reset all variables to default values | |
156 | // The max. number of tracks is set to the initial value again | |
157 | // The max. number of vertices is set to the default value again | |
158 | fDaytime.Set(); | |
159 | fRun=0; | |
160 | fEvent=0; | |
161 | ||
162 | AliVertex::Reset(); | |
163 | } | |
164 | /////////////////////////////////////////////////////////////////////////// | |
165 | void AliEvent::SetDayTime(TDatime& stamp) | |
166 | { | |
167 | // Set the date and time stamp for this event | |
168 | fDaytime=stamp; | |
169 | } | |
170 | /////////////////////////////////////////////////////////////////////////// | |
171 | void AliEvent::SetRunNumber(Int_t run) | |
172 | { | |
173 | // Set the run number for this event | |
174 | fRun=run; | |
175 | } | |
176 | /////////////////////////////////////////////////////////////////////////// | |
177 | void AliEvent::SetEventNumber(Int_t evt) | |
178 | { | |
179 | // Set the event number for this event | |
180 | fEvent=evt; | |
181 | } | |
182 | /////////////////////////////////////////////////////////////////////////// | |
183 | TDatime AliEvent::GetDayTime() | |
184 | { | |
185 | // Provide the date and time stamp for this event | |
186 | return fDaytime; | |
187 | } | |
188 | /////////////////////////////////////////////////////////////////////////// | |
189 | Int_t AliEvent::GetRunNumber() | |
190 | { | |
191 | // Provide the run number for this event | |
192 | return fRun; | |
193 | } | |
194 | /////////////////////////////////////////////////////////////////////////// | |
195 | Int_t AliEvent::GetEventNumber() | |
196 | { | |
197 | // Provide the event number for this event | |
198 | return fEvent; | |
199 | } | |
200 | /////////////////////////////////////////////////////////////////////////// | |
201 | void AliEvent::HeaderInfo() | |
202 | { | |
203 | // Provide event header information | |
204 | Int_t date=fDaytime.GetDate(); | |
205 | Int_t time=fDaytime.GetTime(); | |
206 | ||
207 | Int_t year=date/10000; | |
208 | Int_t month=(date%10000)/100; | |
209 | Int_t day=date%100; | |
210 | Int_t hh=time/10000; | |
211 | Int_t mm=(time%10000)/100; | |
212 | Int_t ss=time%100; | |
213 | ||
214 | char* c[12]={"jan","feb","mar","apr","may","jun", | |
215 | "jul","aug","sep","oct","nov","dec"}; | |
216 | ||
217 | cout << " *AliEvent::Info* Run : " << fRun << " Event : " << fEvent; | |
218 | cout.fill('0'); | |
219 | cout << " Date : " << setw(2) << day << "-" << c[month-1] << "-" << year | |
220 | << " Time : " << setw(2) << hh << ":" << setw(2) << mm << ":" << setw(2) << ss << endl; | |
221 | cout.fill(' '); | |
222 | } | |
223 | /////////////////////////////////////////////////////////////////////////// | |
224 | void AliEvent::Info(TString f) | |
225 | { | |
226 | // Provide event information within the coordinate frame f | |
227 | HeaderInfo(); | |
228 | AliVertex::Info(f); | |
229 | } | |
230 | /////////////////////////////////////////////////////////////////////////// | |
231 |