StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StPmdGeom.h
1 
5 /*********************************************************
6  *
7  * $Id: StPmdGeom.h,v 1.13 2010/04/15 06:55:44 rashmi Exp $
8  *
9  * Author: Dipak Mishra
10  *
11  ************************************************************
12  *
13  * Description: This is the class of PMD geometry for offline
14  * and mapping of all the electronic chains
15  *
16  *************************************************************
17  *
18  * $Log: StPmdGeom.h,v $
19  * Revision 1.13 2010/04/15 06:55:44 rashmi
20  * functions to draw XY and eta/phi coverage & modifcations to mapping
21  *
22  * Revision 1.12 2007/11/02 11:04:32 rashmi
23  * public GetPmdZ added to get PMD z position
24  *
25  * Revision 1.11 2007/04/17 11:19:53 rashmi
26  * Chain19 mapping corrected, functions to return nboards in a chain/SMs added
27  *
28  * Revision 1.10 2007/03/21 16:40:10 rashmi
29  * StPmdGeom after new mapping (run7) and with DrawPmd function for viewing PMD Geometry
30  *
31  * Revision 1.9 2005/01/04 19:31:08 subhasis
32  * Mapping for year2005 Run, Code from Rashmi's area
33  *
34  * Revision 1.8 2004/04/01 15:40:25 subhasis
35  * zdist changed after survey result
36  *
37  * Revision 1.7 2004/03/23 08:49:15 subhasis
38  * biardDetail put by had
39  *
40  * Revision 1.6
41  * Mapping modified according to final mounting of FEE: Dipak
42  *
43  * Revision 1.5 2003/11/27 12:31:52 subhasis
44  * ADC2EDEP added by Supriya
45  *
46  * Revision 1.4 2003/10/14 07:30:19 subhasis
47  * mzreal changed to 535
48  *
49  * Revision 1.3 2003/09/02 17:58:49 perev
50  * gcc 3.2 updates + WarnOff
51  *
52  * Revision 1.2 2003/05/12 12:07:13 subhasis
53  * Mapping added
54  *
55  *************************************************************/
56 #ifndef STAR_StPmdGeom
57 #define STAR_StPmdGeom
58 #include <stdlib.h>
59 #include <TMatrix.h>
60 #include <Stiostream.h>
61 #include <math.h>
62 
63 class StPmdGeom {
64  private:
65 
66  static Float_t mxcon[17];
67  static Float_t mycon[17];
68  static Float_t mdetxcon[12];
69  static Float_t mdetycon[12];
70  static Int_t inorm[192];
71  static Int_t jnorm[192];
72  static Int_t imirr[192];
73  static Int_t jmirr[192] ;
74  Int_t m_RunNo;
75 // FILE *infile;
76 // FILE *fp1;
77  Float_t mconst1;
78  Float_t mconst2;
79  Float_t mcell_rad;
80  Float_t mcelldia_x;
81  Float_t mcelldia_y;
82  Float_t mzreal;
83  void commonconstants(); // function for defining constant values
84  public:
85  StPmdGeom();
86  virtual ~StPmdGeom();
87  Int_t NModule( Int_t, Int_t, Int_t& );
88  void Cell_xy(Int_t,Int_t,Int_t,Float_t&,Float_t&,Float_t&,Float_t&) ;
89  void DetCell_xy(Int_t,Float_t,Float_t,Float_t&,Float_t&,Float_t&,Float_t&);
90  void IntDetCell_xy(Int_t,Int_t,Int_t,Float_t&,Float_t&,Float_t&,Float_t&);
91  void Sim2Detmap(Int_t&,Int_t&,Int_t&);
92  void Cell_eta_phi(Float_t,Float_t,Float_t&,Float_t&);
93  void readBoardDetail(); // function for defining constant values
94  void readBoardDetail(Int_t runno1); // function for defining constant values
95  void GetRunYear(Int_t, Int_t&,Int_t&);
96  Int_t GetNBoardsChain(Int_t);
97  void GetNBoardsSM(Int_t,Int_t*);
98 
99 
100  void drawPMD(Int_t,Int_t,Int_t);
101  void DrawRhombus(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t&,Float_t*,Float_t*);
102  void drawPMDXY(Int_t,Int_t,Int_t);
103  void drawPMDetaphi(Int_t,Int_t,Int_t);
104 
105  Int_t ChainMapping(Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t&);
106  Int_t ChainMapping(Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
107 
108  void chain1(int&,int&,int&,int&);
109  void chain2(int&,int&,int&,int&);
110  void chain3(int&,int&,int&,int&);
111  void chain5(int&,int&,int&,int&);
112  void chain9(int&,int&,int&,int&);
113  void chain10(int&,int&,int&,int&);
114  void chain12(int&,int&,int&,int&);
115  void chain15(int&,int&,int&,int&);
116  void chain17(int&,int&,int&,int&);
117  void chain21(int&,int&,int&,int&);
118  void chain22(int&,int&,int&,int&);
119  void chain23(int&,int&,int&,int&);
120  void chain34(int&,int&,int&,int&);
121  void chain39(int&,int&,int&,int&);
122  void chain41(int&,int&,int&,int&);
123  void chain45(int&,int&,int&,int&);
124  void chain46(int&,int&,int&,int&);
125 // year=2005 2005 , Rashmi's routine
126  void chain1(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
127  void chain2(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
128  void chain3(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
129  void chain4(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
130  void chain5(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
131  void chain6(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
132  void chain7(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
133  void chain8(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
134  void chain9(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
135  void chain10(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
136  void chain11(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
137  void chain12(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
138  void chain13(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
139  void chain14(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
140  void chain15(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
141  void chain16(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
142  void chain17(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
143  void chain18(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
144  void chain19(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
145  void chain20(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
146  void chain21(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
147  void chain22(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
148  void chain23(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
149  void chain24(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
150  void chain25(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
151  void chain26(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
152  void chain27(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
153  void chain28(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
154  void chain29(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
155  void chain30(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
156  void chain31(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
157  void chain32(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
158  void chain33(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
159  void chain34(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
160  void chain35(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
161  void chain36(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
162  void chain37(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
163  void chain38(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
164  void chain39(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
165  void chain40(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
166  void chain41(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
167  void chain42(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
168  void chain43(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
169  void chain44(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
170  void chain45(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
171  void chain46(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
172  void chain47(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
173  void chain48(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
174 
175  void ADC2Edep(Int_t, Float_t&);
176  Float_t GetPmdZ();
177 
178  ClassDef(StPmdGeom, 1)
179  };
181  //inline void StPmdGeom::SetRunNumber(Int_t var){m_RunNo =var ;}
182 
183  inline Float_t StPmdGeom::GetPmdZ(){
184  return mzreal;
185  }
186 
187 inline void StPmdGeom::commonconstants()
188 {
189  mconst1=0.5282;
190  mconst2=1.732*0.5282;
191  mcell_rad = 0.5282;
192  mcelldia_x = 1.0564;
193  mcelldia_y = 0.91484;
194  // changed to 535mzreal = 550.0;
195  // mzreal = 542.0;
196  mzreal = 539.0; // changed on 1/4/04 after survey results
197 }
198 #endif
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
216 
217 
218 
219 
220 
221 
222 
223 
224 
225 
void drawPMDetaphi(Int_t, Int_t, Int_t)
Definition: StPmdGeom.cxx:6921
virtual ~StPmdGeom()
A constructor.
Definition: StPmdGeom.cxx:196
void Sim2Detmap(Int_t &, Int_t &, Int_t &)
function for convering supermodule,row,col (from GEANT) to supermodule,row,col as in hardware...
Definition: StPmdGeom.cxx:300
void Cell_eta_phi(Float_t, Float_t, Float_t &, Float_t &)
function for calculating eta,phi from x, y
Definition: StPmdGeom.cxx:285
void DetCell_xy(Int_t, Float_t, Float_t, Float_t &, Float_t &, Float_t &, Float_t &)
function for converting supermodule,row,col to x,y,eta,phi after conversionfrom 17 to 12 supermodule ...
Definition: StPmdGeom.cxx:227
Float_t GetPmdZ()
To convert the ADC value to Edep.
Definition: StPmdGeom.h:183
StPmdGeom()
A constructor.
Definition: StPmdGeom.cxx:189
void Cell_xy(Int_t, Int_t, Int_t, Float_t &, Float_t &, Float_t &, Float_t &)
function for converting supermodule,row,col to x,y position,eta and phi values of the cell ...
Definition: StPmdGeom.cxx:205
Int_t NModule(Int_t, Int_t, Int_t &)
A destructor.
Definition: StPmdGeom.cxx:199
void drawPMDXY(Int_t, Int_t, Int_t)
Definition: StPmdGeom.cxx:6862
void drawPMD(Int_t, Int_t, Int_t)
Definition: StPmdGeom.cxx:6980
void IntDetCell_xy(Int_t, Int_t, Int_t, Float_t &, Float_t &, Float_t &, Float_t &)
function for converting supermodule,row,col to x,y,eta,phi after conversionfrom 17 to 12 supermodule ...
Definition: StPmdGeom.cxx:254