35 #include "TrackingAction.hh"
37 #include "DetectorConstruction.hh"
38 #include "RunAction.hh"
39 #include "EventAction.hh"
40 #include "HistoManager.hh"
50 :fDetector(DET), fRunAction(RA), fEventAction(EA)
76 G4bool transmit = ((position.
x() >= fXendAbs) && (vertex.
x() < fXendAbs));
77 G4bool reflect = (position.
x() <= fXstartAbs);
78 G4bool notabsor = (transmit || reflect);
83 if (charge == fPrimaryCharge) flag = 1;
91 G4bool charged = (charge != 0.);
97 if (transmit && charged)
id = 10;
98 else if (transmit && neutral)
id = 20;
99 else if (reflect && charged)
id = 30;
100 else if (reflect && neutral)
id = 40;
120 if (transmit && charged)
id = 12;
121 else if (transmit && neutral)
id = 22;
122 else if (reflect && charged)
id = 32;
123 else if (reflect && neutral)
id = 42;
126 G4double theta = std::acos(direction.
x());
128 G4double dteta = analysisManager->GetH1Width(
id);
129 G4double unit = analysisManager->GetH1Unit(
id);
138 analysisManager->FillH1(
id,theta,weight);
145 if (transmit && charged)
id = 11;
146 else if (transmit && neutral)
id = 21;
147 else if (reflect && charged)
id = 31;
148 else if (reflect && neutral)
id = 41;
151 G4double theta = std::acos(direction.
x());
153 G4double dteta = analysisManager->GetH1Width(
id);
154 G4double unit = analysisManager->GetH1Unit(
id);
157 analysisManager->FillH1(
id,theta,weight);
164 if (transmit && charged)
id = 13;
165 else if (transmit && neutral)
id = 23;
166 else if (reflect && charged)
id = 33;
167 else if (reflect && neutral)
id = 43;
170 if (direction.
x() != 0.0) {
171 G4double tet = std::atan(direction.
y()/std::fabs(direction.
x()));
172 analysisManager->FillH1(
id,tet);
175 tet = std::atan(direction.
z()/std::fabs(direction.
x()));
176 analysisManager->FillH1(
id,tet);
184 if (transmit && charged)
id = 14;
189 analysisManager->FillH1(
id, y);
190 analysisManager->FillH1(
id,
z);
191 analysisManager->FillH1(
id+1, r);
198 analysisManager->FillH1(6, xVertex);
199 if (notabsor) analysisManager->FillH1(7, xVertex);