CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
CgemGeoReadoutPlane Class Reference

#include <CgemGeoReadoutPlane.h>

Public Member Functions

 CgemGeoReadoutPlane (int iLayer, int iSheet, double rx, double rv, double phi_min, double dX_strip, double dV, double w, double zmin, double L, int NXStrip, int NVStrip, double Xpitch, double XstripWidth, double Vpitch, double VstripWidth, double stereoAngle, double midROfGap, double outROfGap)
 
 ~CgemGeoReadoutPlane ()
 
void print ()
 
int getLayerId ()
 
int getSheetId ()
 
double getRX ()
 
double getRV ()
 
double getPhimin ()
 
double getXmin ()
 
double getWidth ()
 
double getZmin ()
 
double getLength ()
 
double getXPitch ()
 
double getVPitch ()
 
double getStereoAngle ()
 
double getMidRAtGap ()
 
double getVmax ()
 
int getNXstrips () const
 
int getNVstrips () const
 
bool OnThePlane (double phi, double z) const
 
double getX (double phi) const
 
int getXStripID (double phi) const
 
int getXStripID (double x, double y) const
 
int getXStripID (G4ThreeVector pos) const
 
int getClosestXStripID (double phi, double &dist)
 
int getClosestVStripID (G4ThreeVector pos, double &dist) const
 
double getDist2ClosestXStripCenter (double phi, int &id)
 
double getDist2ClosestVStripCenter (G4ThreeVector pos, int &id)
 
void getStripID (G4ThreeVector pos, int &X_ID, int &V_ID) const
 
void getFiredStripID (G4ThreeVector pos1, G4ThreeVector pos2, vector< int > &vecXID, vector< int > &vecVID) const
 
double getVFromLocalXZ (double x, double zeta) const
 
double getVFromPhiZ (double phi, double z) const
 
double getVInNextSheetFromV (double v, double phiminNext) const
 
int getVIDFromV (double V) const
 
int getVIDInNextSheetFromVID (int vID, double phimin_next) const
 
double getPhiMin_strip () const
 
double getCentralXFromXID (int X_ID) const
 
double getPhiFromXID (int X_ID) const
 
double getCentralVFromVID (int V_ID) const
 
double getVStripLength (int V_ID) const
 
double getZFromXV (double X, double V, int checkXRange=1, int checkVRange=1) const
 
double getZFromPhiV (double phi, double V, int checkXRange=1) const
 
 CgemGeoReadoutPlane (int iLayer, int iSheet, double rx, double rv, double phi_min, double dX_strip, double dV, double w, double zmin, double L, int NXStrip, int NVStrip, double Xpitch, double XstripWidth, double Vpitch, double VstripWidth, double stereoAngle, double midROfGap, double outROfGap)
 
 ~CgemGeoReadoutPlane ()
 
void print ()
 
int getLayerId ()
 
int getSheetId ()
 
double getRX ()
 
double getRV ()
 
double getPhimin ()
 
double getXmin ()
 
double getWidth ()
 
double getZmin ()
 
double getLength ()
 
double getXPitch ()
 
double getVPitch ()
 
double getStereoAngle ()
 
double getMidRAtGap ()
 
double getVmax ()
 
int getNXstrips () const
 
int getNVstrips () const
 
bool OnThePlane (double phi, double z) const
 
double getX (double phi) const
 
int getXStripID (double phi) const
 
int getXStripID (double x, double y) const
 
int getXStripID (G4ThreeVector pos) const
 
int getClosestXStripID (double phi, double &dist)
 
int getClosestVStripID (G4ThreeVector pos, double &dist) const
 
double getDist2ClosestXStripCenter (double phi, int &id)
 
double getDist2ClosestVStripCenter (G4ThreeVector pos, int &id)
 
void getStripID (G4ThreeVector pos, int &X_ID, int &V_ID) const
 
void getFiredStripID (G4ThreeVector pos1, G4ThreeVector pos2, vector< int > &vecXID, vector< int > &vecVID) const
 
double getVFromLocalXZ (double x, double zeta) const
 
double getVFromPhiZ (double phi, double z) const
 
double getVInNextSheetFromV (double v, double phiminNext) const
 
int getVIDFromV (double V) const
 
int getVIDInNextSheetFromVID (int vID, double phimin_next) const
 
double getPhiMin_strip () const
 
double getCentralXFromXID (int X_ID) const
 
double getPhiFromXID (int X_ID) const
 
double getCentralVFromVID (int V_ID) const
 
double getVStripLength (int V_ID) const
 
double getZFromXV (double X, double V, int checkXRange=1, int checkVRange=1) const
 
double getZFromPhiV (double phi, double V, int checkXRange=1) const
 

Detailed Description

Constructor & Destructor Documentation

◆ CgemGeoReadoutPlane() [1/2]

CgemGeoReadoutPlane::CgemGeoReadoutPlane ( int  iLayer,
int  iSheet,
double  rx,
double  rv,
double  phi_min,
double  dX_strip,
double  dV,
double  w,
double  zmin,
double  L,
int  NXStrip,
int  NVStrip,
double  Xpitch,
double  XstripWidth,
double  Vpitch,
double  VstripWidth,
double  stereoAngle,
double  midROfGap,
double  outROfGap 
)

Definition at line 6 of file CgemGeoReadoutPlane.cxx.

