Small changes
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALTowerRecPoint.h
CommitLineData
ab48128d 1#ifndef ALIEMCALTOWERRECPOINT_H
2#define ALIEMCALTOWERRECPOINT_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// RecPoint implementation for EMCAL-EMC
10// An TowerRecPoint is a cluster of digits
11//
12//*-- Author: Dmitri Peressounko (RRC KI & SUBATECH)
13//*-- Author: Yves Schutz (SUBATECH)
14
15// --- ROOT system ---
16
ab48128d 17#include "TArrayI.h"
12c037a8 18class TVector3 ;
19
ab48128d 20// --- Standard library ---
21
22// --- AliRoot header files ---
23
24#include "AliEMCALDigit.h"
25#include "AliEMCALRecPoint.h"
26
27class AliEMCALTowerRecPoint : public AliEMCALRecPoint {
28
29public:
30
31 AliEMCALTowerRecPoint() ;
32 AliEMCALTowerRecPoint(const char * opt) ;
6e34cfde 33 AliEMCALTowerRecPoint(const AliEMCALTowerRecPoint & rp):AliEMCALRecPoint(rp) {
ab48128d 34 // cpy ctor requested by Coding Convention
35 // but not yet needed
36 assert(0==1) ;
37 }
38
39 virtual ~AliEMCALTowerRecPoint() ;
40
41 virtual void AddDigit(AliEMCALDigit & digit, Float_t Energy) ; // add a digit to the digits list
42 Int_t Compare(const TObject * obj) const; // method for sorting
43
44 virtual void EvalAll(Float_t logWeight,TClonesArray * digits) ;
45 virtual void EvalGlobalPosition(Float_t logWeight, TClonesArray * digits) ;
46
9e5d2067 47 virtual void ExecuteEvent(Int_t /*event*/, Int_t, Int_t) const;
ab48128d 48
49 Float_t GetCoreEnergy()const {return fCoreEnergy ;}
50 virtual Float_t GetDispersion()const {return fDispersion ;}
51 virtual void GetElipsAxis(Float_t * lambda)const { lambda[0] = fLambda[0] ;
52 lambda[1] = fLambda[1] ; }
53 Float_t * GetEnergiesList() const {return fEnergyList ;} // gets the list of energies making this recpoint
54 Float_t GetMaximalEnergy(void) const ; // get the highest energy in the cluster
55 Int_t GetMaximumMultiplicity() const {return fMaxDigit ;} // gets the maximum number of digits allowed
56 Int_t GetMultiplicity(void) const { return fMulDigit ; } // gets the number of digits making this recpoint
57 Int_t GetMultiplicityAtLevel(const Float_t level) const ; // computes multiplicity of digits with
58 // energy above relative level
a0636361 59 virtual Int_t GetNumberOfLocalMax(AliEMCALDigit ** maxAt, Float_t * maxAtEnergy,
ab48128d 60 Float_t locMaxCut,TClonesArray * digits ) const ;
61 // searches for the local maxima
62 Float_t GetTime(void) const{return fTime ; }
ab48128d 63 Bool_t IsSortable() const {return kTRUE ; } // says that emcrecpoints are sortable objects
9e5d2067 64 void Print(Option_t * /*opt = "void"*/) ;
12c037a8 65 const TVector3 XYZInAlice(Float_t r = 9999., Float_t theta = 9999., Float_t phi = 9999.) const ;
ab48128d 66
67 AliEMCALTowerRecPoint & operator = (const AliEMCALTowerRecPoint & rvalue) {
68 // assignement operator requested by coding convention but not needed
69 assert(0==1) ;
70 return *this ;
71 }
72
73 protected:
74 void EvalCoreEnergy(Float_t logWeight,TClonesArray * digits) ;
9e5d2067 75 virtual void EvalLocalPosition(Float_t /*logWeight*/,TClonesArray * /*digits*/) {;}// computes the position in the EMCAL module
ab48128d 76 virtual void EvalDispersion(Float_t logWeight,TClonesArray * digits) ; // computes the dispersion of the shower
77 virtual void EvalElipsAxis(Float_t logWeight, TClonesArray * digits ); // computes the axis of shower ellipsoide
78 void EvalTime( TClonesArray * digits );
79 virtual Bool_t AreNeighbours(AliEMCALDigit * digit1, AliEMCALDigit * digit2 ) const ;
80
81 Float_t fCoreEnergy ; // energy in a shower core
82 Float_t fLambda[2] ; // shower ellipse axes
83 Float_t fDispersion ; // shower dispersion
84 Float_t *fEnergyList ; //[fMulDigit] energy of digits
85 Float_t fTime ; // Time of the digit with maximal energy deposition
86
6e34cfde 87 ClassDef(AliEMCALTowerRecPoint,2) // Tower RecPoint (cluster)
ab48128d 88
89};
90
91#endif // AliEMCALTOWERRECPOINT_H