CMS 3D CMS Logo

VisTrackingRecHit Class Reference

#include <VisReco/Analyzer/interface/VisTrackingRecHit.h>

Inheritance diagram for VisTrackingRecHit:

edm::EDAnalyzer

List of all members.

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 VisTrackingRecHit (const edm::ParameterSet &)
virtual ~VisTrackingRecHit ()

Private Attributes

edm::InputTag inputTag_


Detailed Description

Definition at line 18 of file VisTrackingRecHit.h.


Constructor & Destructor Documentation

VisTrackingRecHit::VisTrackingRecHit ( const edm::ParameterSet iConfig  ) 

Definition at line 32 of file VisTrackingRecHit.cc.

00033     : inputTag_ (iConfig.getParameter<edm::InputTag>("visTrackingRecHitTag"))
00034 {}

virtual VisTrackingRecHit::~VisTrackingRecHit (  )  [inline, virtual]

Definition at line 25 of file VisTrackingRecHit.h.

00025 {}


Member Function Documentation

void VisTrackingRecHit::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
) [virtual]

Implements edm::EDAnalyzer.

Definition at line 37 of file VisTrackingRecHit.cc.

References IgCollection::addProperty(), collection, edmplugin::standard::config(), IgCollection::create(), error, Exception, edm::EventSetup::get(), IgDataStorage::getCollection(), inputTag_, edm::InputTag::instance(), edm::Service< T >::isAvailable(), edm::Handle< T >::isValid(), edm::ESHandle< T >::isValid(), it, edm::InputTag::label(), VisLocalPosition::localPosition(), edm::InputTag::process(), edm::ESHandle< T >::product(), x, y, and z.

00038 {
00039     edm::Service<IguanaService> config;
00040     if (! config.isAvailable ()) 
00041     {
00042         throw cms::Exception ("Configuration")
00043             << "VisTrackingRecHit requires the IguanaService\n"
00044             "which is not present in the configuration file.\n"
00045             "You must add the service in the configuration file\n"
00046             "or remove the module that requires it";
00047     }
00048     
00049     edm::Handle<TrackingRecHitCollection> collection;
00050     event.getByLabel (inputTag_, collection);
00051  
00052     edm::ESHandle<GlobalTrackingGeometry> geom;
00053     eventSetup.get<GlobalTrackingGeometryRecord> ().get (geom);
00054 
00055     if (collection.isValid () && geom.isValid ())
00056     {       
00057         IgDataStorage *storage = config->storage ();
00058         IgCollection &recHits = storage->getCollection("TrackingRecHits_V1");
00059         IgProperty POS = recHits.addProperty("pos", IgV3d());
00060 
00061         for (TrackingRecHitCollection::const_iterator it=collection->begin(), itEnd=collection->end(); it!=itEnd; ++it)
00062         {
00063             if ((*it).isValid () && !(*it).geographicalId ().null ())
00064             {
00065                 LocalPoint point = VisLocalPosition::localPosition(&(*it), geom.product ());
00066                 float x = geom->idToDet ((*it).geographicalId ())->surface ().toGlobal (point).x () / 100.0;
00067                 float y = geom->idToDet ((*it).geographicalId ())->surface ().toGlobal (point).y () / 100.0;
00068                 float z = geom->idToDet ((*it).geographicalId ())->surface ().toGlobal (point).z () / 100.0;
00069 
00070                 IgCollectionItem irechit = recHits.create();
00071                 irechit[POS] = IgV3d (static_cast<double>(x), static_cast<double>(y), static_cast<double>(z));
00072             }       
00073         }
00074     }
00075     else 
00076     {
00077         // friendlyName:moduleLabel:instanceName:processName
00078         std::string error = "### Error: TrackingRecHits "
00079                             + edm::TypeID (typeid (TrackingRecHitCollection)).friendlyClassName () + ":" 
00080                             + inputTag_.label() + ":"
00081                             + inputTag_.instance() + ":" 
00082                             + inputTag_.process() + " are not found.";
00083 
00084         IgDataStorage *storage = config->storage ();
00085         IgCollection &collection = storage->getCollection ("Errors_V1");
00086         IgProperty ERROR_MSG = collection.addProperty ("Error", std::string ());
00087         IgCollectionItem item = collection.create ();
00088         item [ERROR_MSG] = error;
00089     }
00090 }


Member Data Documentation

edm::InputTag VisTrackingRecHit::inputTag_ [private]

Definition at line 30 of file VisTrackingRecHit.h.

Referenced by analyze().


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