File indexing completed on 2023-10-25 10:06:58
0001 #ifndef BDHadronTrackMonitoringAnalyzer_H
0002 #define BDHadronTrackMonitoringAnalyzer_H
0003
0004 #include "FWCore/Framework/interface/Event.h"
0005 #include "FWCore/Framework/interface/Frameworkfwd.h"
0006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0007 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0008 #include "FWCore/Utilities/interface/EDGetToken.h"
0009 #include "FWCore/Utilities/interface/InputTag.h"
0010
0011 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0012 #include "DQMServices/Core/interface/DQMStore.h"
0013
0014 #include "DataFormats/BTauReco/interface/TrackIPTagInfo.h"
0015 #include "DataFormats/PatCandidates/interface/Jet.h"
0016 #include "DataFormats/PatCandidates/interface/PackedCandidate.h"
0017 #include "DataFormats/TrackReco/interface/Track.h"
0018 #include "DataFormats/VertexReco/interface/Vertex.h"
0019 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
0020
0021 #include "SimTracker/TrackHistory/interface/TrackCategories.h"
0022 #include "SimTracker/TrackHistory/interface/TrackClassifier.h"
0023 #include "SimTracker/TrackerHitAssociation/interface/ClusterTPAssociation.h"
0024
0025 #include "FWCore/Framework/interface/MakerMacros.h"
0026 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0027 #include "FWCore/ServiceRegistry/interface/Service.h"
0028
0029 #include "DQMOffline/RecoB/interface/Tools.h"
0030 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
0031 #include "RecoVertex/VertexPrimitives/interface/ConvertToFromReco.h"
0032 #include "TrackingTools/IPTools/interface/IPTools.h"
0033 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0034 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0035 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0036
0037 #include <fstream>
0038 #include <iostream>
0039
0040
0041
0042
0043
0044
0045
0046
0047 class BDHadronTrackMonitoringAnalyzer : public DQMEDAnalyzer {
0048 public:
0049 explicit BDHadronTrackMonitoringAnalyzer(const edm::ParameterSet &pSet);
0050
0051 ~BDHadronTrackMonitoringAnalyzer() override;
0052
0053 void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override;
0054 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0055
0056 enum HistoryClasses { BCWeakDecay = 0, BWeakDecay = 1, CWeakDecay = 2, PU = 3, Other = 4, Fake = 5 };
0057 static const std::vector<std::string> TrkHistCat;
0058
0059 private:
0060
0061 double distJetAxis_;
0062 double decayLength_;
0063 double minJetPt_;
0064 double maxJetEta_;
0065
0066
0067 std::string ipTagInfos_;
0068
0069
0070 edm::InputTag PatJetSrc_;
0071 edm::InputTag TrackSrc_;
0072 edm::InputTag PVSrc_;
0073 edm::InputTag ClusterTPMapSrc_;
0074
0075
0076 edm::EDGetTokenT<pat::JetCollection> PatJetCollectionTag_;
0077 edm::EDGetTokenT<reco::TrackCollection> TrackCollectionTag_;
0078 edm::EDGetTokenT<reco::VertexCollection> PrimaryVertexColl_;
0079 edm::EDGetTokenT<ClusterTPAssociation> clusterTPMapToken_;
0080 edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> ttrackToken_;
0081
0082 TrackClassifier classifier_;
0083
0084
0085
0086 MonitorElement *nTrkAll_bjet;
0087 MonitorElement *nTrk_bjet[6];
0088
0089
0090 MonitorElement *nTrkAll_cjet;
0091 MonitorElement *nTrk_cjet[6];
0092
0093
0094 MonitorElement *nTrkAll_dusgjet;
0095 MonitorElement *nTrk_dusgjet[6];
0096
0097
0098
0099 MonitorElement *TrkPt_alljets[6],
0100 *TrkTruthPt_alljets[5];
0101 MonitorElement *TrkEta_alljets[6],
0102 *TrkTruthEta_alljets[5];
0103 MonitorElement *TrkPhi_alljets[6],
0104 *TrkTruthPhi_alljets[5];
0105 MonitorElement *TrkDxy_alljets[6],
0106 *TrkTruthDxy_alljets[5];
0107
0108 MonitorElement *TrkDz_alljets[6],
0109 *TrkTruthDz_alljets[5];
0110
0111 MonitorElement *TrkHitAll_alljets[6],
0112 *TrkTruthHitAll_alljets[5];
0113
0114 MonitorElement *TrkHitStrip_alljets[6],
0115 *TrkTruthHitStrip_alljets[5];
0116
0117 MonitorElement *TrkHitPixel_alljets[6],
0118 *TrkTruthHitPixel_alljets[5];
0119
0120 };
0121
0122 #endif