9#include "TInterpreter.h"
37 TVector3(TMath::Sin(TMath::DegToRad() * (0.0)) * TMath::Cos(TMath::DegToRad() * (0.0)),
38 TMath::Sin(TMath::DegToRad() * (0.0)) * TMath::Sin(TMath::DegToRad() * (0.0)),
39 TMath::Cos(TMath::DegToRad() * (0.0))),
41 TVector3(TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Cos(TMath::DegToRad() * (67.5)),
42 TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Sin(TMath::DegToRad() * (67.5)),
43 TMath::Cos(TMath::DegToRad() * (45.0))),
44 TVector3(TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Cos(TMath::DegToRad() * (157.5)),
45 TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Sin(TMath::DegToRad() * (157.5)),
46 TMath::Cos(TMath::DegToRad() * (45.0))),
47 TVector3(TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Cos(TMath::DegToRad() * (247.5)),
48 TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Sin(TMath::DegToRad() * (247.5)),
49 TMath::Cos(TMath::DegToRad() * (45.0))),
50 TVector3(TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Cos(TMath::DegToRad() * (337.5)),
51 TMath::Sin(TMath::DegToRad() * (45.0)) * TMath::Sin(TMath::DegToRad() * (337.5)),
52 TMath::Cos(TMath::DegToRad() * (45.0))),
54 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (22.5)),
55 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (22.5)),
56 TMath::Cos(TMath::DegToRad() * (90.0))),
57 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (67.5)),
58 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (67.5)),
59 TMath::Cos(TMath::DegToRad() * (90.0))),
60 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (112.5)),
61 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (112.5)),
62 TMath::Cos(TMath::DegToRad() * (90.0))),
63 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (157.5)),
64 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (157.5)),
65 TMath::Cos(TMath::DegToRad() * (90.0))),
66 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (202.5)),
67 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (202.5)),
68 TMath::Cos(TMath::DegToRad() * (90.0))),
69 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (247.5)),
70 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (247.5)),
71 TMath::Cos(TMath::DegToRad() * (90.0))),
72 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (292.5)),
73 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (292.5)),
74 TMath::Cos(TMath::DegToRad() * (90.0))),
75 TVector3(TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Cos(TMath::DegToRad() * (337.5)),
76 TMath::Sin(TMath::DegToRad() * (90.0)) * TMath::Sin(TMath::DegToRad() * (337.5)),
77 TMath::Cos(TMath::DegToRad() * (90.0))),
79 TVector3(TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Cos(TMath::DegToRad() * (67.5)),
80 TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Sin(TMath::DegToRad() * (67.5)),
81 TMath::Cos(TMath::DegToRad() * (135.0))),
82 TVector3(TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Cos(TMath::DegToRad() * (157.5)),
83 TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Sin(TMath::DegToRad() * (157.5)),
84 TMath::Cos(TMath::DegToRad() * (135.0))),
85 TVector3(TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Cos(TMath::DegToRad() * (247.5)),
86 TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Sin(TMath::DegToRad() * (247.5)),
87 TMath::Cos(TMath::DegToRad() * (135.0))),
88 TVector3(TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Cos(TMath::DegToRad() * (337.5)),
89 TMath::Sin(TMath::DegToRad() * (135.0)) * TMath::Sin(TMath::DegToRad() * (337.5)),
90 TMath::Cos(TMath::DegToRad() * (135.0)))};
147 std::ostringstream str;
148 str <<
"Bgo Contains: " << std::endl;
157 if(frag ==
nullptr || chan ==
nullptr) {
161 auto* hit =
new TBgoHit(*frag);
169 if(DetNbr > 16) {
return {0, 0, 1}; }
175 Double_t crystalCenter = 26.0;
176 Double_t interactionDepth = 45.0;
180 case 0: shift.SetXYZ(-crystalCenter, crystalCenter, interactionDepth);
break;
181 case 1: shift.SetXYZ(crystalCenter, crystalCenter, interactionDepth);
break;
182 case 2: shift.SetXYZ(crystalCenter, -crystalCenter, interactionDepth);
break;
183 case 3: shift.SetXYZ(-crystalCenter, -crystalCenter, interactionDepth);
break;
184 default: shift.SetXYZ(0, 0, 1);
break;
186 shift.RotateY(temp_pos.Theta());
187 shift.RotateZ(temp_pos.Phi());
189 temp_pos.SetMag(dist);
191 return (temp_pos + shift);
static TVector3 GetPosition(int DetNbr, int CryNbr=5, double distance=110.0)
!
TBgo & operator=(const TBgo &)
!
void Copy(TObject &) const override
!
void Clear(Option_t *opt="all") override
!
static std::array< TVector3, 17 > fScintPosition
! Position of each BGO scintillator
void AddFragment(const std::shared_ptr< const TFragment > &frag, TChannel *chan) override
!
void Print(Option_t *opt="") const override
!
void Copy(TObject &) const override
!
virtual Short_t GetMultiplicity() const
void Clear(Option_t *="") override
!
virtual void AddHit(TDetectorHit *hit)