00001 // COCOA class header file 00002 //Id: OptOSensor2D.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 _OPTOSENSOR2D_HH 00011 #define _OPTOSENSOR2D_HH 00012 00013 #include "Alignment/CocoaUtilities/interface/CocoaGlobals.h" 00014 #include "Alignment/CocoaModel/interface/OpticalObject.h" 00015 class Measurement; 00016 class LightRay; 00017 class DeviationsFromFileSensor2D; 00018 00019 class OptOSensor2D: public OpticalObject 00020 { 00021 00022 public: 00023 //---------- Constructors / Destructor 00024 OptOSensor2D(){ }; 00025 OptOSensor2D(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data) : 00026 OpticalObject( parent, type, name, copy_data), fdevi_from_file(0){ }; 00027 ~OptOSensor2D(){ }; 00028 00029 //---------- defaultBehaviour: make measurement 00030 virtual void defaultBehaviour( LightRay& lightray, Measurement& meas ); 00031 //---------- Make measurement 00032 virtual void makeMeasurement( LightRay& lightray, Measurement& meas ); 00033 //---------- Fast simulation of the light ray traversing 00034 virtual void fastTraversesLightRay( LightRay& lightray ); 00035 //---------- Detailed simulation of the light ray traversing 00036 virtual void detailedTraversesLightRay( LightRay& lightray ); 00037 00038 // Create and fill an extra entry, checking if it has to be read from file 00039 virtual void fillExtraEntry( std::vector<ALIstring>& wordlist ); 00040 00041 // Get intersection in local coordinates 00042 ALIdouble* convertPointToLocalCoordinates( const CLHEP::Hep3Vector& point); 00043 00044 #ifdef COCOA_VIS 00045 virtual void fillVRML(); 00046 virtual void fillIguana(); 00047 #endif 00048 void constructSolidShape(); 00049 00050 private: 00051 // Deviation values read from file 00052 DeviationsFromFileSensor2D* deviFromFile; 00053 ALIbool fdevi_from_file; 00054 }; 00055 00056 #endif