CMS 3D CMS Logo

List of all members | Public Member Functions
OptOPlateSplitter Class Reference

#include <OptOPlateSplitter.h>

Inheritance diagram for OptOPlateSplitter:
OpticalObject

Public Member Functions

void constructSolidShape ()
 
virtual void detailedDeviatesLightRay (LightRay &lightray)
 
virtual void detailedTraversesLightRay (LightRay &lightray)
 
virtual void fastDeviatesLightRay (LightRay &lightray)
 
virtual void fastTraversesLightRay (LightRay &lightray)
 
 OptOPlateSplitter ()
 
 OptOPlateSplitter (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data)
 
 ~OptOPlateSplitter ()
 
- Public Member Functions inherited from OpticalObject
void addCoordinateEntryToList (Entry *entry)
 
void addExtraEntryToList (Entry *entry)
 
void addExtraEntryValueOriginalOriginalToList (ALIdouble entry_value)
 
void addExtraEntryValueOriginalToList (ALIdouble entry_value)
 
void addExtraEntryValueToList (ALIdouble entry_value)
 
double addPii (double val)
 
double approxTo0 (double val)
 
CLHEP::HepRotation buildRmFromEntryValuesOriginalOriginal ()
 
const CLHEP::Hep3Vector & centreGlob () const
 
const CLHEP::Hep3Vector & centreGlobal () const
 
const CLHEP::Hep3Vector & centreGlobOriginal () const
 
const CLHEP::Hep3Vector & centreGlobOriginalOriginal () const
 
const CLHEP::Hep3Vector centreLocal () const
 
int checkMatrixEquations (double angleX, double angleY, double angleZ, CLHEP::HepRotation *rot=0)
 
void construct ()
 
void constructFromOptAligInfo (const OpticalAlignInfo &oaInfo)
 
virtual void constructMaterial ()
 
const std::vector< Entry * > & CoordinateEntryList () const
 
void createComponentOptOsFromOptAlignInfo ()
 
virtual void defaultBehaviour (LightRay &lightray, Measurement &meas)
 
double diff2pi (double ang1, double ang2)
 
void displaceCentreGlob (const XYZcoor coor, const ALIdouble disp)
 
void displaceCentreGlob (const CLHEP::Hep3Vector &dispVec)
 
void displaceCentreGlobOriginal (const XYZcoor coor, const ALIdouble disp)
 
void displaceCentreGlobOriginal (const CLHEP::Hep3Vector &dispVec)
 
void displaceCentreGlobOriginalOriginal (const XYZcoor coor, const ALIdouble disp)
 
void displaceCentreGlobOriginalOriginal (const CLHEP::Hep3Vector &dispVec)
 
void displaceExtraEntry (const ALIuint entryNo, const ALIdouble disp)
 
void displaceExtraEntryOriginal (const ALIuint entryNo, const ALIdouble disp)
 
void displaceExtraEntryOriginalOriginal (const ALIuint entryNo, const ALIdouble disp)
 
