549 const Int_t MStn = 11 ;
563 double GemDZ10[7][4] = {{0.243654, 0.250775, 0.173749, 0.161366},
564 {-0.143876, -0.150758, 0.109959, 0.156433},
565 {-0.110145, -0.165981, -0.213889, -0.229543},
566 {0.103517, 0.036342, 0.086135, 0.0941369},
567 {-0.037648, -0.0941807, -0.180758, -0.176327},
568 {-0.0674491, -0.0367844, -0.0972473, -0.0584354},
573 {0., 0., 0., 0., 0., 0., 0., 0.},
574 {0., 0., 0., 0., 0., 0., 0., 0.},
575 {0., 0., 0., 0., 0., 0., 0., 0.},
576 {0., 0., 0., 0., 0., 0., 0., 0.},
577 {2.28613e-01, 2.34606e-01, 3.70449e-01, 4.39267e-01, 2.67664e-01, 2.84859e-01, 3.41005e-01, 4.16753e-01},
578 {3.17030e-01, 2.45618e-01, 4.29878e-01, 4.29169e-01, 2.60443e-01, 1.79925e-01, 3.76252e-01, 3.71674e-01},
579 {1.25543e-01, 1.37935e-01, 2.77096e-01, 3.51704e-01, 2.16012e-01, 2.12139e-01, 2.88912e-01, 3.57699e-01},
580 {3.17647e-01, 2.36295e-01, 3.75431e-01, 3.80575e-01, 1.68884e-01, 8.80524e-02, 2.51805e-01, 2.56513e-01},
581 {-3.01883e-02, -2.87880e-02, 1.09744e-01, 1.90429e-01, 1.78162e-02, 1.32671e-02, 9.23760e-02, 1.67779e-01},
582 {1.43966e-01, 5.53303e-02, 2.48555e-01, 2.49193e-01, 3.88544e-02, -3.31393e-02, 7.96085e-02, 7.41273e-02},
583 {0., -5.63645e-04, 0.05, 8.74027e-04, 0., 3.60763e-03, 0.074, 1.49797e-01}};
585 {0., 0., 0., 0., 0., 0., 0., 0.},
586 {0., 0., 0., 0., 0., 0., 0., 0.},
587 {0., 0., 0., 0., 0., 0., 0., 0.},
588 {0., 0., 0., 0., 0., 0., 0., 0.},
589 {-2.40830e-01, -2.27117e-01, -4.41393e-01, -2.98662e-01, -1.47376e-01, -5.64919e-01, 3.60250e-02, -2.15290e-01},
590 {-4.83443e-01, -3.63780e-01, -3.52015e-01, -3.36903e-01, -1.14008e-01, -3.49136e-01, -2.14579e-01,
592 {-1.91062e-01, -2.04515e-01, -3.79972e-01, -2.57092e-01, -1.01400e-01, -5.18137e-01, 5.39497e-02, -1.85679e-01},
593 {-4.55871e-01, -3.48696e-01, -2.33191e-01, -2.40044e-01, -5.37329e-02, -3.00596e-01, -1.98740e-01,
595 {-2.31062e-01, -2.58276e-01, -4.03759e-01, -2.70196e-01, -8.53213e-02, -5.14891e-01, 3.15495e-02, -2.08464e-01},
596 {-2.58821e-01, -1.58621e-01, -9.84743e-02, -1.05756e-01, 1.54258e-01, -1.04935e-01, 1.83280e-02, -3.86622e-01},
597 {0., -5.86937e-03, -0.23, -1.45342e-01, 0., -3.98117e-01, 0.15, -1.04839e-01}};
599 Double_t SiDX[4][18] = {{2.68835e-01, 2.39831e-01, 2.52506e-01, 2.05206e-01, 2.11052e-01, 0.20737190, 0, 0, 0, 0, 0,
600 0, 0, 0, 0, 0, 0, 0},
601 {3.15120e-01, 2.74671e-01, 2.55372e-01, 2.83446e-01, 2.79317e-01, 3.48623e-01, 3.18654e-01,
602 3.00181e-01, 3.16157e-01, 3.80363e-01, 0, 0, 0, 0, 0, 0, 0, 0},
603 {1.65037e-01, 2.71806e-01, 2.66914e-01, 2.40166e-01, 2.59614e-01, 2.66288e-01, 2.83516e-01,
604 2.88311e-01, 2.61280e-01, 3.02609e-01, 2.96469e-01, 2.98769e-01, 2.66650e-01, 3.72627e-01,
606 {3.01013e-01, 3.62381e-01, 3.03249e-01, 3.06502e-01, 2.75747e-01, 2.95530e-01, 3.05152e-01,
607 3.42706e-01, 3.09787e-01, 2.24795e-01, 2.31845e-01, 2.59297e-01, 2.17342e-01, 2.20424e-01,
608 2.06861e-01, 2.49563e-01, 2.64846e-01, 2.02358e-01}};
610 {-0.272688, -0.300649, -0.343639, -0.313878, -0.331129, -0.299529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
611 {-0.342847, -0.343267, -0.328436, -0.354188, -0.332445, -0.349645, -0.332025, -0.294098, -0.249696, -0.217585,
612 0, 0, 0, 0, 0, 0, 0, 0},
613 {-0.398784, -0.342968, -0.325462, -0.325316, -0.338778, -0.338966, -0.324549, -0.339105, -0.314266, -0.301756,
614 -0.288295, -0.272864, -0.272913, -0.21294, 0, 0, 0, 0},
615 {-0.269827, -0.227419, -0.295412, -0.274608, -0.322856, -0.33417, -0.361013, -0.397192, -0.368905, -0.217688,
616 -0.240085, -0.266281, -0.285738, -0.269306, -0.292405, -0.297714, -0.323987, -0.379705}};
618 {-0.4, -0.3, -0.23, -0.27, -0.3, -0.23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
619 {-0.5, -0.4, -0.4, -0.28, -0.25, -0.45, -0.45, -0.3, -0.23, -0.2, 0, 0, 0, 0, 0, 0, 0, 0},
620 {-0.3, -0.5, -0.45, -0.4, -0.3, -0.2, -0.2, -0.25, -0.2, -0.3, -0.3, -0.4, -0.5, -0.27, 0, 0, 0, 0},
621 {-0.5, -0.6, -0.4, -0.5, -0.3, -0.35, -0.2, -0.1, -0.4, -0.6, -0.6, -0.6, -0.5, -0.35, -0.2, -0.1, 0.1, 0.}};
624 const Double_t p0si[4][18] = {{3.865e-2, 6.497e-2, 3.848e-2, -3.535e-2, -2.711e-2, -4.438e-2},
625 {-3.011e-2, -6.724e-3, -2.784e-2, -1.761e-2, -1.431e-2, 2.650e-2, 1.818e-2, 1.052e-2,
627 {-1.639e-2, -1.628e-2, -4.100e-2, -2.524e-2, -2.082e-2, -3.096e-3, -1.535e-2,
628 -1.594e-2, 1.974e-2, 1.212e-2, 1.859e-2, 3.067e-2, 2.477e-2, -3.289e-3},
629 {5.774e-2, 5.280e-2, 4.679e-2, 6.866e-2, 6.183e-2, 4.256e-2, 4.247e-2, -5.477e-3,
630 2.597e-2, 1.403e-2, -2.016e-2, -3.445e-2, -3.345e-2, -3.685e-2, -4.381e-2, -6.655e-2,
631 -2.791e-2, -4.438e-2}};
633 {-8.887e-3, -1.128e-2, -6.696e-3, -1.042e-2, -7.374e-3, -1.303e-2},
634 {4.338e-3, 8.247e-4, 3.374e-3, 1.151e-3, 1.616e-3, 7.210e-3, 3.103e-3, 1.564e-3, 2.896e-3, 5.346e-3},
635 {3.678e-3, 1.777e-3, 4.869e-3, 2.708e-3, 2.610e-3, 4.911e-4, 2.753e-3, -2.473e-3, 3.427e-3, 1.598e-3, 2.388e-3,
636 3.975e-3, 3.602e-3, 1.143e-3},
637 {-4.152e-3, -6.035e-3, -4.377e-3, -6.320e-3, -5.058e-3, -3.510e-3, -3.763e-3, 4.285e-4, -5.000e-3, 1.801e-3,
638 -3.673e-3, -3.629e-3, -3.629e-3, -3.660e-3, -4.075e-3, -7.053e-3, -4.439e-3, -6.091e-3}};
640 const Double_t p10si[4][18] = {{-2.385e-3, 6.372e-4, 8.679e-4, -2.758e-3, -5.495e-3, -4.838e-3},
641 {-3.930e-3, 2.765e-3, -3.730e-4, -5.525e-4, 1.433e-3, 1.042e-3, 2.216e-3, 3.619e-3,
643 {2.693e-3, 2.794e-3, -4.447e-3, -3.237e-4, 8.975e-4, 8.401e-4, -2.997e-3, -3.868e-3,
644 2.667e-3, -6.283e-4, 3.312e-3, 3.420e-3, 5.233e-3, -4.670e-3},
645 {7.950e-3, 2.818e-3, -1.178e-3, 3.522e-3, -1.457e-4, -2.013e-3, 3.139e-3, -1.060e-2,
646 -5.446e-3, 4.349e-3, 9.024e-4, -1.297e-3, -2.652e-3, -7.524e-3, -4.564e-3,
647 -9.118e-3, 8.307e-3, -5.750e-3}};
649 {3.525e-4, 4.803e-5, -4.898e-4, -5.709e-4, -1.111e-3, -1.295e-3},
650 {5.953e-4, -4.350e-4, 6.053e-5, 4.750e-5, 1.259e-4, 6.429e-4, 2.556e-4, 3.749e-4, 1.500e-4, 7.110e-4},
651 {1.719e-5, -3.435e-4, 6.088e-4, 1.112e-4, 2.683e-4, -6.623e-5, 4.340e-4, -6.263e-4, 4.717e-4, -1.268e-4,
652 4.721e-4, 5.582e-4, 6.571e-4, -4.956e-4},
653 {-4.333e-4, -3.287e-4, -7.432e-6, -4.067e-4, -6.684e-5, 3.667e-5, -4.441e-4, 8.977e-4, 7.495e-4, 5.340e-4,
654 -1.572e-4, -5.901e-5, -3.272e-4, -6.975e-4, -3.440e-4, -9.403e-4, 5.092e-4, -1.083e-3}};
661 static int irun = -1;
662 static Double_t zStat[19] = {-99, 0};
665 irun = ((
DstEventHeader*)FairRootManager::Instance()->GetObject(
"DstEventHeader."))->GetRunId();
677 for (
int ista = 0; ista < nsta; ++ista)
680 for (
int ista = 0; ista < nsta1; ++ista)
681 zStat[ista + nsta] =
GemStationSet->GetZStationPosition(ista);
683 for (
int j = 0; j < nsta + nsta1; ++j)
684 cout <<
" Stat: " << j <<
" " << zStat[j] << endl;
693 hit->SetX(hit->GetX() - SiDX[ista][isec]);
694 hit->SetY(hit->GetY() - SiDY[ista][isec]);
695 hit->SetZ(hit->GetZ() + SiDZ[ista][isec]);
697 hit->SetX(hit->GetX()
698 - (p0si[ista][isec] / 2 + p1si[ista][isec] / 2 * hit->GetY() + p10si[ista][isec]
699 + p11si[ista][isec] * hit->GetY()));
705 hit->SetX(hit->GetX() - StsDX[ista][isec]);
706 hit->SetY(hit->GetY() - StsDY[ista][isec]);
707 hit->SetZ(hit->GetZ() + GemDZ10[ista - 4][isec / 2]);
711 if (ista == 4 && isec == 3) {
712 if (hit->GetX() >= -28.8 && hit->GetX() < -18.5) {
713 hit->SetX(hit->GetX() - 0.16);
721 Double_t xshift[9] = {0.024, 0.058, 0.039, 0.050, 0.005, 0.028, 0.000};
725 hit->SetX(xnew + xshift[ista - 4]);
730 hit->SetZ(znew + zStat[ista]);
1378 {{0.00, -0.08, 0.00, -0.08}, {0.08, 0.00, 0.08, 0.00}, {0.00, -0.08, 0.00, -0.08}, {0.08, 0.00, 0.08, 0.00},
1379 {0.00, -0.08, 0.00, -0.08}, {0.08, 0.00, 0.08, 0.00}, {0.00, -0.08, 0.00, -0.08}};
1382 {{0.0131, -0.1022, 0.4127, 0.2407}, {-0.1025, 0.0035, 0.2344, 0.4093}, {0.0193, -0.0808, 0.4177, 0.2454},
1383 {-0.1069, 0.0288, 0.2310, 0.4147}, {0.0072, -0.1293, 0.4095, 0.2313}, {-0.1179, 0.0030, 0.2323, 0.4062},
1384 {0.0053, -0.1138, 0.4092, 0.2463}};
1386 const Double_t shfGemModuleX[7][4] =
1387 {{-0.1251, 0.0592, -0.0743, 0.1234}, {-0.0720, 0.0918, 0.0191, 0.1434}, {-0.0117, 0.0620, -0.0155, 0.1445},
1388 {-0.2280, -0.1040, 0.0146, 0.1670}, {-0.0732, 0.0888, 0.1236, 0.2707}, {-0.0651, 0.1182, -0.0132, 0.1604},
1389 {0.0000, 0.0973, -0.0746, 0.1065}};
1391 const Double_t shfGemModuleY[7][4] =
1392 {{0.1333, 0.0381, -0.2890, -0.0304}, {-0.0321, 0.0003, -0.0026, -0.3052},
1393 {0.0418, -0.1293, -0.3283, -0.0173}, {-0.1771, -0.1612, -0.0736, -0.3755},
1394 {-0.0554, -0.1120, -0.3490, -0.0262}, {-0.1078, -0.0635, -0.1224, -0.4269},
1395 {0.0000, -0.1289, -0.5098, -0.1929}};
1399 {{66.0942, 66.0942, 61.3303, 61.3303}, {92.4609, 92.4609, 97.2615, 97.2615},
1400 {128.4895, 128.4895, 123.5238, 123.5238}, {154.8822, 154.8822, 159.7121, 159.7121},
1401 {190.8547, 190.8547, 186.0839, 186.0839}, {217.2125, 217.2125, 222.0896, 222.0896},
1402 {253.1800, 253.1800, 248.5170, 248.5170}};
1406 {{-0.0749, -0.0658, -0.0703, -0.0074, -0.0357, 0.0177},
1407 {0.0035, 0.0114, -0.0032, 0.0048, 0.0082, 0.0022},
1408 {0.0191, 0.0071, 0.0021, 0.0039, -0.0045, -0.0125, 0.0040, -0.0028, 0.0089, 0.0105},
1409 {0.0315, 0.0119, 0.0100, 0.0038, 0.0034, -0.0020, 0.0031, -0.0126, -0.0011, -0.0061, -0.0047, -0.0049, 0,
1411 {0.0391, -0.0025, 0.0043, -0.0035, 0.0004, -0.0071, -0.0042, -0.0149, -0.0020, 0.0664, -0.3079, 0.0212, 0.0202,
1412 0.0194, 0.0166, 0.0192, -0.0048, 0.0058}};
1414 const Double_t shfSiModuleY[5][18] =
1415 {{0.1315, 0.1563, 0.2000, 0.1403, 0.2708, 0.2257},
1416 {-0.0322, -0.0230, -0.0362, 0.1109, 0.1128, 0.1171},
1417 {-0.0553, -0.0622, -0.0714, -0.0501, -0.0373, 0.1308, 0.1381, 0.13775, 0.1326, 0.1383},
1418 {-0.0481, -0.0792, -0.0762, -0.0752, -0.0741, -0.0644, -0.0458, 0.1312, 0.1108, 0.1181, 0.1233, 0.1243, 0.1206,
1420 {-0.0457, -0.0839, -0.074, -0.1295, -0.0906, -0.0695, -0.0422, -0.0373, -0.0886, 0.0922, 0.1132, 0.1265,
1421 0.1066, 0.1144, 0.1079, 0.1028, 0.0963, 0.1003}};
1424 {{8.4219, 8.3338, 8.5018, 7.4086, 7.4899, 7.3798},
1425 {19.2659, 20.4102, 19.2102, 16.1029, 14.8970, 16.2674},
1426 {29.2501, 28.1111, 29.2931, 27.9594, 29.1102, 23.7346, 24.8556, 23.7454, 24.9745, 23.7512},
1427 {36.6630, 37.8982, 36.6077, 37.8718, 36.5320, 37.7034, 36.5650, 33.5985, 32.4420, 33.5933, 32.4600, 33.8248,
1429 {46.7083, 45.5855, 46.7284, 45.5163, 46.7781, 45.3822, 46.5663, 45.4256, 46.5626, 41.2927, 42.6039, 41.3226,
1430 42.5169, 41.4480, 42.6462, 41.4951, 42.5908, 41.4675}};
1432 const int nSi = 5, nGem = 7;
1433 const int istaStrips = 0, isecStrips = 3;
1436 int irun = ((
DstEventHeader*)FairRootManager::Instance()->GetObject(
"DstEventHeader."))->GetRunId();
1443 Double_t xyz[3] = {hit->GetX(), hit->GetY(), hit->GetZ()};
1451 if (isec % 2 == 0) {
1452 int icold = isec / 2;
1453 xyz[0] -= shfGemColdX[ista][icold];
1454 xyz[1] -= shfGemColdY[ista][icold];
1456 int iquad = isec / 2;
1457 xyz[0] -= shfGemModuleX[ista][iquad];
1458 xyz[1] -= shfGemModuleY[ista][iquad];
1459 xyz[2] = GemModuleZ[ista][iquad];
1460 if (ista == istaStrips && isec == isecStrips) {
1462 Double_t xclu = (xyz[0] + 38.5292) / 0.08;
1463 if (xclu > 130 && xclu < 256.5) {
1470 xyz[0] -= shfSiModuleX[ista][isec];
1471 xyz[1] -= shfSiModuleY[ista][isec];
1472 xyz[2] = SiModuleZ[ista][isec];