![]() |
![]() |
#include <Alignment/OfflineValidation/plugins/PrimaryVertexValidation.cc>
Description: Validate alignment constants using unbiased vertex residuals
Implementation: <Notes on="" implementation>="">
Definition at line 80 of file PrimaryVertexValidation.h.
PrimaryVertexValidation::PrimaryVertexValidation | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 75 of file PrimaryVertexValidation.cc.
References etapitch_, edm::ParameterSet::getParameter(), nBins_, phipitch_, Pi, AlCaHLTBitMon_QueryRunRegistry::string, theTrackClusterizer_, and theTrackFilter_.
: storeNtuple_(iConfig.getParameter<bool>("storeNtuple")), lightNtupleSwitch_(iConfig.getParameter<bool>("isLightNtuple")), useTracksFromRecoVtx_(iConfig.getParameter<bool>("useTracksFromRecoVtx")), askFirstLayerHit_(iConfig.getParameter<bool>("askFirstLayerHit")), ptOfProbe_(iConfig.getUntrackedParameter<double>("probePt",0.)), etaOfProbe_(iConfig.getUntrackedParameter<double>("probeEta",2.4)), nBins_(iConfig.getUntrackedParameter<int>("numberOfBins",24)), debug_(iConfig.getParameter<bool>("Debug")), TrackCollectionTag_(iConfig.getParameter<edm::InputTag>("TrackCollectionTag")) { // now do what ever initialization is needed // initialize phase space boundaries phipitch_ = (2*TMath::Pi())/nBins_; etapitch_ = 5./nBins_; // old version // theTrackClusterizer_ = new GapClusterizerInZ(iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkGapClusParameters")); // select and configure the track filter theTrackFilter_= new TrackFilterForPVFinding(iConfig.getParameter<edm::ParameterSet>("TkFilterParameters") ); // select and configure the track clusterizer std::string clusteringAlgorithm=iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<std::string>("algorithm"); if (clusteringAlgorithm=="gap"){ theTrackClusterizer_ = new GapClusterizerInZ(iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkGapClusParameters")); }else if(clusteringAlgorithm=="DA"){ theTrackClusterizer_ = new DAClusterizerInZ(iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkDAClusParameters")); }else{ throw VertexException("PrimaryVertexProducerAlgorithm: unknown clustering algorithm: " + clusteringAlgorithm); } }
PrimaryVertexValidation::~PrimaryVertexValidation | ( | ) |
Definition at line 110 of file PrimaryVertexValidation.cc.
{ // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) }
void PrimaryVertexValidation::analyze | ( | const edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDAnalyzer.
Definition at line 123 of file PrimaryVertexValidation.cc.
References a_dxyBiasResidualsMap, a_dxyEtaBiasResiduals, a_dxyEtaResiduals, a_dxyPhiBiasResiduals, a_dxyPhiResiduals, a_dxyResidualsMap, a_dzBiasResidualsMap, a_dzEtaBiasResiduals, a_dzEtaResiduals, a_dzPhiBiasResiduals, a_dzPhiResiduals, a_dzResidualsMap, askFirstLayerHit_, Beamdxdz_, Beamsigmaz_, SiPixelRawToDigiRegional_cfi::beamSpot, BeamWidthX_, BeamWidthY_, BSx0_, BSy0_, BSz0_, charge_, reco::Vertex::chi2(), chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2UnbiasedVertex_, TrackClusterizerInZ::clusterize(), cmToum, gather_cfg::cout, GlobalErrorBase< T, ErrorWeightType >::czz(), debug_, TransientVertex::degreesOfFreedom(), DOFUnbiasedVertex_, dszFromMyVertex_, dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, dz_, dzBs_, dzErrorFromMyVertex_, dzFromMyVertex_, eta_, etaOfProbe_, etapitch_, edm::Event::eventAuxiliary(), EventNumber_, edm::EventSetup::get(), edm::Event::getByLabel(), h_fitVtxChi2_, h_fitVtxChi2ndf_, h_fitVtxChi2Prob_, h_fitVtxNdof_, h_fitVtxNtracks_, h_probeCharge_, h_probeChi2_, h_probedxy_, h_probedz_, h_probeEta_, h_probeHits1D_, h_probeHits2D_, h_probeHits_, h_probeHitsInBPIX_, h_probeHitsInFPIX_, h_probeHitsInTEC_, h_probeHitsInTIB_, h_probeHitsInTID_, h_probeHitsInTOB_, h_probeNormChi2_, h_probePhi_, h_probePt_, h_probeQoverP_, h_recoVtxChi2ndf_, h_recoVtxChi2Prob_, h_recoVtxNtracks_, h_recoVtxSumPt_, hasFirstLayerPixelHits(), hasRecVertex_, TransientVertex::hasTrackWeight(), i, IPLsigFromMyVertex_, IPTsigFromMyVertex_, isGoodTrack_, isHighPurity_, isHit2D(), reco::Vertex::isValid(), TransientVertex::isValid(), j, gen::k, kBPIX, kFPIX, LogTrace, LuminosityBlockNumber_, n_dxyBiasResidualsMap, n_dxyEtaBiasResiduals, n_dxyEtaResiduals, n_dxyPhiBiasResiduals, n_dxyPhiResiduals, n_dxyResidualsMap, n_dzBiasResidualsMap, n_dzEtaBiasResiduals, n_dzEtaResiduals, n_dzPhiBiasResiduals, n_dzPhiResiduals, n_dzResidualsMap, nBins_, nClus_, reco::Vertex::ndof(), Nevt_, nhits1D_, nhits2D_, nhits_, nhitsBPIX_, nhitsFPIX_, nhitsTEC_, nhitsTIB_, nhitsTID_, nhitsTOB_, nMaxtracks_, nOfflineVertices_, TransientVertex::normalisedChiSquared(), reco::Vertex::normalizedChi2(), nTracks_, nTracksPerClus_, p_, phi_, phipitch_, Pi, point, reco::Vertex::position(), TransientVertex::position(), TransientVertex::positionError(), pt_, ptOfProbe_, qoverp_, reco::TrackBase::qualityByName(), rootTree_, RunNumber_, TrackFilterForPVFindingBase::select(), SetVarToZero(), IPTools::signedTransverseImpactParameter(), storeNtuple_, sumOfWeightsUnbiasedVertex_, StripSubdetector::TEC, theta_, theTrackClusterizer_, theTrackFilter_, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, TransientVertex::totalChiSquared(), TrackCollectionTag_, reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), reco::Vertex::tracksSize(), tracksUsedForVertexing_, TransientVertex::trackWeight(), useTracksFromRecoVtx_, VertexFitter< N >::vertex(), cms::Exception::what(), PV3DBase< T, PVType, FrameType >::x(), xOfflineVertex_, xPCA_, xUnbiasedVertex_, PV3DBase< T, PVType, FrameType >::y(), yOfflineVertex_, yPCA_, yUnbiasedVertex_, PV3DBase< T, PVType, FrameType >::z(), zOfflineVertex_, zPCA_, and zUnbiasedVertex_.
{ using namespace std; using namespace IPTools; Nevt_++; //======================================================= // Initialize Root-tuple variables //======================================================= SetVarToZero(); //======================================================= // Retrieve the Magnetic Field information //======================================================= edm::ESHandle<MagneticField> theMGField; iSetup.get<IdealMagneticFieldRecord>().get( theMGField ); //======================================================= // Retrieve the Tracking Geometry information //======================================================= edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry; iSetup.get<GlobalTrackingGeometryRecord>().get( theTrackingGeometry ); //======================================================= // Retrieve the Track information //======================================================= edm::Handle<reco::TrackCollection> trackCollectionHandle; iEvent.getByLabel(TrackCollectionTag_, trackCollectionHandle); //======================================================= // Retrieve offline vartex information (only for reco) //======================================================= edm::Handle<reco::VertexCollection> vertices; try { iEvent.getByLabel("offlinePrimaryVertices", vertices); } catch (...) { if(debug_) cout << "No offlinePrimaryVertices found!" << endl; } if ( vertices.isValid() ) { xOfflineVertex_ = (*vertices)[0].x(); yOfflineVertex_ = (*vertices)[0].y(); zOfflineVertex_ = (*vertices)[0].z(); } unsigned int vertexCollectionSize = vertices.product()->size(); int nvvertex = 0; for (unsigned int i=0; i<vertexCollectionSize; i++) { const reco::Vertex& vertex = vertices->at(i); if (vertex.isValid()) nvvertex++; } nOfflineVertices_ = nvvertex; if ( vertices->size() && useTracksFromRecoVtx_ ) { double sumpt = 0; size_t ntracks = 0; double chi2ndf = 0.; double chi2prob = 0.; if (!vertices->at(0).isFake()) { reco::Vertex pv = vertices->at(0); ntracks = pv.tracksSize(); chi2ndf = pv.normalizedChi2(); chi2prob = TMath::Prob(pv.chi2(),(int)pv.ndof()); h_recoVtxNtracks_->Fill(ntracks); h_recoVtxChi2ndf_->Fill(chi2ndf); h_recoVtxChi2Prob_->Fill(chi2prob); for (reco::Vertex::trackRef_iterator itrk = pv.tracks_begin();itrk != pv.tracks_end(); ++itrk) { double pt = (**itrk).pt(); sumpt += pt*pt; const math::XYZPoint myVertex(pv.position().x(),pv.position().y(),pv.position().z()); double dxyRes = (**itrk).dxy(myVertex); double dzRes = (**itrk).dz(myVertex); double dxy_err = (**itrk).dxyError(); double dz_err = (**itrk).dzError(); float_t trackphi = ((**itrk).phi())*(180/TMath::Pi()); float_t tracketa = (**itrk).eta(); for(Int_t i=0; i<nBins_; i++){ float phiF = (-TMath::Pi()+i*phipitch_)*(180/TMath::Pi()); float phiL = (-TMath::Pi()+(i+1)*phipitch_)*(180/TMath::Pi()); float etaF=-2.5+i*etapitch_; float etaL=-2.5+(i+1)*etapitch_; if(trackphi >= phiF && trackphi < phiL ){ a_dxyPhiBiasResiduals[i]->Fill(dxyRes*cmToum); a_dzPhiBiasResiduals[i]->Fill(dzRes*cmToum); n_dxyPhiBiasResiduals[i]->Fill((dxyRes)/dxy_err); n_dzPhiBiasResiduals[i]->Fill((dzRes)/dz_err); for(Int_t j=0; j<nBins_; j++){ float etaJ=-2.5+j*etapitch_; float etaK=-2.5+(j+1)*etapitch_; if(tracketa >= etaJ && tracketa < etaK ){ a_dxyBiasResidualsMap[i][j]->Fill(dxyRes*cmToum); a_dzBiasResidualsMap[i][j]->Fill(dzRes*cmToum); n_dxyBiasResidualsMap[i][j]->Fill((dxyRes)/dxy_err); n_dzBiasResidualsMap[i][j]->Fill((dzRes)/dz_err); } } } if(tracketa >= etaF && tracketa < etaL ){ a_dxyEtaBiasResiduals[i]->Fill(dxyRes*cmToum); a_dzEtaBiasResiduals[i]->Fill(dzRes*cmToum); n_dxyEtaBiasResiduals[i]->Fill((dxyRes)/dxy_err); n_dzEtaBiasResiduals[i]->Fill((dzRes)/dz_err); } } } h_recoVtxSumPt_->Fill(sumpt); } } //======================================================= // Retrieve Beamspot information //======================================================= reco::BeamSpot beamSpot; edm::Handle<reco::BeamSpot> beamSpotHandle; iEvent.getByLabel("offlineBeamSpot", beamSpotHandle); if ( beamSpotHandle.isValid() ) { beamSpot = *beamSpotHandle; BSx0_ = beamSpot.x0(); BSy0_ = beamSpot.y0(); BSz0_ = beamSpot.z0(); Beamsigmaz_ = beamSpot.sigmaZ(); Beamdxdz_ = beamSpot.dxdz(); BeamWidthX_ = beamSpot.BeamWidthX(); BeamWidthY_ = beamSpot.BeamWidthY(); } else { if(debug_) cout << "No BeamSpot found!" << endl; } if(debug_) std::cout<<"Beamspot x:"<<BSx0_<<" y:"<<BSy0_<<" z:"<<BSz0_<<std::endl; //double sigmaz = beamSpot.sigmaZ(); //double dxdz = beamSpot.dxdz(); //double BeamWidth = beamSpot.BeamWidth(); //======================================================= // Starts here ananlysis //======================================================= RunNumber_=iEvent.eventAuxiliary().run(); LuminosityBlockNumber_=iEvent.eventAuxiliary().luminosityBlock(); EventNumber_=iEvent.eventAuxiliary().id().event(); if(debug_) std::cout<<"PrimaryVertexValidation::analyze() looping over "<<trackCollectionHandle->size()<< "tracks." <<std::endl; //====================================================== // Interface RECO tracks to vertex reconstruction //====================================================== std::vector<reco::TransientTrack> t_tks; unsigned int k = 0; for(reco::TrackCollection::const_iterator track = trackCollectionHandle->begin(); track!= trackCollectionHandle->end(); ++track, ++k){ reco::TrackRef trackref(trackCollectionHandle,k); reco::TransientTrack theTTRef = reco::TransientTrack(trackref, &*theMGField, theTrackingGeometry ); t_tks.push_back(theTTRef); } if(debug_) {cout << "PrimaryVertexValidation" << "Found: " << t_tks.size() << " reconstructed tracks" << "\n"; } //====================================================== // select the tracks //====================================================== std::vector<reco::TransientTrack> seltks = theTrackFilter_->select(t_tks); //====================================================== // clusterize tracks in Z //====================================================== vector< vector<reco::TransientTrack> > clusters = theTrackClusterizer_->clusterize(seltks); if (debug_){ cout << " clustering returned "<< clusters.size() << " clusters from " << t_tks.size() << " selected tracks" <<endl; } nClus_=clusters.size(); //====================================================== // Starts loop on clusters //====================================================== for (vector< vector<reco::TransientTrack> >::const_iterator iclus = clusters.begin(); iclus != clusters.end(); iclus++) { nTracksPerClus_=0; unsigned int i = 0; for(vector<reco::TransientTrack>::const_iterator theTrack = iclus->begin(); theTrack!= iclus->end(); ++theTrack, ++i) { if ( nTracks_ >= nMaxtracks_ ) { std::cout << " PrimaryVertexValidation::analyze() : Warning - Number of tracks: " << nTracks_ << " , greater than " << nMaxtracks_ << std::endl; continue; } pt_[nTracks_] = theTrack->track().pt(); p_[nTracks_] = theTrack->track().p(); nhits_[nTracks_] = theTrack->track().numberOfValidHits(); eta_[nTracks_] = theTrack->track().eta(); theta_[nTracks_] = theTrack->track().theta(); phi_[nTracks_] = theTrack->track().phi(); chi2_[nTracks_] = theTrack->track().chi2(); chi2ndof_[nTracks_] = theTrack->track().normalizedChi2(); charge_[nTracks_] = theTrack->track().charge(); qoverp_[nTracks_] = theTrack->track().qoverp(); dz_[nTracks_] = theTrack->track().dz(); dxy_[nTracks_] = theTrack->track().dxy(); reco::TrackBase::TrackQuality _trackQuality = reco::TrackBase::qualityByName("highPurity"); isHighPurity_[nTracks_] = theTrack->track().quality(_trackQuality); math::XYZPoint point(beamSpot.x0(),beamSpot.y0(), beamSpot.z0()); dxyBs_[nTracks_] = theTrack->track().dxy(point); dzBs_[nTracks_] = theTrack->track().dz(point); xPCA_[nTracks_] = theTrack->track().vertex().x(); yPCA_[nTracks_] = theTrack->track().vertex().y(); zPCA_[nTracks_] = theTrack->track().vertex().z(); //======================================================= // Retrieve rechit information //======================================================= int nRecHit1D =0; int nRecHit2D =0; int nhitinTIB =0; int nhitinTOB =0; int nhitinTID =0; int nhitinTEC =0; int nhitinBPIX=0; int nhitinFPIX=0; for (trackingRecHit_iterator iHit = theTrack->recHitsBegin(); iHit != theTrack->recHitsEnd(); ++iHit) { if((*iHit)->isValid()) { if (this->isHit2D(**iHit)) {++nRecHit2D;} else {++nRecHit1D; } int type =(*iHit)->geographicalId().subdetId(); if(type==int(StripSubdetector::TIB)){++nhitinTIB;} if(type==int(StripSubdetector::TOB)){++nhitinTOB;} if(type==int(StripSubdetector::TID)){++nhitinTID;} if(type==int(StripSubdetector::TEC)){++nhitinTEC;} if(type==int( kBPIX)){++nhitinBPIX;} if(type==int( kFPIX)){++nhitinFPIX;} } } nhits1D_[nTracks_] = nRecHit1D; nhits2D_[nTracks_] = nRecHit2D; nhitsBPIX_[nTracks_] = nhitinBPIX; nhitsFPIX_[nTracks_] = nhitinFPIX; nhitsTIB_[nTracks_] = nhitinTIB; nhitsTID_[nTracks_] = nhitinTID; nhitsTOB_[nTracks_] = nhitinTOB; nhitsTEC_[nTracks_] = nhitinTEC; //======================================================= // Good tracks for vertexing selection //======================================================= bool pass = true; if(askFirstLayerHit_) pass = this->hasFirstLayerPixelHits((*theTrack)); if (pass){ isGoodTrack_[nTracks_]=1; } //======================================================= // Fit unbiased vertex //======================================================= vector<reco::TransientTrack> theFinalTracks; theFinalTracks.clear(); for(vector<reco::TransientTrack>::const_iterator tk = iclus->begin(); tk!= iclus->end(); ++tk){ pass = this->hasFirstLayerPixelHits((*tk)); if (pass){ if( tk == theTrack ) continue; else { theFinalTracks.push_back((*tk)); } } } if(theFinalTracks.size() > 2){ if(debug_) std::cout <<"PrimaryVertexValidation::analyze() :Transient Track Collection size: "<<theFinalTracks.size()<<std::endl; try{ VertexFitter<5>* fitter = new AdaptiveVertexFitter; TransientVertex theFittedVertex = fitter->vertex(theFinalTracks); if(theFittedVertex.isValid ()){ if(theFittedVertex.hasTrackWeight()){ for(size_t rtracks= 0; rtracks < theFinalTracks.size(); rtracks++){ sumOfWeightsUnbiasedVertex_[nTracks_] += theFittedVertex.trackWeight(theFinalTracks[rtracks]); } } const math::XYZPoint theRecoVertex(xOfflineVertex_,yOfflineVertex_,zOfflineVertex_); const math::XYZPoint myVertex(theFittedVertex.position().x(),theFittedVertex.position().y(),theFittedVertex.position().z()); hasRecVertex_[nTracks_] = 1; xUnbiasedVertex_[nTracks_] = theFittedVertex.position().x(); yUnbiasedVertex_[nTracks_] = theFittedVertex.position().y(); zUnbiasedVertex_[nTracks_] = theFittedVertex.position().z(); chi2normUnbiasedVertex_[nTracks_] = theFittedVertex.normalisedChiSquared(); chi2UnbiasedVertex_[nTracks_] = theFittedVertex.totalChiSquared(); DOFUnbiasedVertex_[nTracks_] = theFittedVertex.degreesOfFreedom(); tracksUsedForVertexing_[nTracks_] = theFinalTracks.size(); h_fitVtxNtracks_->Fill(theFinalTracks.size()); h_fitVtxChi2_->Fill(theFittedVertex.totalChiSquared()); h_fitVtxNdof_->Fill(theFittedVertex.degreesOfFreedom()); h_fitVtxChi2ndf_->Fill(theFittedVertex.normalisedChiSquared()); h_fitVtxChi2Prob_->Fill(TMath::Prob(theFittedVertex.totalChiSquared(),(int)theFittedVertex.degreesOfFreedom())); dszFromMyVertex_[nTracks_] = theTrack->track().dsz(myVertex); dxyFromMyVertex_[nTracks_] = theTrack->track().dxy(myVertex); dzFromMyVertex_[nTracks_] = theTrack->track().dz(myVertex); double dz_err = hypot(theTrack->track().dzError(),theFittedVertex.positionError().czz()); // PV2D // std::pair<bool,Measurement1D> ip2dpv = absoluteTransverseImpactParameter(*theTrack,theFittedVertex); // double ip2d_corr = ip2dpv.second.value(); // double ip2d_err = ip2dpv.second.error(); std::pair<bool,Measurement1D> s_ip2dpv = signedTransverseImpactParameter(*theTrack,GlobalVector(theTrack->track().px(), theTrack->track().py(), theTrack->track().pz()), theFittedVertex); // double s_ip2dpv_corr = s_ip2dpv.second.value(); double s_ip2dpv_err = s_ip2dpv.second.error(); // PV3D // std::pair<bool,Measurement1D> ip3dpv = absoluteImpactParameter3D(*theTrack,theFittedVertex); // double ip3d_corr = ip3dpv.second.value(); // double ip3d_err = ip3dpv.second.error(); // std::pair<bool,Measurement1D> s_ip3dpv = // signedImpactParameter3D(*theTrack,GlobalVector(theTrack->track().px(), // theTrack->track().py(), // theTrack->track().pz()), // theFittedVertex); // double s_ip3dpv_corr = s_ip3dpv.second.value(); // double s_ip3dpv_err = s_ip3dpv.second.error(); dxyErrorFromMyVertex_[nTracks_] = s_ip2dpv_err; dzErrorFromMyVertex_[nTracks_] = dz_err; IPTsigFromMyVertex_[nTracks_] = (theTrack->track().dxy(myVertex))/s_ip2dpv_err; IPLsigFromMyVertex_[nTracks_] = (theTrack->track().dz(myVertex))/dz_err; // fill directly the histograms of residuals float_t trackphi = (theTrack->track().phi())*(180/TMath::Pi()); float_t tracketa = theTrack->track().eta(); float_t trackpt = theTrack->track().pt(); // checks on the probe track quality if(trackpt >= ptOfProbe_ && fabs(tracketa)<= etaOfProbe_){ h_probePt_->Fill(theTrack->track().pt()); h_probeEta_->Fill(theTrack->track().eta()); h_probePhi_->Fill(theTrack->track().phi()); h_probeChi2_->Fill(theTrack->track().chi2()); h_probeNormChi2_->Fill(theTrack->track().normalizedChi2()); h_probeCharge_->Fill(theTrack->track().charge()); h_probeQoverP_->Fill(theTrack->track().qoverp()); h_probedz_->Fill(theTrack->track().dz(theRecoVertex)); h_probedxy_->Fill((theTrack->track().dxy(theRecoVertex))); h_probeHits_->Fill(theTrack->track().numberOfValidHits()); h_probeHits1D_->Fill(nRecHit1D); h_probeHits2D_->Fill(nRecHit2D); h_probeHitsInTIB_->Fill(nhitinBPIX); h_probeHitsInTOB_->Fill(nhitinFPIX); h_probeHitsInTID_->Fill(nhitinTIB); h_probeHitsInTEC_->Fill(nhitinTID); h_probeHitsInBPIX_->Fill(nhitinTOB); h_probeHitsInFPIX_->Fill(nhitinTEC); for(Int_t i=0; i<nBins_; i++){ float phiF = (-TMath::Pi()+i*phipitch_)*(180/TMath::Pi()); float phiL = (-TMath::Pi()+(i+1)*phipitch_)*(180/TMath::Pi()); float etaF=-2.5+i*etapitch_; float etaL=-2.5+(i+1)*etapitch_; if(trackphi >= phiF && trackphi < phiL ){ a_dxyPhiResiduals[i]->Fill(theTrack->track().dxy(myVertex)*cmToum); a_dzPhiResiduals[i]->Fill(theTrack->track().dz(myVertex)*cmToum); n_dxyPhiResiduals[i]->Fill((theTrack->track().dxy(myVertex))/s_ip2dpv_err); n_dzPhiResiduals[i]->Fill((theTrack->track().dz(myVertex))/dz_err); for(Int_t j=0; j<nBins_; j++){ float etaJ=-2.5+j*etapitch_; float etaK=-2.5+(j+1)*etapitch_; if(tracketa >= etaJ && tracketa < etaK ){ a_dxyResidualsMap[i][j]->Fill(theTrack->track().dxy(myVertex)*cmToum); a_dzResidualsMap[i][j]->Fill(theTrack->track().dz(myVertex)*cmToum); n_dxyResidualsMap[i][j]->Fill((theTrack->track().dxy(myVertex))/s_ip2dpv_err); n_dzResidualsMap[i][j]->Fill((theTrack->track().dz(myVertex))/dz_err); } } } if(tracketa >= etaF && tracketa < etaL ){ a_dxyEtaResiduals[i]->Fill(theTrack->track().dxy(myVertex)*cmToum); a_dzEtaResiduals[i]->Fill(theTrack->track().dz(myVertex)*cmToum); n_dxyEtaResiduals[i]->Fill((theTrack->track().dxy(myVertex))/s_ip2dpv_err); n_dzEtaResiduals[i]->Fill((theTrack->track().dz(myVertex))/dz_err); } } } if(debug_){ std::cout<<"PrimaryVertexValidation::analyze() : myVertex.x()= "<<myVertex.x()<<" myVertex.y()= "<<myVertex.y()<<" theFittedVertex.z()= "<<myVertex.z()<<std::endl; std::cout<<"PrimaryVertexValidation::analyze() : theTrack->track().dz(myVertex)= "<<theTrack->track().dz(myVertex)<<std::endl; std::cout<<"PrimaryVertexValidation::analyze() : zPCA -myVertex.z() = "<<(theTrack->track().vertex().z() -myVertex.z() )<<std::endl; }// ends if debug_ } // ends if the fitted vertex is Valid delete fitter; } catch ( cms::Exception& er ) { LogTrace("PrimaryVertexValidation::analyze RECO")<<"caught std::exception "<<er.what()<<std::endl; } } //ends if theFinalTracks.size() > 2 else { if(debug_) std::cout << "PrimaryVertexValidation::analyze() :Not enough tracks to make a vertex. Returns no vertex info" << std::endl; } ++nTracks_; ++nTracksPerClus_; if(debug_) cout<< "Track "<<i<<" : pT = "<<theTrack->track().pt()<<endl; }// for loop on tracks } // for loop on track clusters // Fill the TTree if needed if(storeNtuple_){ rootTree_->Fill(); } }
double PrimaryVertexValidation::approximateTrackError | ( | const GlobalPoint & | refPoint, |
const GlobalPoint & | dcaPosition, | ||
const GlobalVector & | tangent, | ||
const AlgebraicMatrix33 & | covMatrix | ||
) | [private] |
void PrimaryVertexValidation::beginJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 689 of file PrimaryVertexValidation.cc.
References a_dxyBiasResidualsMap, a_dxyEtaBiasResiduals, a_dxyEtaMADBiasTrend, a_dxyEtaMADTrend, a_dxyEtaMeanBiasTrend, a_dxyEtaMeanTrend, a_dxyEtaMedianBiasTrend, a_dxyEtaMedianTrend, a_dxyEtaResiduals, a_dxyEtaWidthBiasTrend, a_dxyEtaWidthTrend, a_dxyMeanBiasMap, a_dxyMeanMap, a_dxyPhiBiasResiduals, a_dxyPhiMADBiasTrend, a_dxyPhiMADTrend, a_dxyPhiMeanBiasTrend, a_dxyPhiMeanTrend, a_dxyPhiMedianBiasTrend, a_dxyPhiMedianTrend, a_dxyPhiResiduals, a_dxyPhiWidthBiasTrend, a_dxyPhiWidthTrend, a_dxyResidualsMap, a_dxyWidthBiasMap, a_dxyWidthMap, a_dzBiasResidualsMap, a_dzEtaBiasResiduals, a_dzEtaMADBiasTrend, a_dzEtaMADTrend, a_dzEtaMeanBiasTrend, a_dzEtaMeanTrend, a_dzEtaMedianBiasTrend, a_dzEtaMedianTrend, a_dzEtaResiduals, a_dzEtaWidthBiasTrend, a_dzEtaWidthTrend, a_dzMeanBiasMap, a_dzMeanMap, a_dzPhiBiasResiduals, a_dzPhiMADBiasTrend, a_dzPhiMADTrend, a_dzPhiMeanBiasTrend, a_dzPhiMeanTrend, a_dzPhiMedianBiasTrend, a_dzPhiMedianTrend, a_dzPhiResiduals, a_dzPhiWidthBiasTrend, a_dzPhiWidthTrend, a_dzResidualsMap, a_dzWidthBiasMap, a_dzWidthMap, Beamdxdz_, Beamsigmaz_, BeamWidthX_, BeamWidthY_, BSx0_, BSy0_, BSz0_, charge_, chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2UnbiasedVertex_, DOFUnbiasedVertex_, dszFromMyVertex_, dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, dz_, dzBs_, dzErrorFromMyVertex_, dzFromMyVertex_, eta_, etapitch_, EventNumber_, h_fitVtxChi2_, h_fitVtxChi2ndf_, h_fitVtxChi2Prob_, h_fitVtxNdof_, h_fitVtxNtracks_, h_probeCharge_, h_probeChi2_, h_probedxy_, h_probedz_, h_probeEta_, h_probeHits1D_, h_probeHits2D_, h_probeHits_, h_probeHitsInBPIX_, h_probeHitsInFPIX_, h_probeHitsInTEC_, h_probeHitsInTIB_, h_probeHitsInTID_, h_probeHitsInTOB_, h_probeNormChi2_, h_probePhi_, h_probePt_, h_probeQoverP_, h_recoVtxChi2ndf_, h_recoVtxChi2Prob_, h_recoVtxNtracks_, h_recoVtxSumPt_, hasRecVertex_, i, IPLsigFromMyVertex_, IPTsigFromMyVertex_, isGoodTrack_, isHighPurity_, j, lightNtupleSwitch_, LuminosityBlockNumber_, TFileDirectory::make(), n_dxyBiasResidualsMap, n_dxyEtaBiasResiduals, n_dxyEtaMADBiasTrend, n_dxyEtaMADTrend, n_dxyEtaMeanBiasTrend, n_dxyEtaMeanTrend, n_dxyEtaMedianBiasTrend, n_dxyEtaMedianTrend, n_dxyEtaResiduals, n_dxyEtaWidthBiasTrend, n_dxyEtaWidthTrend, n_dxyMeanBiasMap, n_dxyMeanMap, n_dxyPhiBiasResiduals, n_dxyPhiMADBiasTrend, n_dxyPhiMADTrend, n_dxyPhiMeanBiasTrend, n_dxyPhiMeanTrend, n_dxyPhiMedianBiasTrend, n_dxyPhiMedianTrend, n_dxyPhiResiduals, n_dxyPhiWidthBiasTrend, n_dxyPhiWidthTrend, n_dxyResidualsMap, n_dxyWidthBiasMap, n_dxyWidthMap, n_dzBiasResidualsMap, n_dzEtaBiasResiduals, n_dzEtaMADBiasTrend, n_dzEtaMADTrend, n_dzEtaMeanBiasTrend, n_dzEtaMeanTrend, n_dzEtaMedianBiasTrend, n_dzEtaMedianTrend, n_dzEtaResiduals, n_dzEtaWidthBiasTrend, n_dzEtaWidthTrend, n_dzMeanBiasMap, n_dzMeanMap, n_dzPhiBiasResiduals, n_dzPhiMADBiasTrend, n_dzPhiMADTrend, n_dzPhiMeanBiasTrend, n_dzPhiMeanTrend, n_dzPhiMedianBiasTrend, n_dzPhiMedianTrend, n_dzPhiResiduals, n_dzPhiWidthBiasTrend, n_dzPhiWidthTrend, n_dzResidualsMap, n_dzWidthBiasMap, n_dzWidthMap, nBins_, nClus_, Nevt_, nhits1D_, nhits2D_, nhits_, nhitsBPIX_, nhitsFPIX_, nhitsTEC_, nhitsTIB_, nhitsTID_, nhitsTOB_, nOfflineVertices_, nTracks_, nTracksPerClus_, p_, phi_, phipitch_, Pi, pt_, qoverp_, rootTree_, RunNumber_, sumOfWeightsUnbiasedVertex_, theta_, tracksUsedForVertexing_, useTracksFromRecoVtx_, xOfflineVertex_, xPCA_, xUnbiasedVertex_, yOfflineVertex_, yPCA_, yUnbiasedVertex_, zOfflineVertex_, zPCA_, and zUnbiasedVertex_.
{ edm::LogInfo("beginJob") << "Begin Job" << std::endl; // Define TTree for output Nevt_ = 0; // rootFile_ = new TFile(filename_.c_str(),"recreate"); edm::Service<TFileService> fs; rootTree_ = fs->make<TTree>("tree","PV Validation tree"); // Track Paramters if(lightNtupleSwitch_){ rootTree_->Branch("EventNumber",&EventNumber_,"EventNumber/i"); rootTree_->Branch("RunNumber",&RunNumber_,"RunNumber/i"); rootTree_->Branch("LuminosityBlockNumber",&LuminosityBlockNumber_,"LuminosityBlockNumber/i"); rootTree_->Branch("nOfflineVertices",&nOfflineVertices_,"nOfflineVertices/I"); rootTree_->Branch("nTracks",&nTracks_,"nTracks/I"); rootTree_->Branch("phi",&phi_,"phi[nTracks]/D"); rootTree_->Branch("eta",&eta_,"eta[nTracks]/D"); rootTree_->Branch("pt",&pt_,"pt[nTracks]/D"); rootTree_->Branch("dxyFromMyVertex",&dxyFromMyVertex_,"dxyFromMyVertex[nTracks]/D"); rootTree_->Branch("dzFromMyVertex",&dzFromMyVertex_,"dzFromMyVertex[nTracks]/D"); rootTree_->Branch("IPTsigFromMyVertex",&IPTsigFromMyVertex_,"IPTsigFromMyVertex_[nTracks]/D"); rootTree_->Branch("IPLsigFromMyVertex",&IPLsigFromMyVertex_,"IPLsigFromMyVertex_[nTracks]/D"); rootTree_->Branch("hasRecVertex",&hasRecVertex_,"hasRecVertex[nTracks]/I"); rootTree_->Branch("isGoodTrack",&isGoodTrack_,"isGoodTrack[nTracks]/I"); rootTree_->Branch("isHighPurity",&isHighPurity_,"isHighPurity_[nTracks]/I"); } else { rootTree_->Branch("nTracks",&nTracks_,"nTracks/I"); rootTree_->Branch("nTracksPerClus",&nTracksPerClus_,"nTracksPerClus/I"); rootTree_->Branch("nClus",&nClus_,"nClus/I"); rootTree_->Branch("xOfflineVertex",&xOfflineVertex_,"xOfflineVertex/D"); rootTree_->Branch("yOfflineVertex",&yOfflineVertex_,"yOfflineVertex/D"); rootTree_->Branch("zOfflineVertex",&zOfflineVertex_,"zOfflineVertex/D"); rootTree_->Branch("BSx0",&BSx0_,"BSx0/D"); rootTree_->Branch("BSy0",&BSy0_,"BSy0/D"); rootTree_->Branch("BSz0",&BSz0_,"BSz0/D"); rootTree_->Branch("Beamsigmaz",&Beamsigmaz_,"Beamsigmaz/D"); rootTree_->Branch("Beamdxdz",&Beamdxdz_,"Beamdxdz/D"); rootTree_->Branch("BeamWidthX",&BeamWidthX_,"BeamWidthX/D"); rootTree_->Branch("BeamWidthY",&BeamWidthY_,"BeamWidthY/D"); rootTree_->Branch("pt",&pt_,"pt[nTracks]/D"); rootTree_->Branch("p",&p_,"p[nTracks]/D"); rootTree_->Branch("nhits",&nhits_,"nhits[nTracks]/I"); rootTree_->Branch("nhits1D",&nhits1D_,"nhits1D[nTracks]/I"); rootTree_->Branch("nhits2D",&nhits2D_,"nhits2D[nTracks]/I"); rootTree_->Branch("nhitsBPIX",&nhitsBPIX_,"nhitsBPIX[nTracks]/I"); rootTree_->Branch("nhitsFPIX",&nhitsFPIX_,"nhitsFPIX[nTracks]/I"); rootTree_->Branch("nhitsTIB",&nhitsTIB_,"nhitsTIB[nTracks]/I"); rootTree_->Branch("nhitsTID",&nhitsTID_,"nhitsTID[nTracks]/I"); rootTree_->Branch("nhitsTOB",&nhitsTOB_,"nhitsTOB[nTracks]/I"); rootTree_->Branch("nhitsTEC",&nhitsTEC_,"nhitsTEC[nTracks]/I"); rootTree_->Branch("eta",&eta_,"eta[nTracks]/D"); rootTree_->Branch("theta",&theta_,"theta[nTracks]/D"); rootTree_->Branch("phi",&phi_,"phi[nTracks]/D"); rootTree_->Branch("chi2",&chi2_,"chi2[nTracks]/D"); rootTree_->Branch("chi2ndof",&chi2ndof_,"chi2ndof[nTracks]/D"); rootTree_->Branch("charge",&charge_,"charge[nTracks]/I"); rootTree_->Branch("qoverp",&qoverp_,"qoverp[nTracks]/D"); rootTree_->Branch("dz",&dz_,"dz[nTracks]/D"); rootTree_->Branch("dxy",&dxy_,"dxy[nTracks]/D"); rootTree_->Branch("dzBs",&dzBs_,"dzBs[nTracks]/D"); rootTree_->Branch("dxyBs",&dxyBs_,"dxyBs[nTracks]/D"); rootTree_->Branch("xPCA",&xPCA_,"xPCA[nTracks]/D"); rootTree_->Branch("yPCA",&yPCA_,"yPCA[nTracks]/D"); rootTree_->Branch("zPCA",&zPCA_,"zPCA[nTracks]/D"); rootTree_->Branch("xUnbiasedVertex",&xUnbiasedVertex_,"xUnbiasedVertex[nTracks]/D"); rootTree_->Branch("yUnbiasedVertex",&yUnbiasedVertex_,"yUnbiasedVertex[nTracks]/D"); rootTree_->Branch("zUnbiasedVertex",&zUnbiasedVertex_,"zUnbiasedVertex[nTracks]/D"); rootTree_->Branch("chi2normUnbiasedVertex",&chi2normUnbiasedVertex_,"chi2normUnbiasedVertex[nTracks]/F"); rootTree_->Branch("chi2UnbiasedVertex",&chi2UnbiasedVertex_,"chi2UnbiasedVertex[nTracks]/F"); rootTree_->Branch("DOFUnbiasedVertex",&DOFUnbiasedVertex_," DOFUnbiasedVertex[nTracks]/F"); rootTree_->Branch("sumOfWeightsUnbiasedVertex",&sumOfWeightsUnbiasedVertex_,"sumOfWeightsUnbiasedVertex[nTracks]/F"); rootTree_->Branch("tracksUsedForVertexing",&tracksUsedForVertexing_,"tracksUsedForVertexing[nTracks]/I"); rootTree_->Branch("dxyFromMyVertex",&dxyFromMyVertex_,"dxyFromMyVertex[nTracks]/D"); rootTree_->Branch("dzFromMyVertex",&dzFromMyVertex_,"dzFromMyVertex[nTracks]/D"); rootTree_->Branch("dszFromMyVertex",&dszFromMyVertex_,"dszFromMyVertex[nTracks]/D"); rootTree_->Branch("dxyErrorFromMyVertex",&dxyErrorFromMyVertex_,"dxyErrorFromMyVertex_[nTracks]/D"); rootTree_->Branch("dzErrorFromMyVertex",&dzErrorFromMyVertex_,"dzErrorFromMyVertex_[nTracks]/D"); rootTree_->Branch("IPTsigFromMyVertex",&IPTsigFromMyVertex_,"IPTsigFromMyVertex_[nTracks]/D"); rootTree_->Branch("IPLsigFromMyVertex",&IPLsigFromMyVertex_,"IPLsigFromMyVertex_[nTracks]/D"); rootTree_->Branch("hasRecVertex",&hasRecVertex_,"hasRecVertex[nTracks]/I"); rootTree_->Branch("isGoodTrack",&isGoodTrack_,"isGoodTrack[nTracks]/I"); } // probe track histograms TFileDirectory ProbeFeatures = fs->mkdir("ProbeTrackFeatures"); h_probePt_ = ProbeFeatures.make<TH1F>("h_probePt","p_{T} of probe track;track p_{T} (GeV); tracks",100,0.,50.); h_probeEta_ = ProbeFeatures.make<TH1F>("h_probeEta","#eta of probe track;track #eta; tracks",54,-2.7,2.7); h_probePhi_ = ProbeFeatures.make<TH1F>("h_probePhi","#phi of probe track;track #phi [rad]; tracks",100,-3.15,3.15); h_probeChi2_ = ProbeFeatures.make<TH1F>("h_probeChi2","#chi^{2} of probe track;track #chi^{2}; tracks",100,0.,100.); h_probeNormChi2_ = ProbeFeatures.make<TH1F>("h_probeNormChi2"," normalized #chi^{2} of probe track;track #chi^{2}/ndof; tracks",100,0.,10.); h_probeCharge_ = ProbeFeatures.make<TH1F>("h_probeCharge","charge of profe track;track charge Q;tracks",3,-1.5,1.5); h_probeQoverP_ = ProbeFeatures.make<TH1F>("h_probeQoverP","q/p of probe track; track Q/p (GeV^{-1})",200,-1.,1.); h_probedz_ = ProbeFeatures.make<TH1F>("h_probedz","d_{z} of probe track;track d_{z} (cm);tracks",100,-5.,5.); h_probedxy_ = ProbeFeatures.make<TH1F>("h_probedxy","d_{xy} of probe track;track d_{xy} (#mum);tracks",200,-1.,1.); h_probeHits_ = ProbeFeatures.make<TH1F>("h_probeNRechits" ,"N_{hits} ;N_{hits} ;tracks",40,-0.5,39.5); h_probeHits1D_ = ProbeFeatures.make<TH1F>("h_probeNRechits1D" ,"N_{hits} 1D ;N_{hits} 1D ;tracks",40,-0.5,39.5); h_probeHits2D_ = ProbeFeatures.make<TH1F>("h_probeNRechits2D" ,"N_{hits} 2D ;N_{hits} 2D ;tracks",40,-0.5,39.5); h_probeHitsInTIB_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTIB" ,"N_{hits} TIB ;N_{hits} TIB;tracks",40,-0.5,39.5); h_probeHitsInTOB_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTOB" ,"N_{hits} TOB ;N_{hits} TOB;tracks",40,-0.5,39.5); h_probeHitsInTID_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTID" ,"N_{hits} TID ;N_{hits} TID;tracks",40,-0.5,39.5); h_probeHitsInTEC_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTEC" ,"N_{hits} TEC ;N_{hits} TEC;tracks",40,-0.5,39.5); h_probeHitsInBPIX_ = ProbeFeatures.make<TH1F>("h_probeNRechitsBPIX","N_{hits} BPIX;N_{hits} BPIX;tracks",40,-0.5,39.5); h_probeHitsInFPIX_ = ProbeFeatures.make<TH1F>("h_probeNRechitsFPIX","N_{hits} FPIX;N_{hits} FPIX;tracks",40,-0.5,39.5); TFileDirectory RefitVertexFeatures = fs->mkdir("RefitVertexFeatures"); h_fitVtxNtracks_ = RefitVertexFeatures.make<TH1F>("h_fitVtxNtracks" ,"N^{vtx}_{trks};N^{vtx}_{trks};vertices" ,100,-0.5,99.5); h_fitVtxNdof_ = RefitVertexFeatures.make<TH1F>("h_fitVtxNdof" ,"N^{vtx}_{DOF};N^{vtx}_{DOF};vertices" ,100,-0.5,99.5); h_fitVtxChi2_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2" ,"#chi^{2} vtx;#chi^{2} vtx;vertices" ,100,-0.5,99.5); h_fitVtxChi2ndf_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2ndf" ,"#chi^{2}/ndf vtx;#chi^{2}/ndf vtx;vertices" ,100,-0.5,9.5); h_fitVtxChi2Prob_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2Prob" ,"Prob(#chi^{2},ndf);Prob(#chi^{2},ndf);vertices",40,0.,1.); if(useTracksFromRecoVtx_) { TFileDirectory RecoVertexFeatures = fs->mkdir("RecoVertexFeatures"); h_recoVtxNtracks_ = RecoVertexFeatures.make<TH1F>("h_recoVtxNtracks" ,"N^{vtx}_{trks};N^{vtx}_{trks};vertices" ,100,-0.5,99.5); h_recoVtxChi2ndf_ = RecoVertexFeatures.make<TH1F>("h_recoVtxChi2ndf" ,"#chi^{2}/ndf vtx;#chi^{2}/ndf vtx;vertices" ,10,-0.5,9.5); h_recoVtxChi2Prob_ = RecoVertexFeatures.make<TH1F>("h_recoVtxChi2Prob" ,"Prob(#chi^{2},ndf);Prob(#chi^{2},ndf);vertices",40,0.,1.); h_recoVtxSumPt_ = RecoVertexFeatures.make<TH1F>("h_recoVtxSumPt" ,"Sum(p^{trks}_{T});Sum(p^{trks}_{T});vertices" ,100,0.,200.); } // initialize the residuals histograms float dxymax_phi = 2000; float dzmax_phi = 2000; float dxymax_eta = 3000; float dzmax_eta = 3000; const Int_t mybins_ = 500; // // Usual plots from refitting the vertex // The vertex is refit without the probe track // TFileDirectory AbsTransPhiRes = fs->mkdir("Abs_Transv_Phi_Residuals"); TFileDirectory AbsTransEtaRes = fs->mkdir("Abs_Transv_Eta_Residuals"); TFileDirectory AbsLongPhiRes = fs->mkdir("Abs_Long_Phi_Residuals"); TFileDirectory AbsLongEtaRes = fs->mkdir("Abs_Long_Eta_Residuals"); TFileDirectory NormTransPhiRes = fs->mkdir("Norm_Transv_Phi_Residuals"); TFileDirectory NormTransEtaRes = fs->mkdir("Norm_Transv_Eta_Residuals"); TFileDirectory NormLongPhiRes = fs->mkdir("Norm_Long_Phi_Residuals"); TFileDirectory NormLongEtaRes = fs->mkdir("Norm_Long_Eta_Residuals"); TFileDirectory AbsDoubleDiffRes = fs->mkdir("Abs_DoubleDiffResiduals"); TFileDirectory NormDoubleDiffRes = fs->mkdir("Norm_DoubleDiffResiduals"); for ( int i=0; i<nBins_; ++i ) { float phiF = (-TMath::Pi()+i*phipitch_)*(180/TMath::Pi()); float phiL = (-TMath::Pi()+(i+1)*phipitch_)*(180/TMath::Pi()); float etaF=-2.5+i*etapitch_; float etaL=-2.5+(i+1)*etapitch_; a_dxyPhiResiduals[i] = AbsTransPhiRes.make<TH1F>(Form("histo_dxy_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy} [#mum];tracks",phiF,phiL),mybins_,-dxymax_phi,dxymax_phi); a_dxyEtaResiduals[i] = AbsTransEtaRes.make<TH1F>(Form("histo_dxy_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy} [#mum];tracks",etaF,etaL),mybins_,-dxymax_eta,dxymax_eta); a_dzPhiResiduals[i] = AbsLongPhiRes.make<TH1F>(Form("histo_dz_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f #circ;d_{z} [#mum];tracks",phiF,phiL),mybins_,-dzmax_phi,dzmax_phi); a_dzEtaResiduals[i] = AbsLongEtaRes.make<TH1F>(Form("histo_dz_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z} [#mum];tracks",etaF,etaL),mybins_,-dzmax_eta,dzmax_eta); n_dxyPhiResiduals[i] = NormTransPhiRes.make<TH1F>(Form("histo_norm_dxy_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",phiF,phiL),mybins_,-dxymax_phi/100.,dxymax_phi/100.); n_dxyEtaResiduals[i] = NormTransEtaRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",etaF,etaL),mybins_,-dxymax_eta/100.,dxymax_eta/100.); n_dzPhiResiduals[i] = NormLongPhiRes.make<TH1F>(Form("histo_norm_dz_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}} [#mum];tracks",phiF,phiL),mybins_,-dzmax_phi/100.,dzmax_phi/100.); n_dzEtaResiduals[i] = NormLongEtaRes.make<TH1F>(Form("histo_norm_dz_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z}/#sigma_{d_{z}} [#mum];tracks",etaF,etaL),mybins_,-dzmax_eta/100.,dzmax_eta/100.); for ( int j=0; j<nBins_; ++j ) { a_dxyResidualsMap[i][j] = AbsDoubleDiffRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta,dzmax_eta); a_dzResidualsMap[i][j] = AbsDoubleDiffRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta,dzmax_eta); n_dxyResidualsMap[i][j] = NormDoubleDiffRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta/100,dzmax_eta/100); n_dzResidualsMap[i][j] = NormDoubleDiffRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta/100,dzmax_eta/100); } } // declaration of the directories TFileDirectory MeanTrendsDir = fs->mkdir("MeanTrends"); TFileDirectory WidthTrendsDir = fs->mkdir("WidthTrends"); TFileDirectory MedianTrendsDir = fs->mkdir("MedianTrends"); TFileDirectory MADTrendsDir = fs->mkdir("MADTrends"); TFileDirectory Mean2DMapsDir = fs->mkdir("MeanMaps"); TFileDirectory Width2DMapsDir = fs->mkdir("WidthMaps"); Double_t highedge=nBins_-0.5; Double_t lowedge=-0.5; // means and widths from the fit a_dxyPhiMeanTrend = MeanTrendsDir.make<TH1F> ("means_dxy_phi","#LT d_{xy} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy} #GT [#mum]",nBins_,lowedge,highedge); a_dxyPhiWidthTrend = WidthTrendsDir.make<TH1F>("widths_dxy_phi","#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{xy}} [#mum]",nBins_,lowedge,highedge); a_dzPhiMeanTrend = MeanTrendsDir.make<TH1F> ("means_dz_phi","#LT d_{z} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z} #GT [#mum]",nBins_,lowedge,highedge); a_dzPhiWidthTrend = WidthTrendsDir.make<TH1F>("widths_dz_phi","#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{z}} [#mum]",nBins_,lowedge,highedge); a_dxyEtaMeanTrend = MeanTrendsDir.make<TH1F> ("means_dxy_eta","#LT d_{xy} #GT vs #eta sector;#eta (sector);#LT d_{xy} #GT [#mum]",nBins_,lowedge,highedge); a_dxyEtaWidthTrend = WidthTrendsDir.make<TH1F>("widths_dxy_eta","#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{xy}} [#mum]",nBins_,lowedge,highedge); a_dzEtaMeanTrend = MeanTrendsDir.make<TH1F> ("means_dz_eta","#LT d_{z} #GT vs #eta sector;#eta (sector);#LT d_{z} #GT [#mum]",nBins_,lowedge,highedge); a_dzEtaWidthTrend = WidthTrendsDir.make<TH1F>("widths_dz_eta","#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{z}} [#mum]",nBins_,lowedge,highedge); n_dxyPhiMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dxy_phi","#LT d_{xy}/#sigma_{d_{xy}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy}/#sigma_{d_{xy}} #GT",nBins_,lowedge,highedge); n_dxyPhiWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dxy_phi","width(d_{xy}/#sigma_{d_{xy}}) vs #phi sector;#varphi (sector) [degrees]; width(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dzPhiMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dz_phi","#LT d_{z}/#sigma_{d_{z}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dzPhiWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dz_phi","width(d_{z}/#sigma_{d_{z}}) vs #phi sector;#varphi (sector) [degrees];width(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dxy_eta","#LT d_{xy}/#sigma_{d_{xy}} #GT vs #eta sector;#eta (sector);#LT d_{xy}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dxyEtaWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dxy_eta","width(d_{xy}/#sigma_{d_{xy}}) vs #eta sector;#eta (sector);width(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dz_eta","#LT d_{z}/#sigma_{d_{z}} #GT vs #eta sector;#eta (sector);#LT d_{z}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dzEtaWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dz_eta","width(d_{z}/#sigma_{d_{z}}) vs #eta sector;#eta (sector);width(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); // 2D maps a_dxyMeanMap = Mean2DMapsDir.make<TH2F> ("means_dxy_map","#LT d_{xy} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dzMeanMap = Mean2DMapsDir.make<TH2F> ("means_dz_map","#LT d_{z} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dxyMeanMap = Mean2DMapsDir.make<TH2F> ("norm_means_dxy_map","#LT d_{xy}/#sigma_{d_{xy}} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dzMeanMap = Mean2DMapsDir.make<TH2F> ("norm_means_dz_map","#LT d_{z}/#sigma_{d_{z}} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dxyWidthMap = Width2DMapsDir.make<TH2F> ("widths_dxy_map","#sigma_{d_{xy}} map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dzWidthMap = Width2DMapsDir.make<TH2F> ("widths_dz_map","#sigma_{d_{z}} map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dxyWidthMap = Width2DMapsDir.make<TH2F> ("norm_widths_dxy_map","width(d_{xy}/#sigma_{d_{xy}}) map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dzWidthMap = Width2DMapsDir.make<TH2F> ("norm_widths_dz_map","width(d_{z}/#sigma_{d_{z}}) map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); // medians and MADs a_dxyPhiMedianTrend = MedianTrendsDir.make<TH1F>("medians_dxy_phi","Median of d_{xy} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dxyPhiMADTrend = MADTrendsDir.make<TH1F> ("MADs_dxy_phi","Median absolute deviation of d_{xy} vs #phi sector;#varphi (sector) [degrees];MAD(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dzPhiMedianTrend = MedianTrendsDir.make<TH1F>("medians_dz_phi","Median of d_{z} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dzPhiMADTrend = MADTrendsDir.make<TH1F> ("MADs_dz_phi","Median absolute deviation of d_{z} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dxyEtaMedianTrend = MedianTrendsDir.make<TH1F>("medians_dxy_eta","Median of d_{xy} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dxyEtaMADTrend = MADTrendsDir.make<TH1F> ("MADs_dxy_eta","Median absolute deviation of d_{xy} vs #eta sector;#eta (sector);MAD(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dzEtaMedianTrend = MedianTrendsDir.make<TH1F>("medians_dz_eta","Median of d_{z} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dzEtaMADTrend = MADTrendsDir.make<TH1F> ("MADs_dz_eta","Median absolute deviation of d_{z} vs #eta sector;#eta (sector);MAD(d_{z}) [#mum]",nBins_,lowedge,highedge); n_dxyPhiMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dxy_phi","Median of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dxyPhiMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dxy_phi","Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees]; MAD(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dzPhiMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dz_phi","Median of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzPhiMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dz_phi","Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dxy_eta","Median of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dxy_eta","Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);MAD(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dz_eta","Median of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dz_eta","Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);MAD(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); // // plots of biased residuals // The vertex is refit without the probe track // if (useTracksFromRecoVtx_){ TFileDirectory AbsTransPhiBiasRes = fs->mkdir("Abs_Transv_Phi_BiasResiduals"); TFileDirectory AbsTransEtaBiasRes = fs->mkdir("Abs_Transv_Eta_BiasResiduals"); TFileDirectory AbsLongPhiBiasRes = fs->mkdir("Abs_Long_Phi_BiasResiduals"); TFileDirectory AbsLongEtaBiasRes = fs->mkdir("Abs_Long_Eta_BiasResiduals"); TFileDirectory NormTransPhiBiasRes = fs->mkdir("Norm_Transv_Phi_BiasResiduals"); TFileDirectory NormTransEtaBiasRes = fs->mkdir("Norm_Transv_Eta_BiasResiduals"); TFileDirectory NormLongPhiBiasRes = fs->mkdir("Norm_Long_Phi_BiasResiduals"); TFileDirectory NormLongEtaBiasRes = fs->mkdir("Norm_Long_Eta_BiasResiduals"); TFileDirectory AbsDoubleDiffBiasRes = fs->mkdir("Abs_DoubleDiffBiasResiduals"); TFileDirectory NormDoubleDiffBiasRes = fs->mkdir("Norm_DoubleDiffBiasResiduals"); for ( int i=0; i<nBins_; ++i ) { float phiF = (-TMath::Pi()+i*phipitch_)*(180/TMath::Pi()); float phiL = (-TMath::Pi()+(i+1)*phipitch_)*(180/TMath::Pi()); float etaF=-2.5+i*etapitch_; float etaL=-2.5+(i+1)*etapitch_; a_dxyPhiBiasResiduals[i] = AbsTransPhiBiasRes.make<TH1F>(Form("histo_dxy_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy} [#mum];tracks",phiF,phiL),mybins_,-dxymax_phi,dxymax_phi); a_dxyEtaBiasResiduals[i] = AbsTransEtaBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy} [#mum];tracks",etaF,etaL),mybins_,-dxymax_eta,dxymax_eta); a_dzPhiBiasResiduals[i] = AbsLongPhiBiasRes.make<TH1F>(Form("histo_dz_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f #circ;d_{z} [#mum];tracks",phiF,phiL),mybins_,-dzmax_phi,dzmax_phi); a_dzEtaBiasResiduals[i] = AbsLongEtaBiasRes.make<TH1F>(Form("histo_dz_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z} [#mum];tracks",etaF,etaL),mybins_,-dzmax_eta,dzmax_eta); n_dxyPhiBiasResiduals[i] = NormTransPhiBiasRes.make<TH1F>(Form("histo_norm_dxy_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",phiF,phiL),mybins_,-dxymax_phi/100.,dxymax_phi/100.); n_dxyEtaBiasResiduals[i] = NormTransEtaBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",etaF,etaL),mybins_,-dxymax_eta/100.,dxymax_eta/100.); n_dzPhiBiasResiduals[i] = NormLongPhiBiasRes.make<TH1F>(Form("histo_norm_dz_phi_plot%i",i),Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}} [#mum];tracks",phiF,phiL),mybins_,-dzmax_phi/100.,dzmax_phi/100.); n_dzEtaBiasResiduals[i] = NormLongEtaBiasRes.make<TH1F>(Form("histo_norm_dz_eta_plot%i",i),Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z}/#sigma_{d_{z}} [#mum];tracks",etaF,etaL),mybins_,-dzmax_eta/100.,dzmax_eta/100.); for ( int j=0; j<nBins_; ++j ) { a_dxyBiasResidualsMap[i][j] = AbsDoubleDiffBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta,dzmax_eta); a_dzBiasResidualsMap[i][j] = AbsDoubleDiffBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta,dzmax_eta); n_dxyBiasResidualsMap[i][j] = NormDoubleDiffBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta/100,dzmax_eta/100); n_dzBiasResidualsMap[i][j] = NormDoubleDiffBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}} [#mum];tracks",etaF,etaL,phiF,phiL),mybins_,-dzmax_eta/100,dzmax_eta/100); } } // declaration of the directories TFileDirectory MeanBiasTrendsDir = fs->mkdir("MeanBiasTrends"); TFileDirectory WidthBiasTrendsDir = fs->mkdir("WidthBiasTrends"); TFileDirectory MedianBiasTrendsDir = fs->mkdir("MedianBiasTrends"); TFileDirectory MADBiasTrendsDir = fs->mkdir("MADBiasTrends"); TFileDirectory Mean2DBiasMapsDir = fs->mkdir("MeanBiasMaps"); TFileDirectory Width2DBiasMapsDir = fs->mkdir("WidthBiasMaps"); // means and widths from the fit a_dxyPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dxy_phi","#LT d_{xy} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy} #GT [#mum]",nBins_,lowedge,highedge); a_dxyPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dxy_phi","#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{xy}} [#mum]",nBins_,lowedge,highedge); a_dzPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dz_phi","#LT d_{z} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z} #GT [#mum]",nBins_,lowedge,highedge); a_dzPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dz_phi","#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{z}} [#mum]",nBins_,lowedge,highedge); a_dxyEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dxy_eta","#LT d_{xy} #GT vs #eta sector;#eta (sector);#LT d_{xy} #GT [#mum]",nBins_,lowedge,highedge); a_dxyEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dxy_eta","#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{xy}} [#mum]",nBins_,lowedge,highedge); a_dzEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dz_eta","#LT d_{z} #GT vs #eta sector;#eta (sector);#LT d_{z} #GT [#mum]",nBins_,lowedge,highedge); a_dzEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dz_eta","#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{z}} [#mum]",nBins_,lowedge,highedge); n_dxyPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dxy_phi","#LT d_{xy}/#sigma_{d_{xy}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy}/#sigma_{d_{xy}} #GT",nBins_,lowedge,highedge); n_dxyPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dxy_phi","width(d_{xy}/#sigma_{d_{xy}}) vs #phi sector;#varphi (sector) [degrees]; width(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dzPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dz_phi","#LT d_{z}/#sigma_{d_{z}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dzPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dz_phi","width(d_{z}/#sigma_{d_{z}}) vs #phi sector;#varphi (sector) [degrees];width(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dxy_eta","#LT d_{xy}/#sigma_{d_{xy}} #GT vs #eta sector;#eta (sector);#LT d_{xy}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dxyEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dxy_eta","width(d_{xy}/#sigma_{d_{xy}}) vs #eta sector;#eta (sector);width(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dz_eta","#LT d_{z}/#sigma_{d_{z}} #GT vs #eta sector;#eta (sector);#LT d_{z}/#sigma_{d_{z}} #GT",nBins_,lowedge,highedge); n_dzEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dz_eta","width(d_{z}/#sigma_{d_{z}}) vs #eta sector;#eta (sector);width(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); // 2D maps a_dxyMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("means_dxy_map","#LT d_{xy} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dzMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("means_dz_map","#LT d_{z} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dxyMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("norm_means_dxy_map","#LT d_{xy}/#sigma_{d_{xy}} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dzMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("norm_means_dz_map","#LT d_{z}/#sigma_{d_{z}} #GT map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dxyWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("widths_dxy_map","#sigma_{d_{xy}} map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); a_dzWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("widths_dz_map","#sigma_{d_{z}} map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dxyWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("norm_widths_dxy_map","width(d_{xy}/#sigma_{d_{xy}}) map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); n_dzWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("norm_widths_dz_map","width(d_{z}/#sigma_{d_{z}}) map;#eta (sector);#varphi (sector) [degrees]",nBins_,lowedge,highedge,nBins_,lowedge,highedge); // medians and MADs a_dxyPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dxy_phi","Median of d_{xy} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dxyPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dxy_phi","Median absolute deviation of d_{xy} vs #phi sector;#varphi (sector) [degrees];MAD(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dzPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dz_phi","Median of d_{z} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dzPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dz_phi","Median absolute deviation of d_{z} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dxyEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dxy_eta","Median of d_{xy} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dxyEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dxy_eta","Median absolute deviation of d_{xy} vs #eta sector;#eta (sector);MAD(d_{xy}) [#mum]",nBins_,lowedge,highedge); a_dzEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dz_eta","Median of d_{z} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}) [#mum]",nBins_,lowedge,highedge); a_dzEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dz_eta","Median absolute deviation of d_{z} vs #eta sector;#eta (sector);MAD(d_{z}) [#mum]",nBins_,lowedge,highedge); n_dxyPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dxy_phi","Median of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dxyPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dxy_phi","Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees]; MAD(d_{xy}/#sigma_{d_{xy}})",nBins_,lowedge,highedge); n_dzPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dz_phi","Median of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dz_phi","Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dxy_eta","Median of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dxyEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dxy_eta","Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);MAD(d_{xy}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dz_eta","Median of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); n_dzEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dz_eta","Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);MAD(d_{z}/#sigma_{d_{z}})",nBins_,lowedge,highedge); } }
AlgebraicVector3 PrimaryVertexValidation::displacementFromTrack | ( | const GlobalPoint & | pv, |
const GlobalPoint & | dcaPosition_, | ||
const GlobalVector & | tangent_ | ||
) | [private] |
void PrimaryVertexValidation::endJob | ( | void | ) | [private, virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 1079 of file PrimaryVertexValidation.cc.
References a_dxyEtaBiasResiduals, a_dxyEtaMADBiasTrend, a_dxyEtaMADTrend, a_dxyEtaMeanBiasTrend, a_dxyEtaMeanTrend, a_dxyEtaMedianBiasTrend, a_dxyEtaMedianTrend, a_dxyEtaResiduals, a_dxyEtaWidthBiasTrend, a_dxyEtaWidthTrend, a_dxyPhiBiasResiduals, a_dxyPhiMADBiasTrend, a_dxyPhiMADTrend, a_dxyPhiMeanBiasTrend, a_dxyPhiMeanTrend, a_dxyPhiMedianBiasTrend, a_dxyPhiMedianTrend, a_dxyPhiResiduals, a_dxyPhiWidthBiasTrend, a_dxyPhiWidthTrend, a_dzEtaBiasResiduals, a_dzEtaMADBiasTrend, a_dzEtaMADTrend, a_dzEtaMeanBiasTrend, a_dzEtaMeanTrend, a_dzEtaMedianBiasTrend, a_dzEtaMedianTrend, a_dzEtaResiduals, a_dzEtaWidthBiasTrend, a_dzEtaWidthTrend, a_dzPhiBiasResiduals, a_dzPhiMADBiasTrend, a_dzPhiMADTrend, a_dzPhiMeanBiasTrend, a_dzPhiMeanTrend, a_dzPhiMedianBiasTrend, a_dzPhiMedianTrend, a_dzPhiResiduals, a_dzPhiWidthBiasTrend, a_dzPhiWidthTrend, gather_cfg::cout, FillTrendPlot(), n_dxyEtaBiasResiduals, n_dxyEtaMADBiasTrend, n_dxyEtaMADTrend, n_dxyEtaMeanBiasTrend, n_dxyEtaMeanTrend, n_dxyEtaMedianBiasTrend, n_dxyEtaMedianTrend, n_dxyEtaResiduals, n_dxyEtaWidthBiasTrend, n_dxyEtaWidthTrend, n_dxyPhiBiasResiduals, n_dxyPhiMADBiasTrend, n_dxyPhiMADTrend, n_dxyPhiMeanBiasTrend, n_dxyPhiMeanTrend, n_dxyPhiMedianBiasTrend, n_dxyPhiMedianTrend, n_dxyPhiResiduals, n_dxyPhiWidthBiasTrend, n_dxyPhiWidthTrend, n_dzEtaBiasResiduals, n_dzEtaMADBiasTrend, n_dzEtaMADTrend, n_dzEtaMeanBiasTrend, n_dzEtaMeanTrend, n_dzEtaMedianBiasTrend, n_dzEtaMedianTrend, n_dzEtaResiduals, n_dzEtaWidthBiasTrend, n_dzEtaWidthTrend, n_dzPhiBiasResiduals, n_dzPhiMADBiasTrend, n_dzPhiMADTrend, n_dzPhiMeanBiasTrend, n_dzPhiMeanTrend, n_dzPhiMedianBiasTrend, n_dzPhiMedianTrend, n_dzPhiResiduals, n_dzPhiWidthBiasTrend, n_dzPhiWidthTrend, Nevt_, and useTracksFromRecoVtx_.
{ std::cout<<"######################################"<<std::endl; std::cout<<"Number of analyzed events: "<<Nevt_<<std::endl; std::cout<<"######################################"<<std::endl; if(useTracksFromRecoVtx_){ FillTrendPlot(a_dxyPhiMeanBiasTrend ,a_dxyPhiBiasResiduals,"mean","phi"); FillTrendPlot(a_dxyPhiWidthBiasTrend,a_dxyPhiBiasResiduals,"width","phi"); FillTrendPlot(a_dzPhiMeanBiasTrend ,a_dzPhiBiasResiduals ,"mean","phi"); FillTrendPlot(a_dzPhiWidthBiasTrend ,a_dzPhiBiasResiduals ,"width","phi"); FillTrendPlot(a_dxyEtaMeanBiasTrend ,a_dxyEtaBiasResiduals,"mean","eta"); FillTrendPlot(a_dxyEtaWidthBiasTrend,a_dxyEtaBiasResiduals,"width","eta"); FillTrendPlot(a_dzEtaMeanBiasTrend ,a_dzEtaBiasResiduals ,"mean","eta"); FillTrendPlot(a_dzEtaWidthBiasTrend ,a_dzEtaBiasResiduals ,"width","eta"); FillTrendPlot(n_dxyPhiMeanBiasTrend ,n_dxyPhiBiasResiduals,"mean","phi"); FillTrendPlot(n_dxyPhiWidthBiasTrend,n_dxyPhiBiasResiduals,"width","phi"); FillTrendPlot(n_dzPhiMeanBiasTrend ,n_dzPhiBiasResiduals ,"mean","phi"); FillTrendPlot(n_dzPhiWidthBiasTrend ,n_dzPhiBiasResiduals ,"width","phi"); FillTrendPlot(n_dxyEtaMeanBiasTrend ,n_dxyEtaBiasResiduals,"mean","eta"); FillTrendPlot(n_dxyEtaWidthBiasTrend,n_dxyEtaBiasResiduals,"width","eta"); FillTrendPlot(n_dzEtaMeanBiasTrend ,n_dzEtaBiasResiduals ,"mean","eta"); FillTrendPlot(n_dzEtaWidthBiasTrend ,n_dzEtaBiasResiduals ,"width","eta"); // medians and MADs FillTrendPlot(a_dxyPhiMedianBiasTrend,a_dxyPhiBiasResiduals,"median","phi"); FillTrendPlot(a_dxyPhiMADBiasTrend ,a_dxyPhiBiasResiduals,"mad","phi"); FillTrendPlot(a_dzPhiMedianBiasTrend ,a_dzPhiBiasResiduals ,"median","phi"); FillTrendPlot(a_dzPhiMADBiasTrend ,a_dzPhiBiasResiduals ,"mad","phi"); FillTrendPlot(a_dxyEtaMedianBiasTrend,a_dxyEtaBiasResiduals,"median","eta"); FillTrendPlot(a_dxyEtaMADBiasTrend ,a_dxyEtaBiasResiduals,"mad","eta"); FillTrendPlot(a_dzEtaMedianBiasTrend ,a_dzEtaBiasResiduals ,"median","eta"); FillTrendPlot(a_dzEtaMADBiasTrend ,a_dzEtaBiasResiduals ,"mad","eta"); FillTrendPlot(n_dxyPhiMedianBiasTrend,n_dxyPhiBiasResiduals,"median","phi"); FillTrendPlot(n_dxyPhiMADBiasTrend ,n_dxyPhiBiasResiduals,"mad","phi"); FillTrendPlot(n_dzPhiMedianBiasTrend ,n_dzPhiBiasResiduals ,"median","phi"); FillTrendPlot(n_dzPhiMADBiasTrend ,n_dzPhiBiasResiduals ,"mad","phi"); FillTrendPlot(n_dxyEtaMedianBiasTrend,n_dxyEtaBiasResiduals,"median","eta"); FillTrendPlot(n_dxyEtaMADBiasTrend ,n_dxyEtaBiasResiduals,"mad","eta"); FillTrendPlot(n_dzEtaMedianBiasTrend ,n_dzEtaBiasResiduals ,"median","eta"); FillTrendPlot(n_dzEtaMADBiasTrend ,n_dzEtaBiasResiduals ,"mad","eta"); } FillTrendPlot(a_dxyPhiMeanTrend ,a_dxyPhiResiduals,"mean","phi"); FillTrendPlot(a_dxyPhiWidthTrend,a_dxyPhiResiduals,"width","phi"); FillTrendPlot(a_dzPhiMeanTrend ,a_dzPhiResiduals ,"mean","phi"); FillTrendPlot(a_dzPhiWidthTrend ,a_dzPhiResiduals ,"width","phi"); FillTrendPlot(a_dxyEtaMeanTrend ,a_dxyEtaResiduals,"mean","eta"); FillTrendPlot(a_dxyEtaWidthTrend,a_dxyEtaResiduals,"width","eta"); FillTrendPlot(a_dzEtaMeanTrend ,a_dzEtaResiduals ,"mean","eta"); FillTrendPlot(a_dzEtaWidthTrend ,a_dzEtaResiduals ,"width","eta"); FillTrendPlot(n_dxyPhiMeanTrend ,n_dxyPhiResiduals,"mean","phi"); FillTrendPlot(n_dxyPhiWidthTrend,n_dxyPhiResiduals,"width","phi"); FillTrendPlot(n_dzPhiMeanTrend ,n_dzPhiResiduals ,"mean","phi"); FillTrendPlot(n_dzPhiWidthTrend ,n_dzPhiResiduals ,"width","phi"); FillTrendPlot(n_dxyEtaMeanTrend ,n_dxyEtaResiduals,"mean","eta"); FillTrendPlot(n_dxyEtaWidthTrend,n_dxyEtaResiduals,"width","eta"); FillTrendPlot(n_dzEtaMeanTrend ,n_dzEtaResiduals ,"mean","eta"); FillTrendPlot(n_dzEtaWidthTrend ,n_dzEtaResiduals ,"width","eta"); // medians and MADs FillTrendPlot(a_dxyPhiMedianTrend,a_dxyPhiResiduals,"median","phi"); FillTrendPlot(a_dxyPhiMADTrend ,a_dxyPhiResiduals,"mad","phi"); FillTrendPlot(a_dzPhiMedianTrend ,a_dzPhiResiduals ,"median","phi"); FillTrendPlot(a_dzPhiMADTrend ,a_dzPhiResiduals ,"mad","phi"); FillTrendPlot(a_dxyEtaMedianTrend,a_dxyEtaResiduals,"median","eta"); FillTrendPlot(a_dxyEtaMADTrend ,a_dxyEtaResiduals,"mad","eta"); FillTrendPlot(a_dzEtaMedianTrend ,a_dzEtaResiduals ,"median","eta"); FillTrendPlot(a_dzEtaMADTrend ,a_dzEtaResiduals ,"mad","eta"); FillTrendPlot(n_dxyPhiMedianTrend,n_dxyPhiResiduals,"median","phi"); FillTrendPlot(n_dxyPhiMADTrend ,n_dxyPhiResiduals,"mad","phi"); FillTrendPlot(n_dzPhiMedianTrend ,n_dzPhiResiduals ,"median","phi"); FillTrendPlot(n_dzPhiMADTrend ,n_dzPhiResiduals ,"mad","phi"); FillTrendPlot(n_dxyEtaMedianTrend,n_dxyEtaResiduals,"median","eta"); FillTrendPlot(n_dxyEtaMADTrend ,n_dxyEtaResiduals,"mad","eta"); FillTrendPlot(n_dzEtaMedianTrend ,n_dzEtaResiduals ,"median","eta"); FillTrendPlot(n_dzEtaMADTrend ,n_dzEtaResiduals ,"mad","eta"); }
void PrimaryVertexValidation::FillTrendPlot | ( | TH1F * | trendPlot, |
TH1F * | residualsPlot[100], | ||
TString | fitPar_, | ||
TString | var_ | ||
) | [private] |
Definition at line 1344 of file PrimaryVertexValidation.cc.
References gather_cfg::cout, fitResiduals(), getMAD(), getMedian(), i, and nBins_.
Referenced by endJob().
{ float phiInterval = (360.)/nBins_; float etaInterval = 5./nBins_; for ( int i=0; i<nBins_; ++i ) { char phipositionString[129]; float phiposition = (-180+i*phiInterval)+(phiInterval/2); sprintf(phipositionString,"%.f",phiposition); char etapositionString[129]; float etaposition = (-2.5+i*etaInterval)+(etaInterval/2); sprintf(etapositionString,"%.1f",etaposition); if(fitPar_=="mean"){ float mean_ = fitResiduals(residualsPlot[i]).first.first; float meanErr_ = fitResiduals(residualsPlot[i]).first.second; trendPlot->SetBinContent(i+1,mean_); trendPlot->SetBinError(i+1,meanErr_); } else if (fitPar_=="width"){ float width_ = fitResiduals(residualsPlot[i]).second.first; float widthErr_ = fitResiduals(residualsPlot[i]).second.second; trendPlot->SetBinContent(i+1,width_); trendPlot->SetBinError(i+1,widthErr_); } else if (fitPar_=="median"){ float median_ = getMedian(residualsPlot[i]).first; float medianErr_ = getMedian(residualsPlot[i]).second; trendPlot->SetBinContent(i+1,median_); trendPlot->SetBinError(i+1,medianErr_); } else if (fitPar_=="mad"){ float mad_ = getMAD(residualsPlot[i]).first; float madErr_ = getMAD(residualsPlot[i]).second; trendPlot->SetBinContent(i+1,mad_); trendPlot->SetBinError(i+1,madErr_); } else { std::cout<<"PrimaryVertexValidation::FillTrendPlot() "<<fitPar_<<" unknown estimator!"<<std::endl; } if(var_=="eta"){ trendPlot->GetXaxis()->SetBinLabel(i+1,phipositionString); } else if(var_=="phi"){ trendPlot->GetXaxis()->SetBinLabel(i+1,etapositionString); } else { std::cout<<"PrimaryVertexValidation::FillTrendPlot() "<<var_<<" unknown track parameter!"<<std::endl; } } }
std::pair< std::pair< Double_t, Double_t >, std::pair< Double_t, Double_t > > PrimaryVertexValidation::fitResiduals | ( | TH1 * | hist | ) | [private] |
Definition at line 1301 of file PrimaryVertexValidation.cc.
References timingPdfMaker::mean, and query::result.
Referenced by FillTrendPlot().
{ //float fitResult(9999); //if (hist->GetEntries() < 20) return ; float mean = hist->GetMean(); float sigma = hist->GetRMS(); TF1 func("tmp", "gaus", mean - 1.5*sigma, mean + 1.5*sigma); if (0 == hist->Fit(&func,"QNR")) { // N: do not blow up file by storing fit! mean = func.GetParameter(1); sigma = func.GetParameter(2); // second fit: three sigma of first fit around mean of first fit func.SetRange(mean - 2*sigma, mean + 2*sigma); // I: integral gives more correct results if binning is too wide // L: Likelihood can treat empty bins correctly (if hist not weighted...) if (0 == hist->Fit(&func, "Q0LR")) { if (hist->GetFunction(func.GetName())) { // Take care that it is later on drawn: hist->GetFunction(func.GetName())->ResetBit(TF1::kNotDraw); } } } float res_mean = func.GetParameter(1); float res_width = func.GetParameter(2); float res_mean_err = func.GetParError(1); float res_width_err = func.GetParError(2); std::pair<Double_t,Double_t> resultM; std::pair<Double_t,Double_t> resultW; resultM = std::make_pair(res_mean,res_mean_err); resultW = std::make_pair(res_width,res_width_err); std::pair<std::pair<Double_t,Double_t>, std::pair<Double_t,Double_t> > result; result = std::make_pair(resultM,resultW); return result; }
std::pair< Double_t, Double_t > PrimaryVertexValidation::getMAD | ( | TH1F * | histo | ) | [private] |
Definition at line 1271 of file PrimaryVertexValidation.cc.
References getMedian(), j, pileupCalc::nbins, query::result, and create_public_pileup_plots::weights.
Referenced by FillTrendPlot().
{ int nbins = histo->GetNbinsX(); Double_t median = getMedian(histo).first; Double_t x_lastBin = histo->GetBinLowEdge(nbins+1); const char *HistoName =histo->GetName(); TString Finalname = Form("resMed%s",HistoName); TH1F *newHisto = new TH1F(Finalname,Finalname,nbins,0.,x_lastBin); Double_t *residuals = new Double_t[nbins]; Double_t *weights = new Double_t[nbins]; for (int j = 0; j < nbins; j++) { residuals[j] = TMath::Abs(median - histo->GetBinCenter(j+1)); weights[j]=histo->GetBinContent(j+1); newHisto->Fill(residuals[j],weights[j]); } Double_t theMAD = (getMedian(newHisto).first)*1.4826; newHisto->Delete(""); std::pair<Double_t,Double_t> result; result = std::make_pair(theMAD,theMAD/histo->GetEntries()); return result; }
std::pair< Double_t, Double_t > PrimaryVertexValidation::getMedian | ( | TH1F * | histo | ) | [private] |
Definition at line 1245 of file PrimaryVertexValidation.cc.
References j, pileupCalc::nbins, query::result, x, and detailsBasic3DVector::y.
Referenced by FillTrendPlot(), and getMAD().
{ Double_t median = 999; int nbins = histo->GetNbinsX(); //extract median from histogram double *x = new double[nbins]; double *y = new double[nbins]; for (int j = 0; j < nbins; j++) { x[j] = histo->GetBinCenter(j+1); y[j] = histo->GetBinContent(j+1); } median = TMath::Median(nbins, x, y); delete[] x; x = 0; delete [] y; y = 0; std::pair<Double_t,Double_t> result; result = std::make_pair(median,median/TMath::Sqrt(histo->GetEntries())); return result; }
bool PrimaryVertexValidation::hasFirstLayerPixelHits | ( | const reco::TransientTrack | track | ) | [private] |
Definition at line 670 of file PrimaryVertexValidation.cc.
References reco::HitPattern::getHitPattern(), reco::HitPattern::getLayer(), reco::TransientTrack::hitPattern(), i, reco::HitPattern::numberOfHits(), AlCaHLTBitMon_ParallelJobs::p, listBenchmarks::pattern, reco::HitPattern::pixelBarrelHitFilter(), reco::HitPattern::pixelEndcapHitFilter(), and reco::HitPattern::validHitFilter().
Referenced by analyze().
{ bool accepted = false; // hit pattern of the track const reco::HitPattern& p = track.hitPattern(); for (int i=0; i<p.numberOfHits(); i++) { uint32_t pattern = p.getHitPattern(i); if (p.pixelBarrelHitFilter(pattern) || p.pixelEndcapHitFilter(pattern) ) { if (p.getLayer(pattern) == 1) { if (p.validHitFilter(pattern)) { accepted = true; } } } } return accepted; }
bool PrimaryVertexValidation::isHit2D | ( | const TrackingRecHit & | hit | ) | const [private] |
Definition at line 640 of file PrimaryVertexValidation.cc.
References TrackingRecHit::dimension(), TrackingRecHit::geographicalId(), kBPIX, kFPIX, and align::Tracker.
Referenced by analyze().
{ if (hit.dimension() < 2) { return false; // some (muon...) stuff really has RecHit1D } else { const DetId detId(hit.geographicalId()); if (detId.det() == DetId::Tracker) { if (detId.subdetId() == kBPIX || detId.subdetId() == kFPIX) { return true; // pixel is always 2D } else { // should be SiStrip now if (dynamic_cast<const SiStripRecHit2D*>(&hit)) return false; // normal hit else if (dynamic_cast<const SiStripMatchedRecHit2D*>(&hit)) return true; // matched is 2D else if (dynamic_cast<const ProjectedSiStripRecHit2D*>(&hit)) return false; // crazy hit... else { edm::LogError("UnkownType") << "@SUB=AlignmentTrackSelector::isHit2D" << "Tracker hit not in pixel and neither SiStripRecHit2D nor " << "SiStripMatchedRecHit2D nor ProjectedSiStripRecHit2D."; return false; } } } else { // not tracker?? edm::LogWarning("DetectorMismatch") << "@SUB=AlignmentTrackSelector::isHit2D" << "Hit not in tracker with 'official' dimension >=2."; return true; // dimension() >= 2 so accept that... } } // never reached... }
void PrimaryVertexValidation::SetVarToZero | ( | ) | [private] |
Definition at line 1177 of file PrimaryVertexValidation.cc.
References Beamdxdz_, Beamsigmaz_, BeamWidthX_, BeamWidthY_, BSx0_, BSy0_, BSz0_, charge_, chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2UnbiasedVertex_, DOFUnbiasedVertex_, dszFromMyVertex_, dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, dz_, dzBs_, dzErrorFromMyVertex_, dzFromMyVertex_, eta_, hasRecVertex_, i, IPLsigFromMyVertex_, IPTsigFromMyVertex_, isGoodTrack_, isHighPurity_, LuminosityBlockNumber_, nClus_, nhits1D_, nhits2D_, nhits_, nhitsBPIX_, nhitsFPIX_, nhitsTEC_, nhitsTIB_, nhitsTID_, nhitsTOB_, nMaxtracks_, nOfflineVertices_, nTracks_, p_, phi_, pt_, qoverp_, RunNumber_, sumOfWeightsUnbiasedVertex_, theta_, tracksUsedForVertexing_, xOfflineVertex_, xPCA_, xUnbiasedVertex_, yOfflineVertex_, yPCA_, yUnbiasedVertex_, zOfflineVertex_, zPCA_, and zUnbiasedVertex_.
Referenced by analyze().
{ nTracks_ = 0; nClus_ = 0; nOfflineVertices_=0; RunNumber_ =0; LuminosityBlockNumber_=0; xOfflineVertex_ =-999.; yOfflineVertex_ =-999.; zOfflineVertex_ =-999.; BSx0_ = -999.; BSy0_ = -999.; BSz0_ = -999.; Beamsigmaz_=-999.; Beamdxdz_=-999.; BeamWidthX_=-999.; BeamWidthY_=-999.; for ( int i=0; i<nMaxtracks_; ++i ) { pt_[i] = 0; p_[i] = 0; nhits_[i] = 0; nhits1D_[i] = 0; nhits2D_[i] = 0; nhitsBPIX_[i] = 0; nhitsFPIX_[i] = 0; nhitsTIB_[i] = 0; nhitsTID_[i] = 0; nhitsTOB_[i] = 0; nhitsTEC_[i] = 0; isHighPurity_[i] = 0; eta_[i] = 0; theta_[i] = 0; phi_[i] = 0; chi2_[i] = 0; chi2ndof_[i] = 0; charge_[i] = 0; qoverp_[i] = 0; dz_[i] = 0; dxy_[i] = 0; dzBs_[i] = 0; dxyBs_[i] = 0; xPCA_[i] = 0; yPCA_[i] = 0; zPCA_[i] = 0; xUnbiasedVertex_[i] =0; yUnbiasedVertex_[i] =0; zUnbiasedVertex_[i] =0; chi2normUnbiasedVertex_[i]=0; chi2UnbiasedVertex_[i]=0; DOFUnbiasedVertex_[i]=0; sumOfWeightsUnbiasedVertex_[i]=0; tracksUsedForVertexing_[i]=0; dxyFromMyVertex_[i]=0; dzFromMyVertex_[i]=0; dszFromMyVertex_[i]=0; dxyErrorFromMyVertex_[i]=0; dzErrorFromMyVertex_[i]=0; IPTsigFromMyVertex_[i]=0; IPLsigFromMyVertex_[i]=0; hasRecVertex_[i] = 0; isGoodTrack_[i] = 0; } }
double PrimaryVertexValidation::square | ( | double | x | ) | [inline, private] |
TH1F* PrimaryVertexValidation::a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 312 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::a_dxyEtaBiasResiduals[nMaxBins_] [private] |
Definition at line 297 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMADBiasTrend [private] |
Definition at line 348 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMADTrend [private] |
Definition at line 264 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMeanBiasTrend [private] |
Definition at line 325 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMeanTrend [private] |
Definition at line 241 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMedianBiasTrend [private] |
Definition at line 347 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaMedianTrend [private] |
Definition at line 263 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaResiduals[nMaxBins_] [private] |
Definition at line 213 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaWidthBiasTrend [private] |
Definition at line 326 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyEtaWidthTrend [private] |
Definition at line 242 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH2F* PrimaryVertexValidation::a_dxyMeanBiasMap [private] |
Definition at line 364 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::a_dxyMeanMap [private] |
Definition at line 280 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::a_dxyPhiBiasResiduals[nMaxBins_] [private] |
Definition at line 296 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMADBiasTrend [private] |
Definition at line 343 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMADTrend [private] |
Definition at line 259 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMeanBiasTrend [private] |
Definition at line 320 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMeanTrend [private] |
Definition at line 236 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMedianBiasTrend [private] |
Definition at line 342 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiMedianTrend [private] |
Definition at line 258 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiResiduals[nMaxBins_] [private] |
Definition at line 212 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiWidthBiasTrend [private] |
Definition at line 321 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyPhiWidthTrend [private] |
Definition at line 237 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dxyResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 228 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH2F* PrimaryVertexValidation::a_dxyWidthBiasMap [private] |
Definition at line 370 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::a_dxyWidthMap [private] |
Definition at line 286 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::a_dzBiasResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 313 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::a_dzEtaBiasResiduals[nMaxBins_] [private] |
Definition at line 300 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMADBiasTrend [private] |
Definition at line 350 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMADTrend [private] |
Definition at line 266 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMeanBiasTrend [private] |
Definition at line 327 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMeanTrend [private] |
Definition at line 243 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMedianBiasTrend [private] |
Definition at line 349 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaMedianTrend [private] |
Definition at line 265 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaResiduals[nMaxBins_] [private] |
Definition at line 216 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaWidthBiasTrend [private] |
Definition at line 328 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzEtaWidthTrend [private] |
Definition at line 244 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH2F* PrimaryVertexValidation::a_dzMeanBiasMap [private] |
Definition at line 365 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::a_dzMeanMap [private] |
Definition at line 281 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::a_dzPhiBiasResiduals[nMaxBins_] [private] |
Definition at line 299 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMADBiasTrend [private] |
Definition at line 345 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMADTrend [private] |
Definition at line 261 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMeanBiasTrend [private] |
Definition at line 322 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMeanTrend [private] |
Definition at line 238 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMedianBiasTrend [private] |
Definition at line 344 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiMedianTrend [private] |
Definition at line 260 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiResiduals[nMaxBins_] [private] |
Definition at line 215 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiWidthBiasTrend [private] |
Definition at line 323 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzPhiWidthTrend [private] |
Definition at line 239 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::a_dzResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 229 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH2F* PrimaryVertexValidation::a_dzWidthBiasMap [private] |
Definition at line 371 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::a_dzWidthMap [private] |
Definition at line 287 of file PrimaryVertexValidation.h.
Referenced by beginJob().
bool PrimaryVertexValidation::askFirstLayerHit_ [private] |
Definition at line 120 of file PrimaryVertexValidation.h.
Referenced by analyze().
double PrimaryVertexValidation::Beamdxdz_ [private] |
Definition at line 155 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::Beamsigmaz_ [private] |
Definition at line 154 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::BeamWidthX_ [private] |
Definition at line 156 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::BeamWidthY_ [private] |
Definition at line 157 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::BSx0_ [private] |
Definition at line 151 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::BSy0_ [private] |
Definition at line 152 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::BSz0_ [private] |
Definition at line 153 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::charge_[nMaxtracks_] [private] |
Definition at line 177 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::chi2_[nMaxtracks_] [private] |
Definition at line 175 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::chi2ndof_[nMaxtracks_] [private] |
Definition at line 176 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
float PrimaryVertexValidation::chi2normUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 189 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
float PrimaryVertexValidation::chi2UnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 190 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
const int PrimaryVertexValidation::cmToum = 10000 [static, private] |
Definition at line 135 of file PrimaryVertexValidation.h.
Referenced by analyze().
bool PrimaryVertexValidation::debug_ [private] |
Definition at line 125 of file PrimaryVertexValidation.h.
Referenced by analyze().
float PrimaryVertexValidation::DOFUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 191 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dszFromMyVertex_[nMaxtracks_] [private] |
Definition at line 204 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dxy_[nMaxtracks_] [private] |
Definition at line 180 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dxyBs_[nMaxtracks_] [private] |
Definition at line 181 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dxyErrorFromMyVertex_[nMaxtracks_] [private] |
Definition at line 198 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dxyFromMyVertex_[nMaxtracks_] [private] |
Definition at line 195 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dz_[nMaxtracks_] [private] |
Definition at line 179 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dzBs_[nMaxtracks_] [private] |
Definition at line 182 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dzErrorFromMyVertex_[nMaxtracks_] [private] |
Definition at line 199 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::dzFromMyVertex_[nMaxtracks_] [private] |
Definition at line 196 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::eta_[nMaxtracks_] [private] |
Definition at line 172 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::etaOfProbe_ [private] |
Definition at line 122 of file PrimaryVertexValidation.h.
Referenced by analyze().
float PrimaryVertexValidation::etapitch_ [private] |
Definition at line 138 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and PrimaryVertexValidation().
unsigned int PrimaryVertexValidation::EventNumber_ [private] |
Definition at line 146 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_fitVtxChi2_ [private] |
Definition at line 401 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_fitVtxChi2ndf_ [private] |
Definition at line 403 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_fitVtxChi2Prob_ [private] |
Definition at line 404 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_fitVtxNdof_ [private] |
Definition at line 400 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_fitVtxNtracks_ [private] |
Definition at line 402 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeCharge_ [private] |
Definition at line 383 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeChi2_ [private] |
Definition at line 381 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probedxy_ [private] |
Definition at line 386 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probedz_ [private] |
Definition at line 385 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeEta_ [private] |
Definition at line 379 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHits1D_ [private] |
Definition at line 389 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHits2D_ [private] |
Definition at line 390 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHits_ [private] |
Definition at line 388 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInBPIX_ [private] |
Definition at line 395 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInFPIX_ [private] |
Definition at line 396 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInTEC_ [private] |
Definition at line 394 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInTIB_ [private] |
Definition at line 391 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInTID_ [private] |
Definition at line 393 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeHitsInTOB_ [private] |
Definition at line 392 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeNormChi2_ [private] |
Definition at line 382 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probePhi_ [private] |
Definition at line 380 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probePt_ [private] |
Definition at line 378 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_probeQoverP_ [private] |
Definition at line 384 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_recoVtxChi2ndf_ [private] |
Definition at line 407 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_recoVtxChi2Prob_ [private] |
Definition at line 408 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_recoVtxNtracks_ [private] |
Definition at line 406 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::h_recoVtxSumPt_ [private] |
Definition at line 409 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
int PrimaryVertexValidation::hasRecVertex_[nMaxtracks_] [private] |
Definition at line 205 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::IPLsigFromMyVertex_[nMaxtracks_] [private] |
Definition at line 202 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::IPTsigFromMyVertex_[nMaxtracks_] [private] |
Definition at line 201 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::isGoodTrack_[nMaxtracks_] [private] |
Definition at line 206 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::isHighPurity_[nMaxtracks_] [private] |
Definition at line 171 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
bool PrimaryVertexValidation::lightNtupleSwitch_ [private] |
Definition at line 116 of file PrimaryVertexValidation.h.
Referenced by beginJob().
unsigned int PrimaryVertexValidation::LuminosityBlockNumber_ [private] |
Definition at line 147 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
TH1F* PrimaryVertexValidation::n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 315 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::n_dxyEtaBiasResiduals[nMaxBins_] [private] |
Definition at line 305 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMADBiasTrend [private] |
Definition at line 358 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMADTrend [private] |
Definition at line 274 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMeanBiasTrend [private] |
Definition at line 335 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMeanTrend [private] |
Definition at line 251 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMedianBiasTrend [private] |
Definition at line 357 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaMedianTrend [private] |
Definition at line 273 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaResiduals[nMaxBins_] [private] |
Definition at line 221 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaWidthBiasTrend [private] |
Definition at line 336 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyEtaWidthTrend [private] |
Definition at line 252 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH2F* PrimaryVertexValidation::n_dxyMeanBiasMap [private] |
Definition at line 367 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::n_dxyMeanMap [private] |
Definition at line 283 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::n_dxyPhiBiasResiduals[nMaxBins_] [private] |
Definition at line 304 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMADBiasTrend [private] |
Definition at line 353 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMADTrend [private] |
Definition at line 269 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMeanBiasTrend [private] |
Definition at line 330 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMeanTrend [private] |
Definition at line 246 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMedianBiasTrend [private] |
Definition at line 352 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiMedianTrend [private] |
Definition at line 268 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiResiduals[nMaxBins_] [private] |
Definition at line 220 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiWidthBiasTrend [private] |
Definition at line 331 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyPhiWidthTrend [private] |
Definition at line 247 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dxyResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 231 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH2F* PrimaryVertexValidation::n_dxyWidthBiasMap [private] |
Definition at line 373 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::n_dxyWidthMap [private] |
Definition at line 289 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::n_dzBiasResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 316 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH1F* PrimaryVertexValidation::n_dzEtaBiasResiduals[nMaxBins_] [private] |
Definition at line 308 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMADBiasTrend [private] |
Definition at line 360 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMADTrend [private] |
Definition at line 276 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMeanBiasTrend [private] |
Definition at line 337 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMeanTrend [private] |
Definition at line 253 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMedianBiasTrend [private] |
Definition at line 359 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaMedianTrend [private] |
Definition at line 275 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaResiduals[nMaxBins_] [private] |
Definition at line 224 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaWidthBiasTrend [private] |
Definition at line 338 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzEtaWidthTrend [private] |
Definition at line 254 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH2F* PrimaryVertexValidation::n_dzMeanBiasMap [private] |
Definition at line 368 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::n_dzMeanMap [private] |
Definition at line 284 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH1F* PrimaryVertexValidation::n_dzPhiBiasResiduals[nMaxBins_] [private] |
Definition at line 307 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMADBiasTrend [private] |
Definition at line 355 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMADTrend [private] |
Definition at line 271 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMeanBiasTrend [private] |
Definition at line 332 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMeanTrend [private] |
Definition at line 248 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMedianBiasTrend [private] |
Definition at line 354 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiMedianTrend [private] |
Definition at line 270 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiResiduals[nMaxBins_] [private] |
Definition at line 223 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiWidthBiasTrend [private] |
Definition at line 333 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzPhiWidthTrend [private] |
Definition at line 249 of file PrimaryVertexValidation.h.
Referenced by beginJob(), and endJob().
TH1F* PrimaryVertexValidation::n_dzResidualsMap[nMaxBins_][nMaxBins_] [private] |
Definition at line 232 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
TH2F* PrimaryVertexValidation::n_dzWidthBiasMap [private] |
Definition at line 374 of file PrimaryVertexValidation.h.
Referenced by beginJob().
TH2F* PrimaryVertexValidation::n_dzWidthMap [private] |
Definition at line 290 of file PrimaryVertexValidation.h.
Referenced by beginJob().
int PrimaryVertexValidation::nBins_ [private] |
Definition at line 123 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), FillTrendPlot(), and PrimaryVertexValidation().
int PrimaryVertexValidation::nClus_ [private] |
Definition at line 143 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::Nevt_ [private] |
Definition at line 105 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
int PrimaryVertexValidation::nhits1D_[nMaxtracks_] [private] |
Definition at line 163 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhits2D_[nMaxtracks_] [private] |
Definition at line 164 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhits_[nMaxtracks_] [private] |
Definition at line 162 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsBPIX_[nMaxtracks_] [private] |
Definition at line 165 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsFPIX_[nMaxtracks_] [private] |
Definition at line 166 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsTEC_[nMaxtracks_] [private] |
Definition at line 170 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsTIB_[nMaxtracks_] [private] |
Definition at line 167 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsTID_[nMaxtracks_] [private] |
Definition at line 168 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nhitsTOB_[nMaxtracks_] [private] |
Definition at line 169 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
const int PrimaryVertexValidation::nMaxBins_ = 100 [static, private] |
Definition at line 111 of file PrimaryVertexValidation.h.
const int PrimaryVertexValidation::nMaxtracks_ = 1000 [static, private] |
Definition at line 134 of file PrimaryVertexValidation.h.
Referenced by analyze(), and SetVarToZero().
int PrimaryVertexValidation::nOfflineVertices_ [private] |
Definition at line 144 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nTracks_ [private] |
Definition at line 141 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
int PrimaryVertexValidation::nTracksPerClus_ [private] |
Definition at line 142 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
double PrimaryVertexValidation::p_[nMaxtracks_] [private] |
Definition at line 161 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::phi_[nMaxtracks_] [private] |
Definition at line 174 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
float PrimaryVertexValidation::phipitch_ [private] |
Definition at line 137 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and PrimaryVertexValidation().
double PrimaryVertexValidation::pt_[nMaxtracks_] [private] |
Definition at line 160 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::ptOfProbe_ [private] |
Definition at line 121 of file PrimaryVertexValidation.h.
Referenced by analyze().
double PrimaryVertexValidation::qoverp_[nMaxtracks_] [private] |
Definition at line 178 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
TTree* PrimaryVertexValidation::rootTree_ [private] |
Definition at line 128 of file PrimaryVertexValidation.h.
Referenced by analyze(), and beginJob().
unsigned int PrimaryVertexValidation::RunNumber_ [private] |
Definition at line 145 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
bool PrimaryVertexValidation::storeNtuple_ [private] |
Definition at line 115 of file PrimaryVertexValidation.h.
Referenced by analyze().
float PrimaryVertexValidation::sumOfWeightsUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 192 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
Definition at line 104 of file PrimaryVertexValidation.h.
double PrimaryVertexValidation::theta_[nMaxtracks_] [private] |
Definition at line 173 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
Definition at line 108 of file PrimaryVertexValidation.h.
Referenced by analyze(), and PrimaryVertexValidation().
Definition at line 107 of file PrimaryVertexValidation.h.
Referenced by analyze(), and PrimaryVertexValidation().
Definition at line 126 of file PrimaryVertexValidation.h.
Referenced by analyze().
int PrimaryVertexValidation::tracksUsedForVertexing_[nMaxtracks_] [private] |
Definition at line 193 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
bool PrimaryVertexValidation::useTracksFromRecoVtx_ [private] |
Definition at line 117 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and endJob().
double PrimaryVertexValidation::xOfflineVertex_ [private] |
Definition at line 148 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::xPCA_[nMaxtracks_] [private] |
Definition at line 183 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::xUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 186 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::yOfflineVertex_ [private] |
Definition at line 149 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::yPCA_[nMaxtracks_] [private] |
Definition at line 184 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::yUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 187 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::zOfflineVertex_ [private] |
Definition at line 150 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::zPCA_[nMaxtracks_] [private] |
Definition at line 185 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().
double PrimaryVertexValidation::zUnbiasedVertex_[nMaxtracks_] [private] |
Definition at line 188 of file PrimaryVertexValidation.h.
Referenced by analyze(), beginJob(), and SetVarToZero().