16 #include "CLHEP/Random/RandGauss.h"
66 unsigned int nComp =
comp.size();
72 for (
unsigned int i = 0;
i < nComp; ++
i) {
77 int subdetlevel =
id.subdetId();
82 if (subdetlevel > 0) {
85 double value0 = CLHEP::RandGauss::shoot(0,
value[0]);
86 double value1 = CLHEP::RandGauss::shoot(0,
value[1]);
87 double value2 = CLHEP::RandGauss::shoot(0,
value[2]);
88 double value3 = CLHEP::RandGauss::shoot(0,
value[3]);
89 double value4 = CLHEP::RandGauss::shoot(0,
value[4]);
90 double value5 = CLHEP::RandGauss::shoot(0,
value[5]);
110 double value0 = CLHEP::RandGauss::shoot(0, constMis);
111 double value1 = CLHEP::RandGauss::shoot(0, constMis);
112 double value2 = CLHEP::RandGauss::shoot(0, constMis);
113 double value3 = CLHEP::RandGauss::shoot(0, dAngle);
114 double value4 = CLHEP::RandGauss::shoot(0, dAngle);
115 double value5 = CLHEP::RandGauss::shoot(0, dAngle);
131 unsigned int nComp =
comp.size();
134 for (
unsigned int i = 0;
i < nComp; ++
i) {
139 int subdetlevel =
id.subdetId();
144 double error0 =
error[0];
145 double error1 =
error[1];
146 double error2 =
error[2];
147 double error3 =
error[3];
148 double error4 =
error[4];
149 double error5 =
error[5];
154 if ((
level <= 2) && (subdetlevel == 3)) {
157 if ((
level == 2) && (nComp == 2)) {
162 if ((
level <= 2) && (subdetlevel == 4)) {
174 if ((
level == 23) && (subdetlevel == 4)) {
182 if ((
level == 22) && (subdetlevel == 4)) {
191 if ((
level <= 2) && (subdetlevel == 5)) {
199 if ((
level == 2) && (nComp == 2)) {
203 if ((
level == 27) && (subdetlevel == 5)) {
212 if ((
level <= 2) && (subdetlevel == 6)) {
215 if ((
level == 2) && (nComp == 2)) {
219 if ((
level == 34) && (subdetlevel == 6)) {
227 if ((
level == 33) && (subdetlevel == 6)) {
235 if ((
level == 32) && (subdetlevel == 6)) {
247 double* errorData = error_Matrix.Array();
248 errorData[0] = error0 * error0;
249 errorData[2] = error1 * error1;
250 errorData[5] = error2 * error2;
251 errorData[9] = error3 * error3;
252 errorData[14] = error4 * error4;
253 errorData[20] = error5 * error5;
285 if ((
level == 37) && (subdetlevel == 1)) {
294 if ((
level == 38) && (subdetlevel == 3)) {
303 if ((
level == 39) && (subdetlevel == 1)) {
312 if ((
level == 7) && (subdetlevel == 1)) {
320 if ((
level == 6) && (subdetlevel == 1)) {
328 if ((
level == 5) && (subdetlevel == 1)) {
336 if ((
level == 4) && (subdetlevel == 1)) {
344 if ((
level == 2) && (subdetlevel == 1)) {
352 if ((
level == 1) && (subdetlevel == 1)) {
361 if ((
level == 13) && (subdetlevel == 2)) {
369 if ((
level == 12) && (subdetlevel == 2)) {
377 if ((
level == 11) && (subdetlevel == 2)) {
385 if ((
level == 10) && (subdetlevel == 2)) {
393 if ((
level == 9) && (subdetlevel == 2)) {
401 if ((
level == 2) && (subdetlevel == 2)) {
409 if ((
level == 1) && (subdetlevel == 2)) {
418 if ((
level == 20) && (subdetlevel == 3)) {
426 if ((
level == 19) && (subdetlevel == 3)) {
434 if ((
level == 18) && (subdetlevel == 3)) {
442 if ((
level == 17) && (subdetlevel == 3)) {
450 if ((
level == 16) && (subdetlevel == 3)) {
458 if ((
level == 15) && (subdetlevel == 3)) {
466 if ((
level == 2) && (subdetlevel == 3)) {
474 if ((
level == 1) && (subdetlevel == 3)) {
483 if ((
level == 25) && (subdetlevel == 4)) {
491 if ((
level == 24) && (subdetlevel == 4)) {
499 if ((
level == 23) && (subdetlevel == 4)) {
507 if ((
level == 22) && (subdetlevel == 4)) {
515 if ((
level == 2) && (subdetlevel == 4)) {
523 if ((
level == 1) && (subdetlevel == 4)) {
532 if ((
level == 30) && (subdetlevel == 5)) {
540 if ((
level == 29) && (subdetlevel == 5)) {
548 if ((
level == 28) && (subdetlevel == 5)) {
556 if ((
level == 27) && (subdetlevel == 5)) {
564 if ((
level == 2) && (subdetlevel == 5)) {
572 if ((
level == 1) && (subdetlevel == 5)) {
581 if ((
level == 36) && (subdetlevel == 6)) {
589 if ((
level == 35) && (subdetlevel == 6)) {
597 if ((
level == 34) && (subdetlevel == 6)) {
601 deltaRW(4) = 0.00005;
602 deltaRW(5) = 0.00005;
603 deltaRW(6) = 0.00005;
605 if ((
level == 33) && (subdetlevel == 6)) {
613 if ((
level == 32) && (subdetlevel == 6)) {
617 deltaRW(4) = 0.00015;
618 deltaRW(5) = 0.00015;
619 deltaRW(6) = 0.00015;
621 if ((
level == 2) && (subdetlevel == 6)) {
629 if ((
level == 1) && (subdetlevel == 6)) {
652 if ((
level == 37) && (subdetlevel == 1)) {
661 if ((
level == 38) && (subdetlevel == 3)) {
670 if ((
level == 39) && (subdetlevel == 1)) {
679 if ((
level == 7) && (subdetlevel == 1)) {
687 if ((
level == 6) && (subdetlevel == 1)) {
695 if ((
level == 5) && (subdetlevel == 1)) {
703 if ((
level == 4) && (subdetlevel == 1)) {
707 deltaRW(4) = 0.00005;
708 deltaRW(5) = 0.00005;
709 deltaRW(6) = 0.00005;
711 if ((
level == 2) && (subdetlevel == 1)) {
719 if ((
level == 1) && (subdetlevel == 1)) {
728 if ((
level == 13) && (subdetlevel == 2)) {
736 if ((
level == 12) && (subdetlevel == 2)) {
740 deltaRW(4) = 0.00015;
741 deltaRW(5) = 0.00015;
742 deltaRW(6) = 0.00015;
744 if ((
level == 11) && (subdetlevel == 2)) {
752 if ((
level == 10) && (subdetlevel == 2)) {
760 if ((
level == 9) && (subdetlevel == 2)) {
768 if ((
level == 2) && (subdetlevel == 2)) {
776 if ((
level == 1) && (subdetlevel == 2)) {
785 if ((
level == 20) && (subdetlevel == 3)) {
793 if ((
level == 19) && (subdetlevel == 3)) {
801 if ((
level == 18) && (subdetlevel == 3)) {
809 if ((
level == 17) && (subdetlevel == 3)) {
817 if ((
level == 16) && (subdetlevel == 3)) {
825 if ((
level == 15) && (subdetlevel == 3)) {
833 if ((
level == 2) && (subdetlevel == 3)) {
841 if ((
level == 1) && (subdetlevel == 3)) {
850 if ((
level == 25) && (subdetlevel == 4)) {
858 if ((
level == 24) && (subdetlevel == 4)) {
866 if ((
level == 23) && (subdetlevel == 4)) {
870 deltaRW(4) = 0.00004;
871 deltaRW(5) = 0.00004;
872 deltaRW(6) = 0.00004;
874 if ((
level == 22) && (subdetlevel == 4)) {
878 deltaRW(4) = 0.00004;
879 deltaRW(5) = 0.00004;
880 deltaRW(6) = 0.00004;
882 if ((
level == 2) && (subdetlevel == 4)) {
890 if ((
level == 1) && (subdetlevel == 4)) {
899 if ((
level == 30) && (subdetlevel == 5)) {
903 deltaRW(4) = 0.00025;
904 deltaRW(5) = 0.00025;
905 deltaRW(6) = 0.00025;
907 if ((
level == 29) && (subdetlevel == 5)) {
915 if ((
level == 28) && (subdetlevel == 5)) {
923 if ((
level == 27) && (subdetlevel == 5)) {
931 if ((
level == 2) && (subdetlevel == 5)) {
939 if ((
level == 1) && (subdetlevel == 5)) {
948 if ((
level == 36) && (subdetlevel == 6)) {
956 if ((
level == 35) && (subdetlevel == 6)) {
964 if ((
level == 34) && (subdetlevel == 6)) {
968 deltaRW(4) = 0.00005;
969 deltaRW(5) = 0.00005;
970 deltaRW(6) = 0.00005;
972 if ((
level == 33) && (subdetlevel == 6)) {
980 if ((
level == 32) && (subdetlevel == 6)) {
984 deltaRW(4) = 0.00015;
985 deltaRW(5) = 0.00015;
986 deltaRW(6) = 0.00015;
988 if ((
level == 2) && (subdetlevel == 6)) {
996 if ((
level == 1) && (subdetlevel == 6)) {
1000 deltaRW(4) = 0.0001;
1001 deltaRW(5) = 0.0001;
1002 deltaRW(6) = 0.0001;