CMS 3D CMS Logo

OptOOpticalSquare.h
Go to the documentation of this file.
1 // COCOA class header file
2 //Id: OptOOpticalSquare.h
3 //CAT: Model
4 //
5 // Base class to describe Optical Objects of type sensor 2D
6 //
7 // History: v1.0
8 // Pedro Arce
9 
10 #ifndef _OPTOPSEUDOPENTAPRISM_HH
11 #define _OPTOPSEUDOPENTAPRISM_HH
12 
15 class Measurement;
16 class LightRay;
17 
19 {
20 
21 public:
22  //---------- Constructors / Destructor
24  OptOOpticalSquare(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data) :
25  OpticalObject( parent, type, name, copy_data){ };
26  ~OptOOpticalSquare() override{ };
27 
28  //---------- Fast simulation of deviation of the light ray (reflection, shift, ...)
29  void fastDeviatesLightRay( LightRay& lightray ) override;
30  //---------- Detailed simulation of the light ray traversing
31  void fastTraversesLightRay( LightRay& lightray ) override;
32  //---------- Detailed simulation of deviation of the light ray (reflection, shift, ...)
33  void detailedDeviatesLightRay( LightRay& lightray ) override;
34  //---------- Fast simulation of the light ray traversing
35  void detailedTraversesLightRay( LightRay& lightray ) override;
36 
37 #ifdef COCOA_VIS
38  virtual void fillIguana();
39 #endif
40  void constructSolidShape() override;
41 
42  private:
43  //---------- Calculate the centre points and normal std::vector of each of the four pentaprism faces the light ray may touch
44  void calculateFaces( ALIbool isDetailed );
45 
46  //---------- Centre points and normal std::vector of each of the four pentaprism faces the light ray may touch
47  CLHEP::Hep3Vector faceP[5];
48  CLHEP::Hep3Vector faceV[5];
49 
50 
51 };
52 
53 #endif
54 
type
Definition: HCALResponse.h:21
OptOOpticalSquare(OpticalObject *parent, const ALIstring &type, const ALIstring &name, const ALIbool copy_data)
~OptOOpticalSquare() override
void detailedDeviatesLightRay(LightRay &lightray) override
bool ALIbool
Definition: CocoaGlobals.h:19
const OpticalObject * parent() const
Definition: OpticalObject.h:62
void fastTraversesLightRay(LightRay &lightray) override
CLHEP::Hep3Vector faceP[5]
void fastDeviatesLightRay(LightRay &lightray) override
void constructSolidShape() override
void calculateFaces(ALIbool isDetailed)
virtual void fillIguana()
Definition: OpticalObject.h:56
std::string ALIstring
Definition: CocoaGlobals.h:9
void detailedTraversesLightRay(LightRay &lightray) override
const ALIstring & name() const
Definition: OpticalObject.h:60
CLHEP::Hep3Vector faceV[5]