]>
Commit | Line | Data |
---|---|---|
61e0abb5 | 1 | #ifndef ALIEMCALDIGIT_H |
2 | #define ALIEMCALDIGIT_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 | //_________________________________________________________________________ | |
ffa6d63b | 9 | // EMCAL digit: |
10 | // | |
11 | // A Digit is the sum of energy in a Tower (Hit sum) and stores information, about primaries | |
fdebddeb | 12 | // and entering particle contributing to a Digit |
61e0abb5 | 13 | // |
ffa6d63b | 14 | //*-- Author: Sahal Yacoob (LBL) |
15 | // based on : AliPHOSDigit | |
16 | //___________________________________________________________________________ | |
61e0abb5 | 17 | |
18 | // --- ROOT system --- | |
19 | ||
20 | #include "TObject.h" | |
21 | ||
22 | // --- Standard library --- | |
23 | ||
24 | // --- AliRoot header files --- | |
61e0abb5 | 25 | #include "AliDigitNew.h" |
26 | ||
27 | class AliEMCALDigit : public AliDigitNew { | |
28 | ||
29 | friend ostream& operator << ( ostream& , const AliEMCALDigit&) ; | |
30 | ||
31 | public: | |
32 | ||
33 | AliEMCALDigit() ; | |
2cd0ffda | 34 | AliEMCALDigit(Int_t primary, Int_t iparent, Int_t id, Float_t digEnergy, Float_t time, Int_t type,Int_t index = -1, Float_t chi2=0, Int_t ndf=0, Float_t dE = 0) ; |
61e0abb5 | 35 | AliEMCALDigit(const AliEMCALDigit & digit) ; |
36 | virtual ~AliEMCALDigit() ; | |
37 | ||
38 | Bool_t operator==(const AliEMCALDigit &rValue) const; | |
0a4cb131 | 39 | AliEMCALDigit operator+(const AliEMCALDigit &rValue) ; |
40 | AliEMCALDigit operator*(Float_t factor) ; | |
14ce0a6e | 41 | const AliEMCALDigit& operator = (const AliEMCALDigit &) {return *this;} |
6cc75819 | 42 | enum digitType{kUnknown=-1, kHG=0, kLG=1, kLGnoHG=2, kTrigger=3, kEmbedded = 4}; |
43 | ||
44 | void Clear(const Option_t*) ; | |
45 | Int_t Compare(const TObject * obj) const ; | |
46 | Float_t GetAmplitude() const { if(!fAmp)return fAmpFloat ; else return fAmp ;}//Keep backward compatibility. | |
47 | Float_t GetEta() const ; | |
48 | Int_t GetNprimary() const { return fNprimary ;} | |
49 | Int_t GetPrimary(Int_t index) const ; | |
50 | Float_t GetDEPrimary(Int_t index) const ; | |
51 | Int_t GetNiparent() const { return fNiparent ;} | |
52 | Int_t GetIparent(Int_t index) const ; | |
53 | Float_t GetDEParent(Int_t index) const ; | |
54 | Float_t GetPhi() const ; | |
55 | Float_t GetTime(void) const { return fTime ;} | |
56 | Float_t GetTimeR(void) const { return fTimeR ;} | |
57 | Float_t GetChi2(void) const { return fChi2 ;} | |
58 | Int_t GetNDF(void) const { return fNDF ;} | |
59 | Bool_t IsSortable() const { return kTRUE ;} | |
60 | Int_t GetType() const { return fDigitType ;} | |
829ba234 | 61 | |
6cc75819 | 62 | void SetAmp(Int_t amp) { fAmp = amp ; } //old |
63 | void SetAmplitude(Float_t amp) { fAmpFloat = amp ; } | |
64 | void SetId(Int_t idt) { fId = idt ; } | |
65 | void SetTime(Float_t time) { fTime = time ; } | |
66 | void SetTimeR(Float_t time) { fTimeR = time ; } | |
67 | void SetChi2(Float_t chi) { fChi2 = chi ; } | |
68 | void SetNDF(Int_t ndf) { fNDF = ndf ; } | |
69 | void SetType(Int_t t) { fDigitType = t ; } | |
70 | void ShiftPrimary(Int_t shift); // shift to separate different TreeK in merging | |
8a84b948 | 71 | |
829ba234 | 72 | //Raw time sample |
73 | //ALTRO | |
6cc75819 | 74 | Int_t GetNALTROSamplesLG() const {if(fDigitType==kLG) return fNSamples; else return 0 ; } |
75 | Bool_t GetALTROSampleLG(const Int_t iSample, Int_t& timeBin, Int_t& amp) const; | |
76 | Int_t GetNALTROSamplesHG() const {if(fDigitType==kHG) return fNSamplesHG; else return 0 ; } | |
77 | Bool_t GetALTROSampleHG(const Int_t iSample, Int_t& timeBin, Int_t& amp) const; | |
829ba234 | 78 | //FALTRO, trigger. Same data members as Low Gain |
6cc75819 | 79 | Int_t GetNFALTROSamples() const {if(fDigitType==kTrigger) return fNSamples; else return 0 ; } |
80 | Bool_t GetFALTROSample(const Int_t iSample, Int_t& timeBin, Int_t& amp) const ; | |
829ba234 | 81 | |
6cc75819 | 82 | void SetALTROSamplesHG (const Int_t nSamplesHG, Int_t *samplesHG); |
83 | void SetALTROSamplesLG (const Int_t nSamplesLG, Int_t *samplesLG); | |
84 | void SetFALTROSamples (const Int_t nSamples, Int_t *samples) | |
85 | { if(fDigitType==kTrigger) SetALTROSamplesLG(nSamples, samples) ; } | |
88cb7938 | 86 | |
6cc75819 | 87 | void SetCalibAmp(Float_t amp) { fAmpCalib = amp ; } |
88 | Double_t GetCalibAmp() const { return fAmpCalib ; } | |
8a84b948 | 89 | |
6cc75819 | 90 | void Print(const Option_t* /*opt*/) const; |
829ba234 | 91 | |
92 | private: | |
93 | ||
6cc75819 | 94 | Float_t fAmpFloat; // Cell amplitude, float |
95 | Int_t fNSamples; // Number of time samples, Low Gain for ALTRO, used also for FALTRO | |
61d80ce0 | 96 | Int_t *fSamples; //[fNSamples], list of time bin constents, Low Gain for ALTRO, used also for FALTRO |
6cc75819 | 97 | Int_t fNSamplesHG; // Number of time samples, High Gain for ALTRO |
98 | Int_t *fSamplesHG; //[fNSamples], list of time bin constents, High Gain for ALTRO, used also for FALTRO | |
829ba234 | 99 | |
6cc75819 | 100 | Int_t fNprimary ; // Number of primaries |
101 | Int_t fNMaxPrimary ; // Max Number of primaries | |
102 | Int_t *fPrimary ; //[fNMaxPrimary] Array of primaries | |
103 | Float_t *fDEPrimary ; //[fNMaxPrimary] Array of primary energy contributions | |
61e0abb5 | 104 | |
6cc75819 | 105 | Int_t fNiparent ; // Number of initial parents |
106 | Int_t fNMaxiparent ; // Max Number of parents | |
107 | Int_t *fIparent ; //[fNMaxiparent] Array of parents | |
108 | Float_t *fDEParent; //[fNMaxiparent] Array of parent energy contributions | |
109 | Int_t fMaxIter ; // Number to Increment Maxiparent, and MaxPrimary if default is not sufficient | |
110 | Float_t fTime ; // Calculated time | |
111 | Float_t fTimeR ; // Earliest time: to be used by Digits2Raw | |
829ba234 | 112 | //Fit quality parameters |
6cc75819 | 113 | Float_t fChi2; // Fit Chi aquare |
114 | Int_t fNDF; // Fit Number of Degrees of Freedom | |
829ba234 | 115 | |
6cc75819 | 116 | Int_t fDigitType; // This is a trigger digit(0), HG (1) or LG (3) |
61d80ce0 | 117 | Float_t fAmpCalib; //! Calibrated energy |
61e0abb5 | 118 | |
8a84b948 | 119 | ClassDef(AliEMCALDigit,6) // Digit in EMCAL |
61e0abb5 | 120 | } ; |
121 | ||
122 | #endif // ALIEMCALDIGIT_H |