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/SystemOfUnits.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  go * 0. * CLHEP::cm / CLHEP::m,
66  go * 1. * CLHEP::cm / CLHEP::m,
67  go * 1. * CLHEP::cm / CLHEP::m); //COCOA internal units are meters
68 }
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 constructSolidShape() override
Definition: OptOPinhole.cc:59
CocoaSolidShape * theSolidShape
static ALIint debug
Definition: ALIUtils.h:34
const ALIstring & name() const
Definition: OpticalObject.h:58
static GlobalOptionMgr * getInstance()
void setDirection(const CLHEP::Hep3Vector &direc)
Definition: LightRay.h:62
int getGlobalOptionValue(const ALIstring &sstr, ALIdouble &val)
--— Search a string in theGlobalOptions and return 1 if found
void setPoint(const CLHEP::Hep3Vector &point)
Definition: LightRay.h:63
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:374
const CLHEP::Hep3Vector & point() const
Definition: LightRay.h:57
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:58
virtual void fillIguana()
Definition: OpticalObject.h:55
void defaultBehaviour(LightRay &lightray, Measurement &meas) override
Definition: OptOPinhole.cc:25
col
Definition: cuy.py:1009
static std::string const source
Definition: EdmProvDump.cc:49