]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTRun.h
Adaption to new fluka common blocks (E. Futo)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTRun.h
CommitLineData
1b446896 1#ifndef ALIHBTRUN_H
2#define ALIHBTRUN_H
e1c43ab8 3//____________________
4///////////////////////////////////////////////////////
5// //
6// AliHBTRun //
7// //
8// Class storing and managing set events //
9// designed for fast acces //
10// //
11// Piotr.Skowronski@cern.ch //
12// http://alisoft.cern.ch/people/skowron/analyzer //
13// //
14///////////////////////////////////////////////////////
15
1b446896 16
17#include "AliHBTEvent.h"
18#include <TObjArray.h>
19
1b446896 20class AliHBTParticle;
21
22class AliHBTEvent;
23
24class AliHBTRun: public TObject
25 {
26 public:
27 AliHBTRun();
28 virtual ~AliHBTRun();
29
30 void AddParticle(Int_t event, AliHBTParticle* part); //inerface to AliHBTEvent::AddParticle(AliHBTParticle*)
8089a083 31 void AddParticle(Int_t event, TParticle* part, Int_t idx);//inerface to AliHBTEvent::AddParticle(TParticle*)
1b446896 32
33 //inerface to AliHBTEvent::AddParticle(Int_t.Double_t,Double_t,Double_t,Double_t,Double_t,Double_t,Double_t,Double_t,Double_t)
8089a083 34 void AddParticle(Int_t event, Int_t pdg, Int_t idx,
1b446896 35 Double_t px, Double_t py, Double_t pz, Double_t etot,
36 Double_t vx, Double_t vy, Double_t vz, Double_t time);
37
38 AliHBTParticle* GetParticle(Int_t event, Int_t n); //returns nth particle from event
39 AliHBTEvent* GetEvent(Int_t event) const; //returns AliHBTEvent number "event"
40
41 Int_t GetNumberOfEvents() const; //returns number of events
42 Int_t GetNumberOfParticlesInEvent(Int_t event) const; //returns number of particles in event number "event"
43 void Reset();//clears all events in the array (deletes)
44 protected:
45 TObjArray* fEvents;//!Array containig AliHBTEvents
46 private:
47
48 public:
49 ClassDef(AliHBTRun,1)
50 };
51
52
53/**************************************************************************/
54
55inline
56AliHBTEvent* AliHBTRun::GetEvent(Int_t event) const
57{
58//returns pointer to AliHBTEvent number "event"
e1c43ab8 59 //check if array is enough big - protect from error massage from array "Out Of Bounds"
60 if (event>=fEvents->GetSize()) return 0x0;//WARNING, that line relies
61 //on index of first object in TObjArray is 0
62 //== LowerBound = 0
1b446896 63 return (AliHBTEvent*)fEvents->At(event);
64}
65/**************************************************************************/
66inline
67AliHBTParticle* AliHBTRun::GetParticle(Int_t event, Int_t n)
68{
69 //returns nth particle from event number event
e1c43ab8 70 AliHBTEvent* e = GetEvent(event);
71 return (e)?e->GetParticle(n):0x0;
1b446896 72}
73
74/**************************************************************************/
75
76inline
77Int_t AliHBTRun::GetNumberOfEvents() const
78 {
79//returns number of events in collection
80
81 return fEvents->GetEntriesFast(); //there may be empty slots but we do not care
82 //Analysis checks it if return is not NULL
83 }
84/**************************************************************************/
85
86inline
87Int_t AliHBTRun::GetNumberOfParticlesInEvent(Int_t event) const
88{
89//returns number of Particles in event
e1c43ab8 90 AliHBTEvent* e = GetEvent(event);
91 return (e)?e->GetNumberOfParticles():0x0;
1b446896 92}
93
94#endif