00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056 #ifndef STAR_StPmdGeom
00057 #define STAR_StPmdGeom
00058 #include <stdlib.h>
00059 #include <TMatrix.h>
00060 #include <Stiostream.h>
00061 #include <math.h>
00062
00063 class StPmdGeom {
00064 private:
00065
00066 static Float_t mxcon[17];
00067 static Float_t mycon[17];
00068 static Float_t mdetxcon[12];
00069 static Float_t mdetycon[12];
00070 static Int_t inorm[192];
00071 static Int_t jnorm[192];
00072 static Int_t imirr[192];
00073 static Int_t jmirr[192] ;
00074 Int_t m_RunNo;
00075
00076
00077 Float_t mconst1;
00078 Float_t mconst2;
00079 Float_t mcell_rad;
00080 Float_t mcelldia_x;
00081 Float_t mcelldia_y;
00082 Float_t mzreal;
00083 void commonconstants();
00084 public:
00085 StPmdGeom();
00086 virtual ~StPmdGeom();
00087 Int_t NModule( Int_t, Int_t, Int_t& );
00088 void Cell_xy(Int_t,Int_t,Int_t,Float_t&,Float_t&,Float_t&,Float_t&) ;
00089 void DetCell_xy(Int_t,Float_t,Float_t,Float_t&,Float_t&,Float_t&,Float_t&);
00090 void IntDetCell_xy(Int_t,Int_t,Int_t,Float_t&,Float_t&,Float_t&,Float_t&);
00091 void Sim2Detmap(Int_t&,Int_t&,Int_t&);
00092 void Cell_eta_phi(Float_t,Float_t,Float_t&,Float_t&);
00093 void readBoardDetail();
00094 void readBoardDetail(Int_t runno1);
00095 void GetRunYear(Int_t, Int_t&,Int_t&);
00096 Int_t GetNBoardsChain(Int_t);
00097 void GetNBoardsSM(Int_t,Int_t*);
00098
00099
00100 void drawPMD(Int_t,Int_t,Int_t);
00101 void DrawRhombus(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t&,Float_t*,Float_t*);
00102 void drawPMDXY(Int_t,Int_t,Int_t);
00103 void drawPMDetaphi(Int_t,Int_t,Int_t);
00104
00105 Int_t ChainMapping(Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t&);
00106 Int_t ChainMapping(Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00107
00108 void chain1(int&,int&,int&,int&);
00109 void chain2(int&,int&,int&,int&);
00110 void chain3(int&,int&,int&,int&);
00111 void chain5(int&,int&,int&,int&);
00112 void chain9(int&,int&,int&,int&);
00113 void chain10(int&,int&,int&,int&);
00114 void chain12(int&,int&,int&,int&);
00115 void chain15(int&,int&,int&,int&);
00116 void chain17(int&,int&,int&,int&);
00117 void chain21(int&,int&,int&,int&);
00118 void chain22(int&,int&,int&,int&);
00119 void chain23(int&,int&,int&,int&);
00120 void chain34(int&,int&,int&,int&);
00121 void chain39(int&,int&,int&,int&);
00122 void chain41(int&,int&,int&,int&);
00123 void chain45(int&,int&,int&,int&);
00124 void chain46(int&,int&,int&,int&);
00125
00126 void chain1(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00127 void chain2(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00128 void chain3(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00129 void chain4(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00130 void chain5(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00131 void chain6(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00132 void chain7(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00133 void chain8(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00134 void chain9(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00135 void chain10(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00136 void chain11(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00137 void chain12(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00138 void chain13(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00139 void chain14(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00140 void chain15(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00141 void chain16(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00142 void chain17(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00143 void chain18(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00144 void chain19(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00145 void chain20(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00146 void chain21(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00147 void chain22(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00148 void chain23(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00149 void chain24(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00150 void chain25(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00151 void chain26(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00152 void chain27(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00153 void chain28(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00154 void chain29(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00155 void chain30(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00156 void chain31(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00157 void chain32(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00158 void chain33(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00159 void chain34(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00160 void chain35(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00161 void chain36(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00162 void chain37(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00163 void chain38(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00164 void chain39(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00165 void chain40(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00166 void chain41(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00167 void chain42(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00168 void chain43(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00169 void chain44(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00170 void chain45(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00171 void chain46(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00172 void chain47(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00173 void chain48(Int_t&,Int_t&,Int_t&,Int_t&,Int_t);
00174
00175 void ADC2Edep(Int_t, Float_t&);
00176 Float_t GetPmdZ();
00177
00178 ClassDef(StPmdGeom, 1)
00179 };
00181
00182
00183 inline Float_t StPmdGeom::GetPmdZ(){
00184 return mzreal;
00185 }
00186
00187 inline void StPmdGeom::commonconstants()
00188 {
00189 mconst1=0.5282;
00190 mconst2=1.732*0.5282;
00191 mcell_rad = 0.5282;
00192 mcelldia_x = 1.0564;
00193 mcelldia_y = 0.91484;
00194
00195
00196 mzreal = 539.0;
00197 }
00198 #endif
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225