![]() |
|
|||
File indexing completed on 2025-02-22 10:32:43
0001 //========================================================================== 0002 // AIDA Detector description implementation 0003 //-------------------------------------------------------------------------- 0004 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN) 0005 // All rights reserved. 0006 // 0007 // For the licensing terms see $DD4hepINSTALL/LICENSE. 0008 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS. 0009 // 0010 // Author : M.Frank 0011 // 0012 //========================================================================== 0013 #ifndef DD4HEP_DETAIL_SHAPESINTERNA_H 0014 #define DD4HEP_DETAIL_SHAPESINTERNA_H 0015 0016 // Framework include files 0017 #include <DD4hep/Shapes.h> 0018 0019 /// Namespace for the AIDA detector description toolkit 0020 namespace dd4hep { 0021 0022 /// Concrete object implementation for the Header handle 0023 /** 0024 * 0025 * \author M.Frank 0026 * \version 1.0 0027 * \ingroup DD4HEP_CORE 0028 */ 0029 class TwistedTubeObject: public TGeoTubeSeg { 0030 private: 0031 /// Inhibit move constructor 0032 TwistedTubeObject(TwistedTubeObject&&) = delete; 0033 /// Inhibit copy constructor 0034 TwistedTubeObject(const TwistedTubeObject&) = delete; 0035 /// Inhibit move assignment 0036 TwistedTubeObject& operator=(TwistedTubeObject&&) = delete; 0037 /// Inhibit copy assignment 0038 TwistedTubeObject& operator=(const TwistedTubeObject&) = delete; 0039 public: 0040 double fPhiTwist {0.0}; // Twist angle from -fZHalfLength to fZHalfLength 0041 double fNegativeEndz {0.0}; // -ve z endplate 0042 double fPositiveEndz {0.0}; // +ve z endplate 0043 int fNsegments {0}; // Number of segments in totalPhi 0044 0045 public: 0046 /// Standard constructor 0047 TwistedTubeObject() = default; 0048 /// Initializing constructor 0049 TwistedTubeObject(const char* pName, 0050 double twistedangle, // Twisted angle 0051 double endinnerrad, // Inner radius at endcap 0052 double endouterrad, // Outer radius at endcap 0053 double negativeEndz, // -ve z endplate 0054 double positiveEndz, // +ve z endplate 0055 int nseg, // Number of segments in totalPhi 0056 double totphi); // Total angle of all segments 0057 /// Default destructor 0058 virtual ~TwistedTubeObject() = default; 0059 /// Access twist angle 0060 double GetPhiTwist () const { return fPhiTwist; } 0061 /// Access the negative z 0062 double GetNegativeEndZ() const { return fNegativeEndz; } 0063 /// Access the positive z 0064 double GetPositiveEndZ() const { return fPositiveEndz; } 0065 /// Access the number of segments 0066 int GetNsegments() const { return fNsegments; } 0067 0068 /// in case shape has some negative parameters, these has to be computed in order to fit the mother 0069 virtual TGeoShape *GetMakeRuntimeShape(TGeoShape* mother, TGeoMatrix* mat) const override; 0070 /// print shape parameters 0071 virtual void InspectShape() const override; 0072 0073 ClassDefOverride(TwistedTubeObject,0); 0074 }; 0075 } /* End namespace dd4hep */ 0076 #endif // DD4HEP_DETAIL_SHAPESINTERNA_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |