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 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
23 //@@ Traverse pinhole
24 //@@ 1. the lightray direction is changed to the one that makes the ray traverse the pinhole
25 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
27 {
28  if (ALIUtils::debug >= 2) std::cout << "LR: TRAVERSE PINHOLE " << name() << std::endl;
29 
30  //----------- Direction is the one that links the source and the pinhole
31  CLHEP::Hep3Vector source = lightray.point();
32  CLHEP::Hep3Vector pinhole = centreGlob();
33  lightray.setDirection( pinhole - source );
34  lightray.setPoint( pinhole );
35 
36  if (ALIUtils::debug >= 4) {
37  ALIUtils::dump3v( source, " source centre ");
38  ALIUtils::dump3v( pinhole, " pinhole centre ");
39  }
40  if (ALIUtils::debug >= 3) {
41  lightray.dumpData( "lightray at pinhole ");
42  }
43 
44 }
45 
46 
47 #ifdef COCOA_VIS
48 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
50 {
51  ALIColour* col = new ALIColour( 1., 1., 1., 0. );
52  std::vector<ALIdouble> spar;
53  spar.push_back(0.2);
54  spar.push_back(0.5);
55  CLHEP::HepRotation rm;
56  rm.rotateX( 90.*deg);
57  IgCocoaFileMgr::getInstance().addSolid( *this, "CYLINDER", spar, col, CLHEP::Hep3Vector(), rm);
58 }
59 
60 #endif
61 
62 
63 //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
65 {
66  ALIdouble go;
68  gomgr->getGlobalOptionValue("VisScale", go );
69 
70  theSolidShape = new CocoaSolidShapeTubs( "Tubs", go*0.*cm/m, go*1.*cm/m, go*1.*cm/m ); //COCOA internal units are meters
71 }
long double ALIdouble
Definition: CocoaGlobals.h:11
void constructSolidShape() override
Definition: OptOPinhole.cc:64
CocoaSolidShape * theSolidShape
static ALIint debug
Definition: ALIUtils.h:36
static GlobalOptionMgr * getInstance()
void setDirection(const CLHEP::Hep3Vector &direc)
Definition: LightRay.h:61
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:64
const CLHEP::Hep3Vector & point() const
Definition: LightRay.h:52
static void dump3v(const CLHEP::Hep3Vector &vec, const std::string &msg)
Definition: ALIUtils.cc:61
virtual void fillIguana()
Definition: OpticalObject.h:56
const CLHEP::Hep3Vector & centreGlob() const
Definition: OpticalObject.h:85
void defaultBehaviour(LightRay &lightray, Measurement &meas) override
Definition: OptOPinhole.cc:26
col
Definition: cuy.py:1008
void dumpData(const ALIstring &str) const
Definition: LightRay.cc:382
const ALIstring & name() const
Definition: OpticalObject.h:60
rm
Definition: submit.py:76
static std::string const source
Definition: EdmProvDump.cc:43