|
void | constructSolidShape () override |
|
ALIdouble * | convertPointToLocalCoordinates (const CLHEP::Hep3Vector &point) |
|
void | defaultBehaviour (LightRay &lightray, Measurement &meas) override |
|
void | fastTraversesLightRay (LightRay &lightray) override |
|
void | makeMeasurement (LightRay &lightray, Measurement &meas) override |
|
| OptOCOPS () |
|
| OptOCOPS (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data) |
|
| ~OptOCOPS () override |
|
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=nullptr) |
|
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 CLHEP::Hep3Vector &dispVec) |
|
void | displaceCentreGlob (const XYZcoor coor, const ALIdouble disp) |
|
void | displaceCentreGlobOriginal (const CLHEP::Hep3Vector &dispVec) |
|
void | displaceCentreGlobOriginal (const XYZcoor coor, const ALIdouble disp) |
|
void | displaceCentreGlobOriginalOriginal (const CLHEP::Hep3Vector &dispVec) |
|
void | displaceCentreGlobOriginalOriginal (const XYZcoor coor, const ALIdouble disp) |
|
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 | 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< ALIstring > | getCoordinateFromOptAlignParam (const OpticalAlignParam &oaParam) |
|
CLHEP::Hep3Vector | getDisplacementInLocalCoordinates (const XYZcoor coor, const ALIdouble disp) |
|
const double | getEntryCentre (const ALIstring &coor) const |
|
const double | getEntryCentre (const XYZcoor coor) const |
|
const double | getEntryRMangle (const ALIstring &coor) const |
|
const double | getEntryRMangle (const XYZcoor coor) const |
|
std::vector< double > | getLocalRotationAngles (const std::vector< Entry * > &entries) const |
|
CocoaMaterialElementary * | getMaterial () 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 |
|
CocoaSolidShape * | getSolidShape () const |
|
CLHEP::Hep3Vector | getZAxis () |
|
const ALIuint | ID () const |
|
const ALIstring | longName () const |
|
Measurement * | meas () |
|
const ALIstring & | name () const |
|
| OpticalObject () |
|
| OpticalObject (OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data) |
|
const OpticalObject * | parent () 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 ALIstring & | type () const |
|
virtual void | userDefinedBehaviour (LightRay &lightray, Measurement &meas, const ALIstring &behav) |
|
virtual | ~OpticalObject () |
|
Definition at line 20 of file OptOCOPS.h.
Reimplemented from OpticalObject.
Definition at line 42 of file OptOCOPS.cc.
44 std::cout <<
"***** OptOCOPS::makeMeasurement(lightray, meas) " << std::endl;
53 CLHEP::HepRotation rmt =
rmGlob();
54 dowel1 = rmt * dowel1;
63 CLHEP::Hep3Vector line_dowel21 = (dowel1 - dowel2);
64 CLHEP::Hep3Vector ZAxis(0., 0, 1.);
66 CLHEP::Hep3Vector line_dowel21_perp = ZAxis.cross(line_dowel21);
76 CCDlength = 2048 * 14 * 1.E-6;
82 std::cout << std::endl <<
"***** UP CCD *****" << std::endl <<
"******************" << std::endl << std::endl;
87 posY = CCDlength + 0.004;
89 CLHEP::Hep3Vector posxy(
posX,
posY, 0);
91 std::cout <<
" %%%% CCD distances to Dowel2: " << std::endl;
93 std::cout <<
" up ccd in local RF " << posxy << std::endl;
96 std::cout <<
" up ccd in global RF " << posxy << std::endl;
99 ALILine upCCD(dowel2 + posxy, line_dowel21);
103 std::cout << std::endl <<
"***** DOWN CCD *****" << std::endl <<
"********************" << std::endl << std::endl;
108 posxy = CLHEP::Hep3Vector(
posX,
posY, 0);
110 std::cout <<
" down ccd in local RF " << posxy << std::endl;
113 std::cout <<
" down ccd in global RF " << posxy << std::endl;
117 ALILine downCCD(dowel2 + posxy, line_dowel21);
123 std::cout << std::endl <<
"***** LEFT CCD *****" << std::endl <<
"********************" << std::endl << std::endl;
127 posX = -CCDlength - 0.002;
129 posxy = CLHEP::Hep3Vector(
posX,
posY, 0);
131 std::cout <<
" left ccd in local RF " << posxy << std::endl;
134 std::cout <<
" left ccd in global RF " << posxy << std::endl;
138 ALILine leftCCD(dowel2 + posxy, -line_dowel21_perp);
143 std::cout << std::endl <<
"***** RIGHT CCD *****" << std::endl <<
"*********************" << std::endl << std::endl;
149 posxy = CLHEP::Hep3Vector(
posX,
posY, 0);
151 std::cout <<
" right ccd in local RF " << posxy << std::endl;
154 std::cout <<
" right ccd in global RF " << posxy << std::endl << std::endl;
158 ALILine rightCCD(dowel2 + posxy, -line_dowel21_perp);
162 std::cout <<
" %%% Positions of CCDs in global RF: " << std::endl << std::endl;
163 std::cout <<
" upCCD: " << upCCD << std::endl;
164 std::cout <<
" downCCD: " << downCCD << std::endl;
165 std::cout <<
" leftCCD: " << leftCCD << std::endl;
166 std::cout <<
" rightCCD: " << rightCCD << std::endl << std::endl;
171 std::cout <<
" %%% Intersecting x-hair laser with COPS: " << std::endl;
174 CLHEP::Hep3Vector inters = lightray.
point();
181 std::cout <<
"1. Get the OptO x-hair laser from the measurement list of OptOs" << std::endl;
186 std::cout <<
"2. Get the Y of the laser and project it on the COPS" << std::endl;
187 CLHEP::Hep3Vector YAxis_xhair(0., 1., 0.);
188 const CLHEP::HepRotation& rmtx = xhairOptO->
rmGlob();
189 YAxis_xhair = rmtx * YAxis_xhair;
190 ALILine Yline_xhair(inters, copsPlane.project(YAxis_xhair));
192 std::cout <<
" %%%% Projecting x-hair laser on COPS: " << std::endl;
194 std::cout <<
" Y line of laser projected on COPS " << Yline_xhair << std::endl;
198 std::cout <<
" 3. Get the X of the laser (correct it if cross is not 90o) and project it on the COPS" << std::endl;
204 CLHEP::Hep3Vector XAxis_xhair = YAxis_xhair;
207 ZAxis = CLHEP::Hep3Vector(0., 0., 1.);
208 ZAxis = rmtx * ZAxis;
209 XAxis_xhair.rotate(anglebx, ZAxis);
210 ALILine Xline_xhair(inters, copsPlane.project(XAxis_xhair));
212 std::cout <<
"angleBetweenAxis = " << anglebx << std::endl;
214 std::cout <<
" X line of laser projected on COPS " << Xline_xhair << std::endl;
219 std::cout <<
" Getting measurements as intersection with four CCDs: " << std::endl;
222 std::cout <<
"intersecting with upCCD " << std::endl;
228 std::cout <<
"$@S@ measv[0][0] upccd " << std::endl;
231 std::cout <<
"$@$@ measv[0][1] upccd " << std::endl;
236 std::cout <<
"intersecting with downCCD " << std::endl;
243 std::cout <<
"intersecting with leftCCD " << std::endl;
247 std::cout <<
"intersecting with rightCCD " << std::endl;
282 ALIstring measNames[4] = {
"up",
"down",
"left",
"right"};
286 <<
"--> Now comparing measurement in ccds by x and y laser lines (will always choose the smaller one) "
290 for (
ii = 0;
ii < 4;
ii++) {
309 std::cout <<
" --> Swapping for " << measv[
ii][1] <<
"(inf)" << std::endl;
326 std::cout <<
"***** OptOCOPS::makeMeasurement - identify pathological cases U and D intersected by same line"
329 for (
ii = 0;
ii < 4;
ii++) {
333 if (xlaserDir[0] ^ xlaserDir[1]) {
334 std::cerr <<
"!!EXITING up and down CCDs intersected by different x-laser line " << xlaserDir[0] <<
" "
335 << xlaserDir[1] << std::endl;
338 if (xlaserDir[2] ^ xlaserDir[3]) {
339 std::cerr <<
"!!EXITING right and left CCDs intersected by different x-laser line " << xlaserDir[0] <<
" "
340 << xlaserDir[1] << std::endl;
345 std::cout <<
"***** OptOCOPS::makeMeasurement - now output sim values" << std::endl;
367 << detU << chrg <<
" D: " << detD << chrg <<
" L: " << detL << chrg <<
" R: " << detR <<
" (mm) "
368 << (
this)->
name() << std::endl;
References funct::abs(), EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, gather_cfg::cout, ALIUtils::debug, ALIUtils::dump3v(), MillePedeFileConverter_cfg::e, beamvalidation::exit(), OpticalObject::findExtraEntryValueIfExists(), cuy::ii, LightRay::intersect(), edm::isNotFinite(), Skims_PA_cff::name, Measurement::OptOList(), LightRay::point(), RecoTauValidation_cfi::posX, RecoTauValidation_cfi::posY, ALIPlane::project(), OpticalObject::rmGlob(), Measurement::setValueSimulated(), Measurement::setXlaserLine(), Measurement::value(), Measurement::valueSimulated(), and Measurement::xlaserLine().