]>
Commit | Line | Data |
---|---|---|
88fb5e50 | 1 | #ifndef ALIPHOSRAWDIGIPRODUCER_H |
2 | #define ALIPHOSRAWDIGIPRODUCER_H | |
7bc140a5 | 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. | |
88fb5e50 | 10 | |
11 | class AliPHOSRawDecoder; | |
30331de9 | 12 | class AliPHOSCalibData ; |
13 | class AliPHOSDigit ; | |
30331de9 | 14 | class AliPHOSGeometry ; |
39569d36 | 15 | class AliPHOSPulseGenerator; |
30331de9 | 16 | #include "TObject.h" |
88fb5e50 | 17 | |
30331de9 | 18 | class AliPHOSRawDigiProducer: public TObject { |
88fb5e50 | 19 | |
20 | public: | |
21 | ||
30331de9 | 22 | AliPHOSRawDigiProducer() ; |
30331de9 | 23 | AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp); |
24 | AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp); | |
25 | ||
39569d36 | 26 | virtual ~AliPHOSRawDigiProducer(); |
88fb5e50 | 27 | |
7bc140a5 | 28 | void MakeDigits(TClonesArray *digits, AliPHOSRawDecoder* decoder); |
88fb5e50 | 29 | |
8be3a30a | 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 | ||
30331de9 | 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: | |
8be3a30a | 46 | Float_t fEmcMinE ; // minimum energy of digit (ADC) |
47 | Float_t fCpvMinE ; // minimum energy of digit (ADC) | |
70d93620 | 48 | Float_t fSampleQualityCut; // Cut on sample shapes: 0: no samples; 1: default parameterization; 999: accept even obviously bad |
7e88424f | 49 | Int_t fEmcCrystals ; // number of EMC crystals |
30331de9 | 50 | AliPHOSGeometry * fGeom ; //! PHOS geometry |
7e88424f | 51 | static AliPHOSCalibData * fgCalibData ; //! Calibration database if avalable |
52 | AliPHOSPulseGenerator * fPulseGenerator ; //! Class with pulse shape parameters | |
30331de9 | 53 | |
8be3a30a | 54 | ClassDef(AliPHOSRawDigiProducer,5) |
88fb5e50 | 55 | }; |
56 | ||
57 | #endif |