40 Int_t unit = 10 * (name[5] -
'0') + name[6] -
'0' - 1;
41 Int_t ladder = 10 * (name[9] -
'0') + name[10] -
'0' - 1;
42 Int_t hLadder = (name[11] ==
'U' ? 0 : 1);
43 Int_t module = 10 * (name[14] -
'0') + name[15] -
'0' - 1;
44 Int_t sensor = 10 * (name[18] -
'0') + name[19] -
'0' - 1;
74 global[0] = point->
GetXIn();
75 global[1] = point->
GetYIn();
76 global[2] = point->
GetZIn();
77 node->GetMatrix()->MasterToLocal(global, local);
78 Double_t x1 = local[0];
79 Double_t y1 = local[1];
80 Double_t z1 = local[2];
86 node->GetMatrix()->MasterToLocal(global, local);
87 Double_t x2 = local[0];
88 Double_t y2 = local[1];
89 Double_t z2 = local[2];
95 if (abs(z2 - z1) > 0.000001) {
96 tXav = (x2 - x1) / (z2 - z1);
97 tYav = (y2 - y1) / (z2 - z1);
109 Double_t dZ =
dynamic_cast<TGeoBBox*
>(node->GetShape())->GetDZ();
115 global[0] = point->GetPx();
116 global[1] = point->GetPy();
117 global[2] = point->GetPz();
119 rot = node->GetMatrix()->GetRotationMatrix();
121 rotMat.SetRotation(rot);
122 rotMat.MasterToLocal(global, local);
123 if (local[2] != 0.) {
125 Double_t tX = local[0] / local[2];
126 Double_t tY = local[1] / local[2];
132 if (z1 > 0.) zNew = dZ - 1.e-4;
135 xNew = x1 + tX * (zNew - z1);
136 yNew = y1 + tY * (zNew - z1);
146 if (TMath::Abs(z2) > dZ) {
153 rot = node->GetMatrix()->GetRotationMatrix();
155 rotMat.SetRotation(rot);
156 rotMat.MasterToLocal(global, local);
160 if (local[2] != 0.) {
161 tX = local[0] / local[2];
162 tY = local[1] / local[2];
178 if (z2 > 0.) zNew = dZ - 1.e-4;
181 xNew = x2 + tX * (zNew - z2);
182 yNew = y2 + tY * (zNew - z2);
192 Double_t px = 0.5 * (point->GetPx() + point->
GetPxOut());
193 Double_t py = 0.5 * (point->GetPy() + point->
GetPyOut());
194 Double_t pz = 0.5 * (point->GetPz() + point->
GetPzOut());
195 Double_t p = TMath::Sqrt(px * px + py * py + pz * pz);
201 Double_t bField[3] = {0., 0., 0.};
202 if (FairRun::Instance()->GetField()) FairRun::Instance()->GetField()->Field(global, bField);
205 Double_t pTime = eventTime + point->GetTime();
210 bField[0] / 10., bField[1] / 10., bField[2] / 10., point->
GetPid());
int32_t GetAddress(uint32_t unit=0, uint32_t ladder=0, uint32_t halfladder=0, uint32_t module=0, uint32_t sensor=0, uint32_t side=0, uint32_t version=kCurrentVersion)
Construct address.