Cluster Map moved to ANALYSIS
[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 // -----------------------------------------------------------------
11 // more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
12 //
13 // Piotr.Skowronski@cern.ch 
14 //
15 ///////////////////////////////////////////////////////////////////
16
17 #include <TObject.h>
18
19 class AliHBTParticle;
20 class TParticle;
21 class AliHBTEvent: public TObject
22  {
23   public:
24     AliHBTEvent();
25     AliHBTEvent(const AliHBTEvent& source);
26     virtual ~AliHBTEvent();
27     
28     AliHBTEvent& operator=(const AliHBTEvent& source);
29         
30     static const UInt_t fgkInitEventSize; //initial number of the array
31                                           //if expanded, this size is used also
32     AliHBTParticle* GetParticle(Int_t n);  //gets particle 
33     AliHBTParticle* GetParticleSafely(Int_t n); //gets particle with index check
34     
35     void    AddParticle(AliHBTParticle* hbtpart); //adds particle to the event
36     void    AddParticle(TParticle* part, Int_t idx); //adds particle to the event
37     void    AddParticle(Int_t pdg, Int_t idx, Double_t px, Double_t py, Double_t pz, Double_t etot,
38                         Double_t vx, Double_t vy, Double_t vz, Double_t time);
39     
40     Int_t   GetNumberOfParticles() const;
41     void    Reset(); //deletes all entries
42     void    SetOwner(Bool_t owns = kTRUE){ fOwner = owns; }
43     Bool_t  IsOwner() const {return fOwner;}
44     void    SetRandomized(Bool_t rd = kTRUE){fRandomized = rd;}
45     Bool_t  IsRandomized()const {return fRandomized;}
46     void    SwapParticles(Int_t i, Int_t j);//swaps particles positions; used by AliHBTEvent::Blend
47     
48   protected:
49     Int_t             fSize;       //!current size of the array
50     AliHBTParticle ** fParticles; //!array of pointers to the particles
51     Int_t             fNParticles; //!number of particles in Event
52     Bool_t            fOwner;      //flag if that event owns the 
53     Bool_t            fRandomized; //!flag indicating if particles positions has been already randomizd
54     void              Expand();    //expands the array if necessary
55
56   private:
57     ClassDef(AliHBTEvent,1)
58  };
59 /**************************************************************************/ 
60  
61 inline 
62 AliHBTParticle* AliHBTEvent::GetParticle(Int_t n)
63  {
64  //Gets particle without boundary check
65    return fParticles[n];
66  }
67
68 /**************************************************************************/ 
69  
70 inline 
71 Int_t  AliHBTEvent::GetNumberOfParticles() const
72  {
73  //reurns number of particles in this event
74    return fNParticles;
75  }
76  
77 #endif