File indexing completed on 2025-01-18 09:55:26
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef DDSEGMENTATION_PROJECTIVECYLINDER_H
0020 #define DDSEGMENTATION_PROJECTIVECYLINDER_H
0021
0022 #include <DDSegmentation/CylindricalSegmentation.h>
0023
0024 namespace dd4hep {
0025 namespace DDSegmentation {
0026
0027
0028 class ProjectiveCylinder: public CylindricalSegmentation {
0029 public:
0030
0031 ProjectiveCylinder(const std::string& cellEncoding);
0032
0033 ProjectiveCylinder(const BitFieldCoder* decoder);
0034
0035 virtual ~ProjectiveCylinder();
0036
0037
0038 virtual Vector3D position(const CellID& cellID) const;
0039
0040 virtual CellID cellID(const Vector3D& localPosition, const Vector3D& globalPosition, const VolumeID& volumeID) const;
0041
0042 double theta(const CellID& cellID) const;
0043
0044 double phi(const CellID& cellID) const;
0045
0046 int thetaBins() const {
0047 return _thetaBins;
0048 }
0049
0050 int phiBins() const {
0051 return _phiBins;
0052 }
0053
0054 double offsetTheta() const {
0055 return _offsetTheta;
0056 }
0057
0058 double offsetPhi() const {
0059 return _offsetPhi;
0060 }
0061
0062 std::string fieldNameTheta() const {
0063 return _thetaID;
0064 }
0065
0066 std::string fieldNamePhi() const {
0067 return _phiID;
0068 }
0069
0070 void setThetaBins(int bins) {
0071 _thetaBins = bins;
0072 }
0073
0074 void setPhiBins(int bins) {
0075 _phiBins = bins;
0076 }
0077
0078 void setOffsetTheta(double offset) {
0079 _offsetTheta = offset;
0080 }
0081
0082 void setOffsetPhi(double offset) {
0083 _offsetPhi = offset;
0084 }
0085
0086 void setFieldNameTheta(const std::string& fieldName) {
0087 _thetaID = fieldName;
0088 }
0089
0090 void setFieldNamePhi(const std::string& fieldName) {
0091 _phiID = fieldName;
0092 }
0093
0094 protected:
0095
0096 int _thetaBins;
0097
0098 int _phiBins;
0099
0100 double _offsetTheta;
0101
0102 double _offsetPhi;
0103
0104 std::string _thetaID;
0105
0106 std::string _phiID;
0107
0108 };
0109
0110 }
0111 }
0112 #endif