CMS 3D CMS Logo

/data/git/CMSSW_5_3_11_patch5/src/Alignment/CocoaModel/interface/OptOOpticalSquare.h

Go to the documentation of this file.
00001 //   COCOA class header file
00002 //Id:  OptOOpticalSquare.h
00003 //CAT: Model
00004 //
00005 //   Base class to describe Optical Objects of type sensor 2D
00006 // 
00007 //   History: v1.0 
00008 //   Pedro Arce
00009 
00010 #ifndef _OPTOPSEUDOPENTAPRISM_HH
00011 #define _OPTOPSEUDOPENTAPRISM_HH
00012 
00013 #include "Alignment/CocoaUtilities/interface/CocoaGlobals.h"
00014 #include "Alignment/CocoaModel/interface/OpticalObject.h"
00015 class Measurement;
00016 class LightRay;
00017 
00018 class OptOOpticalSquare: public OpticalObject
00019 {
00020 
00021 public:
00022   //---------- Constructors / Destructor
00023   OptOOpticalSquare(){ };
00024   OptOOpticalSquare(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data) : 
00025   OpticalObject( parent, type, name, copy_data){ };
00026   ~OptOOpticalSquare(){ };
00027 
00028   //---------- Fast simulation of deviation of the light ray (reflection, shift, ...)
00029   virtual void fastDeviatesLightRay( LightRay& lightray );
00030   //---------- Detailed simulation of the light ray traversing
00031   virtual void fastTraversesLightRay( LightRay& lightray );
00032   //---------- Detailed simulation of deviation of the light ray (reflection, shift, ...)
00033   virtual void detailedDeviatesLightRay( LightRay& lightray );
00034   //---------- Fast simulation of the light ray traversing
00035   virtual void detailedTraversesLightRay( LightRay& lightray );
00036 
00037 #ifdef COCOA_VIS
00038   virtual void fillIguana();
00039 #endif
00040   void constructSolidShape();
00041 
00042  private:
00043   //---------- Calculate the centre points and normal std::vector of each of the four pentaprism faces the light ray may touch
00044   void calculateFaces( ALIbool isDetailed );
00045 
00046   //---------- Centre points and normal std::vector of each of the four pentaprism faces the light ray may touch
00047   CLHEP::Hep3Vector faceP[5];
00048   CLHEP::Hep3Vector faceV[5]; 
00049 
00050 
00051 };
00052 
00053 #endif
00054