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