]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSRawDigiProducer.h
Fixes for bug #52499: Field polarities inconsistiency
[u/mrichter/AliRoot.git] / PHOS / AliPHOSRawDigiProducer.h
CommitLineData
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
379c5c09 9//using AliPHOSRawFitter. See cxx source for use case.
88fb5e50 10
30331de9 11class AliPHOSCalibData ;
12class AliPHOSDigit ;
30331de9 13class AliPHOSGeometry ;
39569d36 14class AliPHOSPulseGenerator;
379c5c09 15class AliRawReader;
16class AliCaloRawStreamV3;
17class AliPHOSRawFitterv0;
18
19#include "AliAltroMapping.h"
30331de9 20#include "TObject.h"
88fb5e50 21
30331de9 22class AliPHOSRawDigiProducer: public TObject {
88fb5e50 23
24public:
25
30331de9 26 AliPHOSRawDigiProducer() ;
379c5c09 27 AliPHOSRawDigiProducer(AliRawReader *rawReader, AliAltroMapping **mapping = NULL);
30331de9 28 AliPHOSRawDigiProducer(const AliPHOSRawDigiProducer &dp);
29 AliPHOSRawDigiProducer& operator= (const AliPHOSRawDigiProducer &dp);
30
39569d36 31 virtual ~AliPHOSRawDigiProducer();
88fb5e50 32
379c5c09 33 void MakeDigits(TClonesArray *digits, AliPHOSRawFitterv0* fitter);
88fb5e50 34
8be3a30a 35 void SetEmcMinAmp(Float_t emcMin) { fEmcMinE=emcMin; }
36 void SetCpvMinAmp(Float_t cpvMin) { fCpvMinE=cpvMin; }
37 void SetSampleQualityCut(Float_t qcut) { fSampleQualityCut=qcut; }
38
30331de9 39protected:
40
41 void GetCalibrationParameters() ; //Extract calibration parameters from DB
42 void CleanDigits(TClonesArray* digits) ; //remove digits below threshold and bad ones
43
44 Bool_t IsInEMC(AliPHOSDigit* digit) const ; //tests if digit belongs to EMC
45 Bool_t IsInCPV(AliPHOSDigit* digit) const ;
46
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
49
50private:
8be3a30a 51 Float_t fEmcMinE ; // minimum energy of digit (ADC)
52 Float_t fCpvMinE ; // minimum energy of digit (ADC)
70d93620 53 Float_t fSampleQualityCut; // Cut on sample shapes: 0: no samples; 1: default parameterization; 999: accept even obviously bad
7e88424f 54 Int_t fEmcCrystals ; // number of EMC crystals
30331de9 55 AliPHOSGeometry * fGeom ; //! PHOS geometry
379c5c09 56 static AliPHOSCalibData * fgCalibData ; //! Calibration database if avalable
57 AliPHOSPulseGenerator * fPulseGenerator ; //! Class with pulse shape parameters
58 AliRawReader * fRawReader; //! Raw data reader
59 AliCaloRawStreamV3 * fRawStream; //! Calorimeter decoder of ALTRO format
30331de9 60
379c5c09 61 ClassDef(AliPHOSRawDigiProducer,6)
88fb5e50 62};
63
64#endif