Go to the documentation of this file.
10 #ifndef _OPTICALOBJECT_HH
11 #define _OPTICALOBJECT_HH
26 #include "CLHEP/Vector/ThreeVector.h"
27 #include "CLHEP/Vector/Rotation.h"
85 const CLHEP::HepRotation
rmLocal()
const;
105 const CLHEP::HepRotation& rmoriorinew);
144 CLHEP::Hep3Vector ZAxis(0., 0., 1.);
145 CLHEP::HepRotation rmt =
rmGlob();
203 const std::vector<Entry*>& entries)
const;
206 const std::vector<Entry*>& entries)
const;
207 double diff2pi(
double ang1,
double ang2);
208 bool eq2ang(
double ang1,
double ang2);
double diff2pi(double ang1, double ang2)
void setType(const ALIstring &type)
virtual void fastDeviatesLightRay(LightRay &lightray)
void SetCentreLocalFromEntryValues()
void displaceCentreGlob(const XYZcoor coor, const ALIdouble disp)
void readCoordinates(const ALIstring &coor_type_read, const ALIstring &coor_type_expected, ALIFileIn &filein)
virtual void constructSolidShape()
virtual void constructMaterial()
const CLHEP::HepRotation & rmGlobOriginalOriginal() const
void displaceExtraEntryOriginalOriginal(const ALIuint entryNo, const ALIdouble disp)
void buildWordList(const Entry *entry, std::vector< ALIstring > &wordlist)
void setRmGlobalOriginal(const CLHEP::HepRotation &rm)
void addExtraEntryToList(Entry *entry)
void setGlobalCoordinates()
const ALIint extraEntryNo(const ALIstring &entry_name) const
std::vector< ALIdouble > theExtraEntryValueOriginalVector
const ALIstring longName() const
const ALIdouble findExtraEntryValue(const ALIstring &eename) const
CocoaSolidShape * getSolidShape() const
void setCmsswID(ALIuint id)
void resetGlobalCoordinates()
void SetAnglesIsGlobal(ALIbool isG)
void readExtraEntries(ALIFileIn &filein)
const double getEntryRMangle(const XYZcoor coor) const
void transformGlobal2Local()
CLHEP::Hep3Vector axisZLocalInGlobal
std::vector< Entry * > theExtraEntryVector
void calculateLocalRotationAxisInGlobal()
const ALIstring & name() const
const CLHEP::Hep3Vector & centreGlobal() const
const ALIbool findExtraEntryValueIfExists(const ALIstring &eename, ALIdouble &value) const
void displaceRmGlobAroundLocal(OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
std::vector< double > getRotationAnglesInOptOFrame(const OpticalObject *optoAncestor, const std::vector< Entry * > &entries) const
void propagateGlobalRMOriginalOriginalChangeToChildren(const CLHEP::HepRotation &rmorioriold, const CLHEP::HepRotation &rmoriorinew)
CocoaSolidShape * theSolidShape
CLHEP::Hep3Vector getDisplacementInLocalCoordinates(const XYZcoor coor, const ALIdouble disp)
const std::vector< ALIdouble > & ExtraEntryValueOriginalList()
void readData(ALIFileIn &filein)
int checkMatrixEquations(double angleX, double angleY, double angleZ, CLHEP::HepRotation *rot=nullptr)
bool eq2ang(double ang1, double ang2)
const CLHEP::Hep3Vector & centreGlob() const
void addExtraEntryValueOriginalToList(ALIdouble entry_value)
const ALIstring & type() const
std::vector< ALIdouble > & ExtraEntryValueList()
CLHEP::Hep3Vector axisYLocalInGlobal
const CLHEP::HepRotation & rmGlob() const
void displaceCentreGlobOriginal(const XYZcoor coor, const ALIdouble disp)
const ALIstring shortName() const
std::vector< double > getLocalRotationAngles(const std::vector< Entry * > &entries) const
const double getEntryCentre(const XYZcoor coor) const
virtual void defaultBehaviour(LightRay &lightray, Measurement &meas)
const CLHEP::HepRotation rmLocal() const
std::vector< Entry * > theCoordinateEntryVector
void SetCentreGlobFromCentreLocal()
CLHEP::HepRotation buildRmFromEntryValuesOriginalOriginal()
CLHEP::Hep3Vector theCentreGlobOriginalOriginal
void setGlobalCoordinatesOfComponents()
void addExtraEntryValueOriginalOriginalToList(ALIdouble entry_value)
CLHEP::HepRotation theRmGlobOriginal
void displaceRmGlobOriginal(const OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
virtual void fastTraversesLightRay(LightRay &lightray)
CLHEP::Hep3Vector getDispVec(const XYZcoor coor, const ALIdouble disp)
virtual void makeMeasurement(LightRay &lightray, Measurement &meas)
void SetRMLocalFromEntryValues()
virtual void fillIguana()
std::vector< ALIdouble > theExtraEntryValueOriginalOriginalVector
std::vector< ALIstring > getCoordinateFromOptAlignParam(const OpticalAlignParam &oaParam)
CLHEP::Hep3Vector theCentreGlobOriginal
const std::vector< Entry * > & ExtraEntryList() const
Measurement * theCurrentMeas
const ALIuint getCmsswID() const
const CLHEP::Hep3Vector & centreGlobOriginalOriginal() const
void createComponentOptOsFromOptAlignInfo()
std::vector< ALIdouble > theExtraEntryValueVector
void constructFromOptAligInfo(const OpticalAlignInfo &oaInfo)
const OpticalObject * parent() const
double addPii(double val)
void resetOriginalOriginalCoordinates()
void SetRMGlobFromRMLocal()
CLHEP::HepRotation theRmGlob
void rotateItAroundGlobal(T &object, const XYZcoor coor, const double disp)
void setOriginalEntryValues()
void displaceRmGlobOriginalOriginal(const OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
const std::vector< Entry * > & CoordinateEntryList() const
void setExtraEntryValue(const ALIuint entryNo, const ALIdouble disp)
friend std::ostream & operator<<(std::ostream &os, const OpticalObject &c)
void transformCylindrical2Cartesian()
const std::vector< ALIdouble > & ExtraEntryValueOriginalOriginalList()
void transformSpherical2Cartesian()
virtual void fillExtraEntry(std::vector< ALIstring > &wordlist)
const ALIdouble findExtraEntryValueMustExist(const ALIstring &eename) const
virtual void detailedTraversesLightRay(LightRay &lightray)
void fillCoordinateEntry(const ALIstring &coor_name, const std::vector< ALIstring > &wordlist)
void SetCentreIsGlobal(ALIbool isG)
CocoaMaterialElementary * theMaterial
virtual void participateInMeasurement(LightRay &lightray, Measurement &meas, const ALIstring &behav)
virtual void userDefinedBehaviour(LightRay &lightray, Measurement &meas, const ALIstring &behav)
OpticalObject * theParent
void displaceExtraEntryOriginal(const ALIuint entryNo, const ALIdouble disp)
void SetRMGlobFromRMLocalOriginalOriginal(const CLHEP::HepRotation &rmoriori)
void addCoordinateEntryToList(Entry *entry)
const CLHEP::HepRotation & rmGlobOriginal() const
std::vector< double > getRotationAnglesFromMatrix(CLHEP::HepRotation &rmLocal, const std::vector< Entry * > &entries) const
CocoaMaterialElementary * getMaterial() const
void displaceExtraEntry(const ALIuint entryNo, const ALIdouble disp)
const CLHEP::Hep3Vector & centreGlobOriginal() const
CLHEP::Hep3Vector theCentreGlob
ALIPlane getPlate(const ALIbool forwardPlate, const ALIbool applyWedge)
virtual void detailedDeviatesLightRay(LightRay &lightray)
void displaceCentreGlobOriginalOriginal(const XYZcoor coor, const ALIdouble disp)
void displaceRmGlobAroundGlobal(OpticalObject *opto1stRotated, const XYZcoor coor, const ALIdouble disp)
void setGlobalRMOriginalOriginal(const CLHEP::HepRotation &rmoriori)
void setRmGlobal(const CLHEP::HepRotation &rm)
CLHEP::Hep3Vector axisXLocalInGlobal
const CLHEP::Hep3Vector centreLocal() const
void createComponentOptOs(ALIFileIn &filein)
void setMeas(Measurement *meas)
set current measurement
void addExtraEntryValueToList(ALIdouble entry_value)
double approxTo0(double val)
CLHEP::Hep3Vector getZAxis()
CLHEP::HepRotation theRmGlobOriginalOriginal
OpticalObject * createNewOptO(OpticalObject *parent, ALIstring optoType, ALIstring optoName, ALIbool fcopyComponents)