File indexing completed on 2024-04-06 12:08:58
0001
0002
0003
0004
0005
0006
0007
0008 #include <memory>
0009 #include <numeric>
0010 #include <string>
0011 #include <vector>
0012 #include <bitset>
0013
0014
0015 #include "FWCore/Framework/interface/ESHandle.h"
0016 #include "FWCore/Framework/interface/Event.h"
0017 #include "FWCore/Framework/interface/Frameworkfwd.h"
0018 #include "FWCore/Framework/interface/MakerMacros.h"
0019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0020 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0021 #include "FWCore/Utilities/interface/EDGetToken.h"
0022 #include "FWCore/ServiceRegistry/interface/Service.h"
0023
0024 #include "CommonTools/Statistics/interface/ChiSquaredProbability.h"
0025 #include "DataFormats/Common/interface/DetSetVector.h"
0026 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0027 #include "DataFormats/Common/interface/Ptr.h"
0028 #include "DataFormats/Common/interface/Ref.h"
0029 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0030 #include "DataFormats/L1TrackTrigger/interface/TTTypes.h"
0031 #include "DataFormats/L1TrackTrigger/interface/TTCluster.h"
0032 #include "DataFormats/L1TrackTrigger/interface/TTStub.h"
0033 #include "DataFormats/L1TrackTrigger/interface/TTTrack.h"
0034 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
0035 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0036
0037 #include "DQMServices/Core/interface/DQMEDAnalyzer.h"
0038 #include "DQMServices/Core/interface/DQMStore.h"
0039
0040 class Phase2OTMonitorTTTrack : public DQMEDAnalyzer {
0041 public:
0042 explicit Phase2OTMonitorTTTrack(const edm::ParameterSet &);
0043 ~Phase2OTMonitorTTTrack() override;
0044 void analyze(const edm::Event &, const edm::EventSetup &) override;
0045 void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override;
0046 static void fillDescriptions(edm::ConfigurationDescriptions &descriptions);
0047
0048 MonitorElement *Track_All_N = nullptr;
0049 MonitorElement *Track_All_NStubs = nullptr;
0050 MonitorElement *Track_All_NLayersMissed = nullptr;
0051 MonitorElement *Track_All_Eta_NStubs = nullptr;
0052 MonitorElement *Track_All_Pt = nullptr;
0053 MonitorElement *Track_All_Eta = nullptr;
0054 MonitorElement *Track_All_Phi = nullptr;
0055 MonitorElement *Track_All_D0 = nullptr;
0056 MonitorElement *Track_All_VtxZ = nullptr;
0057 MonitorElement *Track_All_BendChi2 = nullptr;
0058 MonitorElement *Track_All_Chi2 = nullptr;
0059 MonitorElement *Track_All_Chi2Red = nullptr;
0060 MonitorElement *Track_All_Chi2RZ = nullptr;
0061 MonitorElement *Track_All_Chi2RPhi = nullptr;
0062 MonitorElement *Track_All_Chi2Red_NStubs = nullptr;
0063 MonitorElement *Track_All_Chi2Red_Eta = nullptr;
0064 MonitorElement *Track_All_Eta_BarrelStubs = nullptr;
0065 MonitorElement *Track_All_Eta_ECStubs = nullptr;
0066 MonitorElement *Track_All_Chi2_Probability = nullptr;
0067 MonitorElement *Track_All_MVA1 = nullptr;
0068
0069
0070
0071
0072 MonitorElement *Track_HQ_N = nullptr;
0073 MonitorElement *Track_HQ_NStubs = nullptr;
0074 MonitorElement *Track_HQ_NLayersMissed = nullptr;
0075 MonitorElement *Track_HQ_Eta_NStubs = nullptr;
0076 MonitorElement *Track_HQ_Pt = nullptr;
0077 MonitorElement *Track_HQ_Eta = nullptr;
0078 MonitorElement *Track_HQ_Phi = nullptr;
0079 MonitorElement *Track_HQ_D0 = nullptr;
0080 MonitorElement *Track_HQ_VtxZ = nullptr;
0081 MonitorElement *Track_HQ_BendChi2 = nullptr;
0082 MonitorElement *Track_HQ_Chi2 = nullptr;
0083 MonitorElement *Track_HQ_Chi2Red = nullptr;
0084 MonitorElement *Track_HQ_Chi2RZ = nullptr;
0085 MonitorElement *Track_HQ_Chi2RPhi = nullptr;
0086 MonitorElement *Track_HQ_Chi2Red_NStubs = nullptr;
0087 MonitorElement *Track_HQ_Chi2Red_Eta = nullptr;
0088 MonitorElement *Track_HQ_Eta_BarrelStubs = nullptr;
0089 MonitorElement *Track_HQ_Eta_ECStubs = nullptr;
0090 MonitorElement *Track_HQ_Chi2_Probability = nullptr;
0091 MonitorElement *Track_HQ_MVA1 = nullptr;
0092
0093 private:
0094 edm::ParameterSet conf_;
0095 edm::EDGetTokenT<std::vector<TTTrack<Ref_Phase2TrackerDigi_>>> ttTrackToken_;
0096
0097 unsigned int HQNStubs_;
0098 double HQChi2dof_;
0099 double HQBendChi2_;
0100 std::string topFolderName_;
0101 };
0102
0103
0104 Phase2OTMonitorTTTrack::Phase2OTMonitorTTTrack(const edm::ParameterSet &iConfig) : conf_(iConfig) {
0105 topFolderName_ = conf_.getParameter<std::string>("TopFolderName");
0106 ttTrackToken_ =
0107 consumes<std::vector<TTTrack<Ref_Phase2TrackerDigi_>>>(conf_.getParameter<edm::InputTag>("TTTracksTag"));
0108 HQNStubs_ = conf_.getParameter<int>("HQNStubs");
0109 HQChi2dof_ = conf_.getParameter<double>("HQChi2dof");
0110 HQBendChi2_ = conf_.getParameter<double>("HQBendChi2");
0111 }
0112
0113 Phase2OTMonitorTTTrack::~Phase2OTMonitorTTTrack() {
0114
0115
0116 }
0117
0118
0119 void Phase2OTMonitorTTTrack::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) {
0120
0121 edm::Handle<std::vector<TTTrack<Ref_Phase2TrackerDigi_>>> TTTrackHandle;
0122 iEvent.getByToken(ttTrackToken_, TTTrackHandle);
0123
0124
0125 unsigned int numAllTracks = 0;
0126 unsigned int numHQTracks = 0;
0127
0128
0129 if (!TTTrackHandle.isValid())
0130 return;
0131
0132
0133 unsigned int tkCnt = 0;
0134 for (const auto &iterTTTrack : *TTTrackHandle) {
0135 edm::Ptr<TTTrack<Ref_Phase2TrackerDigi_>> tempTrackPtr(TTTrackHandle, tkCnt++);
0136
0137 unsigned int nStubs = tempTrackPtr->getStubRefs().size();
0138 int nBarrelStubs = 0;
0139 int nECStubs = 0;
0140
0141 float track_eta = tempTrackPtr->momentum().eta();
0142 float track_d0 = tempTrackPtr->d0();
0143 float track_bendchi2 = tempTrackPtr->stubPtConsistency();
0144 float track_chi2 = tempTrackPtr->chi2();
0145 float track_chi2dof = tempTrackPtr->chi2Red();
0146 float track_chi2rz = tempTrackPtr->chi2Z();
0147 float track_chi2rphi = tempTrackPtr->chi2XY();
0148 float track_MVA1 = tempTrackPtr->trkMVA1();
0149 int nLayersMissed = 0;
0150 unsigned int hitPattern_ = (unsigned int)tempTrackPtr->hitPattern();
0151
0152 int nbits = floor(log2(hitPattern_)) + 1;
0153 int lay_i = 0;
0154 bool seq = false;
0155 for (int i = 0; i < nbits; i++) {
0156 lay_i = ((1 << i) & hitPattern_) >> i;
0157 if (lay_i && !seq)
0158 seq = true;
0159 if (!lay_i && seq)
0160 nLayersMissed++;
0161 }
0162
0163 std::vector<edm::Ref<edmNew::DetSetVector<TTStub<Ref_Phase2TrackerDigi_>>, TTStub<Ref_Phase2TrackerDigi_>>>
0164 theStubs = iterTTTrack.getStubRefs();
0165 for (const auto &istub : theStubs) {
0166 bool inBarrel = false;
0167 bool inEC = false;
0168
0169 if (istub->getDetId().subdetId() == StripSubdetector::TOB)
0170 inBarrel = true;
0171 else if (istub->getDetId().subdetId() == StripSubdetector::TID)
0172 inEC = true;
0173 if (inBarrel)
0174 nBarrelStubs++;
0175 else if (inEC)
0176 nECStubs++;
0177 }
0178
0179
0180 if (nStubs >= HQNStubs_ && track_chi2dof <= HQChi2dof_ && track_bendchi2 <= HQBendChi2_) {
0181 numHQTracks++;
0182
0183 Track_HQ_NStubs->Fill(nStubs);
0184 Track_HQ_NLayersMissed->Fill(nLayersMissed);
0185 Track_HQ_Eta_NStubs->Fill(track_eta, nStubs);
0186 Track_HQ_Pt->Fill(tempTrackPtr->momentum().perp());
0187 Track_HQ_Eta->Fill(track_eta);
0188 Track_HQ_Phi->Fill(tempTrackPtr->momentum().phi());
0189 Track_HQ_D0->Fill(track_d0);
0190 Track_HQ_VtxZ->Fill(tempTrackPtr->z0());
0191 Track_HQ_BendChi2->Fill(track_bendchi2);
0192 Track_HQ_Chi2->Fill(track_chi2);
0193 Track_HQ_Chi2RZ->Fill(track_chi2rz);
0194 Track_HQ_Chi2RPhi->Fill(track_chi2rphi);
0195 Track_HQ_Chi2Red->Fill(track_chi2dof);
0196 Track_HQ_Chi2Red_NStubs->Fill(nStubs, track_chi2dof);
0197 Track_HQ_Chi2Red_Eta->Fill(track_eta, track_chi2dof);
0198 Track_HQ_Eta_BarrelStubs->Fill(track_eta, nBarrelStubs);
0199 Track_HQ_Eta_ECStubs->Fill(track_eta, nECStubs);
0200 Track_HQ_Chi2_Probability->Fill(ChiSquaredProbability(track_chi2, nStubs));
0201 Track_HQ_MVA1->Fill(track_MVA1);
0202 }
0203
0204
0205 numAllTracks++;
0206 Track_All_NStubs->Fill(nStubs);
0207 Track_All_NLayersMissed->Fill(nLayersMissed);
0208 Track_All_Eta_NStubs->Fill(track_eta, nStubs);
0209 Track_All_Pt->Fill(tempTrackPtr->momentum().perp());
0210 Track_All_Eta->Fill(track_eta);
0211 Track_All_Phi->Fill(tempTrackPtr->momentum().phi());
0212 Track_All_D0->Fill(track_d0);
0213 Track_All_VtxZ->Fill(tempTrackPtr->z0());
0214 Track_All_BendChi2->Fill(track_bendchi2);
0215 Track_All_Chi2->Fill(track_chi2);
0216 Track_All_Chi2RZ->Fill(track_chi2rz);
0217 Track_All_Chi2RPhi->Fill(track_chi2rphi);
0218 Track_All_Chi2Red->Fill(track_chi2dof);
0219 Track_All_Chi2Red_NStubs->Fill(nStubs, track_chi2dof);
0220 Track_All_Chi2Red_Eta->Fill(track_eta, track_chi2dof);
0221 Track_All_Eta_BarrelStubs->Fill(track_eta, nBarrelStubs);
0222 Track_All_Eta_ECStubs->Fill(track_eta, nECStubs);
0223 Track_All_Chi2_Probability->Fill(ChiSquaredProbability(track_chi2, nStubs));
0224 Track_All_MVA1->Fill(track_MVA1);
0225 }
0226
0227 Track_HQ_N->Fill(numHQTracks);
0228 Track_All_N->Fill(numAllTracks);
0229 }
0230
0231
0232
0233
0234 void Phase2OTMonitorTTTrack::bookHistograms(DQMStore::IBooker &iBooker,
0235 edm::Run const &run,
0236 edm::EventSetup const &es) {
0237 std::string HistoName;
0238
0239
0240 iBooker.setCurrentFolder(topFolderName_ + "/Tracks/All");
0241
0242 HistoName = "Track_All_N";
0243 edm::ParameterSet psTrack_N = conf_.getParameter<edm::ParameterSet>("TH1_NTracks");
0244 Track_All_N = iBooker.book1D(HistoName,
0245 HistoName,
0246 psTrack_N.getParameter<int32_t>("Nbinsx"),
0247 psTrack_N.getParameter<double>("xmin"),
0248 psTrack_N.getParameter<double>("xmax"));
0249 Track_All_N->setAxisTitle("# L1 Tracks", 1);
0250 Track_All_N->setAxisTitle("# Events", 2);
0251
0252
0253 edm::ParameterSet psTrack_NStubs = conf_.getParameter<edm::ParameterSet>("TH1_NStubs");
0254 HistoName = "Track_All_NStubs";
0255 Track_All_NStubs = iBooker.book1D(HistoName,
0256 HistoName,
0257 psTrack_NStubs.getParameter<int32_t>("Nbinsx"),
0258 psTrack_NStubs.getParameter<double>("xmin"),
0259 psTrack_NStubs.getParameter<double>("xmax"));
0260 Track_All_NStubs->setAxisTitle("# L1 Stubs per L1 Track", 1);
0261 Track_All_NStubs->setAxisTitle("# L1 Tracks", 2);
0262
0263
0264 HistoName = "Track_All_NLayersMissed";
0265 Track_All_NLayersMissed = iBooker.book1D(HistoName,
0266 HistoName,
0267 psTrack_NStubs.getParameter<int32_t>("Nbinsx"),
0268 psTrack_NStubs.getParameter<double>("xmin"),
0269 psTrack_NStubs.getParameter<double>("xmax"));
0270 Track_All_NLayersMissed->setAxisTitle("# Layers missed", 1);
0271 Track_All_NLayersMissed->setAxisTitle("# L1 Tracks", 2);
0272
0273 edm::ParameterSet psTrack_Eta_NStubs = conf_.getParameter<edm::ParameterSet>("TH2_Track_Eta_NStubs");
0274 HistoName = "Track_All_Eta_NStubs";
0275 Track_All_Eta_NStubs = iBooker.book2D(HistoName,
0276 HistoName,
0277 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0278 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0279 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0280 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0281 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0282 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0283 Track_All_Eta_NStubs->setAxisTitle("#eta", 1);
0284 Track_All_Eta_NStubs->setAxisTitle("# L1 Stubs", 2);
0285
0286
0287 edm::ParameterSet psTrack_Pt = conf_.getParameter<edm::ParameterSet>("TH1_Track_Pt");
0288 HistoName = "Track_All_Pt";
0289 Track_All_Pt = iBooker.book1D(HistoName,
0290 HistoName,
0291 psTrack_Pt.getParameter<int32_t>("Nbinsx"),
0292 psTrack_Pt.getParameter<double>("xmin"),
0293 psTrack_Pt.getParameter<double>("xmax"));
0294 Track_All_Pt->setAxisTitle("p_{T} [GeV]", 1);
0295 Track_All_Pt->setAxisTitle("# L1 Tracks", 2);
0296
0297
0298 edm::ParameterSet psTrack_Phi = conf_.getParameter<edm::ParameterSet>("TH1_Track_Phi");
0299 HistoName = "Track_All_Phi";
0300 Track_All_Phi = iBooker.book1D(HistoName,
0301 HistoName,
0302 psTrack_Phi.getParameter<int32_t>("Nbinsx"),
0303 psTrack_Phi.getParameter<double>("xmin"),
0304 psTrack_Phi.getParameter<double>("xmax"));
0305 Track_All_Phi->setAxisTitle("#phi", 1);
0306 Track_All_Phi->setAxisTitle("# L1 Tracks", 2);
0307
0308
0309 edm::ParameterSet psTrack_D0 = conf_.getParameter<edm::ParameterSet>("TH1_Track_D0");
0310 HistoName = "Track_All_D0";
0311 Track_All_D0 = iBooker.book1D(HistoName,
0312 HistoName,
0313 psTrack_D0.getParameter<int32_t>("Nbinsx"),
0314 psTrack_D0.getParameter<double>("xmin"),
0315 psTrack_D0.getParameter<double>("xmax"));
0316 Track_All_D0->setAxisTitle("Track D0", 1);
0317 Track_All_D0->setAxisTitle("# L1 Tracks", 2);
0318
0319
0320 edm::ParameterSet psTrack_Eta = conf_.getParameter<edm::ParameterSet>("TH1_Track_Eta");
0321 HistoName = "Track_All_Eta";
0322 Track_All_Eta = iBooker.book1D(HistoName,
0323 HistoName,
0324 psTrack_Eta.getParameter<int32_t>("Nbinsx"),
0325 psTrack_Eta.getParameter<double>("xmin"),
0326 psTrack_Eta.getParameter<double>("xmax"));
0327 Track_All_Eta->setAxisTitle("#eta", 1);
0328 Track_All_Eta->setAxisTitle("# L1 Tracks", 2);
0329
0330
0331 edm::ParameterSet psTrack_VtxZ = conf_.getParameter<edm::ParameterSet>("TH1_Track_VtxZ");
0332 HistoName = "Track_All_VtxZ";
0333 Track_All_VtxZ = iBooker.book1D(HistoName,
0334 HistoName,
0335 psTrack_VtxZ.getParameter<int32_t>("Nbinsx"),
0336 psTrack_VtxZ.getParameter<double>("xmin"),
0337 psTrack_VtxZ.getParameter<double>("xmax"));
0338 Track_All_VtxZ->setAxisTitle("L1 Track vertex position z [cm]", 1);
0339 Track_All_VtxZ->setAxisTitle("# L1 Tracks", 2);
0340
0341
0342 edm::ParameterSet psTrack_Chi2 = conf_.getParameter<edm::ParameterSet>("TH1_Track_Chi2");
0343 HistoName = "Track_All_Chi2";
0344 Track_All_Chi2 = iBooker.book1D(HistoName,
0345 HistoName,
0346 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0347 psTrack_Chi2.getParameter<double>("xmin"),
0348 psTrack_Chi2.getParameter<double>("xmax"));
0349 Track_All_Chi2->setAxisTitle("L1 Track #chi^{2}", 1);
0350 Track_All_Chi2->setAxisTitle("# L1 Tracks", 2);
0351
0352
0353 HistoName = "Track_All_Chi2RZ";
0354 Track_All_Chi2RZ = iBooker.book1D(HistoName,
0355 HistoName,
0356 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0357 psTrack_Chi2.getParameter<double>("xmin"),
0358 psTrack_Chi2.getParameter<double>("xmax"));
0359 Track_All_Chi2RZ->setAxisTitle("L1 Track #chi^{2} r-z", 1);
0360 Track_All_Chi2RZ->setAxisTitle("# L1 Tracks", 2);
0361
0362
0363 HistoName = "Track_All_Chi2RPhi";
0364 Track_All_Chi2RPhi = iBooker.book1D(HistoName,
0365 HistoName,
0366 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0367 psTrack_Chi2.getParameter<double>("xmin"),
0368 psTrack_Chi2.getParameter<double>("xmax"));
0369 Track_All_Chi2RPhi->setAxisTitle("L1 Track #chi^{2}", 1);
0370 Track_All_Chi2RPhi->setAxisTitle("# L1 Tracks", 2);
0371
0372
0373 edm::ParameterSet psTrack_Chi2R = conf_.getParameter<edm::ParameterSet>("TH1_Track_Chi2R");
0374 HistoName = "Track_All_BendChi2";
0375 Track_All_BendChi2 = iBooker.book1D(HistoName,
0376 HistoName,
0377 psTrack_Chi2R.getParameter<int32_t>("Nbinsx"),
0378 psTrack_Chi2R.getParameter<double>("xmin"),
0379 psTrack_Chi2R.getParameter<double>("xmax"));
0380 Track_All_BendChi2->setAxisTitle("L1 Track Bend #chi^{2}", 1);
0381 Track_All_BendChi2->setAxisTitle("# L1 Tracks", 2);
0382
0383
0384 edm::ParameterSet psTrack_Chi2Red = conf_.getParameter<edm::ParameterSet>("TH1_Track_Chi2R");
0385 HistoName = "Track_All_Chi2Red";
0386 Track_All_Chi2Red = iBooker.book1D(HistoName,
0387 HistoName,
0388 psTrack_Chi2R.getParameter<int32_t>("Nbinsx"),
0389 psTrack_Chi2R.getParameter<double>("xmin"),
0390 psTrack_Chi2R.getParameter<double>("xmax"));
0391 Track_All_Chi2Red->setAxisTitle("L1 Track #chi^{2}/ndf", 1);
0392 Track_All_Chi2Red->setAxisTitle("# L1 Tracks", 2);
0393
0394
0395 edm::ParameterSet psTrack_Chi2_Probability = conf_.getParameter<edm::ParameterSet>("TH1_Track_Chi2_Probability");
0396 HistoName = "Track_All_Chi2_Probability";
0397 Track_All_Chi2_Probability = iBooker.book1D(HistoName,
0398 HistoName,
0399 psTrack_Chi2_Probability.getParameter<int32_t>("Nbinsx"),
0400 psTrack_Chi2_Probability.getParameter<double>("xmin"),
0401 psTrack_Chi2_Probability.getParameter<double>("xmax"));
0402 Track_All_Chi2_Probability->setAxisTitle("#chi^{2} probability", 1);
0403 Track_All_Chi2_Probability->setAxisTitle("# L1 Tracks", 2);
0404
0405
0406 edm::ParameterSet psTrack_MVA1 = conf_.getParameter<edm::ParameterSet>("TH1_Track_MVA1");
0407 HistoName = "Track_All_MVA1";
0408 Track_All_MVA1 = iBooker.book1D(HistoName,
0409 HistoName,
0410 psTrack_MVA1.getParameter<int32_t>("Nbinsx"),
0411 psTrack_MVA1.getParameter<double>("xmin"),
0412 psTrack_MVA1.getParameter<double>("xmax"));
0413 Track_All_MVA1->setAxisTitle("MVA1", 1);
0414 Track_All_MVA1->setAxisTitle("# L1 Tracks", 2);
0415
0416
0417 edm::ParameterSet psTrack_Chi2R_NStubs = conf_.getParameter<edm::ParameterSet>("TH2_Track_Chi2R_NStubs");
0418 HistoName = "Track_All_Chi2Red_NStubs";
0419 Track_All_Chi2Red_NStubs = iBooker.book2D(HistoName,
0420 HistoName,
0421 psTrack_Chi2R_NStubs.getParameter<int32_t>("Nbinsx"),
0422 psTrack_Chi2R_NStubs.getParameter<double>("xmin"),
0423 psTrack_Chi2R_NStubs.getParameter<double>("xmax"),
0424 psTrack_Chi2R_NStubs.getParameter<int32_t>("Nbinsy"),
0425 psTrack_Chi2R_NStubs.getParameter<double>("ymin"),
0426 psTrack_Chi2R_NStubs.getParameter<double>("ymax"));
0427 Track_All_Chi2Red_NStubs->setAxisTitle("# L1 Stubs", 1);
0428 Track_All_Chi2Red_NStubs->setAxisTitle("L1 Track #chi^{2}/ndf", 2);
0429
0430
0431 edm::ParameterSet psTrack_Chi2R_Eta = conf_.getParameter<edm::ParameterSet>("TH2_Track_Chi2R_Eta");
0432 HistoName = "Track_All_Chi2Red_Eta";
0433 Track_All_Chi2Red_Eta = iBooker.book2D(HistoName,
0434 HistoName,
0435 psTrack_Chi2R_Eta.getParameter<int32_t>("Nbinsx"),
0436 psTrack_Chi2R_Eta.getParameter<double>("xmin"),
0437 psTrack_Chi2R_Eta.getParameter<double>("xmax"),
0438 psTrack_Chi2R_Eta.getParameter<int32_t>("Nbinsy"),
0439 psTrack_Chi2R_Eta.getParameter<double>("ymin"),
0440 psTrack_Chi2R_Eta.getParameter<double>("ymax"));
0441 Track_All_Chi2Red_Eta->setAxisTitle("#eta", 1);
0442 Track_All_Chi2Red_Eta->setAxisTitle("L1 Track #chi^{2}/ndf", 2);
0443
0444
0445 HistoName = "Track_All_Eta_BarrelStubs";
0446 Track_All_Eta_BarrelStubs = iBooker.book2D(HistoName,
0447 HistoName,
0448 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0449 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0450 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0451 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0452 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0453 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0454 Track_All_Eta_BarrelStubs->setAxisTitle("#eta", 1);
0455 Track_All_Eta_BarrelStubs->setAxisTitle("# L1 Barrel Stubs", 2);
0456
0457
0458 HistoName = "Track_LQ_Eta_ECStubs";
0459 Track_All_Eta_ECStubs = iBooker.book2D(HistoName,
0460 HistoName,
0461 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0462 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0463 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0464 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0465 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0466 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0467 Track_All_Eta_ECStubs->setAxisTitle("#eta", 1);
0468 Track_All_Eta_ECStubs->setAxisTitle("# L1 EC Stubs", 2);
0469
0470
0471 iBooker.setCurrentFolder(topFolderName_ + "/Tracks/HQ");
0472
0473 HistoName = "Track_HQ_N";
0474 Track_HQ_N = iBooker.book1D(HistoName,
0475 HistoName,
0476 psTrack_N.getParameter<int32_t>("Nbinsx"),
0477 psTrack_N.getParameter<double>("xmin"),
0478 psTrack_N.getParameter<double>("xmax"));
0479 Track_HQ_N->setAxisTitle("# L1 Tracks", 1);
0480 Track_HQ_N->setAxisTitle("# Events", 2);
0481
0482
0483 HistoName = "Track_HQ_NStubs";
0484 Track_HQ_NStubs = iBooker.book1D(HistoName,
0485 HistoName,
0486 psTrack_NStubs.getParameter<int32_t>("Nbinsx"),
0487 psTrack_NStubs.getParameter<double>("xmin"),
0488 psTrack_NStubs.getParameter<double>("xmax"));
0489 Track_HQ_NStubs->setAxisTitle("# L1 Stubs per L1 Track", 1);
0490 Track_HQ_NStubs->setAxisTitle("# L1 Tracks", 2);
0491
0492
0493 HistoName = "Track_HQ_NLayersMissed";
0494 Track_HQ_NLayersMissed = iBooker.book1D(HistoName,
0495 HistoName,
0496 psTrack_NStubs.getParameter<int32_t>("Nbinsx"),
0497 psTrack_NStubs.getParameter<double>("xmin"),
0498 psTrack_NStubs.getParameter<double>("xmax"));
0499 Track_HQ_NLayersMissed->setAxisTitle("# Layers missed", 1);
0500 Track_HQ_NLayersMissed->setAxisTitle("# L1 Tracks", 2);
0501
0502
0503 HistoName = "Track_HQ_Eta_NStubs";
0504 Track_HQ_Eta_NStubs = iBooker.book2D(HistoName,
0505 HistoName,
0506 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0507 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0508 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0509 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0510 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0511 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0512 Track_HQ_Eta_NStubs->setAxisTitle("#eta", 1);
0513 Track_HQ_Eta_NStubs->setAxisTitle("# L1 Stubs", 2);
0514
0515
0516 HistoName = "Track_HQ_Pt";
0517 Track_HQ_Pt = iBooker.book1D(HistoName,
0518 HistoName,
0519 psTrack_Pt.getParameter<int32_t>("Nbinsx"),
0520 psTrack_Pt.getParameter<double>("xmin"),
0521 psTrack_Pt.getParameter<double>("xmax"));
0522 Track_HQ_Pt->setAxisTitle("p_{T} [GeV]", 1);
0523 Track_HQ_Pt->setAxisTitle("# L1 Tracks", 2);
0524
0525
0526 HistoName = "Track_HQ_Phi";
0527 Track_HQ_Phi = iBooker.book1D(HistoName,
0528 HistoName,
0529 psTrack_Phi.getParameter<int32_t>("Nbinsx"),
0530 psTrack_Phi.getParameter<double>("xmin"),
0531 psTrack_Phi.getParameter<double>("xmax"));
0532 Track_HQ_Phi->setAxisTitle("#phi", 1);
0533 Track_HQ_Phi->setAxisTitle("# L1 Tracks", 2);
0534
0535
0536 HistoName = "Track_HQ_D0";
0537 Track_HQ_D0 = iBooker.book1D(HistoName,
0538 HistoName,
0539 psTrack_D0.getParameter<int32_t>("Nbinsx"),
0540 psTrack_D0.getParameter<double>("xmin"),
0541 psTrack_D0.getParameter<double>("xmax"));
0542 Track_HQ_D0->setAxisTitle("Track D0", 1);
0543 Track_HQ_D0->setAxisTitle("# L1 Tracks", 2);
0544
0545
0546 HistoName = "Track_HQ_Eta";
0547 Track_HQ_Eta = iBooker.book1D(HistoName,
0548 HistoName,
0549 psTrack_Eta.getParameter<int32_t>("Nbinsx"),
0550 psTrack_Eta.getParameter<double>("xmin"),
0551 psTrack_Eta.getParameter<double>("xmax"));
0552 Track_HQ_Eta->setAxisTitle("#eta", 1);
0553 Track_HQ_Eta->setAxisTitle("# L1 Tracks", 2);
0554
0555
0556 HistoName = "Track_HQ_VtxZ";
0557 Track_HQ_VtxZ = iBooker.book1D(HistoName,
0558 HistoName,
0559 psTrack_VtxZ.getParameter<int32_t>("Nbinsx"),
0560 psTrack_VtxZ.getParameter<double>("xmin"),
0561 psTrack_VtxZ.getParameter<double>("xmax"));
0562 Track_HQ_VtxZ->setAxisTitle("L1 Track vertex position z [cm]", 1);
0563 Track_HQ_VtxZ->setAxisTitle("# L1 Tracks", 2);
0564
0565
0566 HistoName = "Track_HQ_Chi2";
0567 Track_HQ_Chi2 = iBooker.book1D(HistoName,
0568 HistoName,
0569 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0570 psTrack_Chi2.getParameter<double>("xmin"),
0571 psTrack_Chi2.getParameter<double>("xmax"));
0572 Track_HQ_Chi2->setAxisTitle("L1 Track #chi^{2}", 1);
0573 Track_HQ_Chi2->setAxisTitle("# L1 Tracks", 2);
0574
0575
0576 HistoName = "Track_HQ_BendChi2";
0577 Track_HQ_BendChi2 = iBooker.book1D(HistoName,
0578 HistoName,
0579 psTrack_Chi2R.getParameter<int32_t>("Nbinsx"),
0580 psTrack_Chi2R.getParameter<double>("xmin"),
0581 psTrack_Chi2R.getParameter<double>("xmax"));
0582 Track_HQ_BendChi2->setAxisTitle("L1 Track Bend #chi^{2}", 1);
0583 Track_HQ_BendChi2->setAxisTitle("# L1 Tracks", 2);
0584
0585
0586 HistoName = "Track_HQ_Chi2RZ";
0587 Track_HQ_Chi2RZ = iBooker.book1D(HistoName,
0588 HistoName,
0589 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0590 psTrack_Chi2.getParameter<double>("xmin"),
0591 psTrack_Chi2.getParameter<double>("xmax"));
0592 Track_HQ_Chi2RZ->setAxisTitle("L1 Track #chi^{2} r-z", 1);
0593 Track_HQ_Chi2RZ->setAxisTitle("# L1 Tracks", 2);
0594
0595 HistoName = "Track_HQ_Chi2RPhi";
0596 Track_HQ_Chi2RPhi = iBooker.book1D(HistoName,
0597 HistoName,
0598 psTrack_Chi2.getParameter<int32_t>("Nbinsx"),
0599 psTrack_Chi2.getParameter<double>("xmin"),
0600 psTrack_Chi2.getParameter<double>("xmax"));
0601 Track_HQ_Chi2RPhi->setAxisTitle("L1 Track #chi^{2} r-phi", 1);
0602 Track_HQ_Chi2RPhi->setAxisTitle("# L1 Tracks", 2);
0603
0604
0605 HistoName = "Track_HQ_Chi2Red";
0606 Track_HQ_Chi2Red = iBooker.book1D(HistoName,
0607 HistoName,
0608 psTrack_Chi2R.getParameter<int32_t>("Nbinsx"),
0609 psTrack_Chi2R.getParameter<double>("xmin"),
0610 psTrack_Chi2R.getParameter<double>("xmax"));
0611 Track_HQ_Chi2Red->setAxisTitle("L1 Track #chi^{2}/ndf", 1);
0612 Track_HQ_Chi2Red->setAxisTitle("# L1 Tracks", 2);
0613
0614
0615 HistoName = "Track_HQ_Chi2_Probability";
0616 Track_HQ_Chi2_Probability = iBooker.book1D(HistoName,
0617 HistoName,
0618 psTrack_Chi2_Probability.getParameter<int32_t>("Nbinsx"),
0619 psTrack_Chi2_Probability.getParameter<double>("xmin"),
0620 psTrack_Chi2_Probability.getParameter<double>("xmax"));
0621 Track_HQ_Chi2_Probability->setAxisTitle("#chi^{2} probability", 1);
0622 Track_HQ_Chi2_Probability->setAxisTitle("# L1 Tracks", 2);
0623
0624
0625 HistoName = "Track_HQ_MVA1";
0626 Track_HQ_MVA1 = iBooker.book1D(HistoName,
0627 HistoName,
0628 psTrack_MVA1.getParameter<int32_t>("Nbinsx"),
0629 psTrack_MVA1.getParameter<double>("xmin"),
0630 psTrack_MVA1.getParameter<double>("xmax"));
0631 Track_HQ_MVA1->setAxisTitle("MVA1", 1);
0632 Track_HQ_MVA1->setAxisTitle("# L1 Tracks", 2);
0633
0634
0635 HistoName = "Track_HQ_Chi2Red_NStubs";
0636 Track_HQ_Chi2Red_NStubs = iBooker.book2D(HistoName,
0637 HistoName,
0638 psTrack_Chi2R_NStubs.getParameter<int32_t>("Nbinsx"),
0639 psTrack_Chi2R_NStubs.getParameter<double>("xmin"),
0640 psTrack_Chi2R_NStubs.getParameter<double>("xmax"),
0641 psTrack_Chi2R_NStubs.getParameter<int32_t>("Nbinsy"),
0642 psTrack_Chi2R_NStubs.getParameter<double>("ymin"),
0643 psTrack_Chi2R_NStubs.getParameter<double>("ymax"));
0644 Track_HQ_Chi2Red_NStubs->setAxisTitle("# L1 Stubs", 1);
0645 Track_HQ_Chi2Red_NStubs->setAxisTitle("L1 Track #chi^{2}/ndf", 2);
0646
0647
0648 HistoName = "Track_HQ_Chi2Red_Eta";
0649 Track_HQ_Chi2Red_Eta = iBooker.book2D(HistoName,
0650 HistoName,
0651 psTrack_Chi2R_Eta.getParameter<int32_t>("Nbinsx"),
0652 psTrack_Chi2R_Eta.getParameter<double>("xmin"),
0653 psTrack_Chi2R_Eta.getParameter<double>("xmax"),
0654 psTrack_Chi2R_Eta.getParameter<int32_t>("Nbinsy"),
0655 psTrack_Chi2R_Eta.getParameter<double>("ymin"),
0656 psTrack_Chi2R_Eta.getParameter<double>("ymax"));
0657 Track_HQ_Chi2Red_Eta->setAxisTitle("#eta", 1);
0658 Track_HQ_Chi2Red_Eta->setAxisTitle("L1 Track #chi^{2}/ndf", 2);
0659
0660
0661 HistoName = "Track_HQ_Eta_BarrelStubs";
0662 Track_HQ_Eta_BarrelStubs = iBooker.book2D(HistoName,
0663 HistoName,
0664 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0665 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0666 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0667 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0668 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0669 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0670 Track_HQ_Eta_BarrelStubs->setAxisTitle("#eta", 1);
0671 Track_HQ_Eta_BarrelStubs->setAxisTitle("# L1 Barrel Stubs", 2);
0672
0673
0674 HistoName = "Track_HQ_Eta_ECStubs";
0675 Track_HQ_Eta_ECStubs = iBooker.book2D(HistoName,
0676 HistoName,
0677 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsx"),
0678 psTrack_Eta_NStubs.getParameter<double>("xmin"),
0679 psTrack_Eta_NStubs.getParameter<double>("xmax"),
0680 psTrack_Eta_NStubs.getParameter<int32_t>("Nbinsy"),
0681 psTrack_Eta_NStubs.getParameter<double>("ymin"),
0682 psTrack_Eta_NStubs.getParameter<double>("ymax"));
0683 Track_HQ_Eta_ECStubs->setAxisTitle("#eta", 1);
0684 Track_HQ_Eta_ECStubs->setAxisTitle("# L1 EC Stubs", 2);
0685
0686 }
0687
0688 void Phase2OTMonitorTTTrack::fillDescriptions(edm::ConfigurationDescriptions &descriptions) {
0689
0690 edm::ParameterSetDescription desc;
0691 {
0692 edm::ParameterSetDescription psd0;
0693 psd0.add<int>("Nbinsx", 8);
0694 psd0.add<double>("xmax", 8);
0695 psd0.add<double>("xmin", 0);
0696 desc.add<edm::ParameterSetDescription>("TH1_NStubs", psd0);
0697 }
0698 {
0699 edm::ParameterSetDescription psd0;
0700 psd0.add<int>("Nbinsx", 100);
0701 psd0.add<double>("xmax", 399);
0702 psd0.add<double>("xmin", 0);
0703 desc.add<edm::ParameterSetDescription>("TH1_NTracks", psd0);
0704 }
0705 {
0706 edm::ParameterSetDescription psd0;
0707 psd0.add<int>("Nbinsx", 50);
0708 psd0.add<double>("xmax", 100);
0709 psd0.add<double>("xmin", 0);
0710 desc.add<edm::ParameterSetDescription>("TH1_Track_Pt", psd0);
0711 }
0712 {
0713 edm::ParameterSetDescription psd0;
0714 psd0.add<int>("Nbinsx", 60);
0715 psd0.add<double>("xmax", 3.5);
0716 psd0.add<double>("xmin", -3.5);
0717 desc.add<edm::ParameterSetDescription>("TH1_Track_Phi", psd0);
0718 }
0719 {
0720 edm::ParameterSetDescription psd0;
0721 psd0.add<int>("Nbinsx", 50);
0722 psd0.add<double>("xmax", 5.0);
0723 psd0.add<double>("xmin", -5.0);
0724 desc.add<edm::ParameterSetDescription>("TH1_Track_D0", psd0);
0725 }
0726 {
0727 edm::ParameterSetDescription psd0;
0728 psd0.add<int>("Nbinsx", 45);
0729 psd0.add<double>("xmax", 3.0);
0730 psd0.add<double>("xmin", -3.0);
0731 desc.add<edm::ParameterSetDescription>("TH1_Track_Eta", psd0);
0732 }
0733 {
0734 edm::ParameterSetDescription psd0;
0735 psd0.add<int>("Nbinsx", 41);
0736 psd0.add<double>("xmax", 20);
0737 psd0.add<double>("xmin", -20);
0738 desc.add<edm::ParameterSetDescription>("TH1_Track_VtxZ", psd0);
0739 }
0740 {
0741 edm::ParameterSetDescription psd0;
0742 psd0.add<int>("Nbinsx", 100);
0743 psd0.add<double>("xmax", 50);
0744 psd0.add<double>("xmin", 0);
0745 desc.add<edm::ParameterSetDescription>("TH1_Track_Chi2", psd0);
0746 }
0747 {
0748 edm::ParameterSetDescription psd0;
0749 psd0.add<int>("Nbinsx", 100);
0750 psd0.add<double>("xmax", 10);
0751 psd0.add<double>("xmin", 0);
0752 desc.add<edm::ParameterSetDescription>("TH1_Track_Chi2R", psd0);
0753 }
0754 {
0755 edm::ParameterSetDescription psd0;
0756 psd0.add<int>("Nbinsx", 100);
0757 psd0.add<double>("xmax", 1);
0758 psd0.add<double>("xmin", 0);
0759 desc.add<edm::ParameterSetDescription>("TH1_Track_Chi2_Probability", psd0);
0760 }
0761 {
0762 edm::ParameterSetDescription psd0;
0763 psd0.add<int>("Nbinsx", 100);
0764 psd0.add<double>("xmax", 1);
0765 psd0.add<double>("xmin", 0);
0766 desc.add<edm::ParameterSetDescription>("TH1_Track_MVA1", psd0);
0767 }
0768 {
0769 edm::ParameterSetDescription psd0;
0770 psd0.add<int>("Nbinsx", 5);
0771 psd0.add<double>("xmax", 8);
0772 psd0.add<double>("xmin", 3);
0773 psd0.add<int>("Nbinsy", 15);
0774 psd0.add<double>("ymax", 10);
0775 psd0.add<double>("ymin", 0);
0776 desc.add<edm::ParameterSetDescription>("TH2_Track_Chi2R_NStubs", psd0);
0777 }
0778 {
0779 edm::ParameterSetDescription psd0;
0780 psd0.add<int>("Nbinsx", 15);
0781 psd0.add<double>("xmax", 3.0);
0782 psd0.add<double>("xmin", -3.0);
0783 psd0.add<int>("Nbinsy", 15);
0784 psd0.add<double>("ymax", 10);
0785 psd0.add<double>("ymin", 0);
0786 desc.add<edm::ParameterSetDescription>("TH2_Track_Chi2R_Eta", psd0);
0787 }
0788 {
0789 edm::ParameterSetDescription psd0;
0790 psd0.add<int>("Nbinsx", 15);
0791 psd0.add<double>("xmax", 3.0);
0792 psd0.add<double>("xmin", -3.0);
0793 psd0.add<int>("Nbinsy", 5);
0794 psd0.add<double>("ymax", 8);
0795 psd0.add<double>("ymin", 3);
0796 desc.add<edm::ParameterSetDescription>("TH2_Track_Eta_NStubs", psd0);
0797 }
0798 desc.add<std::string>("TopFolderName", "TrackerPhase2OTL1Track");
0799 desc.add<edm::InputTag>("TTTracksTag", edm::InputTag("l1tTTTracksFromTrackletEmulation", "Level1TTTracks"));
0800 desc.add<int>("HQNStubs", 4);
0801 desc.add<double>("HQChi2dof", 10.0);
0802 desc.add<double>("HQBendChi2", 2.2);
0803 descriptions.add("Phase2OTMonitorTTTrack", desc);
0804
0805
0806 }
0807 DEFINE_FWK_MODULE(Phase2OTMonitorTTTrack);