CMS 3D CMS Logo

TrackingRecHitTranslator Class Reference

EDProducer to translate RecHits ordered by SimTrackId to RecHits expected by the full pattern recognition. More...

#include <FastSimulation/TrackingRecHitProducer/interface/TrackingRecHitTranslator.h>

Inheritance diagram for TrackingRecHitTranslator:

edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

virtual void beginRun (edm::Run &run, const edm::EventSetup &es)
virtual void produce (edm::Event &e, const edm::EventSetup &c)
 TrackingRecHitTranslator (const edm::ParameterSet &conf)
 TrackingRecHitTranslator.cc -------------------------------------------------------------- Description: see TrackingRecHitTranslator.h Authors: R.
virtual ~TrackingRecHitTranslator ()

Private Member Functions

void loadRecHits (std::map< DetId, edm::OwnVector< SiTrackerGSRecHit2D > > &theRecHits, SiTrackerFullGSRecHit2DCollection &theRecHitCollection) const

Private Attributes

const TrackerGeometrygeometry


Detailed Description

EDProducer to translate RecHits ordered by SimTrackId to RecHits expected by the full pattern recognition.

Definition at line 27 of file TrackingRecHitTranslator.h.


Constructor & Destructor Documentation

TrackingRecHitTranslator::TrackingRecHitTranslator ( const edm::ParameterSet conf  )  [explicit]

TrackingRecHitTranslator.cc -------------------------------------------------------------- Description: see TrackingRecHitTranslator.h Authors: R.

Ranieri (CERN) History: Sep 27, 2006 - initial version --------------------------------------------------------------

Definition at line 32 of file TrackingRecHitTranslator.cc.

00033 {
00034   produces<SiTrackerFullGSRecHit2DCollection>();
00035 }

TrackingRecHitTranslator::~TrackingRecHitTranslator (  )  [virtual]

Definition at line 38 of file TrackingRecHitTranslator.cc.

00038 {}  


Member Function Documentation

void TrackingRecHitTranslator::beginRun ( edm::Run run,
const edm::EventSetup es 
) [virtual]

Reimplemented from edm::EDProducer.

Definition at line 41 of file TrackingRecHitTranslator.cc.

References geometry, and edm::EventSetup::get().

00041                                                                          {
00042 
00043   // Initialize the Tracker Geometry
00044   edm::ESHandle<TrackerGeometry> theGeometry;
00045   es.get<TrackerDigiGeometryRecord> ().get (theGeometry);
00046   geometry = &(*theGeometry);
00047 
00048 }

void TrackingRecHitTranslator::loadRecHits ( std::map< DetId, edm::OwnVector< SiTrackerGSRecHit2D > > &  theRecHits,
SiTrackerFullGSRecHit2DCollection theRecHitCollection 
) const [private]

Definition at line 93 of file TrackingRecHitTranslator.cc.

References it, and edm::RangeMap< ID, C, P >::put().

Referenced by produce().

00096 {
00097   std::map<DetId,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator 
00098     it = theRecHits.begin();
00099   std::map<DetId,edm::OwnVector<SiTrackerGSRecHit2D> >::const_iterator 
00100     lastRecHit = theRecHits.end();
00101 
00102   for( ; it != lastRecHit ; ++it ) { 
00103     theRecHitCollection.put(it->first,it->second.begin(),it->second.end());
00104   }
00105 
00106 }

void TrackingRecHitTranslator::produce ( edm::Event e,
const edm::EventSetup c 
) [virtual]

Implements edm::EDProducer.

Definition at line 50 of file TrackingRecHitTranslator.cc.

References edm::Event::getByType(), loadRecHits(), and edm::Event::put().

00051 {
00052   // Step A: Get Inputs (FastGSRecHit's)
00053   edm::Handle<SiTrackerGSRecHit2DCollection> theFastRecHits; 
00054   e.getByType(theFastRecHits);
00055 
00056   // Step B: fill a temporary full RecHit collection from the fast RecHit collection
00057   SiTrackerGSRecHit2DCollection::const_iterator aHit = theFastRecHits->begin();
00058   SiTrackerGSRecHit2DCollection::const_iterator theLastHit = theFastRecHits->end();
00059   std::map< DetId, edm::OwnVector<SiTrackerGSRecHit2D> > temporaryRecHits;
00060     
00061   // loop on Fast GS Hits
00062   for ( ; aHit != theLastHit; ++aHit ) {
00063 
00064     DetId det = aHit->geographicalId();
00065 
00066     /* 
00067     const GeomDet* theDet = geometry->idToDet(det);
00068     unsigned trackID = aHit->simtrackId();
00069 
00070     std::cout << "Track/z/r after : "
00071               << trackID << " " 
00072               << theDet->surface().toGlobal(aHit->localPosition()).z() << " " 
00073               << theDet->surface().toGlobal(aHit->localPosition()).perp() << std::endl;
00074     */
00075 
00076     // create RecHit
00077     // Fill the temporary RecHit on the current DetId collection
00078     temporaryRecHits[det].push_back(aHit->clone());
00079 
00080   }
00081 
00082   // Step C: from the temporary RecHit collection, create the real one.
00083   std::auto_ptr<SiTrackerFullGSRecHit2DCollection> 
00084     recHitCollection(new SiTrackerFullGSRecHit2DCollection);
00085   loadRecHits(temporaryRecHits, *recHitCollection);
00086   
00087   // Step D: write output to file
00088   e.put(recHitCollection);
00089 
00090 }


Member Data Documentation

const TrackerGeometry* TrackingRecHitTranslator::geometry [private]

Definition at line 47 of file TrackingRecHitTranslator.h.

Referenced by beginRun().


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