Added hard partons.
[u/mrichter/AliRoot.git] / JETAN / AliJetEventParticles.h
1 #ifndef ALIJETEVENTPARTICLES_H
2 #define ALIJETEVENTPARTICLES_H
3
4 /* $Id$ */
5
6 ///////////////////////////////////////////////////////////////////
7 //
8 // class AliJetEventParticles
9 //
10 // loizides@ikf.uni-frankfurt.de 
11 //
12 ///////////////////////////////////////////////////////////////////
13
14 #include <TObject.h>
15 //#include <TObjString.h>
16 #include <TString.h>
17 class TParticle;
18 class TClonesArray;
19 class AliJetParticle;
20
21 class AliJetEventParticles: public TObject
22 {
23   public:
24   AliJetEventParticles(Int_t size=1000);
25   AliJetEventParticles(const AliJetEventParticles& source);
26   virtual ~AliJetEventParticles();
27     
28   void SetVertex(Float_t v[3]){fVertexX=v[0];fVertexY=v[1];fVertexZ=v[2];}
29   void SetVertex(Float_t v1,Float_t v2, Float_t v3){fVertexX=v1;fVertexY=v2;fVertexZ=v3;}
30   void SetHeader(TString& s){fHeader=s;}
31   void Reset(Int_t size=-1); //deletes all entries
32   
33   //adds particle to the event
34   void AddParticle(AliJetParticle* p);  
35   void AddParticle(const AliJetParticle* p); 
36   void AddParticle(const TParticle* part,Int_t idx=-1, Int_t l=0); 
37   void AddParticle(Float_t px, Float_t py, Float_t pz, Float_t etot, Int_t idx=-1, Int_t l=0);
38   void AddParticle(Float_t px, Float_t py, Float_t pz, Float_t etot, Int_t idx, Int_t l,
39                    Float_t pt, Float_t phi, Float_t eta);
40
41   const AliJetParticle* GetParticle(Int_t n) //gets particle without boundary check
42     {return (const AliJetParticle*)fParticles->At(n);} 
43   const AliJetParticle* GetParticleSafely(Int_t n); 
44   Int_t GetNParticles()              const {return fNParticles;}
45   const TClonesArray* GetParticles() const {return fParticles;}
46   Float_t GetVertexX()               const {return fVertexX;}  
47   Float_t GetVertexY()               const {return fVertexY;}  
48   Float_t GetVertexZ()               const {return fVertexZ;}  
49
50   Int_t    Trials()         const {return fTrials;}
51   Int_t    NTriggerJets()   const {return fNJets;}
52   Int_t    NUQTriggerJets() const {return fNUQJets;}
53   void     TriggerJet(Int_t i, Float_t p[4]) const;
54   void     UQJet(Int_t i, Float_t p[4])      const;
55   void     TriggerJet(Int_t i, Float_t &p1, Float_t &p2, Float_t &p3, Float_t &E)          const;
56   void     UQJet(Int_t i, Float_t &p1, Float_t &p2, Float_t &p3, Float_t &E)               const;
57   void     Hard(Int_t i, Float_t &p1, Float_t &p2, Float_t &p3, Float_t &E, Float_t &type) const;
58   Double_t GetXJet() const {return fXJet;}
59   Double_t GetYJet() const {return fYJet;}    
60   void     GetZQuench(Double_t z[4]) const;
61   TString  getHeader() const {return fHeader;}
62
63   void     SetXYJet(Double_t x, Double_t y); 
64   void     SetZQuench(Double_t z[4]);
65   void     SetTrials(Int_t trials) {fTrials = trials;}
66   void     AddJet(Float_t px, Float_t py, Float_t pz, Float_t e);
67   void     AddUQJet(Float_t px, Float_t py, Float_t pz, Float_t e);
68   void     AddJet(Float_t p[4]);
69   void     AddUQJet(Float_t p[4]);
70   void     AddHard(Int_t i,Float_t px, Float_t py, Float_t pz, Float_t e, Float_t type);
71
72   void Print(Option_t *t="") const;
73
74   protected:
75   TString fHeader;          //   event description
76   Int_t fNParticles;        //   number of particles read
77   TClonesArray *fParticles; //-> particles in event
78
79   Float_t fVertexX;         // vertex x
80   Float_t fVertexY;         // vertex y
81   Float_t fVertexZ;         // vertex z
82
83   Int_t    fTrials;         // Number of trials to fulfill trigger condition
84   Int_t    fNJets;          // Number of triggered jets
85   Int_t    fNUQJets;        // Number of unquenched
86   Double_t fXJet;           // Jet production point (x)
87   Double_t fYJet;           // Jet production point (y)
88   Float_t  fJets[4][10];    // Trigger jets
89   Float_t  fUQJets[4][10];  // Unquenched trigger jets
90   Float_t  fHard[5][2];     // Hard partons
91   Double_t fZquench[4];     // Quenching fraction
92
93   ClassDef(AliJetEventParticles,4) //class AliJetEventParticles
94 };
95 #endif