CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes
magneticfield::BaseVolumeHandle Class Referenceabstract

#include <BaseVolumeHandle.h>

Inheritance diagram for magneticfield::BaseVolumeHandle:
MagGeoBuilderFromDDD::volumeHandle magneticfield::volumeHandle

Public Types

typedef Surface::GlobalPoint GlobalPoint
 
typedef Surface::LocalPoint LocalPoint
 
typedef Surface::LocalVector LocalVector
 
typedef SurfaceOrientation::GlobalFace Sides
 

Public Member Functions

 BaseVolumeHandle (bool expand2Pi=false, bool debugVal=false)
 
 BaseVolumeHandle (const BaseVolumeHandle &v)=delete
 
const GlobalPointcenter () const
 Return the center of the volume. More...
 
bool isIron () const
 Temporary hack to pass information on material. Will eventually be replaced! More...
 
bool isPlaneMatched (int which_side) const
 if the specified surface has been matched. More...
 
Geom::Phi< float > maxPhi () const
 Maximum value of phi covered by the volume. More...
 
double maxZ () const
 
Geom::Phi< float > minPhi () const
 Minimum value of phi covered by the volume. More...
 
double minR () const
 Minimum R for any point within the volume. More...
 
double minZ () const
 Z limits. More...
 
const GloballyPositioned< float > * placement () const
 Position and rotation. More...
 
int references (int which_side) const
 
const double RN () const
 Distance of (x,y) plane from origin. More...
 
bool sameSurface (const Surface &s1, Sides which_side, float tolerance=0.01)
 Find out if two surfaces are the same physical surface. More...
 
bool setSurface (const Surface &s1, Sides which_side)
 Assign a shared surface perorming sanity checks. More...
 
virtual DDSolidShape shape () const =0
 Shape of the solid. More...
 
virtual std::vector< VolumeSidesides () const =0
 The surfaces and they orientation, as required to build a MagVolume. More...
 
const Surfacesurface (int which_side) const
 Get the current surface on specified side. More...
 
const Surfacesurface (Sides which_side) const
 
bool toExpand () const
 
virtual ~BaseVolumeHandle ()
 

Public Attributes

unsigned short copyno
 copy number More...
 
std::string magFile
 Name of magnetic field table file. More...
 
MagVolume6FacesmagVolume
 Pointer to the final MagVolume (must be set from outside) More...
 
int masterSector
 The sector for which an interpolator for this class of volumes should be built. More...
 
std::string name
 Name of the volume. More...
 
unsigned short volumeno
 volume number More...
 

Protected Types

typedef ConstReferenceCountingPointer< SurfaceRCPS
 

Protected Member Functions

void buildPhiZSurf (double startPhi, double deltaPhi, double zhalf, double rCentr)
 

Protected Attributes

GlobalPoint center_
 
const bool debug
 
bool expand
 
bool isAssigned [6]
 
bool isIronFlag
 
GloballyPositioned< float > * refPlane
 
RCPS surfaces [6]
 
Geom::Phi< float > thePhiMin
 
double theRMax
 
double theRMin
 
double theRN
 

Detailed Description

Definition at line 22 of file BaseVolumeHandle.h.

Member Typedef Documentation

◆ GlobalPoint

Definition at line 24 of file BaseVolumeHandle.h.

◆ LocalPoint

Definition at line 25 of file BaseVolumeHandle.h.

◆ LocalVector

Definition at line 26 of file BaseVolumeHandle.h.

◆ RCPS

Definition at line 117 of file BaseVolumeHandle.h.

◆ Sides

Definition at line 27 of file BaseVolumeHandle.h.

Constructor & Destructor Documentation

◆ BaseVolumeHandle() [1/2]

BaseVolumeHandle::BaseVolumeHandle ( bool  expand2Pi = false,
bool  debugVal = false 
)

Definition at line 24 of file BaseVolumeHandle.cc.

