8cd982b12bdcf8b9d035906afa8d901788560f5f
[u/mrichter/AliRoot.git] / HBTAN / AliHBTEvent.h
1 #ifndef ALIHBTEvent_H
2 #define ALIHBTEvent_H
3 //__________________________________________________________
4 ///////////////////////////////////////////////////////////////////
5 //
6 // class AliHBTEvent
7 //
8 // This class is container for paticles coming from one event
9 //
10 // more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
11 //
12 // Piotr.Skowronski@cern.ch 
13 //
14 ///////////////////////////////////////////////////////////////////
15
16 #include <TObject.h>
17
18 class AliHBTParticle;
19 class TParticle;
20 class AliHBTEvent: public TObject
21  {
22   public:
23     AliHBTEvent();
24     virtual ~AliHBTEvent();
25     const static UInt_t fgkInitEventSize; //initial number of the array
26                                          //if expanded, this size is used also
27     AliHBTParticle* GetParticle(Int_t n);  //gets particle 
28     AliHBTParticle* GetParticleSafely(Int_t n); //gets particle with index check
29     
30     void    AddParticle(AliHBTParticle*); //adds particle to the event
31     void    AddParticle(TParticle*, Int_t idx); //adds particle to the event
32     void    AddParticle(Int_t pdg, Int_t idx, Double_t px, Double_t py, Double_t pz, Double_t etot,
33                         Double_t vx, Double_t vy, Double_t vz, Double_t time);
34     
35     Int_t   GetNumberOfParticles() const;
36     void    Reset(); //deletes all entries
37     void    SetOwner(Bool_t owns = kTRUE){ fOwner = owns; }
38     Bool_t  IsOwner() {return fOwner;}
39   protected:
40     AliHBTParticle ** fParticles; //!array of pointers to the particles
41     Int_t  fNParticles; //!number of particles in Event
42     Int_t  fSize;       //!current size of the array
43     Bool_t fOwner;      //flag if that event owns the 
44     void   Expand();    //expands the array if necessary
45   private:
46     
47   public:
48     ClassDef(AliHBTEvent,1)
49  };
50 /**************************************************************************/ 
51  
52 inline 
53 AliHBTParticle* AliHBTEvent::GetParticle(Int_t n)
54  {
55  //Gets particle without boundary check
56    return fParticles[n];
57  }
58
59 /**************************************************************************/ 
60  
61 inline 
62 Int_t  AliHBTEvent::GetNumberOfParticles() const
63  {
64  //reurns number of particles in this event
65    return fNParticles;
66  }
67  
68 #endif