CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Private Attributes | Static Private Attributes
CrystalPad Class Reference

#include <CrystalPad.h>

Classes

class  padEqual
 equality operator More...
 

Public Types

typedef
ROOT::Math::Transform3DPJ::Point 
Point
 
typedef ROOT::Math::Transform3DPJ Transform3D
 
typedef math::XYZVector XYZPoint
 
typedef math::XYZVector XYZVector
 

Public Member Functions

const CLHEP::Hep2Vector & center () const
 get the center More...
 
 CrystalPad ()
 
 CrystalPad (unsigned number, const std::vector< CLHEP::Hep2Vector > &corners)
 Order matters. 1234 2341 3412 4123 are ok but not 1324 .... More...
 
 CrystalPad (unsigned number, int onEcal, const std::vector< XYZPoint > &corners, const XYZPoint &origin, const XYZVector &vec1, const XYZVector &vec2)
 
 CrystalPad (unsigned number, const std::vector< XYZPoint > &corners, const Transform3D &, double scaf=1., bool bothdirections=false)
 
 CrystalPad (const CrystalPad &right)
 
CLHEP::Hep2Vector & edge (unsigned iside, int n)
 access to the corners in direction iside; n=0,1 More...
 
CLHEP::Hep2Vector & edge (CaloDirection)
 access to one corner (NE,NW,SE,SW) More...
 
void extrems (double &xmin, double &xmax, double &ymin, double &ymax) const
 xmin xmax, ymin ymax of the quad More...
 
const std::vector
< CLHEP::Hep2Vector > & 
getCorners () const
 Check that the point (in the global frame) is inside the crystal. More...
 
void getDrawingCoordinates (std::vector< float > &x, std::vector< float > &y) const
 for graphic debugging More...
 
unsigned getNumber () const
 access to the number More...
 
bool inside (const CLHEP::Hep2Vector &point, bool debug=false) const
 Check that the point (in the local frame) is inside the crystal. More...
 
bool operator< (const CrystalPad &quad) const
 
CrystalPadoperator= (const CrystalPad &rhs)
 
bool operator== (const CrystalPad &quad) const
 get the coordinates in the original frame More...
 
void print () const
 print More...
 
void resetCorners ()
 Rescale the Quad to allow for some inaccuracy ... More...
 
void setSurvivalProbability (double val)
 
double survivalProbability () const
 access methods to the survivalProbability More...
 
 ~CrystalPad ()
 

Private Attributes

CLHEP::Hep2Vector center_
 
std::vector< CLHEP::Hep2Vector > corners_
 
std::vector< CLHEP::Hep2Vector > dir_
 
bool dummy_
 
double epsilon_
 
unsigned number_
 
ROOT::Math::Rotation3D rotation_
 
double survivalProbability_
 
Transform3D trans_
 
XYZVector translation_
 
double yscalefactor_
 

Static Private Attributes

static std::vector
< CLHEP::Hep2Vector > 
aVector
 

Detailed Description

Definition at line 14 of file CrystalPad.h.

Member Typedef Documentation

Definition at line 21 of file CrystalPad.h.

Definition at line 20 of file CrystalPad.h.

Definition at line 19 of file CrystalPad.h.

Definition at line 18 of file CrystalPad.h.

Constructor & Destructor Documentation

CrystalPad::CrystalPad ( )
inline

Definition at line 24 of file CrystalPad.h.

References dummy_.

24 { dummy_ = true;};
bool dummy_
Definition: CrystalPad.h:120
CrystalPad::CrystalPad ( unsigned  number,
const std::vector< CLHEP::Hep2Vector > &  corners 
)

Order matters. 1234 2341 3412 4123 are ok but not 1324 ....

Definition at line 33 of file CrystalPad.cc.

References center_, corners_, gather_cfg::cout, dir_, and dummy_.