11 {
12
13 m_iLayer = iLayer;
14 m_iSheet = iSheet;
15
16 m_RX = rx;
17 m_RV = rv;
18 m_Rmid = 0.5*(rx+rv);
19
20 m_W = w;
21 m_Zmin = zmin;
22 m_Zmax = zmin+L;
23 m_L = L;
24
25 m_XPitch = Xpitch;
26 m_XstripWidth = XstripWidth;
27 m_VPitch = Vpitch;
28 m_VstripWidth = VstripWidth;
29 //m_XPitch = Xpitch*m_RX/m_Rmid; // scaling from plane to cylinder
30 //m_XstripWidth = XstripWidth*m_RX/m_Rmid; // scaling from plane to cylinder
31 //m_VPitch = Vpitch*m_RV/m_Rmid; // scaling from plane to cylinder
32 //m_VstripWidth = VstripWidth*m_RV/m_Rmid; // scaling from plane to cylinder
33 m_StereoAngle = stereoAngle / 180.*CLHEP::pi; //degree -> radian
34 m_k = stereoAngle/fabs(stereoAngle); // sign of the stereo angle
35 m_MidRGap = midROfGap;
36 m_OutRGap = outROfGap;
37 m_NXstrips = NXStrip;
38 m_NVstrips = NVStrip;
39
40 m_Phimin = phiMin;
41 while(m_Phimin<-M_PI) m_Phimin+=2*M_PI;
42 while(m_Phimin>M_PI) m_Phimin-=2*M_PI;
43 //m_Xmin = m_Phimin*rx;
44 m_Xmin = m_Phimin*m_Rmid;
45
46 //double dPhi_sensitive = NXStrip*m_XPitch/m_Rmid;
47 //m_Phimin_strip = dX_strip/m_Rmid+m_Phimin;
48 m_Phimin_strip = dX_strip/m_Rmid;
49 //while(m_Phimin_strip<0) m_Phimin_strip+=2*M_PI;
50 //while(m_Phimin_strip>2*M_PI) m_Phimin_strip-=2*M_PI;
51 m_Xmin_strip = m_Phimin_strip*m_Rmid;
52 m_Xmax_strip = m_Xmin_strip+NXStrip*m_XPitch;
53 m_Phimax_strip = m_Xmax_strip/m_Rmid;
54 //if(NXStrip*m_XPitch>2*M_PI*rx/) cout<<"CgemGeoReadoutPlane : "<<endl;
55
56 //m_Vmax = m_L*fabs(sin(m_StereoAngle))+m_W*m_RV/m_RX*cos(m_StereoAngle);
57 //m_Vmax = m_L*fabs(sin(m_StereoAngle))+m_W*cos(m_StereoAngle);
58 //m_NXstrips = floor(m_W / m_XPitch);
59 //m_NVstrips = floor(m_Vmax / m_VPitch);
60 //m_Vmin = 0.;
61
62 m_Vtot = NXStrip*m_XPitch*cos(m_StereoAngle)+m_L*fabs(sin(m_StereoAngle));
63 dV=(m_Vtot-NVStrip*m_VPitch)/2.0;// FIXME?
64 m_Vmin_strip = dV;
65 m_Vmax = m_Vmin_strip+NVStrip*m_VPitch;
66
67
68 cout<<" dX = "<<dX_strip<<endl;
69 print();
70}
double sin(const BesAngle a)
double cos(const BesAngle a)
#define M_PI
Definition: TConstant.h:4

◆ ~CgemGeoReadoutPlane() [1/2]

CgemGeoReadoutPlane::~CgemGeoReadoutPlane ( )

Definition at line 73 of file CgemGeoReadoutPlane.cxx.

74{}

◆ CgemGeoReadoutPlane() [2/2]

CgemGeoReadoutPlane::CgemGeoReadoutPlane ( int  iLayer,
int  iSheet,
double  rx,
double  rv,
double  phi_min,
double  dX_strip,
double  dV,
double  w,
double  zmin,
double  L,
int  NXStrip,
int  NVStrip,
double  Xpitch,
double  XstripWidth,
double  Vpitch,
double  VstripWidth,
double  stereoAngle,
double  midROfGap,
double  outROfGap 
)

◆ ~CgemGeoReadoutPlane() [2/2]

CgemGeoReadoutPlane::~CgemGeoReadoutPlane ( )

Member Function Documentation

◆ getCentralVFromVID() [1/2]

double CgemGeoReadoutPlane::getCentralVFromVID ( int  V_ID) const
inline

◆ getCentralVFromVID() [2/2]

double CgemGeoReadoutPlane::getCentralVFromVID ( int  V_ID) const
inline

Definition at line 75 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

76 {
77 //V_ID=V_ID-m_NVstrips*m_iSheet;
78 return (V_ID+0.5)*m_VPitch+m_Vmin_strip;
79 }

◆ getCentralXFromXID() [1/2]

double CgemGeoReadoutPlane::getCentralXFromXID ( int  X_ID) const
inline

Definition at line 70 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

71 { //X_ID=X_ID-m_NXstrips*m_iSheet;
72 return (X_ID+0.5)*m_XPitch+m_Xmin_strip;
73 }// central X with m_Xmin as origin

Referenced by getClosestXStripID(), getDist2ClosestXStripCenter(), getPhiFromXID(), and TestMapping::PositionCgemBoss().

◆ getCentralXFromXID() [2/2]

double CgemGeoReadoutPlane::getCentralXFromXID ( int  X_ID) const
inline

Definition at line 70 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

71 { //X_ID=X_ID-m_NXstrips*m_iSheet;
72 return (X_ID+0.5)*m_XPitch+m_Xmin_strip;
73 }// central X with m_Xmin as origin

◆ getClosestVStripID() [1/2]

int CgemGeoReadoutPlane::getClosestVStripID ( G4ThreeVector  pos,
double &  dist 
) const

Definition at line 193 of file CgemGeoReadoutPlane.cxx.

194{
195 double z = pos.z();
196 dist = -9999.;
197 int V_ID=-99;
198 if(z < m_Zmin){
199 V_ID = -3;
200 } else if(z > m_Zmin+m_L){
201 V_ID = -4;
202 } else {
203 double phi = pos.phi();
204 double v = getVFromPhiZ(phi, z);
205 //V_ID = floor((v-m_Vmin_strip) / m_VPitch);
206 V_ID = getVIDFromV(v);
207 int vid2 = V_ID;
208 if(V_ID==-1) vid2=0;
209 if(V_ID==-2) vid2=m_NVstrips-1;
210 if(v>=0.) dist = fabs(v-getCentralVFromVID(vid2))-0.5*m_VstripWidth;
211 }
212
213 return V_ID;
214}
**********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
Definition: KarLud.h:35

Referenced by getStripID().

