// -*- C++ -*- // // Package: FastTimeNumberingTester // Class: FastTimeNumberingTester // /**\class FastTimeNumberingTester FastTimeNumberingTester.cc test/FastTimeNumberingTester.cc Description: Implementation: */ // // Original Author: Sunanda Banerjee // Created: Mon 2014/04/24 // $Id: FastTimeNumberingTester.cc,v 1.0 2014/04/24 14:06:07 sunanda Exp $ // // //#define DebugLog // system include files #include #include #include // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESTransientHandle.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DetectorDescription/Core/interface/DDCompactView.h" #include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDSpecifics.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/HGCalCommonData/interface/FastTimeDDDConstants.h" #include "DataFormats/ForwardDetId/interface/FastTimeDetId.h" #include "SimDataFormats/TrackingHit/interface/PSimHit.h" #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h" #include "CoralBase/Exception.h" // // class decleration // class FastTimeNumberingTester : public edm::EDAnalyzer { public: explicit FastTimeNumberingTester( const edm::ParameterSet& ); ~FastTimeNumberingTester(); virtual void analyze( const edm::Event&, const edm::EventSetup& ); private: // ----------member data --------------------------- std::string g4Label; std::string fastLabel; }; // // constants, enums and typedefs // // // static data member definitions // // // constructors and destructor // FastTimeNumberingTester::FastTimeNumberingTester(const edm::ParameterSet& ps) { g4Label = ps.getUntrackedParameter("ModuleLabel","g4SimHits"); // fastLabel = ps.getUntrackedParameter("FastTimerSensitiveDetector","FastTimerHits"); fastLabel = "FastTimerHits"; } FastTimeNumberingTester::~FastTimeNumberingTester() {} // // member functions // // ------------ method called to produce the data ------------ void FastTimeNumberingTester::analyze( const edm::Event& iEvent, const edm::EventSetup& iSetup ) { edm::ESHandle pFTNDC; iSetup.get().get(pFTNDC); const FastTimeDDDConstants fTnDC(*pFTNDC); std::cout << "Fast timing device with " << fTnDC.getCells() << ":" << fTnDC.computeCells() << " cells" << " for detector type " << fTnDC.getType() << std::endl; for (unsigned int ix=0; ix<400; ++ix) { for (unsigned int iy=0; iy<400; ++iy) { if (fTnDC.isValidXY(ix,iy)) { FastTimeDetId id1(ix,iy,1), id2(ix,iy,-1); // std::cout << "Valid ID " << id1 << " and " << id2 << std::endl; } else { #ifdef DebugLog // std::cout << "ix = " << ix << ", iy = " << iy << " is not valid for " // << "FastTime" << std::endl; #endif } iy += 9; } ix += 9; } std::vector fastHits; edm::Handle hitsTrack; iEvent.getByLabel(g4Label,fastLabel,hitsTrack); if (hitsTrack.isValid()) { std::cout << "Fast hits present " << std::endl; fastHits.insert(fastHits.end(),hitsTrack->begin(),hitsTrack->end()); // analyzeHits (hitsTrack, i+12); } unsigned int nhfast = fastHits.size(); std::cout << "nhfast = " << nhfast << std::endl; for (unsigned int i=0; i