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