◆ getClosestVStripID() [2/2]

int CgemGeoReadoutPlane::getClosestVStripID ( G4ThreeVector  pos,
double &  dist 
) const

◆ getClosestXStripID() [1/2]

int CgemGeoReadoutPlane::getClosestXStripID ( double  phi,
double &  dist 
)

Definition at line 126 of file CgemGeoReadoutPlane.cxx.

127{
128 //cout<<"getClosestXStripID: phi0="<<phi<<endl;
129 //cout<<"getClosestXStripID: phi="<<phi<<endl;
130 //cout<<"getXStripID: "<<xID<<endl;
131 int xID = getXStripID(phi);
132 int xID2 = xID;
133 if(xID2==-1) xID2=0;
134 if(xID2==-2) xID2=m_NXstrips-1;
135 double X = getX(phi);
136 dist = fabs(X-getCentralXFromXID(xID2))-0.5*m_XstripWidth;
137 //cout<<"getClosestXStripID: m_Xmin="<<m_Xmin<<", m_RX="<<m_RX<<", X="<<X
138 // <<", getCentralXFromXID(xID)="<<getCentralXFromXID(xID)
139 // <<", m_XstripWidth="<<m_XstripWidth<<endl;
140 return xID;
141}
int getXStripID(double phi) const
double getX(double phi) const

◆ getClosestXStripID() [2/2]

int CgemGeoReadoutPlane::getClosestXStripID ( double  phi,
double &  dist 
)

◆ getDist2ClosestVStripCenter() [1/2]

double CgemGeoReadoutPlane::getDist2ClosestVStripCenter ( G4ThreeVector  pos,
int &  id 
)

Definition at line 217 of file CgemGeoReadoutPlane.cxx.

217 {
218 double z = pos.z();
219 double dist=-9999.;
220 int V_ID=-99;
221 if(z < m_Zmin){
222 V_ID = -3;
223 } else if(z > m_Zmin+m_L){
224 V_ID = -4;
225 } else {
226 double phi = pos.phi();
227 double v = getVFromPhiZ(phi, z);
228 V_ID = getVIDFromV(v);
229 int vid2 = V_ID;
230 if(V_ID==-1) vid2=0;
231 if(V_ID==-2) vid2=m_NVstrips-1;
232 dist = v-getCentralVFromVID(vid2);
233 }
234 id=V_ID;
235
236 return dist;
237}

Referenced by InductionGar::setMultiElectrons().

◆ getDist2ClosestVStripCenter() [2/2]

double CgemGeoReadoutPlane::getDist2ClosestVStripCenter ( G4ThreeVector  pos,
int &  id 
)

◆ getDist2ClosestXStripCenter() [1/2]

double CgemGeoReadoutPlane::getDist2ClosestXStripCenter ( double  phi,
int &  id 
)

Definition at line 143 of file CgemGeoReadoutPlane.cxx.

144{
145 //cout<<"getClosestXStripID: phi0="<<phi<<endl;
146 //phi = phi - m_Xmin/m_RX;
147 //while(phi<0) phi += CLHEP::twopi;
148 //while(phi>CLHEP::twopi) phi-=CLHEP::twopi;
149 //cout<<"getClosestXStripID: phi="<<phi<<endl;
150 //double X = m_RX * phi;// in X-zeta plane (X-V plane)
151 //if(X == m_W) X -= 0.001 * m_XPitch;
152 //int xID = floor((X-(m_Xmin_strip-m_Xmin))/m_XPitch);
153 //cout<<"getXStripID: "<<xID<<endl;
154 //if(xID==m_NXstrips) xID=m_NXstrips-1;
155 //if(xID<0) xID=0;
156 //if(xID>=m_NXstrips) xID=m_NXstrips-1;
157 double dist=-9999.;
158 int xID = getXStripID(phi);
159 id=xID;
160 int xID2 = xID;
161 if(xID2==-1) xID2=0;
162 if(xID2==-2) xID2=m_NXstrips-1;
163 if(xID2>=0&&xID2<m_NXstrips) {
164 double X = getX(phi);
165 dist = X-getCentralXFromXID(xID2);
166 //cout<<"getClosestXStripID: m_Xmin="<<m_Xmin<<", m_RX="<<m_RX<<", X="<<X
167 // <<", getCentralXFromXID(xID)="<<getCentralXFromXID(xID)
168 // <<", m_XstripWidth="<<m_XstripWidth<<endl;
169 }
170 return dist;
171}

Referenced by InductionGar::setMultiElectrons().

◆ getDist2ClosestXStripCenter() [2/2]

double CgemGeoReadoutPlane::getDist2ClosestXStripCenter ( double  phi,
int &  id 
)

◆ getFiredStripID() [1/2]

void CgemGeoReadoutPlane::getFiredStripID ( G4ThreeVector  pos1,
G4ThreeVector  pos2,
vector< int > &  vecXID,
vector< int > &  vecVID 
) const

Definition at line 290 of file CgemGeoReadoutPlane.cxx.

