12#include "GaudiKernel/AlgFactory.h"
13#include "GaudiKernel/DataObject.h"
14#include "GaudiKernel/IEventProcessor.h"
16#include "GaudiKernel/Incident.h"
17#include "GaudiKernel/IIncidentSvc.h"
18#include "GaudiKernel/Memory.h"
23#include "GaudiKernel/ISvcLocator.h"
24#include "GaudiKernel/IDataProviderSvc.h"
25#include "GaudiKernel/Bootstrap.h"
26#include "GaudiKernel/RegistryEntry.h"
27#include "GaudiKernel/MsgStream.h"
37#include "GaudiKernel/SmartDataPtr.h"
45 Algorithm(name,pSvcLocator){
47 declareProperty(
"CosmicRayDataSetID", CosmicRayDataSetID =
"CR201909");
56 MsgStream log(
msgSvc(), name());
57 log << MSG::INFO <<
"TestMapping initialize()" << endreq;
59 StatusCode sc = service(
"CgemGeomSvc", m_geomSvc);
60 if(sc != StatusCode::SUCCESS) {
61 log << MSG::ERROR <<
"can not use CgemGeomSvc" << endreq;
62 return StatusCode::FAILURE;
65 output =
new TFile(
"Mappingtest_histo.root",
"RECREATE");
70 cout <<
"CHECK CROSSING" << endl;
73 cout <<
"CHECK FEB POSITIONS" << endl;
77 return StatusCode::SUCCESS;
82 MsgStream log(
msgSvc(), name());
83 cout <<
"->TestMapping::execute" << endl;
84 cout <<
"geomtry service pointer " << m_geomSvc << endl;
85 return StatusCode::SUCCESS;
91 const int nsheet[nlayer] = {1, 2, 2};
93 const int nstrip[nlayer][nview] = {{856, 1173}, {630, 1077}, {832, 1395}};
95 for(
int ilayer = 0; ilayer < nlayer; ilayer++) {
96 for(
int isheet = 0; isheet < nsheet[ilayer]; isheet++) {
103 double anode_radius_x = anode->
getRX();
104 double anode_radius_v = anode->
getRV();
106 for(
int iview = 0; iview < nview; iview++) {
108 int nstrip = nxstrip;
109 if(iview==1) nstrip = nvstrip;
111 for(
int istrip=0; istrip < nstrip; istrip++) {
123 stripid_L1_x[istrip] = stripid;
125 phi_L1_S1[istrip] = phi;
127 else if(layerid==1 && sheetid==0) {
128 stripid_L2_x[istrip] = stripid;
130 phi_L2_S1[istrip] = phi;
132 else if(layerid==1 && sheetid==1) {
134 phi_L2_S2[istrip] = phi;
136 else if(layerid==2 && sheetid==0) {
137 stripid_L3_x[istrip] = stripid;
139 phi_L3_S1[istrip] = phi;
141 else if(layerid==2 && sheetid==1) {
143 phi_L3_S2[istrip] = phi;
150 stripid_L1_v[istrip] = stripid;
153 else if(layerid==1 && sheetid==0) {
154 stripid_L2_v[istrip] = stripid;
157 else if(layerid==1 && sheetid==1) v_L2_S2[istrip] =
v;
158 else if(layerid==2 && sheetid==0) {
159 stripid_L3_v[istrip] = stripid;
162 else if(layerid==2 && sheetid==1) v_L3_S2[istrip] =
v;
175 const int nlayer = 3;
176 const int nsheet[nlayer] = {1, 2, 2};
178 const int nstrip[nlayer][nview] = {{856, 1173}, {630, 1077}, {832, 1395}};
180 for(
int ilayer = 0; ilayer < nlayer; ilayer++) {
181 for(
int isheet = 0; isheet < nsheet[ilayer]; isheet++) {
188 double anode_radius_x = anode->
getRX();
189 double anode_radius_v = anode->
getRV();
190 double radius = 0.5 * (anode_radius_x + anode_radius_v);
192 double zmin = anode->
getZmin();
195 cout <<
"layerid " << layerid <<
" sheetid " << sheetid << endl;
196 cout <<
"nxstrip " << nxstrip <<
" nvstrip " << nvstrip << endl;
197 cout <<
"length " << zlength <<
" zmin " << zmin << endl;
198 cout <<
"middle radius " << radius << endl;
199 cout <<
"stereo angle " << sangle <<
" in deg " << sangle * TMath::RadToDeg() << endl;
204 double dphi = (360./nphi) * TMath::DegToRad();
205 if(layerid > 0) nphi *= 0.5;
208 double phimin = -180 * TMath::DegToRad();
209 if(sheetid > 0) phimin = 0. * TMath::DegToRad();
213 double dz = zlength/nz;
218 for(
int iphi = 0; iphi < nphi; iphi++) {
219 double phi = phimin + iphi * dphi;
220 double x = radius *
cos(phi);
221 double y = radius *
sin(phi);
224 phi_runner_L1_S1[iphi] = phi * TMath::RadToDeg();
225 x_runner_L1_S1[iphi] =
x;
226 y_runner_L1_S1[iphi] = y;
228 else if(layerid==1 && sheetid==0) {
229 phi_runner_L2_S1[iphi] = phi * TMath::RadToDeg();
230 x_runner_L2_S1[iphi] =
x;
231 y_runner_L2_S1[iphi] = y;
233 else if(layerid==1 && sheetid==1) {
234 phi_runner_L2_S2[iphi] = phi * TMath::RadToDeg();
235 x_runner_L2_S2[iphi] =
x;
236 y_runner_L2_S2[iphi] = y;
238 else if(layerid==2 && sheetid==0) {
239 phi_runner_L3_S1[iphi] = phi * TMath::RadToDeg();
240 x_runner_L3_S1[iphi] =
x;
241 y_runner_L3_S1[iphi] = y;
243 else if(layerid==2 && sheetid==1) {
244 phi_runner_L3_S2[iphi] = phi * TMath::RadToDeg();
245 x_runner_L3_S2[iphi] =
x;
246 y_runner_L3_S2[iphi] = y;
253 for(
int iz = 0; iz < nz; iz++) {
254 double dz = zlength/nz;
255 double z = zmin + iz * dz;
256 G4ThreeVector pos(
x, y, z);
264 if( X_ID < ((
int) (nxstrip * 0.5))) {
270 z_runner_L1_S1[iz] = z;
271 V_ID_atphi0_L1_S1[iz] = V_ID;
273 else if(layerid==1 && sheetid==0) {
274 z_runner_L2_S1[iz] = z;
275 V_ID_atphi0_L2_S1[iz] = V_ID;
277 else if(layerid==1 && sheetid==1) {
278 z_runner_L2_S2[iz] = z;
279 V_ID_atphi0_L2_S2[iz] = V_ID;
281 else if(layerid==2 && sheetid==0) {
282 z_runner_L3_S1[iz] = z;
283 V_ID_atphi0_L3_S1[iz] = V_ID;
285 else if(layerid==2 && sheetid==1) {
286 z_runner_L3_S2[iz] = z;
287 V_ID_atphi0_L3_S2[iz] = V_ID;
297 X_ID_L1_S1[iphi] = X_ID;
298 V_ID_atzmin_L1_S1[iphi] = V_ID;
300 else if(layerid==1 && sheetid==0) {
301 X_ID_L2_S1[iphi] = X_ID;
302 V_ID_atzmin_L2_S1[iphi] = V_ID;
304 else if(layerid==1 && sheetid==1) {
305 X_ID_L2_S2[iphi] = X_ID;
306 V_ID_atzmin_L2_S2[iphi] = V_ID;
308 else if(layerid==2 && sheetid==0) {
309 X_ID_L3_S1[iphi] = X_ID;
310 V_ID_atzmin_L3_S1[iphi] = V_ID;
312 else if(layerid==2 && sheetid==1) {
313 X_ID_L3_S2[iphi] = X_ID;
314 V_ID_atzmin_L3_S2[iphi] = V_ID;
317 else if(iz == nz-1) {
319 V_ID_atzmax_L1_S1[iphi] = V_ID;
321 else if(layerid==1 && sheetid==0) {
322 V_ID_atzmax_L2_S1[iphi] = V_ID;
324 else if(layerid==1 && sheetid==1) {
325 V_ID_atzmax_L2_S2[iphi] = V_ID;
327 else if(layerid==2 && sheetid==0) {
328 V_ID_atzmax_L3_S1[iphi] = V_ID;
330 else if(layerid==2 && sheetid==1) {
331 V_ID_atzmax_L3_S2[iphi] = V_ID;
342 const int nlayer = 3;
343 const int nsheet[nlayer] = {1, 2, 2};
346 for(
int ilayer = 0; ilayer < nlayer; ilayer++) {
347 for(
int isheet = 0; isheet < nsheet[ilayer]; isheet++) {
358 int nstrip = nxstrip;
359 if(iview==1) nstrip = nvstrip;
362 for(
int istrip=0; istrip < nstrip; istrip++) {
368 double phi = anode->
getPhiFromXID(stripid) * TMath::RadToDeg();
370 if(isxstrip == iview) cout <<
"ERROR " << isxstrip <<
" " << iview << endl;
385 if(CosmicRayDataSetID==
"CR201909") {
387 const int nlayer = 3;
388 const int nsheet[nlayer] = {1, 2, 2};
390 const int nstrip[nlayer][nview] = {{856, 1173}, {630, 1077}, {832, 1395}};
392 double pitch = 0.660;
393 double anode_radius[3] = {90., 132.5, 175};
394 double overlap_gap[3] = {0.407, 0.32, 0.415};
397 for(
int ilayer = 0; ilayer < nlayer; ilayer++) {
398 for(
int iview = 0; iview < nview; iview++) {
399 int ntot = nstrip[ilayer][iview] * nsheet[ilayer];
401 for(
int istrip = 0; istrip < ntot; istrip++) {
402 int stripid = istrip+1;
405 phi = TMath::TwoPi() - (pitch/anode_radius[ilayer]) * stripid;
406 double x =
cos(phi) * anode_radius[ilayer];
407 double z =
sin(phi) * anode_radius[ilayer];
408 double phi_corr = TMath::Pi() - phi;
411 stripid_L1_x_GRAAL[istrip] = stripid;
412 x_L1_GRAAL[istrip] =
x;
413 z_L1_GRAAL[istrip] = z;
414 phi_L1_GRAAL[istrip] = phi;
415 phi_L1_GRAAL_corr[istrip] = phi_corr;
418 stripid_L2_x_GRAAL[istrip] = stripid;
419 x_L2_GRAAL[istrip] =
x;
420 z_L2_GRAAL[istrip] = z;
421 phi_L2_GRAAL[istrip] = phi;
422 phi_L2_GRAAL_corr[istrip] = phi_corr;
425 stripid_L3_x_GRAAL[istrip] = stripid;
426 x_L3_GRAAL[istrip] =
x;
427 z_L3_GRAAL[istrip] = z;
428 phi_L3_GRAAL[istrip] = phi;
429 phi_L3_GRAAL_corr[istrip] = phi_corr;
447 MsgStream log(
msgSvc(),name());
448 log << MSG::INFO <<
"TestMapping finalize()" << endreq;
450 gs_L1_S1 =
new TGraph(
nstrip_L1_x, stripid_L1_x, s_L1_S1);
451 gphi_L1_S1 =
new TGraph(
nstrip_L1_x, stripid_L1_x, phi_L1_S1);
452 gv_L1_S1 =
new TGraph(
nstrip_L1_v, stripid_L1_v, v_L1_S1);
454 gs_L2_S1 =
new TGraph(
nstrip_L2_x, stripid_L2_x, s_L2_S1);
455 gphi_L2_S1 =
new TGraph(
nstrip_L2_x, stripid_L2_x, phi_L2_S1);
456 gv_L2_S1 =
new TGraph(
nstrip_L2_v, stripid_L2_v, v_L2_S1);
457 gs_L2_S2 =
new TGraph(
nstrip_L2_x, stripid_L2_x, s_L2_S2);
458 gphi_L2_S2 =
new TGraph(
nstrip_L2_x, stripid_L2_x, phi_L2_S2);
459 gv_L2_S2 =
new TGraph(
nstrip_L2_v, stripid_L2_v, v_L2_S2);
461 gs_L3_S1 =
new TGraph(
nstrip_L3_x, stripid_L3_x, s_L3_S1);
462 gphi_L3_S1 =
new TGraph(
nstrip_L3_x, stripid_L3_x, phi_L3_S1);
463 gv_L3_S1 =
new TGraph(
nstrip_L3_v, stripid_L3_v, v_L3_S1);
464 gs_L3_S2 =
new TGraph(
nstrip_L3_x, stripid_L3_x, s_L3_S2);
465 gphi_L3_S2 =
new TGraph(
nstrip_L3_x, stripid_L3_x, phi_L3_S2);
466 gv_L3_S2 =
new TGraph(
nstrip_L3_v, stripid_L3_v, v_L3_S2);
468 gs_L1_S1->SetName(
"gs_L1_S1");
469 gphi_L1_S1->SetName(
"gphi_L1_S1");
470 gv_L1_S1->SetName(
"gv_L1_S1");
472 gs_L2_S1->SetName(
"gs_L2_S1");
473 gphi_L2_S1->SetName(
"gphi_L2_S1");
474 gv_L2_S1->SetName(
"gv_L2_S1");
475 gs_L2_S2->SetName(
"gs_L2_S2");
476 gphi_L2_S2->SetName(
"gphi_L2_S2");
477 gv_L2_S2->SetName(
"gv_L2_S2");
479 gs_L3_S1->SetName(
"gs_L3_S1");
480 gphi_L3_S1->SetName(
"gphi_L3_S1");
481 gv_L3_S1->SetName(
"gv_L3_S1");
482 gs_L3_S2->SetName(
"gs_L3_S2");
483 gphi_L3_S2->SetName(
"gphi_L3_S2");
484 gv_L3_S2->SetName(
"gv_L3_S2");
505 gx_runner_L1_S1 =
new TGraph(
nphistep, phi_runner_L1_S1, x_runner_L1_S1);
506 gy_runner_L1_S1 =
new TGraph(
nphistep, phi_runner_L1_S1, y_runner_L1_S1);
507 gX_ID_L1_S1 =
new TGraph(
nphistep, phi_runner_L1_S1, X_ID_L1_S1);
508 gV_ID_atzmin_L1_S1 =
new TGraph(
nphistep, phi_runner_L1_S1, V_ID_atzmin_L1_S1);
509 gV_ID_atzmax_L1_S1 =
new TGraph(
nphistep, phi_runner_L1_S1, V_ID_atzmax_L1_S1);
510 gV_ID_atphi0_L1_S1 =
new TGraph(
nzstep, z_runner_L1_S1, V_ID_atphi0_L1_S1);
512 gx_runner_L2_S1 =
new TGraph(0.5*
nphistep, phi_runner_L2_S1, x_runner_L2_S1);
513 gy_runner_L2_S1 =
new TGraph(0.5*
nphistep, phi_runner_L2_S1, y_runner_L2_S1);
514 gX_ID_L2_S1 =
new TGraph(0.5*
nphistep, phi_runner_L2_S1, X_ID_L2_S1);
515 gV_ID_atzmin_L2_S1 =
new TGraph(0.5*
nphistep, phi_runner_L2_S1, V_ID_atzmin_L2_S1);
516 gV_ID_atzmax_L2_S1 =
new TGraph(0.5*
nphistep, phi_runner_L2_S1, V_ID_atzmax_L2_S1);
517 gV_ID_atphi0_L2_S1 =
new TGraph(
nzstep, z_runner_L2_S1, V_ID_atphi0_L2_S1);
519 gx_runner_L2_S2 =
new TGraph(0.5*
nphistep, phi_runner_L2_S2, x_runner_L2_S2);
520 gy_runner_L2_S2 =
new TGraph(0.5*
nphistep, phi_runner_L2_S2, y_runner_L2_S2);
521 gX_ID_L2_S2 =
new TGraph(0.5*
nphistep, phi_runner_L2_S2, X_ID_L2_S2);
522 gV_ID_atzmin_L2_S2 =
new TGraph(0.5*
nphistep, phi_runner_L2_S2, V_ID_atzmin_L2_S2);
523 gV_ID_atzmax_L2_S2 =
new TGraph(0.5*
nphistep, phi_runner_L2_S2, V_ID_atzmax_L2_S2);
524 gV_ID_atphi0_L2_S2 =
new TGraph(
nzstep, z_runner_L2_S2, V_ID_atphi0_L2_S2);
526 gx_runner_L3_S1 =
new TGraph(0.5*
nphistep, phi_runner_L3_S1, x_runner_L3_S1);
527 gy_runner_L3_S1 =
new TGraph(0.5*
nphistep, phi_runner_L3_S1, y_runner_L3_S1);
528 gX_ID_L3_S1 =
new TGraph(0.5*
nphistep, phi_runner_L3_S1, X_ID_L3_S1);
529 gV_ID_atzmin_L3_S1 =
new TGraph(0.5*
nphistep, phi_runner_L3_S1, V_ID_atzmin_L3_S1);
530 gV_ID_atzmax_L3_S1 =
new TGraph(0.5*
nphistep, phi_runner_L3_S1, V_ID_atzmax_L3_S1);
531 gV_ID_atphi0_L3_S1 =
new TGraph(
nzstep, z_runner_L3_S1, V_ID_atphi0_L3_S1);
533 gx_runner_L3_S2 =
new TGraph(0.5*
nphistep, phi_runner_L3_S2, x_runner_L3_S2);
534 gy_runner_L3_S2 =
new TGraph(0.5*
nphistep, phi_runner_L3_S2, y_runner_L3_S2);
535 gX_ID_L3_S2 =
new TGraph(0.5*
nphistep, phi_runner_L3_S2, X_ID_L3_S2);
536 gV_ID_atzmin_L3_S2 =
new TGraph(0.5*
nphistep, phi_runner_L3_S2, V_ID_atzmin_L3_S2);
537 gV_ID_atzmax_L3_S2 =
new TGraph(0.5*
nphistep, phi_runner_L3_S2, V_ID_atzmax_L3_S2);
538 gV_ID_atphi0_L3_S2 =
new TGraph(
nzstep, z_runner_L3_S2, V_ID_atphi0_L3_S2);
541 gx_runner_L1_S1->SetName(
"gx_runner_L1_S1");
542 gy_runner_L1_S1->SetName(
"gy_runner_L1_S1");
543 gX_ID_L1_S1->SetName(
"gX_ID_L1_S1");
544 gV_ID_atzmin_L1_S1->SetName(
"gV_ID_atzmin_L1_S1");
545 gV_ID_atzmax_L1_S1->SetName(
"gV_ID_atzmax_L1_S1");
546 gV_ID_atphi0_L1_S1->SetName(
"gV_ID_atphi0_L1_S1");
548 gx_runner_L2_S1->SetName(
"gx_runner_L2_S1");
549 gy_runner_L2_S1->SetName(
"gy_runner_L2_S1");
550 gX_ID_L2_S1->SetName(
"gX_ID_L2_S1");
551 gV_ID_atzmin_L2_S1->SetName(
"gV_ID_atzmin_L2_S1");
552 gV_ID_atzmax_L2_S1->SetName(
"gV_ID_atzmax_L2_S1");
553 gV_ID_atphi0_L2_S1->SetName(
"gV_ID_atphi0_L2_S1");
555 gx_runner_L2_S2->SetName(
"gx_runner_L2_S2");
556 gy_runner_L2_S2->SetName(
"gy_runner_L2_S2");
557 gX_ID_L2_S2->SetName(
"gX_ID_L2_S2");
558 gV_ID_atzmin_L2_S2->SetName(
"gV_ID_atzmin_L2_S2");
559 gV_ID_atzmax_L2_S2->SetName(
"gV_ID_atzmax_L2_S2");
560 gV_ID_atphi0_L2_S2->SetName(
"gV_ID_atphi0_L2_S2");
562 gx_runner_L3_S1->SetName(
"gx_runner_L3_S1");
563 gy_runner_L3_S1->SetName(
"gy_runner_L3_S1");
564 gX_ID_L3_S1->SetName(
"gX_ID_L3_S1");
565 gV_ID_atzmin_L3_S1->SetName(
"gV_ID_atzmin_L3_S1");
566 gV_ID_atzmax_L3_S1->SetName(
"gV_ID_atzmax_L3_S1");
567 gV_ID_atphi0_L3_S1->SetName(
"gV_ID_atphi0_L3_S1");
569 gx_runner_L3_S2->SetName(
"gx_runner_L3_S2");
570 gy_runner_L3_S2->SetName(
"gy_runner_L3_S2");
571 gX_ID_L3_S2->SetName(
"gX_ID_L3_S2");
572 gV_ID_atzmin_L3_S2->SetName(
"gV_ID_atzmin_L3_S2");
573 gV_ID_atzmax_L3_S2->SetName(
"gV_ID_atzmax_L3_S2");
574 gV_ID_atphi0_L3_S2->SetName(
"gV_ID_atphi0_L3_S2");
576 gx_runner_L1_S1->Write();
577 gy_runner_L1_S1->Write();
578 gX_ID_L1_S1->Write();
579 gV_ID_atzmin_L1_S1->Write();
580 gV_ID_atzmax_L1_S1->Write();
581 gV_ID_atphi0_L1_S1->Write();
583 gx_runner_L2_S1->Write();
584 gy_runner_L2_S1->Write();
585 gX_ID_L2_S1->Write();
586 gV_ID_atzmin_L2_S1->Write();
587 gV_ID_atzmax_L2_S1->Write();
588 gV_ID_atphi0_L2_S1->Write();
590 gx_runner_L2_S2->Write();
591 gy_runner_L2_S2->Write();
592 gX_ID_L2_S2->Write();
593 gV_ID_atzmin_L2_S2->Write();
594 gV_ID_atzmax_L2_S2->Write();
595 gV_ID_atphi0_L2_S2->Write();
597 gx_runner_L3_S1->Write();
598 gy_runner_L3_S1->Write();
599 gX_ID_L3_S1->Write();
600 gV_ID_atzmin_L3_S1->Write();
601 gV_ID_atzmax_L3_S1->Write();
602 gV_ID_atphi0_L3_S1->Write();
604 gx_runner_L3_S2->Write();
605 gy_runner_L3_S2->Write();
606 gX_ID_L3_S2->Write();
607 gV_ID_atzmin_L3_S2->Write();
608 gV_ID_atzmax_L3_S2->Write();
609 gV_ID_atphi0_L3_S2->Write();
614 gx_L1_GRAAL =
new TGraph(
nstrip_L1_x, stripid_L1_x_GRAAL, x_L1_GRAAL);
615 gz_L1_GRAAL =
new TGraph(
nstrip_L1_x, stripid_L1_x_GRAAL, z_L1_GRAAL);
616 gphi_L1_GRAAL =
new TGraph(
nstrip_L1_x, stripid_L1_x_GRAAL, phi_L1_GRAAL);
617 gv_L1_GRAAL =
new TGraph(
nstrip_L1_v, stripid_L1_v_GRAAL, v_L1_GRAAL);
619 gx_L2_GRAAL =
new TGraph(2*
nstrip_L2_x, stripid_L2_x_GRAAL, x_L2_GRAAL);
620 gz_L2_GRAAL =
new TGraph(2*
nstrip_L2_x, stripid_L2_x_GRAAL, z_L2_GRAAL);
621 gphi_L2_GRAAL =
new TGraph(2*
nstrip_L2_x, stripid_L2_x_GRAAL, phi_L2_GRAAL);
622 gv_L2_GRAAL =
new TGraph(2*
nstrip_L2_v, stripid_L2_v_GRAAL, v_L2_GRAAL);
624 gx_L3_GRAAL =
new TGraph(2*
nstrip_L3_x, stripid_L3_x_GRAAL, x_L3_GRAAL);
625 gz_L3_GRAAL =
new TGraph(2*
nstrip_L3_x, stripid_L3_x_GRAAL, z_L3_GRAAL);
626 gphi_L3_GRAAL =
new TGraph(2*
nstrip_L3_x, stripid_L3_x_GRAAL, phi_L3_GRAAL);
627 gv_L3_GRAAL =
new TGraph(2*
nstrip_L3_v, stripid_L3_v_GRAAL, v_L3_GRAAL);
629 gx_L1_GRAAL->SetName(
"gx_L1_GRAAL");
630 gz_L1_GRAAL->SetName(
"gz_L1_GRAAL");
631 gphi_L1_GRAAL->SetName(
"gphi_L1_GRAAL");
632 gv_L1_GRAAL->SetName(
"gv_L1_GRAAL");
634 gx_L2_GRAAL->SetName(
"gx_L2_GRAAL");
635 gz_L2_GRAAL->SetName(
"gz_L2_GRAAL");
636 gphi_L2_GRAAL->SetName(
"gphi_L2_GRAAL");
637 gv_L2_GRAAL->SetName(
"gv_L2_GRAAL");
639 gx_L3_GRAAL->SetName(
"gx_L3_GRAAL");
640 gz_L3_GRAAL->SetName(
"gz_L3_GRAAL");
641 gphi_L3_GRAAL->SetName(
"gphi_L3_GRAAL");
642 gv_L3_GRAAL->SetName(
"gv_L3_GRAAL");
644 gx_L1_GRAAL->Write();
645 gz_L1_GRAAL->Write();
646 gphi_L1_GRAAL->Write();
647 gv_L1_GRAAL->Write();
649 gx_L2_GRAAL->Write();
650 gz_L2_GRAAL->Write();
651 gphi_L2_GRAAL->Write();
652 gv_L2_GRAAL->Write();
654 gx_L3_GRAAL->Write();
655 gz_L3_GRAAL->Write();
656 gphi_L3_GRAAL->Write();
657 gv_L3_GRAAL->Write();
660 gphi_L1_GRAAL_corr =
new TGraph(
nstrip_L1_x, stripid_L1_x_GRAAL, phi_L1_GRAAL_corr);
661 gphi_L2_GRAAL_corr =
new TGraph(2*
nstrip_L2_x, stripid_L2_x_GRAAL, phi_L2_GRAAL_corr);
662 gphi_L3_GRAAL_corr =
new TGraph(2*
nstrip_L3_x, stripid_L3_x_GRAAL, phi_L3_GRAAL_corr);
664 gphi_L1_GRAAL_corr->SetName(
"gphi_L1_GRAAL_corr");
665 gphi_L2_GRAAL_corr->SetName(
"gphi_L2_GRAAL_corr");
666 gphi_L3_GRAAL_corr->SetName(
"gphi_L3_GRAAL_corr");
668 gphi_L1_GRAAL_corr->Write();
669 gphi_L2_GRAAL_corr->Write();
670 gphi_L3_GRAAL_corr->Write();
677 return StatusCode::SUCCESS;
double sin(const BesAngle a)
double cos(const BesAngle a)
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
double getCentralXFromXID(int X_ID) const
double getCentralVFromVID(int V_ID) const
double getPhiFromXID(int X_ID) const
void getStripID(G4ThreeVector pos, int &X_ID, int &V_ID) const
static int strip(const Identifier &id)
static bool is_xstrip(const Identifier &id)
static Identifier strip_id(int f_layer, int f_sheet, int f_strip_type, int f_strip)
virtual CgemGeoReadoutPlane * getReadoutPlane(int iLayer, int iSheet) const =0
bool CheckCrossingCgemBoss()
TestMapping(const std::string &name, ISvcLocator *pSvcLocator)
bool CheckFEBPositionCgemBoss()