00001 #ifndef DDAlgorithm_presh_detectors_h 00002 #define DDAlgorithm_presh_detectors_h 00003 00004 #include "DetectorDescription/ExprAlgo/interface/AlgoImpl.h" 00005 //#include "CLHEP/Units/SystemOfUnits.h" 00006 #define MAX_DOUBLE DBL_MAX 00007 //#include <climits> 00008 //#include <cfloat> 00009 00010 #include <iostream> 00011 #include <vector> 00012 #include <string> 00013 00014 #include "DetectorDescription/Core/interface/DDTransform.h" 00015 00016 class AlgoPos; 00017 00019 class presh_detectors : public AlgoImpl 00020 { 00021 public: 00022 00024 00030 presh_detectors(AlgoPos*,std::string label); 00031 00033 ~presh_detectors(); 00034 00035 bool checkParameters(); 00036 00037 DDTranslation translation(); 00038 00039 DDRotationMatrix rotation(); 00040 00041 int copyno() const; 00042 00043 //void checkTermination(); 00044 00045 void stream(std::ostream &) const; 00046 00047 private: 00048 void defineConstants(); 00049 void topHalfXPlane(); 00050 double ZLEAD_; 00051 double waf_intra_col_sep_, waf_inter_col_sep_; 00052 double waf_active_, wedge_length_, wedge_offset_, zwedge_ceramic_diff_; 00053 DDRotation rot_; 00054 double y_offset_, z_offset_; 00055 std::vector<int> IQUAD_MAX_, IQUAD_MIN_; 00056 }; 00057 00058 00059 #include "DetectorDescription/ExprAlgo/interface/AlgoCheck.h" 00060 00061 class presh_detectorsChecker : public AlgoCheck 00062 { 00063 public: 00064 presh_detectorsChecker(); 00065 ~presh_detectorsChecker(); 00066 }; 00067 00068 00069 #endif