CMS 3D CMS Logo

Public Member Functions | Private Attributes

TrackIPTagPlotter Class Reference

#include <TrackIPTagPlotter.h>

Inheritance diagram for TrackIPTagPlotter:
BaseTagInfoPlotter BaseBTagPlotter

List of all members.

Public Member Functions

void analyzeTag (const reco::BaseTagInfo *baseTagInfo, const int &jetFlavour)
virtual void createPlotsForFinalize ()
void epsPlot (const std::string &name)
virtual void finalize ()
reco::TrackBase::TrackQuality highestTrackQual (const reco::TrackRef &track) const
void psPlot (const std::string &name)
 TrackIPTagPlotter (const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, const bool &update, const bool &mc, const bool &wf)
 ~TrackIPTagPlotter ()

Private Attributes

EffPurFromHistoseffPurFromHistos [4]
double endEffPur_
bool finalized
TrackIPHistograms< double > * ghostTrackDistanceSignHisto
TrackIPHistograms< double > * ghostTrackDistanceValuHisto
TrackIPHistograms< double > * ghostTrackWeightHisto
double lowerIPBound
double lowerIPEBound
double lowerIPSBound
bool makeQualityPlots_
double maxDecayLength
double maxJetDistance
bool mcPlots_
double minDecayLength
double minJetDistance
int nBinEffPur_
int nBinsIP
int nBinsIPE
int nBinsIPS
FlavourHistograms2D< double,
int > * 
selectedTrackMultVsJetPtHisto
FlavourHistograms< int > * selectedTrackQualHisto
double startEffPur_
TrackIPHistograms< double > * tkcntHistosDecayLengthVal2D [5]
TrackIPHistograms< double > * tkcntHistosDecayLengthVal3D [5]
TrackIPHistograms< double > * tkcntHistosErr2D [5]
TrackIPHistograms< double > * tkcntHistosErr3D [5]
TrackIPHistograms< double > * tkcntHistosJetDistSign2D [5]
TrackIPHistograms< double > * tkcntHistosJetDistSign3D [5]
TrackIPHistograms< double > * tkcntHistosJetDistVal2D [5]
TrackIPHistograms< double > * tkcntHistosJetDistVal3D [5]
TrackIPHistograms< float > * tkcntHistosProb2D [5]
TrackIPHistograms< float > * tkcntHistosProb3D [5]
TrackIPHistograms< double > * tkcntHistosSig2D [5]
TrackIPHistograms< double > * tkcntHistosSig3D [5]
TrackIPHistograms< double > * tkcntHistosTkNChiSqr2D [5]
TrackIPHistograms< double > * tkcntHistosTkNChiSqr3D [5]
TrackIPHistograms< int > * tkcntHistosTkNHits2D [5]
TrackIPHistograms< int > * tkcntHistosTkNHits3D [5]
TrackIPHistograms< double > * tkcntHistosTkPt2D [5]
TrackIPHistograms< double > * tkcntHistosTkPt3D [5]
TrackIPHistograms< double > * tkcntHistosVal2D [5]
TrackIPHistograms< double > * tkcntHistosVal3D [5]
FlavourHistograms2D< double,
int > * 
trackMultVsJetPtHisto
FlavourHistograms< int > * trackQualHisto
FlavourHistograms< int > * trkNbr2D
FlavourHistograms< int > * trkNbr3D
double upperIPBound
double upperIPEBound
double upperIPSBound
bool willFinalize_

Detailed Description

Definition at line 12 of file TrackIPTagPlotter.h.


Constructor & Destructor Documentation

TrackIPTagPlotter::TrackIPTagPlotter ( const std::string &  tagName,
const EtaPtBin etaPtBin,
const edm::ParameterSet pSet,
const bool &  update,
const bool &  mc,
const bool &  wf 
)

Definition at line 8 of file TrackIPTagPlotter.cc.