25  : magVolume(nullptr),
26  masterSector(1),
27  theRN(0.),
28  theRMin(0.),
29  theRMax(0.),
30  refPlane(nullptr),
31  expand(expand2Pi),
32  isIronFlag(false),
33  debug(debugVal) {}

◆ BaseVolumeHandle() [2/2]

magneticfield::BaseVolumeHandle::BaseVolumeHandle ( const BaseVolumeHandle v)
delete

◆ ~BaseVolumeHandle()

BaseVolumeHandle::~BaseVolumeHandle ( )
virtual

Definition at line 35 of file BaseVolumeHandle.cc.

35  {
36  if (refPlane != nullptr) {
37  delete refPlane;
38  refPlane = nullptr;
39  }
40 }

References refPlane.

Member Function Documentation

◆ buildPhiZSurf()

void BaseVolumeHandle::buildPhiZSurf ( double  startPhi,
double  deltaPhi,
double  zhalf,
double  rCentr 
)
protected

Definition at line 44 of file BaseVolumeHandle.cc.

44  {
45  // This is 100% equal for cons and tubs!!!
46 
47  GlobalVector planeXAxis = refPlane->toGlobal(LocalVector(1, 0, 0));
48  GlobalVector planeYAxis = refPlane->toGlobal(LocalVector(0, 1, 0));
49  GlobalVector planeZAxis = refPlane->toGlobal(LocalVector(0, 0, 1));
50 
51  // Local Y axis of the faces at +-phi.
52  GlobalVector y_phiplus = refPlane->toGlobal(LocalVector(cos(startPhi + deltaPhi), sin(startPhi + deltaPhi), 0.));
53  GlobalVector y_phiminus = refPlane->toGlobal(LocalVector(cos(startPhi), sin(startPhi), 0.));
54 
55  Surface::RotationType rot_Z(planeXAxis, planeYAxis);
56  Surface::RotationType rot_phiplus(planeZAxis, y_phiplus);
57  Surface::RotationType rot_phiminus(planeZAxis, y_phiminus);
58 
59  GlobalPoint pos_zplus(center_.x(), center_.y(), center_.z() + zhalf);
60  GlobalPoint pos_zminus(center_.x(), center_.y(), center_.z() - zhalf);
61  // BEWARE: in this case, the origin for phiplus,phiminus surfaces is
62  // at radius R and not on a plane passing by center_ orthogonal to the radius.
63  GlobalPoint pos_phiplus(
64  refPlane->toGlobal(LocalPoint(rCentr * cos(startPhi + deltaPhi), rCentr * sin(startPhi + deltaPhi), 0.)));
65  GlobalPoint pos_phiminus(refPlane->toGlobal(LocalPoint(rCentr * cos(startPhi), rCentr * sin(startPhi), 0.)));
66  surfaces[zplus] = new Plane(pos_zplus, rot_Z);
67  surfaces[zminus] = new Plane(pos_zminus, rot_Z);
68  surfaces[phiplus] = new Plane(pos_phiplus, rot_phiplus);
69  surfaces[phiminus] = new Plane(pos_phiminus, rot_phiminus);
70 
71  if (debug) {
72  cout << "Actual Center at: " << center_ << " R " << center_.perp() << " phi " << center_.phi() << endl;
73  cout << "RN " << theRN << endl;
74 
75  cout << "pos_zplus " << pos_zplus << " " << pos_zplus.perp() << " " << pos_zplus.phi() << endl
76  << "pos_zminus " << pos_zminus << " " << pos_zminus.perp() << " " << pos_zminus.phi() << endl
77  << "pos_phiplus " << pos_phiplus << " " << pos_phiplus.perp() << " " << pos_phiplus.phi() << endl
78  << "pos_phiminus " << pos_phiminus << " " << pos_phiminus.perp() << " " << pos_phiminus.phi() << endl;
79 
80  cout << "y_phiplus " << y_phiplus << endl;
81  cout << "y_phiminus " << y_phiminus << endl;
82 
83  cout << "rot_Z " << surfaces[zplus]->toGlobal(LocalVector(0., 0., 1.)) << endl
84  << "rot_phi+ " << surfaces[phiplus]->toGlobal(LocalVector(0., 0., 1.)) << " phi "
85  << surfaces[phiplus]->toGlobal(LocalVector(0., 0., 1.)).phi() << endl
86  << "rot_phi- " << surfaces[phiminus]->toGlobal(LocalVector(0., 0., 1.)) << " phi "
87  << surfaces[phiminus]->toGlobal(LocalVector(0., 0., 1.)).phi() << endl;
88  }
89 
90  // // Check ordering.
91  if (debug) {
92  if (pos_zplus.z() < pos_zminus.z()) {
93  cout << "*** WARNING: pos_zplus < pos_zminus " << endl;
94  }
95  if (Geom::Phi<float>(pos_phiplus.phi() - pos_phiminus.phi()) < 0.) {
96  cout << "*** WARNING: pos_phiplus < pos_phiminus " << endl;
97  }
98  }
99 }

