]>
Commit | Line | Data |
---|---|---|
ba030c0e | 1 | #ifndef ALI_MUON_ST1_RESPONSE_H |
2 | #define ALI_MUON_ST1_RESPONSE_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | // Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay | |
10 | // | |
11 | // Class AliMUONSt1Response | |
12 | // ---------------------------- | |
13 | // Response class for station 1 including electronics and detector response. | |
14 | // Individual pedestals or noise levels can be controlled separately. | |
15 | // The current pulse height responses do not contain any physics | |
16 | ||
ba030c0e | 17 | #include <TString.h> |
18 | #include <TList.h> | |
19 | #include "AliMUONResponseV0.h" | |
5f91c9e8 | 20 | #include "AliMUONSt1Types.h" |
ba030c0e | 21 | #include "AliMUONSt1ElectronicElement.h" |
22 | ||
5f91c9e8 | 23 | class AliMpPlane; |
24 | class AliMpPlaneSegmentation; | |
25 | class AliMpZone; | |
26 | class AliMpSector; | |
ba030c0e | 27 | class TArrayF; |
28 | class TObjArray; | |
29 | class AliMUONSt1ResponseParameter; | |
30 | ||
31 | class AliMUONSt1Response : public AliMUONResponseV0 | |
32 | { | |
33 | public: | |
34 | AliMUONSt1Response(Int_t chamber=1); | |
35 | virtual ~AliMUONSt1Response(); | |
36 | ||
37 | // | |
38 | // Configuration methods | |
39 | // | |
40 | void SetIniFileName(Int_t plane,const TString& fileName); | |
41 | ||
42 | virtual Float_t IntPH(Float_t eloss); | |
43 | ||
44 | // Noise, zero-suppression, adc saturation | |
45 | virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where); | |
46 | void PrintStatistics() const; | |
47 | ||
48 | ||
74d70ece | 49 | private: |
5f91c9e8 | 50 | //private constants |
ba030c0e | 51 | static const Int_t fgkNofZones=4; |
74d70ece | 52 | static const TString fgkTopDir; |
53 | static const TString fgkDataDir; | |
ba030c0e | 54 | static const TString fgkConfigBaseName; |
74d70ece | 55 | static const TString fgkStandardIniFileName; |
ba030c0e | 56 | |
57 | // static names | |
58 | static const TString fgkBaseName ; | |
59 | static const TString fgkIncludeName ; | |
60 | static const TString fgkParameterName ; | |
61 | static const TString fgkRegionName ; | |
62 | static const TString fgkRuleName ; | |
63 | static const TString fgkNameName ; | |
64 | static const TString fgkPedestalName ; | |
65 | static const TString fgkNoiseName ; | |
66 | static const TString fgkStateName ; | |
67 | static const TString fgkMName ; | |
68 | static const TString fgkMGName ; | |
69 | static const TString fgkMGCName ; | |
70 | static const TString fgkIJName ; | |
71 | static const TString fgkXYName ; | |
72 | static const TString fgkZoneName ; | |
73 | static const TString fgkStickyOnName ; | |
74 | static const TString fgkStickyOffName ; | |
75 | static const TString fgkFileName ; | |
76 | static const TString fgkValueName ; | |
77 | static const TString fgkGausName ; | |
78 | static const TString fgkNotName ; | |
79 | static const TString fgkNofSigmaName ; | |
80 | ||
81 | //protected methods | |
5f91c9e8 | 82 | AliMpZone* FindZone(AliMpSector* sector,Int_t posId); // to be moved in AliMpSector:: |
ba030c0e | 83 | void ReadFiles(); |
84 | void ReadIniFile(Int_t plane,const TString& fileName,Bool_t rdParam,Bool_t rdRegion,Bool_t rdRule); | |
85 | void ReadIniFile(Int_t plane); | |
86 | void ReadCouplesOfIntRanges(const string& value,TList* list,AliMUONSt1ElectronicElement::TDescription descr); | |
87 | void ReadCouplesOfFloatRanges(const string& value,TList* list); | |
88 | void SetPairToParam(const string& name,const string& value,AliMUONSt1ResponseParameter* param) const; | |
89 | void SetPairToListElem(const string& name,const string& value,TList* list); | |
90 | ||
91 | ||
92 | //data members | |
5f91c9e8 | 93 | AliMpPlane* fPlane[2]; // !The mapping planes |
94 | AliMpPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation | |
ba030c0e | 95 | TString fIniFileName[2];// file names for initialisation of each cathode |
96 | ||
97 | AliMUONSt1ResponseParameter* fDefaultParameters[2][fgkNofZones]; // !Response for each zone | |
98 | TList fRulesList[2]; //! list of special rules | |
99 | ||
100 | Int_t fCountNofCalls; // number of calls to DigitResponse() | |
101 | Int_t fCountUnknownZone; // ntimes the DigitResponse was called in an unknown zone | |
102 | Int_t fCountUnknownIndices; // ntimes the DigitResponse was called with unknown indices | |
103 | ||
104 | Int_t fChamber; // The chamber number | |
105 | ||
106 | TParamsMap fParams; //! internal parameter list | |
107 | TListMap fRegions; //! internal list of regions | |
108 | TList fTrashList; //!internal trash list | |
109 | ||
110 | ClassDef(AliMUONSt1Response,1) // Overall detector response | |
111 | }; | |
112 | ||
113 | #endif //ALI_MUON_ST1_RESPONSE_H |