#include <Alignment/LaserAlignment/interface/LaserAlignmentTEC2TEC.h>
Public Member Functions | |
void | alignment (edm::ParameterSet const &theConf, AlignableTracker *theAlignableTracker, int theNumberOfIterations, int theAlignmentIteration, std::vector< double > &theLaserPhi, std::vector< double > &theLaserPhiError) |
do the alignment | |
LaserAlignmentTEC2TEC () | |
constructor | |
~LaserAlignmentTEC2TEC () | |
destructor | |
Private Attributes | |
LaserAlignmentAlgorithmTEC2TEC * | theLaserAlignmentTrackerTEC2TEC |
Definition at line 21 of file LaserAlignmentTEC2TEC.h.
LaserAlignmentTEC2TEC::LaserAlignmentTEC2TEC | ( | ) |
LaserAlignmentTEC2TEC::~LaserAlignmentTEC2TEC | ( | ) |
void LaserAlignmentTEC2TEC::alignment | ( | edm::ParameterSet const & | theConf, | |
AlignableTracker * | theAlignableTracker, | |||
int | theNumberOfIterations, | |||
int | theAlignmentIteration, | |||
std::vector< double > & | theLaserPhi, | |||
std::vector< double > & | theLaserPhiError | |||
) |
do the alignment
Definition at line 20 of file LaserAlignmentTEC2TEC.cc.
References LaserAlignmentAlgorithmTEC2TEC::addLaserBeam(), LaserAlignmentAlgorithmTEC2TEC::doGlobalFit(), LogDebug, and theLaserAlignmentTrackerTEC2TEC.
Referenced by LaserAlignment::alignmentAlgorithm().
00026 { 00027 edm::LogInfo("LaserAlignmentTEC2TEC") << " ***************************************************** " 00028 << "\n * Alignment of TEC-TOB-TIB-TEC * " 00029 << "\n ***************************************************** "; 00030 00031 int theMaxIteration = theNumberOfIterations - 1; 00032 00033 // create an alignment Object for TEC-TOB-TIB-TEC 00034 theLaserAlignmentTrackerTEC2TEC = new LaserAlignmentAlgorithmTEC2TEC(theConf, theAlignmentIteration); 00035 00036 // do the iterations for the local fits 00037 for (int theIteration = 0; theIteration < theNumberOfIterations; theIteration++) 00038 { 00039 // fill fitted Phi position of the Beams and the Errors on Phi into 00040 // a map. Afterwards add the beams to the LaserAlignmentTracker ... 00041 00042 LogDebug("LaserAlignmentTEC2TEC") << " AC1CMS: Total number of Iterations = " << theMaxIteration 00043 << "\n AC1CMS: Current Iteration = " << theIteration 00044 << "\n AC1CMS: Current Alignment Iteration = " << theAlignmentIteration; 00045 00046 // string is the name (i.e. Beam 0 in TEC+) and std::vector contains 00047 // 9 values for phi and the error on phi (on each Disc!) for the beam 00048 std::map<std::string, std::vector<double> > theBeamPosition; 00049 00050 // fill now the map 00051 // therefore loop over theLaserPhi and fill 00052 // Phi + Error in the map for each beam 00053 00054 // Beams in TEC+ 00055 std::vector<double> Beam0R4PosTEC; 00056 std::vector<double> Beam1R4PosTEC2TEC; 00057 std::vector<double> Beam2R4PosTEC2TEC; 00058 std::vector<double> Beam3R4PosTEC; 00059 std::vector<double> Beam4R4PosTEC2TEC; 00060 std::vector<double> Beam5R4PosTEC; 00061 std::vector<double> Beam6R4PosTEC2TEC; 00062 std::vector<double> Beam7R4PosTEC2TEC; 00063 00064 // Beams in TEC- 00065 std::vector<double> Beam0R4NegTEC; 00066 std::vector<double> Beam1R4NegTEC2TEC; 00067 std::vector<double> Beam2R4NegTEC2TEC; 00068 std::vector<double> Beam3R4NegTEC; 00069 std::vector<double> Beam4R4NegTEC2TEC; 00070 std::vector<double> Beam5R4NegTEC; 00071 std::vector<double> Beam6R4NegTEC2TEC; 00072 std::vector<double> Beam7R4NegTEC2TEC; 00073 00074 // Beams in TOB 00075 std::vector<double> Beam0TOB; 00076 std::vector<double> Beam1TOB; 00077 std::vector<double> Beam2TOB; 00078 std::vector<double> Beam3TOB; 00079 std::vector<double> Beam4TOB; 00080 std::vector<double> Beam5TOB; 00081 std::vector<double> Beam6TOB; 00082 std::vector<double> Beam7TOB; 00083 00084 // Beams in TIB 00085 std::vector<double> Beam0TIB; 00086 std::vector<double> Beam1TIB; 00087 std::vector<double> Beam2TIB; 00088 std::vector<double> Beam3TIB; 00089 std::vector<double> Beam4TIB; 00090 std::vector<double> Beam5TIB; 00091 std::vector<double> Beam6TIB; 00092 std::vector<double> Beam7TIB; 00093 00094 00095 // Beams in TEC+ 00096 Beam0R4PosTEC.push_back(theLaserPhi.at(0 + theIteration * 434)); 00097 Beam0R4PosTEC.push_back(theLaserPhiError.at(0 + theIteration * 434)); 00098 Beam0R4PosTEC.push_back(theLaserPhi.at(1 + theIteration * 434)); 00099 Beam0R4PosTEC.push_back(theLaserPhiError.at(1 + theIteration * 434)); 00100 Beam0R4PosTEC.push_back(theLaserPhi.at(2 + theIteration * 434)); 00101 Beam0R4PosTEC.push_back(theLaserPhiError.at(2 + theIteration * 434)); 00102 Beam0R4PosTEC.push_back(theLaserPhi.at(3 + theIteration * 434)); 00103 Beam0R4PosTEC.push_back(theLaserPhiError.at(3 + theIteration * 434)); 00104 Beam0R4PosTEC.push_back(theLaserPhi.at(4 + theIteration * 434)); 00105 Beam0R4PosTEC.push_back(theLaserPhiError.at(4 + theIteration * 434)); 00106 00107 00108 Beam1R4PosTEC2TEC.push_back(theLaserPhi.at(18 + theIteration * 434)); 00109 Beam1R4PosTEC2TEC.push_back(theLaserPhiError.at(18 + theIteration * 434)); 00110 Beam1R4PosTEC2TEC.push_back(theLaserPhi.at(19 + theIteration * 434)); 00111 Beam1R4PosTEC2TEC.push_back(theLaserPhiError.at(19 + theIteration * 434)); 00112 Beam1R4PosTEC2TEC.push_back(theLaserPhi.at(20 + theIteration * 434)); 00113 Beam1R4PosTEC2TEC.push_back(theLaserPhiError.at(20 + theIteration * 434)); 00114 Beam1R4PosTEC2TEC.push_back(theLaserPhi.at(21 + theIteration * 434)); 00115 Beam1R4PosTEC2TEC.push_back(theLaserPhiError.at(21 + theIteration * 434)); 00116 Beam1R4PosTEC2TEC.push_back(theLaserPhi.at(22 + theIteration * 434)); 00117 Beam1R4PosTEC2TEC.push_back(theLaserPhiError.at(22 + theIteration * 434)); 00118 00119 00120 Beam2R4PosTEC2TEC.push_back(theLaserPhi.at(32 + theIteration * 434)); 00121 Beam2R4PosTEC2TEC.push_back(theLaserPhiError.at(32 + theIteration * 434)); 00122 Beam2R4PosTEC2TEC.push_back(theLaserPhi.at(33 + theIteration * 434)); 00123 Beam2R4PosTEC2TEC.push_back(theLaserPhiError.at(33 + theIteration * 434)); 00124 Beam2R4PosTEC2TEC.push_back(theLaserPhi.at(34 + theIteration * 434)); 00125 Beam2R4PosTEC2TEC.push_back(theLaserPhiError.at(34 + theIteration * 434)); 00126 Beam2R4PosTEC2TEC.push_back(theLaserPhi.at(35 + theIteration * 434)); 00127 Beam2R4PosTEC2TEC.push_back(theLaserPhiError.at(35 + theIteration * 434)); 00128 Beam2R4PosTEC2TEC.push_back(theLaserPhi.at(36 + theIteration * 434)); 00129 Beam2R4PosTEC2TEC.push_back(theLaserPhiError.at(36 + theIteration * 434)); 00130 00131 Beam3R4PosTEC.push_back(theLaserPhi.at(37 + theIteration * 434)); 00132 Beam3R4PosTEC.push_back(theLaserPhiError.at(37 + theIteration * 434)); 00133 Beam3R4PosTEC.push_back(theLaserPhi.at(38 + theIteration * 434)); 00134 Beam3R4PosTEC.push_back(theLaserPhiError.at(38 + theIteration * 434)); 00135 Beam3R4PosTEC.push_back(theLaserPhi.at(39 + theIteration * 434)); 00136 Beam3R4PosTEC.push_back(theLaserPhiError.at(39 + theIteration * 434)); 00137 Beam3R4PosTEC.push_back(theLaserPhi.at(40 + theIteration * 434)); 00138 Beam3R4PosTEC.push_back(theLaserPhiError.at(40 + theIteration * 434)); 00139 Beam3R4PosTEC.push_back(theLaserPhi.at(41 + theIteration * 434)); 00140 Beam3R4PosTEC.push_back(theLaserPhiError.at(41 + theIteration * 434)); 00141 00142 00143 Beam4R4PosTEC2TEC.push_back(theLaserPhi.at(55 + theIteration * 434)); 00144 Beam4R4PosTEC2TEC.push_back(theLaserPhiError.at(55 + theIteration * 434)); 00145 Beam4R4PosTEC2TEC.push_back(theLaserPhi.at(56 + theIteration * 434)); 00146 Beam4R4PosTEC2TEC.push_back(theLaserPhiError.at(56 + theIteration * 434)); 00147 Beam4R4PosTEC2TEC.push_back(theLaserPhi.at(57 + theIteration * 434)); 00148 Beam4R4PosTEC2TEC.push_back(theLaserPhiError.at(57 + theIteration * 434)); 00149 Beam4R4PosTEC2TEC.push_back(theLaserPhi.at(58 + theIteration * 434)); 00150 Beam4R4PosTEC2TEC.push_back(theLaserPhiError.at(58 + theIteration * 434)); 00151 Beam4R4PosTEC2TEC.push_back(theLaserPhi.at(59 + theIteration * 434)); 00152 Beam4R4PosTEC2TEC.push_back(theLaserPhiError.at(59 + theIteration * 434)); 00153 00154 Beam5R4PosTEC.push_back(theLaserPhi.at(60 + theIteration * 434)); 00155 Beam5R4PosTEC.push_back(theLaserPhiError.at(60 + theIteration * 434)); 00156 Beam5R4PosTEC.push_back(theLaserPhi.at(61 + theIteration * 434)); 00157 Beam5R4PosTEC.push_back(theLaserPhiError.at(61 + theIteration * 434)); 00158 Beam5R4PosTEC.push_back(theLaserPhi.at(62 + theIteration * 434)); 00159 Beam5R4PosTEC.push_back(theLaserPhiError.at(62 + theIteration * 434)); 00160 Beam5R4PosTEC.push_back(theLaserPhi.at(63 + theIteration * 434)); 00161 Beam5R4PosTEC.push_back(theLaserPhiError.at(63 + theIteration * 434)); 00162 Beam5R4PosTEC.push_back(theLaserPhi.at(64 + theIteration * 434)); 00163 Beam5R4PosTEC.push_back(theLaserPhiError.at(64 + theIteration * 434)); 00164 00165 00166 Beam6R4PosTEC2TEC.push_back(theLaserPhi.at(78 + theIteration * 434)); 00167 Beam6R4PosTEC2TEC.push_back(theLaserPhiError.at(78 + theIteration * 434)); 00168 Beam6R4PosTEC2TEC.push_back(theLaserPhi.at(79 + theIteration * 434)); 00169 Beam6R4PosTEC2TEC.push_back(theLaserPhiError.at(79 + theIteration * 434)); 00170 Beam6R4PosTEC2TEC.push_back(theLaserPhi.at(80 + theIteration * 434)); 00171 Beam6R4PosTEC2TEC.push_back(theLaserPhiError.at(80 + theIteration * 434)); 00172 Beam6R4PosTEC2TEC.push_back(theLaserPhi.at(81 + theIteration * 434)); 00173 Beam6R4PosTEC2TEC.push_back(theLaserPhiError.at(81 + theIteration * 434)); 00174 Beam6R4PosTEC2TEC.push_back(theLaserPhi.at(82 + theIteration * 434)); 00175 Beam6R4PosTEC2TEC.push_back(theLaserPhiError.at(82 + theIteration * 434)); 00176 00177 00178 Beam7R4PosTEC2TEC.push_back(theLaserPhi.at(92 + theIteration * 434)); 00179 Beam7R4PosTEC2TEC.push_back(theLaserPhiError.at(92 + theIteration * 434)); 00180 Beam7R4PosTEC2TEC.push_back(theLaserPhi.at(93 + theIteration * 434)); 00181 Beam7R4PosTEC2TEC.push_back(theLaserPhiError.at(93 + theIteration * 434)); 00182 Beam7R4PosTEC2TEC.push_back(theLaserPhi.at(94 + theIteration * 434)); 00183 Beam7R4PosTEC2TEC.push_back(theLaserPhiError.at(94 + theIteration * 434)); 00184 Beam7R4PosTEC2TEC.push_back(theLaserPhi.at(95 + theIteration * 434)); 00185 Beam7R4PosTEC2TEC.push_back(theLaserPhiError.at(95 + theIteration * 434)); 00186 Beam7R4PosTEC2TEC.push_back(theLaserPhi.at(96 + theIteration * 434)); 00187 Beam7R4PosTEC2TEC.push_back(theLaserPhiError.at(96 + theIteration * 434)); 00188 00189 00190 // Beams in TEC- 00191 Beam0R4NegTEC.push_back(theLaserPhi.at(169 + theIteration * 434)); 00192 Beam0R4NegTEC.push_back(theLaserPhiError.at(169 + theIteration * 434)); 00193 Beam0R4NegTEC.push_back(theLaserPhi.at(170 + theIteration * 434)); 00194 Beam0R4NegTEC.push_back(theLaserPhiError.at(170 + theIteration * 434)); 00195 Beam0R4NegTEC.push_back(theLaserPhi.at(171 + theIteration * 434)); 00196 Beam0R4NegTEC.push_back(theLaserPhiError.at(171 + theIteration * 434)); 00197 Beam0R4NegTEC.push_back(theLaserPhi.at(172 + theIteration * 434)); 00198 Beam0R4NegTEC.push_back(theLaserPhiError.at(172 + theIteration * 434)); 00199 Beam0R4NegTEC.push_back(theLaserPhi.at(173 + theIteration * 434)); 00200 Beam0R4NegTEC.push_back(theLaserPhiError.at(173 + theIteration * 434)); 00201 00202 00203 Beam1R4NegTEC2TEC.push_back(theLaserPhi.at(187 + theIteration * 434)); 00204 Beam1R4NegTEC2TEC.push_back(theLaserPhiError.at(187 + theIteration * 434)); 00205 Beam1R4NegTEC2TEC.push_back(theLaserPhi.at(188 + theIteration * 434)); 00206 Beam1R4NegTEC2TEC.push_back(theLaserPhiError.at(188 + theIteration * 434)); 00207 Beam1R4NegTEC2TEC.push_back(theLaserPhi.at(189 + theIteration * 434)); 00208 Beam1R4NegTEC2TEC.push_back(theLaserPhiError.at(189 + theIteration * 434)); 00209 Beam1R4NegTEC2TEC.push_back(theLaserPhi.at(190 + theIteration * 434)); 00210 Beam1R4NegTEC2TEC.push_back(theLaserPhiError.at(190 + theIteration * 434)); 00211 Beam1R4NegTEC2TEC.push_back(theLaserPhi.at(191 + theIteration * 434)); 00212 Beam1R4NegTEC2TEC.push_back(theLaserPhiError.at(191 + theIteration * 434)); 00213 00214 00215 Beam2R4NegTEC2TEC.push_back(theLaserPhi.at(201 + theIteration * 434)); 00216 Beam2R4NegTEC2TEC.push_back(theLaserPhiError.at(201 + theIteration * 434)); 00217 Beam2R4NegTEC2TEC.push_back(theLaserPhi.at(202 + theIteration * 434)); 00218 Beam2R4NegTEC2TEC.push_back(theLaserPhiError.at(202 + theIteration * 434)); 00219 Beam2R4NegTEC2TEC.push_back(theLaserPhi.at(203 + theIteration * 434)); 00220 Beam2R4NegTEC2TEC.push_back(theLaserPhiError.at(203 + theIteration * 434)); 00221 Beam2R4NegTEC2TEC.push_back(theLaserPhi.at(204 + theIteration * 434)); 00222 Beam2R4NegTEC2TEC.push_back(theLaserPhiError.at(204 + theIteration * 434)); 00223 Beam2R4NegTEC2TEC.push_back(theLaserPhi.at(205 + theIteration * 434)); 00224 Beam2R4NegTEC2TEC.push_back(theLaserPhiError.at(205 + theIteration * 434)); 00225 00226 Beam3R4NegTEC.push_back(theLaserPhi.at(206 + theIteration * 434)); 00227 Beam3R4NegTEC.push_back(theLaserPhiError.at(206 + theIteration * 434)); 00228 Beam3R4NegTEC.push_back(theLaserPhi.at(207 + theIteration * 434)); 00229 Beam3R4NegTEC.push_back(theLaserPhiError.at(207 + theIteration * 434)); 00230 Beam3R4NegTEC.push_back(theLaserPhi.at(208 + theIteration * 434)); 00231 Beam3R4NegTEC.push_back(theLaserPhiError.at(208 + theIteration * 434)); 00232 Beam3R4NegTEC.push_back(theLaserPhi.at(209 + theIteration * 434)); 00233 Beam3R4NegTEC.push_back(theLaserPhiError.at(209 + theIteration * 434)); 00234 Beam3R4NegTEC.push_back(theLaserPhi.at(210 + theIteration * 434)); 00235 Beam3R4NegTEC.push_back(theLaserPhiError.at(210 + theIteration * 434)); 00236 00237 00238 Beam4R4NegTEC2TEC.push_back(theLaserPhi.at(224 + theIteration * 434)); 00239 Beam4R4NegTEC2TEC.push_back(theLaserPhiError.at(224 + theIteration * 434)); 00240 Beam4R4NegTEC2TEC.push_back(theLaserPhi.at(225 + theIteration * 434)); 00241 Beam4R4NegTEC2TEC.push_back(theLaserPhiError.at(225 + theIteration * 434)); 00242 Beam4R4NegTEC2TEC.push_back(theLaserPhi.at(226 + theIteration * 434)); 00243 Beam4R4NegTEC2TEC.push_back(theLaserPhiError.at(226 + theIteration * 434)); 00244 Beam4R4NegTEC2TEC.push_back(theLaserPhi.at(227 + theIteration * 434)); 00245 Beam4R4NegTEC2TEC.push_back(theLaserPhiError.at(227 + theIteration * 434)); 00246 Beam4R4NegTEC2TEC.push_back(theLaserPhi.at(228 + theIteration * 434)); 00247 Beam4R4NegTEC2TEC.push_back(theLaserPhiError.at(228 + theIteration * 434)); 00248 00249 Beam5R4NegTEC.push_back(theLaserPhi.at(229 + theIteration * 434)); 00250 Beam5R4NegTEC.push_back(theLaserPhiError.at(229 + theIteration * 434)); 00251 Beam5R4NegTEC.push_back(theLaserPhi.at(230 + theIteration * 434)); 00252 Beam5R4NegTEC.push_back(theLaserPhiError.at(230 + theIteration * 434)); 00253 Beam5R4NegTEC.push_back(theLaserPhi.at(231 + theIteration * 434)); 00254 Beam5R4NegTEC.push_back(theLaserPhiError.at(231 + theIteration * 434)); 00255 Beam5R4NegTEC.push_back(theLaserPhi.at(232 + theIteration * 434)); 00256 Beam5R4NegTEC.push_back(theLaserPhiError.at(232 + theIteration * 434)); 00257 Beam5R4NegTEC.push_back(theLaserPhi.at(233 + theIteration * 434)); 00258 Beam5R4NegTEC.push_back(theLaserPhiError.at(233 + theIteration * 434)); 00259 00260 00261 Beam6R4NegTEC2TEC.push_back(theLaserPhi.at(247 + theIteration * 434)); 00262 Beam6R4NegTEC2TEC.push_back(theLaserPhiError.at(247 + theIteration * 434)); 00263 Beam6R4NegTEC2TEC.push_back(theLaserPhi.at(248 + theIteration * 434)); 00264 Beam6R4NegTEC2TEC.push_back(theLaserPhiError.at(248 + theIteration * 434)); 00265 Beam6R4NegTEC2TEC.push_back(theLaserPhi.at(249 + theIteration * 434)); 00266 Beam6R4NegTEC2TEC.push_back(theLaserPhiError.at(249 + theIteration * 434)); 00267 Beam6R4NegTEC2TEC.push_back(theLaserPhi.at(250 + theIteration * 434)); 00268 Beam6R4NegTEC2TEC.push_back(theLaserPhiError.at(250 + theIteration * 434)); 00269 Beam6R4NegTEC2TEC.push_back(theLaserPhi.at(251 + theIteration * 434)); 00270 Beam6R4NegTEC2TEC.push_back(theLaserPhiError.at(251 + theIteration * 434)); 00271 00272 00273 Beam7R4NegTEC2TEC.push_back(theLaserPhi.at(261 + theIteration * 434)); 00274 Beam7R4NegTEC2TEC.push_back(theLaserPhiError.at(261 + theIteration * 434)); 00275 Beam7R4NegTEC2TEC.push_back(theLaserPhi.at(262 + theIteration * 434)); 00276 Beam7R4NegTEC2TEC.push_back(theLaserPhiError.at(262 + theIteration * 434)); 00277 Beam7R4NegTEC2TEC.push_back(theLaserPhi.at(263 + theIteration * 434)); 00278 Beam7R4NegTEC2TEC.push_back(theLaserPhiError.at(263 + theIteration * 434)); 00279 Beam7R4NegTEC2TEC.push_back(theLaserPhi.at(264 + theIteration * 434)); 00280 Beam7R4NegTEC2TEC.push_back(theLaserPhiError.at(264 + theIteration * 434)); 00281 Beam7R4NegTEC2TEC.push_back(theLaserPhi.at(265 + theIteration * 434)); 00282 Beam7R4NegTEC2TEC.push_back(theLaserPhiError.at(265 + theIteration * 434)); 00283 00284 00285 // Beams in TOB 00286 Beam0TOB.push_back(theLaserPhi.at(338 + theIteration * 434)); 00287 Beam0TOB.push_back(theLaserPhiError.at(338 + theIteration * 434)); 00288 Beam0TOB.push_back(theLaserPhi.at(339 + theIteration * 434)); 00289 Beam0TOB.push_back(theLaserPhiError.at(339 + theIteration * 434)); 00290 Beam0TOB.push_back(theLaserPhi.at(340 + theIteration * 434)); 00291 Beam0TOB.push_back(theLaserPhiError.at(340 + theIteration * 434)); 00292 Beam0TOB.push_back(theLaserPhi.at(341 + theIteration * 434)); 00293 Beam0TOB.push_back(theLaserPhiError.at(341 + theIteration * 434)); 00294 Beam0TOB.push_back(theLaserPhi.at(342 + theIteration * 434)); 00295 Beam0TOB.push_back(theLaserPhiError.at(342 + theIteration * 434)); 00296 Beam0TOB.push_back(theLaserPhi.at(343 + theIteration * 434)); 00297 Beam0TOB.push_back(theLaserPhiError.at(343 + theIteration * 434)); 00298 00299 Beam1TOB.push_back(theLaserPhi.at(344 + theIteration * 434)); 00300 Beam1TOB.push_back(theLaserPhiError.at(344 + theIteration * 434)); 00301 Beam1TOB.push_back(theLaserPhi.at(345 + theIteration * 434)); 00302 Beam1TOB.push_back(theLaserPhiError.at(345 + theIteration * 434)); 00303 Beam1TOB.push_back(theLaserPhi.at(346 + theIteration * 434)); 00304 Beam1TOB.push_back(theLaserPhiError.at(346 + theIteration * 434)); 00305 Beam1TOB.push_back(theLaserPhi.at(347 + theIteration * 434)); 00306 Beam1TOB.push_back(theLaserPhiError.at(347 + theIteration * 434)); 00307 Beam1TOB.push_back(theLaserPhi.at(348 + theIteration * 434)); 00308 Beam1TOB.push_back(theLaserPhiError.at(348 + theIteration * 434)); 00309 Beam1TOB.push_back(theLaserPhi.at(349 + theIteration * 434)); 00310 Beam1TOB.push_back(theLaserPhiError.at(349 + theIteration * 434)); 00311 00312 Beam2TOB.push_back(theLaserPhi.at(350 + theIteration * 434)); 00313 Beam2TOB.push_back(theLaserPhiError.at(350 + theIteration * 434)); 00314 Beam2TOB.push_back(theLaserPhi.at(351 + theIteration * 434)); 00315 Beam2TOB.push_back(theLaserPhiError.at(351 + theIteration * 434)); 00316 Beam2TOB.push_back(theLaserPhi.at(352 + theIteration * 434)); 00317 Beam2TOB.push_back(theLaserPhiError.at(352 + theIteration * 434)); 00318 Beam2TOB.push_back(theLaserPhi.at(353 + theIteration * 434)); 00319 Beam2TOB.push_back(theLaserPhiError.at(353 + theIteration * 434)); 00320 Beam2TOB.push_back(theLaserPhi.at(354 + theIteration * 434)); 00321 Beam2TOB.push_back(theLaserPhiError.at(354 + theIteration * 434)); 00322 Beam2TOB.push_back(theLaserPhi.at(355 + theIteration * 434)); 00323 Beam2TOB.push_back(theLaserPhiError.at(355 + theIteration * 434)); 00324 00325 Beam3TOB.push_back(theLaserPhi.at(356 + theIteration * 434)); 00326 Beam3TOB.push_back(theLaserPhiError.at(356 + theIteration * 434)); 00327 Beam3TOB.push_back(theLaserPhi.at(357 + theIteration * 434)); 00328 Beam3TOB.push_back(theLaserPhiError.at(357 + theIteration * 434)); 00329 Beam3TOB.push_back(theLaserPhi.at(358 + theIteration * 434)); 00330 Beam3TOB.push_back(theLaserPhiError.at(358 + theIteration * 434)); 00331 Beam3TOB.push_back(theLaserPhi.at(359 + theIteration * 434)); 00332 Beam3TOB.push_back(theLaserPhiError.at(359 + theIteration * 434)); 00333 Beam3TOB.push_back(theLaserPhi.at(360 + theIteration * 434)); 00334 Beam3TOB.push_back(theLaserPhiError.at(360 + theIteration * 434)); 00335 Beam3TOB.push_back(theLaserPhi.at(361 + theIteration * 434)); 00336 Beam3TOB.push_back(theLaserPhiError.at(361 + theIteration * 434)); 00337 00338 Beam4TOB.push_back(theLaserPhi.at(362 + theIteration * 434)); 00339 Beam4TOB.push_back(theLaserPhiError.at(362 + theIteration * 434)); 00340 Beam4TOB.push_back(theLaserPhi.at(363 + theIteration * 434)); 00341 Beam4TOB.push_back(theLaserPhiError.at(363 + theIteration * 434)); 00342 Beam4TOB.push_back(theLaserPhi.at(364 + theIteration * 434)); 00343 Beam4TOB.push_back(theLaserPhiError.at(364 + theIteration * 434)); 00344 Beam4TOB.push_back(theLaserPhi.at(365 + theIteration * 434)); 00345 Beam4TOB.push_back(theLaserPhiError.at(365 + theIteration * 434)); 00346 Beam4TOB.push_back(theLaserPhi.at(366 + theIteration * 434)); 00347 Beam4TOB.push_back(theLaserPhiError.at(366 + theIteration * 434)); 00348 Beam4TOB.push_back(theLaserPhi.at(367 + theIteration * 434)); 00349 Beam4TOB.push_back(theLaserPhiError.at(367 + theIteration * 434)); 00350 00351 Beam5TOB.push_back(theLaserPhi.at(368 + theIteration * 434)); 00352 Beam5TOB.push_back(theLaserPhiError.at(368 + theIteration * 434)); 00353 Beam5TOB.push_back(theLaserPhi.at(369 + theIteration * 434)); 00354 Beam5TOB.push_back(theLaserPhiError.at(369 + theIteration * 434)); 00355 Beam5TOB.push_back(theLaserPhi.at(370 + theIteration * 434)); 00356 Beam5TOB.push_back(theLaserPhiError.at(370 + theIteration * 434)); 00357 Beam5TOB.push_back(theLaserPhi.at(371 + theIteration * 434)); 00358 Beam5TOB.push_back(theLaserPhiError.at(371 + theIteration * 434)); 00359 Beam5TOB.push_back(theLaserPhi.at(372 + theIteration * 434)); 00360 Beam5TOB.push_back(theLaserPhiError.at(372 + theIteration * 434)); 00361 Beam5TOB.push_back(theLaserPhi.at(373 + theIteration * 434)); 00362 Beam5TOB.push_back(theLaserPhiError.at(373 + theIteration * 434)); 00363 00364 Beam6TOB.push_back(theLaserPhi.at(374 + theIteration * 434)); 00365 Beam6TOB.push_back(theLaserPhiError.at(374 + theIteration * 434)); 00366 Beam6TOB.push_back(theLaserPhi.at(375 + theIteration * 434)); 00367 Beam6TOB.push_back(theLaserPhiError.at(375 + theIteration * 434)); 00368 Beam6TOB.push_back(theLaserPhi.at(376 + theIteration * 434)); 00369 Beam6TOB.push_back(theLaserPhiError.at(376 + theIteration * 434)); 00370 Beam6TOB.push_back(theLaserPhi.at(377 + theIteration * 434)); 00371 Beam6TOB.push_back(theLaserPhiError.at(377 + theIteration * 434)); 00372 Beam6TOB.push_back(theLaserPhi.at(378 + theIteration * 434)); 00373 Beam6TOB.push_back(theLaserPhiError.at(378 + theIteration * 434)); 00374 Beam6TOB.push_back(theLaserPhi.at(379 + theIteration * 434)); 00375 Beam6TOB.push_back(theLaserPhiError.at(379 + theIteration * 434)); 00376 00377 Beam7TOB.push_back(theLaserPhi.at(380 + theIteration * 434)); 00378 Beam7TOB.push_back(theLaserPhiError.at(380 + theIteration * 434)); 00379 Beam7TOB.push_back(theLaserPhi.at(381 + theIteration * 434)); 00380 Beam7TOB.push_back(theLaserPhiError.at(381 + theIteration * 434)); 00381 Beam7TOB.push_back(theLaserPhi.at(382 + theIteration * 434)); 00382 Beam7TOB.push_back(theLaserPhiError.at(382 + theIteration * 434)); 00383 Beam7TOB.push_back(theLaserPhi.at(383 + theIteration * 434)); 00384 Beam7TOB.push_back(theLaserPhiError.at(383 + theIteration * 434)); 00385 Beam7TOB.push_back(theLaserPhi.at(384 + theIteration * 434)); 00386 Beam7TOB.push_back(theLaserPhiError.at(384 + theIteration * 434)); 00387 Beam7TOB.push_back(theLaserPhi.at(385 + theIteration * 434)); 00388 Beam7TOB.push_back(theLaserPhiError.at(385 + theIteration * 434)); 00389 00390 00391 // Beams in TIB 00392 Beam0TIB.push_back(theLaserPhi.at(386 + theIteration * 434)); 00393 Beam0TIB.push_back(theLaserPhiError.at(386 + theIteration * 434)); 00394 Beam0TIB.push_back(theLaserPhi.at(387 + theIteration * 434)); 00395 Beam0TIB.push_back(theLaserPhiError.at(387 + theIteration * 434)); 00396 Beam0TIB.push_back(theLaserPhi.at(388 + theIteration * 434)); 00397 Beam0TIB.push_back(theLaserPhiError.at(388 + theIteration * 434)); 00398 Beam0TIB.push_back(theLaserPhi.at(389 + theIteration * 434)); 00399 Beam0TIB.push_back(theLaserPhiError.at(389 + theIteration * 434)); 00400 Beam0TIB.push_back(theLaserPhi.at(390 + theIteration * 434)); 00401 Beam0TIB.push_back(theLaserPhiError.at(390 + theIteration * 434)); 00402 Beam0TIB.push_back(theLaserPhi.at(391 + theIteration * 434)); 00403 Beam0TIB.push_back(theLaserPhiError.at(391 + theIteration * 434)); 00404 00405 Beam1TIB.push_back(theLaserPhi.at(392 + theIteration * 434)); 00406 Beam1TIB.push_back(theLaserPhiError.at(392 + theIteration * 434)); 00407 Beam1TIB.push_back(theLaserPhi.at(393 + theIteration * 434)); 00408 Beam1TIB.push_back(theLaserPhiError.at(393 + theIteration * 434)); 00409 Beam1TIB.push_back(theLaserPhi.at(394 + theIteration * 434)); 00410 Beam1TIB.push_back(theLaserPhiError.at(394 + theIteration * 434)); 00411 Beam1TIB.push_back(theLaserPhi.at(395 + theIteration * 434)); 00412 Beam1TIB.push_back(theLaserPhiError.at(395 + theIteration * 434)); 00413 Beam1TIB.push_back(theLaserPhi.at(396 + theIteration * 434)); 00414 Beam1TIB.push_back(theLaserPhiError.at(396 + theIteration * 434)); 00415 Beam1TIB.push_back(theLaserPhi.at(397 + theIteration * 434)); 00416 Beam1TIB.push_back(theLaserPhiError.at(397 + theIteration * 434)); 00417 00418 Beam2TIB.push_back(theLaserPhi.at(398 + theIteration * 434)); 00419 Beam2TIB.push_back(theLaserPhiError.at(398 + theIteration * 434)); 00420 Beam2TIB.push_back(theLaserPhi.at(399 + theIteration * 434)); 00421 Beam2TIB.push_back(theLaserPhiError.at(399 + theIteration * 434)); 00422 Beam2TIB.push_back(theLaserPhi.at(400 + theIteration * 434)); 00423 Beam2TIB.push_back(theLaserPhiError.at(400 + theIteration * 434)); 00424 Beam2TIB.push_back(theLaserPhi.at(401 + theIteration * 434)); 00425 Beam2TIB.push_back(theLaserPhiError.at(401 + theIteration * 434)); 00426 Beam2TIB.push_back(theLaserPhi.at(402 + theIteration * 434)); 00427 Beam2TIB.push_back(theLaserPhiError.at(402 + theIteration * 434)); 00428 Beam2TIB.push_back(theLaserPhi.at(403 + theIteration * 434)); 00429 Beam2TIB.push_back(theLaserPhiError.at(403 + theIteration * 434)); 00430 00431 Beam3TIB.push_back(theLaserPhi.at(404 + theIteration * 434)); 00432 Beam3TIB.push_back(theLaserPhiError.at(404 + theIteration * 434)); 00433 Beam3TIB.push_back(theLaserPhi.at(405 + theIteration * 434)); 00434 Beam3TIB.push_back(theLaserPhiError.at(405 + theIteration * 434)); 00435 Beam3TIB.push_back(theLaserPhi.at(406 + theIteration * 434)); 00436 Beam3TIB.push_back(theLaserPhiError.at(406 + theIteration * 434)); 00437 Beam3TIB.push_back(theLaserPhi.at(407 + theIteration * 434)); 00438 Beam3TIB.push_back(theLaserPhiError.at(407 + theIteration * 434)); 00439 Beam3TIB.push_back(theLaserPhi.at(408 + theIteration * 434)); 00440 Beam3TIB.push_back(theLaserPhiError.at(408 + theIteration * 434)); 00441 Beam3TIB.push_back(theLaserPhi.at(409 + theIteration * 434)); 00442 Beam3TIB.push_back(theLaserPhiError.at(409 + theIteration * 434)); 00443 00444 Beam4TIB.push_back(theLaserPhi.at(410 + theIteration * 434)); 00445 Beam4TIB.push_back(theLaserPhiError.at(410 + theIteration * 434)); 00446 Beam4TIB.push_back(theLaserPhi.at(411 + theIteration * 434)); 00447 Beam4TIB.push_back(theLaserPhiError.at(411 + theIteration * 434)); 00448 Beam4TIB.push_back(theLaserPhi.at(412 + theIteration * 434)); 00449 Beam4TIB.push_back(theLaserPhiError.at(412 + theIteration * 434)); 00450 Beam4TIB.push_back(theLaserPhi.at(413 + theIteration * 434)); 00451 Beam4TIB.push_back(theLaserPhiError.at(413 + theIteration * 434)); 00452 Beam4TIB.push_back(theLaserPhi.at(414 + theIteration * 434)); 00453 Beam4TIB.push_back(theLaserPhiError.at(414 + theIteration * 434)); 00454 Beam4TIB.push_back(theLaserPhi.at(415 + theIteration * 434)); 00455 Beam4TIB.push_back(theLaserPhiError.at(415 + theIteration * 434)); 00456 00457 Beam5TIB.push_back(theLaserPhi.at(416 + theIteration * 434)); 00458 Beam5TIB.push_back(theLaserPhiError.at(416 + theIteration * 434)); 00459 Beam5TIB.push_back(theLaserPhi.at(417 + theIteration * 434)); 00460 Beam5TIB.push_back(theLaserPhiError.at(417 + theIteration * 434)); 00461 Beam5TIB.push_back(theLaserPhi.at(418 + theIteration * 434)); 00462 Beam5TIB.push_back(theLaserPhiError.at(418 + theIteration * 434)); 00463 Beam5TIB.push_back(theLaserPhi.at(419 + theIteration * 434)); 00464 Beam5TIB.push_back(theLaserPhiError.at(419 + theIteration * 434)); 00465 Beam5TIB.push_back(theLaserPhi.at(420 + theIteration * 434)); 00466 Beam5TIB.push_back(theLaserPhiError.at(420 + theIteration * 434)); 00467 Beam5TIB.push_back(theLaserPhi.at(421 + theIteration * 434)); 00468 Beam5TIB.push_back(theLaserPhiError.at(421 + theIteration * 434)); 00469 00470 Beam6TIB.push_back(theLaserPhi.at(422 + theIteration * 434)); 00471 Beam6TIB.push_back(theLaserPhiError.at(422 + theIteration * 434)); 00472 Beam6TIB.push_back(theLaserPhi.at(423 + theIteration * 434)); 00473 Beam6TIB.push_back(theLaserPhiError.at(423 + theIteration * 434)); 00474 Beam6TIB.push_back(theLaserPhi.at(424 + theIteration * 434)); 00475 Beam6TIB.push_back(theLaserPhiError.at(424 + theIteration * 434)); 00476 Beam6TIB.push_back(theLaserPhi.at(425 + theIteration * 434)); 00477 Beam6TIB.push_back(theLaserPhiError.at(425 + theIteration * 434)); 00478 Beam6TIB.push_back(theLaserPhi.at(426 + theIteration * 434)); 00479 Beam6TIB.push_back(theLaserPhiError.at(426 + theIteration * 434)); 00480 Beam6TIB.push_back(theLaserPhi.at(427 + theIteration * 434)); 00481 Beam6TIB.push_back(theLaserPhiError.at(427 + theIteration * 434)); 00482 00483 Beam7TIB.push_back(theLaserPhi.at(428 + theIteration * 434)); 00484 Beam7TIB.push_back(theLaserPhiError.at(428 + theIteration * 434)); 00485 Beam7TIB.push_back(theLaserPhi.at(429 + theIteration * 434)); 00486 Beam7TIB.push_back(theLaserPhiError.at(429 + theIteration * 434)); 00487 Beam7TIB.push_back(theLaserPhi.at(430 + theIteration * 434)); 00488 Beam7TIB.push_back(theLaserPhiError.at(430 + theIteration * 434)); 00489 Beam7TIB.push_back(theLaserPhi.at(431 + theIteration * 434)); 00490 Beam7TIB.push_back(theLaserPhiError.at(431 + theIteration * 434)); 00491 Beam7TIB.push_back(theLaserPhi.at(432 + theIteration * 434)); 00492 Beam7TIB.push_back(theLaserPhiError.at(432 + theIteration * 434)); 00493 Beam7TIB.push_back(theLaserPhi.at(433 + theIteration * 434)); 00494 Beam7TIB.push_back(theLaserPhiError.at(433 + theIteration * 434)); 00495 00496 00497 /* *************************************** */ 00498 00499 // create entry in the map for Beam 0 in Ring 4 of TEC+ 00500 theBeamPosition["Beam 0 in Ring 4 in TEC+"] = Beam0R4PosTEC; 00501 // create entry in the map for Beam 1 in Ring 4 of TEC2TEC 00502 theBeamPosition["Beam 1 in TEC2TEC in TEC+"] = Beam1R4PosTEC2TEC; 00503 // create entry in the map for Beam 2 in Ring 4 of TEC2TEC 00504 theBeamPosition["Beam 2 in TEC2TEC in TEC+"] = Beam2R4PosTEC2TEC; 00505 // create entry in the map for Beam 3 in Ring 4 of TEC+ 00506 theBeamPosition["Beam 3 in Ring 4 in TEC+"] = Beam3R4PosTEC; 00507 // create entry in the map for Beam 4 in Ring 4 of TEC2TEC 00508 theBeamPosition["Beam 4 in TEC2TEC in TEC+"] = Beam4R4PosTEC2TEC; 00509 // create entry in the map for Beam 5 in Ring 4 of TEC+ 00510 theBeamPosition["Beam 5 in Ring 4 in TEC+"] = Beam5R4PosTEC; 00511 // create entry in the map for Beam 6 in Ring 4 of TEC2TEC 00512 theBeamPosition["Beam 6 in TEC2TEC in TEC+"] = Beam6R4PosTEC2TEC; 00513 // create entry in the map for Beam 7 in Ring 4 of TEC2TEC 00514 theBeamPosition["Beam 7 in TEC2TEC in TEC+"] = Beam7R4PosTEC2TEC; 00515 00516 // create entry in the map for Beam 0 in Ring 4 of TEC- 00517 theBeamPosition["Beam 0 in Ring 4 in TEC-"] = Beam0R4NegTEC; 00518 // create entry in the map for Beam 1 in Ring 4 of TEC2TEC 00519 theBeamPosition["Beam 1 in TEC2TEC in TEC-"] = Beam1R4NegTEC2TEC; 00520 // create entry in the map for Beam 2 in Ring 4 of TEC2TEC 00521 theBeamPosition["Beam 2 in TEC2TEC in TEC-"] = Beam2R4NegTEC2TEC; 00522 // create entry in the map for Beam 3 in Ring 4 of TEC- 00523 theBeamPosition["Beam 3 in Ring 4 in TEC-"] = Beam3R4NegTEC; 00524 // create entry in the map for Beam 4 in Ring 4 of TEC2TEC 00525 theBeamPosition["Beam 4 in TEC2TEC in TEC-"] = Beam4R4NegTEC2TEC; 00526 // create entry in the map for Beam 5 in Ring 4 of TEC- 00527 theBeamPosition["Beam 5 in Ring 4 in TEC-"] = Beam5R4NegTEC; 00528 // create entry in the map for Beam 6 in Ring 4 of TEC2TEC 00529 theBeamPosition["Beam 6 in TEC2TEC in TEC-"] = Beam6R4NegTEC2TEC; 00530 // create entry in the map for Beam 7 in Ring 4 of TEC2TEC 00531 theBeamPosition["Beam 7 in TEC2TEC in TEC-"] = Beam7R4NegTEC2TEC; 00532 00533 // create entry in the map for Beam 0 of TOB 00534 theBeamPosition["Beam 0 in TOB"] = Beam0TOB; 00535 // create entry in the map for Beam 1 of TOB 00536 theBeamPosition["Beam 1 in TOB"] = Beam1TOB; 00537 // create entry in the map for Beam 2 of TOB 00538 theBeamPosition["Beam 2 in TOB"] = Beam2TOB; 00539 // create entry in the map for Beam 3 of TOB 00540 theBeamPosition["Beam 3 in TOB"] = Beam3TOB; 00541 // create entry in the map for Beam 4 of TOB 00542 theBeamPosition["Beam 4 in TOB"] = Beam4TOB; 00543 // create entry in the map for Beam 5 of TOB 00544 theBeamPosition["Beam 5 in TOB"] = Beam5TOB; 00545 // create entry in the map for Beam 6 of TOB 00546 theBeamPosition["Beam 6 in TOB"] = Beam6TOB; 00547 // create entry in the map for Beam 7 of TOB 00548 theBeamPosition["Beam 7 in TOB"] = Beam7TOB; 00549 00550 // create entry in the map for Beam 0 of TIB 00551 theBeamPosition["Beam 0 in TIB"] = Beam0TIB; 00552 // create entry in the map for Beam 1 of TIB 00553 theBeamPosition["Beam 1 in TIB"] = Beam1TIB; 00554 // create entry in the map for Beam 2 of TIB 00555 theBeamPosition["Beam 2 in TIB"] = Beam2TIB; 00556 // create entry in the map for Beam 3 of TIB 00557 theBeamPosition["Beam 3 in TIB"] = Beam3TIB; 00558 // create entry in the map for Beam 4 of TIB 00559 theBeamPosition["Beam 4 in TIB"] = Beam4TIB; 00560 // create entry in the map for Beam 5 of TIB 00561 theBeamPosition["Beam 5 in TIB"] = Beam5TIB; 00562 // create entry in the map for Beam 6 of TIB 00563 theBeamPosition["Beam 6 in TIB"] = Beam6TIB; 00564 // create entry in the map for Beam 7 of TIB 00565 theBeamPosition["Beam 7 in TIB"] = Beam7TIB; 00566 00567 // ******************************************************* 00568 00569 // add the laserbeams 00570 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 0 in Ring 4 in TEC+"], 00571 theBeamPosition["Beam 0 in TOB"], 00572 theBeamPosition["Beam 0 in TIB"], 00573 theBeamPosition["Beam 0 in Ring 4 in TEC-"], 0, 4); 00574 00575 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 1 in TEC2TEC in TEC+"], 00576 theBeamPosition["Beam 1 in TOB"], 00577 theBeamPosition["Beam 1 in TIB"], 00578 theBeamPosition["Beam 1 in TEC2TEC in TEC-"], 1, 4); 00579 00580 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 2 in TEC2TEC in TEC+"], 00581 theBeamPosition["Beam 2 in TOB"], 00582 theBeamPosition["Beam 2 in TIB"], 00583 theBeamPosition["Beam 2 in TEC2TEC in TEC-"], 2, 4); 00584 00585 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 3 in Ring 4 in TEC+"], 00586 theBeamPosition["Beam 3 in TOB"], 00587 theBeamPosition["Beam 3 in TIB"], 00588 theBeamPosition["Beam 3 in Ring 4 in TEC-"], 3, 4); 00589 00590 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 4 in TEC2TEC in TEC+"], 00591 theBeamPosition["Beam 4 in TOB"], 00592 theBeamPosition["Beam 4 in TIB"], 00593 theBeamPosition["Beam 4 in TEC2TEC in TEC-"], 4, 4); 00594 00595 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 5 in Ring 4 in TEC+"], 00596 theBeamPosition["Beam 5 in TOB"], 00597 theBeamPosition["Beam 5 in TIB"], 00598 theBeamPosition["Beam 5 in Ring 4 in TEC-"], 5, 4); 00599 00600 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 6 in TEC2TEC in TEC+"], 00601 theBeamPosition["Beam 6 in TOB"], 00602 theBeamPosition["Beam 6 in TIB"], 00603 theBeamPosition["Beam 6 in TEC2TEC in TEC-"], 6, 4); 00604 00605 theLaserAlignmentTrackerTEC2TEC->addLaserBeam(theBeamPosition["Beam 7 in TEC2TEC in TEC+"], 00606 theBeamPosition["Beam 7 in TOB"], 00607 theBeamPosition["Beam 7 in TIB"], 00608 theBeamPosition["Beam 7 in TEC2TEC in TEC-"], 7, 4); 00609 } 00610 00611 // finally do the fit of the global parameters when we have reached the last iteration 00612 edm::LogInfo("LaserAlignmentTEC2TEC") << "<LaserAlignmentTEC2TEC::alignment()>: doing the global fit ... "; 00613 00614 theLaserAlignmentTrackerTEC2TEC->doGlobalFit(theAlignableTracker); 00615 00616 // delete the alignment Object for TEC-TOB-TIB-TEC 00617 if (theLaserAlignmentTrackerTEC2TEC != 0) { delete theLaserAlignmentTrackerTEC2TEC; } 00618 }