CMS 3D CMS Logo

OptOPinhole.cc
Go to the documentation of this file.
1 // COCOA class implementation file
2 //Id: OptOPinhole.cc
3 //CAT: Model
4 //
5 // History: v1.0
6 // Pedro Arce
7 
11 #include <iostream>
12 #include <iomanip>
13 #ifdef COCOA_VIS
14 #include "Alignment/IgCocoaFileWriter/interface/IgCocoaFileMgr.h"
15 #include "Alignment/CocoaVisMgr/interface/ALIColour.h"
16 #endif
17 #include "CLHEP/Units/GlobalSystemOfUnits.h"
20 
21 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
22 //@@ Traverse pinhole
23 //@@ 1. the lightray direction is changed to the one that makes the ray traverse the pinhole
24 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
26  if (ALIUtils::debug >= 2)
27  std::cout << "LR: TRAVERSE PINHOLE " << name() << std::endl;
28 
29  //----------- Direction is the one that links the source and the pinhole
30  CLHEP::Hep3Vector source = lightray.point();
31  CLHEP::Hep3Vector pinhole = centreGlob();
32  lightray.setDirection(pinhole - source);
33  lightray.setPoint(pinhole);
34 
35  if (ALIUtils::debug >= 4) {
36  ALIUtils::dump3v(source, " source centre ");
37  ALIUtils::dump3v(pinhole, " pinhole centre ");
38  }
39  if (ALIUtils::debug >= 3) {
40  lightray.dumpData("lightray at pinhole ");
41  }
42 }
43 
44 #ifdef COCOA_VIS
45 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
47  ALIColour* col = new ALIColour(1., 1., 1., 0.);
48  std::vector<ALIdouble> spar;
49  spar.push_back(0.2);
50  spar.push_back(0.5);
51  CLHEP::HepRotation rm;
52  rm.rotateX(90. * deg);
53  IgCocoaFileMgr::getInstance().addSolid(*this, "CYLINDER", spar, col, CLHEP::Hep3Vector(), rm);
54 }
55 
56 #endif
57 
58 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
60  ALIdouble go;
62  gomgr->getGlobalOptionValue("VisScale", go);
63 
65  "Tubs", go * 0. * cm / m, go * 1. * cm / m, go * 1. * cm / m); //COCOA internal units are meters
66 }
LightRay::dumpData
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:374
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
LightRay.h
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:78
LightRay::point
const CLHEP::Hep3Vector & point() const
Definition: LightRay.h:57
ALIUtils::debug
static ALIint debug
Definition: ALIUtils.h:34
source
static const std::string source
Definition: EdmProvDump.cc:47
Measurement
Definition: Measurement.h:27
OpticalObject::fillIguana
virtual void fillIguana()
Definition: OpticalObject.h:55
Measurement.h
LightRay
Definition: LightRay.h:20
ALIdouble
long double ALIdouble
Definition: CocoaGlobals.h:11
LightRay::setPoint
void setPoint(const CLHEP::Hep3Vector &point)
Definition: LightRay.h:63
eostools.rm
def rm(path, rec=False)
Definition: eostools.py:363
OptOPinhole::defaultBehaviour
void defaultBehaviour(LightRay &lightray, Measurement &meas) override
Definition: OptOPinhole.cc:25
LightRay::setDirection
void setDirection(const CLHEP::Hep3Vector &direc)
Definition: LightRay.h:62
ALIUtils::dump3v
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:58
CocoaSolidShapeTubs.h
OptOPinhole::constructSolidShape
void constructSolidShape() override
Definition: OptOPinhole.cc:59
OptOPinhole.h