CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions
OptODistancemeter Class Reference

#include <OptODistancemeter.h>

Inheritance diagram for OptODistancemeter:
OpticalObject

Public Member Functions

void constructSolidShape ()
 
virtual void defaultBehaviour (LightRay &lightray, Measurement &meas)
 
virtual void makeMeasurement (LightRay &lightray, Measurement &meas)
 
 OptODistancemeter ()
 
 OptODistancemeter (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data)
 
 ~OptODistancemeter ()
 
- 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 detailedDeviatesLightRay (LightRay &lightray)
 
virtual void detailedTraversesLightRay (LightRay &lightray)
 
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 fastDeviatesLightRay (LightRay &lightray)
 
virtual void fastTraversesLightRay (LightRay &lightray)
 
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
 
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 OptODistancemeter.h.

Constructor & Destructor Documentation

OptODistancemeter::OptODistancemeter ( )
inline

Definition at line 23 of file OptODistancemeter.h.

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

Definition at line 24 of file OptODistancemeter.h.

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

Definition at line 26 of file OptODistancemeter.h.

26 { };

Member Function Documentation

void OptODistancemeter::constructSolidShape ( )
virtual

Reimplemented from OpticalObject.

Definition at line 110 of file OptODistancemeter.cc.

References GlobalOptionMgr::getGlobalOptionValue(), GlobalOptionMgr::getInstance(), contentValuesFiles::m, and OpticalObject::theSolidShape.

111 {
112  ALIdouble go;
114  gomgr->getGlobalOptionValue("VisScale", go );
115 
116  theSolidShape = new CocoaSolidShapeTubs( "Tubs", go*0.*cm/m, go*2.*cm/m, go*5.*cm/m ); //COCOA internal units are meters
117 }
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 OptODistancemeter::defaultBehaviour ( LightRay lightray,
Measurement meas 
)
virtual

Reimplemented from OpticalObject.

Definition at line 24 of file OptODistancemeter.cc.

References makeMeasurement().

25 {
26  makeMeasurement( lightray, meas);
27 
28 }
virtual void makeMeasurement(LightRay &lightray, Measurement &meas)
void OptODistancemeter::makeMeasurement ( LightRay lightray,
Measurement meas 
)
virtual

Reimplemented from OpticalObject.

Definition at line 34 of file OptODistancemeter.cc.

References OpticalObject::centreGlob(), gather_cfg::cout, ALIUtils::debug, ALIUtils::dump3v(), Measurement::getPreviousOptO(), ALILine::intersect(), OpticalObject::name(), OpticalObject::rmGlob(), Measurement::setValueSimulated(), Measurement::value(), and Measurement::valueSimulated().

Referenced by defaultBehaviour().

35 {
36  const OpticalObject* opto_prev = meas.getPreviousOptO( this );
37  CLHEP::Hep3Vector dm_centre = centreGlob();
38  CLHEP::Hep3Vector ZAxis(0.,0.,1.);
39  CLHEP::HepRotation rmt = rmGlob();
40  ZAxis = rmt * ZAxis;
41 
42  //----- intersect z of distancemeter with distance target
43  ALILine dm_line( centreGlob(), ZAxis );
44 
45  CLHEP::Hep3Vector ZAxisdt(0.,0.,1.);
46  CLHEP::HepRotation rmtdt = opto_prev->rmGlob();
47  ZAxisdt = rmtdt * ZAxisdt;
48  ALIPlane dt_plane( opto_prev->centreGlob(), ZAxisdt );
49 
50  if(ALIUtils::debug >= 3) {
51  ALIUtils::dump3v( dm_centre, "distancemeter centre");
52  ALIUtils::dump3v( ZAxis, "distancemeter direc");
53  ALIUtils::dump3v( opto_prev->centreGlob(),"distance_target centre");
54  ALIUtils::dump3v( ZAxisdt,"distance_target direc");
55  }
56 
57  CLHEP::Hep3Vector inters = dm_line.intersect( dt_plane );
58 
59  dm_centre = inters - dm_centre;
60  if (ALIUtils::debug >= 4) {
61  std::cout << "OptO dm" << name() << dm_line << std::endl;
62  // ALIUtils::dump3v( centreGlob(), " centre Glob ");
63  std::cout << "OptO dt" << opto_prev->name() << std::endl;
64  ALIUtils::dump3v( opto_prev->centreGlob(), " previous OptO centre Glob ");
65  ALIUtils::dump3v( inters, " intersection with target ");
66  ALIUtils::dump3v( dm_centre, " distance std::vector");
67  }
68  ALIdouble proj = dm_centre*ZAxis;
69 
70  //- ALIUtils::dump3v( ZAxis, " zaxis ");
71  //- std::cout << " proj " << proj << std::endl;
72 
73  meas.setValueSimulated (0 , proj );
74  if (ALIUtils::debug >= 1) {
75  std::cout << "SIMU value: D: " << meas.valueSimulated(0)*1000.
76  << " (mm) " << (this)->name() << std::endl;
77  std::cout << "REAL value: D: " << meas.value()[0]*1000.
78  << " (mm) " << (this)->name() << std::endl;
79  }
80 }
long double ALIdouble
Definition: CocoaGlobals.h:11
static ALIint debug
Definition: ALIUtils.h:35
const CLHEP::HepRotation & rmGlob() const
void setValueSimulated(ALIint coor, ALIdouble value)
Definition: Measurement.h:196
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:61
const OpticalObject * getPreviousOptO(const OpticalObject *Popto) const
Definition: Measurement.cc:608
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:85
const ALIdouble * value() const
Definition: Measurement.h:125
const ALIdouble valueSimulated(ALIuint ii) const
Definition: Measurement.h:117
tuple cout
Definition: gather_cfg.py:121
const ALIstring & name() const
Definition: OpticalObject.h:60