Transition to NewIO
[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     void    SetRandomized(Bool_t rd = kTRUE){fRandomized = rd;}
40     Bool_t  IsRandomized()const {return fRandomized;}
41   protected:
42     Int_t  fSize;       //!current size of the array
43     AliHBTParticle ** fParticles; //!array of pointers to the particles
44     Int_t  fNParticles; //!number of particles in Event
45     Bool_t fOwner;      //flag if that event owns the 
46     Bool_t fRandomized; //!flag indicating if particles positions has been already randomizd
47     void   Expand();    //expands the array if necessary
48
49   private:
50     ClassDef(AliHBTEvent,1)
51  };
52 /**************************************************************************/ 
53  
54 inline 
55 AliHBTParticle* AliHBTEvent::GetParticle(Int_t n)
56  {
57  //Gets particle without boundary check
58    return fParticles[n];
59  }
60
61 /**************************************************************************/ 
62  
63 inline 
64 Int_t  AliHBTEvent::GetNumberOfParticles() const
65  {
66  //reurns number of particles in this event
67    return fNParticles;
68  }
69  
70 #endif