e547630e79b3432e7d0c7cdf794e304936aed634
[u/mrichter/AliRoot.git] / PHOS / AliPHOSJet.h
1 #ifndef ALIJET_H
2 #define ALIJET_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //_________________________________________________________________________
7 //  Base Class for Jets in ALICE
8 //                  
9 //*-- Author: D.Peressounko
10
11
12 // --- ROOT system ---
13 #include "TObject.h"
14 class TParticle ;
15 #include "TArrayI.h"
16
17 // --- Standard library ---
18
19 // --- AliRoot header files ---
20
21 class AliPHOSJet : public TObject {
22
23 public:
24   AliPHOSJet() ;          // ctor
25   AliPHOSJet(const AliPHOSJet & jet){} ;          // ctor
26   virtual ~AliPHOSJet() ; 
27
28   void AddDigit(const Double_t e,const Double_t eta,const Double_t phi,const Int_t index) ;
29   void AddParticle(const TParticle * p,const Int_t index) ;
30   //adds particle p to jet. index: index of p in list of all particles in event
31
32   Double_t DistanceToJet(const TParticle *p)const ;
33   //calculates distance to Jet in accordance with some scheam: 
34   //geometrical, inv mass, etc
35
36   void CalculateAll(void) ;
37   //calculate final Energy, Eta & phi from intermediate ones.
38
39   const Int_t * Indexs(Int_t & nIndexs)const{nIndexs = fNpart; return fList->GetArray() ;}
40
41   Bool_t IsInCone(const TParticle * p)const ;
42   Bool_t IsInCone(const Double_t e,const Double_t eta,const Double_t phi)const ;
43   Bool_t AcceptConeDeviation(const TParticle *p)const ;
44   Bool_t AcceptConeDeviation(const Double_t e,const Double_t eta,const Double_t phi)const ;
45
46   void SetConeRadius(Double_t r){fConeRad = r ;} ;
47   void SetMaxConeMove(Double_t max = 0.15){fMaxConeMove = max ;} ;
48   void SetMinConeMove(Double_t min = 0.05){fMinConeMove = min ;} ;
49
50   Double_t Energy(void)const{if(fEnergy) return fEnergy ;
51                         else return fSumEnergy ;}
52   Double_t Eta(void)const{if(fEta) return fEta; 
53                           else return fSumEta/fSumEnergy ;}
54   Double_t Phi(void)const{if(fPhi) return fPhi; 
55                           else return fSumPhi/fSumEnergy ;}
56   Int_t GetNJetParticles(void)const{return fNpart;}
57
58   void Print(Option_t * option="") ;
59
60 private:
61   Int_t      fNpart ;     //Number of particles in jet
62   TArrayI *  fList ;      //Indexes of particles in list
63
64   Double_t   fConeRad ;
65   Double_t   fMaxConeMove ;
66   Double_t   fMinConeMove ;  
67   Double_t   fSumEnergy ; //! Intermediate energy
68   Double_t   fSumEta ;    //! Intermediate eta
69   Double_t   fSumPhi ;    //! Intermediate phi
70   Double_t   fEnergy ;    //Energy of the jet
71   Double_t   fEta ;       //Eta directtion of the jet
72   Double_t   fPhi ;       //Phi direction of the jet
73   Double_t   fLEnergy ;    //Energy of Leading particle of jet
74   Double_t   fLEta ;       //Eta directtion of Leading particle of the jet
75   Double_t   fLPhi ;       //Phi direction of leading particles of the jet
76
77   ClassDef(AliPHOSJet,1)  // description 
78
79 };
80
81 #endif // ALIJET_H