Added reference from vertex to candidate (Andrea)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRawDigiProducer.h
1 #ifndef ALIPHOSRAWDIGIPRODUCER_H
2 #define ALIPHOSRAWDIGIPRODUCER_H
3 /* Copyright(c) 2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                          */
5
6 /* $Id$ */
7
8 //This class produces PHOS digits of one event
9 //using AliPHOSRawDecoder. See cxx source for use case.
10
11 class AliPHOSRawDecoder;
12 class AliPHOSCalibData ;
13 class AliPHOSDigit ;
14 class AliPHOSRecoParam ;
15 class AliPHOSGeometry ;
16 class AliPHOSPulseGenerator;
17 #include "TObject.h"
18
19 class AliPHOSRawDigiProducer: public TObject {
20
21 public:
22
23   AliPHOSRawDigiProducer() ;
24   AliPHOSRawDigiProducer(const AliPHOSRecoParam* parEmc, const AliPHOSRecoParam* parCpv) ;
25   AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp);
26   AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp);
27  
28   virtual ~AliPHOSRawDigiProducer(); 
29
30   void MakeDigits(TClonesArray *digits, AliPHOSRawDecoder* decoder);
31
32 protected:
33
34   void GetCalibrationParameters() ; //Extract calibration parameters from DB
35   void CleanDigits(TClonesArray* digits) ; //remove digits below threshold and bad ones
36   
37   Bool_t IsInEMC(AliPHOSDigit* digit) const ; //tests if digit belongs to EMC
38   Bool_t IsInCPV(AliPHOSDigit* digit) const ;
39
40   Double_t CalibrateE(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate energy 
41   Double_t CalibrateT(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate time
42
43 private:
44   Float_t fEmcMinE ;                 // minimum energy of digit to be included into cluster
45   Float_t fCpvMinE ;                 // minimum energy of digit to be included into cluster
46   Float_t fSampleQualityCut;         // Cut on sample shapes: 0: no samples; 1: default parameterization; 999: accept even obviously bad
47
48   Int_t fEmcCrystals ;               //  number of EMC crystalls
49   AliPHOSGeometry * fGeom ;          //! PHOS geometry
50   static AliPHOSCalibData * fgCalibData ;   //! Calibration database if aval.
51   AliPHOSPulseGenerator * fPulseGenerator ; //! Class with pulse parameters
52
53   ClassDef(AliPHOSRawDigiProducer,2)
54 };
55
56 #endif