CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

TrackBuildingAnalyzer Class Reference

#include <TrackBuildingAnalyzer.h>

List of all members.

Public Member Functions

virtual void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
virtual void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrackCandidate &candidate, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
virtual void beginJob (DQMStore *dqmStore_)
 TrackBuildingAnalyzer (const edm::ParameterSet &)
virtual ~TrackBuildingAnalyzer ()

Private Member Functions

void bookHistos (std::string sname, DQMStore *dqmStore_)
void fillHistos (const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)

Private Attributes

edm::ParameterSet conf_
bool doAllPlots
bool doAllSeedPlots
bool doDxy
bool doDz
bool doETA
bool doNRecHits
bool doPHI
bool doPHIVsETA
bool doProfETA
bool doProfPHI
bool doPT
bool doQ
bool doTCPlots
bool doTheta
std::string histname
MonitorElementNumberOfRecHitsPerSeed
MonitorElementNumberOfRecHitsPerSeedVsEtaProfile
MonitorElementNumberOfRecHitsPerSeedVsPhiProfile
MonitorElementNumberOfRecHitsPerTrackCand
MonitorElementNumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElementNumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElementSeedDxy
MonitorElementSeedDz
MonitorElementSeedEta
MonitorElementSeedPhi
MonitorElementSeedPhiVsEta
MonitorElementSeedPt
MonitorElementSeedQ
MonitorElementSeedTheta
MonitorElementTrackCandDxy
MonitorElementTrackCandDz
MonitorElementTrackCandEta
MonitorElementTrackCandPhi
MonitorElementTrackCandPt
MonitorElementTrackCandQ
MonitorElementTrackCandTheta

Detailed Description

Monitoring source for general quantities related to tracks.

Definition at line 34 of file TrackBuildingAnalyzer.h.


Constructor & Destructor Documentation

TrackBuildingAnalyzer::TrackBuildingAnalyzer ( const edm::ParameterSet iConfig)
TrackBuildingAnalyzer::~TrackBuildingAnalyzer ( ) [virtual]

Definition at line 36 of file TrackBuildingAnalyzer.cc.

{ 
}

Member Function Documentation

void TrackBuildingAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const TrajectorySeed seed,
const reco::BeamSpot bs,
const edm::ESHandle< MagneticField > &  theMF,
const edm::ESHandle< TransientTrackingRecHitBuilder > &  theTTRHBuilder 
) [virtual]

Definition at line 261 of file TrackBuildingAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), funct::cos(), eta(), PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), PV3DBase< T, PVType, FrameType >::phi(), phi, edm::ESHandle< T >::product(), TrajectorySeed::recHits(), funct::sin(), mathSSE::sqrt(), TrajectorySeed::startingState(), theta(), PV3DBase< T, PVType, FrameType >::theta(), trajectoryStateTransform::transientState(), v, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

Referenced by TrackingMonitor::analyze().

