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 AliPHOSRawFitter. See cxx source for use case.
11 class AliPHOSCalibData ;
13 class AliPHOSGeometry ;
14 class AliPHOSPulseGenerator;
16 class AliCaloRawStreamV3;
17 class AliPHOSRawFitterv0;
19 #include "AliAltroMapping.h"
22 class AliPHOSRawDigiProducer: public TObject {
26 AliPHOSRawDigiProducer() ;
27 AliPHOSRawDigiProducer(AliRawReader *rawReader, AliAltroMapping **mapping = NULL);
28 AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp);
29 AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp);
31 virtual ~AliPHOSRawDigiProducer();
33 void MakeDigits(TClonesArray *digits, AliPHOSRawFitterv0* fitter);
35 void SetEmcMinAmp(Float_t emcMin) { fEmcMinE=emcMin; }
36 void SetCpvMinAmp(Float_t cpvMin) { fCpvMinE=cpvMin; }
37 void SetSampleQualityCut(Float_t qcut) { fSampleQualityCut=qcut; }
41 void GetCalibrationParameters() ; //Extract calibration parameters from DB
42 void CleanDigits(TClonesArray* digits) ; //remove digits below threshold and bad ones
44 Bool_t IsInEMC(AliPHOSDigit* digit) const ; //tests if digit belongs to EMC
45 Bool_t IsInCPV(AliPHOSDigit* digit) const ;
47 Double_t CalibrateE(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate energy
48 Double_t CalibrateT(Double_t amp, Int_t* relId, Bool_t isLowGain) ; //calibrate time
51 Float_t fEmcMinE ; // minimum energy of digit (ADC)
52 Float_t fCpvMinE ; // minimum energy of digit (ADC)
53 Float_t fSampleQualityCut; // Cut on sample shapes: 0: no samples; 1: default parameterization; 999: accept even obviously bad
54 Float_t fSampleToSec ; // Conversion coeff from sample time step to seconds
55 Int_t fEmcCrystals ; // number of EMC crystals
56 AliPHOSGeometry * fGeom ; //! PHOS geometry
57 static AliPHOSCalibData * fgCalibData ; //! Calibration database if avalable
58 AliPHOSPulseGenerator * fPulseGenerator ; //! Class with pulse shape parameters
59 AliRawReader * fRawReader; //! Raw data reader
60 AliCaloRawStreamV3 * fRawStream; //! Calorimeter decoder of ALTRO format
62 ClassDef(AliPHOSRawDigiProducer,6)