35  :
36  corners_(corners),
37  dir_(aVector),
38  number_(number),
40  center_(0.,0.),
41  epsilon_(0.001)
42 {
43 
44  // std::cout << " Hello " << std::endl;
45  if(corners.size()!=4)
46  {
47  std::cout << " Try to construct a quadrilateral with " << corners.size() << " points ! " << std::endl;
48  dummy_=true;
49  }
50  else
51  {
52  dummy_=false;
53  // Set explicity the z to 0 !
54  for(unsigned ic=0; ic<4;++ic)
55  {
56  dir_[ic] = (corners[(ic+1)%4]-corners[ic]).unit();
57  center_+=corners_[ic];
58  }
59  center_*=0.25;
60  }
61 // std::cout << " End of 1 constructor " << std::endl;
62 // std::cout << " Ncorners " << corners_.size() << std::endl;
63 // std::cout << " Ndirs " << dir_.size() << std::endl;
64 }
double survivalProbability_
Definition: CrystalPad.h:117
bool dummy_
Definition: CrystalPad.h:120
unsigned number_
Definition: CrystalPad.h:113
static std::vector< CLHEP::Hep2Vector > aVector
Definition: CrystalPad.h:109
double epsilon_
Definition: CrystalPad.h:119
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
tuple cout
Definition: gather_cfg.py:121
CrystalPad::CrystalPad ( unsigned  number,
int  onEcal,
const std::vector< XYZPoint > &  corners,
const XYZPoint origin,
const XYZVector vec1,
const XYZVector vec2 
)

Constructor from space points, with the description of the local frame (origin,vec1,vec2) where vec1 is normal to the plane and vec2 in the plane

Definition at line 66 of file CrystalPad.cc.

References center_, corners_, gather_cfg::cout, dir_, dummy_, ROOT::Math::Transform3DPJ::GetDecomposition(), rotation_, trans_, and translation_.

71  :
73  dir_(aVector),
74  number_(number),
76  center_(0.,0.),
77  epsilon_(0.001)
78 {
79 
80  // std::cout << " We are in the 2nd constructor " << std::endl;
81  if(corners.size()!=4)
82  {
83  std::cout << " Try to construct a quadrilateral with " << corners.size() << " points ! " << std::endl;
84  dummy_=true;
85  }
86  else
87  {
88  dummy_=false;
89  double sign=(onEcal==1) ? -1.: 1.;
90 
91  // the good one in the central
92  trans_=Transform3D((Point)origin,
93  (Point)(origin+vec1),
94  (Point)(origin+vec2),
95  Point(0.,0.,0.),
96  Point(0.,0.,sign),
97  Point(0.,1.,0.));
99  // std::cout << " Constructor 2; input corners " << std::endl;
100  for(unsigned ic=0;ic<4;++ic)
101  {
102  // std::cout << corners[ic]<< " " ;
103  XYZPoint corner = rotation_(corners[ic])+translation_;
104  // std::cout << corner << std::endl ;
105  corners_[ic] = CLHEP::Hep2Vector(corner.X(),corner.Y());
106  center_+=corners_[ic];
107  }
108  for(unsigned ic=0;ic<4;++ic)
109  {
110  dir_[ic] = (corners_[(ic+1)%4]-corners_[ic]).unit();
111  }
112  center_*=0.25;
113  }
114 // std::cout << " End of 2 constructor " << std::endl;
115 // std::cout << " Corners(constructor) " ;
116 // std::cout << corners_[0] << std::endl;
117 // std::cout << corners_[1] << std::endl;
118 // std::cout << corners_[2] << std::endl;
119 // std::cout << corners_[3] << std::endl;
120 }
double survivalProbability_
Definition: CrystalPad.h:117
bool dummy_
Definition: CrystalPad.h:120
ROOT::Math::Rotation3D rotation_
Definition: CrystalPad.h:115
ROOT::Math::Transform3DPJ::Point Point
Definition: CrystalPad.h:21
unsigned number_
Definition: CrystalPad.h:113
static std::vector< CLHEP::Hep2Vector > aVector
Definition: CrystalPad.h:109
ROOT::Math::Transform3DPJ Transform3D
Definition: CrystalPad.h:20
double epsilon_
Definition: CrystalPad.h:119
Transform3D trans_
Definition: CrystalPad.h:114
math::XYZPoint Point
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
XYZVector translation_
Definition: CrystalPad.h:116
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
void GetDecomposition(Rotation3D &r, Vector &v) const
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
math::XYZVector XYZPoint
tuple cout
Definition: gather_cfg.py:121
CrystalPad::CrystalPad ( unsigned  number,
const std::vector< XYZPoint > &  corners,
const Transform3D trans,
double  scaf = 1.,
bool  bothdirections = false 
)