291 {
292 //cout << "get fired strip id" << endl;
293 bool printDebug = false;
294 double z[2];
295 z[0] = pos1.z();
296 z[1] = pos2.z();
297 if( (z[0]<m_Zmin && z[1]<m_Zmin) || (z[0]>(m_Zmin+m_L) && z[1]>(m_Zmin+m_L)) ) return;
298
299 double phi[2];
300 double phimin=-CLHEP::pi;
301 phi[0]=pos1.phi();
302 phi[1]=pos2.phi();
303 if(fabs(phi[1]-phi[0])>CLHEP::pi){
304 phimin=0.0;
305 for(int i=0; i<2; i++) if(phi[i]<0.0) phi[i]+=CLHEP::twopi;
306 }
307 if(phi[0]>phi[1]){
308 double tmp=phi[0];
309 phi[0]=phi[1];
310 phi[1]=tmp;
311 tmp=z[1];
312 z[1]=z[0];
313 z[0]=tmp;
314 }
315 if(printDebug) cout<<"phimin="<<phimin<<", phi[0,1]="<<phi[0]<<","<<phi[1]<<", z[0,1]="<<z[0]<<","<<z[1]<<endl;
316 for(int i=0; i<2; i++){
317 if(z[i]<m_Zmin){
318 double phiTmp=(phi[1]-phi[0])/(z[1]-z[0])*(m_Zmin-z[0])+phi[0];
319 phi[i]=phiTmp;
320 z[i]=m_Zmin;
321 }
322 if(z[i]>(m_Zmin+m_L)){
323 double phiTmp=(phi[1]-phi[0])/(z[1]-z[0])*(m_Zmin+m_L-z[0])+phi[0];
324 phi[i]=phiTmp;
325 z[i]=m_Zmin+m_L;
326 }
327 }
328 double phiActiveMin=m_Phimin+m_Phimin_strip+10e-10;// 2019-05-05 wangll, +10e-10 2019-10-30
329 double phiActiveMax=m_Phimin+m_Phimax_strip-10e-10;// 2019-05-05 wangll, -10e-10 2019-10-30
330 if(printDebug) cout<<"phimin="<<phimin<<", phiActiveMin="<<phiActiveMin<<", phiActiveMax="<<phiActiveMax<<", phi[0,1]="<<phi[0]<<","<<phi[1]<<", z[0,1]="<<z[0]<<","<<z[1]<<endl;
331 while(phiActiveMax>=CLHEP::twopi) phiActiveMax-=CLHEP::twopi;// [0,2pi]
332 while(phiActiveMin>=CLHEP::twopi) phiActiveMin-=CLHEP::twopi;// [0,2pi]
333 while(phiActiveMax<0 ) phiActiveMax+=CLHEP::twopi;// [0,2pi]
334 while(phiActiveMin<0 ) phiActiveMin+=CLHEP::twopi;// [0,2pi]
335 if(phimin==-CLHEP::pi)
336 {
337 /*if(phiActiveMin>CLHEP::pi||phiActiveMax>CLHEP::pi) {
338 phiActiveMin-=CLHEP::twopi;
339 phiActiveMax-=CLHEP::twopi;
340 }*/
341 while(phiActiveMin>CLHEP::pi) phiActiveMin-=CLHEP::twopi;
342 while(phiActiveMax>CLHEP::pi) phiActiveMax-=CLHEP::twopi;
343 }// [-pi,pi]
344 if(printDebug) cout<<"phimin="<<phimin<<", phiActiveMin="<<phiActiveMin<<", phiActiveMax="<<phiActiveMax<<", phi[0,1]="<<phi[0]<<","<<phi[1]<<", z[0,1]="<<z[0]<<","<<z[1]<<endl;
345
346 int iCase=-1;
347 if(phiActiveMin<=phi[0])
348 {
349 if(phiActiveMax<=phiActiveMin) iCase=1;
350 else if(phiActiveMax<=phi[0]) iCase=2;
351 else if(phiActiveMax<=phi[1]) iCase=3;
352 else iCase=4;
353 }
354 else if(phiActiveMin<=phi[1])
355 {
356 if(phiActiveMax<=phi[0]) iCase=5;
357 else if(phiActiveMax<=phiActiveMin) iCase=6;
358 else if(phiActiveMax<=phi[1]) iCase=7;
359 else iCase=8;
360 }
361 else
362 {
363 if(phiActiveMax<=phi[0]) iCase=9;
364 else if(phiActiveMax<=phi[1]) iCase=10;
365 else if(phiActiveMax<=phiActiveMin) iCase=11;
366 else iCase=12;
367 }
368 if(printDebug) cout<<"iCase = "<<iCase<<endl;
369
370 double zBoundary[2];
371 zBoundary[0]=z[0]+(z[1]-z[0])/(phi[1]-phi[0])*(phiActiveMin-phi[0]);
372 zBoundary[1]=z[0]+(z[1]-z[0])/(phi[1]-phi[0])*(phiActiveMax-phi[0]);
373 switch(iCase)
374 {
375 case 2:
376 case 9:
377 case 12:
378 return;// no cluster
379 case 1:
380 case 4:
381 case 6:
382 case 11:
383 break;// no change in points
384 case 3:
385 case 10:
386 phi[1]=phiActiveMax;
387 z[1]=zBoundary[1];
388 break;
389 case 5:
390 case 8:
391 phi[0]=phiActiveMin;
392 z[0]=zBoundary[0];
393 break;
394 case 7:
395 phi[0]=phiActiveMin;
396 phi[1]=phiActiveMax;
397 z[0]=zBoundary[0];
398 z[1]=zBoundary[1];
399 break;
400 default:
401 cout<<"Error in CgemGeoReadoutPlane::getFiredStripID: iCase = "<<iCase<<endl;
402 return;
403 }
404 if(printDebug) cout<<"phimin="<<phimin<<", phiActiveMin="<<phiActiveMin<<", phiActiveMax="<<phiActiveMax<<", phi[0,1]="<<phi[0]<<","<<phi[1]<<", z[0,1]="<<z[0]<<","<<z[1]<<endl;
405
406 G4ThreeVector pos_1,pos_2;
407 pos_1.setRhoPhiZ(m_Rmid,phi[0],z[0]);
408 pos_2.setRhoPhiZ(m_Rmid,phi[1],z[1]);
409 int XID_min(-9),XID_max(-9);
410 int VID_min(-9),VID_max(-9);
411 getStripID(pos_1,XID_min,VID_min);
412 getStripID(pos_2,XID_max,VID_max);
413 if( iCase!=6 && VID_max<VID_min ) {
414 int tmp=VID_max;
415 VID_max=VID_min;
416 VID_min=tmp;
417 }
418 if(printDebug) {
419 cout<<"on the sheet: phi "<<phi[0]<<" to "<<phi[1]<<", z "<<z[0]<<" to "<<z[1]<<endl;
420 cout<<" XID "<<XID_min<<" to "<<XID_max<<", VID "<<VID_min<<" to "<<VID_max<<endl;
421 }
422
423 if(iCase!=6)
424 {
425 for(int i=0; i<=abs(XID_min-XID_max);i++) vecXID.push_back(XID_min+i);
426 for(int i=0; i<=abs(VID_min-VID_max);i++) vecVID.push_back(VID_min+i);
427 }
428 else
429 {
430 pos_1.setRhoPhiZ(m_Rmid,phiActiveMax,zBoundary[1]);
431 pos_2.setRhoPhiZ(m_Rmid,phiActiveMin,zBoundary[0]);
432 int XID_1(-9),XID_2(-9);
433 int VID_1(-9),VID_2(-9);
434 getStripID(pos_1,XID_1,VID_1);
435 getStripID(pos_2,XID_2,VID_2);
436 for(int i=0; i<=abs(XID_min-XID_1);i++) vecXID.push_back(XID_min+i);
437 for(int i=0; i<=abs(XID_max-XID_2);i++) vecXID.push_back(XID_2+i);
438 int VID_0=min(VID_1,VID_min);
439 for(int i=0; i<=abs(VID_min-VID_1);i++) vecVID.push_back(VID_0+i);
440 VID_0=min(VID_2,VID_max);
441 for(int i=0; i<=abs(VID_max-VID_2);i++) vecVID.push_back(VID_0+i);
442 }
443}
double abs(const EvtComplex &c)
Definition: EvtComplex.hh:212
void getStripID(G4ThreeVector pos, int &X_ID, int &V_ID) const