{

    
    TSCBLBuilderNoMaterial tscblBuilder;

    //get parameters and errors from the candidate state
    TransientTrackingRecHit::RecHitPointer recHit = theTTRHBuilder->build(&*(candidate.recHits().second-1));
    TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( candidate.startingState(), recHit->surface(), theMF.product());
    TrajectoryStateClosestToBeamLine tsAtClosestApproachSeed = tscblBuilder(*state.freeState(),bs);//as in TrackProducerAlgorithm
    if(!(tsAtClosestApproachSeed.isValid())) {
        edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
        return;
    }
    GlobalPoint  v0 = tsAtClosestApproachSeed.trackStateAtPCA().position();
    GlobalVector p = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
    GlobalPoint  v(v0.x()-bs.x0(),v0.y()-bs.y0(),v0.z()-bs.z0());

    double pt           = sqrt(state.globalMomentum().perp2());
    double eta          = state.globalMomentum().eta();
    double phi          = state.globalMomentum().phi();
    double theta        = state.globalMomentum().theta();
    //double pm           = sqrt(state.globalMomentum().mag2());
    //double pz           = state.globalMomentum().z();
    //double qoverp       = tsAtClosestApproachSeed.trackStateAtPCA().charge()/p.mag();
    //double theta        = p.theta();
    //double lambda       = M_PI/2-p.theta();
    double numberOfHits = candidate.recHits().second-candidate.recHits().first;
    double dxy          = (-v.x()*sin(p.phi())+v.y()*cos(p.phi()));
    double dz           = v.z() - (v.x()*p.x()+v.y()*p.y())/p.perp() * p.z()/p.perp();

    // fill the ME's
    if (doAllSeedPlots || doQ)SeedQ->Fill( state.charge() );
    if (doAllSeedPlots || doPT) SeedPt->Fill( pt );
    if (doAllSeedPlots || doETA) SeedEta->Fill( eta );
    if (doAllSeedPlots || doPHI) SeedPhi->Fill( phi );
    if (doAllSeedPlots || doPHIVsETA) SeedPhiVsEta->Fill( eta, phi);
    if (doAllSeedPlots || doTheta) SeedTheta->Fill( theta );
    if (doAllSeedPlots || doDxy) SeedDxy->Fill( dxy );
    if (doAllSeedPlots || doDz) SeedDz->Fill( dz );
    if (doAllSeedPlots || doNRecHits) NumberOfRecHitsPerSeed->Fill( numberOfHits );
    if (doAllSeedPlots || doProfETA) NumberOfRecHitsPerSeedVsEtaProfile->Fill( eta, numberOfHits );
    if (doAllSeedPlots || doProfPHI) NumberOfRecHitsPerSeedVsPhiProfile->Fill( phi, numberOfHits );
}
void TrackBuildingAnalyzer::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const TrackCandidate candidate,
const reco::BeamSpot bs,
const edm::ESHandle< MagneticField > &  theMF,
const edm::ESHandle< TransientTrackingRecHitBuilder > &  theTTRHBuilder 
) [virtual]

Definition at line 316 of file TrackBuildingAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), funct::cos(), eta(), PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::globalMomentum(), AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::perp2(), PV3DBase< T, PVType, FrameType >::phi(), phi, edm::ESHandle< T >::product(), TrackCandidate::recHits(), funct::sin(), mathSSE::sqrt(), theta(), PV3DBase< T, PVType, FrameType >::theta(), TrackCandidate::trajectoryStateOnDet(), trajectoryStateTransform::transientState(), v, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), PV3DBase< T, PVType, FrameType >::z(), and reco::BeamSpot::z0().

{

    
    TSCBLBuilderNoMaterial tscblBuilder;

    //get parameters and errors from the candidate state
    TransientTrackingRecHit::RecHitPointer recHit = theTTRHBuilder->build(&*(candidate.recHits().second-1));
    TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( candidate.trajectoryStateOnDet(), recHit->surface(), theMF.product());
    TrajectoryStateClosestToBeamLine tsAtClosestApproachTrackCand = tscblBuilder(*state.freeState(),bs);//as in TrackProducerAlgorithm
    if(!(tsAtClosestApproachTrackCand.isValid())) {
        edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
        return;
    }
    GlobalPoint  v0 = tsAtClosestApproachTrackCand.trackStateAtPCA().position();
    GlobalVector p = tsAtClosestApproachTrackCand.trackStateAtPCA().momentum();
    GlobalPoint  v(v0.x()-bs.x0(),v0.y()-bs.y0(),v0.z()-bs.z0());

    double pt           = sqrt(state.globalMomentum().perp2());
    double eta          = state.globalMomentum().eta();
    double phi          = state.globalMomentum().phi();
    double theta        = state.globalMomentum().theta();
    //double pm           = sqrt(state.globalMomentum().mag2());
    //double pz           = state.globalMomentum().z();
    //double qoverp       = tsAtClosestApproachTrackCand.trackStateAtPCA().charge()/p.mag();
    //double theta        = p.theta();
    //double lambda       = M_PI/2-p.theta();
    double numberOfHits = candidate.recHits().second-candidate.recHits().first;
    double dxy          = (-v.x()*sin(p.phi())+v.y()*cos(p.phi()));
    
    double dz           = v.z() - (v.x()*p.x()+v.y()*p.y())/p.perp() * p.z()/p.perp();
    
    if (doTCPlots){
      // fill the ME's
      TrackCandQ->Fill( state.charge() );
      TrackCandPt->Fill( pt );
      TrackCandEta->Fill( eta );
      TrackCandPhi->Fill( phi );
      TrackCandTheta->Fill( theta );
      TrackCandDxy->Fill( dxy );
      TrackCandDz->Fill( dz );
      NumberOfRecHitsPerTrackCand->Fill( numberOfHits );
      NumberOfRecHitsPerTrackCandVsEtaProfile->Fill( eta, numberOfHits );
      NumberOfRecHitsPerTrackCandVsPhiProfile->Fill( phi, numberOfHits );
    }
}
void TrackBuildingAnalyzer::beginJob ( DQMStore dqmStore_) [virtual]

