#include <VisReco/Analyzer/interface/VisTrackingRecHit.h>
Public Member Functions | |
virtual void | analyze (const edm::Event &, const edm::EventSetup &) |
VisTrackingRecHit (const edm::ParameterSet &) | |
virtual | ~VisTrackingRecHit () |
Private Attributes | |
edm::InputTag | inputTag_ |
Definition at line 18 of file VisTrackingRecHit.h.
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] |
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 }
edm::InputTag VisTrackingRecHit::inputTag_ [private] |