References center_, funct::cos(), gather_cfg::cout, debug, SiPixelRawToDigiRegional_cfi::deltaPhi, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), SurfaceOrientation::phiminus, SurfaceOrientation::phiplus, refPlane, funct::sin(), surfaces, theRN, GloballyPositioned< T >::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), SurfaceOrientation::zminus, and SurfaceOrientation::zplus.

◆ center()

const Surface::GlobalPoint & BaseVolumeHandle::center ( ) const

◆ isIron()

bool magneticfield::BaseVolumeHandle::isIron ( ) const
inline

Temporary hack to pass information on material. Will eventually be replaced!

Definition at line 108 of file BaseVolumeHandle.h.

108 { return isIronFlag; }

References isIronFlag.

◆ isPlaneMatched()

bool magneticfield::BaseVolumeHandle::isPlaneMatched ( int  which_side) const
inline

if the specified surface has been matched.

Definition at line 55 of file BaseVolumeHandle.h.

55 { return isAssigned[which_side]; }

References isAssigned.

◆ maxPhi()

Geom::Phi<float> magneticfield::BaseVolumeHandle::maxPhi ( ) const
inline

Maximum value of phi covered by the volume.

Definition at line 85 of file BaseVolumeHandle.h.

References PV3DBase< T, PVType, FrameType >::phi(), SurfaceOrientation::phiplus, GloballyPositioned< T >::position(), and surface().

◆ maxZ()

double magneticfield::BaseVolumeHandle::maxZ ( ) const
inline

◆ minPhi()

Geom::Phi<float> magneticfield::BaseVolumeHandle::minPhi ( ) const
inline

Minimum value of phi covered by the volume.

Definition at line 80 of file BaseVolumeHandle.h.

80 { return thePhiMin; }

References thePhiMin.

◆ minR()

double magneticfield::BaseVolumeHandle::minR ( ) const
inline

Minimum R for any point within the volume.

Definition at line 94 of file BaseVolumeHandle.h.

94 { return theRMin; }

References theRMin.

◆ minZ()

double magneticfield::BaseVolumeHandle::minZ ( ) const
inline

◆ placement()

const GloballyPositioned<float>* magneticfield::BaseVolumeHandle::placement ( ) const
inline

Position and rotation.

Definition at line 97 of file BaseVolumeHandle.h.

97 { return refPlane; }

References refPlane.

Referenced by magneticfield::MagGeoBuilder::buildInterpolator(), and MagGeoBuilderFromDDD::buildInterpolator().

◆ references()

int magneticfield::BaseVolumeHandle::references ( int  which_side) const
inline

Definition at line 57 of file BaseVolumeHandle.h.

57  { // FIXME!
58  /* return surfaces[which_side]->references(); */
59  return 0;
60  }

◆ RN()

const double magneticfield::BaseVolumeHandle::RN ( ) const
inline

Distance of (x,y) plane from origin.

Definition at line 41 of file BaseVolumeHandle.h.

41 { return theRN; }

References theRN.

