diff --git a/L1Trigger/TrackerDTC/python/Analyzer_cfi.py b/L1Trigger/TrackerDTC/python/Analyzer_cfi.py index d365c85d60e8e..4b6a091d0884f 100644 --- a/L1Trigger/TrackerDTC/python/Analyzer_cfi.py +++ b/L1Trigger/TrackerDTC/python/Analyzer_cfi.py @@ -2,10 +2,11 @@ TrackerDTCAnalyzer_params = cms.PSet ( - InputTagAccepted = cms.InputTag( "TrackerDTCProducer", "StubAccepted" ), # dtc passed stubs selection - InputTagLost = cms.InputTag( "TrackerDTCProducer", "StubLost" ), # dtc lost stubs selection - InputTagTTStubDetSetVec = cms.InputTag( "TTStubsFromPhase2TrackerDigis", "StubAccepted" ), # original TTStub selection - InputTagTTClusterAssMap = cms.InputTag( "TTClusterAssociatorFromPixelDigis", "ClusterAccepted" ), # tag of AssociationMap between TTCluster and TrackingParticles - UseMCTruth = cms.bool( True ) # eneables analyze of TPs + InputTagAccepted = cms.InputTag( "TrackerDTCProducer", "StubAccepted" ), # dtc passed stubs selection + InputTagLost = cms.InputTag( "TrackerDTCProducer", "StubLost" ), # dtc lost stubs selection + InputTagTTStubDetSetVec = cms.InputTag( "TTStubsFromPhase2TrackerDigis", "StubAccepted" ), # original TTStub selection + InputTagTTClusterDetSetVec = cms.InputTag( "TTClustersFromPhase2TrackerDigis", "ClusterInclusive" ), # original TTCluster selection + InputTagTTClusterAssMap = cms.InputTag( "TTClusterAssociatorFromPixelDigis", "ClusterAccepted" ), # tag of AssociationMap between TTCluster and TrackingParticles + UseMCTruth = cms.bool( True ) # eneables analyze of TPs # eneables analyze of TPs ) diff --git a/L1Trigger/TrackerDTC/test/Analyzer.cc b/L1Trigger/TrackerDTC/test/Analyzer.cc index 7c0f5a38b5f67..494ea1948058b 100644 --- a/L1Trigger/TrackerDTC/test/Analyzer.cc +++ b/L1Trigger/TrackerDTC/test/Analyzer.cc @@ -110,6 +110,8 @@ namespace trackerDTC { EDGetTokenT getTokenTTDTCLost_; // ED input token of TT stubs EDGetTokenT getTokenTTStubDetSetVec_; + // ED input token of TTClsuter + EDGetTokenT getTokenTTClusterDetSetVec_; // ED input token of TTCluster to TPPtr association EDGetTokenT getTokenTTClusterAssMap_; // Setup token @@ -158,8 +160,10 @@ namespace trackerDTC { getTokenTTDTCLost_ = consumes(inputTagLost); if (useMCTruth_) { const auto& inputTagTTStubDetSetVec = iConfig.getParameter("InputTagTTStubDetSetVec"); + const auto& inputTagTTClusterDetSetVec = iConfig.getParameter("InputTagTTClusterDetSetVec"); const auto& inputTagTTClusterAssMap = iConfig.getParameter("InputTagTTClusterAssMap"); getTokenTTStubDetSetVec_ = consumes(inputTagTTStubDetSetVec); + getTokenTTClusterDetSetVec_ = consumes(inputTagTTClusterDetSetVec); getTokenTTClusterAssMap_ = consumes(inputTagTTClusterAssMap); } // book ES product @@ -193,6 +197,12 @@ namespace trackerDTC { assoc(handleTTStubDetSetVec, handleTTClusterAssMap, mapAllTPsAllStubs); // organize reconstrucable TrackingParticles used for efficiency measurements convert(mapAllTPsAllStubs, mapAllStubsTPs); + Handle handleTTClusterDetSetVec; + iEvent.getByToken(getTokenTTClusterDetSetVec_, handleTTClusterDetSetVec); + int nCluster(0); + for (const auto& detSet : *handleTTClusterDetSetVec) + nCluster += detSet.size(); + profMC_->Fill(6, nCluster / (double)setup_->numRegions()); } // read in dtc products Handle handleTTDTCAccepted; @@ -403,12 +413,16 @@ namespace trackerDTC { const double errStubsMatched = profMC_->GetBinError(2); const double errTPsReco = profMC_->GetBinError(3); const double errTPsEff = profMC_->GetBinError(4); - const vector nums = {numStubs, numStubsMatched, numTPsReco, numTPsEff}; - const vector errs = {errStubs, errStubsMatched, errTPsReco, errTPsEff}; + const double numCluster = profMC_->GetBinContent(6); + const double errCluster = profMC_->GetBinError(6); + const vector nums = {numStubs, numStubsMatched, numTPsReco, numTPsEff, numCluster}; + const vector errs = {errStubs, errStubsMatched, errTPsReco, errTPsEff, errCluster}; const int wNums = ceil(log10(*max_element(nums.begin(), nums.end()))) + 5; const int wErrs = ceil(log10(*max_element(errs.begin(), errs.end()))) + 5; log_ << "=============================================================" << endl; log_ << " MC SUMMARY " << endl; + log_ << "number of cluster per TFP = " << setw(wNums) << numCluster << " +- " << setw(wErrs) << errCluster + << endl; log_ << "number of stubs per TFP = " << setw(wNums) << numStubs << " +- " << setw(wErrs) << errStubs << endl; log_ << "number of matched stubs per TFP = " << setw(wNums) << numStubsMatched << " +- " << setw(wErrs) @@ -465,12 +479,13 @@ namespace trackerDTC { TFileDirectory dir; // mc dir = fs->mkdir("MC"); - profMC_ = dir.make("Counts", ";", 5, 0.5, 5.5); + profMC_ = dir.make("Counts", ";", 6, 0.5, 6.5); profMC_->GetXaxis()->SetBinLabel(1, "Stubs"); profMC_->GetXaxis()->SetBinLabel(2, "Matched Stubs"); profMC_->GetXaxis()->SetBinLabel(3, "reco TPs"); profMC_->GetXaxis()->SetBinLabel(4, "eff TPs"); profMC_->GetXaxis()->SetBinLabel(5, "total eff TPs"); + profMC_->GetXaxis()->SetBinLabel(6, "Cluster"); constexpr array binsEff{{9 * 8, 10, 16, 10, 30, 24}}; constexpr array, NumEfficiency> rangesEff{ {{-M_PI, M_PI}, {0., 100.}, {-1. / 3., 1. / 3.}, {-5., 5.}, {-15., 15.}, {-2.4, 2.4}}}; diff --git a/L1Trigger/TrackerTFP/test/AnalyzerDemonstrator.cc b/L1Trigger/TrackerTFP/test/AnalyzerDemonstrator.cc index e8d1547ff2c78..a2c0f77338eed 100644 --- a/L1Trigger/TrackerTFP/test/AnalyzerDemonstrator.cc +++ b/L1Trigger/TrackerTFP/test/AnalyzerDemonstrator.cc @@ -127,7 +127,7 @@ namespace trackerTFP { const int offsetStubs = (region * numChannelTracks + channelTracks) * numChannelStubs; if (tracks) convert(handleTracks->at(offsetTracks + channelTracks), bits); - if (stubs){ + if (stubs) { for (int channelStubs = 0; channelStubs < numChannelStubs; channelStubs++) convert(handleStubs->at(offsetStubs + channelStubs), bits); }