Referenced by BesCgemDigitizer::Digitize_v2().

◆ getFiredStripID() [2/2]

void CgemGeoReadoutPlane::getFiredStripID ( G4ThreeVector  pos1,
G4ThreeVector  pos2,
vector< int > &  vecXID,
vector< int > &  vecVID 
) const

◆ getLayerId() [1/2]

int CgemGeoReadoutPlane::getLayerId ( )
inline

◆ getLayerId() [2/2]

int CgemGeoReadoutPlane::getLayerId ( )
inline

Definition at line 26 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

26{return m_iLayer;};

◆ getLength() [1/2]

double CgemGeoReadoutPlane::getLength ( )
inline

◆ getLength() [2/2]

double CgemGeoReadoutPlane::getLength ( )
inline

Definition at line 34 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

34{return m_L;};

◆ getMidRAtGap() [1/2]

double CgemGeoReadoutPlane::getMidRAtGap ( )
inline

◆ getMidRAtGap() [2/2]

double CgemGeoReadoutPlane::getMidRAtGap ( )
inline

Definition at line 38 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

38{return m_MidRGap;};

◆ getNVstrips() [1/2]

◆ getNVstrips() [2/2]

int CgemGeoReadoutPlane::getNVstrips ( ) const
inline

Definition at line 41 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

41{ return m_NVstrips; };

◆ getNXstrips() [1/2]

◆ getNXstrips() [2/2]

int CgemGeoReadoutPlane::getNXstrips ( ) const
inline

Definition at line 40 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

40{ return m_NXstrips; };

◆ getPhiFromXID() [1/2]

double CgemGeoReadoutPlane::getPhiFromXID ( int  X_ID) const

Definition at line 267 of file CgemGeoReadoutPlane.cxx.

267 { // from -pi to pi
268 double X=getCentralXFromXID(X_ID);// central X with m_Xmin as origin
269 double phi=(X+m_Xmin)/m_Rmid;
270 while(phi<-M_PI) phi+=CLHEP::twopi;
271 while(phi>M_PI) phi-=CLHEP::twopi;
272 return phi;
273}

Referenced by TestMapping::CheckFEBPositionCgemBoss(), CgemROOTGeo::InitGeometry(), and TestMapping::PositionCgemBoss().

◆ getPhiFromXID() [2/2]

double CgemGeoReadoutPlane::getPhiFromXID ( int  X_ID) const

◆ getPhimin() [1/2]

double CgemGeoReadoutPlane::getPhimin ( )
inline

Definition at line 30 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

30{return m_Phimin;};

◆ getPhimin() [2/2]

double CgemGeoReadoutPlane::getPhimin ( )
inline

Definition at line 30 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

30{return m_Phimin;};

◆ getPhiMin_strip() [1/2]

double CgemGeoReadoutPlane::getPhiMin_strip ( ) const
inline

Definition at line 69 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

69{return m_Phimin_strip+m_Phimin;}

◆ getPhiMin_strip() [2/2]

double CgemGeoReadoutPlane::getPhiMin_strip ( ) const
inline

Definition at line 69 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

69{return m_Phimin_strip+m_Phimin;}

◆ getRV() [1/2]

◆ getRV() [2/2]

double CgemGeoReadoutPlane::getRV ( )
inline

Definition at line 29 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

29{return m_RV;};

◆ getRX() [1/2]

◆ getRX() [2/2]

double CgemGeoReadoutPlane::getRX ( )
inline

Definition at line 28 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

28{return m_RX;};

◆ getSheetId() [1/2]

int CgemGeoReadoutPlane::getSheetId ( )
inline

◆ getSheetId() [2/2]

int CgemGeoReadoutPlane::getSheetId ( )
inline

Definition at line 27 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

27{return m_iSheet;};

◆ getStereoAngle() [1/2]

double CgemGeoReadoutPlane::getStereoAngle ( )
inline

◆ getStereoAngle() [2/2]

double CgemGeoReadoutPlane::getStereoAngle ( )
inline

Definition at line 37 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

37{return m_StereoAngle;};

◆ getStripID() [1/2]

void CgemGeoReadoutPlane::getStripID ( G4ThreeVector  pos,
int &  X_ID,
int &  V_ID 
) const

Definition at line 240 of file CgemGeoReadoutPlane.cxx.