◆ sameSurface()

bool BaseVolumeHandle::sameSurface ( const Surface s1,
Sides  which_side,
float  tolerance = 0.01 
)

Find out if two surfaces are the same physical surface.

Definition at line 101 of file BaseVolumeHandle.cc.

101  {
102  //Check for null comparison
103  if (&s1 == (surfaces[which_side]).get()) {
104  if (debug)
105  cout << " sameSurface: OK (same ptr)" << endl;
106  return true;
107  }
108 
109  const float maxtilt = 0.999;
110 
111  const Surface &s2 = *(surfaces[which_side]);
112  // Try with a plane.
113  const Plane *p1 = dynamic_cast<const Plane *>(&s1);
114  if (p1 != nullptr) {
115  const Plane *p2 = dynamic_cast<const Plane *>(&s2);
116  if (p2 == nullptr) {
117  if (debug)
118  cout << " sameSurface: different types" << endl;
119  return false;
120  }
121 
122  if ((fabs(p1->normalVector().dot(p2->normalVector())) > maxtilt) &&
123  (fabs((p1->toLocal(p2->position())).z()) < tolerance)) {
124  if (debug)
125  cout << " sameSurface: OK " << fabs(p1->normalVector().dot(p2->normalVector())) << " "
126  << fabs((p1->toLocal(p2->position())).z()) << endl;
127  return true;
128  } else {
129  if (debug)
130  cout << " sameSurface: not the same: " << p1->normalVector() << p1->position() << endl
131  << " " << p2->normalVector() << p2->position() << endl
132  << fabs(p1->normalVector().dot(p2->normalVector())) << " " << (p1->toLocal(p2->position())).z() << endl;
133  return false;
134  }
135  }
136 
137  // Try with a cylinder.
138  const Cylinder *cy1 = dynamic_cast<const Cylinder *>(&s1);
139  if (cy1 != nullptr) {
140  const Cylinder *cy2 = dynamic_cast<const Cylinder *>(&s2);
141  if (cy2 == nullptr) {
142  if (debug)
143  cout << " sameSurface: different types" << endl;
144  return false;
145  }
146  // Assume axis is the same!
147  if (fabs(cy1->radius() - cy2->radius()) < tolerance) {
148  return true;
149  } else {
150  return false;
151  }
152  }
153 
154  // Try with a cone.
155  const Cone *co1 = dynamic_cast<const Cone *>(&s1);
156  if (co1 != nullptr) {
157  const Cone *co2 = dynamic_cast<const Cone *>(&s2);
158  if (co2 == nullptr) {
159  if (debug)
160  cout << " sameSurface: different types" << endl;
161  return false;
162  }
163  // FIXME
164  if (fabs(co1->openingAngle() - co2->openingAngle()) < maxtilt &&
165  (co1->vertex() - co2->vertex()).mag() < tolerance) {
166  return true;
167  } else {
168  return false;
169  }
170  }
171 
172  if (debug)
173  cout << " sameSurface: unknown surfaces..." << endl;
174  return false;
175 }

References gather_cfg::cout, debug, get, mag(), Cone::openingAngle(), p1, p2, Cylinder::radius(), indexGen::s2, surfaces, tolerance, and Cone::vertex().

Referenced by setSurface().

◆ setSurface()

bool BaseVolumeHandle::setSurface ( const Surface s1,
Sides  which_side 
)

Assign a shared surface perorming sanity checks.

Definition at line 177 of file BaseVolumeHandle.cc.

