]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSRawDigiProducer.h
Dependence on AliPHOSRecoParam removed.
[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 AliPHOSGeometry ;
15 class AliPHOSPulseGenerator;
16 #include "TObject.h"
17
18 class AliPHOSRawDigiProducer: public TObject {
19
20 public:
21
22   AliPHOSRawDigiProducer() ;
23   AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp);
24   AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp);
25  
26   virtual ~AliPHOSRawDigiProducer(); 
27
28   void MakeDigits(TClonesArray *digits, AliPHOSRawDecoder* decoder);
29
30   void SetEmcMinAmp(Float_t emcMin) { fEmcMinE=emcMin; }
31   void SetCpvMinAmp(Float_t cpvMin) { fCpvMinE=cpvMin; }
32   void SetSampleQualityCut(Float_t qcut) { fSampleQualityCut=qcut; }
33
34 protected:
35
36   void GetCalibrationParameters() ; //Extract calibration parameters from DB
37   void CleanDigits(TClonesArray* digits) ; //remove digits below threshold and bad ones
38   
39   Bool_t IsInEMC(AliPHOSDigit* digit) const ; //tests if digit belongs to EMC
40   Bool_t IsInCPV(AliPHOSDigit* digit) const ;
41
42   Double_t CalibrateE(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate energy 
43   Double_t CalibrateT(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate time
44
45 private:
46   Float_t fEmcMinE ;                 // minimum energy of digit (ADC)
47   Float_t fCpvMinE ;                 // minimum energy of digit (ADC)
48   Float_t fSampleQualityCut;         // Cut on sample shapes: 0: no samples; 1: default parameterization; 999: accept even obviously bad
49   Int_t fEmcCrystals ;               //  number of EMC crystals
50   AliPHOSGeometry * fGeom ;          //! PHOS geometry
51   static AliPHOSCalibData * fgCalibData ;   //! Calibration database if avalable
52   AliPHOSPulseGenerator * fPulseGenerator ; //! Class with pulse shape parameters
53
54   ClassDef(AliPHOSRawDigiProducer,5)
55 };
56
57 #endif