Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:44:27

0001 //   COCOA class header file

0002 //Id:  OptOSensor2D.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 _OPTOSENSOR2D_HH
0011 #define _OPTOSENSOR2D_HH
0012 
0013 #include "Alignment/CocoaUtilities/interface/CocoaGlobals.h"
0014 #include "Alignment/CocoaModel/interface/OpticalObject.h"
0015 class Measurement;
0016 class LightRay;
0017 class DeviationsFromFileSensor2D;
0018 
0019 class OptOSensor2D : public OpticalObject {
0020 public:
0021   //---------- Constructors / Destructor

0022   OptOSensor2D(){};
0023   OptOSensor2D(OpticalObject* parent, const ALIstring& type, const ALIstring& name, const ALIbool copy_data)
0024       : OpticalObject(parent, type, name, copy_data), fdevi_from_file(false){};
0025   ~OptOSensor2D() override{};
0026 
0027   //---------- defaultBehaviour: make measurement

0028   void defaultBehaviour(LightRay& lightray, Measurement& meas) override;
0029   //---------- Make measurement

0030   void makeMeasurement(LightRay& lightray, Measurement& meas) override;
0031   //---------- Fast simulation of the light ray traversing

0032   void fastTraversesLightRay(LightRay& lightray) override;
0033   //---------- Detailed simulation of the light ray traversing

0034   void detailedTraversesLightRay(LightRay& lightray) override;
0035 
0036   // Create and fill an extra entry, checking if it has to be read from file

0037   void fillExtraEntry(std::vector<ALIstring>& wordlist) override;
0038 
0039   // Get intersection in local coordinates

0040   ALIdouble* convertPointToLocalCoordinates(const CLHEP::Hep3Vector& point);
0041 
0042 #ifdef COCOA_VIS
0043   virtual void fillVRML();
0044   virtual void fillIguana();
0045 #endif
0046   void constructSolidShape() override;
0047 
0048 private:
0049   // Deviation values read from file

0050   DeviationsFromFileSensor2D* deviFromFile;
0051   ALIbool fdevi_from_file;
0052 };
0053 
0054 #endif