Definition at line 121 of file CrystalPad.cc.

References center_, corners_, gather_cfg::cout, dir_, dummy_, ROOT::Math::Transform3DPJ::GetDecomposition(), rotation_, trans_, translation_, and yscalefactor_.

124  :
125  corners_(aVector),
126  dir_(aVector),
127  number_(number),
129  center_(0.,0.),
130  epsilon_(0.001),
131  yscalefactor_(scaf)
132 {
133 
134  // std::cout << " We are in the 2nd constructor " << std::endl;
135  if(corners.size()!=4)
136  {
137  std::cout << " Try to construct a quadrilateral with " << corners.size() << " points ! " << std::endl;
138  dummy_=true;
139  }
140  else
141  {
142  dummy_=false;
143 
144  // the good one in the central
145  trans_=trans;
146  // std::cout << " Constructor 2; input corners " << std::endl;
148  for(unsigned ic=0;ic<4;++ic)
149  {
150 
151  XYZPoint corner=rotation_(corners[ic])+translation_;
152  // std::cout << corner << std::endl ;
153  double xscalefactor=(bothdirections) ? yscalefactor_:1.;
154  corners_[ic] = CLHEP::Hep2Vector(corner.X()*xscalefactor,corner.Y()*yscalefactor_);
155  center_+=corners_[ic];
156  }
157  for(unsigned ic=0;ic<4;++ic)
158  {
159  dir_[ic] = (corners_[(ic+1)%4]-corners_[ic]).unit();
160  }
161  center_*=0.25;
162  }
163 }
double survivalProbability_
Definition: CrystalPad.h:117
bool dummy_
Definition: CrystalPad.h:120
double yscalefactor_
Definition: CrystalPad.h:121
ROOT::Math::Rotation3D rotation_
Definition: CrystalPad.h:115
unsigned number_
Definition: CrystalPad.h:113
static std::vector< CLHEP::Hep2Vector > aVector
Definition: CrystalPad.h:109
double epsilon_
Definition: CrystalPad.h:119
Transform3D trans_
Definition: CrystalPad.h:114
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
XYZVector translation_
Definition: CrystalPad.h:116
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
void GetDecomposition(Rotation3D &r, Vector &v) const
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
math::XYZVector XYZPoint
tuple cout
Definition: gather_cfg.py:121
CrystalPad::CrystalPad ( const CrystalPad right)

Definition at line 8 of file CrystalPad.cc.

References center_, corners_, dir_, dummy_, epsilon_, number_, and survivalProbability_.

9 {
10  corners_ = right.corners_;
11  dir_ = right.dir_;
12  number_ = right.number_;
14  center_ = right.center_;
15  epsilon_ = right.epsilon_;
16  dummy_ = right.dummy_;
17 }
double survivalProbability_
Definition: CrystalPad.h:117
bool dummy_
Definition: CrystalPad.h:120
unsigned number_
Definition: CrystalPad.h:113
double epsilon_
Definition: CrystalPad.h:119
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
CrystalPad::~CrystalPad ( )
inline

Definition at line 45 of file CrystalPad.h.

45 {;};

Member Function Documentation

const CLHEP::Hep2Vector& CrystalPad::center ( ) const
inline

get the center

Definition at line 101 of file CrystalPad.h.

References center_.

Referenced by operator<().