177  {
178  //Check for null assignment
179  if (&s1 == (surfaces[which_side]).get()) {
180  isAssigned[which_side] = true;
181  return true;
182  }
183 
184  if (!sameSurface(s1, which_side)) {
185  cout << "***ERROR: setSurface: trying to assign a surface that does not match destination surface. Skipping."
186  << endl;
187  const Surface &s2 = *(surfaces[which_side]);
188  //FIXME: Just planes for the time being!!!
189  const Plane *p1 = dynamic_cast<const Plane *>(&s1);
190  const Plane *p2 = dynamic_cast<const Plane *>(&s2);
191  if (p1 != nullptr && p2 != nullptr)
192  cout << p1->normalVector() << p1->position() << endl << p2->normalVector() << p2->position() << endl;
193  return false;
194  }
195 
196  if (isAssigned[which_side]) {
197  if (&s1 != (surfaces[which_side]).get()) {
198  cout << "*** WARNING BaseVolumeHandle::setSurface: trying to reassign a surface to a different surface instance"
199  << endl;
200  return false;
201  }
202  } else {
203  surfaces[which_side] = &s1;
204  isAssigned[which_side] = true;
205  if (debug)
206  cout << " Volume " << name << " # " << copyno << " Assigned: " << (int)which_side << endl;
207  return true;
208  }
209 
210  return false; // let the compiler be happy
211 }

References copyno, gather_cfg::cout, debug, get, createfilelist::int, isAssigned, name, p1, p2, indexGen::s2, sameSurface(), and surfaces.

◆ shape()

virtual DDSolidShape magneticfield::BaseVolumeHandle::shape ( ) const
pure virtual

◆ sides()

virtual std::vector<VolumeSide> magneticfield::BaseVolumeHandle::sides ( ) const
pure virtual

The surfaces and they orientation, as required to build a MagVolume.

Implemented in magneticfield::volumeHandle, and MagGeoBuilderFromDDD::volumeHandle.

◆ surface() [1/2]

const Surface & BaseVolumeHandle::surface ( int  which_side) const

Get the current surface on specified side.

Definition at line 215 of file BaseVolumeHandle.cc.

215  {
216  assert(which_side >= 0 && which_side < 6);
217  return *(surfaces[which_side]);
218 }

References cms::cuda::assert(), and surfaces.

Referenced by maxPhi(), maxZ(), and minZ().

◆ surface() [2/2]

const Surface & BaseVolumeHandle::surface ( Sides  which_side) const

Definition at line 213 of file BaseVolumeHandle.cc.

213 { return *(surfaces[which_side]); }

References surfaces.

◆ toExpand()

bool magneticfield::BaseVolumeHandle::toExpand ( ) const
inline

Definition at line 105 of file BaseVolumeHandle.h.

105 { return expand; }

References expand.

Referenced by magneticfield::MagGeoBuilder::buildInterpolator(), and MagGeoBuilderFromDDD::buildInterpolator().

Member Data Documentation

◆ center_

GlobalPoint magneticfield::BaseVolumeHandle::center_
protected

◆ copyno

unsigned short magneticfield::BaseVolumeHandle::copyno

◆ debug

const bool magneticfield::BaseVolumeHandle::debug
protected

◆ expand

bool magneticfield::BaseVolumeHandle::expand
protected

Definition at line 146 of file BaseVolumeHandle.h.

Referenced by magneticfield::volumeHandle::sides(), and toExpand().

◆ isAssigned

bool magneticfield::BaseVolumeHandle::isAssigned[6]
protected

◆ isIronFlag

bool magneticfield::BaseVolumeHandle::isIronFlag
protected

◆ magFile

std::string magneticfield::BaseVolumeHandle::magFile

◆ magVolume

MagVolume6Faces* magneticfield::BaseVolumeHandle::magVolume

Pointer to the final MagVolume (must be set from outside)

Definition at line 103 of file BaseVolumeHandle.h.

◆ masterSector

int magneticfield::BaseVolumeHandle::masterSector

The sector for which an interpolator for this class of volumes should be built.

Definition at line 111 of file BaseVolumeHandle.h.

Referenced by magneticfield::MagGeoBuilder::buildInterpolator(), MagGeoBuilderFromDDD::buildInterpolator(), MagGeoBuilderFromDDD::volumeHandle::volumeHandle(), and magneticfield::volumeHandle::volumeHandle().

◆ name

std::string magneticfield::BaseVolumeHandle::name

Name of the volume.

