1 #ifndef ALI_MUON_ST1_RESPONSE_H
2 #define ALI_MUON_ST1_RESPONSE_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 // Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
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
21 #include "AliMUONResponseV0.h"
22 #include "AliMUONSt1ElectronicElement.h"
28 class MPlaneSegmentation;
33 class AliMUONSt1ResponseParameter;
35 class AliMUONSt1Response : public AliMUONResponseV0
38 AliMUONSt1Response(Int_t chamber=1);
39 virtual ~AliMUONSt1Response();
42 // Configuration methods
44 void SetIniFileName(Int_t plane,const TString& fileName);
46 virtual Float_t IntPH(Float_t eloss);
48 // Noise, zero-suppression, adc saturation
49 virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where);
50 void PrintStatistics() const;
56 typedef map<string,AliMUONSt1ResponseParameter*> TParamsMap;
57 typedef map<string,TList*> TListMap;
58 static const Int_t fgkNofZones=4;
59 static const TString fgkTopDir;
60 static const TString fgkDataDir;
61 static const TString fgkConfigBaseName;
62 static const TString fgkStandardIniFileName;
65 static const TString fgkBaseName ;
66 static const TString fgkIncludeName ;
67 static const TString fgkParameterName ;
68 static const TString fgkRegionName ;
69 static const TString fgkRuleName ;
70 static const TString fgkNameName ;
71 static const TString fgkPedestalName ;
72 static const TString fgkNoiseName ;
73 static const TString fgkStateName ;
74 static const TString fgkMName ;
75 static const TString fgkMGName ;
76 static const TString fgkMGCName ;
77 static const TString fgkIJName ;
78 static const TString fgkXYName ;
79 static const TString fgkZoneName ;
80 static const TString fgkStickyOnName ;
81 static const TString fgkStickyOffName ;
82 static const TString fgkFileName ;
83 static const TString fgkValueName ;
84 static const TString fgkGausName ;
85 static const TString fgkNotName ;
86 static const TString fgkNofSigmaName ;
89 MZone* FindZone(MSector* sector,Int_t posId); // to be moved in MSector::
91 void ReadIniFile(Int_t plane,const TString& fileName,Bool_t rdParam,Bool_t rdRegion,Bool_t rdRule);
92 void ReadIniFile(Int_t plane);
93 void ReadCouplesOfIntRanges(const string& value,TList* list,AliMUONSt1ElectronicElement::TDescription descr);
94 void ReadCouplesOfFloatRanges(const string& value,TList* list);
95 void SetPairToParam(const string& name,const string& value,AliMUONSt1ResponseParameter* param) const;
96 void SetPairToListElem(const string& name,const string& value,TList* list);
100 MPlane* fPlane[2]; // !The mapping planes
101 MPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation
102 TString fIniFileName[2];// file names for initialisation of each cathode
104 AliMUONSt1ResponseParameter* fDefaultParameters[2][fgkNofZones]; // !Response for each zone
105 TList fRulesList[2]; //! list of special rules
107 Int_t fCountNofCalls; // number of calls to DigitResponse()
108 Int_t fCountUnknownZone; // ntimes the DigitResponse was called in an unknown zone
109 Int_t fCountUnknownIndices; // ntimes the DigitResponse was called with unknown indices
111 Int_t fChamber; // The chamber number
113 TParamsMap fParams; //! internal parameter list
114 TListMap fRegions; //! internal list of regions
115 TList fTrashList; //!internal trash list
117 ClassDef(AliMUONSt1Response,1) // Overall detector response
120 #endif //ALI_MUON_ST1_RESPONSE_H