Skip to content

Commit

Permalink
Track Quality Integration (cms-sw#49)
Browse files Browse the repository at this point in the history
* Track Quality Integration

* Track Ntuple Maker Max Events

* PR Code Review Fixes #1

* Comments and style changes
  • Loading branch information
Chriisbrown authored and skinnari committed Dec 22, 2020
1 parent 958757e commit f3c7d1d
Show file tree
Hide file tree
Showing 11 changed files with 1,095 additions and 6 deletions.
22 changes: 21 additions & 1 deletion DataFormats/L1TrackTrigger/interface/TTTrack.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,11 @@ class TTTrack : public TTTrack_TrackWord {

/// MVA Track quality variables
double trkMVA1() const;
void settrkMVA1(double atrkMVA1);
double trkMVA2() const;
void settrkMVA2(double atrkMVA2);
double trkMVA3() const;
void settrkMVA3(double atrkMVA3);

/// Phi Sector
unsigned int phiSector() const { return thePhiSector_; }
Expand Down Expand Up @@ -353,22 +356,39 @@ double TTTrack<T>::chi2ZRed() const {
return theChi2_Z_ / (theStubRefs.size() - 2.);
}

/// MVA quality variables
template <typename T>
double TTTrack<T>::trkMVA1() const {
return theTrkMVA1_;
}

template <typename T>
void TTTrack<T>::settrkMVA1(double atrkMVA1) {
theTrkMVA1_ = atrkMVA1;
return;
}

template <typename T>
double TTTrack<T>::trkMVA2() const {
return theTrkMVA2_;
}

template <typename T>
void TTTrack<T>::settrkMVA2(double atrkMVA2) {
theTrkMVA2_ = atrkMVA2;
return;
}

template <typename T>
double TTTrack<T>::trkMVA3() const {
return theTrkMVA3_;
}

template <typename T>
void TTTrack<T>::settrkMVA3(double atrkMVA3) {
theTrkMVA3_ = atrkMVA3;
return;
}

/// StubPtConsistency
template <typename T>
void TTTrack<T>::setStubPtConsistency(double aStubPtConsistency) {
Expand Down
15 changes: 15 additions & 0 deletions L1Trigger/TrackFindingTracklet/plugins/L1FPGATrackProducer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
#include "DataFormats/GeometrySurface/interface/BoundPlane.h"

#include "L1Trigger/TrackTrigger/interface/StubPtConsistency.h"
#include "L1Trigger/TrackTrigger/interface/TrackQuality.h"

//////////////
// STD HEADERS
Expand Down Expand Up @@ -170,6 +171,10 @@ class L1FPGATrackProducer : public edm::one::EDProducer<edm::one::WatchRuns> {
unsigned int nHelixPar_;
bool extended_;

bool trackQuality_;
edm::ParameterSet trackQualityParams;
std::unique_ptr<TrackQuality> trackQualityModel;

std::map<string, vector<int>> dtclayerdisk;

edm::ESHandle<TrackerTopology> tTopoHandle;
Expand Down Expand Up @@ -286,6 +291,12 @@ L1FPGATrackProducer::L1FPGATrackProducer(edm::ParameterSet const& iConfig)
<< "\n table_TRE : " << tableTREFile.fullPath();
}
}

trackQuality_ = iConfig.getParameter<bool>("TrackQuality");
if (trackQuality_) {
trackQualityParams = iConfig.getParameter<edm::ParameterSet>("TrackQualityPSet");
trackQualityModel.reset(new TrackQuality(trackQualityParams));
}
}

/////////////
Expand Down Expand Up @@ -689,6 +700,10 @@ void L1FPGATrackProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe
// set TTTrack word
aTrack.setTrackWordBits();

if (trackQuality_) {
trackQualityModel->setTrackQuality(aTrack);
}

// test track word
//aTrack.testTrackWordBits();

Expand Down
11 changes: 9 additions & 2 deletions L1Trigger/TrackFindingTracklet/python/Tracklet_cfi.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import FWCore.ParameterSet.Config as cms
from L1Trigger.TrackTrigger.TrackQualityParams_cfi import *

TTTracksFromTrackletEmulation = cms.EDProducer("L1FPGATrackProducer",
TTStubSource = cms.InputTag("TTStubsFromPhase2TrackerDigis","StubAccepted"),
Expand All @@ -18,7 +19,10 @@
wiresFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/wires_hourglass.dat'),
DTCLinkFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/calcNumDTCLinks.txt'),
DTCLinkLayerDiskFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/dtclinklayerdisk.dat'),
moduleCablingFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/modules_T5v3_27SP_nonant_tracklet.dat')
moduleCablingFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/modules_T5v3_27SP_nonant_tracklet.dat'),
# Quality Flag and Quality params
TrackQuality =cms.bool(False),
TrackQualityPSet = cms.PSet(TrackQualityParams)
)

TTTracksFromExtendedTrackletEmulation = TTTracksFromTrackletEmulation.clone(
Expand All @@ -29,6 +33,9 @@
wiresFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/wires_hourglassExtended.dat'),
# specifying where the TrackletEngineDisplaced(TED)/TripletEngine(TRE) tables are located
tableTEDFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/table_TED/table_TED_D1PHIA1_D2PHIA1.txt'),
tableTREFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/table_TRE/table_TRE_D1AD2A_1.txt')
tableTREFile = cms.FileInPath('L1Trigger/TrackFindingTracklet/data/table_TRE/table_TRE_D1AD2A_1.txt'),
# Quality Flag and Quality params
TrackQuality =cms.bool(False),
TrackQualityPSet = cms.PSet(TrackQualityParams)
)

17 changes: 17 additions & 0 deletions L1Trigger/TrackFindingTracklet/test/L1TrackNtupleMaker.cc
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ class L1TrackNtupleMaker : public edm::EDAnalyzer {
std::vector<int>* m_trk_unknown;
std::vector<int>* m_trk_combinatoric;
std::vector<int>* m_trk_fake; //0 fake, 1 track from primary interaction, 2 secondary track
std::vector<float>* m_trk_MVA1;
std::vector<int>* m_trk_matchtp_pdgid;
std::vector<float>* m_trk_matchtp_pt;
std::vector<float>* m_trk_matchtp_eta;
Expand Down Expand Up @@ -203,6 +204,7 @@ class L1TrackNtupleMaker : public edm::EDAnalyzer {
std::vector<float>* m_matchtrk_chi2rphi;
std::vector<float>* m_matchtrk_chi2rz;
std::vector<float>* m_matchtrk_bendchi2;
std::vector<float>* m_matchtrk_MVA1;
std::vector<int>* m_matchtrk_nstub;
std::vector<int>* m_matchtrk_lhits;
std::vector<int>* m_matchtrk_dhits;
Expand Down Expand Up @@ -331,6 +333,7 @@ void L1TrackNtupleMaker::beginJob() {
m_trk_unknown = new std::vector<int>;
m_trk_combinatoric = new std::vector<int>;
m_trk_fake = new std::vector<int>;
m_trk_MVA1 = new std::vector<float>;
m_trk_matchtp_pdgid = new std::vector<int>;
m_trk_matchtp_pt = new std::vector<float>;
m_trk_matchtp_eta = new std::vector<float>;
Expand Down Expand Up @@ -367,6 +370,7 @@ void L1TrackNtupleMaker::beginJob() {
m_matchtrk_chi2rphi = new std::vector<float>;
m_matchtrk_chi2rz = new std::vector<float>;
m_matchtrk_bendchi2 = new std::vector<float>;
m_matchtrk_MVA1 = new std::vector<float>;
m_matchtrk_nstub = new std::vector<int>;
m_matchtrk_dhits = new std::vector<int>;
m_matchtrk_lhits = new std::vector<int>;
Expand Down Expand Up @@ -426,6 +430,7 @@ void L1TrackNtupleMaker::beginJob() {
eventTree->Branch("trk_unknown", &m_trk_unknown);
eventTree->Branch("trk_combinatoric", &m_trk_combinatoric);
eventTree->Branch("trk_fake", &m_trk_fake);
eventTree->Branch("trk_MVA1", &m_trk_MVA1);
eventTree->Branch("trk_matchtp_pdgid", &m_trk_matchtp_pdgid);
eventTree->Branch("trk_matchtp_pt", &m_trk_matchtp_pt);
eventTree->Branch("trk_matchtp_eta", &m_trk_matchtp_eta);
Expand Down Expand Up @@ -467,6 +472,7 @@ void L1TrackNtupleMaker::beginJob() {
eventTree->Branch("matchtrk_chi2rphi", &m_matchtrk_chi2rphi);
eventTree->Branch("matchtrk_chi2rz", &m_matchtrk_chi2rz);
eventTree->Branch("matchtrk_bendchi2", &m_matchtrk_bendchi2);
eventTree->Branch("matchtrk_MVA1", &m_matchtrk_MVA1);
eventTree->Branch("matchtrk_nstub", &m_matchtrk_nstub);
eventTree->Branch("matchtrk_lhits", &m_matchtrk_lhits);
eventTree->Branch("matchtrk_dhits", &m_matchtrk_dhits);
Expand Down Expand Up @@ -550,6 +556,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
m_trk_unknown->clear();
m_trk_combinatoric->clear();
m_trk_fake->clear();
m_trk_MVA1->clear();
m_trk_matchtp_pdgid->clear();
m_trk_matchtp_pt->clear();
m_trk_matchtp_eta->clear();
Expand Down Expand Up @@ -587,6 +594,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
m_matchtrk_chi2rphi->clear();
m_matchtrk_chi2rz->clear();
m_matchtrk_bendchi2->clear();
m_matchtrk_MVA1->clear();
m_matchtrk_nstub->clear();
m_matchtrk_lhits->clear();
m_matchtrk_dhits->clear();
Expand Down Expand Up @@ -856,10 +864,15 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
tmp_trk_d0 = -tmp_trk_x0 * sin(tmp_trk_phi) + tmp_trk_y0 * cos(tmp_trk_phi);
}





float tmp_trk_chi2 = iterL1Track->chi2();
float tmp_trk_chi2rphi = iterL1Track->chi2XY();
float tmp_trk_chi2rz = iterL1Track->chi2Z();
float tmp_trk_bendchi2 = iterL1Track->stubPtConsistency();
float tmp_trk_MVA1 = iterL1Track->trkMVA1();

std::vector<edm::Ref<edmNew::DetSetVector<TTStub<Ref_Phase2TrackerDigi_> >, TTStub<Ref_Phase2TrackerDigi_> > >
stubRefs = iterL1Track->getStubRefs();
Expand Down Expand Up @@ -952,6 +965,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
m_trk_chi2rphi->push_back(tmp_trk_chi2rphi);
m_trk_chi2rz->push_back(tmp_trk_chi2rz);
m_trk_bendchi2->push_back(tmp_trk_bendchi2);
m_trk_MVA1->push_back(tmp_trk_MVA1);
m_trk_nstub->push_back(tmp_trk_nstub);
m_trk_dhits->push_back(tmp_trk_dhits);
m_trk_lhits->push_back(tmp_trk_lhits);
Expand Down Expand Up @@ -1320,6 +1334,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
float tmp_matchtrk_chi2rphi = -999;
float tmp_matchtrk_chi2rz = -999;
float tmp_matchtrk_bendchi2 = -999;
float tmp_matchtrk_MVA1 = -999;
int tmp_matchtrk_nstub = -999;
int tmp_matchtrk_dhits = -999;
int tmp_matchtrk_lhits = -999;
Expand All @@ -1345,6 +1360,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
tmp_matchtrk_chi2rphi = matchedTracks.at(i_track)->chi2XY();
tmp_matchtrk_chi2rz = matchedTracks.at(i_track)->chi2Z();
tmp_matchtrk_bendchi2 = matchedTracks.at(i_track)->stubPtConsistency();
tmp_matchtrk_MVA1 = matchedTracks.at(i_track)->trkMVA1();
tmp_matchtrk_nstub = (int)matchedTracks.at(i_track)->getStubRefs().size();
tmp_matchtrk_seed = (int)matchedTracks.at(i_track)->trackSeedType();
tmp_matchtrk_hitpattern = (int)matchedTracks.at(i_track)->hitPattern();
Expand Down Expand Up @@ -1404,6 +1420,7 @@ void L1TrackNtupleMaker::analyze(const edm::Event& iEvent, const edm::EventSetup
m_matchtrk_chi2rphi->push_back(tmp_matchtrk_chi2rphi);
m_matchtrk_chi2rz->push_back(tmp_matchtrk_chi2rz);
m_matchtrk_bendchi2->push_back(tmp_matchtrk_bendchi2);
m_matchtrk_MVA1->push_back(tmp_matchtrk_MVA1);
m_matchtrk_nstub->push_back(tmp_matchtrk_nstub);
m_matchtrk_dhits->push_back(tmp_matchtrk_dhits);
m_matchtrk_lhits->push_back(tmp_matchtrk_lhits);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def getTxtFile(txtFileName):
TrackingVertexInputTag = cms.InputTag("mix", "MergedTrackTruth"),
# tracking in jets (--> requires AK4 genjet collection present!)
TrackingInJets = cms.bool(False),
GenJetInputTag = cms.InputTag("ak4GenJets", ""),
GenJetInputTag = cms.InputTag("ak4GenJets", "")
)

process.ana = cms.Path(process.L1TrackNtuple)
Expand Down
7 changes: 5 additions & 2 deletions L1Trigger/TrackFindingTracklet/test/L1TrackNtuplePlot.C
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
#include "TProfile2D.h"
#include "TMath.h"
#include <TError.h>
#include "TSystem.h"

#include <iostream>
#include <string>
Expand Down Expand Up @@ -2021,7 +2022,8 @@ void L1TrackNtuplePlot(TString type,

TH1F* h3_resVsEta_ptRel_L = new TH1F("resVsEta_ptRel_L_gaus", ";|#eta|; #sigma(p_{T}) / p_{T}", nETARANGE, 0, 2.4);
TH1F* h3_resVsEta_ptRel_H = new TH1F("resVsEta_ptRel_H_gaus", ";|#eta|; #sigma(p_{T}) / p_{T}", nETARANGE, 0, 2.4);


gSystem->mkdir("FitResults");
TString fitdir = "FitResults/";

for (int i = 0; i < nETARANGE; i++) {
Expand Down Expand Up @@ -2408,7 +2410,8 @@ void L1TrackNtuplePlot(TString type,

char ctxt[500];
TCanvas c;


gSystem->mkdir("TrkPlots");
TString DIR = "TrkPlots/";

// plots overlaying 68, 90, 99% confidence levels]
Expand Down
Loading

0 comments on commit f3c7d1d

Please sign in to comment.