![]() |
![]() |
#include <FastSimulation/TrackingRecHitProducer/interface/TrackingRecHitTranslator.h>
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 TrackerGeometry * | geometry |
Definition at line 27 of file TrackingRecHitTranslator.h.
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.
TrackingRecHitTranslator::~TrackingRecHitTranslator | ( | ) | [virtual] |
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 }
const TrackerGeometry* TrackingRecHitTranslator::geometry [private] |