36 if (theDataType !=
"RealData" && theDataType !=
"SimData")
37 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Error in Data Type!!" << endl;
39 if (theDataType ==
"SimData") {
40 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Sorry! Running this package on simulation is no longer supported! ";
45 consumes<reco::TrackCollection>(pset.
getUntrackedParameter<
string>(
"StandAloneTrackCollectionLabel"));
54 hPres = iBooker.
book1D(
"pTRes",
"pT Resolution", 100, -2, 2);
55 h1_Pres = iBooker.
book1D(
"invPTRes",
"1/pT Resolution", 100, -2, 2);
57 charge = iBooker.
book1D(
"charge",
"track charge", 5, -2.5, 2.5);
58 ptot = iBooker.
book1D(
"ptot",
"track momentum", 50, 0, 50);
59 pt = iBooker.
book1D(
"pt",
"track pT", 100, 0, 50);
60 px = iBooker.
book1D(
"px ",
"track px", 100, -50, 50);
61 py = iBooker.
book1D(
"py",
"track py", 100, -50, 50);
62 pz = iBooker.
book1D(
"pz",
"track pz", 100, -50, 50);
63 Nmuon = iBooker.
book1D(
"Nmuon",
"Number of muon tracks", 11, -.5, 10.5);
64 Nrechits = iBooker.
book1D(
"Nrechits",
"Number of RecHits/Segments on track", 21, -.5, 21.5);
65 NDThits = iBooker.
book1D(
"NDThits",
"Number of DT Hits/Segments on track", 31, -.5, 31.5);
66 NCSChits = iBooker.
book1D(
"NCSChits",
"Number of CSC Hits/Segments on track", 31, -.5, 31.5);
67 NRPChits = iBooker.
book1D(
"NRPChits",
"Number of RPC hits on track", 11, -.5, 11.5);
69 DTvsCSC = iBooker.
book2D(
"DTvsCSC",
"Number of DT vs CSC hits on track", 29, -.5, 28.5, 29, -.5, 28.5);
70 TH2F *root_ob = DTvsCSC->
getTH2F();
71 root_ob->SetXTitle(
"Number of DT hits");
72 root_ob->SetYTitle(
"Number of CSC hits");
76 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Run: " <<
event.id().run() <<
" Event: " <<
event.id().event();
81 event.getByToken(theSTAMuonToken_, staTracks);
83 const auto &theMGField = eventSetup.
getHandle(magFiledToken_);
88 reco::TrackCollection::const_iterator staTrack;
90 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Reconstructed tracks: " << staTracks->size() << endl;
91 Nmuon->Fill(staTracks->size());
92 for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
101 if ((*it)->isValid()) {
102 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Analyzer: Aha this looks like a Rechit!" << std::endl;
110 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"This is an UNKNOWN hit !! " << std::endl;
116 Nrechits->Fill(nrechits);
117 NDThits->Fill(nDThits);
118 NCSChits->Fill(nCSChits);
119 DTvsCSC->Fill(nDThits, nCSChits);
120 NRPChits->Fill(nRPChits);
135 if (recPt && theDataType ==
"SimData") {
136 hPres->Fill((recPt - simPt) / simPt);
137 h1_Pres->Fill((1 / recPt - 1 / simPt) / (1 / simPt));
T getUntrackedParameter(std::string const &, T const &) const
virtual TH2F * getTH2F() const
virtual void setCurrentFolder(std::string const &fullpath)
TrajectoryStateClosestToPoint impactPointTSCP() const
const FreeTrajectoryState & theState() const
#define DEFINE_FWK_MODULE(type)
PhysicsObjectsMonitor(const edm::ParameterSet &pset)
Constructor.
TrackCharge charge() const
std::string dumpFTS(const FreeTrajectoryState &fts) const
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
Log< level::Info, false > LogInfo
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
~PhysicsObjectsMonitor() override
Destructor.
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
GlobalVector momentum() const