CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes | Private Attributes
MagCylinder Class Reference

#include <MagCylinder.h>

Inheritance diagram for MagCylinder:
MagVolume GloballyPositioned< float > MagneticField

Public Member Functions

const std::vector< VolumeSide > & faces () const override
 Access to volume faces. More...
 
bool inside (const GlobalPoint &gp, double tolerance=0.) const override
 
bool inside (const LocalPoint &lp, double tolerance=0.) const override
 
 MagCylinder (const PositionType &pos, const RotationType &rot, const std::vector< VolumeSide > &faces, const MagneticFieldProvider< float > *mfp)
 
- Public Member Functions inherited from MagVolume
LocalVector fieldInTesla (const LocalPoint &lp) const
 
GlobalVector fieldInTesla (const GlobalPoint &lp) const
 
::GlobalVector inTesla (const ::GlobalPoint &gp) const override
 
bool isIron () const
 Temporary hack to pass information on material. Will eventually be replaced! More...
 
 MagVolume (const PositionType &pos, const RotationType &rot, const MagneticFieldProvider< float > *mfp, double sf=1.)
 
void ownsFieldProvider (bool o)
 
const MagneticFieldProvider< float > * provider () const
 
void setIsIron (bool iron)
 
 ~MagVolume () override
 
- Public Member Functions inherited from GloballyPositioned< float >
float eta () const
 
 GloballyPositioned ()
 
 GloballyPositioned (const PositionType &pos, const RotationType &rot)
 
void move (const GlobalVector &displacement)
 
float phi () const
 
const PositionTypeposition () const
 
void rotate (const RotationType &rotation)
 
const RotationTyperotation () const
 
GlobalPoint toGlobal (const LocalPoint &lp) const
 
Point3DBase< U, GlobalTagtoGlobal (const Point3DBase< U, LocalTag > &lp) const
 
GlobalVector toGlobal (const LocalVector &lv) const
 
Vector3DBase< U, GlobalTagtoGlobal (const Vector3DBase< U, LocalTag > &lv) const
 
LocalPoint toLocal (const GlobalPoint &gp) const
 
Point3DBase< U, LocalTagtoLocal (const Point3DBase< U, GlobalTag > &gp) const
 
LocalVector toLocal (const GlobalVector &gv) const
 
Vector3DBase< U, LocalTagtoLocal (const Vector3DBase< U, GlobalTag > &gv) const
 
virtual ~GloballyPositioned ()
 
- Public Member Functions inherited from MagneticField
virtual MagneticFieldclone () const
 
GlobalVector inInverseGeV (const GlobalPoint &gp) const
 Field value ad specified global point, in 1/Gev. More...
 
GlobalVector inKGauss (const GlobalPoint &gp) const
 Field value ad specified global point, in KGauss. More...
 
virtual GlobalVector inTesla (const GlobalPoint &gp) const =0
 Field value ad specified global point, in Tesla. More...
 
virtual GlobalVector inTeslaUnchecked (const GlobalPoint &gp) const
 
virtual bool isDefined (const GlobalPoint &) const
 True if the point is within the region where the concrete field. More...
 
 MagneticField ()
 
 MagneticField (const MagneticField &orig)
 
int nominalValue () const
 The nominal field value for this map in kGauss. More...
 
virtual ~MagneticField ()
 

Public Attributes

std::string name
 

Private Attributes

std::vector< VolumeSidetheFaces
 
Scalar theInnerR
 
Scalar theOuterR
 
Scalar theZmax
 
Scalar theZmin
 

Additional Inherited Members

- Public Types inherited from MagVolume
typedef GloballyPositioned< float > Base
 
typedef GloballyPositioned< float >::GlobalPoint GlobalPoint
 
typedef GloballyPositioned< float >::GlobalVector GlobalVector
 
typedef GloballyPositioned< float >::LocalPoint LocalPoint
 
typedef GloballyPositioned< float >::LocalVector LocalVector
 
- Public Types inherited from GloballyPositioned< float >
typedef Point3DBase< float, GlobalTagGlobalPoint
 
typedef Vector3DBase< float, GlobalTagGlobalVector
 
typedef Point3DBase< float, LocalTagLocalPoint
 
typedef Vector3DBase< float, LocalTagLocalVector
 
typedef Point3DBase< float, GlobalTagPositionType
 
typedef TkRotation< float > RotationType
 
typedef float Scalar
 
- Static Public Member Functions inherited from GloballyPositioned< float >
static float iniEta ()
 
static float iniPhi ()
 

Detailed Description

Definition at line 16 of file MagCylinder.h.

Constructor & Destructor Documentation

MagCylinder::MagCylinder ( const PositionType pos,
const RotationType rot,
const std::vector< VolumeSide > &  faces,
const MagneticFieldProvider< float > *  mfp 
)

Definition at line 5 of file MagCylinder.cc.

References def, mps_fire::i, SurfaceOrientation::inner, SurfaceOrientation::outer, Cylinder::radius(), theInnerR, theOuterR, theZmax, theZmin, GloballyPositioned< float >::toLocal(), z, SurfaceOrientation::zminus, and SurfaceOrientation::zplus.

