CbmRoot
Loading...
Searching...
No Matches
CbmMustTube.h
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Radoslaw Karabowicz [committer] */
4
6// CbmMustTube header file
7//
8// Copied from PndFtsTube
9//
10// authors: Radoslaw Karabowicz, GSI, 2024
12
13#ifndef CBMMUSTTUBE_H
14#define CBMMUSTTUBE_H 1
15
16#include <Rtypes.h> // for ClassDefOverride
17#include <RtypesCore.h> // for Double_t, Bool_t, Int_t, kTRUE
18#include <TMatrixT.h> // for TMatrixT
19#include <TObject.h> // for TObject
20#include <TVector3.h> // for TVector3
21
22class CbmMustTube : public TObject {
23
24 public:
28
30 CbmMustTube(uint32_t address, int tubeIndex, Double_t x, Double_t y, Double_t z, Double_t r11, Double_t r12,
31 Double_t r13, Double_t r21, Double_t r22, Double_t r23, Double_t r31, Double_t r32, Double_t r33,
32 Double_t radin, Double_t radout, Double_t hl);
33
34 uint32_t GetAddress() const { return fAddress; }
35 int GetTubeIndex() const { return fTubeIndex; }
36 TVector3 GetPosition() const { return fCenPosition; }
37 TMatrixT<Double_t> GetRotationMatrix() const { return fRotationMatrix; }
38 Double_t GetRadIn() const { return fRadIn; }
39 Double_t GetRadOut() const { return fRadOut; }
40 Double_t GetHalfLength() const { return fHalfLength; }
41 TVector3 GetWireDirection() const
42 {
43 return TVector3(-fRotationMatrix[0][1], fRotationMatrix[1][1], fRotationMatrix[2][1]);
44 }
45
46 bool IsVertical() const { return (0. == GetWireDirection().Y()); }
47
54 int CompareTubeIndex(const CbmMustTube* compTube) const;
55
56 Bool_t IsSortable() const override { return kTRUE; }
57
58 private:
59 uint32_t fAddress{0};
60 int fTubeIndex{0};
61 TVector3 fCenPosition{TVector3(0, 0, 0)};
62 TMatrixT<double> fRotationMatrix{TMatrixT<double>(3, 3)};
63 Double_t fRadIn{0.};
64 Double_t fRadOut{0.};
65 Double_t fHalfLength{0.};
66
68};
69
70#endif
bool Bool_t
Double_t fRadIn
Definition CbmMustTube.h:63
int CompareTubeIndex(const CbmMustTube *compTube) const
TMatrixT< Double_t > GetRotationMatrix() const
Definition CbmMustTube.h:37
TVector3 GetWireDirection() const
Definition CbmMustTube.h:41
Double_t fHalfLength
Definition CbmMustTube.h:65
Double_t fRadOut
Definition CbmMustTube.h:64
TVector3 GetPosition() const
Definition CbmMustTube.h:36
Bool_t IsSortable() const override
Definition CbmMustTube.h:56
TVector3 fCenPosition
Definition CbmMustTube.h:61
Double_t GetRadIn() const
Definition CbmMustTube.h:38
uint32_t GetAddress() const
Definition CbmMustTube.h:34
Double_t GetHalfLength() const
Definition CbmMustTube.h:40
TMatrixT< double > fRotationMatrix
Definition CbmMustTube.h:62
ClassDefOverride(CbmMustTube, 1)
bool IsVertical() const
Definition CbmMustTube.h:46
int GetTubeIndex() const
Definition CbmMustTube.h:35
Double_t GetRadOut() const
Definition CbmMustTube.h:39
uint32_t fAddress
Definition CbmMustTube.h:59