04-apr-2004 NvE SetMass() invoked from AliTrack::Set3Momentum to get also the energy...
[u/mrichter/AliRoot.git] / RALICE / AliEvent.h
1 #ifndef ALIEVENT_H
2 #define ALIEVENT_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id: AliEvent.h,v 1.15 2004/02/06 15:25:07 nick Exp $
7
8 #include <math.h>
9  
10 #include "TObject.h"
11 #include "TObjArray.h"
12 #include "TDatime.h"
13 #include "TTimeStamp.h"
14  
15 #include "AliVertex.h"
16  
17 class AliEvent : public AliVertex
18 {
19  public:
20   AliEvent();                             // Default constructor
21   AliEvent(Int_t n);                      // Create an event to hold initially n tracks
22   virtual ~AliEvent();                    // Default destructor
23   AliEvent(const AliEvent& evt);          // Copy constructor
24   virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
25   virtual void SetOwner(Bool_t own=kTRUE);// Set ownership of all added objects
26   void SetDayTime(TTimeStamp& stamp);     // Set the date and time stamp exactly as specified (1 ns accuracy)
27   void SetDayTime(TDatime& stamp);        // Set date and time stamp interpreted as local time (1 s accuracy)
28   void SetRunNumber(Int_t run);           // Set the run number
29   void SetEventNumber(Int_t evt);         // Set the event number
30   void SetProjectile(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set projectile A, Z, p per nucleon and id
31   Int_t GetProjectileA() const;           // Provide A value of the projectile
32   Int_t GetProjectileZ() const;           // Provide Z value of the projectile
33   Double_t GetProjectilePnuc() const;     // Provide the projectile momentum value per nucleon
34   Int_t GetProjectileId() const;          // Provide the user defined particle ID of the projectile
35   void SetTarget(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set target A, Z, p per nucleon and id
36   Int_t GetTargetA() const;               // Provide A value of the target
37   Int_t GetTargetZ() const;               // Provide Z value of the target
38   Double_t GetTargetPnuc() const;         // Provide the target momentum value per nucleon
39   Int_t GetTargetId() const;              // Provide the user defined particle ID of the target
40   void Reset();                           // Reset all values
41   TTimeStamp GetDayTime() const;          // Provide the date and time stamp
42   Int_t GetRunNumber() const;             // Provide the run number
43   Int_t GetEventNumber() const;           // Provide the event number
44   virtual void HeaderData() const;        // Print the event header information
45   virtual void Data(TString f="car");     // Print the event info within coordinate frame f
46   void SetDevCopy(Int_t j);               // (De)activate creation of private copies of the devices
47   Int_t GetDevCopy() const;               // Provide DevCopy flag value      
48   void AddDevice(TObject& d);             // Add a device to the event
49   void AddDevice(TObject* d) { AddDevice(*d); }
50   Int_t GetNdevices() const;              // Provide the number of devices
51   void ShowDevices() const;               // Provide on overview of the available devices
52   TObject* GetDevice(Int_t i) const;      // Provide i-th device of the event
53   TObject* GetDevice(TString name) const; // Provide device with name "name"
54
55  protected:
56   TTimeStamp fDaytime;      // The date and time stamp
57   Int_t fRun;               // The run number
58   Int_t fEvent;             // The event number
59   Int_t fAproj;             // The projectile A value
60   Int_t fZproj;             // The projectile Z value
61   Double_t fPnucProj;       // The projectile momentum per nucleon
62   Int_t fIdProj;            // User defined projectile particle ID
63   Int_t fAtarg;             // The target A value
64   Int_t fZtarg;             // The target Z value
65   Double_t fPnucTarg;       // The target momentum per nucleon
66   Int_t fIdTarg;            // User defined target particle ID
67   TObjArray* fDevices;      // Array to hold the pointers to the various devices
68   Int_t fDevCopy;           // Flag to denote creation of private copies of the devices
69
70  ClassDef(AliEvent,13) // Creation and investigation of an Alice physics event.
71 };
72 #endif