00001
00009 #include "Alignment/LaserAlignment/interface/LaserLayerPairs.h"
00010 #include "RecoTracker/TkHitPairs/interface/LayerWithHits.h"
00011 #include "RecoTracker/TkDetLayers/interface/TECLayer.h"
00012
00013 #include "FWCore/Framework/interface/ESHandle.h"
00014
00015 #include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h"
00016 #include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h"
00017
00018 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00019 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00020
00021
00022 std::vector<SeedLayerPairs::LayerPair> LaserLayerPairs::operator()()
00023 {
00024 std::vector<LayerPair> result;
00025
00026
00027 result.push_back( LayerPair(lh1pos, lh2pos) );
00028 result.push_back( LayerPair(lh1pos, lh3pos) );
00029 result.push_back( LayerPair(lh1pos, lh4pos) );
00030 result.push_back( LayerPair(lh1pos, lh5pos) );
00031
00032 result.push_back( LayerPair(lh2pos, lh3pos) );
00033 result.push_back( LayerPair(lh2pos, lh4pos) );
00034 result.push_back( LayerPair(lh2pos, lh5pos) );
00035
00036 result.push_back( LayerPair(lh3pos, lh4pos) );
00037 result.push_back( LayerPair(lh3pos, lh5pos) );
00038
00039 result.push_back( LayerPair(lh4pos, lh5pos) );
00040
00041 result.push_back( LayerPair(lh6pos, lh7pos) );
00042 result.push_back( LayerPair(lh6pos, lh8pos) );
00043 result.push_back( LayerPair(lh6pos, lh9pos) );
00044
00045 result.push_back( LayerPair(lh7pos, lh8pos) );
00046 result.push_back( LayerPair(lh7pos, lh9pos) );
00047
00048 result.push_back( LayerPair(lh8pos, lh9pos) );
00049
00050
00051 result.push_back( LayerPair(lh1neg, lh2neg) );
00052 result.push_back( LayerPair(lh1neg, lh3neg) );
00053 result.push_back( LayerPair(lh1neg, lh4neg) );
00054 result.push_back( LayerPair(lh1neg, lh5neg) );
00055
00056 result.push_back( LayerPair(lh2neg, lh3neg) );
00057 result.push_back( LayerPair(lh2neg, lh4neg) );
00058 result.push_back( LayerPair(lh2neg, lh5neg) );
00059
00060 result.push_back( LayerPair(lh3neg, lh4neg) );
00061 result.push_back( LayerPair(lh3neg, lh5neg) );
00062
00063 result.push_back( LayerPair(lh4neg, lh5neg) );
00064
00065 result.push_back( LayerPair(lh6neg, lh7neg) );
00066 result.push_back( LayerPair(lh6neg, lh8neg) );
00067 result.push_back( LayerPair(lh6neg, lh9neg) );
00068
00069 result.push_back( LayerPair(lh7neg, lh8neg) );
00070 result.push_back( LayerPair(lh7neg, lh9neg) );
00071
00072 result.push_back( LayerPair(lh8neg, lh9neg) );
00073
00074 return result;
00075 }
00076
00077 void LaserLayerPairs::init(const SiStripRecHit2DCollection & collstereo,
00078 const SiStripRecHit2DCollection & collrphi,
00079 const SiStripMatchedRecHit2DCollection & collmatched,
00080 const edm::EventSetup & iSetup)
00081 {
00082 edm::ESHandle<GeometricSearchTracker> track;
00083 iSetup.get<TrackerRecoGeometryRecord>().get(track);
00084
00085
00086 fpos = track->posTecLayers();
00087
00088 fneg = track->negTecLayers();
00089
00090 edm::ESHandle<TrackerGeometry> tracker;
00091 iSetup.get<TrackerDigiGeometryRecord>().get(tracker);
00092
00093
00094 rphi_pos_range1 = collrphi.get(acc.stripTECDisk(2,1));
00095 rphi_pos_range2 = collrphi.get(acc.stripTECDisk(2,2));
00096 rphi_pos_range3 = collrphi.get(acc.stripTECDisk(2,3));
00097 rphi_pos_range4 = collrphi.get(acc.stripTECDisk(2,4));
00098 rphi_pos_range5 = collrphi.get(acc.stripTECDisk(2,5));
00099 rphi_pos_range6 = collrphi.get(acc.stripTECDisk(2,6));
00100 rphi_pos_range7 = collrphi.get(acc.stripTECDisk(2,7));
00101 rphi_pos_range8 = collrphi.get(acc.stripTECDisk(2,8));
00102 rphi_pos_range9 = collrphi.get(acc.stripTECDisk(2,9));
00103
00104 rphi_neg_range1 = collrphi.get(acc.stripTECDisk(1,1));
00105 rphi_neg_range2 = collrphi.get(acc.stripTECDisk(1,2));
00106 rphi_neg_range3 = collrphi.get(acc.stripTECDisk(1,3));
00107 rphi_neg_range4 = collrphi.get(acc.stripTECDisk(1,4));
00108 rphi_neg_range5 = collrphi.get(acc.stripTECDisk(1,5));
00109 rphi_neg_range6 = collrphi.get(acc.stripTECDisk(1,6));
00110 rphi_neg_range7 = collrphi.get(acc.stripTECDisk(1,7));
00111 rphi_neg_range8 = collrphi.get(acc.stripTECDisk(1,8));
00112 rphi_neg_range9 = collrphi.get(acc.stripTECDisk(1,9));
00113
00114
00115 const TECLayer * fposl1 = dynamic_cast<TECLayer*>(fpos[0]);
00116 const TECLayer * fposl2 = dynamic_cast<TECLayer*>(fpos[1]);
00117 const TECLayer * fposl3 = dynamic_cast<TECLayer*>(fpos[2]);
00118 const TECLayer * fposl4 = dynamic_cast<TECLayer*>(fpos[3]);
00119 const TECLayer * fposl5 = dynamic_cast<TECLayer*>(fpos[4]);
00120 const TECLayer * fposl6 = dynamic_cast<TECLayer*>(fpos[5]);
00121 const TECLayer * fposl7 = dynamic_cast<TECLayer*>(fpos[6]);
00122 const TECLayer * fposl8 = dynamic_cast<TECLayer*>(fpos[7]);
00123 const TECLayer * fposl9 = dynamic_cast<TECLayer*>(fpos[8]);
00124
00125 const TECLayer * fnegl1 = dynamic_cast<TECLayer*>(fneg[0]);
00126 const TECLayer * fnegl2 = dynamic_cast<TECLayer*>(fneg[1]);
00127 const TECLayer * fnegl3 = dynamic_cast<TECLayer*>(fneg[2]);
00128 const TECLayer * fnegl4 = dynamic_cast<TECLayer*>(fneg[3]);
00129 const TECLayer * fnegl5 = dynamic_cast<TECLayer*>(fneg[4]);
00130 const TECLayer * fnegl6 = dynamic_cast<TECLayer*>(fneg[5]);
00131 const TECLayer * fnegl7 = dynamic_cast<TECLayer*>(fneg[6]);
00132 const TECLayer * fnegl8 = dynamic_cast<TECLayer*>(fneg[7]);
00133 const TECLayer * fnegl9 = dynamic_cast<TECLayer*>(fneg[8]);
00134
00135
00136 lh1pos = new LayerWithHits(fposl1, rphi_pos_range1);
00137 lh2pos = new LayerWithHits(fposl2, rphi_pos_range2);
00138 lh3pos = new LayerWithHits(fposl3, rphi_pos_range3);
00139 lh4pos = new LayerWithHits(fposl4, rphi_pos_range4);
00140 lh5pos = new LayerWithHits(fposl5, rphi_pos_range5);
00141 lh6pos = new LayerWithHits(fposl6, rphi_pos_range6);
00142 lh7pos = new LayerWithHits(fposl7, rphi_pos_range7);
00143 lh8pos = new LayerWithHits(fposl8, rphi_pos_range8);
00144 lh9pos = new LayerWithHits(fposl9, rphi_pos_range9);
00145
00146 lh1neg = new LayerWithHits(fnegl1, rphi_neg_range1);
00147 lh2neg = new LayerWithHits(fnegl2, rphi_neg_range2);
00148 lh3neg = new LayerWithHits(fnegl3, rphi_neg_range3);
00149 lh4neg = new LayerWithHits(fnegl4, rphi_neg_range4);
00150 lh5neg = new LayerWithHits(fnegl5, rphi_neg_range5);
00151 lh6neg = new LayerWithHits(fnegl6, rphi_neg_range6);
00152 lh7neg = new LayerWithHits(fnegl7, rphi_neg_range7);
00153 lh8neg = new LayerWithHits(fnegl8, rphi_neg_range8);
00154 lh9neg = new LayerWithHits(fnegl9, rphi_neg_range9);
00155 }