Line data Source code
1 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 : * See cxx source for full Copyright notice */
3 :
4 : // $Id$
5 :
6 : /// \ingroup rec
7 : /// \class AliMUONDigitCalibrator
8 : /// \brief Class to calibrate the digits
9 : ///
10 : // Author Laurent Aphecetche
11 :
12 : #ifndef ALIMUONDIGITCALIBRATOR_H
13 : #define ALIMUONDIGITCALIBRATOR_H
14 :
15 : #ifndef ROOT_TObject
16 : #include "TObject.h"
17 : #endif
18 :
19 : class AliMUONCalibrationData;
20 : class AliMUONLogger;
21 : class AliMUONVStore;
22 : class AliMUONVDigitStore;
23 : class AliMUONVDigit;
24 : class AliMUONPadStatusMaker;
25 : class AliMUONPadStatusMapMaker;
26 : class AliMUONRecoParam;
27 : class TExMap;
28 :
29 : class AliMUONDigitCalibrator : public TObject
30 : {
31 : public:
32 :
33 : AliMUONDigitCalibrator(Int_t runNumber);
34 :
35 : AliMUONDigitCalibrator(const AliMUONCalibrationData& calib,
36 : const AliMUONRecoParam* recoParams);
37 :
38 : AliMUONDigitCalibrator(const AliMUONCalibrationData& calib, int b);
39 :
40 : virtual ~AliMUONDigitCalibrator();
41 :
42 : virtual void Calibrate(AliMUONVDigitStore& digitStore);
43 :
44 : Bool_t IsValidDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
45 : Int_t* statusMap=0x0) const;
46 :
47 : Float_t CalibrateDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel,
48 : Float_t adc, Float_t nsigmas=-1,
49 : Bool_t* isSaturated=0x0) const;
50 :
51 : Int_t PadStatus(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
52 :
53 : Int_t StatusMap(Int_t detElemId, Int_t manuId, Int_t manuChannel) const;
54 :
55 : private:
56 :
57 : /// Not implemented
58 : AliMUONDigitCalibrator(const AliMUONDigitCalibrator& other);
59 : /// Not implemented
60 : AliMUONDigitCalibrator& operator=(const AliMUONDigitCalibrator& other);
61 :
62 : void Ctor(const AliMUONCalibrationData& calib,
63 : const AliMUONRecoParam* recoParams,
64 : Bool_t deferredInitialization=kTRUE);
65 :
66 : private:
67 : AliMUONLogger* fLogger; //!<! to log repeated messages
68 : AliMUONPadStatusMaker* fStatusMaker; //!<! to build pad statuses
69 : AliMUONPadStatusMapMaker* fStatusMapMaker; //!<! to build status map
70 : AliMUONVStore* fPedestals; //!<! pedestal values
71 : Double_t fNumberOfBadPads; //!<! # of times we've rejected a bad pad
72 : Double_t fNumberOfPads; //!<! # of pads we've seen
73 : Double_t fChargeSigmaCut; //!<! number of sigmas to cut on
74 : UInt_t fMask; //!<! mask used to cut bad channels
75 :
76 58 : ClassDef(AliMUONDigitCalibrator,11) // Calibrate raw digit
77 : };
78 :
79 : #endif
|