37 if (theDataType !=
"RealData" && theDataType !=
"SimData")
38 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Error in Data Type!!" << endl;
40 if (theDataType ==
"SimData") {
41 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Sorry! Running this package on simulation is no longer supported! ";
46 consumes<reco::TrackCollection>(pset.
getUntrackedParameter<
string>(
"StandAloneTrackCollectionLabel"));
55 hPres = iBooker.
book1D(
"pTRes",
"pT Resolution", 100, -2, 2);
56 h1_Pres = iBooker.
book1D(
"invPTRes",
"1/pT Resolution", 100, -2, 2);
58 charge = iBooker.
book1D(
"charge",
"track charge", 5, -2.5, 2.5);
59 ptot = iBooker.
book1D(
"ptot",
"track momentum", 50, 0, 50);
60 pt = iBooker.
book1D(
"pt",
"track pT", 100, 0, 50);
61 px = iBooker.
book1D(
"px ",
"track px", 100, -50, 50);
62 py = iBooker.
book1D(
"py",
"track py", 100, -50, 50);
63 pz = iBooker.
book1D(
"pz",
"track pz", 100, -50, 50);
64 Nmuon = iBooker.
book1D(
"Nmuon",
"Number of muon tracks", 11, -.5, 10.5);
65 Nrechits = iBooker.
book1D(
"Nrechits",
"Number of RecHits/Segments on track", 21, -.5, 21.5);
66 NDThits = iBooker.
book1D(
"NDThits",
"Number of DT Hits/Segments on track", 31, -.5, 31.5);
67 NCSChits = iBooker.
book1D(
"NCSChits",
"Number of CSC Hits/Segments on track", 31, -.5, 31.5);
68 NRPChits = iBooker.
book1D(
"NRPChits",
"Number of RPC hits on track", 11, -.5, 11.5);
70 DTvsCSC = iBooker.
book2D(
"DTvsCSC",
"Number of DT vs CSC hits on track", 29, -.5, 28.5, 29, -.5, 28.5);
71 TH2F *root_ob = DTvsCSC->
getTH2F();
72 root_ob->SetXTitle(
"Number of DT hits");
73 root_ob->SetYTitle(
"Number of CSC hits");
77 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Run: " <<
event.id().run() <<
" Event: " <<
event.id().event();
82 event.getByToken(theSTAMuonToken_, staTracks);
90 reco::TrackCollection::const_iterator staTrack;
92 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Reconstructed tracks: " << staTracks->size() << endl;
93 Nmuon->Fill(staTracks->size());
94 for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
103 if ((*it)->isValid()) {
104 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"Analyzer: Aha this looks like a Rechit!" << std::endl;
112 edm::LogInfo(
"PhysicsObjectsMonitor") <<
"This is an UNKNOWN hit !! " << std::endl;
118 Nrechits->Fill(nrechits);
119 NDThits->Fill(nDThits);
120 NCSChits->Fill(nCSChits);
121 DTvsCSC->Fill(nDThits, nCSChits);
122 NRPChits->Fill(nRPChits);
137 if (recPt && theDataType ==
"SimData") {
138 hPres->Fill((recPt - simPt) / simPt);
139 h1_Pres->Fill((1 / recPt - 1 / simPt) / (1 / simPt));
T getUntrackedParameter(std::string const &, T const &) const
TrajectoryStateClosestToPoint impactPointTSCP() const
const FreeTrajectoryState & theState() const
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
#define DEFINE_FWK_MODULE(type)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void setCurrentFolder(std::string const &fullpath)
MonitorElement * book1D(Args &&...args)
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
MonitorElement * book2D(Args &&...args)
~PhysicsObjectsMonitor() override
Destructor.
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
GlobalVector momentum() const