CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/Alignment/CocoaModel/interface/OptOCOPS.h

Go to the documentation of this file.
00001 //   COCOA class header file
00002 //Id:  OptOCOPS.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 _OptOCOPS_hh
00011 #define _OptOCOPS_hh
00012 
00013 #include "Alignment/CocoaUtilities/interface/CocoaGlobals.h"
00014 #include "Alignment/CocoaModel/interface/OpticalObject.h"
00015 class Measurement;
00016 class LightRay;
00017 #include "Alignment/CocoaModel/interface/ALILine.h"
00018 class DeviationsFromFileSensor2D;
00019 
00020 class OptOCOPS: public OpticalObject
00021 {
00022 
00023 public:
00024   //---------- Constructors / Destructor
00025   OptOCOPS(){ };
00026   OptOCOPS(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data) : 
00027   OpticalObject( parent, type, name, copy_data), fdevi_from_file(0){ };
00028   ~OptOCOPS(){ };
00029 
00030   //---------- defaultBehaviour: make measurement 
00031   virtual void defaultBehaviour( LightRay& lightray, Measurement& meas );
00032   //---------- Make measurement 
00033   virtual void makeMeasurement( LightRay& lightray, Measurement& meas );
00034   //---------- Fast simulation of the light ray traversing
00035   virtual void fastTraversesLightRay( LightRay& lightray );
00036 
00037   // Get intersection in local coordinates
00038   ALIdouble* convertPointToLocalCoordinates( const CLHEP::Hep3Vector& point);
00039 
00040 #ifdef COCOA_VIS
00041   virtual void fillVRML();
00042   virtual void fillIguana();
00043 #endif
00044   void constructSolidShape();
00045 
00046  private:
00047   ALIdouble getMeasFromInters( ALILine& line_xhair, ALILine& ccd, CLHEP::Hep3Vector& cops_line );
00048   // Deviation values read from file
00049   DeviationsFromFileSensor2D* deviFromFile;
00050   ALIbool fdevi_from_file;
00051   ALILine ccds[4];
00052 };
00053 
00054 #endif