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
19 #include "AliMUONResponseV0.h"
20 #include "AliMUONSt1Types.h"
21 #include "AliMUONSt1ElectronicElement.h"
24 class AliMpPlaneSegmentation;
29 class AliMUONSt1ResponseParameter;
31 class AliMUONSt1Response : public AliMUONResponseV0
34 AliMUONSt1Response(Int_t chamber=1);
35 AliMUONSt1Response(const AliMUONSt1Response& rhs);
36 virtual ~AliMUONSt1Response();
39 // Configuration methods
41 void SetIniFileName(Int_t plane,const TString& fileName);
43 virtual Float_t IntPH(Float_t eloss);
45 // Noise, zero-suppression, adc saturation
46 virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where);
47 void PrintStatistics() const;
52 AliMUONSt1Response& operator=(const AliMUONSt1Response & rhs);
55 AliMpZone* FindZone(AliMpSector* sector,Int_t posId) const; // to be moved in AliMpSector::
57 void ReadIniFile(Int_t plane,const TString& fileName,Bool_t rdParam,Bool_t rdRegion,Bool_t rdRule);
58 void ReadIniFile(Int_t plane);
59 void ReadCouplesOfIntRanges(const string& value,TList* list,AliMUONSt1ElectronicElement::TDescription descr);
60 void ReadCouplesOfFloatRanges(const string& value,TList* list);
61 void SetPairToParam(const string& name,const string& value,AliMUONSt1ResponseParameter* param) const;
62 void SetPairToListElem(const string& name,const string& value,TList* list);
65 static const Int_t fgkNofZones=4; // number of zones
66 static const TString fgkTopDir; // top directory path
67 static const TString fgkDataDir; // data directory path
68 static const TString fgkConfigBaseName; // config file base name
69 static const TString fgkStandardIniFileName;// standard ini file name
72 static const TString fgkBaseName ; // base name
73 static const TString fgkIncludeName ; // include name
74 static const TString fgkParameterName ; // parameter name
75 static const TString fgkRegionName ; // region name
76 static const TString fgkRuleName ; // rule name
77 static const TString fgkNameName ; // name name
78 static const TString fgkPedestalName ; // pedestal name
79 static const TString fgkNoiseName ; // noise name
80 static const TString fgkStateName ; // state name
81 static const TString fgkMName ; // M name
82 static const TString fgkMGName ; // MG name
83 static const TString fgkMGCName ; // MGC name
84 static const TString fgkIJName ; // i,j name
85 static const TString fgkXYName ; // x,y name
86 static const TString fgkZoneName ; // zone name
87 static const TString fgkStickyOnName ; // sticky on name
88 static const TString fgkStickyOffName ; // sticky off
89 static const TString fgkFileName ; // file name
90 static const TString fgkValueName ; // value name
91 static const TString fgkGausName ; // gauss name
92 static const TString fgkNotName ; // not name
93 static const TString fgkNofSigmaName ; // nof sigma name
96 AliMpPlane* fPlane[2]; // !The mapping planes
97 AliMpPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation
98 TString fIniFileName[2];// file names for initialisation of each cathode
100 AliMUONSt1ResponseParameter* fDefaultParameters[2][fgkNofZones]; // !Response for each zone
101 TList fRulesList[2]; //! list of special rules
103 Int_t fCountNofCalls; // number of calls to DigitResponse()
104 Int_t fCountUnknownZone; // ntimes the DigitResponse was called in an unknown zone
105 Int_t fCountUnknownIndices; // ntimes the DigitResponse was called with unknown indices
107 Int_t fChamber; // The chamber number
109 TParamsMap fParams; //! internal parameter list
110 TListMap fRegions; //! internal list of regions
111 TList fTrashList; //!internal trash list
113 ClassDef(AliMUONSt1Response,1) // Overall detector response
116 #endif //ALI_MUON_ST1_RESPONSE_H