240 {
241 /*
242 double z = pos.z();
243 if(z < m_Zmin){
244 V_ID = -2;
245 } else if(z > m_Zmin+m_L){
246 V_ID = -1;
247 } else if(X_ID >= 0){
248 double x = pos.x();
249 double y = pos.y();
250 double phi = atan2(y,x);
251 phi = phi - m_Xmin/m_RX;
252 while(phi < 0) phi+=CLHEP::twopi;
253 while(phi > CLHEP::twopi) phi-=CLHEP::twopi;
254 double X = m_RX * phi;// in X-zeta plane (X-V plane) @ m_RX
255 double zeta = z - m_Zmin;
256 V_ID = floor((getVFromLocalXZ(X, zeta)-m_Vmin_strip) / m_VPitch);
257 } else{
258 V_ID = -3;
259 }
260 */
261
262 X_ID = getXStripID(pos);
263 double dist=-9999.;
264 V_ID = getClosestVStripID(pos, dist);
265}
int getClosestVStripID(G4ThreeVector pos, double &dist) const

Referenced by TestMapping::CheckCrossingCgemBoss(), getFiredStripID(), and InductionGTS::setMultiElectrons().

◆ getStripID() [2/2]

void CgemGeoReadoutPlane::getStripID ( G4ThreeVector  pos,
int &  X_ID,
int &  V_ID 
) const

◆ getVFromLocalXZ() [1/2]

double CgemGeoReadoutPlane::getVFromLocalXZ ( double  x,
double  zeta 
) const
inline

Definition at line 156 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

157{
158 if( x>=0. && x<=m_NXstrips*m_XPitch && zeta>=0 && zeta<=m_L )
159 {
160 //double X = x/m_RX*m_RV;// X at V plane
161 //if(m_StereoAngle>0) return zeta*sin(m_StereoAngle) + X*cos(m_StereoAngle);
162 //else return (zeta-m_L)*sin(m_StereoAngle)+X*cos(m_StereoAngle);
163 double z0=m_Zmax; if(m_k<0) z0=m_Zmin;
164 //return X*cos(m_StereoAngle)+((m_k-1.0)*m_L/2.0-zeta)*sin(m_StereoAngle);
165 return x*cos(m_StereoAngle)+(z0-zeta-m_Zmin)*sin(m_StereoAngle);
166 } else {
167 return -9999.0;
168 }
169}
Double_t x[10]

Referenced by getVFromPhiZ().

◆ getVFromLocalXZ() [2/2]

double CgemGeoReadoutPlane::getVFromLocalXZ ( double  x,
double  zeta 
) const

◆ getVFromPhiZ() [1/2]

double CgemGeoReadoutPlane::getVFromPhiZ ( double  phi,
double  z 
) const
inline

Definition at line 171 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

172{
173 double dPhi=phi-m_Phimin;
174 while(dPhi<0) dPhi+=CLHEP::twopi;
175 while(dPhi>=CLHEP::twopi) dPhi-=CLHEP::twopi;
176 double X=dPhi*m_Rmid;// X with m_Xmin as origin
177 double x=X-m_Xmin_strip;// x with m_Xmin_strip as origin
178 double zeta=z-m_Zmin;// local zeta [0,L]
179 return getVFromLocalXZ(x,zeta);
180}

Referenced by getClosestVStripID(), getDist2ClosestVStripCenter(), HoughHit::residual(), and CgemMidDriftPlane::xyzToPhiVIdealGeom().

◆ getVFromPhiZ() [2/2]

double CgemGeoReadoutPlane::getVFromPhiZ ( double  phi,
double  z 
) const

◆ getVIDFromV() [1/2]

int CgemGeoReadoutPlane::getVIDFromV ( double  V) const
inline

Definition at line 203 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

203 {
204 double Vid = floor((V-m_Vmin_strip)/m_VPitch);
205 if(Vid<0) Vid=-1;
206 if(Vid>=m_NVstrips) Vid=-2;
207 //Vid=Vid+m_NVstrips*m_iSheet;
208 return Vid;
209}

Referenced by getClosestVStripID(), getDist2ClosestVStripCenter(), and getVIDInNextSheetFromVID().

◆ getVIDFromV() [2/2]

int CgemGeoReadoutPlane::getVIDFromV ( double  V) const

◆ getVIDInNextSheetFromVID() [1/2]

int CgemGeoReadoutPlane::getVIDInNextSheetFromVID ( int  vID,
double  phimin_next 
) const
inline

Definition at line 183 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

183 {
184 int vId_next = -1;
185 //vID=vID-m_NVstrips*m_iSheet;
186 if( (vID>=0) && (vID<m_NVstrips) ){
187 double v = getCentralVFromVID(vID);
188 double v2 = getVInNextSheetFromV(v, phimin_next);
189 //if(v2>=0.) return floor(v2/m_VPitch);
190 vId_next = getVIDFromV(v2);// assume the next sheet with the same configuration
191 //if(m_iLayer>0) { vId_next=vId_next+(1-2*m_iSheet)*m_NVstrips;// with assumption Nsheet=2 for layerID>0 FIXME}
192 }
193 return vId_next;
194}

◆ getVIDInNextSheetFromVID() [2/2]

int CgemGeoReadoutPlane::getVIDInNextSheetFromVID ( int  vID,
double  phimin_next 
) const

◆ getVInNextSheetFromV() [1/2]

double CgemGeoReadoutPlane::getVInNextSheetFromV ( double  v,
double  phiminNext 
) const
inline

Definition at line 58 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

58 {
59 double dPhi = phiminNext-m_Phimin;// assume the next m_Phimin_strip is the same
60 while(dPhi<=0) dPhi+=CLHEP::twopi;
61 while(dPhi>CLHEP::twopi) dPhi-=CLHEP::twopi;
62 //cout<<"getVInNextSheetFromV: dphi = "<<dPhi<<endl;
63 double dX = dPhi*m_Rmid;
64 return v-dX*cos(m_StereoAngle);
65 }

Referenced by getVIDInNextSheetFromVID().

◆ getVInNextSheetFromV() [2/2]

double CgemGeoReadoutPlane::getVInNextSheetFromV ( double  v,
double  phiminNext 
) const
inline

Definition at line 58 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

58 {
59 double dPhi = phiminNext-m_Phimin;// assume the next m_Phimin_strip is the same
60 while(dPhi<=0) dPhi+=CLHEP::twopi;
61 while(dPhi>CLHEP::twopi) dPhi-=CLHEP::twopi;
62 //cout<<"getVInNextSheetFromV: dphi = "<<dPhi<<endl;
63 double dX = dPhi*m_Rmid;
64 return v-dX*cos(m_StereoAngle);
65 }

