/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-// $Id: AliEvent.h,v 1.4 2002/06/25 09:38:28 nick Exp $
+// $Id: AliEvent.h,v 1.17 2004/06/29 11:29:37 nick Exp $
-#include "Riostream.h"
#include <math.h>
#include "TObject.h"
#include "TObjArray.h"
#include "TDatime.h"
+#include "TTimeStamp.h"
#include "AliVertex.h"
-#include "AliCalorimeter.h"
+#include "AliDevice.h"
class AliEvent : public AliVertex
{
public:
AliEvent(); // Default constructor
AliEvent(Int_t n); // Create an event to hold initially n tracks
- ~AliEvent(); // Default destructor
+ virtual ~AliEvent(); // Default destructor
+ AliEvent(const AliEvent& evt); // Copy constructor
+ virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
virtual void SetOwner(Bool_t own=kTRUE);// Set ownership of all added objects
- void SetDayTime(TDatime& stamp); // Set the date and time stamp
+ void SetDayTime(TTimeStamp& stamp); // Set the date and time stamp exactly as specified (1 ns accuracy)
+ void SetDayTime(TDatime& stamp); // Set date and time stamp interpreted as local time (1 s accuracy)
void SetRunNumber(Int_t run); // Set the run number
void SetEventNumber(Int_t evt); // Set the event number
- void SetProjectile(Int_t a,Int_t z,Double_t pnuc); // Set projectile A, Z and momentum value per nucleon
- Int_t GetProjectileA(); // Provide A value of the projectile
- Int_t GetProjectileZ(); // Provide Z value of the projectile
- Double_t GetProjectilePnuc(); // Provide the projectile momentum value per nucleon
- void SetTarget(Int_t a,Int_t z,Double_t pnuc); // Set target A, Z and momentum value per nucleon
- Int_t GetTargetA(); // Provide A value of the target
- Int_t GetTargetZ(); // Provide Z value of the target
- Double_t GetTargetPnuc(); // Provide the target momentum value per nucleon
+ void SetProjectile(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set projectile A, Z, p per nucleon and id
+ Int_t GetProjectileA() const; // Provide A value of the projectile
+ Int_t GetProjectileZ() const; // Provide Z value of the projectile
+ Double_t GetProjectilePnuc() const; // Provide the projectile momentum value per nucleon
+ Int_t GetProjectileId() const; // Provide the user defined particle ID of the projectile
+ void SetTarget(Int_t a,Int_t z,Double_t pnuc,Int_t id=0); // Set target A, Z, p per nucleon and id
+ Int_t GetTargetA() const; // Provide A value of the target
+ Int_t GetTargetZ() const; // Provide Z value of the target
+ Double_t GetTargetPnuc() const; // Provide the target momentum value per nucleon
+ Int_t GetTargetId() const; // Provide the user defined particle ID of the target
void Reset(); // Reset all values
- TDatime GetDayTime(); // Provide the date and time stamp
- Int_t GetRunNumber(); // Provide the run number
- Int_t GetEventNumber(); // Provide the event number
- void HeaderInfo(); // Print the event header information
- void Info(TString f="car"); // Print the event info within coordinate frame f
- void SetCalCopy(Int_t j); // (De)activate creation of private copies in fCalorimeters
- Int_t GetCalCopy(); // Provide CalCopy flag value
- void AddCalorimeter(AliCalorimeter& c); // Add a calorimeter system to the event
- void AddCalorimeter(AliCalorimeter* c) { AddCalorimeter(*c); }
- Int_t GetNcalorimeters(); // Provide the number of calorimeter systems
- AliCalorimeter* GetCalorimeter(Int_t i);// Provide i-th calorimeter system of the event
- AliCalorimeter* GetCalorimeter(TString name); // Provide calorimeter with name "name"
+ TTimeStamp GetDayTime() const; // Provide the date and time stamp
+ Int_t GetRunNumber() const; // Provide the run number
+ Int_t GetEventNumber() const; // Provide the event number
+ virtual void HeaderData() const; // Print the event header information
+ virtual void Data(TString f="car"); // Print the event info within coordinate frame f
+ void SetDevCopy(Int_t j); // (De)activate creation of private copies of the devices
+ Int_t GetDevCopy() const; // Provide DevCopy flag value
+ void AddDevice(TObject& d); // Add a device to the event
+ void AddDevice(TObject* d) { AddDevice(*d); }
+ Int_t GetNdevices() const; // Provide the number of devices
+ void ShowDevices() const; // Provide on overview of the available devices
+ TObject* GetDevice(Int_t i) const; // Provide i-th device of the event
+ TObject* GetDevice(TString name) const; // Provide device with name "name"
+ Int_t GetNhits(const char* classname); // Provide number of hits for the specified device class
+ TObjArray* GetHits(const char* classname); // Provide refs to all hits of the specified device class
+ TObjArray* SortHits(TObjArray* hits,TString name,Int_t mode=-1); // Sort hits by named signal value
+ TObjArray* SortHits(TObjArray* hits,Int_t idx=1,Int_t mode=-1); // Sort hits by indexed signal value
protected:
- TDatime fDaytime; // The date and time stamp
- Int_t fRun; // The run number
- Int_t fEvent; // The event number
- Int_t fAproj; // The projectile A value
- Int_t fZproj; // The projectile Z value
- Double_t fPnucProj; // The projectile momentum per nucleon
- Int_t fAtarg; // The target A value
- Int_t fZtarg; // The target Z value
- Double_t fPnucTarg; // The target momentum per nucleon
- Int_t fNcals; // The number of calorimeter systems
- TObjArray* fCalorimeters; // Array to hold the pointers to the calorimeter systems
- Int_t fCalCopy; // Flag to denote creation of private copies in fCalorimeters
+ TTimeStamp fDaytime; // The date and time stamp
+ Int_t fRun; // The run number
+ Int_t fEvent; // The event number
+ Int_t fAproj; // The projectile A value
+ Int_t fZproj; // The projectile Z value
+ Double_t fPnucProj; // The projectile momentum per nucleon
+ Int_t fIdProj; // User defined projectile particle ID
+ Int_t fAtarg; // The target A value
+ Int_t fZtarg; // The target Z value
+ Double_t fPnucTarg; // The target momentum per nucleon
+ Int_t fIdTarg; // User defined target particle ID
+ TObjArray* fDevices; // Array to hold the pointers to the various devices
+ Int_t fDevCopy; // Flag to denote creation of private copies of the devices
+ void LoadHits(const char* classname); // Load references to the hits registered to the specified device class
+ TObjArray* fHits; //! Temp. array to hold references to the registered AliDevice hits
- ClassDef(AliEvent,3) // Creation and investigation of an Alice physics event.
+ ClassDef(AliEvent,15) // Creation and investigation of an Alice physics event.
};
#endif