Definition at line 40 of file TrackBuildingAnalyzer.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), conf_, doAllPlots, doAllSeedPlots, doDxy, doDz, doETA, doNRecHits, doPHI, doPHIVsETA, doProfETA, doProfPHI, doPT, doQ, doTCPlots, doTheta, Gflash::EtaMax, Gflash::EtaMin, edm::ParameterSet::getParameter(), histname, NumberOfRecHitsPerSeed, NumberOfRecHitsPerSeedVsEtaProfile, NumberOfRecHitsPerSeedVsPhiProfile, NumberOfRecHitsPerTrackCand, NumberOfRecHitsPerTrackCandVsEtaProfile, NumberOfRecHitsPerTrackCandVsPhiProfile, SeedDxy, SeedDz, SeedEta, SeedPhi, SeedPhiVsEta, SeedPt, SeedQ, SeedTheta, MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), TrackCandDxy, TrackCandDz, TrackCandEta, TrackCandPhi, TrackCandPt, TrackCandQ, and TrackCandTheta.

Referenced by TrackingMonitor::beginJob().

{

    // parameters from the configuration
    std::string AlgoName       = conf_.getParameter<std::string>("AlgoName");
    std::string MEFolderName   = conf_.getParameter<std::string>("FolderName"); 

    // use the AlgoName and Quality Name 
    std::string CatagoryName = AlgoName;

    // get binning from the configuration
    int    TrackPtBin = conf_.getParameter<int>(   "TrackPtBin");
    double TrackPtMin = conf_.getParameter<double>("TrackPtMin");
    double TrackPtMax = conf_.getParameter<double>("TrackPtMax");

    int    PhiBin     = conf_.getParameter<int>(   "PhiBin");
    double PhiMin     = conf_.getParameter<double>("PhiMin");
    double PhiMax     = conf_.getParameter<double>("PhiMax");

    int    EtaBin     = conf_.getParameter<int>(   "EtaBin");
    double EtaMin     = conf_.getParameter<double>("EtaMin");
    double EtaMax     = conf_.getParameter<double>("EtaMax");

    int    ThetaBin   = conf_.getParameter<int>(   "ThetaBin");
    double ThetaMin   = conf_.getParameter<double>("ThetaMin");
    double ThetaMax   = conf_.getParameter<double>("ThetaMax");

    int    TrackQBin  = conf_.getParameter<int>(   "TrackQBin");
    double TrackQMin  = conf_.getParameter<double>("TrackQMin");
    double TrackQMax  = conf_.getParameter<double>("TrackQMax");

    int    SeedDxyBin = conf_.getParameter<int>(   "SeedDxyBin");
    double SeedDxyMin = conf_.getParameter<double>("SeedDxyMin");
    double SeedDxyMax = conf_.getParameter<double>("SeedDxyMax");

    int    SeedDzBin  = conf_.getParameter<int>(   "SeedDzBin");
    double SeedDzMin  = conf_.getParameter<double>("SeedDzMin");
    double SeedDzMax  = conf_.getParameter<double>("SeedDzMax");

    int    SeedHitBin = conf_.getParameter<int>(   "SeedHitBin");
    double SeedHitMin = conf_.getParameter<double>("SeedHitMin");
    double SeedHitMax = conf_.getParameter<double>("SeedHitMax");

    int    TCDxyBin   = conf_.getParameter<int>(   "TCDxyBin");
    double TCDxyMin   = conf_.getParameter<double>("TCDxyMin");
    double TCDxyMax   = conf_.getParameter<double>("TCDxyMax");

    int    TCDzBin    = conf_.getParameter<int>(   "TCDzBin");
    double TCDzMin    = conf_.getParameter<double>("TCDzMin");
    double TCDzMax    = conf_.getParameter<double>("TCDzMax");

    int    TCHitBin   = conf_.getParameter<int>(   "TCHitBin");
    double TCHitMin   = conf_.getParameter<double>("TCHitMin");
    double TCHitMax   = conf_.getParameter<double>("TCHitMax");


    edm::InputTag seedProducer   = conf_.getParameter<edm::InputTag>("SeedProducer");
    edm::InputTag tcProducer     = conf_.getParameter<edm::InputTag>("TCProducer");

    doAllPlots=conf_.getParameter<bool>("doAllPlots");
    doAllSeedPlots=conf_.getParameter<bool>("doSeedParameterHistos");
    doTCPlots=conf_.getParameter<bool>("doTrackCandHistos");
    doPT=conf_.getParameter<bool>("doSeedPTHisto");
    doETA=conf_.getParameter<bool>("doSeedETAHisto");
    doPHI=conf_.getParameter<bool>("doSeedPHIHisto");
    doPHIVsETA=conf_.getParameter<bool>("doSeedPHIVsETAHisto");
    doTheta=conf_.getParameter<bool>("doSeedThetaHisto");
    doQ=conf_.getParameter<bool>("doSeedQHisto");
    doDxy =conf_.getParameter<bool>("doSeedDxyHisto");
    doDz =conf_.getParameter<bool>("doSeedDzHisto");
    doNRecHits=conf_.getParameter<bool>("doSeedNRecHitsHisto");
    doProfPHI=conf_.getParameter<bool>("doSeedNVsPhiProf");
    doProfETA=conf_.getParameter<bool>("doSeedNVsEtaProf");

    //    if (doAllPlots){doAllSeedPlots=true; doTCPlots=true;}

    dqmStore_->setCurrentFolder(MEFolderName);

    // book the Seed histograms
    // ---------------------------------------------------------------------------------//
    dqmStore_->setCurrentFolder(MEFolderName+"/TrackBuilding");
    
    if (doAllSeedPlots || doPT) {
      histname = "SeedPt_"+seedProducer.label() + "_";
      SeedPt = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
      SeedPt->setAxisTitle("Seed p_{T} (GeV/c)", 1);
      SeedPt->setAxisTitle("Number of Seeds", 2);
    }

    if (doAllSeedPlots || doETA) {
      histname = "SeedEta_"+seedProducer.label() + "_";
      SeedEta = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax);
      SeedEta->setAxisTitle("Seed #eta", 1);
      SeedEta->setAxisTitle("Number of Seeds", 2);
    }

    if (doAllSeedPlots || doPHI) {
      histname = "SeedPhi_"+seedProducer.label() + "_";
      SeedPhi = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax);
      SeedPhi->setAxisTitle("Seed #phi", 1);
      SeedPhi->setAxisTitle("Number of Seed", 2);
    }

    if (doAllSeedPlots || doPHIVsETA) {
      histname = "SeedPhiVsEta_"+seedProducer.label() + "_";
      SeedPhiVsEta = dqmStore_->book2D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax);
      SeedPhiVsEta->setAxisTitle("Seed #eta", 1);
      SeedPhiVsEta->setAxisTitle("Seed #phi", 2);
    }

    if (doAllSeedPlots || doTheta){
      histname = "SeedTheta_"+seedProducer.label() + "_";
      SeedTheta = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, ThetaBin, ThetaMin, ThetaMax);
      SeedTheta->setAxisTitle("Seed #theta", 1);
      SeedTheta->setAxisTitle("Number of Seeds", 2);
    }

    if (doAllSeedPlots || doQ){
    histname = "SeedQ_"+seedProducer.label() + "_";
    SeedQ = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TrackQBin, TrackQMin, TrackQMax);
    SeedQ->setAxisTitle("Seed Charge", 1);
    SeedQ->setAxisTitle("Number of Seeds",2);
    }

    if (doAllSeedPlots || doDxy){
      histname = "SeedDxy_"+seedProducer.label() + "_";
      SeedDxy = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, SeedDxyBin, SeedDxyMin, SeedDxyMax);
      SeedDxy->setAxisTitle("Seed d_{xy} (cm)", 1);
      SeedDxy->setAxisTitle("Number of Seeds",2);
    }

    if (doAllSeedPlots || doDz){
      histname = "SeedDz_"+seedProducer.label() + "_";
      SeedDz = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, SeedDzBin, SeedDzMin, SeedDzMax);
      SeedDz->setAxisTitle("Seed d_{z} (cm)", 1);
      SeedDz->setAxisTitle("Number of Seeds",2);
    }

    if (doAllSeedPlots || doNRecHits){
      histname = "NumberOfRecHitsPerSeed_"+seedProducer.label() + "_";
      NumberOfRecHitsPerSeed = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, SeedHitBin, SeedHitMin, SeedHitMax);
      NumberOfRecHitsPerSeed->setAxisTitle("Number of RecHits per Seed", 1);
      NumberOfRecHitsPerSeed->setAxisTitle("Number of Seeds",2);
    }

    if (doAllSeedPlots || doProfPHI){
      histname = "NumberOfRecHitsPerSeedVsPhiProfile_"+seedProducer.label() + "_";
      NumberOfRecHitsPerSeedVsPhiProfile = dqmStore_->bookProfile(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax, SeedHitBin, SeedHitMin, SeedHitMax,"s");
      NumberOfRecHitsPerSeedVsPhiProfile->setAxisTitle("Seed #phi",1);
      NumberOfRecHitsPerSeedVsPhiProfile->setAxisTitle("Number of RecHits of each Seed",2);
    }

    if (doAllSeedPlots || doProfETA){
      histname = "NumberOfRecHitsPerSeedVsEtaProfile_"+seedProducer.label() + "_";
      NumberOfRecHitsPerSeedVsEtaProfile = dqmStore_->bookProfile(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, SeedHitBin, SeedHitMin, SeedHitMax,"s");
      NumberOfRecHitsPerSeedVsEtaProfile->setAxisTitle("Seed #eta",1);
      NumberOfRecHitsPerSeedVsEtaProfile->setAxisTitle("Number of RecHits of each Seed",2);
    }

    // book the TrackCandidate histograms
    // ---------------------------------------------------------------------------------//

    if (doTCPlots){

      dqmStore_->setCurrentFolder(MEFolderName+"/TrackBuilding");

      histname = "TrackCandPt_"+tcProducer.label() + "_";
      TrackCandPt = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TrackPtBin, TrackPtMin, TrackPtMax);
      TrackCandPt->setAxisTitle("Track Candidate p_{T} (GeV/c)", 1);
      TrackCandPt->setAxisTitle("Number of Track Candidates", 2);
      
      histname = "TrackCandEta_"+tcProducer.label() + "_";
      TrackCandEta = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax);
      TrackCandEta->setAxisTitle("Track Candidate #eta", 1);
      TrackCandEta->setAxisTitle("Number of Track Candidates", 2);
      
      histname = "TrackCandPhi_"+tcProducer.label() + "_";
      TrackCandPhi = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax);
      TrackCandPhi->setAxisTitle("Track Candidate #phi", 1);
      TrackCandPhi->setAxisTitle("Number of Track Candidates", 2);
      
      histname = "TrackCandTheta_"+tcProducer.label() + "_";
      TrackCandTheta = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, ThetaBin, ThetaMin, ThetaMax);
      TrackCandTheta->setAxisTitle("Track Candidate #theta", 1);
      TrackCandTheta->setAxisTitle("Number of Track Candidates", 2);
      
      histname = "TrackCandQ_"+tcProducer.label() + "_";
      TrackCandQ = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TrackQBin, TrackQMin, TrackQMax);
      TrackCandQ->setAxisTitle("Track Candidate Charge", 1);
      TrackCandQ->setAxisTitle("Number of Track Candidates",2);
      
      histname = "TrackCandDxy_"+tcProducer.label() + "_";
      TrackCandDxy = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TCDxyBin, TCDxyMin, TCDxyMax);
      TrackCandDxy->setAxisTitle("Track Candidate d_{xy} (cm)", 1);
      TrackCandDxy->setAxisTitle("Number of Track Candidates",2);
      
      histname = "TrackCandDz_"+tcProducer.label() + "_";
      TrackCandDz = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TCDzBin, TCDzMin, TCDzMax);
      TrackCandDz->setAxisTitle("Track Candidate d_{z} (cm)", 1);
      TrackCandDz->setAxisTitle("Number of Track Candidates",2);
      
      histname = "NumberOfRecHitsPerTrackCand_"+tcProducer.label() + "_";
      NumberOfRecHitsPerTrackCand = dqmStore_->book1D(histname+CatagoryName, histname+CatagoryName, TCHitBin, TCHitMin, TCHitMax);
      NumberOfRecHitsPerTrackCand->setAxisTitle("Number of RecHits per Track Candidate", 1);
      NumberOfRecHitsPerTrackCand->setAxisTitle("Number of Track Candidates",2);
      
      histname = "NumberOfRecHitsPerTrackCandVsPhiProfile_"+tcProducer.label() + "_";
      NumberOfRecHitsPerTrackCandVsPhiProfile = dqmStore_->bookProfile(histname+CatagoryName, histname+CatagoryName, PhiBin, PhiMin, PhiMax, TCHitBin, TCHitMin, TCHitMax,"s");
      NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Track Candidate #phi",1);
      NumberOfRecHitsPerTrackCandVsPhiProfile->setAxisTitle("Number of RecHits of each Track Candidate",2);
      
      histname = "NumberOfRecHitsPerTrackCandVsEtaProfile_"+tcProducer.label() + "_";
      NumberOfRecHitsPerTrackCandVsEtaProfile = dqmStore_->bookProfile(histname+CatagoryName, histname+CatagoryName, EtaBin, EtaMin, EtaMax, TCHitBin, TCHitMin, TCHitMax,"s");
      NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Track Candidate #eta",1);
      NumberOfRecHitsPerTrackCandVsEtaProfile->setAxisTitle("Number of RecHits of each Track Candidate",2);
    }
}
void TrackBuildingAnalyzer::bookHistos ( std::string  sname,
DQMStore dqmStore_ 
) [private]
void TrackBuildingAnalyzer::fillHistos ( const edm::EventSetup iSetup,
const reco::Track track,
std::string  sname 
) [private]

Member Data Documentation

Definition at line 66 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 96 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 97 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 105 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 106 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 100 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 107 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 101 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 102 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 109 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 108 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 99 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 104 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 98 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 103 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

std::string TrackBuildingAnalyzer::histname [private]

Definition at line 93 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 77 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 79 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 78 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 89 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 91 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 90 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 75 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 76 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 70 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 71 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 72 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 69 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 74 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 73 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 87 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 88 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 83 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 84 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 82 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 86 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().

Definition at line 85 of file TrackBuildingAnalyzer.h.

Referenced by beginJob().