// ------------------------------------------------------------------------- // ----- PndGeoDrc header file ----- // ----- Created 11/10/06 by A. Cecchi ----- // ------------------------------------------------------------------------- #ifndef PNDGEODRC_H #define PNDGEODRC_H #include "FairGeoSet.h" class PndGeoDrc : public FairGeoSet { private: double fNquartz; double fNEV; double fRoughness; //!< Quartz bar surface roughness [nm] = 10A double fGlueLayer; //!< Thickness of the glue layer [cm]. double fGreaseLayer; //!< Thickness of the layer of optical grease [cm] double fRadius; //!< Barrel radius [cm] (middle of radiator) double fBarHalfThick; //!< Radiator bars half thickness [cm]. double fBarBoxZDown; //!< Bar box down stream coordinate [cm]. double fBarBoxZUp; //!< Bar box up stream coordinate [cm]. double fBarGap; //!< Half gap between bars [cm]. double fBarNum; //!< Number of bars per barbox. double fBoxGap; //!< Gap between bar and bar box [cm]. double fBoxThick; //!< Bar box thickness [cm]. double fBarBoxNum; //!< Total number of bar boxes in the barrel. double fBarBoxGap; //!< Gap between neighboring bar boxes [cm]. double fPipehAngle; //!< Half of the phi angle taken by the target pipe [degrees]. double fEVlength; //!< Length of Expansion Volume [cm]. double fEVdrop; //!< [cm] drop of the EV - inner radius double fEVoffset; //!< [cm] offset of the EV - outer radius double fEVangle; //!< [degrees] EV opening angle double fEVbackAngle; //!< [degrees] angle btw PDplane and global Z axis // prism parameters: double fPhLength; //!< [cm] half length of the prism double fPAngle; //!< [degrees] opening angle of the prism double fPDrop; //!< [cm] drop of the prism - inner side double fPOffset; //!< [cm] offset of the prism - outer side double fLside; double fBarWidth; double fPi; protected: char modName[20]; // name of module char eleName[20]; // substring for elements in module public: PndGeoDrc(); ~PndGeoDrc() {} const char* getModuleName(Int_t); const char* getEleName(Int_t); /*! The mean refraction index of fused silica (for reconstruction). \return The Nquartz. */ Double_t nQuartz() {return fNquartz;} /*! The refraction index of the expansion volume. \return The NEV. */ Double_t nEV() {return fNEV;} /*! The roughness of the quartz bar surface. \return The fRoughness. */ Double_t Roughness() {return fRoughness;} /*! The thickness of the glue layer. \return The fGlueLayer. */ Double_t GlueLayer() {return fGlueLayer;} /*! The thickness of the optical grease layer. \return The fGreaseLayer. */ Double_t GreaseLayer() {return fGlueLayer;} /*! The DRC barrel radius. \return The radius [cm]. */ Double_t radius() {return fRadius;} /*! The DRC barrel bar half thickness. \return Half thickness [cm]. */ Double_t barHalfThick() {return fBarHalfThick;} /*! The DRC barrel bar box downstream coordinate. \return Coordinate [cm]. */ Double_t barBoxZDown() {return fBarBoxZDown;} /*! The DRC barrel bar box upstream coordinate. \return Coordinate [cm]. */ Double_t barBoxZUp() {return fBarBoxZUp;} /*! The half gap between bars. \return The BarGap [cm]. */ Double_t barGap() {return fBarGap;} /*! The gap between bars and the bar box. \return The Gap [cm]. */ Double_t boxGap() {return fBoxGap;} /*! The thickness of the bar box. \return The BoxThickness [cm]. */ Double_t boxThick() {return fBoxThick;} /*! Number of bars per bar box. \return The number */ Double_t barNum() {return fBarNum;} /*! The length of the Expansion Volume [cm]. */ Double_t EVlen() {return fEVlength;} /*! The Gap between neighboring bar boxes [cm]. */ Double_t BBoxGap() {return fBarBoxGap;} /*! Total number of bar boxes in the barrel. */ Double_t BBoxNum() {return fBarBoxNum;} /*! Half of the phi angle taken by the target pipe [degrees]. */ Double_t PipehAngle() {return fPipehAngle;} /*! The drop of the Expansion Volume [cm]. */ Double_t EVdrop() {return fEVdrop;} /*! The offset of the Expansion Volume [cm]. */ Double_t EVoffset() {return fEVoffset;} /*! The opening angle of the EV [degrees]. */ Double_t EVangle() {return fEVangle;} /*! The angle between the PDplane and global Z axis [degrees]. */ Double_t EVbackAngle() {return fEVbackAngle;} /*! The offset of the Prism [cm]. */ Double_t PrismOffset() {return fPOffset;} /*! The drop of the Prism [cm]. */ Double_t PrismDrop() {return fPDrop;} /*! The half length of the Prism [cm]. */ Double_t PrismhLength() {return fPhLength;} /*! The opening angle of the Prism [degrees]. */ Double_t PrismAngle() {return fPAngle;} /*! The width of the bar box with gaps [cm]. */ Double_t Lside() {return fLside;} /*! The width of the bar gaps [cm]. */ Double_t BarWidth() {return fBarWidth;} ClassDef(PndGeoDrc,1) // Class for Drc }; #endif /* !PNDGEODRC_H */