Definition at line 63 of file BaseVolumeHandle.h.

Referenced by ElectronMVAID.ElectronMVAID::__call__(), FWLite.ElectronMVAID::__call__(), dirstructure.Directory::__create_pie_image(), DisplayManager.DisplayManager::__del__(), dqm_interfaces.DirID::__eq__(), dirstructure.Directory::__get_full_path(), dirstructure.Comparison::__get_img_name(), dataset.Dataset::__getDataType(), dataset.Dataset::__getFileInfoList(), dirstructure.Comparison::__make_image(), core.autovars.NTupleVariable::__repr__(), core.autovars.NTupleObjectType::__repr__(), core.autovars.NTupleObject::__repr__(), core.autovars.NTupleCollection::__repr__(), dirstructure.Directory::__repr__(), dqm_interfaces.DirID::__repr__(), dirstructure.Comparison::__repr__(), config.Service::__setattr__(), config.CFG::__str__(), counter.Counter::__str__(), average.Average::__str__(), FWLite.WorkingPoints::_reformat_cut_definitions(), core.autovars.NTupleObjectType::addSubObjects(), core.autovars.NTupleObjectType::addVariables(), core.autovars.NTupleObjectType::allVars(), dataset.CMSDataset::buildListOfFiles(), dataset.LocalDataset::buildListOfFiles(), dataset.CMSDataset::buildListOfFilesDBS(), dirstructure.Directory::calcStats(), validation.Sample::digest(), python.rootplot.utilities.Hist::divide(), python.rootplot.utilities.Hist::divide_wilson(), DisplayManager.DisplayManager::Draw(), core.autovars.NTupleVariable::fillBranch(), core.autovars.NTupleObject::fillBranches(), core.autovars.NTupleCollection::fillBranchesScalar(), core.autovars.NTupleCollection::fillBranchesVector(), core.autovars.NTupleCollection::get_cpp_declaration(), core.autovars.NTupleCollection::get_cpp_wrapper_class(), core.autovars.NTupleCollection::get_py_wrapper_class(), utils.StatisticalTest::get_status(), production_tasks.Task::getname(), dataset.CMSDataset::getPrimaryDatasetEntries(), dataset.PrivateDataset::getPrimaryDatasetEntries(), VIDSelectorBase.VIDSelectorBase::initialize(), core.autovars.NTupleVariable::makeBranch(), core.autovars.NTupleObject::makeBranches(), core.autovars.NTupleCollection::makeBranchesScalar(), core.autovars.NTupleCollection::makeBranchesVector(), dirstructure.Directory::print_report(), dataset.BaseDataset::printInfo(), dataset.Dataset::printInfo(), production_tasks.MonitorJobs::run(), setSurface(), python.rootplot.utilities.Hist::TGraph(), python.rootplot.utilities.Hist::TH1F(), magneticfield::volumeHandle::volumeHandle(), MagGeoBuilderFromDDD::volumeHandle::volumeHandle(), counter.Counter::write(), and average.Average::write().

◆ refPlane

GloballyPositioned<float>* magneticfield::BaseVolumeHandle::refPlane
protected

◆ surfaces

RCPS magneticfield::BaseVolumeHandle::surfaces[6]
protected

◆ thePhiMin

Geom::Phi<float> magneticfield::BaseVolumeHandle::thePhiMin
protected

Definition at line 134 of file BaseVolumeHandle.h.

Referenced by minPhi().

◆ theRMax

double magneticfield::BaseVolumeHandle::theRMax
protected

◆ theRMin

double magneticfield::BaseVolumeHandle::theRMin
protected

◆ theRN

double magneticfield::BaseVolumeHandle::theRN
protected

◆ volumeno

