33 DriftTube *DriftTubeDet =
dynamic_cast<DriftTube *
>(gROOT->GetListOfGlobals()->FindObject(
"DriftTube"));
34 Float_t timeResol = DriftTubeDet->GetConfParF(
"DriftTube/timeResol");
36 for (
auto p = std::begin(V); p != std::end(V); ++p) {
38 Double_t signal = (*p)->GetEnergyLoss();
40 TVector3 vLeft, vRight;
41 TVector3 impact((*p)->GetX(), (*p)->GetY(), (*p)->GetZ());
42 DriftTubeDet->GetPosition(detID, vLeft, vRight);
43 Double_t distance = (vLeft - impact).Perp();
46 Double_t ptime = (*p)->GetTime();
50 LOG(DEBUG) <<
"signal created";
73 auto navigator = gGeoManager->GetCurrentNavigator();
75 DriftTube *DriftTubeDet =
dynamic_cast<DriftTube *
>(gROOT->GetListOfGlobals()->FindObject(
"DriftTube"));
76 const auto WCELL =
static_cast<double>(DriftTubeDet->GetConfParF(
"DriftTube/cellWidth"));
78 if (gGeoManager->cd(node.c_str())) {
79 TGeoShape *shape = gGeoManager->GetCurrentNode()->GetVolume()->GetShape();
80 if (shape->InheritsFrom(
"TGeoBBox")) {
81 TGeoBBox *box =
dynamic_cast<TGeoBBox *
>(shape);
82 const Double_t *origin = box->GetOrigin();
84 navigator->cd(node.c_str());
86 Double_t globalPosition[3] {};
87 navigator->LocalToMaster(localPosition, globalPosition);
89 position.SetXYZ(globalPosition[0], globalPosition[1], globalPosition[2]);