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 */
8 //This class produces PHOS digits of one event
9 //using AliPHOSRawDecoder. See cxx source for use case.
11 class AliPHOSRawDecoder;
12 class AliPHOSCalibData ;
14 class AliPHOSGeometry ;
15 class AliPHOSPulseGenerator;
18 class AliPHOSRawDigiProducer: public TObject {
22 AliPHOSRawDigiProducer() ;
23 AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp);
24 AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp);
26 virtual ~AliPHOSRawDigiProducer();
28 void MakeDigits(TClonesArray *digits, AliPHOSRawDecoder* decoder);
30 void SetEmcMinAmp(Float_t emcMin) { fEmcMinE=emcMin; }
31 void SetCpvMinAmp(Float_t cpvMin) { fCpvMinE=cpvMin; }
32 void SetSampleQualityCut(Float_t qcut) { fSampleQualityCut=qcut; }
36 void GetCalibrationParameters() ; //Extract calibration parameters from DB
37 void CleanDigits(TClonesArray* digits) ; //remove digits below threshold and bad ones
39 Bool_t IsInEMC(AliPHOSDigit* digit) const ; //tests if digit belongs to EMC
40 Bool_t IsInCPV(AliPHOSDigit* digit) const ;
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
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
54 ClassDef(AliPHOSRawDigiProducer,5)