unsigned short magneticfield::BaseVolumeHandle::volumeno
Vector3DBase
Definition: Vector3DBase.h:8
Cone::openingAngle
Geom::Theta< float > openingAngle() const
Angle of the cone.
Definition: Cone.h:50
SurfaceOrientation::phiplus
Definition: Surface.h:19
TkRotation< float >
Cylinder::radius
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:64
magneticfield::BaseVolumeHandle::debug
const bool debug
Definition: BaseVolumeHandle.h:151
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
magneticfield::BaseVolumeHandle::thePhiMin
Geom::Phi< float > thePhiMin
Definition: BaseVolumeHandle.h:134
gather_cfg.cout
cout
Definition: gather_cfg.py:144
magneticfield::BaseVolumeHandle::surface
const Surface & surface(int which_side) const
Get the current surface on specified side.
Definition: BaseVolumeHandle.cc:215
magneticfield::BaseVolumeHandle::isAssigned
bool isAssigned[6]
Definition: BaseVolumeHandle.h:122
cms::cuda::assert
assert(be >=bs)
Surface
Definition: Surface.h:36
Cone::vertex
GlobalPoint vertex() const
Global position of the cone vertex.
Definition: Cone.h:47
indexGen.s2
s2
Definition: indexGen.py:107
magneticfield::BaseVolumeHandle::expand
bool expand
Definition: BaseVolumeHandle.h:146
magneticfield::BaseVolumeHandle::theRMin
double theRMin
Definition: BaseVolumeHandle.h:132
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
magneticfield::BaseVolumeHandle::magVolume
MagVolume6Faces * magVolume
Pointer to the final MagVolume (must be set from outside)
Definition: BaseVolumeHandle.h:103
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
magneticfield::BaseVolumeHandle::theRN
double theRN
Definition: BaseVolumeHandle.h:128
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
magneticfield::BaseVolumeHandle::isIronFlag
bool isIronFlag
Definition: BaseVolumeHandle.h:149
magneticfield::BaseVolumeHandle::theRMax
double theRMax
Definition: BaseVolumeHandle.h:133
p2
double p2[4]
Definition: TauolaWrapper.h:90
magneticfield::BaseVolumeHandle::sameSurface
bool sameSurface(const Surface &s1, Sides which_side, float tolerance=0.01)
Find out if two surfaces are the same physical surface.
Definition: BaseVolumeHandle.cc:101
Point3DBase< float, GlobalTag >
magneticfield::BaseVolumeHandle::masterSector
int masterSector
The sector for which an interpolator for this class of volumes should be built.
Definition: BaseVolumeHandle.h:111
Cone
Definition: Cone.h:17
SurfaceOrientation::zminus
Definition: Surface.h:19
magneticfield::BaseVolumeHandle::center_
GlobalPoint center_
Definition: BaseVolumeHandle.h:142
magneticfield::BaseVolumeHandle::LocalVector
Surface::LocalVector LocalVector
Definition: BaseVolumeHandle.h:26
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
createfilelist.int
int
Definition: createfilelist.py:10
tolerance
const double tolerance
Definition: HGCalGeomParameters.cc:27
Geom::Phi< float >
p1
double p1[4]
Definition: TauolaWrapper.h:89
get
#define get
magneticfield::BaseVolumeHandle::copyno
unsigned short copyno
copy number
Definition: BaseVolumeHandle.h:72
GloballyPositioned::position
const PositionType & position() const
Definition: GloballyPositioned.h:36
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
magneticfield::BaseVolumeHandle::name
std::string name
Name of the volume.
Definition: BaseVolumeHandle.h:63
magneticfield::BaseVolumeHandle::surfaces
RCPS surfaces[6]
Definition: BaseVolumeHandle.h:120
SurfaceOrientation::zplus
Definition: Surface.h:19
Plane
Definition: Plane.h:16
SurfaceOrientation::phiminus
Definition: Surface.h:19
Cylinder
Definition: Cylinder.h:19
magneticfield::BaseVolumeHandle::refPlane
GloballyPositioned< float > * refPlane
Definition: BaseVolumeHandle.h:139
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
GloballyPositioned::toGlobal
GlobalPoint toGlobal(const LocalPoint &lp) const
Definition: GloballyPositioned.h:66