References createPlotsForFinalize(), ghostTrackDistanceSignHisto, ghostTrackDistanceValuHisto, ghostTrackWeightHisto, lowerIPBound, lowerIPEBound, lowerIPSBound, makeQualityPlots_, nBinsIP, nBinsIPE, nBinsIPS, selectedTrackMultVsJetPtHisto, selectedTrackQualHisto, BaseBTagPlotter::theExtensionString, tkcntHistosDecayLengthVal2D, tkcntHistosDecayLengthVal3D, tkcntHistosErr2D, tkcntHistosErr3D, tkcntHistosJetDistSign2D, tkcntHistosJetDistSign3D, tkcntHistosJetDistVal2D, tkcntHistosJetDistVal3D, tkcntHistosProb2D, tkcntHistosProb3D, tkcntHistosSig2D, tkcntHistosSig3D, tkcntHistosTkNChiSqr2D, tkcntHistosTkNChiSqr3D, tkcntHistosTkNHits2D, tkcntHistosTkNHits3D, tkcntHistosTkPt2D, tkcntHistosTkPt3D, tkcntHistosVal2D, tkcntHistosVal3D, trackMultVsJetPtHisto, trackQualHisto, trkNbr2D, trkNbr3D, update, upperIPBound, upperIPEBound, upperIPSBound, and willFinalize_.

                                                                                                                    :
  BaseTagInfoPlotter(tagName, etaPtBin),
  nBinEffPur_(pSet.getParameter<int>("nBinEffPur")),
  startEffPur_(pSet.getParameter<double>("startEffPur")),
  endEffPur_(pSet.getParameter<double>("endEffPur")),
  mcPlots_(mc), willFinalize_(wf),
  makeQualityPlots_(pSet.getParameter<bool>("QualityPlots")),
  lowerIPSBound(pSet.getParameter<double>("LowerIPSBound")),
  upperIPSBound(pSet.getParameter<double>("UpperIPSBound")),
  lowerIPBound(pSet.getParameter<double>("LowerIPBound")),
  upperIPBound(pSet.getParameter<double>("UpperIPBound")),
  lowerIPEBound(pSet.getParameter<double>("LowerIPEBound")),
  upperIPEBound(pSet.getParameter<double>("UpperIPEBound")),
  nBinsIPS(pSet.getParameter<int>("NBinsIPS")),
  nBinsIP(pSet.getParameter<int>("NBinsIP")),
  nBinsIPE(pSet.getParameter<int>("NBinsIPE")),
  minDecayLength(pSet.getParameter<double>("MinDecayLength")),
  maxDecayLength(pSet.getParameter<double>("MaxDecayLength")),
  minJetDistance(pSet.getParameter<double>("MinJetDistance")),
  maxJetDistance(pSet.getParameter<double>("MaxJetDistance")),
  finalized(false)
{
  const std::string trackIPDir(theExtensionString.substr(1));

  trkNbr3D = new TrackIPHistograms<int>
        ("selTrksNbr_3D" + theExtensionString, "Number of selected tracks for 3D IPS", 31, -0.5, 30.5,
        false, true, true, "b", update,trackIPDir ,mc, makeQualityPlots_);

  trkNbr2D = new TrackIPHistograms<int>
        ("selTrksNbr_2D" + theExtensionString, "Number of selected tracks for 2D IPS", 31, -0.5, 30.5,
        false, true, true, "b", update,trackIPDir ,mc, makeQualityPlots_);

  // IP significance
  // 3D
  tkcntHistosSig3D[4] = new TrackIPHistograms<double>
       ("ips_3D" + theExtensionString, "3D IP significance",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig3D[0] = new TrackIPHistograms<double>
       ("ips1_3D" + theExtensionString, "3D IP significance 1.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir,mc, makeQualityPlots_) ;

  tkcntHistosSig3D[1] = new TrackIPHistograms<double>
       ("ips2_3D" + theExtensionString, "3D IP significance 2.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig3D[2] = new TrackIPHistograms<double>
       ("ips3_3D" + theExtensionString, "3D IP significance 3.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig3D[3] = new TrackIPHistograms<double>
       ("ips4_3D" + theExtensionString, "3D IP significance 4.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  //2D
  tkcntHistosSig2D[4] = new TrackIPHistograms<double>
       ("ips_2D" + theExtensionString, "2D IP significance",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig2D[0] = new TrackIPHistograms<double>
       ("ips1_2D" + theExtensionString, "2D IP significance 1.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig2D[1] = new TrackIPHistograms<double>
       ("ips2_2D" + theExtensionString, "2D IP significance 2.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig2D[2] = new TrackIPHistograms<double>
       ("ips3_2D" + theExtensionString, "2D IP significance 3.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosSig2D[3] = new TrackIPHistograms<double>
       ("ips4" + theExtensionString, "2D IP significance 4.trk",
        nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  // IP value
  //3D
  tkcntHistosVal3D[4] = new TrackIPHistograms<double>
       ("ip_3D" + theExtensionString, "3D IP value",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal3D[0] = new TrackIPHistograms<double>
       ("ip1_3D" + theExtensionString, "3D IP value 1.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal3D[1] = new TrackIPHistograms<double>
       ("ip2_3D" + theExtensionString, "3D IP value 2.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal3D[2] = new TrackIPHistograms<double>
       ("ip3_3D" + theExtensionString, "3D IP value 3.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal3D[3] = new TrackIPHistograms<double>
       ("ip4_3D" + theExtensionString, "3D IP value 4.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  //2D
  tkcntHistosVal2D[4] = new TrackIPHistograms<double>
       ("ip_2D" + theExtensionString, "2D IP value",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal2D[0] = new TrackIPHistograms<double>
       ("ip1_2D" + theExtensionString, "2D IP value 1.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal2D[1] = new TrackIPHistograms<double>
       ("ip2_2D" + theExtensionString, "2D IP value 2.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal2D[2] = new TrackIPHistograms<double>
       ("ip3_2D" + theExtensionString, "2D IP value 3.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosVal2D[3] = new TrackIPHistograms<double>
       ("ip4" + theExtensionString, "2D IP value 4.trk",
        nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;


  // IP error
  // 3D
  tkcntHistosErr3D[4] = new TrackIPHistograms<double>
       ("ipe_3D" + theExtensionString, "3D IP error",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr3D[0] = new TrackIPHistograms<double>
       ("ipe1_3D" + theExtensionString, "3D IP error 1.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr3D[1] = new TrackIPHistograms<double>
       ("ipe2_3D" + theExtensionString, "3D IP error 2.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr3D[2] = new TrackIPHistograms<double>
       ("ipe3_3D" + theExtensionString, "3D IP error 3.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr3D[3] = new TrackIPHistograms<double>
       ("ipe4_3D" + theExtensionString, "3D IP error 4.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  //2D
  tkcntHistosErr2D[4] = new TrackIPHistograms<double>
       ("ipe_2D" + theExtensionString, "2D IP error",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr2D[0] = new TrackIPHistograms<double>
       ("ipe1_2D" + theExtensionString, "2D IP error 1.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr2D[1] = new TrackIPHistograms<double>
       ("ipe2_2D" + theExtensionString, "2D IP error 2.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr2D[2] = new TrackIPHistograms<double>
       ("ipe3_2D" + theExtensionString, "2D IP error 3.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosErr2D[3] = new TrackIPHistograms<double>
       ("ipe4_2D" + theExtensionString, "2D IP error 4.trk",
        nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  // decay length
  tkcntHistosDecayLengthVal2D[4] = new TrackIPHistograms<double>
       ("decLen_2D" + theExtensionString, "Decay Length 2D",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal2D[0] = new TrackIPHistograms<double>
       ("decLen1_2D" + theExtensionString, "2D Decay Length 1.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal2D[1] = new TrackIPHistograms<double>
       ("decLen2_2D" + theExtensionString, "2D Decay Length 2.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal2D[2] = new TrackIPHistograms<double>
       ("decLen3_2D" + theExtensionString, "2D Decay Length 3.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal2D[3] = new TrackIPHistograms<double>
       ("decLen4_2D" + theExtensionString, "2D Decay Length 4.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal3D[4] = new TrackIPHistograms<double>
       ("decLen_3D" + theExtensionString, "3D Decay Length",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal3D[0] = new TrackIPHistograms<double>
       ("decLen1_3D" + theExtensionString, "3D Decay Length 1.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal3D[1] = new TrackIPHistograms<double>
       ("decLen2_3D" + theExtensionString, "3D Decay Length 2.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal3D[2] = new TrackIPHistograms<double>
       ("decLen3_3D" + theExtensionString, "3D Decay Length 3.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosDecayLengthVal3D[3] = new TrackIPHistograms<double>
       ("decLen4_3D" + theExtensionString, "3D Decay Length 4.trk",
        50, -5.0, 5.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  // jet distance
  tkcntHistosJetDistVal2D[4] = new TrackIPHistograms<double>
       ("jetDist_2D" + theExtensionString, "JetDistance 2D",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal2D[0] = new TrackIPHistograms<double>
       ("jetDist1_2D" + theExtensionString, "JetDistance 2D 1.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal2D[1] = new TrackIPHistograms<double>
       ("jetDist2_2D" + theExtensionString, "JetDistance 2D 2.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal2D[2] = new TrackIPHistograms<double>
       ("jetDist3_2D" + theExtensionString, "JetDistance 2D 3.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal2D[3] = new TrackIPHistograms<double>
       ("jetDist4_2D" + theExtensionString, "JetDistance 2D 4.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal3D[4] = new TrackIPHistograms<double>
       ("jetDist_3D" + theExtensionString, "JetDistance 3D",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal3D[0] = new TrackIPHistograms<double>
       ("jetDist1_3D" + theExtensionString, "JetDistance 3D 1.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal3D[1] = new TrackIPHistograms<double>
       ("jetDist2_3D" + theExtensionString, "JetDistance 3D 2.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal3D[2] = new TrackIPHistograms<double>
       ("jetDist3_3D" + theExtensionString, "JetDistance 3D 3.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistVal3D[3] = new TrackIPHistograms<double>
       ("jetDist4_3D" + theExtensionString, "JetDistance 3D 4.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign2D[4] = new TrackIPHistograms<double>
       ("jetDist_2D" + theExtensionString, "JetDistance Sign 2D",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign2D[0] = new TrackIPHistograms<double>
       ("jetDist1_2D" + theExtensionString, "JetDistance Sign 2D 1.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign2D[1] = new TrackIPHistograms<double>
       ("jetDist2_2D" + theExtensionString, "JetDistance Sign 2D 2.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign2D[2] = new TrackIPHistograms<double>
       ("jetDist3_2D" + theExtensionString, "JetDistance Sign 2D 3.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign2D[3] = new TrackIPHistograms<double>
       ("jetDist4_2D" + theExtensionString, "JetDistance Sign 2D 4.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign3D[4] = new TrackIPHistograms<double>
       ("jetDist_3D" + theExtensionString, "JetDistance Sign 3D",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign3D[0] = new TrackIPHistograms<double>
       ("jetDist1_3D" + theExtensionString, "JetDistance Sign 3D 1.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign3D[1] = new TrackIPHistograms<double>
       ("jetDist2_3D" + theExtensionString, "JetDistance Sign 3D 2.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign3D[2] = new TrackIPHistograms<double>
       ("jetDist3_3D" + theExtensionString, "JetDistance Sign 3D 3.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  tkcntHistosJetDistSign3D[3] = new TrackIPHistograms<double>
       ("jetDist4_3D" + theExtensionString, "JetDistance Sign 3D 4.trk",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  // track chi-squared
  tkcntHistosTkNChiSqr2D[4] = new TrackIPHistograms<double>
       ("tkNChiSqr_2D" + theExtensionString, "Normalized Chi Squared 2D",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr2D[0] = new TrackIPHistograms<double>
       ("tkNChiSqr1_2D" + theExtensionString, "Normalized Chi Squared 2D 1.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr2D[1] = new TrackIPHistograms<double>
       ("tkNChiSqr2_2D" + theExtensionString, "Normalized Chi Squared 2D 2.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr2D[2] = new TrackIPHistograms<double>
       ("tkNChiSqr3_2D" + theExtensionString, "Normalized Chi Squared 2D 3.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr2D[3] = new TrackIPHistograms<double>
       ("tkNChiSqr4_2D" + theExtensionString, "Normalized Chi Squared 2D 4.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr3D[4] = new TrackIPHistograms<double>
       ("tkNChiSqr_3D" + theExtensionString, "Normalized Chi Squared 3D",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr3D[0] = new TrackIPHistograms<double>
       ("tkNChiSqr1_3D" + theExtensionString, "Normalized Chi Squared 3D 1.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr3D[1] = new TrackIPHistograms<double>
       ("tkNChiSqr2_3D" + theExtensionString, "Normalized Chi Squared 3D 2.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr3D[2] = new TrackIPHistograms<double>
       ("tkNChiSqr3_3D" + theExtensionString, "Normalized Chi Squared 3D 3.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNChiSqr3D[3] = new TrackIPHistograms<double>
       ("tkNChiSqr4_3D" + theExtensionString, "Normalized Chi Squared 3D 4.trk",
        50, -0.1, 10.0, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  // track pT
  tkcntHistosTkPt2D[4] = new TrackIPHistograms<double>
       ("tkPt_2D" + theExtensionString, "Track Pt 2D",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt2D[0] = new TrackIPHistograms<double>
       ("tkPt1_2D" + theExtensionString, "Track Pt 2D 1.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt2D[1] = new TrackIPHistograms<double>
       ("tkPt2_2D" + theExtensionString, "Track Pt 2D 2.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt2D[2] = new TrackIPHistograms<double>
       ("tkPt3_2D" + theExtensionString, "Track Pt 2D 3.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt2D[3] = new TrackIPHistograms<double>
       ("tkPt4_2D" + theExtensionString, "Track Pt 2D 4.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt3D[4] = new TrackIPHistograms<double>
       ("tkPt_3D" + theExtensionString, "Track Pt 3D",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt3D[0] = new TrackIPHistograms<double>
       ("tkPt1_3D" + theExtensionString, "Track Pt 3D 1.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt3D[1] = new TrackIPHistograms<double>
       ("tkPt2_3D" + theExtensionString, "Track Pt 3D 2.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt3D[2] = new TrackIPHistograms<double>
       ("tkPt3_3D" + theExtensionString, "Track Pt 3D 3.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkPt3D[3] = new TrackIPHistograms<double>
       ("tkPt4_3D" + theExtensionString, "Track Pt 3D 4.trk",
        50, -0.1, 50.1, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  // track nHits
  tkcntHistosTkNHits2D[4] = new TrackIPHistograms<int>
       ("tkNHits_2D" + theExtensionString, "Track NHits 2D",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits2D[0] = new TrackIPHistograms<int>
       ("tkNHits1_2D" + theExtensionString, "Track NHits 2D 1.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits2D[1] = new TrackIPHistograms<int>
       ("tkNHits2_2D" + theExtensionString, "Track NHits 2D 2.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits2D[2] = new TrackIPHistograms<int>
       ("tkNHits3_2D" + theExtensionString, "Track NHits 2D 3.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits2D[3] = new TrackIPHistograms<int>
       ("tkNHits4_2D" + theExtensionString, "Track NHits 2D 4.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits3D[4] = new TrackIPHistograms<int>
       ("tkNHits_3D" + theExtensionString, "Track NHits 3D",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits3D[0] = new TrackIPHistograms<int>
       ("tkNHits1_3D" + theExtensionString, "Track NHits 3D 1.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits3D[1] = new TrackIPHistograms<int>
       ("tkNHits2_3D" + theExtensionString, "Track NHits 3D 2.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits3D[2] = new TrackIPHistograms<int>
       ("tkNHits3_3D" + theExtensionString, "Track NHits 3D 3.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  tkcntHistosTkNHits3D[3] = new TrackIPHistograms<int>
       ("tkNHits4_3D" + theExtensionString, "Track NHits 3D 4.trk",
        31, -0.5, 30.5, false, true, true, "b", update, trackIPDir, mc, makeQualityPlots_);

  // probability
  tkcntHistosProb3D[4] = new TrackIPHistograms<float>
       ("prob_3D" + theExtensionString, "3D IP probability",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb3D[0] = new TrackIPHistograms<float>
       ("prob1_3D" + theExtensionString, "3D IP probability 1.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb3D[1] = new TrackIPHistograms<float>
       ("prob2_3D" + theExtensionString, "3D IP probability 2.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb3D[2] = new TrackIPHistograms<float>
       ("prob3_3D" + theExtensionString, "3D IP probability 3.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb3D[3] = new TrackIPHistograms<float>
       ("prob4_3D" + theExtensionString, "3D IP probability 4.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb2D[4] = new TrackIPHistograms<float>
       ("prob_2D" + theExtensionString, "2D IP probability",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb2D[0] = new TrackIPHistograms<float>
       ("prob1_2D" + theExtensionString, "2D IP probability 1.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb2D[1] = new TrackIPHistograms<float>
       ("prob2_2D" + theExtensionString, "2D IP probability 2.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb2D[2] = new TrackIPHistograms<float>
       ("prob3_2D" + theExtensionString, "2D IP probability 3.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  tkcntHistosProb2D[3] = new TrackIPHistograms<float>
       ("prob4" + theExtensionString, "2D IP probability 4.trk",
        50, -1.1, 1.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_) ;

  ghostTrackDistanceValuHisto = new TrackIPHistograms<double>
       ("ghostTrackDist" + theExtensionString, "GhostTrackDistance",
        50, -0.1, 0.1, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
  ghostTrackDistanceSignHisto = new TrackIPHistograms<double>
       ("ghostTrackDistSign" + theExtensionString, "GhostTrackDistance significance",
        50, -100.0, 100.0, false, true, true, "b", update,trackIPDir, mc, makeQualityPlots_);
  ghostTrackWeightHisto = new TrackIPHistograms<double>
       ("ghostTrackWeight" + theExtensionString, "GhostTrack fit participation weight",
        50, 0.0, 1.0, false, false, true, "b", update,trackIPDir, mc, makeQualityPlots_);

  trackQualHisto = new FlavourHistograms<int>
       ("trackQual" + theExtensionString, "Track Quality of Tracks Associated to Jets",
        4, -1.5, 2.5, false, true, true, "b", update, trackIPDir, mc);

  selectedTrackQualHisto = new FlavourHistograms<int>
       ("selectedTrackQual" + theExtensionString, "Track Quality of Selected Tracks Associated to Jets",
        4, -1.5, 2.5, false, true, true, "b", update, trackIPDir, mc);

  trackMultVsJetPtHisto = new FlavourHistograms2D<double, int>
       ("trackMultVsJetPt" + theExtensionString, "Track Multiplicity vs Jet Pt for Tracks Associated to Jets",
        50, 0.0, 250.0, 21, -0.5, 30.5, false, update, trackIPDir, mc, true);

  selectedTrackMultVsJetPtHisto = new FlavourHistograms2D<double, int>
       ("selectedTrackMultVsJetPt" + theExtensionString, "Track Multiplicity vs Jet Pt for Selected Tracks Associated to Jets",
        50, 0.0, 250.0, 21, -0.5, 20.5, false, update, trackIPDir, mc, true);

  if (willFinalize_) createPlotsForFinalize();

}
TrackIPTagPlotter::~TrackIPTagPlotter ( )

Definition at line 488 of file TrackIPTagPlotter.cc.

References effPurFromHistos, finalized, ghostTrackDistanceSignHisto, ghostTrackDistanceValuHisto, ghostTrackWeightHisto, n, selectedTrackMultVsJetPtHisto, selectedTrackQualHisto, tkcntHistosDecayLengthVal2D, tkcntHistosDecayLengthVal3D, tkcntHistosErr2D, tkcntHistosErr3D, tkcntHistosJetDistSign2D, tkcntHistosJetDistSign3D, tkcntHistosJetDistVal2D, tkcntHistosJetDistVal3D, tkcntHistosProb2D, tkcntHistosProb3D, tkcntHistosSig2D, tkcntHistosSig3D, tkcntHistosTkNChiSqr2D, tkcntHistosTkNChiSqr3D, tkcntHistosTkNHits2D, tkcntHistosTkNHits3D, tkcntHistosTkPt2D, tkcntHistosTkPt3D, tkcntHistosVal2D, tkcntHistosVal3D, trackMultVsJetPtHisto, trackQualHisto, trkNbr2D, and trkNbr3D.


Member Function Documentation

void TrackIPTagPlotter::analyzeTag ( const reco::BaseTagInfo baseTagInfo,
const int &  jetFlavour 
) [virtual]

Reimplemented from BaseTagInfoPlotter.

Definition at line 529 of file TrackIPTagPlotter.cc.

References edm::RefVector< C, T, F >::clear(), Exception, FlavourHistograms< T >::fill(), TrackIPHistograms< T >::fill(), FlavourHistograms2D< T, G >::fill(), ghostTrackDistanceSignHisto, ghostTrackDistanceValuHisto, ghostTrackWeightHisto, reco::TrackIPTagInfo::hasProbabilities(), highestTrackQual(), reco::TrackIPTagInfo::impactParameterData(), reco::TrackIPTagInfo::IP2DSig, reco::TrackIPTagInfo::IP3DSig, reco::JTATagInfo::jet(), lowerIPBound, lowerIPEBound, lowerIPSBound, mag(), maxDecayLength, maxJetDistance, minDecayLength, minJetDistance, n, reco::TrackIPTagInfo::primaryVertex(), reco::TrackIPTagInfo::Prob2D, reco::TrackIPTagInfo::Prob3D, reco::TrackIPTagInfo::probabilities(), edm::RefVector< C, T, F >::push_back(), selectedTrackMultVsJetPtHisto, selectedTrackQualHisto, reco::TrackIPTagInfo::selectedTracks(), edm::RefVector< C, T, F >::size(), reco::TrackIPTagInfo::sortedIndexes(), reco::TrackIPTagInfo::sortedTracks(), tkcntHistosDecayLengthVal2D, tkcntHistosDecayLengthVal3D, tkcntHistosErr2D, tkcntHistosErr3D, tkcntHistosJetDistSign2D, tkcntHistosJetDistSign3D, tkcntHistosJetDistVal2D, tkcntHistosJetDistVal3D, tkcntHistosProb2D, tkcntHistosProb3D, tkcntHistosSig2D, tkcntHistosSig3D, tkcntHistosTkNChiSqr2D, tkcntHistosTkNChiSqr3D, tkcntHistosTkNHits2D, tkcntHistosTkNHits3D, tkcntHistosTkPt2D, tkcntHistosTkPt3D, tkcntHistosVal2D, tkcntHistosVal3D, trackMultVsJetPtHisto, trackQualHisto, reco::JTATagInfo::tracks(), trkNbr2D, trkNbr3D, and reco::TrackBase::undefQuality.

{

  const reco::TrackIPTagInfo * tagInfo = 
        dynamic_cast<const reco::TrackIPTagInfo *>(baseTagInfo);

  if (!tagInfo) {
    throw cms::Exception("Configuration")
      << "BTagPerformanceAnalyzer: Extended TagInfo not of type TrackIPTagInfo. " << std::endl;
  }

  const GlobalPoint pv(tagInfo->primaryVertex()->position().x(),
                       tagInfo->primaryVertex()->position().y(),
                       tagInfo->primaryVertex()->position().z());

  const std::vector<reco::TrackIPTagInfo::TrackIPData>& ip = tagInfo->impactParameterData();

  std::vector<float> prob2d, prob3d;
  if (tagInfo->hasProbabilities()) {
    prob2d = tagInfo->probabilities(0); 
    prob3d = tagInfo->probabilities(1); 
  }

  trkNbr3D->fill(jetFlavour, ip.size());
  trkNbr2D->fill(jetFlavour, ip.size());

  std::vector<std::size_t> sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::IP2DSig);
  std::vector<std::size_t> selectedIndices;
  reco::TrackRefVector sortedTracks = tagInfo->sortedTracks(sortedIndices);
  reco::TrackRefVector selectedTracks;
  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
    double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
    double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
    if(decayLength > minDecayLength && decayLength < maxDecayLength &&
       jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
      selectedIndices.push_back(sortedIndices[n]);
      selectedTracks.push_back(sortedTracks[n]);
    }
  }
  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
    const reco::TrackRef& track = sortedTracks[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosSig2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.significance(), true);
    tkcntHistosVal2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.value(), true);
    tkcntHistosErr2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.error(), true);
    const double& decayLen = (ip[selectedIndices[n]].closestToJetAxis - pv).mag();
    tkcntHistosDecayLengthVal2D[n]->fill(jetFlavour, trackQual, decayLen, true);
    tkcntHistosJetDistVal2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true);
    tkcntHistosJetDistSign2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.significance(), true);
    tkcntHistosTkNChiSqr2D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
    tkcntHistosTkPt2D[n]->fill(jetFlavour, trackQual, track->pt(), true);
    tkcntHistosTkNHits2D[n]->fill(jetFlavour, trackQual, track->found(), true);
  }
  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::Prob2D);
  selectedIndices.clear();
  sortedTracks = tagInfo->sortedTracks(sortedIndices);
  selectedTracks.clear();
  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
    double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
    double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
    if(decayLength > minDecayLength && decayLength < maxDecayLength &&
       jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
      selectedIndices.push_back(sortedIndices[n]);
      selectedTracks.push_back(sortedTracks[n]);
    }
  }
  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
    const reco::TrackRef& track = sortedTracks[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosProb2D[n]->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]], true);
  }
  for(unsigned int n=selectedIndices.size(); n < 4; ++n){
    const reco::TrackBase::TrackQuality trackQual = reco::TrackBase::undefQuality;
    tkcntHistosSig2D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false);
    tkcntHistosVal2D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false);
    tkcntHistosErr2D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false);
  }
  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::IP3DSig);
  selectedIndices.clear();
  sortedTracks = tagInfo->sortedTracks(sortedIndices);
  selectedTracks.clear();
  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
    double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
    double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
    if(decayLength > minDecayLength && decayLength < maxDecayLength &&
       jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
      selectedIndices.push_back(sortedIndices[n]);
      selectedTracks.push_back(sortedTracks[n]);
    }
  }
  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
    const reco::TrackRef& track = sortedTracks[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.significance(), true);
    tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.value(), true);
    tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.error(), true);
    const double& decayLen = (ip[selectedIndices[n]].closestToJetAxis - pv).mag();
    tkcntHistosDecayLengthVal3D[n]->fill(jetFlavour, trackQual, decayLen, true);
    tkcntHistosJetDistVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true);
    tkcntHistosJetDistSign3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.significance(), true);
    tkcntHistosTkNChiSqr3D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
    tkcntHistosTkPt3D[n]->fill(jetFlavour, trackQual, track->pt(), true);
    tkcntHistosTkNHits3D[n]->fill(jetFlavour, trackQual, track->found(), true);
  }
  sortedIndices = tagInfo->sortedIndexes(reco::TrackIPTagInfo::Prob3D);
  selectedIndices.clear();
  sortedTracks = tagInfo->sortedTracks(sortedIndices);
  selectedTracks.clear();
  for(unsigned int n = 0; n != sortedIndices.size(); ++n) {
    double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
    double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
    if(decayLength > minDecayLength && decayLength < maxDecayLength &&
       jetDistance > minJetDistance && jetDistance < maxJetDistance ) {
      selectedIndices.push_back(sortedIndices[n]);
      selectedTracks.push_back(sortedTracks[n]);
    }
  }
  for(unsigned int n=0; n != selectedIndices.size() && n != 4; ++n) {
    const reco::TrackRef& track = sortedTracks[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosProb3D[n]->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]], true);
  }
  for(unsigned int n=selectedIndices.size(); n < 4; ++n){
    const reco::TrackBase::TrackQuality trackQual = reco::TrackBase::undefQuality;
    tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false);
    tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false);
    tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false);
  }
  for(unsigned int n=0; n != ip.size(); ++n) {
    const reco::TrackRef& track = tagInfo->selectedTracks()[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosSig2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.significance(), true);
    tkcntHistosVal2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.value(), true);
    tkcntHistosErr2D[4]->fill(jetFlavour, trackQual, ip[n].ip2d.error(), true);
    tkcntHistosProb2D[4]->fill(jetFlavour, trackQual, prob2d[n], true);
    const double& decayLen = (ip[n].closestToJetAxis - pv).mag();
    tkcntHistosDecayLengthVal2D[4]->fill(jetFlavour, trackQual, decayLen, true);
    tkcntHistosJetDistVal2D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.value(), true);
    tkcntHistosJetDistSign2D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.significance(), true);
    tkcntHistosTkNChiSqr2D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
    tkcntHistosTkPt2D[4]->fill(jetFlavour, trackQual, track->pt(), true);
    tkcntHistosTkNHits2D[4]->fill(jetFlavour, trackQual, track->found(), true);
  }
  for(unsigned int n=0; n != ip.size(); ++n) {
    const reco::TrackRef& track = tagInfo->selectedTracks()[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    tkcntHistosSig3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.significance(), true);
    tkcntHistosVal3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.value(), true);
    tkcntHistosErr3D[4]->fill(jetFlavour, trackQual, ip[n].ip3d.error(), true);
    tkcntHistosProb3D[4]->fill(jetFlavour, trackQual, prob3d[n], true);
    const double& decayLen = (ip[n].closestToJetAxis - pv).mag();
    tkcntHistosDecayLengthVal3D[4]->fill(jetFlavour, trackQual, decayLen, true);
    tkcntHistosJetDistVal3D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.value(), true);
    tkcntHistosJetDistSign3D[4]->fill(jetFlavour, trackQual, ip[n].distanceToJetAxis.significance(), true);
    tkcntHistosTkNChiSqr3D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true);
    tkcntHistosTkPt3D[4]->fill(jetFlavour, trackQual, track->pt(), true);
    tkcntHistosTkNHits3D[4]->fill(jetFlavour, trackQual, track->found(), true);
  }
  for(unsigned int n=0; n != ip.size(); ++n) {
    const reco::TrackRef& track = tagInfo->selectedTracks()[n];
    const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
    ghostTrackDistanceValuHisto->fill(jetFlavour, trackQual, ip[n].distanceToGhostTrack.value(), true);
    ghostTrackDistanceSignHisto->fill(jetFlavour, trackQual, ip[n].distanceToGhostTrack.significance(), true);
    ghostTrackWeightHisto->fill(jetFlavour, trackQual, ip[n].ghostTrackWeight, true);
    selectedTrackQualHisto->fill(jetFlavour, trackQual);
  }
  for(unsigned int n = 0; n != tagInfo->tracks().size(); ++n) {
    trackQualHisto->fill(jetFlavour, highestTrackQual(tagInfo->tracks()[n]));
  }

  trackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt(), tagInfo->tracks().size());
  selectedTrackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt(), tagInfo->selectedTracks().size());
}
void TrackIPTagPlotter::createPlotsForFinalize ( ) [virtual]
void TrackIPTagPlotter::epsPlot ( const std::string &  name) [virtual]

Implements BaseBTagPlotter.

Definition at line 821 of file TrackIPTagPlotter.cc.

References effPurFromHistos, FlavourHistograms< T >::epsPlot(), finalized, ghostTrackDistanceSignHisto, ghostTrackDistanceValuHisto, ghostTrackWeightHisto, n, tkcntHistosDecayLengthVal2D, tkcntHistosDecayLengthVal3D, tkcntHistosErr2D, tkcntHistosErr3D, tkcntHistosJetDistSign2D, tkcntHistosJetDistSign3D, tkcntHistosJetDistVal2D, tkcntHistosJetDistVal3D, tkcntHistosProb2D, tkcntHistosProb3D, tkcntHistosSig2D, tkcntHistosSig3D, tkcntHistosTkNChiSqr2D, tkcntHistosTkNChiSqr3D, tkcntHistosTkNHits2D, tkcntHistosTkNHits3D, tkcntHistosTkPt2D, tkcntHistosTkPt3D, tkcntHistosVal2D, tkcntHistosVal3D, trkNbr2D, and trkNbr3D.

void TrackIPTagPlotter::finalize ( void  ) [virtual]

Implements BaseBTagPlotter.

Definition at line 721 of file TrackIPTagPlotter.cc.

References bookConverter::compute(), effPurFromHistos, finalized, and n.

{
  //
  // final processing:
  // produce the misid. vs. eff histograms
  //
  for(int n=0; n != 4; ++n) effPurFromHistos[n]->compute();
  finalized = true;
}
reco::TrackBase::TrackQuality TrackIPTagPlotter::highestTrackQual ( const reco::TrackRef track) const
void TrackIPTagPlotter::psPlot ( const std::string &  name) [virtual]

Implements BaseBTagPlotter.

Definition at line 731 of file TrackIPTagPlotter.cc.

References MultipleCompare::canvas, EffPurFromHistos::discriminatorCutEfficScan(), EffPurFromHistos::discriminatorNoCutEffic(), effPurFromHistos, finalized, ghostTrackDistanceSignHisto, ghostTrackDistanceValuHisto, ghostTrackWeightHisto, n, FlavourHistograms< T >::plot(), EffPurFromHistos::plot(), plotscripts::setTDRStyle(), BaseBTagPlotter::theExtensionString, tkcntHistosProb2D, tkcntHistosProb3D, tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, and trkNbr3D.

{
  const std::string cName("TrackIPPlots"+ theExtensionString);
  RecoBTag::setTDRStyle()->cd();
  TCanvas canvas(cName.c_str(), cName.c_str(), 600, 900);
  canvas.UseCurrentStyle();
  canvas.Divide(2,3);
  canvas.Print((name + cName + ".ps[").c_str());

  canvas.cd(1);
  trkNbr3D->plot();
  canvas.cd(2);
  tkcntHistosSig3D[4]->plot();
  for(int n=0; n < 4; n++) {
    canvas.cd(3+n);
    tkcntHistosSig3D[n]->plot();
  }

  canvas.Print((name + cName + ".ps").c_str());
  canvas.Clear();
  canvas.Divide(2,3);

  canvas.cd(1);
  trkNbr3D->plot();
  canvas.cd(2);
  tkcntHistosProb3D[4]->plot();
  for(int n=0; n < 4; n++) {
    canvas.cd(3+n);
    tkcntHistosProb3D[n]->plot();
  }

  canvas.Print((name + cName + ".ps").c_str());
  canvas.Clear();
  canvas.Divide(2,3);
  canvas.cd(1);
  trkNbr2D->plot();
  canvas.cd(2);
  tkcntHistosSig2D[4]->plot();
  for(int n=0; n != 4; ++n) {
    canvas.cd(3+n);
    tkcntHistosSig2D[n]->plot();
  }

  canvas.Print((name + cName + ".ps").c_str());
  canvas.Clear();
  canvas.Divide(2,3);
  canvas.cd(1);
  trkNbr2D->plot();
  canvas.cd(2);
  tkcntHistosProb2D[4]->plot();
  for(int n=0; n != 4; ++n) {
    canvas.cd(3+n);
    tkcntHistosProb2D[n]->plot();
  }

  if (finalized) {
    for(int n=0; n != 2; ++n) {
      canvas.Print((name + cName + ".ps").c_str());
      canvas.Clear();
      canvas.Divide(2,3);
      canvas.cd(1);
      effPurFromHistos[0+n]->discriminatorNoCutEffic()->plot();
      canvas.cd(2);
      effPurFromHistos[0+n]->discriminatorCutEfficScan()->plot();
      canvas.cd(3);
      effPurFromHistos[0+n]->plot();
      canvas.cd(4);
      effPurFromHistos[1+n]->discriminatorNoCutEffic()->plot();
      canvas.cd(5);
      effPurFromHistos[1+n]->discriminatorCutEfficScan()->plot();
      canvas.cd(6);
      effPurFromHistos[1+n]->plot();
    }
  }

  canvas.Print((name + cName + ".ps").c_str());
  canvas.Clear();
  canvas.Divide(1,3);
  canvas.cd(1);
  ghostTrackDistanceValuHisto->plot();
  canvas.cd(2);
  ghostTrackDistanceSignHisto->plot();
  canvas.cd(3);
  ghostTrackWeightHisto->plot();

  canvas.Print((name + cName + ".ps").c_str());
  canvas.Print((name + cName + ".ps]").c_str());
}

Member Data Documentation

Definition at line 37 of file TrackIPTagPlotter.h.

Referenced by createPlotsForFinalize().

Definition at line 77 of file TrackIPTagPlotter.h.

Referenced by epsPlot(), finalize(), psPlot(), and ~TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), and TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), and TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), and TrackIPTagPlotter().

Definition at line 40 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 63 of file TrackIPTagPlotter.h.

Referenced by analyzeTag().

Definition at line 63 of file TrackIPTagPlotter.h.

Referenced by analyzeTag().

Definition at line 38 of file TrackIPTagPlotter.h.

Referenced by createPlotsForFinalize().

Definition at line 63 of file TrackIPTagPlotter.h.

Referenced by analyzeTag().

Definition at line 63 of file TrackIPTagPlotter.h.

Referenced by analyzeTag().

Definition at line 35 of file TrackIPTagPlotter.h.

Referenced by createPlotsForFinalize().

Definition at line 62 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 62 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 62 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 75 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 73 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 36 of file TrackIPTagPlotter.h.

Referenced by createPlotsForFinalize().

Definition at line 48 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 49 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 45 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 44 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 52 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 53 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 50 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 51 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 54 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 55 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 58 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 59 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 56 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 57 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 47 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 46 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), epsPlot(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 74 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 72 of file TrackIPTagPlotter.h.

Referenced by analyzeTag(), TrackIPTagPlotter(), and ~TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 61 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().

Definition at line 39 of file TrackIPTagPlotter.h.

Referenced by TrackIPTagPlotter().