13 #include <boost/assign/list_of.hpp>
17 using boost::assign::list_of;
20 : fMat(
"iron"), fOutputDir(
"./test/") {
58 }
else if (
fMat ==
"tungsten") {
60 }
else if (
fMat ==
"carbon") {
71 new TCanvas(
"mean_energy_loss_muons",
"mean_energy_loss_muons", 700, 500);
73 fTable[0]->GetXaxis()->SetLimits(45, 100102);
74 fTable[0]->SetMinimum(0.1);
75 fTable[0]->SetMaximum(10.);
79 list_of(
"total (table)")(
"ionization (table)")(
80 "bremsstrahlung (table)")(
"pair production (table)")(
81 "total (calculation)")(
"ionization (calculation)")(
82 "bremsstrahlung (calculation)")(
"pair production (calculation)"),
96 if (
fMat ==
"tungsten") {
97 material.
SetA(183.84);
100 material.
SetRL(0.35);
101 }
else if (
fMat ==
"iron") {
102 material.
SetA(55.85);
105 material.
SetRL(1.757622);
106 }
else if (
fMat ==
"carbon") {
107 material.
SetA(12.0107);
110 material.
SetRL(18.8);
117 for (Int_t
i = 0;
i < 26;
i++) {
127 for (
int i = 0;
i < 4;
i++) {
129 fTable[
i]->GetXaxis()->SetTitle(
"Momentum [MeV/c]");
130 fTable[
i]->GetYaxis()->SetTitle(
"Energy loss [Mev*cm^2/g]");
132 fCalc[
i]->GetXaxis()->SetTitle(
"Momentum [MeV/c]");
133 fCalc[
i]->GetYaxis()->SetTitle(
"Energy loss [Mev*cm^2/g]");
138 Double_t table_iron[26][4] = {
140 {5.494, 0.000, 0.000, 5.494}, {4.321, 0.000, 0.000, 4.321},
141 {3.399, 0.000, 0.000, 3.399}, {2.654, 0.000, 0.000, 2.654},
142 {2.274, 0.000, 0.000, 2.274}, {1.717, 0.000, 0.000, 1.717},
144 {1.616, 0.000, 0.000, 1.616}, {1.516, 0.000, 0.000, 1.516},
145 {1.463, 0.000, 0.000, 1.463}, {1.451, 0.000, 0.000, 1.451},
146 {1.452, 0.000, 0.000, 1.453}, {1.467, 0.000, 0.000, 1.467},
147 {1.548, 0.000, 0.000, 1.548},
149 {1.581, 0.001, 0.000, 1.582}, {1.635, 0.001, 0.000, 1.637},
150 {1.694, 0.002, 0.001, 1.697}, {1.760, 0.003, 0.002, 1.767},
151 {1.806, 0.004, 0.004, 1.816}, {1.911, 0.010, 0.011, 1.936},
153 {1.942, 0.014, 0.015, 1.975}, {1.987, 0.021, 0.024, 2.039},
154 {2.032, 0.033, 0.039, 2.113}, {2.080, 0.054, 0.068, 2.214},
155 {2.112, 0.076, 0.099, 2.303}, {2.184, 0.171, 0.236, 2.623},
156 {2.207, 0.221, 0.310, 2.777}};
158 for (Int_t
i = 0;
i < 26;
i++) {
167 Double_t table_tungsten[26][4] = {
169 {4.000, 0.000, 0.000, 4.00}, {3.185, 0.000, 0.000, 3.185},
170 {2.534, 0.000, 0.000, 2.534}, {2.000, 0.000, 0.000, 2.000},
171 {1.726, 0.000, 0.000, 1.726}, {1.323, 0.000, 0.000, 1.323},
173 {1.251, 0.000, 0.000, 1.251}, {1.182, 0.000, 0.000, 1.182},
174 {1.149, 0.000, 0.000, 1.149}, {1.145, 0.000, 0.000, 1.145},
175 {1.150, 0.000, 0.000, 1.150}, {1.168, 0.000, 0.000, 1.168},
176 {1.247, 0.001, 0.000, 1.249},
178 {1.279, 0.001, 0.000, 1.281}, {1.329, 0.002, 0.001, 1.333},
179 {1.384, 0.004, 0.002, 1.391}, {1.446, 0.006, 0.005, 1.459},
180 {1.489, 0.009, 0.009, 1.509}, {1.587, 0.023, 0.026, 1.640},
182 {1.616, 0.031, 0.036, 1.687}, {1.658, 0.047, 0.057, 1.768},
183 {1.700, 0.073, 0.092, 1.874}, {1.745, 0.120, 0.159, 2.035},
184 {1.774, 0.169, 0.231, 2.190}, {1.840, 0.383, 0.548, 2.800},
185 {1.860, 0.496, 0.717, 3.110}};
187 for (Int_t
i = 0;
i < 26;
i++) {
196 Double_t table_carbon[26][4] = {
198 {7.119, 0.000, 0.000, 7.119}, {5.551, 0.000, 0.000, 5.551},
199 {4.332, 0.000, 0.000, 4.332}, {3.356, 0.000, 0.000, 3.356},
200 {2.861, 0.000, 0.000, 2.861}, {2.127, 0.000, 0.000, 2.127},
202 {1.992, 0.000, 0.000, 1.992}, {1.854, 0.000, 0.000, 1.854},
203 {1.775, 0.000, 0.000, 1.775}, {1.745, 0.000, 0.000, 1.745},
204 {1.745, 0.000, 0.000, 1.745}, {1.751, 0.000, 0.000, 1.751},
205 {1.819, 0.000, 0.000, 1.820},
207 {1.850, 0.000, 0.000, 1.851}, {1.900, 0.000, 0.000, 1.901},
208 {1.955, 0.000, 0.000, 1.957}, {2.018, 0.001, 0.001, 2.021},
209 {2.062, 0.001, 0.001, 2.066}, {2.161, 0.003, 0.003, 2.171},
211 {2.191, 0.004, 0.004, 2.204}, {2.234, 0.006, 0.007, 2.254},
212 {2.278, 0.010, 0.011, 2.308}, {2.326, 0.016, 0.019, 2.374},
213 {2.359, 0.022, 0.028, 2.427}, {2.434, 0.050, 0.068, 2.587},
214 {2.458, 0.065, 0.089, 2.655}};
216 for (Int_t
i = 0;
i < 26;
i++) {