CMS 3D CMS Logo

OptODistancemeter3dim.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: OptODistancemeter3dim.cc
3 //CAT: Model
4 //
5 // History: v1.0
6 // Pedro Arce
7 
10 #include <iostream>
11 #include <iomanip>
12 #ifdef COCOA_VIS
13 #include "Alignment/CocoaVisMgr/interface/ALIVRMLMgr.h"
14 #include "Alignment/IgCocoaFileWriter/interface/IgCocoaFileMgr.h"
15 #endif
16 #include "CLHEP/Units/GlobalSystemOfUnits.h"
19 
20 
21 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
22 //@@ Default behaviour: make measurement
23 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
25 {
26  makeMeasurement( lightray, meas);
27 
28 }
29 
30 
31 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
32 //@@ Make measurement as distance to previous object 'screen'
33 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
35 {
36  const OpticalObject* opto_prev = meas.getPreviousOptO( this );
37  CLHEP::Hep3Vector dm_centre = centreGlob();
38  dm_centre -= opto_prev->centreGlob();
39  if (ALIUtils::debug >= 4) {
40  std::cout << "OptO " << name() << std::endl;
41  ALIUtils::dump3v( centreGlob(), " centre Glob ");
42  std::cout << "OptO " << opto_prev->name() << std::endl;
43  ALIUtils::dump3v( opto_prev->centreGlob(), " previous OptO centre Glob ");
44  ALIUtils::dump3v( dm_centre, " distance std::vector");
45  }
46 
47  meas.setValueSimulated (0 , dm_centre.mag() );
48  if (ALIUtils::debug >= 1) {
49  std::cout << "SIMU value: D: " << meas.valueSimulated(0)*1000.
50  << " (mm) " << (this)->name() << std::endl;
51  std::cout << "REAL value: D: " << meas.value()[0]*1000.
52  << " (mm) " << (this)->name() << std::endl;
53  }
54 }
55 
56 
57 #ifdef COCOA_VIS
58 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
60 {
61  //- std::cout << " filling optosensor " << std::endl;
62  ALIVRMLMgr& vrmlmgr = ALIVRMLMgr::getInstance();
63  vrmlmgr.AddBox( *this, 1., .2, .2);
64  vrmlmgr.SendReferenceFrame( *this, 1.);
65  vrmlmgr.SendName( *this, 0.01 );
66 }
67 
68 
69 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
71 {
72  ALIColour* col = new ALIColour( 1., 0., 1., 0. );
73  std::vector<ALIdouble> spar;
74  spar.push_back(1.);
75  spar.push_back(3.);
76  CLHEP::HepRotation rm;
77  rm.rotateX( 90.*deg);
78  IgCocoaFileMgr::getInstance().addSolid( *this, "CYLINDER", spar, col, CLHEP::Hep3Vector(), rm);
79 }
80 #endif
81 
82 
83 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
85 {
86  ALIdouble go;
88  gomgr->getGlobalOptionValue("VisScale", go );
89 
90  theSolidShape = new CocoaSolidShapeTubs( "Tubs", go*0.*cm/m, go*2.*cm/m, go*5.*cm/m ); //COCOA internal units are meters
91 }
long double ALIdouble
Definition: CocoaGlobals.h:11
void makeMeasurement(LightRay &lightray, Measurement &meas) override
CocoaSolidShape * theSolidShape
virtual void fillVRML()
Definition: OpticalObject.h:55
static ALIint debug
Definition: ALIUtils.h:36
static GlobalOptionMgr * getInstance()
void defaultBehaviour(LightRay &lightray, Measurement &meas) override
int getGlobalOptionValue(const ALIstring &sstr, ALIdouble &val)
--— Search a string in theGlobalOptions and return 1 if found
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:609
virtual void fillIguana()
Definition: OpticalObject.h:56
void constructSolidShape() override
Measurement * meas()
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:85
const ALIdouble * value() const
Definition: Measurement.h:125
col
Definition: cuy.py:1008
const ALIdouble valueSimulated(ALIuint ii) const
Definition: Measurement.h:117
const ALIstring & name() const
Definition: OpticalObject.h:60
rm
Definition: submit.py:76