9  : MagVolume(pos,rot,mfp), theFaces(faces), theZmin(0.), theZmax(0.), theInnerR(0.), theOuterR(0.)
10 {
12 
13  unsigned int def = 0;
14  for (std::vector<VolumeSide>::const_iterator i=faces.begin(); i!= faces.end(); ++i) {
15  if (i->globalFace() == SurfaceOrientation::zminus) {
16  theZmin = MagVolume::toLocal( i->surface().position()).z();
17  ++def;
18  }
19  else if (i->globalFace() == SurfaceOrientation::zplus) {
20  theZmax = MagVolume::toLocal( i->surface().position()).z();
21  ++def;
22  }
23  else if (i->globalFace() == SurfaceOrientation::outer || i->globalFace() == SurfaceOrientation::inner) {
24  const Cylinder* cyl = dynamic_cast<const Cylinder*>(&(i->surface()));
25  if (cyl == nullptr) {
26  throw MagGeometryError("MagCylinder inner/outer surface is not a cylinder");
27  }
28  if (i->globalFace() == SurfaceOrientation::outer) theOuterR = cyl->radius();
29  else theInnerR = cyl->radius();
30  ++def;
31  }
32  }
33  if (def != faces.size()) {
34  throw MagGeometryError("MagCylinder constructed with wrong number/type of faces");
35  }
36 
37 }
Scalar theZmax
Definition: MagCylinder.h:37
Scalar theInnerR
Definition: MagCylinder.h:38
Scalar radius() const
Radius of the cylinder.
Definition: Cylinder.h:67
LocalPoint toLocal(const GlobalPoint &gp) const
std::vector< VolumeSide > theFaces
Definition: MagCylinder.h:35
MagVolume(const PositionType &pos, const RotationType &rot, const MagneticFieldProvider< float > *mfp, double sf=1.)
Definition: MagVolume.h:22
Scalar theOuterR
Definition: MagCylinder.h:39
Scalar theZmin
Definition: MagCylinder.h:36
const std::vector< VolumeSide > & faces() const override
Access to volume faces.
Definition: MagCylinder.h:27
JetCorrectorParameters::Definitions def
Definition: classes.h:6

Member Function Documentation

const std::vector<VolumeSide>& MagCylinder::faces ( ) const
inlineoverridevirtual

Access to volume faces.

Implements MagVolume.

Definition at line 27 of file MagCylinder.h.

References theFaces.

27 {return theFaces;}
std::vector< VolumeSide > theFaces
Definition: MagCylinder.h:35
bool MagCylinder::inside ( const GlobalPoint gp,
double  tolerance = 0. 
) const
overridevirtual

Implements MagVolume.

Definition at line 39 of file MagCylinder.cc.

References GloballyPositioned< float >::toLocal().

40 {
41  return inside( toLocal(gp), tolerance);
42 }
const double tolerance
LocalPoint toLocal(const GlobalPoint &gp) const
bool inside(const GlobalPoint &gp, double tolerance=0.) const override
Definition: MagCylinder.cc:39
bool MagCylinder::inside ( const LocalPoint lp,
double  tolerance = 0. 
) const
overridevirtual

Reimplemented from MagVolume.

Definition at line 44 of file MagCylinder.cc.

References alignCSCRings::r, theInnerR, theOuterR, theZmax, theZmin, and tolerance.

45 {
46  Scalar r( lp.perp());
47  return
48  lp.z() > theZmin - tolerance &&
49  lp.z() < theZmax + tolerance &&
50  r > theInnerR - tolerance &&
51  r < theOuterR + tolerance;
52 }
T perp() const
Definition: PV3DBase.h:72
Scalar theZmax
Definition: MagCylinder.h:37
const double tolerance
Scalar theInnerR
Definition: MagCylinder.h:38
T z() const
Definition: PV3DBase.h:64
Scalar theOuterR
Definition: MagCylinder.h:39
Scalar theZmin
Definition: MagCylinder.h:36

Member Data Documentation

std::string MagCylinder::name

Definition at line 30 of file MagCylinder.h.

Referenced by ElectronMVAID.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__(), core.autovars.NTupleObjectType::addSubObjects(), core.autovars.NTupleObjectType::addVariables(), core.autovars.NTupleObjectType::allVars(), 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(), python.rootplot.utilities.Hist::TGraph(), python.rootplot.utilities.Hist::TH1F(), Vispa.Views.PropertyView.Property::valueChanged(), counter.Counter::write(), and average.Average::write().

std::vector<VolumeSide> MagCylinder::theFaces
private

Definition at line 35 of file MagCylinder.h.

Referenced by faces().

Scalar MagCylinder::theInnerR
private

Definition at line 38 of file MagCylinder.h.

Referenced by inside(), and MagCylinder().

Scalar MagCylinder::theOuterR
private

Definition at line 39 of file MagCylinder.h.

Referenced by inside(), and MagCylinder().

Scalar MagCylinder::theZmax
private

Definition at line 37 of file MagCylinder.h.

Referenced by inside(), and MagCylinder().

Scalar MagCylinder::theZmin
private

Definition at line 36 of file MagCylinder.h.

Referenced by inside(), and MagCylinder().