#include <OptODistancemeter.h>
Public Member Functions | |
void | constructSolidShape () |
virtual void | defaultBehaviour (LightRay &lightray, Measurement &meas) |
virtual void | makeMeasurement (LightRay &lightray, Measurement &meas) |
OptODistancemeter (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data) | |
OptODistancemeter () | |
~OptODistancemeter () |
Definition at line 18 of file OptODistancemeter.h.
OptODistancemeter::OptODistancemeter | ( | ) | [inline] |
Definition at line 23 of file OptODistancemeter.h.
{ };
OptODistancemeter::OptODistancemeter | ( | OpticalObject * | parent, |
const ALIstring & | type, | ||
const ALIstring & | name, | ||
const ALIbool | copy_data | ||
) | [inline] |
Definition at line 24 of file OptODistancemeter.h.
: OpticalObject( parent, type, name, copy_data){ };
OptODistancemeter::~OptODistancemeter | ( | ) | [inline] |
Definition at line 26 of file OptODistancemeter.h.
{ };
void OptODistancemeter::constructSolidShape | ( | ) | [virtual] |
Reimplemented from OpticalObject.
Definition at line 110 of file OptODistancemeter.cc.
References GlobalOptionMgr::getGlobalOptionValue(), GlobalOptionMgr::getInstance(), m, and OpticalObject::theSolidShape.
{ ALIdouble go; GlobalOptionMgr* gomgr = GlobalOptionMgr::getInstance(); gomgr->getGlobalOptionValue("VisScale", go ); theSolidShape = new CocoaSolidShapeTubs( "Tubs", go*0.*cm/m, go*2.*cm/m, go*5.*cm/m ); //COCOA internal units are meters }
void OptODistancemeter::defaultBehaviour | ( | LightRay & | lightray, |
Measurement & | meas | ||
) | [virtual] |
Reimplemented from OpticalObject.
Definition at line 24 of file OptODistancemeter.cc.
References makeMeasurement().
{ makeMeasurement( lightray, 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().
{ const OpticalObject* opto_prev = meas.getPreviousOptO( this ); CLHEP::Hep3Vector dm_centre = centreGlob(); CLHEP::Hep3Vector ZAxis(0.,0.,1.); CLHEP::HepRotation rmt = rmGlob(); ZAxis = rmt * ZAxis; //----- intersect z of distancemeter with distance target ALILine dm_line( centreGlob(), ZAxis ); CLHEP::Hep3Vector ZAxisdt(0.,0.,1.); CLHEP::HepRotation rmtdt = opto_prev->rmGlob(); ZAxisdt = rmtdt * ZAxisdt; ALIPlane dt_plane( opto_prev->centreGlob(), ZAxisdt ); if(ALIUtils::debug >= 3) { ALIUtils::dump3v( dm_centre, "distancemeter centre"); ALIUtils::dump3v( ZAxis, "distancemeter direc"); ALIUtils::dump3v( opto_prev->centreGlob(),"distance_target centre"); ALIUtils::dump3v( ZAxisdt,"distance_target direc"); } CLHEP::Hep3Vector inters = dm_line.intersect( dt_plane ); dm_centre = inters - dm_centre; if (ALIUtils::debug >= 4) { std::cout << "OptO dm" << name() << dm_line << std::endl; // ALIUtils::dump3v( centreGlob(), " centre Glob "); std::cout << "OptO dt" << opto_prev->name() << std::endl; ALIUtils::dump3v( opto_prev->centreGlob(), " previous OptO centre Glob "); ALIUtils::dump3v( inters, " intersection with target "); ALIUtils::dump3v( dm_centre, " distance std::vector"); } ALIdouble proj = dm_centre*ZAxis; //- ALIUtils::dump3v( ZAxis, " zaxis "); //- std::cout << " proj " << proj << std::endl; meas.setValueSimulated (0 , proj ); if (ALIUtils::debug >= 1) { std::cout << "SIMU value: D: " << meas.valueSimulated(0)*1000. << " (mm) " << (this)->name() << std::endl; std::cout << "REAL value: D: " << meas.value()[0]*1000. << " (mm) " << (this)->name() << std::endl; } }