CHECK: now it is the passive dimensions m_R_i_Cgem = m_CgemLayer[0]->getInnerROfCgemLayer(); m_R_o_Cgem = m_CgemSeparator->getOuterROfSeparator(); // m_CgemLayer[m_N_CgemLayer-1]->getOuterROfCgemLayer(); // CHECK m_L_Cgem = m_CgemSeparator->getLengthOfSeparator(); // m_CgemLayer[m_N_CgemLayer-1]->getLengthOfCgemLayer(); // CHECK
144 {
145 cout.precision(10);
146
147
148 string geoFilePath = getenv("CGEMGEOMSVCROOT");
149
150 cout << "IFILE " << m_iFile << endl;
151
152 switch (m_iFile){
153 case 1 :
154 geoFilePath += "/dat/cgem_model_1_default.txt";
155 break;
156 case 2 :
157 geoFilePath += "/dat/cgem_model_2_default.txt";
158 break;
159 case 3 :
160 geoFilePath += "/dat/cgem_model_3_default.txt";
161 break;
162 case 4 :
163 geoFilePath += "/dat/cgem_model_4_default.txt";
164 break;
165 case 5 :
166 geoFilePath += "/dat/cgem_model_5_default.txt";
167 break;
168 case 6 :
169 geoFilePath += "/dat/cgem_model_6_default.txt";
170 break;
171
172 case 7 :
173 geoFilePath += "/dat/cgem_model_oldgeom.txt";
174 break;
175
176 default :
177 cout << "Warning in CgemGeomSvc::initGeom(): The geometry will be constructed through default model!" << endl;
178 geoFilePath += "/dat/cgem_model_6_default.txt";
179 break;
180 }
181 cout << "INFO in CgemGeomSvc::initGeom(): Geometry will be constructed through File: "
182 << geoFilePath << endl;
183
184
185 ifstream fin(geoFilePath.c_str(), ios::in);
186 if (!fin.good())
187 {
188 cout << "Error in CgemGeomSvc::initGeom(): Fail to open geomtry file: " << endl;
189 cout << geoFilePath << endl;
190 return false;
191 }
192 string strcom;
193
194
195 if(m_debugCout) cout << left << "=======get BesMdcGeoParameter from CgemGeomSvc=======" << endl;
196
197
198 std::getline(fin, strcom);
199 std::getline(fin, strcom);
200 fin >> m_N_CgemLayer
201 >> m_N_GemFoil;
202 if(m_debugCout) cout << "N_CgemLayer : " << left << setw(8) << m_N_CgemLayer
203 << "N_GemFoil : " << left << setw(8) << m_N_GemFoil << endl;
204 std::getline(fin, strcom);
205 std::getline(fin, strcom);
206 std::getline(fin, strcom);
207 double rLayer, lenLayer, numSheet, wSheet, aStereo, wPitchX, wPitchV, wStripX, wStripV, nChannelX, nChannelV;
208 double phi_start[3][2], dX_start_strip[3][2], dV_start_strip[3][2];
209 double gap_d[3];
210 for (int i=0; i < m_N_CgemLayer; i++)
211 {
212 fin >> rLayer >> lenLayer >> numSheet >> wSheet >> aStereo >> wPitchX >> wPitchV
213 >> wStripX >> wStripV >> nChannelX >> nChannelV
214 >> phi_start[i][0] >> phi_start[i][1]
215 >> dX_start_strip[i][0] >> dX_start_strip[i][1]
216 >> dV_start_strip[i][0] >> dV_start_strip[i][1]
217 >> gap_d[i] >> m_Orientation;
218
219
220
221 m_T_Gap_D[i] = gap_d[i];
235 std::getline(fin, strcom);
236 }
237
238
239 double ncMaterials[3];
240 double tc_cu1[3],tc_kapton1[3], tc_epoxy0[3],tc_carbonf[3],tc_epoxy1[3],tc_honeycomb[3],tc_rohacell1[3],tc_epoxy2[3],tc_kapton2[3],tc_epoxy3[3],tc_rohacell2[3],tc_epoxy4[3],tc_kapton3[3],tc_cu2[3];
241 std::getline(fin, strcom);
242
243
244
245
246 fin >>nmc_Materials[0]>>nmc_Materials[1]>>nmc_Materials[2]>>nmc_Materials[3]>>nmc_Materials[4]>>nmc_Materials[5]
247 >>nmc_Materials[6]>>nmc_Materials[7]>>nmc_Materials[8]>>nmc_Materials[9]>>nmc_Materials[10]>>nmc_Materials[11]
248 >>nmc_Materials[12]>>nmc_Materials[13]>>nmc_Materials[14];
249 for (int i=0; i < m_N_CgemLayer; i++)
250 {
251 std::getline(fin,strcom);
252 fin >>ncMaterials[i]>>tc_cu1[i]>>tc_kapton1[i]>>tc_epoxy0[i]>>tc_carbonf[i]>>tc_epoxy1[i]>>tc_honeycomb[i]>>tc_rohacell1[i]
253 >>tc_epoxy2[i]>>tc_kapton2[i]>>tc_epoxy3[i]>>tc_rohacell2[i]>>tc_epoxy4[i]>>tc_kapton3[i]>>tc_cu2[i];
255 cout << "Error : CgemGeomSvc::initGeom(), Number of materials in Cathode[Layer "<<i<<"] is wrong!" << endl;
256 cout <<
"It must be less than " <<
N_MATERIAL_MAX <<
" and is " << ncMaterials[i] << endl;
257 cout << "please, either increase N_MATERIAL_MAX or decrease m_N_Cathode1_Materials" << endl;
258 return false;
259 }
260 }
261
262 double ngMaterials[3];
263 double tg_cu1[3],tg_kapton[3],tg_cu2[3],r_i_hole[3],r_o1_hole[3],r_o2_hole[3],l_hole[3];
264 double tg_gt1[3],tg_gt2[3],tg_gi[3];
265 std::getline(fin,strcom);
266 std::getline(fin,strcom);
267 for (int i=0;i<m_N_CgemLayer;i++)
268 {
269 std::getline(fin,strcom);
270 fin>>tg_gt1[i]>>tg_gt2[i]>>tg_gi[i];
271 }
272 std::getline(fin,strcom);
273 std::getline(fin,strcom);
274 fin >>nmg_Materials[0]>>nmg_Materials[1]>>nmg_Materials[2]>>nmg_Materials[3];
275 for (int i=0;i<m_N_CgemLayer;i++)
276 {
277 std::getline(fin,strcom);
278 fin>>ngMaterials[i]>>tg_cu1[i]>>tg_kapton[i]>>tg_cu2[i]>>r_i_hole[i]>>r_o1_hole[i]>>r_o2_hole[i]>>l_hole[i];
279 }
280
281
282
283 double naMaterials[3];
284 double ta_cu1[3],ta_kapton1[3],ta_cu2[3],ta_epoxy1[3],ta_kapton2[3],ta_epoxy2[3],ta_rohacell1[3];
285 double ta_carbonf1[3], ta_kapton3[3], ta_epoxy3[3], ta_honeycomb[3],ta_kapton4[3],ta_epoxy4[3],ta_rohacell2[3];
286 double ta_carbonf2[3],ta_epoxy5[3],ta_cu3[3],ta_kapton5[3], ta_kapton6[3], ta_cu4[3];
287 std::getline(fin,strcom);
288 std::getline(fin,strcom);
289 fin >>nma_Materials[0]>>nma_Materials[1]>>nma_Materials[2]>>nma_Materials[3]>>nma_Materials[4]>>nma_Materials[5]
290 >>nma_Materials[6]>>nma_Materials[7]>>nma_Materials[8]>>nma_Materials[9]>>nma_Materials[10]>>nma_Materials[11]
291 >>nma_Materials[12]>>nma_Materials[13]>>nma_Materials[14]>>nma_Materials[15]>>nma_Materials[16]>>nma_Materials[17]>>nma_Materials[18]
292 >>nma_Materials[19]>>nma_Materials[20];
293 for (int i=0;i<m_N_CgemLayer;i++)
294 {
295 std::getline(fin,strcom);
296 fin >>naMaterials[i]>>ta_cu1[i]>>ta_kapton1[i]>>ta_cu2[i]>>ta_epoxy1[i]>>ta_kapton2[i]>>ta_epoxy2[i]>>ta_rohacell1[i]
297 >>ta_carbonf1[i]>>ta_kapton3[i]>>ta_epoxy3[i]>>ta_honeycomb[i]>>ta_kapton4[i]>>ta_epoxy4[i]>>ta_rohacell2[i]
298 >>ta_carbonf2[i]>>ta_epoxy5[i]>>ta_cu3[i]>>ta_kapton5[i]>>ta_kapton6[i]>>ta_cu4[i]
299 >>m_B_strip_x_on>>m_B_strip_v_on;
301 cout << "Error : CgemGeomSvc::initGeom(), Number of materials in Anode[L"<<i<<"] is wrong!" << endl;
302 cout <<
"It must be less than " <<
N_MATERIAL_MAX <<
" and is " << naMaterials[i] << endl;
303 cout << "please, either increase N_MATERIAL_MAX or decrease N_Materials" << endl;
304 return false;
305 }
306 }
307
308
309 std::getline(fin, strcom);
310 std::getline(fin, strcom);
311 fin >> m_Rho_Cable;
312 if(m_debugCout) cout << "cable density " << m_Rho_Cable << endl;
313
314
315 std::getline(fin, strcom);
316 std::getline(fin, strcom);
317 std::getline(fin, strcom);
318 double r_i_separator,r_o_separator,l_separator;
319 double t_al1,t_al2,t_carbonf;
320 fin >> r_i_separator >> r_o_separator >> l_separator;
321
322 std::getline(fin, strcom);
323 std::getline(fin, strcom);
324 fin >> t_al1 >> t_carbonf>> t_al2;
325
327 m_CgemSeparator->
setInnerR(r_i_separator);
328 m_CgemSeparator->
setOuterR(r_o_separator);
333
334
335
336 std::getline(fin, strcom);
337 std::getline(fin, strcom);
338 std::getline(fin, strcom);
339 fin >> m_R_i_Cgem >> m_R_o_Cgem >> m_L_Cgem;
340
341 std::getline(fin, strcom);
342 std::getline(fin, strcom);
343 std::getline(fin, strcom);
344 fin >> m_passive;
345 if(m_debugCout) cout << "Cgem passive elements are switched " << m_passive << endl;
346
347 double T_Cathode,T_Anode, T_GemFoil;
348 for (int i=0; i < m_N_CgemLayer; i++) {
349 T_Cathode = tc_cu1[i]+tc_kapton1[i]+tc_epoxy0[i]+tc_carbonf[i]+tc_epoxy1[i]+tc_honeycomb[i]+tc_rohacell1[i]+tc_epoxy2[i]+tc_kapton2[i]+tc_epoxy3[i]+tc_rohacell2[i]+tc_epoxy4[i]+tc_kapton3[i]+tc_cu2[i];
350 m_T_Cathode[i] = T_Cathode;
351
352 T_Anode = ta_cu1[i]+ta_kapton1[i]+ta_cu2[i]+ta_epoxy1[i]+ta_kapton2[i]+ta_epoxy2[i]+ta_rohacell1[i]+ta_carbonf1[i]+ta_kapton3[i]+ta_epoxy3[i]+ta_honeycomb[i]+ta_kapton4[i]+ta_epoxy4[i]+ta_rohacell2[i]+ta_carbonf2[i]+ta_epoxy5[i]+ta_cu3[i]+ta_kapton5[i]+ta_kapton6[i]+ta_cu4[i];
353 m_T_Anode[i] = T_Anode;
354
355 T_GemFoil = tg_cu1[i]+tg_kapton[i]+tg_cu2[i];
356 m_T_CgemLayer[i] = T_Cathode+ gap_d[i] + tg_gt1[i] + tg_gt2[i] + tg_gi[i] + T_GemFoil*3 + T_Anode;
357
358 if(m_debugCout)
359 {
360 cout << left << "R_CgemLayer " << left << "L_CgemLayer "
361 << left << "N_Sheet " << left << "W_Sheet "
362 << left << "A_Stereo " << left << "W_Pitch_X "
363 << left << "W_Pitch_V "<< left << "W_Strip_X "
364 << left << "W_Strip_V "<< left << "N_Channel_Phi "
365 << left << "N_Channel_V " << left << "Orientation " << endl;
378
379 cout << left << "T_Cathode L"<<i << left << "T_GemFoil L"<<i << left << "T_Anode L"<<i
380 << left << "T_CgemLayer "<<i << endl;
381 cout << left << setw(10) << T_Cathode << left << setw(10) << T_GemFoil
382 << left << setw(8) << T_Anode << left << setw(9) << m_T_CgemLayer[i] << endl;
383
386 cout << "thickness " << m_T_CgemLayer[i] << endl;
387 }
388
389
391 m_CgemLayer[i]->
setOuterROfCgemLayer(m_CgemLayer[i]->getInnerROfCgemLayer() + m_T_CgemLayer[i]);
392
393
395 if(fReversed == false) {
397 m_CgemLayer[i]->
setOuterROfCathode( m_CgemLayer[i]->getInnerROfCgemLayer() + T_Cathode);
398 } else {
400 m_CgemLayer[i]->
setInnerROfCathode( m_CgemLayer[i]->getOuterROfCgemLayer() - T_Cathode);
401 }
402
404
405 int counter = 0;
409
411
412 switch(counter) {
413 case 0 :
416 inner_r_cathode[imat]+=tc_cu1[i];
417 break;
418 case 1 :
421 inner_r_cathode[imat]+=tc_kapton1[i];
422 break;
423 case 2 :
426 inner_r_cathode[imat]+=tc_epoxy0[i];
427 break;
428 case 3 :
431 inner_r_cathode[imat]+=tc_carbonf[i];
432 break;
433 case 4 :
436 inner_r_cathode[imat]+=tc_epoxy1[i];
437 break;
438 case 5 :
441 inner_r_cathode[imat]+=tc_honeycomb[i];
442 break;
443 case 6 :
446 inner_r_cathode[imat]+=tc_rohacell1[i];
447 break;
448 case 7 :
451 inner_r_cathode[imat]+=tc_epoxy2[i];
452 break;
453 case 8 :
456 inner_r_cathode[imat]+=tc_kapton2[i];
457 break;
458 case 9 :
461 inner_r_cathode[imat]+=tc_epoxy3[i];
462 break;
463 case 10 :
466 inner_r_cathode[imat]+=tc_rohacell2[i];
467 break;
468 case 11 :
471 inner_r_cathode[imat]+=tc_epoxy4[i];
472 break;
473 case 12 :
476 inner_r_cathode[imat]+=tc_kapton3[i];
477 break;
478 case 13 :
481 inner_r_cathode[imat]+=tc_cu2[i];
482
483 if(m_debugCout) cout << " CATHODE CU INNER " << inner_r_cathode[imat] << " OUTER " << inner_r_cathode[imat]+tc_cu2[i] << endl;
484
485 break;
486 default:
487 break;
488 }
489
490
492 if(m_debugCout) cout << "breaking" << endl;
493 break;
494 }
495 inner_r_cathode[imat + 1] = inner_r_cathode[imat];
496 if(fReversed == false) counter++;
497 else counter--;
498 }
499 if(m_debugCout)
500 {
501 cout << "T_cathode: " << setw(15) <<T_Cathode;
532 }
533
534
535
536 if(fReversed == false) {
537 if (fabs((m_CgemLayer[i]->getOuterROfCathode() / m_CgemLayer[i]->getOuterROfCathodeCu2()) - 1) > FLT_EPSILON){
538 cout << fabs(m_CgemLayer[i]->getOuterROfCathode() - m_CgemLayer[i]->getOuterROfCathodeCu2()) << endl;
541 << ", FLT_EPSILON = " << FLT_EPSILON << endl;
542 cout << "Error : CgemGeomSvc::initGeom(), Cathode size is wrong!" << endl;
543 return false;
544 }
545 }
546 else {
547 if (fabs((m_CgemLayer[i]->getInnerROfCathode() / m_CgemLayer[i]->getInnerROfCathodeCu1()) - 1) > FLT_EPSILON){
548 cout << fabs(m_CgemLayer[i]->getInnerROfCathode() - m_CgemLayer[i]->getInnerROfCathodeCu1()) << endl;
551 << ", FLT_EPSILON = " << FLT_EPSILON << endl;
552 cout << "Error : CgemGeomSvc::initGeom(), Cathode size is wrong!" << endl;
553 return false;
554 }
555 }
556
557
558 if(fReversed == false) {
559 m_CgemLayer[i]->
setInnerROfGapD( m_CgemLayer[i]->getOuterROfCathode() );
560 m_CgemLayer[i]->
setOuterROfGapD( m_CgemLayer[i]->getOuterROfCathode() + gap_d[i] );
561 m_CgemLayer[i]->
setInnerROfGapT1( m_CgemLayer[i]->getOuterROfGapD() + tg_cu1[i]+tg_kapton[i]+tg_cu2[i] );
562 m_CgemLayer[i]->
setOuterROfGapT1( m_CgemLayer[i]->getInnerROfGapT1() + tg_gt1[i] );
563 m_CgemLayer[i]->
setInnerROfGapT2( m_CgemLayer[i]->getOuterROfGapT1() + tg_cu1[i]+tg_kapton[i]+tg_cu2[i]);
564 m_CgemLayer[i]->
setOuterROfGapT2( m_CgemLayer[i]->getInnerROfGapT2() + tg_gt2[i] );
565 m_CgemLayer[i]->
setInnerROfGapI( m_CgemLayer[i]->getOuterROfGapT2() + tg_cu1[i]+tg_kapton[i]+tg_cu2[i] );
566 m_CgemLayer[i]->
setOuterROfGapI( m_CgemLayer[i]->getInnerROfGapI() + tg_gi[i]);
567 }
568 else {
569 m_CgemLayer[i]->
setOuterROfGapD( m_CgemLayer[i]->getInnerROfCathode() );
570 m_CgemLayer[i]->
setInnerROfGapD( m_CgemLayer[i]->getInnerROfCathode() - gap_d[i]);
571 m_CgemLayer[i]->
setOuterROfGapT1( m_CgemLayer[i]->getInnerROfGapD() - tg_cu1[i]-tg_kapton[i]-tg_cu2[i]);
572 m_CgemLayer[i]->
setInnerROfGapT1( m_CgemLayer[i]->getOuterROfGapT1() - tg_gt1[i]);
573 m_CgemLayer[i]->
setOuterROfGapT2( m_CgemLayer[i]->getInnerROfGapT1() - tg_cu1[i]-tg_kapton[i]-tg_cu2[i] );
574 m_CgemLayer[i]->
setInnerROfGapT2( m_CgemLayer[i]->getOuterROfGapT2() - tg_gt2[i]);
575 m_CgemLayer[i]->
setOuterROfGapI( m_CgemLayer[i]->getInnerROfGapT2() - tg_cu1[i]-tg_kapton[i]-tg_cu2[i]);
576 m_CgemLayer[i]->
setInnerROfGapI( m_CgemLayer[i]->getOuterROfGapI() - tg_gi[i]);
577 }
578
579 if(m_debugCout)
580 {
581 cout << "Geom foil&gap " << setw(15) << gap_d[i] << setw(15)
582 << tg_cu1[i]+tg_kapton[i]+tg_cu2[i] << setw(15) << tg_gt1[i]
583 << setw(15) << tg_gt2[i] << setw(15) << tg_gi[i] << endl;
584
585 cout << "gaps: -----------------------------" << endl;
594 }
595
596
597 if (m_N_GemFoil != 3){
598 cout << "Error : CgemGeomSvc::initGeom(), GemFoil number in code is 3! If m_N_GemFoil != 3,you should modify the code,especially the gap information!" << endl;
599 return false;
600 }
601
602 double R_i_GemFoil[3] = {0};
603 if(fReversed == false) {
607 }
608 else {
612 }
613
614 for(int j=0; j < m_N_GemFoil; j++){
616
618
619
622 double m_t_foil_list[
N_MATERIAL_MAX] = {tg_cu1[i], tg_kapton[i], tg_cu2[i]};
623
624 inner_r_foil[0] = R_i_GemFoil[j];
625
626 if(fReversed == true) counter = ngMaterials[i] - 1;
627 else counter = 0;
628
633
634 for(int imat = 0; imat < ngMaterials[i]; imat++) {
635 outer_r_foil[imat] = inner_r_foil[imat] + m_t_foil_list[counter];
636
637 switch(counter) {
638 case 0 :
641 break;
642 case 1 :
645 break;
646 case 2 :
649 break;
650 default:
651 break;
652 }
653
654
655 if(imat == ngMaterials[i] - 1) {
656 if(m_debugCout) cout << "breaking" << endl;
657 break;
658 }
659 inner_r_foil[imat + 1] = outer_r_foil[imat];
660 if(fReversed == false) counter++;
661 else counter--;
662 }
663
666
668
669 if(m_debugCout)
670 {
671 cout << "Geom foil: layer " << i << " " << j << endl;
672 cout << setw(15) << tg_cu1[i] << setw(15)
673 << tg_kapton[i] << setw(15) << tg_cu2[i] << endl;
674
684 }
685 }
686
687 if(m_debugCout)
688 {
689 if(fReversed) {
690 cout << "GEM" << endl;
698 }
699 else {
700 cout << "GEM" << endl;
708 }
709 }
710
711
712 if(fReversed == false) {
714 m_CgemLayer[i]->
setOuterROfAnode( m_CgemLayer[i]->getOuterROfGapI() + T_Anode );
715 } else {
717 m_CgemLayer[i]->
setInnerROfAnode( m_CgemLayer[i]->getInnerROfGapI() - T_Anode);
718 }
719
721
722
723
727 ta_cu1[i],ta_kapton1[i],ta_cu2[i],ta_epoxy1[i],ta_kapton2[i],ta_epoxy2[i],ta_rohacell1[i],ta_carbonf1[i],ta_kapton3[i],ta_epoxy3[i],ta_honeycomb[i],ta_kapton4[i],ta_epoxy4[i],ta_rohacell2[i],ta_carbonf2[i],ta_epoxy5[i],ta_cu3[i],ta_kapton5[i],ta_kapton6[i],ta_cu4[i]
728 };
730
732 else counter = 0;
733
735 outer_r_anode[imat] = inner_r_anode[imat] + m_t_anode_list[counter];
736
737 switch(counter) {
738 case 0 :
741 break;
742 case 1 :
745 break;
746 case 2:
749 break;
750 case 3:
753 break;
754 case 4:
757 break;
758 case 5:
761 break;
762 case 6:
765 break;
766 case 7:
769 break;
770 case 8 :
773 break;
774 case 9:
777 break;
778 case 10:
781 break;
782 case 11:
785 break;
786 case 12:
789 break;
790 case 13:
793 break;
794 case 14:
797 break;
798 case 15:
801 break;
802 case 16:
805 break;
806 case 17:
809 break;
810 case 18:
813 break;
814 case 19:
817 break;
818 default:
819 break;
820 }
821
822
824 if(m_debugCout) cout << "breaking" << endl;
825 break;
826 }
827 inner_r_anode[imat + 1] = outer_r_anode[imat];
828 if(fReversed == false) counter++;
829 else counter--;
830 }
831 if(m_debugCout)
832 {
833 cout << "ANODE: " << endl;
876 cout << "X strip description is " << m_B_strip_x_on << " and V strip description is " << m_B_strip_v_on << endl;
877 }
878
879
880 if(fReversed == false) {
881 if(fabs((m_CgemLayer[i]->getOuterROfAnode() / m_CgemLayer[i]->getOuterROfCgemLayer())-1) > FLT_EPSILON){
882 cout << fabs(m_CgemLayer[i]->getOuterROfAnode() - m_CgemLayer[i]->getOuterROfCgemLayer()) << endl;
883 cout << FLT_EPSILON << endl;
884 cout << "Error : CgemLayer size is wrong!" << endl;
885 return false;
886 }
887 }
888 else {
889 if(fabs((m_CgemLayer[i]->getInnerROfAnode() / m_CgemLayer[i]->getInnerROfCgemLayer())-1) > FLT_EPSILON){
890 cout << fabs(m_CgemLayer[i]->getInnerROfAnode() - m_CgemLayer[i]->getInnerROfCgemLayer()) << endl;
891 cout << FLT_EPSILON << endl;
892 cout << "Error : CgemLayer size is wrong!" << endl;
893 return false;
894 }
895
896 }
897
898 m_CgemLayer[i]->
print();
899
903
904 if(fReversed) {
907 }
908 double width_sheet=rXstrips*CLHEP::twopi/nSheet;
909 if(m_debugCout) cout<<"construct CgemReadoutPlanes: "<<endl;
910
911
912
913 for(int j=0; j<nSheet; j++){
914 if(m_debugCout) cout<<"------ layer "<<i<<", sheet "<<j<<" ------ "<<endl;
915 double rStrips = 0.5*(rXstrips+rVstrips);
916 dX_start_strip[i][j]=(2.*
M_PI*rStrips-m_CgemLayer[i]->
getNumberOfChannelX()*m_CgemLayer[i]->getWidthOfPitchX())/(2.*nSheet)*rXstrips/rStrips;
918 rXstrips, rVstrips,
919 phi_start[i][j], dX_start_strip[i][j],
920 dV_start_strip[i][j],
921 width_sheet,
922 -0.5*m_CgemLayer[i]->getLengthOfCgemLayer(),
923 m_CgemLayer[i]->getLengthOfCgemLayer(),
924 m_CgemLayer[i]->getNumberOfChannelX()/nSheet,
925 m_CgemLayer[i]->getNumberOfChannelV()/nSheet,
926 m_CgemLayer[i]->getWidthOfPitchX(),
927 m_CgemLayer[i]->getWidthOfStripX(),
928 m_CgemLayer[i]->getWidthOfPitchV(),
929 m_CgemLayer[i]->getWidthOfStripV(),
930 m_CgemLayer[i]->getAngleOfStereo(),
931 m_CgemLayer[i]->getMiddleROfGapD(),
932 m_CgemLayer[i]->getOuterROfGapD()
933 );
934 }
935
936 }
937
938 if(m_debugCout) cout << "INFO : CgemGeomSvc::initGeom(), Successfully input geometry parameters!" << endl;
939
940
941
942
943
944
945
946 {
947 cout << "====================CGEM Information=========================" << endl;
948 cout << "R_i_Cgem " << "R_o_Cgem " << "L_Cgem" << endl;
949 cout << left << setw(10) << m_R_i_Cgem
950 << left << setw(10) << m_R_o_Cgem
951 << left << setw(10) << m_L_Cgem << endl;
952 cout << "====================CGEM Information End!====================" << endl;
953 cout << " " << endl;
954
955
956 cout << "************************ FINAL CHECK OF THE DIMENSIONS" << endl;
957 for(int ilayer = 0; ilayer < 3; ilayer++) {
958
959
960 cout <<
"inner global radius of layer" << ilayer <<
": " << m_CgemLayer[ilayer]->
getInnerROfCgemLayer()
964
965 for(int ifoil = 0; ifoil < 3; ifoil++) {
966 cout <<
"inner radius of gem" << ifoil <<
": " << m_foil[ilayer][ifoil]->
getInnerROfCgemFoil()
968 }
969
970 cout <<
"inner radius of anode: " << m_CgemLayer[ilayer]->
getInnerROfAnode()
972 }
973 cout << endl;
974 }
975
976 return true;
977}
double getOuterROfCgemFoilCu1() const
double getInnerROfCgemFoilCu2() const
void setIDOfCgemFoil(int id)
void setInnerROfCgemFoilKapton(double r)
void setOuterROfCgemFoilCu1(double r)
double getOuterROfCgemFoilKapton() const
void setLengthOfCgemFoilHole(double r)
void setInnerROfCgemFoilCu1(double r)
double getInnerROfCgemFoil() const
double getInnerROfCgemFoilCu1() const
void setOuterROfCgemFoilCu2(double r)
int getIDOfCgemFoil() const
void setInnerROfCgemFoilCu2(double r)
void setOuterR1OfCgemFoilHole(double r)
void setOuterROfCgemFoilKapton(double r)
void setOuterR2OfCgemFoilHole(double r)
double getInnerROfCgemFoilKapton() const
void setOuterROfCgemFoil(double r)
void setInnerROfCgemFoil(double r)
double getOuterROfCgemFoilCu2() const
double getOuterROfCgemFoil() const
void setInnerROfCgemFoilHole(double r)
void setWidthOfPitchV(double w)
void setWidthOfStripX(double w)
double getOuterROfAnodeCu1() const
void setInnerROfCathodeEpoxy3(double r)
void setAngleOfStereo(double a)
void setIDOfCgemLayer(int id)
void setOuterROfAnodeKapton4(double r)
void setInnerROfCathodeEpoxy4(double r)
double getInnerROfCathode() const
void setInnerROfAnodeKapton6(double r)
double getInnerROfAnodeEpoxy4() const
double getInnerROfAnodeEpoxy1() const
void setInnerROfAnodeRohacell2(double r)
void setOuterROfCathodeKapton3(double r)
void setOuterROfAnodeCarbonf2(double r)
double getInnerROfCathodeKapton2() const
void setOuterROfAnodeCu3(double r)
void setOuterROfAnodeKapton1(double r)
double getInnerROfCathodeEpoxy0() const
double getWidthOfPitchV() const
void setOuterROfAnodeRohacell2(double r)
double getOuterROfCathodeEpoxy4() const
double getInnerROfGapI() const
double getOuterROfAnodeCarbonf1() const
void setOuterROfAnode(double r)
void setInnerROfAnodeHoneycomb(double r)
double getWidthOfStripV() const
double getOuterROfGapD() const
void setOuterROfAnodeEpoxy5(double r)
void setOuterROfCathodeRohacell2(double r)
double getInnerROfCathodeKapton3() const
void setInnerROfCathodeCarbonf(double r)
double getInnerROfAnodeHoneycomb() const
double getOuterROfAnodeEpoxy2() const
double getInnerROfGapT1() const
double getInnerROfCathodeCu1() const
double getLengthOfCgemLayer() const
void setInnerROfAnodeCu2(double r)
double getOuterROfCathodeEpoxy1() const
void setOuterROfAnodeEpoxy3(double r)
double getInnerROfCathodeCu2() const
void setOuterROfAnodeKapton5(double r)
double getInnerROfCathodeEpoxy2() const
double getInnerROfAnodeKapton6() const
double getOuterROfCathodeKapton1() const
double getOuterROfAnodeHoneycomb() const
void setOuterROfCathodeKapton2(double r)
void setInnerROfCathodeKapton2(double r)
void setOuterROfAnodeEpoxy1(double r)
double getOuterROfAnodeKapton2() const
double getInnerROfCathodeEpoxy4() const
double getOuterROfAnodeCu4() const
double getOuterROfAnodeKapton1() const
void setInnerROfAnodeEpoxy5(double r)
double getOuterROfCathodeCu2() const
double getInnerROfAnodeCu1() const
void setInnerROfCathodeCu2(double r)
double getInnerROfAnodeKapton2() const
void setInnerROfGapD(double r)
void setOuterROfGapI(double r)
double getInnerROfCgemLayer() const
double getOuterROfCathodeEpoxy3() const
void setNumberOfChannelV(int n)
double getInnerROfAnode() const
double getInnerROfGapT2() const
void setCgemFoil(int i, CgemGeoFoil *pFoil)
double getWidthOfStripX() const
double getOuterROfAnodeRohacell1() const
void setInnerROfAnodeEpoxy2(double r)
void setOuterROfAnodeKapton2(double r)
double getOuterROfGapT1() const
void setInnerROfAnodeCarbonf2(double r)
void setOuterROfGapT2(double r)
double getOuterROfCathodeRohacell2() const
double getOuterROfCathodeCarbonf() const
void setOuterROfCathodeKapton1(double r)
double getOuterROfGapT2() const
double getInnerROfAnodeCu3() const
void setOuterROfCathodeCarbonf(double r)
void setInnerROfAnodeKapton1(double r)
void setInnerROfAnodeCarbonf1(double r)
double getOuterROfAnodeCu3() const
double getInnerROfCathodeEpoxy3() const
void setOuterROfAnodeKapton3(double r)
double getOuterROfAnodeKapton3() const
void setInnerROfCgemLayer(double innerR)
double getOuterROfAnode() const
double getOuterROfCathodeCu1() const
void setInnerROfAnodeCu1(double r)
void setInnerROfGapT1(double r)
void setInnerROfGapI(double r)
void setInnerROfCathodeHoneycomb(double r)
double getOuterROfCathodeKapton3() const
int getNumberOfChannelX() const
double getInnerROfAnodeRohacell1() const
void setNumberOfSheet(int n)
void setInnerROfAnodeCu3(double r)
void setInnerROfAnode(double r)
int getNumberOfChannelV() const
void setInnerROfGapT2(double r)
double getOuterROfCathode() const
double getOuterROfAnodeEpoxy1() const
double getWidthOfSheet() const
double getInnerROfAnodeEpoxy2() const
void setOuterROfCathodeEpoxy4(double r)
double getOuterROfCathodeRohacell1() const
double getOuterROfAnodeEpoxy4() const
void setInnerROfCathodeRohacell1(double r)
void setInnerROfAnodeCu4(double r)
void setOuterROfAnodeEpoxy2(double r)
void setInnerROfAnodeRohacell1(double r)
void setOuterROfGapT1(double r)
double getInnerROfAnodeCu4() const
void setInnerROfAnodeKapton5(double r)
double getOuterROfAnodeCarbonf2() const
double getOuterROfGapI() const
void setOrientation(bool o)
void setOuterROfAnodeCu2(double r)
double getInnerROfAnodeRohacell2() const
void setInnerROfCathodeRohacell2(double r)
double getOuterROfCgemLayer() const
void setOuterROfCathodeRohacell1(double r)
void setInnerROfAnodeKapton4(double r)
double getInnerROfCathodeCarbonf() const
void setInnerROfCathodeEpoxy1(double r)
double getAngleOfStereo() const
double getInnerROfAnodeCarbonf1() const
void setOuterROfCathodeEpoxy1(double r)
void setNumberOfChannelX(int n)
void setOuterROfAnodeKapton6(double r)
double getInnerROfAnodeEpoxy3() const
void setOuterROfCgemLayer(double outerR)
double getOuterROfAnodeEpoxy5() const
void setOuterROfCathodeEpoxy0(double r)
double getInnerROfCathodeKapton1() const
double getWidthOfPitchX() const
void setOuterROfCathodeCu2(double r)
void setWidthOfStripV(double w)
double getInnerROfAnodeKapton3() const
void setOuterROfCathodeHoneycomb(double r)
double getInnerROfCathodeEpoxy1() const
double getInnerROfAnodeKapton4() const
void setOuterROfCathodeEpoxy2(double r)
bool getOrientation() const
void setInnerROfCathodeKapton1(double r)
void setInnerROfCathodeEpoxy0(double r)
void setLengthOfCgemLayer(double length)
void setInnerROfCathodeCu1(double r)
void setOuterROfAnodeHoneycomb(double r)
void setInnerROfCathodeKapton3(double r)
void setInnerROfAnodeEpoxy1(double r)
void setInnerROfCathode(double r)
double getInnerROfAnodeEpoxy5() const
void setOuterROfAnodeCarbonf1(double r)
double getOuterROfAnodeCu2() const
double getInnerROfGapD() const
double getInnerROfAnodeCarbonf2() const
void setInnerROfAnodeKapton3(double r)
double getInnerROfAnodeKapton5() const
double getOuterROfAnodeEpoxy3() const
double getInnerROfAnodeKapton1() const
void setInnerROfCathodeEpoxy2(double r)
double getOuterROfCathodeEpoxy2() const
double getInnerROfAnodeCu2() const
double getOuterROfCathodeHoneycomb() const
void setOuterROfCathodeEpoxy3(double r)
double getOuterROfCathodeKapton2() const
double getOuterROfAnodeKapton4() const
void setInnerROfAnodeEpoxy3(double r)
double getInnerROfCathodeHoneycomb() const
double getInnerROfCathodeRohacell1() const
void setOuterROfGapD(double r)
void setOuterROfAnodeCu1(double r)
void setOuterROfAnodeCu4(double r)
double getOuterROfAnodeKapton5() const
void setOuterROfCathodeCu1(double r)
void setWidthOfSheet(double w)
void setOuterROfAnodeRohacell1(double r)
double getInnerROfCathodeRohacell2() const
void setWidthOfPitchX(double w)
void setInnerROfAnodeEpoxy4(double r)
void setOuterROfAnodeEpoxy4(double r)
double getOuterROfAnodeRohacell2() const
double getOuterROfAnodeKapton6() const
double getOuterROfCathodeEpoxy0() const
void setInnerROfAnodeKapton2(double r)
void setOuterROfCathode(double r)
void setInnerR(double innerR)
void setOuterR(double outerR)
void setLength(double length)
void setThickOfOuterAluminum(double thick)
void setThickOfCarbonFiber(double thick)
void setThickOfInnerAluminum(double thick)
static const int N_MATERIAL_MAX