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 //@@ Default behaviour: make measurement
22 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
24 
25 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
26 //@@ Make measurement as distance to previous object 'screen'
27 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
29  const OpticalObject* opto_prev = meas.getPreviousOptO(this);
30  CLHEP::Hep3Vector dm_centre = centreGlob();
31  dm_centre -= opto_prev->centreGlob();
32  if (ALIUtils::debug >= 4) {
33  std::cout << "OptO " << name() << std::endl;
34  ALIUtils::dump3v(centreGlob(), " centre Glob ");
35  std::cout << "OptO " << opto_prev->name() << std::endl;
36  ALIUtils::dump3v(opto_prev->centreGlob(), " previous OptO centre Glob ");
37  ALIUtils::dump3v(dm_centre, " distance std::vector");
38  }
39 
40  meas.setValueSimulated(0, dm_centre.mag());
41  if (ALIUtils::debug >= 1) {
42  std::cout << "SIMU value: D: " << meas.valueSimulated(0) * 1000. << " (mm) " << (this)->name() << std::endl;
43  std::cout << "REAL value: D: " << meas.value()[0] * 1000. << " (mm) " << (this)->name() << std::endl;
44  }
45 }
46 
47 #ifdef COCOA_VIS
48 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
50  //- std::cout << " filling optosensor " << std::endl;
51  ALIVRMLMgr& vrmlmgr = ALIVRMLMgr::getInstance();
52  vrmlmgr.AddBox(*this, 1., .2, .2);
53  vrmlmgr.SendReferenceFrame(*this, 1.);
54  vrmlmgr.SendName(*this, 0.01);
55 }
56 
57 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
59  ALIColour* col = new ALIColour(1., 0., 1., 0.);
60  std::vector<ALIdouble> spar;
61  spar.push_back(1.);
62  spar.push_back(3.);
63  CLHEP::HepRotation rm;
64  rm.rotateX(90. * deg);
65  IgCocoaFileMgr::getInstance().addSolid(*this, "CYLINDER", spar, col, CLHEP::Hep3Vector(), rm);
66 }
67 #endif
68 
69 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
71  ALIdouble go;
73  gomgr->getGlobalOptionValue("VisScale", go);
74 
76  "Tubs", go * 0. * cm / m, go * 2. * cm / m, go * 5. * cm / m); //COCOA internal units are meters
77 }
def rm(path, rec=False)
Definition: eostools.py:363
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:75
long double ALIdouble
Definition: CocoaGlobals.h:11
void makeMeasurement(LightRay &lightray, Measurement &meas) override
CocoaSolidShape * theSolidShape
const ALIdouble * value() const
Definition: Measurement.h:109
const OpticalObject * getPreviousOptO(const OpticalObject *Popto) const
Definition: Measurement.cc:584
virtual void fillVRML()
Definition: OpticalObject.h:54
static ALIint debug
Definition: ALIUtils.h:34
const ALIstring & name() const
Definition: OpticalObject.h:58
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
const ALIdouble valueSimulated(ALIuint ii) const
Definition: Measurement.h:105
void setValueSimulated(ALIint coor, ALIdouble value)
Definition: Measurement.h:146
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:58
virtual void fillIguana()
Definition: OpticalObject.h:55
void constructSolidShape() override
Measurement * meas()
col
Definition: cuy.py:1009