Go to the documentation of this file.00001 #include "FWCore/Framework/interface/EventSetup.h"
00002 #include "FWCore/Framework/interface/ESHandle.h"
00003 #include "Geometry/Records/interface/IdealGeometryRecord.h"
00004 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeomBuilderFromGeometricDet.h"
00005
00006 #include "Alignment/CommonAlignment/interface/SurveyDet.h"
00007 #include "Alignment/TrackerAlignment/interface/AlignableTracker.h"
00008
00009 #include "CondFormats/Alignment/interface/Alignments.h"
00010 #include "CondFormats/AlignmentRecord/interface/TrackerAlignmentRcd.h"
00011 #include "CondFormats/Alignment/interface/AlignmentErrors.h"
00012 #include "CondFormats/AlignmentRecord/interface/TrackerAlignmentErrorRcd.h"
00013
00014 #include "FWCore/Framework/interface/EventSetup.h"
00015 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00017
00018 #include "DataFormats/DetId/interface/DetId.h"
00019 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00020 #include "Alignment/SurveyAnalysis/plugins/CreateSurveyRcds.h"
00021 #include "Geometry/TrackingGeometryAligner/interface/GeometryAligner.h"
00022 #include "CLHEP/Random/RandGauss.h"
00023
00024
00025 #include "CondCore/DBOutputService/interface/PoolDBOutputService.h"
00026 #include "FWCore/ServiceRegistry/interface/Service.h"
00027
00028 CreateSurveyRcds::CreateSurveyRcds(const edm::ParameterSet& cfg)
00029 {
00030 m_inputGeom = cfg.getUntrackedParameter< std::string > ("inputGeom");
00031 m_inputSimpleMis = cfg.getUntrackedParameter< double > ("simpleMis");
00032 m_generatedRandom = cfg.getUntrackedParameter< bool > ("generatedRandom");
00033 m_generatedSimple = cfg.getUntrackedParameter< bool > ("generatedSimple");
00034 }
00035
00036 void CreateSurveyRcds::analyze(const edm::Event& event, const edm::EventSetup& setup){
00037
00038 edm::ESHandle<GeometricDet> geom;
00039 setup.get<IdealGeometryRecord>().get(geom);
00040 TrackerGeometry* tracker = TrackerGeomBuilderFromGeometricDet().build(&*geom);
00041
00042
00043 if (m_inputGeom == "sqlite"){
00044
00045 edm::ESHandle<Alignments> alignments;
00046 edm::ESHandle<AlignmentErrors> alignmentErrors;
00047
00048 setup.get<TrackerAlignmentRcd>().get(alignments);
00049 setup.get<TrackerAlignmentErrorRcd>().get(alignmentErrors);
00050
00051
00052 GeometryAligner aligner;
00053 aligner.applyAlignments<TrackerGeometry>( &(*tracker), &(*alignments), &(*alignmentErrors), AlignTransform() );
00054
00055 }
00056
00057
00058 addComponent(new AlignableTracker( tracker ) );
00059
00060 Alignable* ali = detector();
00061 if(m_inputGeom == "generated"){
00062 setGeometry( ali );
00063 }
00064
00065 setSurveyErrors( ali );
00066
00067 }
00068
00069 void CreateSurveyRcds::setGeometry(Alignable* ali)
00070 {
00071
00072 const align::Alignables& comp = ali->components();
00073 unsigned int nComp = comp.size();
00074
00075
00076 bool usecomps = true;
00077 if ((ali->alignableObjectId()==2)&&(nComp>=1)) usecomps = false;
00078 for (unsigned int i = 0; i < nComp; ++i){
00079 if (usecomps) setGeometry(comp[i]);
00080 }
00081 DetId id( ali->id() );
00082 int subdetlevel = id.subdetId();
00083 int level = ali->alignableObjectId();
00084
00085
00086 if (m_generatedRandom){
00087 if (subdetlevel > 0){
00088 AlgebraicVector value = getStructureErrors(level, subdetlevel);
00089
00090 double value0 = CLHEP::RandGauss::shoot(0,value[0]);
00091 double value1 = CLHEP::RandGauss::shoot(0,value[1]);
00092 double value2 = CLHEP::RandGauss::shoot(0,value[2]);
00093 double value3 = CLHEP::RandGauss::shoot(0,value[3]);
00094 double value4 = CLHEP::RandGauss::shoot(0,value[4]);
00095 double value5 = CLHEP::RandGauss::shoot(0,value[5]);
00096
00097
00098 align::LocalVector diffR(value0,value1,value2);
00099 align::Scalar diffWx = value3;
00100 align::Scalar diffWy = value4;
00101 align::Scalar diffWz = value5;
00102 ali->move(ali->surface().toGlobal(diffR));
00103 ali->rotateAroundLocalX(diffWx);
00104 ali->rotateAroundLocalY(diffWy);
00105 ali->rotateAroundLocalZ(diffWz);
00106 }
00107 }
00108
00109
00110 if (m_generatedSimple){
00111 if ((level == 2)||((level == 1)&&(ali->mother()->alignableObjectId() != 2))){
00112
00113 const double constMis = m_inputSimpleMis;
00114 const double dAngle = constMis/ali->surface().length();
00115
00116 double value0 = CLHEP::RandGauss::shoot(0, constMis);
00117 double value1 = CLHEP::RandGauss::shoot(0, constMis);
00118 double value2 = CLHEP::RandGauss::shoot(0, constMis);
00119 double value3 = CLHEP::RandGauss::shoot(0, dAngle);
00120 double value4 = CLHEP::RandGauss::shoot(0, dAngle);
00121 double value5 = CLHEP::RandGauss::shoot(0, dAngle);
00122
00123 align::LocalVector diffR(value0,value1,value2);
00124 ali->move(ali->surface().toGlobal(diffR));
00125 align::Scalar diffWx = value3;
00126 align::Scalar diffWy = value4;
00127 align::Scalar diffWz = value5;
00128 ali->rotateAroundLocalX(diffWx);
00129 ali->rotateAroundLocalY(diffWy);
00130 ali->rotateAroundLocalZ(diffWz);
00131 }
00132 }
00133
00134 }
00135
00136 void CreateSurveyRcds::setSurveyErrors( Alignable* ali ){
00137
00138 const align::Alignables& comp = ali->components();
00139 unsigned int nComp = comp.size();
00140
00141
00142 for (unsigned int i = 0; i < nComp; ++i){
00143 setSurveyErrors(comp[i]);
00144 }
00145
00146 DetId id( ali->id() );
00147 int subdetlevel = id.subdetId();
00148 int level = ali->alignableObjectId();
00149
00150 AlgebraicVector error = getStructureErrors(level, subdetlevel);
00151
00152 double error0 = error[0];
00153 double error1 = error[1];
00154 double error2 = error[2];
00155 double error3 = error[3];
00156 double error4 = error[4];
00157 double error5 = error[5];
00158
00159
00160
00161
00162 if ((level <= 2)&&(subdetlevel == 3)){
00163 error0 = 0.01; error5 = 0.001;
00164 if ((level==2)&&(nComp == 2)){
00165 error1 = 0.01;
00166 }
00167 }
00168
00169 if ((level <= 2)&&(subdetlevel == 4)){
00170 error0=0.01; error1=0.01; error2=0.01; error3=0.001; error4=0.001; error5=0.001;
00171
00172
00173
00174
00175 }
00176 if ((level == 23)&&(subdetlevel == 4)){
00177 error0=0.02; error1=0.02; error2=0.03; error3=0.0002; error4=0.0002; error5=0.0002;
00178 }
00179 if ((level == 22)&&(subdetlevel == 4)){
00180 error0=0.01; error1=0.01; error2=0.01; error3=0.0002; error4=0.0002; error5=0.0002;
00181 }
00182
00183 if ((level <= 2)&&(subdetlevel == 5)){
00184
00185 error0 = 0.015; error1 = 0.003; error2 = 0.003; error3 = 0.0002; error4 = 0.0002; error5 = 0.001;
00186 if ((level == 2)&&(nComp == 2)){
00187 error1 = 0.015;
00188 }
00189 }
00190 if ((level == 27)&&(subdetlevel == 5)){
00191 error0=0.02; error1=0.02; error2=0.03; error3=0.001; error4=0.001; error5=0.001;
00192 }
00193
00194 if ((level <= 2)&&(subdetlevel == 6)){
00195 error0 = 0.02; error5 = 0.0005;
00196 if ((level==2)&&(nComp == 2)){
00197 error1 = 0.02;
00198 }
00199 }
00200 if ((level == 34)&&(subdetlevel == 6)){
00201 error0=0.01; error1=0.01; error2=0.02; error3=0.00005; error4=0.00005; error5=0.00005;
00202 }
00203 if ((level == 33)&&(subdetlevel == 6)){
00204 error0=0.01; error1=0.01; error2=0.02; error3=0.0001; error4=0.0001; error5=0.0001;
00205 }
00206 if ((level == 32)&&(subdetlevel == 6)){
00207 error0=0.007; error1=0.007; error2=0.015; error3=0.00015; error4=0.00015; error5=0.00015;
00208 }
00209
00210
00211
00212 align::ErrorMatrix error_Matrix;
00213 double * errorData = error_Matrix.Array();
00214 errorData[0] = error0*error0; errorData[2] = error1*error1; errorData[5] = error2*error2;
00215 errorData[9] = error3*error3; errorData[14] = error4*error4; errorData[20] = error5*error5;
00216 errorData[1] = 0.0;
00217 errorData[3] = 0.0; errorData[4] = 0.0;
00218 errorData[6] = 0.0; errorData[7] = 0.0; errorData[8] = 0.0;
00219 errorData[10] = 0.0; errorData[11] = 0.0; errorData[12] = 0.0; errorData[13] = 0.0;
00220 errorData[15] = 0.0; errorData[16] = 0.0; errorData[17] = 0.0; errorData[18] = 0.0; errorData[19] = 0.0;
00221
00222
00223 ali->setSurvey( new SurveyDet(ali->surface(), error_Matrix ) );
00224
00225 }
00226
00227
00228
00229
00230 AlgebraicVector CreateSurveyRcds::getStructurePlacements(int level, int subdetlevel)
00231 {
00232 AlgebraicVector deltaRW(6);
00233 deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
00234
00235 if ((level == 37)&&(subdetlevel == 1)){
00236 deltaRW(1)=0.3; deltaRW(2)=0.3; deltaRW(3)=0.3; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
00237 }
00238
00239 if ((level == 38)&&(subdetlevel == 3)){
00240 deltaRW(1)=0.3; deltaRW(2)=0.3; deltaRW(3)=0.3; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00241 }
00242
00243 if ((level == 39)&&(subdetlevel == 1)){
00244 deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
00245 }
00246
00247 if ((level == 7)&&(subdetlevel == 1)){
00248 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.003; deltaRW(5)=0.003; deltaRW(6)=0.003;
00249 }
00250 if ((level == 6)&&(subdetlevel == 1)){
00251 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
00252 }
00253 if ((level == 5)&&(subdetlevel == 1)){
00254 deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00255 }
00256 if ((level == 4)&&(subdetlevel == 1)){
00257 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00258 }
00259 if ((level == 2)&&(subdetlevel == 1)){
00260 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00261 }
00262 if ((level == 1)&&(subdetlevel == 1)){
00263 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00264 }
00265
00266 if ((level == 13)&&(subdetlevel == 2)){
00267 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
00268 }
00269 if ((level == 12)&&(subdetlevel == 2)){
00270 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00271 }
00272 if ((level == 11)&&(subdetlevel == 2)){
00273 deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00274 }
00275 if ((level == 10)&&(subdetlevel == 2)){
00276 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00277 }
00278 if ((level == 9)&&(subdetlevel == 2)){
00279 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.002; deltaRW(5)=0.002; deltaRW(6)=0.002;
00280 }
00281 if ((level == 2)&&(subdetlevel == 2)){
00282 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00283 }
00284 if ((level == 1)&&(subdetlevel == 2)){
00285 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.003; deltaRW(4)=0.001; deltaRW(5)=0.001; deltaRW(6)=0.001;
00286 }
00287
00288 if ((level == 20)&&(subdetlevel == 3)){
00289 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
00290 }
00291 if ((level == 19)&&(subdetlevel == 3)){
00292 deltaRW(1)=0.1; deltaRW(2)=0.1; deltaRW(3)=0.1; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
00293 }
00294 if ((level == 18)&&(subdetlevel == 3)){
00295 deltaRW(1)=0.04; deltaRW(2)=0.04; deltaRW(3)=0.02; deltaRW(4)=0.0006; deltaRW(5)=0.0006; deltaRW(6)=0.0006;
00296 }
00297 if ((level == 17)&&(subdetlevel == 3)){
00298 deltaRW(1)=0.03; deltaRW(2)=0.03; deltaRW(3)=0.015; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00299 }
00300 if ((level == 16)&&(subdetlevel == 3)){
00301 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00302 }
00303 if ((level == 15)&&(subdetlevel == 3)){
00304 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00305 }
00306 if ((level == 2)&&(subdetlevel == 3)){
00307 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.001; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
00308 }
00309 if ((level == 1)&&(subdetlevel == 3)){
00310 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.001; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
00311 }
00312
00313 if ((level == 25)&&(subdetlevel == 4)){
00314 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0013; deltaRW(5)=0.0013; deltaRW(6)=0.0013;
00315 }
00316 if ((level == 24)&&(subdetlevel == 4)){
00317 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00318 }
00319 if ((level == 23)&&(subdetlevel == 4)){
00320 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00321 }
00322 if ((level == 22)&&(subdetlevel == 4)){
00323 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00324 }
00325 if ((level == 2)&&(subdetlevel == 4)){
00326 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0005; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
00327 }
00328 if ((level == 1)&&(subdetlevel == 4)){
00329 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.005; deltaRW(4)=0.0005; deltaRW(5)=0.0005; deltaRW(6)=0.0005;
00330 }
00331
00332 if ((level == 30)&&(subdetlevel == 5)){
00333 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
00334 }
00335 if ((level == 29)&&(subdetlevel == 5)){
00336 deltaRW(1)=0.014; deltaRW(2)=0.014; deltaRW(3)=0.05; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00337 }
00338 if ((level == 28)&&(subdetlevel == 5)){
00339 deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00340 }
00341 if ((level == 27)&&(subdetlevel == 5)){
00342 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00343 }
00344 if ((level == 2)&&(subdetlevel == 5)){
00345 deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00346 }
00347 if ((level == 1)&&(subdetlevel == 5)){
00348 deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00349 }
00350
00351 if ((level == 36)&&(subdetlevel == 6)){
00352 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
00353 }
00354 if ((level == 35)&&(subdetlevel == 6)){
00355 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.05; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
00356 }
00357 if ((level == 34)&&(subdetlevel == 6)){
00358 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
00359 }
00360 if ((level == 33)&&(subdetlevel == 6)){
00361 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00362 }
00363 if ((level == 32)&&(subdetlevel == 6)){
00364 deltaRW(1)=0.007; deltaRW(2)=0.007; deltaRW(3)=0.015; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
00365 }
00366 if ((level == 2)&&(subdetlevel == 6)){
00367 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00368 }
00369 if ((level == 1)&&(subdetlevel == 6)){
00370 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00371 }
00372
00373 return deltaRW;
00374 }
00375
00376
00377
00378 AlgebraicVector CreateSurveyRcds::getStructureErrors(int level, int subdetlevel)
00379 {
00380 AlgebraicVector deltaRW(6);
00381 deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
00382
00383 if ((level == 37)&&(subdetlevel == 1)){
00384 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
00385 }
00386
00387 if ((level == 38)&&(subdetlevel == 3)){
00388 deltaRW(1)=0.2; deltaRW(2)=0.2; deltaRW(3)=0.2; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00389 }
00390
00391 if ((level == 39)&&(subdetlevel == 1)){
00392 deltaRW(1)=0.0; deltaRW(2)=0.0; deltaRW(3)=0.0; deltaRW(4)=0.0; deltaRW(5)=0.0; deltaRW(6)=0.0;
00393 }
00394
00395 if ((level == 7)&&(subdetlevel == 1)){
00396 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0008; deltaRW(5)=0.0008; deltaRW(6)=0.0008;
00397 }
00398 if ((level == 6)&&(subdetlevel == 1)){
00399 deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
00400 }
00401 if ((level == 5)&&(subdetlevel == 1)){
00402 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00403 }
00404 if ((level == 4)&&(subdetlevel == 1)){
00405 deltaRW(1)=0.001; deltaRW(2)=0.001; deltaRW(3)=0.002; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
00406 }
00407 if ((level == 2)&&(subdetlevel == 1)){
00408 deltaRW(1)=0.0005; deltaRW(2)=0.001; deltaRW(3)=0.001; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00409 }
00410 if ((level == 1)&&(subdetlevel == 1)){
00411 deltaRW(1)=0.0005; deltaRW(2)=0.001; deltaRW(3)=0.001; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00412 }
00413
00414 if ((level == 13)&&(subdetlevel == 2)){
00415 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0004; deltaRW(5)=0.0004; deltaRW(6)=0.0004;
00416 }
00417 if ((level == 12)&&(subdetlevel == 2)){
00418 deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
00419 }
00420 if ((level == 11)&&(subdetlevel == 2)){
00421 deltaRW(1)=0.005; deltaRW(2)=0.005; deltaRW(3)=0.01; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00422 }
00423 if ((level == 10)&&(subdetlevel == 2)){
00424 deltaRW(1)=0.001; deltaRW(2)=0.001; deltaRW(3)=0.002; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00425 }
00426 if ((level == 9)&&(subdetlevel == 2)){
00427 deltaRW(1)=0.001; deltaRW(2)=0.0008; deltaRW(3)=0.0006; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00428 }
00429 if ((level == 2)&&(subdetlevel == 2)){
00430 deltaRW(1)=0.0005; deltaRW(2)=0.0004; deltaRW(3)=0.0006; deltaRW(4)=0.0001; deltaRW(5)=0.0003; deltaRW(6)=0.0001;
00431 }
00432 if ((level == 1)&&(subdetlevel == 2)){
00433 deltaRW(1)=0.0005; deltaRW(2)=0.0004; deltaRW(3)=0.0006; deltaRW(4)=0.0001; deltaRW(5)=0.0003; deltaRW(6)=0.0001;
00434 }
00435
00436 if ((level == 20)&&(subdetlevel == 3)){
00437 deltaRW(1)=0.08; deltaRW(2)=0.08; deltaRW(3)=0.04; deltaRW(4)=0.0017; deltaRW(5)=0.0017; deltaRW(6)=0.0017;
00438 }
00439 if ((level == 19)&&(subdetlevel == 3)){
00440 deltaRW(1)=0.04; deltaRW(2)=0.04; deltaRW(3)=0.02; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
00441 }
00442 if ((level == 18)&&(subdetlevel == 3)){
00443 deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.01; deltaRW(4)=0.0006; deltaRW(5)=0.0006; deltaRW(6)=0.0006;
00444 }
00445 if ((level == 17)&&(subdetlevel == 3)){
00446 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.005; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00447 }
00448 if ((level == 16)&&(subdetlevel == 3)){
00449 deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.008; deltaRW(4)=0.0002; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00450 }
00451 if ((level == 15)&&(subdetlevel == 3)){
00452 deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.008; deltaRW(4)=0.0002; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00453 }
00454 if ((level == 2)&&(subdetlevel == 3)){
00455 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.004; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00456 }
00457 if ((level == 1)&&(subdetlevel == 3)){
00458 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.004; deltaRW(4)=0.0004; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00459 }
00460
00461 if ((level == 25)&&(subdetlevel == 4)){
00462 deltaRW(1)=0.05; deltaRW(2)=0.05; deltaRW(3)=0.1; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
00463 }
00464 if ((level == 24)&&(subdetlevel == 4)){
00465 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00466 }
00467 if ((level == 23)&&(subdetlevel == 4)){
00468 deltaRW(1)=0.004; deltaRW(2)=0.004; deltaRW(3)=0.005; deltaRW(4)=0.00004; deltaRW(5)=0.00004; deltaRW(6)=0.00004;
00469 }
00470 if ((level == 22)&&(subdetlevel == 4)){
00471 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.00004; deltaRW(5)=0.00004; deltaRW(6)=0.00004;
00472 }
00473 if ((level == 2)&&(subdetlevel == 4)){
00474 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00475 }
00476 if ((level == 1)&&(subdetlevel == 4)){
00477 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.002; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00478 }
00479
00480 if ((level == 30)&&(subdetlevel == 5)){
00481 deltaRW(1)=0.06; deltaRW(2)=0.06; deltaRW(3)=0.06; deltaRW(4)=0.00025; deltaRW(5)=0.00025; deltaRW(6)=0.00025;
00482 }
00483 if ((level == 29)&&(subdetlevel == 5)){
00484 deltaRW(1)=0.014; deltaRW(2)=0.014; deltaRW(3)=0.05; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00485 }
00486 if ((level == 28)&&(subdetlevel == 5)){
00487 deltaRW(1)=0.02; deltaRW(2)=0.02; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00488 }
00489 if ((level == 27)&&(subdetlevel == 5)){
00490 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00491 }
00492 if ((level == 2)&&(subdetlevel == 5)){
00493 deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00494 }
00495 if ((level == 1)&&(subdetlevel == 5)){
00496 deltaRW(1)=0.003; deltaRW(2)=0.003; deltaRW(3)=0.01; deltaRW(4)=0.0002; deltaRW(5)=0.0002; deltaRW(6)=0.0002;
00497 }
00498
00499 if ((level == 36)&&(subdetlevel == 6)){
00500 deltaRW(1)=0.06; deltaRW(2)=0.06; deltaRW(3)=0.1; deltaRW(4)=0.0003; deltaRW(5)=0.0003; deltaRW(6)=0.0003;
00501 }
00502 if ((level == 35)&&(subdetlevel == 6)){
00503 deltaRW(1)=0.015; deltaRW(2)=0.015; deltaRW(3)=0.03; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00504 }
00505 if ((level == 34)&&(subdetlevel == 6)){
00506 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.00005; deltaRW(5)=0.00005; deltaRW(6)=0.00005;
00507 }
00508 if ((level == 33)&&(subdetlevel == 6)){
00509 deltaRW(1)=0.01; deltaRW(2)=0.01; deltaRW(3)=0.02; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00510 }
00511 if ((level == 32)&&(subdetlevel == 6)){
00512 deltaRW(1)=0.007; deltaRW(2)=0.007; deltaRW(3)=0.015; deltaRW(4)=0.00015; deltaRW(5)=0.00015; deltaRW(6)=0.00015;
00513 }
00514 if ((level == 2)&&(subdetlevel == 6)){
00515 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00516 }
00517 if ((level == 1)&&(subdetlevel == 6)){
00518 deltaRW(1)=0.002; deltaRW(2)=0.002; deltaRW(3)=0.005; deltaRW(4)=0.0001; deltaRW(5)=0.0001; deltaRW(6)=0.0001;
00519 }
00520
00521 return deltaRW;
00522
00523
00524 }
00525
00526
00527
00528 #include "FWCore/Framework/interface/MakerMacros.h"
00529
00530 DEFINE_FWK_MODULE(CreateSurveyRcds);