25-apr-2002 NvE Projectile and target specifications introduced in AliEvent.
[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.3 2002/04/26 11:23:37 nick Exp $
7
8 #include <iomanip.h>
9 #include <math.h>
10  
11 #include "TObject.h"
12 #include "TObjArray.h"
13 #include "TDatime.h"
14  
15 #include "AliVertex.h"
16 #include "AliCalorimeter.h"
17  
18 class AliEvent : public AliVertex
19 {
20  public:
21   AliEvent();                             // Default constructor
22   AliEvent(Int_t n);                      // Create an event to hold initially n tracks
23   ~AliEvent();                            // Default destructor
24   virtual void SetOwner(Bool_t own=kTRUE);// Set ownership of all added objects
25   void SetDayTime(TDatime& stamp);        // Set the date and time stamp
26   void SetRunNumber(Int_t run);           // Set the run number
27   void SetEventNumber(Int_t evt);         // Set the event number
28   void SetProjectile(Int_t a,Int_t z,Double_t pnuc); // Set projectile A, Z and momentum value per nucleon
29   Int_t GetProjectileA();                 // Provide A value of the projectile
30   Int_t GetProjectileZ();                 // Provide Z value of the projectile
31   Double_t GetProjectilePnuc();           // Provide the projectile momentum value per nucleon
32   void SetTarget(Int_t a,Int_t z,Double_t pnuc); // Set target A, Z and momentum value per nucleon
33   Int_t GetTargetA();                     // Provide A value of the target
34   Int_t GetTargetZ();                     // Provide Z value of the target
35   Double_t GetTargetPnuc();               // Provide the target momentum value per nucleon
36   void Reset();                           // Reset all values
37   TDatime GetDayTime();                   // Provide the date and time stamp
38   Int_t GetRunNumber();                   // Provide the run number
39   Int_t GetEventNumber();                 // Provide the event number
40   void HeaderInfo();                      // Print the event header information
41   void Info(TString f="car");             // Print the event info within coordinate frame f
42   void SetCalCopy(Int_t j);               // (De)activate creation of private copies in fCalorimeters
43   Int_t GetCalCopy();                     // Provide CalCopy flag value      
44   void AddCalorimeter(AliCalorimeter& c); // Add a calorimeter system to the event
45   void AddCalorimeter(AliCalorimeter* c) { AddCalorimeter(*c); }
46   Int_t GetNcalorimeters();               // Provide the number of calorimeter systems
47   AliCalorimeter* GetCalorimeter(Int_t i);// Provide i-th calorimeter system of the event
48   AliCalorimeter* GetCalorimeter(TString name); // Provide calorimeter with name "name"
49
50  protected:
51   TDatime fDaytime;         // The date and time stamp
52   Int_t fRun;               // The run number
53   Int_t fEvent;             // The event number
54   Int_t fAproj;             // The projectile A value
55   Int_t fZproj;             // The projectile Z value
56   Double_t fPnucProj;       // The projectile momentum per nucleon
57   Int_t fAtarg;             // The target A value
58   Int_t fZtarg;             // The target Z value
59   Double_t fPnucTarg;       // The target momentum per nucleon
60   Int_t fNcals;             // The number of calorimeter systems 
61   TObjArray* fCalorimeters; // Array to hold the pointers to the calorimeter systems
62   Int_t fCalCopy;           // Flag to denote creation of private copies in fCalorimeters
63
64  ClassDef(AliEvent,3) // Creation and investigation of an Alice physics event.
65 };
66 #endif