55 {
56
57 int fiber, plate,
sign, station;
58
59 double E_fiber_sum[8][10][64][2];
60 double E_full_sum[8];
61 double E_layer_sum[8][20];
62
63
64 const int station_max{8};
65 const int plate_max{10};
66 const int fiber_max{64};
67
68 for (
int l = 0;
l < station_max;
l++ ) {
70 for (
int i = 0;
i < plate_max;
i++ ) {
71 E_layer_sum[
l][
i] = 0.;
72 E_layer_sum[
l][
i+plate_max] = 0.;
73 for ( int j = 0; j < fiber_max; j++ ) {
74 for (
int k = 0;
k < 2;
k++ ) {
75 E_fiber_sum[
l][
i][j][
k] = 0.;
76 }
77 }
78 }
79 }
80
81
83 CHECK( evtStore()->
retrieve(coll_handle,
"ALFA_HitCollection") );
84
85
86 for (const ALFA_Hit& hit : *coll_handle) {
87
88 station = hit.GetStationNumber();
89 plate = hit.GetPlateNumber();
90 fiber = hit.GetFiberNumber();
91 sign = hit.GetSignFiber();
92 if (plate==100) {
93
94 m_E_gvs->Fill(station,(hit.GetEnergyDeposit()));
95 continue;
96 }
97 E_fiber_sum[station-1][plate-1][fiber-1][(1-
sign)/2] += (hit.GetEnergyDeposit());
98 }
99
100 for (
int l = 0;
l < station_max;
l++ ) {
101 for (
int i = 0;
i < plate_max;
i++ ){
102 for ( int j = 0; j < fiber_max; j++ ) {
103 for (
int k = 0;
k < 2;
k++ ) {
104 E_full_sum[
l] += E_fiber_sum[
l][
i][j][
k];
105 E_layer_sum[
l][2*
i+
k] += E_fiber_sum[
l][
i][j][
k];
106 if (E_fiber_sum[l][i][j][k] > 0.) {
108 }
109 }
110 }
111 }
112 }
113
114 for (
int l = 0;
l < station_max;
l++ ) {
116 for (
int i = 0;
i < 2*plate_max;
i++ ) {
118 }
119 }
120
121 return StatusCode::SUCCESS;
122}
AtlasHitsVector< ALFA_Hit > ALFA_HitCollection
#define CHECK(...)
Evaluate an expression and check for errors.
l
Printing final latex table to .tex output file.