Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:34:26

0001 //   COCOA class header file

0002 //Id:  OptOMirror.h

0003 //CAT: Model

0004 //

0005 //   Base class to describe Optical Objects of type sensor 2D

0006 //

0007 //   History: v1.0

0008 //   Pedro Arce

0009 
0010 #ifndef _OPTOMIRROR_HH
0011 #define _OPTOMIRROR_HH
0012 
0013 #include "Alignment/CocoaUtilities/interface/CocoaGlobals.h"
0014 #include "Alignment/CocoaModel/interface/OpticalObject.h"
0015 class Measurement;
0016 class LightRay;
0017 
0018 class OptOMirror : public OpticalObject {
0019 public:
0020   //---------- Constructors / Destructor

0021   OptOMirror() {}
0022   OptOMirror(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data)
0023       : OpticalObject(parent, type, name, copy_data) {}
0024   ~OptOMirror() override {}
0025 
0026   //---------- Propagate light for measurement meas

0027   //----- Default behaviour: detailed deviation

0028   void defaultBehaviour(LightRay& lightray, Measurement& meas) override;
0029 
0030   void detailedDeviatesLightRay(LightRay& lightray) override;
0031 
0032   void fastDeviatesLightRay(LightRay& lightray) override;
0033 
0034   void detailedTraversesLightRay(LightRay& lightray) override;
0035 
0036   void fastTraversesLightRay(LightRay& lightray) override;
0037 
0038 #ifdef COCOA_VIS
0039   virtual void fillIguana();
0040 #endif
0041   void constructSolidShape() override;
0042 };
0043 
0044 #endif