◆ getVmax() [1/2]

double CgemGeoReadoutPlane::getVmax ( )
inline

◆ getVmax() [2/2]

double CgemGeoReadoutPlane::getVmax ( )
inline

Definition at line 39 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

39{return m_Vmax;};

◆ getVPitch() [1/2]

double CgemGeoReadoutPlane::getVPitch ( )
inline

◆ getVPitch() [2/2]

double CgemGeoReadoutPlane::getVPitch ( )
inline

Definition at line 36 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

36{return m_VPitch;};

◆ getVStripLength() [1/2]

double CgemGeoReadoutPlane::getVStripLength ( int  V_ID) const
inline

Definition at line 80 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

81 {
82 double vStripLegth(0.);
83 if(V_ID>=0&&V_ID<m_NVstrips)
84 {
85 double V=getCentralVFromVID(V_ID);
86 double Lz=V/fabs(sin(m_StereoAngle));
87 if(Lz<=m_L)
88 {
89 vStripLegth=Lz/cos(m_StereoAngle);
90 }
91 else if(V/cos(m_StereoAngle)<=m_NXstrips*m_XPitch)
92 {
93 vStripLegth=m_L/cos(m_StereoAngle);
94 }
95 else vStripLegth=(m_Vtot-V)/fabs(sin(m_StereoAngle)*cos(m_StereoAngle));
96 }
97 return vStripLegth;
98 }

Referenced by TestHit::execute().

◆ getVStripLength() [2/2]

double CgemGeoReadoutPlane::getVStripLength ( int  V_ID) const
inline

Definition at line 80 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

81 {
82 double vStripLegth(0.);
83 if(V_ID>=0&&V_ID<m_NVstrips)
84 {
85 double V=getCentralVFromVID(V_ID);
86 double Lz=V/fabs(sin(m_StereoAngle));
87 if(Lz<=m_L)
88 {
89 vStripLegth=Lz/cos(m_StereoAngle);
90 }
91 else if(V/cos(m_StereoAngle)<=m_NXstrips*m_XPitch)
92 {
93 vStripLegth=m_L/cos(m_StereoAngle);
94 }
95 else vStripLegth=(m_Vtot-V)/fabs(sin(m_StereoAngle)*cos(m_StereoAngle));
96 }
97 return vStripLegth;
98 }

◆ getWidth() [1/2]

double CgemGeoReadoutPlane::getWidth ( )
inline

◆ getWidth() [2/2]

double CgemGeoReadoutPlane::getWidth ( )
inline

Definition at line 32 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

32{return m_W;};

◆ getX() [1/2]

double CgemGeoReadoutPlane::getX ( double  phi) const

Definition at line 91 of file CgemGeoReadoutPlane.cxx.

92{
93 double dPhi = phi - m_Phimin;
94 while(dPhi<0) dPhi += CLHEP::twopi;
95 while(dPhi>=CLHEP::twopi) dPhi -= CLHEP::twopi;
96 if(dPhi>m_Phimax_strip) {
97 double dphi_start = phi-(m_Phimin+m_Phimin_strip);
98 while(dphi_start> 0) dphi_start-=2.*M_PI;
99 while(dphi_start<=-2.*M_PI) dphi_start+=2.*M_PI;
100 //double dphi_end = phi-(m_Phimin+m_Phimax_strip);
101 //while(dphi_end< 0) dphi_end+=2.*M_PI;
102 //while(dphi_end>=2*M_PI) dphi_end-=2.*M_PI;
103 double dphi_end = dPhi-m_Phimax_strip;
104 if(dphi_start+dphi_end>0) dPhi=dphi_start+m_Phimin_strip;
105 }
106 double X = m_Rmid*dPhi;// in X-zeta plane (X-V plane)
107 return X;
108}

Referenced by getClosestXStripID(), getDist2ClosestXStripCenter(), and getXStripID().

◆ getX() [2/2]

double CgemGeoReadoutPlane::getX ( double  phi) const

◆ getXmin() [1/2]

double CgemGeoReadoutPlane::getXmin ( )
inline

◆ getXmin() [2/2]

double CgemGeoReadoutPlane::getXmin ( )
inline

Definition at line 31 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

31{return m_Xmin;};

◆ getXPitch() [1/2]

double CgemGeoReadoutPlane::getXPitch ( )
inline

◆ getXPitch() [2/2]

double CgemGeoReadoutPlane::getXPitch ( )
inline

Definition at line 35 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

35{return m_XPitch;};

◆ getXStripID() [1/6]

int CgemGeoReadoutPlane::getXStripID ( double  phi) const

Definition at line 111 of file CgemGeoReadoutPlane.cxx.

111 {
112 double X = getX(phi);
113 //cout<<"X="<<X<<", Xmin_strip="<<m_Xmin_strip<<endl;
114 X -= m_Xmin_strip;
115 //cout<<"X="<<X<<endl;
116 int xID = floor(X/m_XPitch);
117 //cout<<"getXStripID: "<<xID<<endl;
118 if(xID<0) xID=-1;
119 //if(xID>=m_NXstrips) xID=m_NXstrips-1;
120 if(xID>=m_NXstrips) xID=-2;
121 //if(xID>=0&&xID<m_NXstrips) return xID;
122 //else return -1;
123 return xID;
124}

Referenced by getClosestXStripID(), getDist2ClosestXStripCenter(), getStripID(), and getXStripID().

◆ getXStripID() [2/6]

int CgemGeoReadoutPlane::getXStripID ( double  phi) const

◆ getXStripID() [3/6]

int CgemGeoReadoutPlane::getXStripID ( double  x,
double  y 
) const

Definition at line 175 of file CgemGeoReadoutPlane.cxx.

175 {
176 if(x!=0||y!=0){
177 double phi=atan2(y,x);
178 return getXStripID(phi);
179 } else{
180 return -3;
181 }
182}

