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 }
OpticalObject::meas
Measurement * meas()
Definition: OpticalObject.h:200
GlobalOptionMgr
Definition: GlobalOptionMgr.h:18
OpticalObject::name
const ALIstring & name() const
Definition: OpticalObject.h:58
GlobalOptionMgr::getInstance
static GlobalOptionMgr * getInstance()
Definition: GlobalOptionMgr.cc:18
cuy.col
col
Definition: cuy.py:1009
gather_cfg.cout
cout
Definition: gather_cfg.py:144
GlobalOptionMgr.h
GlobalOptionMgr::getGlobalOptionValue
int getGlobalOptionValue(const ALIstring &sstr, ALIdouble &val)
--— Search a string in theGlobalOptions and return 1 if found
Definition: GlobalOptionMgr.cc:115
OpticalObject::theSolidShape
CocoaSolidShape * theSolidShape
Definition: OpticalObject.h:315
OpticalObject
Definition: OpticalObject.h:35
Measurement::setValueSimulated
void setValueSimulated(ALIint coor, ALIdouble value)
Definition: Measurement.h:146
OpticalObject::centreGlob
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:75
CocoaSolidShapeTubs
Definition: CocoaSolidShapeTubs.h:14
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:79
ALIUtils::debug
static ALIint debug
Definition: ALIUtils.h:34
Measurement
Definition: Measurement.h:27
OpticalObject::fillIguana
virtual void fillIguana()
Definition: OpticalObject.h:55
OptODistancemeter3dim::constructSolidShape
void constructSolidShape() override
Definition: OptODistancemeter3dim.cc:70
Measurement.h
LightRay
Definition: LightRay.h:20
ALIdouble
long double ALIdouble
Definition: CocoaGlobals.h:11
OptODistancemeter3dim::defaultBehaviour
void defaultBehaviour(LightRay &lightray, Measurement &meas) override
Definition: OptODistancemeter3dim.cc:23
OptODistancemeter3dim::makeMeasurement
void makeMeasurement(LightRay &lightray, Measurement &meas) override
Definition: OptODistancemeter3dim.cc:28
eostools.rm
def rm(path, rec=False)
Definition: eostools.py:363
Measurement::valueSimulated
const ALIdouble valueSimulated(ALIuint ii) const
Definition: Measurement.h:105
ALIUtils::dump3v
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:58
CocoaSolidShapeTubs.h
OpticalObject::fillVRML
virtual void fillVRML()
Definition: OpticalObject.h:54
Measurement::value
const ALIdouble * value() const
Definition: Measurement.h:109
Measurement::getPreviousOptO
const OpticalObject * getPreviousOptO(const OpticalObject *Popto) const
Definition: Measurement.cc:584
OptODistancemeter3dim.h