4 int straw_offset[29] = {0,0,42,84,138,192,258,324,404,484,577,670,776,882,1005,1128,1263,1398,1544,1690,1848,2006,2176,2346,2528,2710,2907,3104,3313};
5 int Nstraws[28] = {42, 42, 54, 54, 66, 66, 80, 80, 93, 93, 106, 106, 123, 123, 135, 135, 146, 146, 158, 158, 170, 170, 182, 182, 197, 197, 209, 209};
6 double radius[28] = {10.72134, 12.08024, 13.7795, 15.14602, 18.71726, 20.2438, 22.01672, 23.50008, 25.15616, 26.61158, 28.33624, 29.77388, 31.3817, 32.75838, 34.43478, 35.81146, 38.28542, 39.7002, 41.31564, 42.73042, 44.34078, 45.75302, 47.36084, 48.77054, 50.37582, 51.76012, 53.36286, 54.74716};
7 double phi[28] = {0, 0.074707844, 0.038166294, 0.096247609, 0.05966371, 0.012001551, 0.040721951, 0.001334527, 0.014963808, 0.048683644, 0.002092645, 0.031681749, 0.040719354, 0.015197341, 0.006786058, 0.030005892, 0.019704045, -0.001782064, -0.001306618, 0.018592421, 0.003686784, 0.022132975, 0.019600866, 0.002343723, 0.021301449, 0.005348855, 0.005997358, 0.021018761};
8 double phi_ds[28] = { 0.000557611,0.0764693,0.0385138,0.0975182,-0.816345,-0.864077,-0.696401,-0.736506,0.656304,0.690227,0.57023,0.599326,0.0410675,0.0145592,0.00729358,0.0296972,0.43739,0.415211,0.38506,0.405461,-0.355973,-0.337391,-0.317012,-0.334703,0.0212654,0.0058214,0.005997358,0.0213175};
11 outFile_dxu.open(
"dxu_Constraints.txt");
13 outFile_dxd.open(
"dxd_Constraints.txt");
15 outFile_dyu.open(
"dyu_Constraints.txt");
17 outFile_dyd.open(
"dyd_Constraints.txt");
20 outFile_dxu <<
"Contraint 0.0" << endl;
21 outFile_dxd <<
"Contraint 0.0" << endl;
22 outFile_dyu <<
"Contraint 0.0" << endl;
23 outFile_dyd <<
"Contraint 0.0" << endl;
32 for (
unsigned int iRing = 1; iRing <= 28; iRing++){
34 double dPhi = 2*TMath::Pi() / Nstraws[iRing-1];
36 outFile_dxu <<
"Contraint 0.0" << endl;
37 outFile_dxd <<
"Contraint 0.0" << endl;
38 outFile_dyu <<
"Contraint 0.0" << endl;
39 outFile_dyd <<
"Contraint 0.0" << endl;
42 for (
unsigned int iStraw = 1; iStraw <= Nstraws[iRing-1]; iStraw++){
43 int index = straw_offset[iRing]+iStraw;
44 int dxu_index = 1000 + (index-1)*4 +1;
45 int dyu_index = 1000 + (index-1)*4 +2;
46 int dxd_index = 1000 + (index-1)*4 +3;
47 int dyd_index = 1000 + (index-1)*4 +4;
49 double ConstraintXU = TMath::Cos(phi[iRing-1] + dPhi*(iStraw-1));
50 double ConstraintXD = TMath::Cos(phi_ds[iRing-1] + dPhi*(iStraw-1));
51 double ConstraintYU = TMath::Sin(phi[iRing-1] + dPhi*(iStraw-1));
52 double ConstraintYD = TMath::Sin(phi_ds[iRing-1] + dPhi*(iStraw-1));
54 outFile_dxu << dxu_index <<
" " << ConstraintXU << endl;
55 outFile_dxd << dxd_index <<
" " << ConstraintXD << endl;
56 outFile_dyu << dyu_index <<
" " << ConstraintYU << endl;
57 outFile_dyd << dyd_index <<
" " << ConstraintYD << endl;
63 outFile_dxu <<
"Contraint 0.0" << endl;
64 outFile_dxd <<
"Contraint 0.0" << endl;
65 outFile_dyu <<
"Contraint 0.0" << endl;
66 outFile_dyd <<
"Contraint 0.0" << endl;
75 for (
unsigned int iRing = 1; iRing <= 28; iRing++){
77 double dPhi = 2*TMath::Pi() / Nstraws[iRing-1];
79 outFile_dxu <<
"Contraint 0.0" << endl;
80 outFile_dxd <<
"Contraint 0.0" << endl;
81 outFile_dyu <<
"Contraint 0.0" << endl;
82 outFile_dyd <<
"Contraint 0.0" << endl;
85 for (
unsigned int iStraw = 1; iStraw <= Nstraws[iRing-1]; iStraw++){
86 int index = straw_offset[iRing]+iStraw;
87 int dxu_index = 1000 + (index-1)*4 +1;
88 int dyu_index = 1000 + (index-1)*4 +2;
89 int dxd_index = 1000 + (index-1)*4 +3;
90 int dyd_index = 1000 + (index-1)*4 +4;
92 double ConstraintXU = TMath::Sin(phi[iRing-1] + dPhi*(iStraw-1));
93 double ConstraintXD = TMath::Sin(phi_ds[iRing-1] + dPhi*(iStraw-1));
94 double ConstraintYU = TMath::Cos(phi[iRing-1] + dPhi*(iStraw-1));
95 double ConstraintYD = TMath::Cos(phi_ds[iRing-1] + dPhi*(iStraw-1));
97 outFile_dxu << dxu_index <<
" " << ConstraintXU << endl;
98 outFile_dxd << dxd_index <<
" " << ConstraintXD << endl;
99 outFile_dyu << dyu_index <<
" " << ConstraintYU << endl;
100 outFile_dyd << dyd_index <<
" " << ConstraintYD << endl;
141 outFile_dxu <<
"Contraint 0.0" << endl;
142 outFile_dxd <<
"Contraint 0.0" << endl;
143 outFile_dyu <<
"Contraint 0.0" << endl;
144 outFile_dyd <<
"Contraint 0.0" << endl;
147 for (
unsigned int iRing = 1; iRing <= 28; iRing++){
149 double dPhi = 2*TMath::Pi() / Nstraws[iRing-1];
151 for (
unsigned int iStraw = 1; iStraw <= Nstraws[iRing-1]; iStraw++){
152 int index = straw_offset[iRing]+iStraw;
153 int dxu_index = 1000 + (index-1)*4 +1;
154 int dyu_index = 1000 + (index-1)*4 +2;
155 int dxd_index = 1000 + (index-1)*4 +3;
156 int dyd_index = 1000 + (index-1)*4 +4;
158 double ConstraintX = 1;
159 double ConstraintY = 1;
161 outFile_dxu << dxu_index <<
" " << ConstraintX << endl;
162 outFile_dxd << dxd_index <<
" " << ConstraintX << endl;
163 outFile_dyu << dyu_index <<
" " << ConstraintY << endl;
164 outFile_dyd << dyd_index <<
" " << ConstraintY << endl;
static char index(char c)
void MakeCDCConstraintsFile(bool perRing=true)