◆ getXStripID() [4/6]

int CgemGeoReadoutPlane::getXStripID ( double  x,
double  y 
) const

◆ getXStripID() [5/6]

int CgemGeoReadoutPlane::getXStripID ( G4ThreeVector  pos) const

Definition at line 185 of file CgemGeoReadoutPlane.cxx.

185 {
186 double x = pos.x();
187 double y = pos.y();
188 return getXStripID(x,y);
189}

◆ getXStripID() [6/6]

int CgemGeoReadoutPlane::getXStripID ( G4ThreeVector  pos) const

◆ getZFromPhiV() [1/2]

double CgemGeoReadoutPlane::getZFromPhiV ( double  phi,
double  V,
int  checkXRange = 1 
) const
inline

Definition at line 196 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

196 {
197 phi = phi-m_Phimin;
198 while(phi<0) phi+=CLHEP::twopi;
199 while(phi>=CLHEP::twopi) phi-=CLHEP::twopi;
200 return getZFromXV(phi*m_Rmid, V, checkXRange);
201}
double getZFromXV(double X, double V, int checkXRange=1, int checkVRange=1) const

◆ getZFromPhiV() [2/2]

double CgemGeoReadoutPlane::getZFromPhiV ( double  phi,
double  V,
int  checkXRange = 1 
) const

◆ getZFromXV() [1/2]

double CgemGeoReadoutPlane::getZFromXV ( double  X,
double  V,
int  checkXRange = 1,
int  checkVRange = 1 
) const

Definition at line 275 of file CgemGeoReadoutPlane.cxx.

275 {
276 double localX = X-m_Xmin_strip;// with m_Xmin_strip as origin
277 double z = -9999.0;
278 if( (checkVRange==0||((V>=m_Vmin_strip)&&(V<m_Vmax))) && ((checkXRange==0)||((localX>=0.0)&&(localX<=m_Xmax_strip-m_Xmin_strip))) ){
279 //double localXOfVstrip = V / cos(m_StereoAngle);
280 //double zeta = (localXOfVstrip - localX) / tan(m_StereoAngle);
281 //if( m_StereoAngle < 0 ) zeta += m_L;
282 //if( (zeta>=0) && (zeta<=m_L) )
283 //z = zeta + m_Zmin;
284 double z0=m_Zmax; if(m_k<0) z0=m_Zmin;
285 z = localX/tan(m_StereoAngle) - V/sin(m_StereoAngle) + z0;
286 }
287 return z;
288}
double tan(const BesAngle a)

Referenced by getZFromPhiV().

◆ getZFromXV() [2/2]

double CgemGeoReadoutPlane::getZFromXV ( double  X,
double  V,
int  checkXRange = 1,
int  checkVRange = 1 
) const

◆ getZmin() [1/2]

double CgemGeoReadoutPlane::getZmin ( )
inline

◆ getZmin() [2/2]

double CgemGeoReadoutPlane::getZmin ( )
inline

Definition at line 33 of file InstallArea/include/CgemGeomSvc/CgemGeomSvc/CgemGeoReadoutPlane.h.

33{return m_Zmin;};

◆ OnThePlane() [1/2]

bool CgemGeoReadoutPlane::OnThePlane ( double  phi,
double  z 
) const
inline

Definition at line 147 of file Cgem/CgemGeomSvc/CgemGeomSvc-00-00-31-p01/CgemGeomSvc/CgemGeoReadoutPlane.h.

148{
149 double dPhi=phi-m_Phimin;// [0, 2pi) with m_Phimin as origin
150 while(dPhi<0) dPhi+=CLHEP::twopi;
151 while(dPhi>=2*M_PI) dPhi-=CLHEP::twopi;
152 if(dPhi>=m_Phimin_strip && dPhi<=m_Xmax_strip/m_Rmid && z>=m_Zmin && z<=m_Zmax) return true;
153 else return false;
154}

Referenced by InductionGar::setMultiElectrons().

◆ OnThePlane() [2/2]

bool CgemGeoReadoutPlane::OnThePlane ( double  phi,
double  z 
) const

◆ print() [1/2]

void CgemGeoReadoutPlane::print ( )

Definition at line 76 of file CgemGeoReadoutPlane.cxx.

76 {
77 cout<<"construct one readout-plane with: "<<endl;
78 cout<<" iLayer "<<m_iLayer<<", iSheet "<<m_iSheet<<endl;
79 cout<<" Rx, Rv, Xmin, width = "<< m_RX<<", "<<m_RV<<", "<<m_Xmin<<", "<<m_W<<endl;
80 cout<<" Zmin, L = "<< m_Zmin <<", "<<m_L<<endl;
81 cout<<" XPitch, XstripWidth ="<<m_XPitch<<", "<<m_XstripWidth<<endl;
82 cout<<" sensitive X (Xmin as origin): "<<m_Xmin_strip<<" to "<<m_Xmax_strip<<endl;
83 cout<<" sensitive range in phi (phimin as origin): "<<m_Phimin_strip<<" to "<<m_Xmax_strip/m_Rmid<<endl;
84 //cout<<" VPitch, VstripWidth, StereoAngle, Vmax ="<<m_VPitch<<", "<<m_VstripWidth<<", "<<m_StereoAngle<<", "<<m_Vmax<<endl;
85 cout<<" VPitch, VstripWidth, StereoAngle, k ="<<m_VPitch<<", "<<m_VstripWidth<<", "<<m_StereoAngle<<", "<<m_k<<endl;
86 cout<<" Vtot, Vmin, Vmax = "<<m_Vtot<<", "<<m_Vmin_strip<<", "<<m_Vmax<<endl;
87 cout<<" N_Xstrips, N_Vstrips="<<m_NXstrips<<", "<<m_NVstrips<<endl;
88 cout<<" MidRGap="<<m_MidRGap<<", OutRGap="<<m_OutRGap<<endl;
89}

Referenced by CgemGeoReadoutPlane().

◆ print() [2/2]

void CgemGeoReadoutPlane::print ( )

The documentation for this class was generated from the following files: