1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// COCOA class header file
//Id: OptOModifiedRhomboidPrism.h
//CAT: Model
//
// Base class to describe Optical Objects of type sensor 2D
//
// History: v1.0
// Pedro Arce
#ifndef _OPTOMODIFIEDRHOMBOIDPRISM_HH
#define _OPTOMODIFIEDRHOMBOIDPRISM_HH
#include "Alignment/CocoaUtilities/interface/CocoaGlobals.h"
#include "Alignment/CocoaModel/interface/OpticalObject.h"
class Measurement;
class LightRay;
class OptOModifiedRhomboidPrism : public OpticalObject {
public:
//---------- Constructors / Destructor
OptOModifiedRhomboidPrism() {}
OptOModifiedRhomboidPrism(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data)
: OpticalObject(parent, type, name, copy_data) {}
~OptOModifiedRhomboidPrism() override {}
//---------- Fast simulation of deviation of the light ray (reflection, shift, ...)
void fastDeviatesLightRay(LightRay& lightray) override;
//---------- Detailed simulation of the light ray traversing
void fastTraversesLightRay(LightRay& lightray) override;
//---------- Detailed simulation of deviation of the light ray (reflection, shift, ...)
void detailedDeviatesLightRay(LightRay& lightray) override;
//---------- Fast simulation of the light ray traversing
void detailedTraversesLightRay(LightRay& lightray) override;
//--------- Get the up and down plates rotated by an angle 'angle_planes'
ALIPlane getRotatedPlate(const ALIbool forwardPlate);
#ifdef COCOA_VIS
virtual void fillIguana();
#endif
void constructSolidShape() override;
};
#endif
|