DD4hep  1.28.0
Detector Description Toolkit for High Energy Physics
ShapesInterna.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 #ifndef DD4HEP_DETAIL_SHAPESINTERNA_H
14 #define DD4HEP_DETAIL_SHAPESINTERNA_H
15 
16 // Framework include files
17 #include "DD4hep/Shapes.h"
18 
20 namespace dd4hep {
21 
23 
29  class TwistedTubeObject: public TGeoTubeSeg {
30  private:
39  public:
40  double fPhiTwist {0.0}; // Twist angle from -fZHalfLength to fZHalfLength
41  double fNegativeEndz {0.0}; // -ve z endplate
42  double fPositiveEndz {0.0}; // +ve z endplate
43  int fNsegments {0}; // Number of segments in totalPhi
44 
45  public:
47  TwistedTubeObject() = default;
49  TwistedTubeObject(const char* pName,
50  double twistedangle, // Twisted angle
51  double endinnerrad, // Inner radius at endcap
52  double endouterrad, // Outer radius at endcap
53  double negativeEndz, // -ve z endplate
54  double positiveEndz, // +ve z endplate
55  int nseg, // Number of segments in totalPhi
56  double totphi); // Total angle of all segments
58  virtual ~TwistedTubeObject() = default;
60  double GetPhiTwist () const { return fPhiTwist; }
62  double GetNegativeEndZ() const { return fNegativeEndz; }
64  double GetPositiveEndZ() const { return fPositiveEndz; }
66  int GetNsegments() const { return fNsegments; }
67 
69  virtual TGeoShape *GetMakeRuntimeShape(TGeoShape* mother, TGeoMatrix* mat) const override;
71  virtual void InspectShape() const override;
72 
74  };
75 } /* End namespace dd4hep */
76 #endif // DD4HEP_DETAIL_SHAPESINTERNA_H
dd4hep::TwistedTubeObject::GetNsegments
int GetNsegments() const
Access the number of segments.
Definition: ShapesInterna.h:66
dd4hep::TwistedTubeObject::GetPhiTwist
double GetPhiTwist() const
Access twist angle.
Definition: ShapesInterna.h:60
dd4hep::TwistedTubeObject::GetNegativeEndZ
double GetNegativeEndZ() const
Access the negative z.
Definition: ShapesInterna.h:62
dd4hep::TwistedTubeObject::TwistedTubeObject
TwistedTubeObject(const char *pName, double twistedangle, double endinnerrad, double endouterrad, double negativeEndz, double positiveEndz, int nseg, double totphi)
Initializing constructor.
dd4hep::TwistedTubeObject::TwistedTubeObject
TwistedTubeObject(TwistedTubeObject &&)=delete
Inhibit move constructor.
dd4hep::TwistedTubeObject::GetPositiveEndZ
double GetPositiveEndZ() const
Access the positive z.
Definition: ShapesInterna.h:64
dd4hep::TwistedTubeObject::TwistedTubeObject
TwistedTubeObject()=default
Standard constructor.
dd4hep::TwistedTubeObject
Concrete object implementation for the Header handle.
Definition: ShapesInterna.h:29
dd4hep::TwistedTubeObject::TwistedTubeObject
TwistedTubeObject(const TwistedTubeObject &)=delete
Inhibit copy constructor.
dd4hep::TwistedTubeObject::InspectShape
virtual void InspectShape() const override
print shape parameters
Definition: ShapesInterna.cpp:43
dd4hep::TwistedTubeObject::operator=
TwistedTubeObject & operator=(TwistedTubeObject &&)=delete
Inhibit move assignment.
dd4hep::TwistedTubeObject::operator=
TwistedTubeObject & operator=(const TwistedTubeObject &)=delete
Inhibit copy assignment.
Shapes.h
dd4hep::TwistedTubeObject::ClassDefOverride
ClassDefOverride(TwistedTubeObject, 0)
dd4hep::TwistedTubeObject::fPositiveEndz
double fPositiveEndz
Definition: ShapesInterna.h:42
dd4hep::TwistedTubeObject::~TwistedTubeObject
virtual ~TwistedTubeObject()=default
Default destructor.
dd4hep::TwistedTubeObject::fNsegments
int fNsegments
Definition: ShapesInterna.h:43
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::TwistedTubeObject::fNegativeEndz
double fNegativeEndz
Definition: ShapesInterna.h:41
dd4hep::TwistedTubeObject::fPhiTwist
double fPhiTwist
Definition: ShapesInterna.h:40
dd4hep::TwistedTubeObject::GetMakeRuntimeShape
virtual TGeoShape * GetMakeRuntimeShape(TGeoShape *mother, TGeoMatrix *mat) const override
in case shape has some negative parameters, these has to be computed in order to fit the mother
Definition: ShapesInterna.cpp:59