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