CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CreateSurveyRcds.cc
Go to the documentation of this file.
8 
11 
16 
20 
25 #include "CLHEP/Random/RandGauss.h"
26 
27 // Database
30 
32 {
33  m_inputGeom = cfg.getUntrackedParameter< std::string > ("inputGeom");
34  m_inputSimpleMis = cfg.getUntrackedParameter< double > ("simpleMis");
35  m_generatedRandom = cfg.getUntrackedParameter< bool > ("generatedRandom");
36  m_generatedSimple = cfg.getUntrackedParameter< bool > ("generatedSimple");
37 }
38 
40 
41  //Retrieve tracker topology from geometry
43  setup.get<TrackerTopologyRcd>().get(tTopoHandle);
44  const TrackerTopology* const tTopo = tTopoHandle.product();
45 
47  setup.get<IdealGeometryRecord>().get(geom);
49  setup.get<PTrackerParametersRcd>().get( ptp );
51 
52  //take geometry from DB or randomly generate geometry
53  if (m_inputGeom == "sqlite"){
54  //build the tracker
57 
58  setup.get<TrackerAlignmentRcd>().get(alignments);
59  setup.get<TrackerAlignmentErrorExtendedRcd>().get(alignmentErrors);
60 
61  //apply the latest alignments
62  GeometryAligner aligner;
63  aligner.applyAlignments<TrackerGeometry>( &(*tracker), &(*alignments), &(*alignmentErrors), AlignTransform() );
64 
65  }
66 
67 
68  addComponent(new AlignableTracker( tracker, tTopo ) );
69 
70  Alignable* ali = detector();
71  if(m_inputGeom == "generated"){
72  setGeometry( ali );
73  }
74 
75  setSurveyErrors( ali );
76 
77 }
78 
80 {
81 
82  const align::Alignables& comp = ali->components();
83  unsigned int nComp = comp.size();
84  //move then do for lower level object
85  //for issue of det vs detunit
86  bool usecomps = true;
87  if ((ali->alignableObjectId()==2)&&(nComp>=1)) usecomps = false;
88  for (unsigned int i = 0; i < nComp; ++i){
89  if (usecomps) setGeometry(comp[i]);
90  }
91  DetId id( ali->id() );
92  int subdetlevel = id.subdetId();
93  int level = ali->alignableObjectId();
94 
95  //for random misalignment
96  if (m_generatedRandom){
97  if (subdetlevel > 0){
98  AlgebraicVector value = getStructureErrors(level, subdetlevel);
99 
100  double value0 = CLHEP::RandGauss::shoot(0,value[0]);
101  double value1 = CLHEP::RandGauss::shoot(0,value[1]);
102  double value2 = CLHEP::RandGauss::shoot(0,value[2]);
103  double value3 = CLHEP::RandGauss::shoot(0,value[3]);
104  double value4 = CLHEP::RandGauss::shoot(0,value[4]);
105  double value5 = CLHEP::RandGauss::shoot(0,value[5]);
106 
107  //move/rotate the surface
108  align::LocalVector diffR(value0,value1,value2);
109  align::Scalar diffWx = value3;
110  align::Scalar diffWy = value4;
111  align::Scalar diffWz = value5;
112  ali->move(ali->surface().toGlobal(diffR));
113  ali->rotateAroundLocalX(diffWx);
114  ali->rotateAroundLocalY(diffWy);
115  ali->rotateAroundLocalZ(diffWz);
116  }
117  }
118 
119  // for simple misalignments
120  if (m_generatedSimple){
121  if ((level == 2)||((level == 1)&&(ali->mother()->alignableObjectId() != 2))){
122 
123  const double constMis = m_inputSimpleMis;
124  const double dAngle = constMis/ali->surface().length();
125  //std::cout << "Shift: " << constMis << ", Rot: " << dAngle << std::endl;
126  double value0 = CLHEP::RandGauss::shoot(0, constMis);
127  double value1 = CLHEP::RandGauss::shoot(0, constMis);
128  double value2 = CLHEP::RandGauss::shoot(0, constMis);
129  double value3 = CLHEP::RandGauss::shoot(0, dAngle);
130  double value4 = CLHEP::RandGauss::shoot(0, dAngle);
131  double value5 = CLHEP::RandGauss::shoot(0, dAngle);
132 
133  align::LocalVector diffR(value0,value1,value2);
134  ali->move(ali->surface().toGlobal(diffR));
135  align::Scalar diffWx = value3;
136  align::Scalar diffWy = value4;
137  align::Scalar diffWz = value5;
138  ali->rotateAroundLocalX(diffWx);
139  ali->rotateAroundLocalY(diffWy);
140  ali->rotateAroundLocalZ(diffWz);
141  }
142  }
143 
144 }
145 
147 
148  const align::Alignables& comp = ali->components();
149  unsigned int nComp = comp.size();
150  //move then do for lower level object
151  //for issue of det vs detunit
152  for (unsigned int i = 0; i < nComp; ++i){
153  setSurveyErrors(comp[i]);
154  }
155 
156  DetId id( ali->id() );
157  int subdetlevel = id.subdetId();
158  int level = ali->alignableObjectId();
159 
160  AlgebraicVector error = getStructureErrors(level, subdetlevel);
161 
162  double error0 = error[0];
163  double error1 = error[1];
164  double error2 = error[2];
165  double error3 = error[3];
166  double error4 = error[4];
167  double error5 = error[5];
168 
169  // ----------------INFLATING ERRORS----------------------
170  // inflating sensitive coordinates in each subdetector
171  // tib
172  if ((level <= 2)&&(subdetlevel == 3)){
173  error0 = 0.01; error5 = 0.001;
174  if ((level==2)&&(nComp == 2)){
175  error1 = 0.01;
176  }
177  }
178  // tid
179  if ((level <= 2)&&(subdetlevel == 4)){
180  error0=0.01; error1=0.01; error2=0.01; error3=0.001; error4=0.001; error5=0.001;
181  //error0=0.01; error1=0.002; error2=0.002; error3=0.0002; error4=0.0002; error5=0.001;
182  //if ((level == 2)&&(nComp == 2)){
183  // error1 = 0.01;
184  //}
185  }
186  if ((level == 23)&&(subdetlevel == 4)){ //Ring is a Disk
187  error0=0.02; error1=0.02; error2=0.03; error3=0.0002; error4=0.0002; error5=0.0002;
188  }
189  if ((level == 22)&&(subdetlevel == 4)){ //Side of a Ring
190  error0=0.01; error1=0.01; error2=0.01; error3=0.0002; error4=0.0002; error5=0.0002;
191  }
192  // tob
193  if ((level <= 2)&&(subdetlevel == 5)){
194  //error0 = 0.015; error1 = 0.015; error2 = 0.05; error3 = 0.001; error4 = 0.001; error5 = 0.001;
195  error0 = 0.015; error1 = 0.003; error2 = 0.003; error3 = 0.0002; error4 = 0.0002; error5 = 0.001;
196  if ((level == 2)&&(nComp == 2)){
197  error1 = 0.015;
198  }
199  }
200  if ((level == 27)&&(subdetlevel == 5)){ //Rod in a Layer
201  error0=0.02; error1=0.02; error2=0.03; error3=0.001; error4=0.001; error5=0.001;
202  }
203  // tec
204  if ((level <= 2)&&(subdetlevel == 6)){
205  error0 = 0.02; error5 = 0.0005;
206  if ((level==2)&&(nComp == 2)){
207  error1 = 0.02;
208  }
209  }
210  if ((level == 34)&&(subdetlevel == 6)){ //Side on a Disk
211  error0=0.01; error1=0.01; error2=0.02; error3=0.00005; error4=0.00005; error5=0.00005;
212  }
213  if ((level == 33)&&(subdetlevel == 6)){ //Petal on a Side of a Disk
214  error0=0.01; error1=0.01; error2=0.02; error3=0.0001; error4=0.0001; error5=0.0001;
215  }
216  if ((level == 32)&&(subdetlevel == 6)){ //Ring on a Petal
217  error0=0.007; error1=0.007; error2=0.015; error3=0.00015; error4=0.00015; error5=0.00015;
218  }
219  // ----------------INFLATING ERRORS----------------------
220 
221  //create the error matrix
222  align::ErrorMatrix error_Matrix;
223  double * errorData = error_Matrix.Array();
224  errorData[0] = error0*error0; errorData[2] = error1*error1; errorData[5] = error2*error2;
225  errorData[9] = error3*error3; errorData[14] = error4*error4; errorData[20] = error5*error5;
226  errorData[1] = 0.0;
227  errorData[3] = 0.0; errorData[4] = 0.0;
228  errorData[6] = 0.0; errorData[7] = 0.0; errorData[8] = 0.0;
229  errorData[10] = 0.0; errorData[11] = 0.0; errorData[12] = 0.0; errorData[13] = 0.0;
230  errorData[15] = 0.0; errorData[16] = 0.0; errorData[17] = 0.0; errorData[18] = 0.0; errorData[19] = 0.0;
231 
232 
233  ali->setSurvey( new SurveyDet(ali->surface(), error_Matrix ) );
234 
235 }
236 
237 //-------------------------------------------------------
238 // DEFAULT VALUES FOR THE ASSEMBLY PRECISION
239 //-------------------------------------------------------
241 {
242  AlgebraicVector deltaRW(6);
243  deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
244  //PIXEL
245  if ((level == 37)&&(subdetlevel == 1)){
246  deltaRW(1)=0.3; deltaRW(2)=0.3; deltaRW(3)=0.3; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
247  }
248  //STRIP
249  if ((level == 38)&&(subdetlevel == 3)){
250  deltaRW(1)=0.3; deltaRW(2)=0.3; deltaRW(3)=0.3; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
251  }
252  //TRACKER
253  if ((level == 39)&&(subdetlevel == 1)){
254  deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
255  }
256  //TPB
257  if ((level == 7)&&(subdetlevel == 1)){
258  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.003; deltaRW(5)=0.003; deltaRW(6)=0.003;
259  }
260  if ((level == 6)&&(subdetlevel == 1)){
261  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
262  }
263  if ((level == 5)&&(subdetlevel == 1)){
264  deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
265  }
266  if ((level == 4)&&(subdetlevel == 1)){
267  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
268  }
269  if ((level == 2)&&(subdetlevel == 1)){
270  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
271  }
272  if ((level == 1)&&(subdetlevel == 1)){
273  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
274  }
275  //TPE
276  if ((level == 13)&&(subdetlevel == 2)){
277  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
278  }
279  if ((level == 12)&&(subdetlevel == 2)){
280  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
281  }
282  if ((level == 11)&&(subdetlevel == 2)){
283  deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
284  }
285  if ((level == 10)&&(subdetlevel == 2)){
286  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
287  }
288  if ((level == 9)&&(subdetlevel == 2)){
289  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.002; deltaRW(5)=0.002; deltaRW(6)=0.002;
290  }
291  if ((level == 2)&&(subdetlevel == 2)){
292  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
293  }
294  if ((level == 1)&&(subdetlevel == 2)){
295  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
296  }
297  //TIB
298  if ((level == 20)&&(subdetlevel == 3)){
299  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
300  }
301  if ((level == 19)&&(subdetlevel == 3)){
302  deltaRW(1)=0.1; deltaRW(2)=0.1; deltaRW(3)=0.1; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
303  }
304  if ((level == 18)&&(subdetlevel == 3)){
305  deltaRW(1)=0.04; deltaRW(2)=0.04; deltaRW(3)=0.02; deltaRW(4)=0.0006; deltaRW(5)=0.0006; deltaRW(6)=0.0006;
306  }
307  if ((level == 17)&&(subdetlevel == 3)){
308  deltaRW(1)=0.03; deltaRW(2)=0.03; deltaRW(3)=0.015; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
309  }
310  if ((level == 16)&&(subdetlevel == 3)){
311  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
312  }
313  if ((level == 15)&&(subdetlevel == 3)){
314  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
315  }
316  if ((level == 2)&&(subdetlevel == 3)){
317  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.001; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
318  }
319  if ((level == 1)&&(subdetlevel == 3)){
320  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.001; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
321  }
322  //TID
323  if ((level == 25)&&(subdetlevel == 4)){
324  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0013; deltaRW(5)=0.0013; deltaRW(6)=0.0013;
325  }
326  if ((level == 24)&&(subdetlevel == 4)){
327  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
328  }
329  if ((level == 23)&&(subdetlevel == 4)){
330  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
331  }
332  if ((level == 22)&&(subdetlevel == 4)){
333  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
334  }
335  if ((level == 2)&&(subdetlevel == 4)){
336  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0005; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
337  }
338  if ((level == 1)&&(subdetlevel == 4)){
339  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0005; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
340  }
341  //TOB
342  if ((level == 30)&&(subdetlevel == 5)){
343  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
344  }
345  if ((level == 29)&&(subdetlevel == 5)){
346  deltaRW(1)=0.014; deltaRW(2)=0.014; deltaRW(3)=0.05; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
347  }
348  if ((level == 28)&&(subdetlevel == 5)){
349  deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
350  }
351  if ((level == 27)&&(subdetlevel == 5)){
352  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
353  }
354  if ((level == 2)&&(subdetlevel == 5)){
355  deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
356  }
357  if ((level == 1)&&(subdetlevel == 5)){
358  deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
359  }
360  //TEC
361  if ((level == 36)&&(subdetlevel == 6)){
362  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
363  }
364  if ((level == 35)&&(subdetlevel == 6)){
365  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
366  }
367  if ((level == 34)&&(subdetlevel == 6)){
368  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
369  }
370  if ((level == 33)&&(subdetlevel == 6)){
371  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
372  }
373  if ((level == 32)&&(subdetlevel == 6)){
374  deltaRW(1)=0.007; deltaRW(2)=0.007; deltaRW(3)=0.015; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
375  }
376  if ((level == 2)&&(subdetlevel == 6)){
377  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
378  }
379  if ((level == 1)&&(subdetlevel == 6)){
380  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
381  }
382 
383  return deltaRW;
384 }
385 //-------------------------------------------------------
386 // DEFAULT VALUES FOR THE PRECISION OF THE SURVEY
387 //-------------------------------------------------------
389 {
390  AlgebraicVector deltaRW(6);
391  deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
392  //PIXEL
393  if ((level == 37)&&(subdetlevel == 1)){ //Pixel Detector in Tracker
394  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
395  }
396  //STRIP
397  if ((level == 38)&&(subdetlevel == 3)){ //Strip Tracker in Tracker
398  deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
399  }
400  //TRACKER
401  if ((level == 39)&&(subdetlevel == 1)){ //Tracker
402  deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
403  }
404  //TPB
405  if ((level == 7)&&(subdetlevel == 1)){ //Barrel Pixel in Pixel
406  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
407  }
408  if ((level == 6)&&(subdetlevel == 1)){ //HalfBarrel in Barrel Pixel
409  deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
410  }
411  if ((level == 5)&&(subdetlevel == 1)){ //HalfShell in HalfBarrel
412  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
413  }
414  if ((level == 4)&&(subdetlevel == 1)){ //Ladder in HalfShell
415  deltaRW(1)=0.001; deltaRW(2)=0.001; deltaRW(3)=0.002; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
416  }
417  if ((level == 2)&&(subdetlevel == 1)){ //Det in Ladder
418  deltaRW(1)=0.0005; deltaRW(2)=0.001; deltaRW(3)=0.001; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
419  }
420  if ((level == 1)&&(subdetlevel == 1)){ //DetUnit in Ladder
421  deltaRW(1)=0.0005; deltaRW(2)=0.001; deltaRW(3)=0.001; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
422  }
423  //TPE
424  if ((level == 13)&&(subdetlevel == 2)){ //Forward Pixel in Pixel
425  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
426  }
427  if ((level == 12)&&(subdetlevel == 2)){ //HalfCylinder in Forward Pixel
428  deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
429  }
430  if ((level == 11)&&(subdetlevel == 2)){ //HalfDisk in HalfCylinder
431  deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
432  }
433  if ((level == 10)&&(subdetlevel == 2)){ //Blade in HalfDisk
434  deltaRW(1)=0.001; deltaRW(2)=0.001; deltaRW(3)=0.002; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
435  }
436  if ((level == 9)&&(subdetlevel == 2)){ //Panel in Blade
437  deltaRW(1)=0.001; deltaRW(2)=0.0008; deltaRW(3)=0.0006; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
438  }
439  if ((level == 2)&&(subdetlevel == 2)){ //Det in Panel
440  deltaRW(1)=0.0005; deltaRW(2)=0.0004; deltaRW(3)=0.0006; deltaRW(4)=0.0001; deltaRW(5)=0.0003; deltaRW(6)=0.0001;
441  }
442  if ((level == 1)&&(subdetlevel == 2)){ //DetUnit in Panel
443  deltaRW(1)=0.0005; deltaRW(2)=0.0004; deltaRW(3)=0.0006; deltaRW(4)=0.0001; deltaRW(5)=0.0003; deltaRW(6)=0.0001;
444  }
445  //TIB
446  if ((level == 20)&&(subdetlevel == 3)){ //TIB in Strip Tracker
447  deltaRW(1)=0.08; deltaRW(2)=0.08; deltaRW(3)=0.04; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
448  }
449  if ((level == 19)&&(subdetlevel == 3)){ //HalfBarrel in TIB
450  deltaRW(1)=0.04; deltaRW(2)=0.04; deltaRW(3)=0.02; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
451  }
452  if ((level == 18)&&(subdetlevel == 3)){ //Layer in HalfBarrel
453  deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.01; deltaRW(4)=0.0006; deltaRW(5)=0.0006; deltaRW(6)=0.0006;
454  }
455  if ((level == 17)&&(subdetlevel == 3)){ //HalfShell in Layer
456  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
457  }
458  if ((level == 16)&&(subdetlevel == 3)){ //Surface in a HalfShell
459  deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.008; deltaRW(4)=0.0002; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
460  }
461  if ((level == 15)&&(subdetlevel == 3)){ //String in a Surface
462  deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.008; deltaRW(4)=0.0002; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
463  }
464  if ((level == 2)&&(subdetlevel == 3)){ //Det in a String
465  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.004; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
466  }
467  if ((level == 1)&&(subdetlevel == 3)){ //DetUnit in a String
468  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.004; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
469  }
470  //TID
471  if ((level == 25)&&(subdetlevel == 4)){ //TID in Strip Tracker
472  deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
473  }
474  if ((level == 24)&&(subdetlevel == 4)){ //Disk in a TID
475  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
476  }
477  if ((level == 23)&&(subdetlevel == 4)){ //Ring is a Disk
478  deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.005; deltaRW(4)=0.00004; deltaRW(5)=0.00004; deltaRW(6)=0.00004;
479  }
480  if ((level == 22)&&(subdetlevel == 4)){ //Side of a Ring
481  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.00004; deltaRW(5)=0.00004; deltaRW(6)=0.00004;
482  }
483  if ((level == 2)&&(subdetlevel == 4)){ //Det in a Side
484  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
485  }
486  if ((level == 1)&&(subdetlevel == 4)){ //DetUnit is a Side
487  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
488  }
489  //TOB
490  if ((level == 30)&&(subdetlevel == 5)){ // TOB in Strip Tracker
491  deltaRW(1)=0.06; deltaRW(2)=0.06; deltaRW(3)=0.06; deltaRW(4)=0.00025; deltaRW(5)=0.00025; deltaRW(6)=0.00025;
492  }
493  if ((level == 29)&&(subdetlevel == 5)){ //HalfBarrel in the TOB
494  deltaRW(1)=0.014; deltaRW(2)=0.014; deltaRW(3)=0.05; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
495  }
496  if ((level == 28)&&(subdetlevel == 5)){ //Layer in a HalfBarrel
497  deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
498  }
499  if ((level == 27)&&(subdetlevel == 5)){ //Rod in a Layer
500  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
501  }
502  if ((level == 2)&&(subdetlevel == 5)){ //Det in a Rod
503  deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
504  }
505  if ((level == 1)&&(subdetlevel == 5)){ //DetUnit in a Rod
506  deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
507  }
508  //TEC
509  if ((level == 36)&&(subdetlevel == 6)){ //TEC in the Strip Tracker
510  deltaRW(1)=0.06; deltaRW(2)=0.06; deltaRW(3)=0.1; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
511  }
512  if ((level == 35)&&(subdetlevel == 6)){ //Disk in the TEC
513  deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
514  }
515  if ((level == 34)&&(subdetlevel == 6)){ //Side on a Disk
516  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
517  }
518  if ((level == 33)&&(subdetlevel == 6)){ //Petal on a Side of a Disk
519  deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
520  }
521  if ((level == 32)&&(subdetlevel == 6)){ //Ring on a Petal
522  deltaRW(1)=0.007; deltaRW(2)=0.007; deltaRW(3)=0.015; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
523  }
524  if ((level == 2)&&(subdetlevel == 6)){ //Det on a Ring
525  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
526  }
527  if ((level == 1)&&(subdetlevel == 6)){ // DetUnit on a Ring
528  deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
529  }
530 
531  return deltaRW;
532 
533 
534 }
535 
536 // Plug in to framework
537 
539 
void setSurveyErrors(Alignable *)
module which creates/inserts the survey errors
align::ID id() const
Return the ID of Alignable, i.e. DetId of &#39;first&#39; component GeomDet(Unit).
Definition: Alignable.h:180
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
tuple cfg
Definition: looper.py:259
virtual void rotateAroundLocalZ(Scalar radians)
Rotation around local z-axis.
Definition: Alignable.cc:187
double Scalar
Definition: Definitions.h:27
Class to update a given geometry with a set of alignments.
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
GlobalVector diffR(const GlobalVectors &current, const GlobalVectors &nominal)
Definition: Utilities.cc:166
virtual void move(const GlobalVector &displacement)=0
Movement with respect to the global reference frame.
static void addComponent(Alignable *)
virtual Alignables components() const =0
Return vector of all direct components.
edm::ESHandle< Alignments > alignments
void setGeometry(Alignable *)
module which modifies the geometry
AlgebraicVector getStructureErrors(int, int)
default values for survey uncertainty
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
static Alignable * detector()
Get alignable detector as read from input.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:126
std::string m_inputGeom
Definition: DetId.h:18
void applyAlignments(C *geometry, const Alignments *alignments, const AlignmentErrorsExtended *alignmentErrors, const AlignTransform &globalCoordinates)
CLHEP::HepVector AlgebraicVector
align::Scalar length() const
void setSurvey(const SurveyDet *)
Set survey info.
Definition: Alignable.cc:277
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
virtual void rotateAroundLocalY(Scalar radians)
Rotation around local y-axis.
Definition: Alignable.cc:161
std::vector< Alignable * > Alignables
Definition: Utilities.h:28
TrackerGeometry * build(const GeometricDet *gd, const PTrackerParameters &ptp)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
Do nothing for each event.
CreateSurveyRcds(const edm::ParameterSet &)
virtual void rotateAroundLocalX(Scalar radians)
Rotation around local x-axis.
Definition: Alignable.cc:135
align::GlobalPoints toGlobal(const align::LocalPoints &) const
Return in global coord given a set of local points.
tuple level
Definition: testEve_cfg.py:34
math::Error< 6 >::type ErrorMatrix
Definition: Definitions.h:39
AlgebraicVector getStructurePlacements(int, int)
default values for assembly precision
Alignable * mother() const
Return pointer to container alignable (if any)
Definition: Alignable.h:85
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")