void displaceRmGlobAroundGlobal (OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
 
void displaceRmGlobAroundLocal (OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
 
void displaceRmGlobOriginal (const OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
 
void displaceRmGlobOriginalOriginal (const OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
 
bool eq2ang (double ang1, double ang2)
 
const std::vector< Entry * > & ExtraEntryList () const
 
const ALIint extraEntryNo (const ALIstring &entry_name) const
 
std::vector< ALIdouble > & ExtraEntryValueList ()
 
const std::vector< ALIdouble > & ExtraEntryValueOriginalList ()
 
const std::vector< ALIdouble > & ExtraEntryValueOriginalOriginalList ()
 
virtual void fillIguana ()
 
virtual void fillVRML ()
 
const ALIdouble findExtraEntryValue (const ALIstring &eename) const
 
const ALIbool findExtraEntryValueIfExists (const ALIstring &eename, ALIdouble &value) const
 
const ALIdouble findExtraEntryValueMustExist (const ALIstring &eename) const
 
const ALIuint getCmsswID () const
 
std::vector< ALIstringgetCoordinateFromOptAlignParam (const OpticalAlignParam &oaParam)
 
CLHEP::Hep3Vector getDisplacementInLocalCoordinates (const XYZcoor coor, const ALIdouble disp)
 
const double getEntryCentre (const XYZcoor coor) const
 
const double getEntryCentre (const ALIstring &coor) const
 
const double getEntryRMangle (const XYZcoor coor) const
 
const double getEntryRMangle (const ALIstring &coor) const
 
std::vector< double > getLocalRotationAngles (const std::vector< Entry * > &entries) const
 
CocoaMaterialElementarygetMaterial () const
 
ALIPlane getPlate (const ALIbool forwardPlate, const ALIbool applyWedge)
 
std::vector< double > getRotationAnglesFromMatrix (CLHEP::HepRotation &rmLocal, const std::vector< Entry * > &entries) const
 
std::vector< double > getRotationAnglesInOptOFrame (const OpticalObject *optoAncestor, const std::vector< Entry * > &entries) const
 
CocoaSolidShapegetSolidShape () const
 
CLHEP::Hep3Vector getZAxis ()
 
const ALIuint ID () const
 
const ALIstring longName () const
 
virtual void makeMeasurement (LightRay &lightray, Measurement &meas)
 
Measurementmeas ()
 
const ALIstringname () const
 
 OpticalObject ()
 
 OpticalObject (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data)
 
const OpticalObjectparent () const
 
virtual void participateInMeasurement (LightRay &lightray, Measurement &meas, const ALIstring &behav)
 
void propagateGlobalRMOriginalOriginalChangeToChildren (const CLHEP::HepRotation &rmorioriold, const CLHEP::HepRotation &rmoriorinew)
 
void resetGlobalCoordinates ()
 
void resetOriginalOriginalCoordinates ()
 
const CLHEP::HepRotation & rmGlob () const
 
const CLHEP::HepRotation & rmGlobOriginal () const
 
const CLHEP::HepRotation & rmGlobOriginalOriginal () const
 
const CLHEP::HepRotation rmLocal () const
 
void setCmsswID (ALIuint id)
 
void setExtraEntryValue (const ALIuint entryNo, const ALIdouble disp)
 
void setGlobalCoordinates ()
 
void setGlobalRMOriginalOriginal (const CLHEP::HepRotation &rmoriori)
 
void setID (ALIuint id)
 
void setMeas (Measurement *meas)
 set current measurement More...
 
void setOriginalEntryValues ()
 
void setRmGlobal (const CLHEP::HepRotation &rm)
 
void setRmGlobalOriginal (const CLHEP::HepRotation &rm)
 
void setType (const ALIstring &type)
 
const ALIstring shortName () const
 
const ALIstringtype () const
 
virtual void userDefinedBehaviour (LightRay &lightray, Measurement &meas, const ALIstring &behav)
 
virtual ~OpticalObject ()
 

Additional Inherited Members

- Protected Member Functions inherited from OpticalObject
virtual void fillExtraEntry (std::vector< ALIstring > &wordlist)
 
- Protected Attributes inherited from OpticalObject
CocoaMaterialElementarytheMaterial
 
CocoaSolidShapetheSolidShape
 
ALIint verbose
 

Detailed Description

Definition at line 18 of file OptOPlateSplitter.h.

Constructor & Destructor Documentation

OptOPlateSplitter::OptOPlateSplitter ( )
inline

Definition at line 23 of file OptOPlateSplitter.h.

23 { };
OptOPlateSplitter::OptOPlateSplitter ( OpticalObject parent,
const ALIstring type,
const ALIstring name,
const ALIbool  copy_data 
)
inline

Definition at line 24 of file OptOPlateSplitter.h.

24  :
25  OpticalObject( parent, type, name, copy_data){ };
type
Definition: HCALResponse.h:21
const ALIstring & name() const
Definition: OpticalObject.h:60
OptOPlateSplitter::~OptOPlateSplitter ( )
inline

Member Function Documentation

void OptOPlateSplitter::constructSolidShape ( )
virtual

Reimplemented from OpticalObject.

Definition at line 157 of file OptOPlateSplitter.cc.

References GlobalOptionMgr::getGlobalOptionValue(), GlobalOptionMgr::getInstance(), and funct::m.

Referenced by ~OptOPlateSplitter().

158 {
159  ALIdouble go;
161  gomgr->getGlobalOptionValue("VisScale", go );
162 
163  theSolidShape = new CocoaSolidShapeBox( "Box", go*5.*cm/m, go*5.*cm/m, go*1.*cm/m ); //COCOA internal units are meters
164 }
long double ALIdouble
Definition: CocoaGlobals.h:11
CocoaSolidShape * theSolidShape
static GlobalOptionMgr * getInstance()
int getGlobalOptionValue(const ALIstring &sstr, ALIdouble &val)
--— Search a string in theGlobalOptions and return 1 if found
void OptOPlateSplitter::detailedDeviatesLightRay ( LightRay lightray)
virtual

Reimplemented from OpticalObject.

Definition at line 26 of file OptOPlateSplitter.cc.

References gather_cfg::cout, ALIUtils::debug, ALIUtils::dump3v(), LightRay::dumpData(), dataset::name, and LightRay::reflect().

Referenced by ~OptOPlateSplitter().

27 {
28  if (ALIUtils::debug >= 2) std::cout << "LR: DETAILED REFLECTION IN PLATE SPLITTER " << name() << std::endl;
29  if (ALIUtils::debug >= 3) ALIUtils::dump3v( centreGlob(), " centre Global RF ");
30 
31  //---------- Get forward plate
32  ALIPlane plate = getPlate(1, 1);
33  //---------- Reflect
34  lightray.reflect( plate );
35  if (ALIUtils::debug >= 2) {
36  std::cout << "Reflected in plate" << std::endl;
37  lightray.dumpData(" ");
38  }
39 
40 }
static ALIint debug
Definition: ALIUtils.h:36
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:61
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:85
ALIPlane getPlate(const ALIbool forwardPlate, const ALIbool applyWedge)
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:382
const ALIstring & name() const
Definition: OpticalObject.h:60
void reflect(const ALIPlane &plane)
Definition: LightRay.cc:142
void OptOPlateSplitter::detailedTraversesLightRay ( LightRay lightray)
virtual

Reimplemented from OpticalObject.

Definition at line 51 of file OptOPlateSplitter.cc.

References gather_cfg::cout, ALIUtils::debug, LightRay::dumpData(), dataset::name, LightRay::refract(), and ApeEstimator_cff::width.

Referenced by ~OptOPlateSplitter().

52 {
53  if (ALIUtils::debug >= 2) std::cout << "LR: DETAILED TRAVERSE IN PLATE SPLITTER " << name() << std::endl;
54 
55  //---------- Get forward plate
56  ALIPlane plate = getPlate(1, 1);
57  //---------- If width is 0, just keep the same point
59  if( width == 0 ) {
60  if(ALIUtils::debug >= 3) lightray.dumpData("Traversed with 0 width");
61  return;
62  }
63 
64  //---------- Refract while entering splitter
65  ALIdouble refra_ind1 = 1.;
66  ALIdouble refra_ind2 = findExtraEntryValue("refra_ind");
67  lightray.refract( plate, refra_ind1, refra_ind2 );
68  if (ALIUtils::debug >= 2) {
69  lightray.dumpData("Refracted in first plate");
70  }
71 
72  //---------- Get backward plate
73  plate = getPlate(0, 1);
74  //---------- Refract while exiting splitter
75  lightray.refract( plate, refra_ind2, refra_ind1 );
76  if (ALIUtils::debug >= 2) {
77  lightray.dumpData("Refracted in first plate");
78  }
79 
80 }
long double ALIdouble
Definition: CocoaGlobals.h:11
void refract(const ALIPlane &plate, const ALIdouble refra_ind1, const ALIdouble refra_ind2)
Definition: LightRay.cc:163
static ALIint debug
Definition: ALIUtils.h:36
const ALIdouble findExtraEntryValue(const ALIstring &eename) const
ALIPlane getPlate(const ALIbool forwardPlate, const ALIbool applyWedge)
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:382
const ALIstring & name() const
Definition: OpticalObject.h:60
void OptOPlateSplitter::fastDeviatesLightRay ( LightRay lightray)
virtual

Reimplemented from OpticalObject.

Definition at line 90 of file OptOPlateSplitter.cc.

References gather_cfg::cout, ALIUtils::debug, LightRay::dumpData(), dataset::name, LightRay::reflect(), and LightRay::shiftAndDeviateWhileTraversing().

Referenced by ~OptOPlateSplitter().

91 {
92  if (ALIUtils::debug >= 2) std::cout << "LR: REFLECTION IN PLATE SPLITTER " << name() << std::endl;
93 
94  //---------- Get forward plate
95  ALIPlane plate = getPlate(1, 0);
96  //---------- Reflect in plate (including intersection with it)
97  lightray.reflect( plate );
98  if (ALIUtils::debug >= 2) {
99  lightray.dumpData("Reflected in plate");
100  }
101  //---------- Deviate Lightray
102  lightray.shiftAndDeviateWhileTraversing( this, 'R' );
103  if (ALIUtils::debug >= 2) {
104  lightray.dumpData("Deviated ");
105  }
106 
107 }
void shiftAndDeviateWhileTraversing(const OpticalObject *opto, char behav)
Definition: LightRay.cc:241
static ALIint debug
Definition: ALIUtils.h:36
ALIPlane getPlate(const ALIbool forwardPlate, const ALIbool applyWedge)
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:382
const ALIstring & name() const
Definition: OpticalObject.h:60
void reflect(const ALIPlane &plane)
Definition: LightRay.cc:142
void OptOPlateSplitter::fastTraversesLightRay ( LightRay lightray)
virtual

Reimplemented from OpticalObject.

Definition at line 119 of file OptOPlateSplitter.cc.

References cuy::col, gather_cfg::cout, ALIUtils::debug, LightRay::dumpData(), OpticalObject::fillIguana(), LightRay::intersect(), dataset::name, LightRay::shiftAndDeviateWhileTraversing(), and ApeEstimator_cff::width.

Referenced by ~OptOPlateSplitter().

120 {
121  if (ALIUtils::debug >= 2) std::cout << "LR: TRAVERSE PLATE SPLITTER " << name() << std::endl;
122 
123  //---------- Get backward plate
124  ALIPlane plate = getPlate(0, 0);
125  lightray.intersect( plate );
126  if (ALIUtils::debug >= 2) {
127  lightray.dumpData("Intersected with plate");
128  }
129  //---------- Shift and Deviate
130  lightray.shiftAndDeviateWhileTraversing( this, 'T' );
131  if (ALIUtils::debug >= 2) {
132  lightray.dumpData("Shifted and Deviated");
133  }
134 
135 }
void shiftAndDeviateWhileTraversing(const OpticalObject *opto, char behav)
Definition: LightRay.cc:241
static ALIint debug
Definition: ALIUtils.h:36
void intersect(const ALIPlane &plane)
Definition: LightRay.cc:101
ALIPlane getPlate(const ALIbool forwardPlate, const ALIbool applyWedge)
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:382
const ALIstring & name() const
Definition: OpticalObject.h:60