]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSt1Response.h
Improving stepmanager and reponse function of the chambers: gain and saturation ...
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1Response.h
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
17 #include <TString.h>
18 #include <TList.h>
19 #include "AliMUONResponseV0.h"
20 #include "AliMUONSt1Types.h"
21 #include "AliMUONSt1ElectronicElement.h"
22
23 class AliMpPlane;
24 class AliMpPlaneSegmentation;
25 class AliMpZone;
26 class AliMpSector;
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
49 private:
50     //private constants
51     static const Int_t fgkNofZones=4;
52     static const TString fgkTopDir;
53     static const TString fgkDataDir;
54     static const TString fgkConfigBaseName;
55     static const TString fgkStandardIniFileName;    
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
82     AliMpZone* FindZone(AliMpSector* sector,Int_t posId); // to be moved in AliMpSector::
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
93     AliMpPlane* fPlane[2];       // !The mapping planes
94     AliMpPlaneSegmentation* fPlaneSegmentation[2]; // !The mapping plane segmentation
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