Line data Source code
1 : #ifndef ALIVCALOCELLS_H
2 : #define ALIVCALOCELLS_H
3 : /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //-------------------------------------------------------------------------
7 : /// \class AliVCaloCells
8 : /// \brief Virtual class for calorimeter cell data handling
9 : ///
10 : /// Virtual class to access calorimeter (PHOS,EMCal) cell data
11 : ///
12 : /// \author Gustavo Conesa Balbastre, <Gustavo.Conesa.Balbastre@cern.ch>, LPSC-Grenoble
13 : //
14 : //-------------------------------------------------------------------------
15 :
16 : #include <TNamed.h>
17 : #include <TMath.h>
18 :
19 : class AliVCaloCells : public TNamed
20 : {
21 : public:
22 :
23 : enum VCells_t {kUndef = -1,
24 : kPHOSCell,
25 : kEMCALCell};
26 :
27 80 : AliVCaloCells() : TNamed() {;}
28 0 : AliVCaloCells(const char* name, const char* title) : TNamed(name, title) {;}
29 0 : AliVCaloCells(const AliVCaloCells& cells) : TNamed(cells.GetName(), cells.GetTitle()) {;}
30 : AliVCaloCells & operator=(const AliVCaloCells& cells ) ;
31 40 : virtual ~AliVCaloCells() {;}
32 0 : void Clear(const Option_t*) {;}
33 :
34 : virtual Bool_t IsEMCAL() const = 0;
35 : virtual Bool_t IsPHOS() const = 0;
36 : virtual Char_t GetType() const = 0;
37 : virtual void SetType(Char_t ttype) = 0;
38 :
39 : virtual void CreateContainer(Short_t nCells) = 0;
40 : virtual void DeleteContainer() = 0;
41 : virtual void Sort() = 0;
42 :
43 : virtual Bool_t GetCell(Short_t pos, Short_t &cellNumber, Double_t &litude, Double_t &time, Int_t &mclabel, Double_t &efrac) const = 0;
44 : virtual Bool_t SetCell(Short_t pos, Short_t cellNumber, Double_t amplitude, Double_t time, Int_t mclabel=-1, Double_t efrac=0, Bool_t isHG=kTRUE) = 0;
45 :
46 : virtual Short_t GetNumberOfCells() const = 0;
47 : virtual void SetNumberOfCells(Int_t n) = 0;
48 :
49 : virtual Double_t GetCellAmplitude(Short_t cellNumber) = 0;
50 : virtual Bool_t GetCellHighGain(Short_t cellNumber) = 0;
51 : virtual Double_t GetCellTime(Short_t cellNumber) = 0;
52 : virtual Short_t GetCellPosition(Short_t cellNumber) = 0;
53 :
54 : virtual Double_t GetAmplitude(Short_t pos) const = 0;
55 : virtual Bool_t GetHighGain(Short_t pos) const = 0;
56 : virtual Double_t GetTime(Short_t pos) const = 0;
57 : virtual Short_t GetCellNumber(Short_t pos) const = 0;
58 :
59 : virtual void Copy(TObject &obj) const = 0;
60 : virtual AliVCaloCells* CopyCaloCells(Bool_t all) const = 0;
61 :
62 : // MC & embedding
63 : virtual Int_t GetCellMCLabel(Short_t cellNumber) = 0;
64 : virtual Int_t GetMCLabel(Short_t pos) const = 0;
65 :
66 : virtual Double_t GetCellEFraction(Short_t cellNumber) = 0;
67 : virtual Double_t GetEFraction(Short_t pos) const = 0;
68 :
69 : virtual void SetCellEFraction(Short_t cellNumber, Double_t efrac) = 0;
70 : virtual void SetEFraction (Short_t pos, Double_t efrac) = 0;
71 :
72 : /// \cond CLASSIMP
73 196 : ClassDef(AliVCaloCells, 0) ;
74 : /// \endcond
75 :
76 : };
77 :
78 : #endif
|