Release version of ITS code
[u/mrichter/AliRoot.git] / ITS / AliITSdcsSSD.h
1 #ifndef ALIITSDCSSSD_H
2 #define ALIITSDCSSSD_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 //____________________________________________________________________
8 //
9 //  Class AliITSdcsSSD 
10 //  describes Detector Control System parameters for one SSD module.
11 //   
12 //  This class stores parametrers such as gain, threshold
13 //  capacitive coupling.
14 //  
15 //  Class takes care of invalid strip menagement during 
16 //  simulation and runtime
17 //
18 //
19 //  created at: Warsaw University of Technology
20 //  ver. 1.0    WARSAW, 23.12.1999  
21 // 
22 //___________________________________________________________________
23 //
24
25 #include <TObject.h>
26 #include <TArrayS.h>
27 #include <TRandom.h>
28
29 class AliITSsegmentation;
30 class AliITSresponse;
31
32
33 class AliITSdcsSSD: public TObject {
34
35 public:       
36     
37     //________________________________________________________________
38     //
39     // Constructors and deconstructor
40     //________________________________________________________________
41     //
42     
43     AliITSdcsSSD(AliITSsegmentation *s, AliITSresponse *r);
44     ~AliITSdcsSSD();
45     AliITSdcsSSD(const AliITSdcsSSD &source); // copy constructor
46     AliITSdcsSSD& operator=(const AliITSdcsSSD &source); // assignment operator
47     
48     //________________________________________________________________
49     //  
50     // Invalid strips management methods
51     //________________________________________________________________
52     //
53     
54     // Parameters for invalid strips MonteCarlo
55     
56     void SetInvalidParam(Float_t mean, Float_t sigma);
57     void GetInvalidParam(Float_t &mean, Float_t &sigma); 
58     
59     
60     // Methods for creating invalid strips
61     
62     void SetInvalidMC(Float_t mean, Float_t sigma);
63     void SetInvalidMC();
64     
65     
66     // Testing if strip is valid
67     
68     Bool_t  IsValidN(Int_t strip);      //True if strip works properly
69     Bool_t  IsValidP(Int_t strip);      //True if strip works properly
70     
71     
72     // Access to invalid strips
73     
74     TArrayS *GetInvalidP();             //Array of invalid P strips
75     TArrayS *GetInvalidN();             //Array of invalid N strips
76     Int_t    GetNInvalidP();            //Number of invalid P strips
77     Int_t    GetNInvalidN();            //Number of invalid N strips
78     
79     
80     // Creating invalid strips
81     
82     void    SetInvalidP(Int_t strip, Bool_t side){
83       //Set invalid if true   
84     }
85     
86     void    SetInvalidN(Int_t strip, Bool_t side){
87       //Set invalid if true
88     }
89
90     Float_t  GetCouplingPR() {
91       // couplings
92       return fCouplingPR;
93     }
94
95     Float_t  GetCouplingPL() {
96       // couplings
97       return fCouplingPL;
98     }
99
100     Float_t  GetCouplingNR() {
101       // couplings
102       return fCouplingNR;
103     }
104
105     Float_t  GetCouplingNL() {
106       // couplings
107       return fCouplingNL;
108     }
109     
110  protected:   
111     
112     //_____________________________________________
113     //
114     // Parameters for invalid strips simulatation 
115     //_____________________________________________
116     
117     Float_t  fCouplingPR;  // couplings
118     Float_t  fCouplingPL;  // couplings
119     Float_t  fCouplingNR;  // couplings
120     Float_t  fCouplingNL;  // couplings   
121
122     Float_t   fNstrips ;          //Number of strips
123     Float_t   fNInvalid;          //Mean number of invalid strips (for simulation) 
124     Float_t   fISigma;            //RMS of invalid strips (Gaussian)
125
126     TArrayS  *fInvalidP;          //Array of invalid strips on P-side
127     TArrayS  *fInvalidN;          //Array of invalid strips on N-side
128    
129     TRandom  *fRandom;            //!Random numbers generator
130
131     ClassDef(AliITSdcsSSD, 1)     // ITS SSD DCS specific class
132
133 };
134
135
136 #endif