![]() |
![]() |
#include <Alignment/LaserAlignment/interface/LaserHitPairGeneratorFromLayerPair.h>
Public Member Functions | |
virtual LaserHitPairGeneratorFromLayerPair * | clone () const |
virtual void | hitPairs (const TrackingRegion &ar, OrderedLaserHitPairs &ap, const edm::EventSetup &iSetup) |
from base class | |
const LayerWithHits * | innerLayer () const |
return inner layer | |
LaserHitPairGeneratorFromLayerPair (const LayerWithHits *inner, const LayerWithHits *outer, const edm::EventSetup &iSetup) | |
constructor | |
const LayerWithHits * | outerLayer () const |
return outer layer | |
virtual | ~LaserHitPairGeneratorFromLayerPair () |
destructor | |
Private Attributes | |
const DetLayer * | innerlay |
const DetLayer * | outerlay |
const LayerWithHits * | theInnerLayer |
const LayerWithHits * | theOuterLayer |
const TrackerGeometry * | trackerGeometry |
Definition at line 60 of file LaserHitPairGeneratorFromLayerPair.h.
LaserHitPairGeneratorFromLayerPair::LaserHitPairGeneratorFromLayerPair | ( | const LayerWithHits * | inner, | |
const LayerWithHits * | outer, | |||
const edm::EventSetup & | iSetup | |||
) |
constructor
Definition at line 19 of file LaserHitPairGeneratorFromLayerPair.cc.
References edm::EventSetup::get(), edm::ESHandle< T >::product(), and trackerGeometry.
Referenced by clone().
00020 : trackerGeometry(0), 00021 theInnerLayer(inner), theOuterLayer(outer) 00022 { 00023 00024 edm::ESHandle<TrackerGeometry> tracker; 00025 iSetup.get<TrackerDigiGeometryRecord>().get(tracker); 00026 trackerGeometry = tracker.product(); 00027 }
virtual LaserHitPairGeneratorFromLayerPair::~LaserHitPairGeneratorFromLayerPair | ( | ) | [inline, virtual] |
virtual LaserHitPairGeneratorFromLayerPair* LaserHitPairGeneratorFromLayerPair::clone | ( | void | ) | const [inline, virtual] |
Definition at line 73 of file LaserHitPairGeneratorFromLayerPair.h.
References LaserHitPairGeneratorFromLayerPair().
00074 { 00075 return new LaserHitPairGeneratorFromLayerPair(*this); 00076 }
void LaserHitPairGeneratorFromLayerPair::hitPairs | ( | const TrackingRegion & | ar, | |
OrderedLaserHitPairs & | ap, | |||
const edm::EventSetup & | iSetup | |||
) | [virtual] |
from base class
Definition at line 29 of file LaserHitPairGeneratorFromLayerPair.cc.
References TrackerGeometry::idToDet(), it, PV3DBase< T, PVType, FrameType >::phi(), funct::pow(), LayerWithHits::recHits(), funct::sqrt(), theInnerLayer, theOuterLayer, GeomDet::toGlobal(), trackerGeometry, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
00030 { 00031 typedef OrderedLaserHitPair::InnerHit InnerHit; 00032 typedef OrderedLaserHitPair::OuterHit OuterHit; 00033 00034 if (theInnerLayer->recHits().empty()) return; 00035 if (theOuterLayer->recHits().empty()) return; 00036 00037 std::vector<OrderedLaserHitPair> allthepairs; 00038 00039 std::vector<const TrackingRecHit*>::const_iterator ohh; 00040 00041 for(ohh=theOuterLayer->recHits().begin();ohh!=theOuterLayer->recHits().end();ohh++){ 00042 GlobalPoint oh = trackerGeometry->idToDet((*ohh)->geographicalId())->surface().toGlobal((*ohh)->localPosition()); 00043 std::vector<const TrackingRecHit*>::const_iterator ihh; 00044 for(ihh=theInnerLayer->recHits().begin();ihh!=theInnerLayer->recHits().end();ihh++){ 00045 GlobalPoint ih = trackerGeometry->idToDet((*ihh)->geographicalId())->surface().toGlobal((*ihh)->localPosition()); 00046 00047 double inny = ih.y(); 00048 double outy = oh.y(); 00049 double innz = ih.z(); 00050 double outz = oh.z(); 00051 double innphi = ih.phi(); 00052 double outphi = oh.phi(); 00053 double phi_diff = innphi - outphi; 00054 double r_diff = sqrt(pow(ih.x(),2)+pow(ih.y(),2)) - sqrt(pow(oh.x(),2)+pow(oh.y(),2)); 00055 00056 if ( ( inny * outy > 0.0 ) && ( innz * outz > 0.0 ) && ( fabs(phi_diff) < 0.005 ) && ( fabs(r_diff) < 0.5 ) ) 00057 { 00058 allthepairs.push_back( OrderedLaserHitPair(*ihh, *ohh )); 00059 } 00060 } 00061 } 00062 stable_sort(allthepairs.begin(),allthepairs.end(),CompareHitPairsZ(iSetup)); 00063 00064 if (allthepairs.size() > 0) 00065 { 00066 for (std::vector<OrderedLaserHitPair>::const_iterator it = allthepairs.begin(); it != allthepairs.end(); it++) 00067 { 00068 result.push_back(*it); 00069 } 00070 } 00071 }
const LayerWithHits* LaserHitPairGeneratorFromLayerPair::innerLayer | ( | ) | const [inline] |
return inner layer
Definition at line 79 of file LaserHitPairGeneratorFromLayerPair.h.
References theInnerLayer.
00079 { return theInnerLayer; }
const LayerWithHits* LaserHitPairGeneratorFromLayerPair::outerLayer | ( | ) | const [inline] |
return outer layer
Definition at line 81 of file LaserHitPairGeneratorFromLayerPair.h.
References theOuterLayer.
00081 { return theOuterLayer; }
const DetLayer* LaserHitPairGeneratorFromLayerPair::innerlay [private] |
Definition at line 88 of file LaserHitPairGeneratorFromLayerPair.h.
const DetLayer* LaserHitPairGeneratorFromLayerPair::outerlay [private] |
Definition at line 89 of file LaserHitPairGeneratorFromLayerPair.h.
const LayerWithHits* LaserHitPairGeneratorFromLayerPair::theInnerLayer [private] |
Definition at line 86 of file LaserHitPairGeneratorFromLayerPair.h.
Referenced by hitPairs(), and innerLayer().
const LayerWithHits* LaserHitPairGeneratorFromLayerPair::theOuterLayer [private] |
Definition at line 87 of file LaserHitPairGeneratorFromLayerPair.h.
Referenced by hitPairs(), and outerLayer().
const TrackerGeometry* LaserHitPairGeneratorFromLayerPair::trackerGeometry [private] |
Definition at line 85 of file LaserHitPairGeneratorFromLayerPair.h.
Referenced by hitPairs(), and LaserHitPairGeneratorFromLayerPair().