101 {return center_;}
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
CLHEP::Hep2Vector & CrystalPad::edge ( unsigned  iside,
int  n 
)

access to the corners in direction iside; n=0,1

Definition at line 263 of file CrystalPad.cc.

References corners_, and n.

Referenced by EcalHitMaker::cracksPads(), EcalHitMaker::gapsLifting(), and operator<<().

264 {
265  return corners_[(iside+n)%4];
266 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
CLHEP::Hep2Vector & CrystalPad::edge ( CaloDirection  dir)

access to one corner (NE,NW,SE,SW)

Definition at line 268 of file CrystalPad.cc.

References corners_, gather_cfg::cout, NORTHEAST, NORTHWEST, SOUTHEAST, and SOUTHWEST.

269 {
270  switch(dir)
271  {
272  case NORTHWEST:
273  return corners_[0];
274  break;
275  case NORTHEAST:
276  return corners_[1];
277  break;
278  case SOUTHEAST:
279  return corners_[2];
280  break;
281  case SOUTHWEST:
282  return corners_[3];
283  break;
284  default:
285  {
286  std::cout << " Serious problem in CrystalPad ! " << dir << std::endl;
287  return corners_[0];
288  }
289  }
290  return corners_[0];
291 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
tuple cout
Definition: gather_cfg.py:121
dbl *** dir
Definition: mlp_gen.cc:35
void CrystalPad::extrems ( double &  xmin,
double &  xmax,
double &  ymin,
double &  ymax 
) const

xmin xmax, ymin ymax of the quad

Definition at line 295 of file CrystalPad.cc.

References corners_, x, and detailsBasic3DVector::y.

296 {
297  xmin=ymin=999;
298  xmax=ymax=-999;
299  for(unsigned ic=0;ic<4;++ic)
300  {
301  if(corners_[ic].x()<xmin) xmin=corners_[ic].x();
302  if(corners_[ic].x()>xmax) xmax=corners_[ic].x();
303  if(corners_[ic].y()<ymin) ymin=corners_[ic].y();
304  if(corners_[ic].y()>ymax) ymax=corners_[ic].y();
305  }
306 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
Definition: DDAxes.h:10
const std::vector<CLHEP::Hep2Vector>& CrystalPad::getCorners ( ) const
inline

Check that the point (in the global frame) is inside the crystal.

coordinates of the point in the local frame get the corners

Definition at line 56 of file CrystalPad.h.

References corners_.

56 {return corners_;}
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
void CrystalPad::getDrawingCoordinates ( std::vector< float > &  x,
std::vector< float > &  y 
) const

for graphic debugging

Definition at line 335 of file CrystalPad.cc.

References corners_, x, and detailsBasic3DVector::y.

336 {
337  x.clear();
338  y.clear();
339  x.push_back(corners_[0].x());
340  x.push_back(corners_[1].x());
341  x.push_back(corners_[2].x());
342  x.push_back(corners_[3].x());
343  x.push_back(corners_[0].x());
344  y.push_back(corners_[0].y());
345  y.push_back(corners_[1].y());
346  y.push_back(corners_[2].y());
347  y.push_back(corners_[3].y());
348  y.push_back(corners_[0].y());
349 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
Definition: DDAxes.h:10
unsigned CrystalPad::getNumber ( ) const
inline

access to the number

Definition at line 75 of file CrystalPad.h.

References number_.

Referenced by CrystalPad::padEqual::operator()(), operator<<(), and operator==().

75 {return number_;};
unsigned number_
Definition: CrystalPad.h:113
bool CrystalPad::inside ( const CLHEP::Hep2Vector &  point,
bool  debug = false 
) const

Check that the point (in the local frame) is inside the crystal.

Definition at line 166 of file CrystalPad.cc.

References corners_, dir_, diffTwoXMLs::r1, and diffTwoXMLs::r2.

167 {
168 // std::cout << "Inside " << ppoint <<std::endl;
169 // std::cout << "Corners " << corners_.size() << std::endl;
170 // std::cout << corners_[0] << std::endl;
171 // std::cout << corners_[1] << std::endl;
172 // std::cout << corners_[2] << std::endl;
173 // std::cout << corners_[3] << std::endl;
174 // std::cout << " Got the 2D point " << std::endl;
175  CLHEP::Hep2Vector pv0(ppoint-corners_[0]);
176  CLHEP::Hep2Vector pv2(ppoint-corners_[2]);
177  CLHEP::Hep2Vector n1(pv0-(pv0*dir_[0])*dir_[0]);
178  CLHEP::Hep2Vector n2(pv2-(pv2*dir_[2])*dir_[2]);
179 
180  // double N1(n1.mag());
181  // double N2(n2.mag());
182  double r1(n1*n2);
183  bool inside1(r1<=0.);
184 
185  if (!inside1) return false;
186 
187 // if(debug)
188 // {
189 // std::cout << n1 << std::endl;
190 // std::cout << n2 << std::endl;
191 // std::cout << r1 << std::endl;
192 // std::cout << inside1 << std::endl;
193 // }
194 
195 // bool close1=(N1<epsilon_||N2<epsilon_);
196 //
197 // if(!close1&&!inside1) return false;
198  // std::cout << " First calculation " << std::endl;
199  CLHEP::Hep2Vector pv1(ppoint-corners_[1]);
200  CLHEP::Hep2Vector pv3(ppoint-corners_[3]);
201  CLHEP::Hep2Vector n3(pv1-(pv1*dir_[1])*dir_[1]);
202  CLHEP::Hep2Vector n4(pv3-(pv3*dir_[3])*dir_[3]);
203  // double N3(n3.mag());
204  // double N4(n4.mag());
205  // bool close2=(N3<epsilon_||N4<epsilon_);
206  double r2(n3*n4);
207  bool inside2(r2<=0.);
208 // // std::cout << " pv1 & pv3 " << pv1.mag() << " " << pv3.mag() << std::endl;
209 // // double tmp=(pv1-(pv1*dir_[1])*dir_[1])*(pv3-(pv3*dir_[3])*dir_[3]);
210 // // std::cout << " Computed tmp " << tmp << std::endl;
211 // if(debug)
212 // {
213 // std::cout << n3 << std::endl;
214 // std::cout << n4 << std::endl;
215 // std::cout << r2 << std::endl;
216 // std::cout << inside2 << std::endl;
217 // }
218  // if(!close2&&!inside2) return false;
219 // std::cout << " Second calculation " << std::endl;
220 // std::cout << " True " << std::endl;
221  // return (!close1&&!close2||(close2&&inside1||close1&&inside2));
222 
223  return inside2;
224 }
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
bool CrystalPad::operator< ( const CrystalPad quad) const
inline

Definition at line 92 of file CrystalPad.h.

References center(), and center_.

93  {
94  return (center_.mag()<quad.center().mag());
95  }
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
const CLHEP::Hep2Vector & center() const
get the center
Definition: CrystalPad.h:101
CrystalPad & CrystalPad::operator= ( const CrystalPad rhs)

Definition at line 20 of file CrystalPad.cc.

References center_, corners_, dir_, dummy_, epsilon_, number_, and survivalProbability_.

20  {
21  if (this != &right) { // don't copy into yourself
22  corners_ = right.corners_;
23  dir_ = right.dir_;
24  number_ = right.number_;
25  survivalProbability_ = right.survivalProbability_;
26  center_ = right.center_;
27  epsilon_ = right.epsilon_;
28  dummy_ = right.dummy_;
29  }
30  return *this;
31 }
double survivalProbability_
Definition: CrystalPad.h:117
bool dummy_
Definition: CrystalPad.h:120
unsigned number_
Definition: CrystalPad.h:113
double epsilon_
Definition: CrystalPad.h:119
std::vector< CLHEP::Hep2Vector > dir_
Definition: CrystalPad.h:112
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
bool CrystalPad::operator== ( const CrystalPad quad) const
inline

get the coordinates in the original frame

Definition at line 86 of file CrystalPad.h.

References getNumber().

87  {
88  // std::cout << " First " << quad.getCellID() << " Second " << this->getCellID() << std::endl;
89  return quad.getNumber()==this->getNumber();
90  }
unsigned getNumber() const
access to the number
Definition: CrystalPad.h:75
void CrystalPad::print ( void  ) const

print

Definition at line 245 of file CrystalPad.cc.

References corners_, and gather_cfg::cout.

246 {
247  std::cout << " Corners " << std::endl;
248  std::cout << corners_[0] << std::endl;
249  std::cout << corners_[1] << std::endl;
250  std::cout << corners_[2] << std::endl;
251  std::cout << corners_[3] << std::endl;
252 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
tuple cout
Definition: gather_cfg.py:121
void CrystalPad::resetCorners ( )

Rescale the Quad to allow for some inaccuracy ...

Definition at line 309 of file CrystalPad.cc.

References center_, and corners_.

309  {
310 
311  // Find the centre-of-gravity of the Quad (after re-organization)
312  center_ = CLHEP::Hep2Vector(0.,0.);
313  for(unsigned ic=0;ic<4;++ic) center_ += corners_[ic];
314  center_ *= 0.25;
315 
316  // Rescale the corners to allow for some inaccuracies in
317  // in the inside test
318  for(unsigned ic=0;ic<4;++ic)
319  corners_[ic] += 0.001 * (corners_[ic] - center_) ;
320 
321 }
std::vector< CLHEP::Hep2Vector > corners_
Definition: CrystalPad.h:111
CLHEP::Hep2Vector center_
Definition: CrystalPad.h:118
void CrystalPad::setSurvivalProbability ( double  val)
inline

Definition at line 66 of file CrystalPad.h.

References survivalProbability_.

Referenced by EcalHitMaker::cracksPads().

double survivalProbability_
Definition: CrystalPad.h:117
double CrystalPad::survivalProbability ( ) const
inline

access methods to the survivalProbability

Definition at line 65 of file CrystalPad.h.

References survivalProbability_.

65 { return survivalProbability_;};
double survivalProbability_
Definition: CrystalPad.h:117

Member Data Documentation

std::vector< CLHEP::Hep2Vector > CrystalPad::aVector
staticprivate

Definition at line 109 of file CrystalPad.h.

CLHEP::Hep2Vector CrystalPad::center_
private

Definition at line 118 of file CrystalPad.h.

Referenced by center(), CrystalPad(), operator<(), operator=(), and resetCorners().

std::vector<CLHEP::Hep2Vector> CrystalPad::corners_
private
std::vector<CLHEP::Hep2Vector> CrystalPad::dir_
private

Definition at line 112 of file CrystalPad.h.

Referenced by CrystalPad(), inside(), and operator=().

bool CrystalPad::dummy_
private

Definition at line 120 of file CrystalPad.h.

Referenced by CrystalPad(), and operator=().

double CrystalPad::epsilon_
private

Definition at line 119 of file CrystalPad.h.

Referenced by CrystalPad(), and operator=().

unsigned CrystalPad::number_
private

Definition at line 113 of file CrystalPad.h.

Referenced by CrystalPad(), getNumber(), and operator=().

ROOT::Math::Rotation3D CrystalPad::rotation_
private

Definition at line 115 of file CrystalPad.h.

Referenced by CrystalPad().

double CrystalPad::survivalProbability_
private

Definition at line 117 of file CrystalPad.h.

Referenced by CrystalPad(), operator=(), setSurvivalProbability(), and survivalProbability().

Transform3D CrystalPad::trans_
private

Definition at line 114 of file CrystalPad.h.

Referenced by CrystalPad().

XYZVector CrystalPad::translation_
private

Definition at line 116 of file CrystalPad.h.

Referenced by CrystalPad().

double CrystalPad::yscalefactor_
private

Definition at line 121 of file CrystalPad.h.

Referenced by CrystalPad().