24 std::vector<size_t> nCombs_prior(sizes.size());
25 std::vector<int> temp(sizes.size(), 0);
27 for (
size_t i = 0;
i < sizes.size();
i++)
31 nCombs_prior[
i] = nCombs;
37 std::vector<std::vector<int>> combos(nCombs, temp);
39 for (
size_t icomb = 0; icomb < nCombs; icomb++)
42 for (
size_t isize = sizes.size() - 1; isize < sizes.size(); isize--)
44 if (sizes[isize] == 0)
continue;
45 combos[icomb][isize] =
static_cast<int>(
index / nCombs_prior[isize]);
62 double const frac = 0.95;
63 double entries =
h->Integral(0,
h->GetNbinsX() + 1);
68 TH1* h_tmp =
dynamic_cast<TH1*
>(
h->Clone());
70 throw "dynamic_cast failure in FPGATrackSimFunctions rms95(TH1*)";
72 h_tmp->GetXaxis()->SetRange(1, h_tmp->GetNbinsX());
74 int meanbin =
h->GetXaxis()->FindBin(h_tmp->GetMean());
75 int lowerbin = meanbin;
76 int upperbin = meanbin;
78 double sum =
h->GetBinContent(meanbin);
84 int this_lowerbin = meanbin -
i;
85 int this_upperbin = meanbin +
i;
86 if (this_lowerbin < 1 || this_upperbin >
h->GetNbinsX())
break;
88 sum += h_tmp->GetBinContent(this_lowerbin) + h_tmp->GetBinContent(this_upperbin);
92 lowerbin = this_lowerbin;
93 upperbin = this_upperbin;
99 if (upperfrac == lowerfrac)
return h->GetRMS();
101 double rms_lower = 0;
102 double rms_upper = 0;
104 h_tmp->GetXaxis()->SetRange(lowerbin, upperbin);
105 rms_lower = h_tmp->GetRMS();
107 h_tmp->GetXaxis()->SetRange(lowerbin - 1, upperbin + 1);
108 rms_upper = h_tmp->GetRMS();
110 double rms = rms_lower + (
frac - lowerfrac) * (rms_upper - rms_lower) / (upperfrac - lowerfrac);
112 return rms * 1.1479538518;
118 std::vector<float> idealized_coordinates;
126 double houghRho = 0.0003 * hough_y;
128 hitGPhi += (hit.
getR() - target_r) * houghRho;
131 hitGPhi += (
pow(hit.
getR() * houghRho, 3.0) / 6.0);
134 if (hit.
getR() > 1
e-8) {
140 idealized_coordinates.push_back(hitZ);
143 double expectedGPhi = hough_x;
145 expectedGPhi -= target_r * houghRho;
148 expectedGPhi -= (
std::pow(target_r * houghRho, 3.0) / 6.0);
151 idealized_coordinates.push_back(hitGPhi - expectedGPhi);
154 idealized_coordinates.push_back(hitGPhi);
158 return idealized_coordinates;
167 corr = 0.0248 + -0.0005727f*
r + 0.000000781*
r*
r;
169 else if (region == 98) {
170 corr = 0.0465 + -0.0008291f*
r + 0.000000951*
r*
r;
172 else if (region == 162) {
173 corr = -0.0106 + -0.0003101f*
r + 0.000000253*
r*
r;
175 else if (region == 226) {
176 corr = -0.0283 + -0.0000953f*
r + -0.000001034*
r*
r;
178 else if (region == 290) {
179 corr = -0.0308 + 0.0001405f*
r + -0.000002490*
r*
r;
181 else if (region == 354) {
182 corr = -0.0458 + 0.0010403f*
r + -0.000005134*
r*
r;
184 else if (region == 418) {
185 corr = -0.2827 + 0.0037327f*
r + -0.000011028*
r*
r;
187 else if (region == 482) {
188 corr = -0.5366 + 0.0071298f*
r + -0.000019784*
r*
r;
190 else if (region == 546) {
191 corr = -1.2843 + 0.0158170f*
r + -0.000039258*
r*
r;
193 else if (region == 610) {
194 corr = -1.5723 + 0.0218720f*
r + -0.000058057*
r*
r;
196 else if (region == 674) {
197 corr = -1.6054 + 0.0255374f*
r + -0.000075211*
r*
r;
199 else if (region == 738) {
200 corr = -1.1620 + 0.0218955f*
r + -0.000082656*
r*
r;
202 else if (region == 802) {
203 corr = -1.0069 + 0.0232949f*
r + -0.000108384*
r*
r;
205 else if (region == 866) {
206 corr = -0.6938 + 0.0183421f*
r + -0.000105477*
r*
r;
208 else if (region == 930) {
209 corr = -0.5990 + 0.0176694f*
r + -0.000122848*
r*
r;
211 else if (region == 994) {
212 corr = -0.6198 + 0.0185393f*
r + -0.000151144*
r*
r;
214 else if (region == 1058) {
215 corr = -0.6539 + 0.0218236f*
r + -0.000196043*
r*
r;
217 else if (region == 1122) {
218 corr = -0.8929 + 0.0316982f*
r + -0.000308742*
r*
r;
220 else if (region == 1186) {
221 corr = -0.7069 + 0.0283101f*
r + -0.000328576*
r*
r;
223 else if (region == 1250) {
224 corr = -1.2240 + 0.0472546f*
r + -0.000538216*
r*
r;
226 return -corr*qoverpt;