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