]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RALICE/AliEvent.h
Also first (prototype) version of class IceDwalk introduced to perform
[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.19 2004/10/20 10:49:44 nick Exp $
7
8 #include <math.h>
9  
10 #include "TObject.h"
11 #include "TObjArray.h"
12 #include "TDatime.h"
13  
14 #include "AliVertex.h"
15 #include "AliDevice.h"
16 #include "AliTimestamp.h"
17  
18 class AliEvent : public AliVertex,public AliTimestamp
19 {
20  public:
21   AliEvent();                             // Default constructor
22   AliEvent(Int_t n);                      // Create an event to hold initially n tracks
23   virtual ~AliEvent();                    // Default destructor
24   AliEvent(const AliEvent& evt);          // Copy constructor
25   virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
26   virtual void SetOwner(Bool_t own=kTRUE);// Set ownership of all added objects
27   void SetDayTime(TTimeStamp& stamp);     // (Obsolete, see docs) Set date/time exactly as specified (1ns accuracy)
28   void SetDayTime(TDatime& stamp);        // (Obsolete, see docs) Set date/time interpreted as local time (1s accuracy)
29   void SetRunNumber(Int_t run);           // Set the run number
30   void SetEventNumber(Int_t evt);         // Set the event number
31   void SetProjectile(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set projectile A, Z, p per nucleon and id
32   Int_t GetProjectileA() const;           // Provide A value of the projectile
33   Int_t GetProjectileZ() const;           // Provide Z value of the projectile
34   Double_t GetProjectilePnuc() const;     // Provide the projectile momentum value per nucleon
35   Int_t GetProjectileId() const;          // Provide the user defined particle ID of the projectile
36   void SetTarget(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set target A, Z, p per nucleon and id
37   Int_t GetTargetA() const;               // Provide A value of the target
38   Int_t GetTargetZ() const;               // Provide Z value of the target
39   Double_t GetTargetPnuc() const;         // Provide the target momentum value per nucleon
40   Int_t GetTargetId() const;              // Provide the user defined particle ID of the target
41   void Reset();                           // Reset all values
42   TTimeStamp GetDayTime() const;          // (Obsolete, see docs) Provide the date and time stamp
43   Int_t GetRunNumber() const;             // Provide the run number
44   Int_t GetEventNumber() const;           // Provide the event number
45   virtual void HeaderData();              // Print the event header information
46   virtual void Data(TString f="car",TString u="rad"); // Print the event info within frame f and ang units u
47   void SetDevCopy(Int_t j);               // (De)activate creation of private copies of the devices
48   Int_t GetDevCopy() const;               // Provide DevCopy flag value      
49   void AddDevice(TObject& d);             // Add a device to the event
50   void AddDevice(TObject* d) { if (d) AddDevice(*d); }
51   Int_t GetNdevices() const;              // Provide the number of devices
52   void ShowDevices(Int_t mode=1) const;   // Provide on overview of the available devices
53   TObjArray* GetDevices(const char* classname); // Provide references to the devices derived from the specified class
54   TObject* GetDevice(Int_t i) const;      // Provide i-th device of the event
55   TObject* GetDevice(TString name) const; // Provide the device with name "name"
56   TObject* GetIdDevice(Int_t id) const;   // Provide the device with unique identifier "id"
57   Int_t GetNhits(const char* classname);  // Provide number of hits for the specified device class
58   TObjArray* GetHits(const char* classname); // Provide refs to all hits of the specified device class 
59   AliSignal* GetIdHit(Int_t id,const char* classname); // Provide hit with unique "id" for the specified device class
60   TObjArray* SortHits(const char* classname,TString name,Int_t mode=-1,Int_t mcal=1); // Sort hits by named signal
61   TObjArray* SortHits(const char* classname,Int_t idx=1,Int_t mode=-1,Int_t mcal=1);  // Sort hits by indexed signal
62   void GetExtremes(const char* classname,Float_t& vmin,Float_t& vmax,Int_t idx=1,Int_t mode=1); // min and max signal
63   void GetExtremes(const char* classname,Float_t& vmin,Float_t& vmax,TString name,Int_t mode=1);// min and max signal
64   void DisplayHits(const char* classname,TString name,Float_t scale=-1,Int_t dp=0,Int_t mode=1,Int_t mcol=4);
65   void DisplayHits(const char* classname,Int_t idx=1,Float_t scale=-1,Int_t dp=0,Int_t mode=1,Int_t mcol=4);
66   TObjArray* SortDevices(const char* classname,TString name,Int_t mode=-1,Int_t mcal=1); // Sort devices by signal
67   TObjArray* SortDevices(const char* classname,Int_t idx=1,Int_t mode=-1,Int_t mcal=1);  // Sort devices by signal
68   TObjArray* SortDevices(TObjArray* hits,TString name,Int_t mode=-1,Int_t mcal=1);       // Sort devices by signal
69   TObjArray* SortDevices(TObjArray* hits,Int_t idx=1,Int_t mode=-1,Int_t mcal=1);        // Sort devices by signal
70
71  protected:
72   Int_t fRun;                           // The run number
73   Int_t fEvent;                         // The event number
74   Int_t fAproj;                         // The projectile A value
75   Int_t fZproj;                         // The projectile Z value
76   Double_t fPnucProj;                   // The projectile momentum per nucleon
77   Int_t fIdProj;                        // User defined projectile particle ID
78   Int_t fAtarg;                         // The target A value
79   Int_t fZtarg;                         // The target Z value
80   Double_t fPnucTarg;                   // The target momentum per nucleon
81   Int_t fIdTarg;                        // User defined target particle ID
82   TObjArray* fDevices;                  // Array to hold the pointers to the various devices
83   Int_t fDevCopy;                       // Flag to denote creation of private copies of the devices
84   void LoadHits(const char* classname); // Load references to the hits registered to the specified device class
85   TObjArray* fHits;                     //! Temp. array to hold references to the registered AliDevice hits
86   TObjArray* fOrdered;                  //! Temp. array to hold references to various ordered objects
87   TObject* fDisplay;                    //! Temp. pointer to hold objects which serve event displays
88   TObjArray* fDevs;                     //! Temp. array to hold references to user selected devices
89
90  ClassDef(AliEvent,21) // Creation and investigation of an Alice physics event.
91 };
92 #endif