25 : fElement(element) {}
32 Int_t unit = 10 * (name[5] -
'0') + name[6] -
'0' - 1;
33 Int_t ladder = 10 * (name[9] -
'0') + name[10] -
'0' - 1;
34 Int_t hLadder = (name[11] ==
'U' ? 0 : 1);
35 Int_t module = 10 * (name[14] -
'0') + name[15] -
'0' - 1;
36 Int_t sensor = 10 * (name[18] -
'0') + name[19] -
'0' - 1;
66 global[0] = point->
GetXIn();
67 global[1] = point->
GetYIn();
68 global[2] = point->
GetZIn();
69 node->GetMatrix()->MasterToLocal(global, local);
70 Double_t x1 = local[0];
71 Double_t y1 = local[1];
72 Double_t
z1 = local[2];
78 node->GetMatrix()->MasterToLocal(global, local);
79 Double_t x2 = local[0];
80 Double_t y2 = local[1];
81 Double_t
z2 = local[2];
88 tXav = (x2 - x1) / (
z2 -
z1);
89 tYav = (y2 - y1) / (
z2 -
z1);
101 Double_t dZ =
dynamic_cast<TGeoBBox*
>(node->GetShape())->GetDZ();
107 global[0] = point->GetPx();
108 global[1] = point->GetPy();
109 global[2] = point->GetPz();
111 rot = node->GetMatrix()->GetRotationMatrix();
113 rotMat.SetRotation(rot);
114 rotMat.MasterToLocal(global, local);
115 if (local[2] != 0.) {
117 Double_t tX = local[0] / local[2];
118 Double_t tY = local[1] / local[2];
128 xNew = x1 + tX * (zNew -
z1);
129 yNew = y1 + tY * (zNew -
z1);
139 if (TMath::Abs(
z2) > dZ) {
146 rot = node->GetMatrix()->GetRotationMatrix();
148 rotMat.SetRotation(rot);
149 rotMat.MasterToLocal(global, local);
153 if (local[2] != 0.) {
154 tX = local[0] / local[2];
155 tY = local[1] / local[2];
175 xNew = x2 + tX * (zNew -
z2);
176 yNew = y2 + tY * (zNew -
z2);
186 Double_t px = 0.5 * (point->GetPx() + point->
GetPxOut());
187 Double_t py = 0.5 * (point->GetPy() + point->
GetPyOut());
188 Double_t pz = 0.5 * (point->GetPz() + point->
GetPzOut());
189 Double_t p = TMath::Sqrt(px * px + py * py + pz * pz);
195 Double_t bField[3] = {0., 0., 0.};
196 if (FairRun::Instance()->GetField())
197 FairRun::Instance()->GetField()->Field(global, bField);
200 Double_t pTime = eventTime + point->GetTime();
211 point->GetEnergyLoss(),