]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSt1Response.h
coding conventions corrections for St1 classes (Ivana Hirvnacova)
[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     AliMUONSt1Response(const AliMUONSt1Response& rhs);
36     virtual ~AliMUONSt1Response();
37     
38     //
39     // Configuration methods
40     //
41     void SetIniFileName(Int_t plane,const TString& fileName);
42
43     virtual Float_t  IntPH(Float_t eloss);
44
45     // Noise, zero-suppression, adc saturation
46     virtual Int_t DigitResponse(Int_t digit,AliMUONTransientDigit* where);
47     void PrintStatistics() const;
48
49
50 private:
51     // operators
52     AliMUONSt1Response& operator=(const AliMUONSt1Response & rhs);
53
54     // private methods
55     AliMpZone* FindZone(AliMpSector* sector,Int_t posId) const; // to be moved in AliMpSector::
56     void ReadFiles();
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);
63
64     // private constants
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    
70
71     // static names
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
94
95     // data members
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
99
100     AliMUONSt1ResponseParameter* fDefaultParameters[2][fgkNofZones]; // !Response for each zone
101     TList fRulesList[2]; //! list of special rules
102
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
106
107     Int_t fChamber;                // The chamber number
108
109     TParamsMap fParams;  //! internal parameter list
110     TListMap   fRegions; //! internal list of regions
111     TList      fTrashList; //!internal trash list 
112
113   ClassDef(AliMUONSt1Response,1) // Overall detector response
114 };
115
116 #endif //ALI_MUON_ST1_RESPONSE_H