CMS 3D CMS Logo

LaserHitPairGeneratorFromLayerPair Class Reference

generate hit pairs from hits on consecutive discs in the endcaps used by the LaserSeedGenerator More...

#include <Alignment/LaserAlignment/interface/LaserHitPairGeneratorFromLayerPair.h>

List of all members.

Public Member Functions

virtual
LaserHitPairGeneratorFromLayerPair
clone () const
virtual void hitPairs (const TrackingRegion &ar, OrderedLaserHitPairs &ap, const edm::EventSetup &iSetup)
 from base class
const LayerWithHitsinnerLayer () const
 return inner layer
 LaserHitPairGeneratorFromLayerPair (const LayerWithHits *inner, const LayerWithHits *outer, const edm::EventSetup &iSetup)
 constructor
const LayerWithHitsouterLayer () const
 return outer layer
virtual ~LaserHitPairGeneratorFromLayerPair ()
 destructor

Private Attributes

const DetLayerinnerlay
const DetLayerouterlay
const LayerWithHitstheInnerLayer
const LayerWithHitstheOuterLayer
const TrackerGeometrytrackerGeometry


Detailed Description

generate hit pairs from hits on consecutive discs in the endcaps used by the LaserSeedGenerator

Date
2007/12/04 23:51:42
Revision
1.16
Author:
Maarten Thomas

Definition at line 60 of file LaserHitPairGeneratorFromLayerPair.h.


Constructor & Destructor Documentation

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]

destructor

Definition at line 68 of file LaserHitPairGeneratorFromLayerPair.h.

00068 {}


Member Function Documentation

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; }


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:27:22 2009 for CMSSW by  doxygen 1.5.4