16#include "TGeoMatrix.h"
21#include "FairParamList.h"
24 : FairParGenericSet(name, title, context)
61 std::cout <<
"R3BNeulandGeoPar: Neuland Paddle Positions ...\n";
68 std::cout << node->GetNumber() <<
"\n";
69 node->GetMatrix()->Print();
82 return (
dynamic_cast<TGeoBBox*
>(
fNeulandGeoNode->GetDaughter(0)->GetVolume()->GetShape()))->GetDX();
88 Double_t pos_in[3] = { position.X(), position.Y(), position.Z() };
95 fPaddleGeoNodes.at(paddleID)->MasterToLocal(pos_tmp, pos_out);
97 return TVector3(pos_out[0], pos_out[1], pos_out[2]);
102 Double_t pos_in[3] = { position.X(), position.Y(), position.Z() };
107 fPaddleGeoNodes.at(paddleID)->LocalToMaster(pos_in, pos_tmp);
111 return TVector3(pos_out[0], pos_out[1], pos_out[2]);
116 const Int_t nPixels = 50;
117 const Double_t sizePixel = 5;
119 const Int_t
nPlanes = nPaddles / nPixels;
121 Double_t pos_in[3] = { position.X(), position.Y(), position.Z() };
129 const Int_t x = std::min(std::max<Int_t>(0, pos_tmp[0] / sizePixel + nPixels / 2), nPixels - 1);
130 const Int_t y = std::min(std::max<Int_t>(0, pos_tmp[1] / sizePixel + nPixels / 2), nPixels - 1);
133 const Int_t z = std::min(std::max<Int_t>(0, pos_tmp[2] / sizePixel +
nPlanes / 2),
nPlanes - 1);
135 return TVector3(x, y, z);
138void R3BNeulandGeoPar::BuildPaddleLookup()
143 fPaddleGeoNodes[node->GetNumber()] = node;
ClassImp(R3BNeulandGeoPar)
NeuLAND geometry parameter storage.
~R3BNeulandGeoPar() override
TVector3 ConvertToGlobalCoordinates(const TVector3 &position, const Int_t paddleID) const
void SetNeulandGeoNode(const TGeoNode *const p)
void printParams() override
TVector3 ConvertGlobalToPixel(const TVector3 &position) const
void putParams(FairParamList *) override
R3BNeulandGeoPar(const char *name="R3BNeulandGeoPar", const char *title="Neuland Geometry Parameters", const char *context="TestDefaultContext")
Bool_t getParams(FairParamList *) override
Double_t GetPaddleHalfLength() const
TVector3 ConvertToLocalCoordinates(const TVector3 &position, const Int_t paddleID) const
TGeoNode * fNeulandGeoNode