CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes
PrimaryVertexValidation Class Reference

#include <Alignment/OfflineValidation/plugins/PrimaryVertexValidation.cc>

Inheritance diagram for PrimaryVertexValidation:
edm::one::EDAnalyzer< edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 PrimaryVertexValidation (const edm::ParameterSet &)
 
 ~PrimaryVertexValidation ()
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::SharedResources >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void add (std::map< std::string, TH1 * > &h, TH1 *hist)
 
virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
std::map< std::string, TH1 * > bookVertexHistograms (TFileDirectory dir)
 
virtual void endJob ()
 
void fill (std::map< std::string, TH1 * > &h, std::string s, double x)
 
void fill (std::map< std::string, TH1 * > &h, std::string s, double x, double y)
 
void fillMap (TH2F *trendMap, TH1F *residualsMapPlot[100][100], TString fitPar_)
 
void fillTrackHistos (std::map< std::string, TH1 * > &h, const std::string &ttype, const reco::TransientTrack *tt, const reco::Vertex &v, const reco::BeamSpot &beamSpot, double fBfield)
 
void fillTrendPlot (TH1F *trendPlot, TH1F *residualsPlot[100], TString fitPar_, TString var_)
 
std::pair< std::pair< Double_t, Double_t >, std::pair< Double_t, Double_t > > fitResiduals (TH1 *hist)
 
std::pair< Double_t, Double_t > getMAD (TH1F *histo)
 
std::pair< Double_t, Double_t > getMedian (TH1F *histo)
 
bool hasFirstLayerPixelHits (const reco::TransientTrack track)
 
bool isHit2D (const TrackingRecHit &hit) const
 
bool passesTrackCuts (const reco::Track &track, const reco::Vertex &vertex, std::string qualityString_, double dxyErrMax_, double dzErrMax_, double ptErrMax_)
 
std::pair< bool, bool > pixelHitsCheck (const reco::TransientTrack track)
 
void SetVarToZero ()
 
double square (double x)
 

Static Private Member Functions

static bool vtxSort (const reco::Vertex &a, const reco::Vertex &b)
 

Private Attributes

TH1F * a_d3DEtaResiduals [nMaxBins_]
 
TH1F * a_d3DPhiResiduals [nMaxBins_]
 
TH1F * a_d3DResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * a_dxEtaResiduals [nMaxBins_]
 
TH1F * a_dxPhiResiduals [nMaxBins_]
 
TH1F * a_dxyBiasResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * a_dxyEtaBiasResiduals [nMaxBins_]
 
TH1F * a_dxyEtaMADBiasTrend
 
TH1F * a_dxyEtaMADTrend
 
TH1F * a_dxyEtaMeanBiasTrend
 
TH1F * a_dxyEtaMeanTrend
 
TH1F * a_dxyEtaMedianBiasTrend
 
TH1F * a_dxyEtaMedianTrend
 
TH1F * a_dxyEtaResiduals [nMaxBins_]
 
TH1F * a_dxyEtaWidthBiasTrend
 
TH1F * a_dxyEtaWidthTrend
 
TH2F * a_dxyMeanBiasMap
 
TH2F * a_dxyMeanMap
 
TH1F * a_dxyPhiBiasResiduals [nMaxBins_]
 
TH1F * a_dxyPhiMADBiasTrend
 
TH1F * a_dxyPhiMADTrend
 
TH1F * a_dxyPhiMeanBiasTrend
 
TH1F * a_dxyPhiMeanTrend
 
TH1F * a_dxyPhiMedianBiasTrend
 
TH1F * a_dxyPhiMedianTrend
 
TH1F * a_dxyPhiResiduals [nMaxBins_]
 
TH1F * a_dxyPhiWidthBiasTrend
 
TH1F * a_dxyPhiWidthTrend
 
TH1F * a_dxyResidualsMap [nMaxBins_][nMaxBins_]
 
TH2F * a_dxyVsEta
 
TH2F * a_dxyVsPhi
 
TH2F * a_dxyWidthBiasMap
 
TH2F * a_dxyWidthMap
 
TH1F * a_dyEtaResiduals [nMaxBins_]
 
TH1F * a_dyPhiResiduals [nMaxBins_]
 
TH1F * a_dzBiasResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * a_dzEtaBiasResiduals [nMaxBins_]
 
TH1F * a_dzEtaMADBiasTrend
 
TH1F * a_dzEtaMADTrend
 
TH1F * a_dzEtaMeanBiasTrend
 
TH1F * a_dzEtaMeanTrend
 
TH1F * a_dzEtaMedianBiasTrend
 
TH1F * a_dzEtaMedianTrend
 
TH1F * a_dzEtaResiduals [nMaxBins_]
 
TH1F * a_dzEtaWidthBiasTrend
 
TH1F * a_dzEtaWidthTrend
 
TH2F * a_dzMeanBiasMap
 
TH2F * a_dzMeanMap
 
TH1F * a_dzPhiBiasResiduals [nMaxBins_]
 
TH1F * a_dzPhiMADBiasTrend
 
TH1F * a_dzPhiMADTrend
 
TH1F * a_dzPhiMeanBiasTrend
 
TH1F * a_dzPhiMeanTrend
 
TH1F * a_dzPhiMedianBiasTrend
 
TH1F * a_dzPhiMedianTrend
 
TH1F * a_dzPhiResiduals [nMaxBins_]
 
TH1F * a_dzPhiWidthBiasTrend
 
TH1F * a_dzPhiWidthTrend
 
TH1F * a_dzResidualsMap [nMaxBins_][nMaxBins_]
 
TH2F * a_dzVsEta
 
TH2F * a_dzVsPhi
 
TH2F * a_dzWidthBiasMap
 
TH2F * a_dzWidthMap
 
TH1F * a_IP2DEtaResiduals [nMaxBins_]
 
TH1F * a_IP2DPhiResiduals [nMaxBins_]
 
TH1F * a_IP3DEtaResiduals [nMaxBins_]
 
TH1F * a_IP3DPhiResiduals [nMaxBins_]
 
TH1F * a_reszEtaResiduals [nMaxBins_]
 
TH1F * a_reszPhiResiduals [nMaxBins_]
 
bool askFirstLayerHit_
 
double Beamdxdz_
 
double Beamsigmaz_
 
double BeamWidthX_
 
double BeamWidthY_
 
double BSx0_
 
double BSy0_
 
double BSz0_
 
int charge_ [nMaxtracks_]
 
double chi2_ [nMaxtracks_]
 
double chi2ndof_ [nMaxtracks_]
 
float chi2normUnbiasedVertex_ [nMaxtracks_]
 
float chi2ProbUnbiasedVertex_ [nMaxtracks_]
 
float chi2UnbiasedVertex_ [nMaxtracks_]
 
double d3DErrorFromMyVertex_ [nMaxtracks_]
 
double d3DFromMyVertex_ [nMaxtracks_]
 
bool debug_
 
bool doBPix_
 
bool doFPix_
 
float DOFUnbiasedVertex_ [nMaxtracks_]
 
double dxy_ [nMaxtracks_]
 
double dxyBs_ [nMaxtracks_]
 
double dxyErrorFromMyVertex_ [nMaxtracks_]
 
double dxyFromMyVertex_ [nMaxtracks_]
 
double dz_ [nMaxtracks_]
 
double dzBs_ [nMaxtracks_]
 
double dzErrorFromMyVertex_ [nMaxtracks_]
 
double dzFromMyVertex_ [nMaxtracks_]
 
double eta_ [nMaxtracks_]
 
double etaOfProbe_
 
float etaSect_
 
unsigned int EventNumber_
 
TH2F * h2_probeEtaPhi_
 
TH2F * h2_probeEtaPt_
 
TH1F * h_Beamsigmaz
 
TH1F * h_BeamWidthX
 
TH1F * h_BeamWidthY
 
TH1F * h_BSx0
 
TH1F * h_BSy0
 
TH1F * h_BSz0
 
TH1F * h_etaMax
 
TH1F * h_fitVtxChi2_
 
TH1F * h_fitVtxChi2ndf_
 
TH1F * h_fitVtxChi2Prob_
 
TH1F * h_fitVtxNdof_
 
TH1F * h_fitVtxNtracks_
 
TH1F * h_fitVtxTrackAverageWeight_
 
TH1F * h_fitVtxTrackWeights_
 
TH1F * h_nbins
 
TH1F * h_nClus
 
TH1F * h_nOfflineVertices
 
TH1F * h_nTracks
 
TH1F * h_probeCharge_
 
TH1F * h_probeChi2_
 
TH1F * h_probed0RefitV_
 
TH1F * h_probed3DRefitV_
 
TH1F * h_probedxyRecoV_
 
TH1F * h_probedxyRefitV_
 
TH1F * h_probedzRecoV_
 
TH1F * h_probedzRefitV_
 
TH1F * h_probeEta_
 
TH1F * h_probeHits1D_
 
TH1F * h_probeHits2D_
 
TH1F * h_probeHits_
 
TH1F * h_probeHitsInBPIX_
 
TH1F * h_probeHitsInFPIX_
 
TH1F * h_probeHitsInTEC_
 
TH1F * h_probeHitsInTIB_
 
TH1F * h_probeHitsInTID_
 
TH1F * h_probeHitsInTOB_
 
TH1F * h_probeNormChi2_
 
TH1F * h_probeP_
 
TH1F * h_probePhi_
 
TH1F * h_probePt_
 
TH1F * h_probeQoverP_
 
TH1F * h_probeRecoVSigXY_
 
TH1F * h_probeRecoVSigZ_
 
TH1F * h_probeRefitVLogSig3D_
 
TH1F * h_probeRefitVSig3D_
 
TH1F * h_probeRefitVSigResZ_
 
TH1F * h_probeRefitVSigXY_
 
TH1F * h_probeRefitVSigZ_
 
TH1F * h_probereszRefitV_
 
TH1F * h_probesignIP2DRefitV_
 
TH1F * h_probez0RefitV_
 
TH1F * h_recoVtxChi2ndf_
 
TH1F * h_recoVtxChi2Prob_
 
TH1F * h_recoVtxNtracks_
 
TH1F * h_recoVtxSumPt_
 
TH1F * h_runNumber
 
TH1F * h_xErrOfflineVertex
 
TH1F * h_xOfflineVertex
 
TH1F * h_yErrOfflineVertex
 
TH1F * h_yOfflineVertex
 
TH1F * h_zErrOfflineVertex
 
TH1F * h_zOfflineVertex
 
int hasRecVertex_ [nMaxtracks_]
 
std::map< std::string, TH1 * > hDA
 
double IP3DsigFromMyVertex_ [nMaxtracks_]
 
double IPLsigFromMyVertex_ [nMaxtracks_]
 
double IPTsigFromMyVertex_ [nMaxtracks_]
 
int isGoodTrack_ [nMaxtracks_]
 
int isHighPurity_ [nMaxtracks_]
 
bool isPhase1_
 
bool lightNtupleSwitch_
 
unsigned int LuminosityBlockNumber_
 
TH1F * n_d3DEtaResiduals [nMaxBins_]
 
TH1F * n_d3DPhiResiduals [nMaxBins_]
 
TH1F * n_d3DResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * n_dxyBiasResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * n_dxyEtaBiasResiduals [nMaxBins_]
 
TH1F * n_dxyEtaMADBiasTrend
 
TH1F * n_dxyEtaMADTrend
 
TH1F * n_dxyEtaMeanBiasTrend
 
TH1F * n_dxyEtaMeanTrend
 
TH1F * n_dxyEtaMedianBiasTrend
 
TH1F * n_dxyEtaMedianTrend
 
TH1F * n_dxyEtaResiduals [nMaxBins_]
 
TH1F * n_dxyEtaWidthBiasTrend
 
TH1F * n_dxyEtaWidthTrend
 
TH2F * n_dxyMeanBiasMap
 
TH2F * n_dxyMeanMap
 
TH1F * n_dxyPhiBiasResiduals [nMaxBins_]
 
TH1F * n_dxyPhiMADBiasTrend
 
TH1F * n_dxyPhiMADTrend
 
TH1F * n_dxyPhiMeanBiasTrend
 
TH1F * n_dxyPhiMeanTrend
 
TH1F * n_dxyPhiMedianBiasTrend
 
TH1F * n_dxyPhiMedianTrend
 
TH1F * n_dxyPhiResiduals [nMaxBins_]
 
TH1F * n_dxyPhiWidthBiasTrend
 
TH1F * n_dxyPhiWidthTrend
 
TH1F * n_dxyResidualsMap [nMaxBins_][nMaxBins_]
 
TH2F * n_dxyVsEta
 
TH2F * n_dxyVsPhi
 
TH2F * n_dxyWidthBiasMap
 
TH2F * n_dxyWidthMap
 
TH1F * n_dzBiasResidualsMap [nMaxBins_][nMaxBins_]
 
TH1F * n_dzEtaBiasResiduals [nMaxBins_]
 
TH1F * n_dzEtaMADBiasTrend
 
TH1F * n_dzEtaMADTrend
 
TH1F * n_dzEtaMeanBiasTrend
 
TH1F * n_dzEtaMeanTrend
 
TH1F * n_dzEtaMedianBiasTrend
 
TH1F * n_dzEtaMedianTrend
 
TH1F * n_dzEtaResiduals [nMaxBins_]
 
TH1F * n_dzEtaWidthBiasTrend
 
TH1F * n_dzEtaWidthTrend
 
TH2F * n_dzMeanBiasMap
 
TH2F * n_dzMeanMap
 
TH1F * n_dzPhiBiasResiduals [nMaxBins_]
 
TH1F * n_dzPhiMADBiasTrend
 
TH1F * n_dzPhiMADTrend
 
TH1F * n_dzPhiMeanBiasTrend
 
TH1F * n_dzPhiMeanTrend
 
TH1F * n_dzPhiMedianBiasTrend
 
TH1F * n_dzPhiMedianTrend
 
TH1F * n_dzPhiResiduals [nMaxBins_]
 
TH1F * n_dzPhiWidthBiasTrend
 
TH1F * n_dzPhiWidthTrend
 
TH1F * n_dzResidualsMap [nMaxBins_][nMaxBins_]
 
TH2F * n_dzVsEta
 
TH2F * n_dzVsPhi
 
TH2F * n_dzWidthBiasMap
 
TH2F * n_dzWidthMap
 
TH1F * n_IP2DEtaResiduals [nMaxBins_]
 
TH1F * n_IP2DPhiResiduals [nMaxBins_]
 
TH1F * n_IP3DEtaResiduals [nMaxBins_]
 
TH1F * n_IP3DPhiResiduals [nMaxBins_]
 
TH1F * n_reszEtaResiduals [nMaxBins_]
 
TH1F * n_reszPhiResiduals [nMaxBins_]
 
int nBins_
 
int nClus_
 
int Nevt_
 
int nhits1D_ [nMaxtracks_]
 
int nhits2D_ [nMaxtracks_]
 
int nhits_ [nMaxtracks_]
 
int nhitsBPIX_ [nMaxtracks_]
 
int nhitsFPIX_ [nMaxtracks_]
 
int nhitsTEC_ [nMaxtracks_]
 
int nhitsTIB_ [nMaxtracks_]
 
int nhitsTID_ [nMaxtracks_]
 
int nhitsTOB_ [nMaxtracks_]
 
int nOfflineVertices_
 
int nTracks_
 
int nTracksPerClus_
 
double p_ [nMaxtracks_]
 
double phi_ [nMaxtracks_]
 
float phiSect_
 
double pt_ [nMaxtracks_]
 
double ptOfProbe_
 
double qoverp_ [nMaxtracks_]
 
TTree * rootTree_
 
bool runControl_
 
std::vector< unsigned int > runControlNumbers_
 
unsigned int RunNumber_
 
bool storeNtuple_
 
float sumOfWeightsUnbiasedVertex_ [nMaxtracks_]
 
edm::EDGetTokenT< reco::BeamSpottheBeamspotToken
 
edm::ParameterSet theConfig
 
double theta_ [nMaxtracks_]
 
TrackClusterizerInZtheTrackClusterizer_
 
edm::EDGetTokenT< reco::TrackCollectiontheTrackCollectionToken
 
TrackFilterForPVFindingBasetheTrackFilter_
 
edm::EDGetTokenT< reco::VertexCollectiontheVertexCollectionToken
 
int tracksUsedForVertexing_ [nMaxtracks_]
 
bool useTracksFromRecoVtx_
 
double vertexZMax_
 
double wxy2_
 
double xErrOfflineVertex_
 
double xOfflineVertex_
 
double xPCA_ [nMaxtracks_]
 
double xUnbiasedVertex_ [nMaxtracks_]
 
double yErrOfflineVertex_
 
double yOfflineVertex_
 
double yPCA_ [nMaxtracks_]
 
double yUnbiasedVertex_ [nMaxtracks_]
 
double zErrOfflineVertex_
 
double zOfflineVertex_
 
double zPCA_ [nMaxtracks_]
 
double zUnbiasedVertex_ [nMaxtracks_]
 

Static Private Attributes

static const int cmToum = 10000
 
static const int nMaxBins_ = 100
 
static const int nMaxtracks_ = 1000
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: Validate alignment constants using unbiased vertex residuals

Implementation: <Notes on="" implementation>="">

Definition at line 60 of file PrimaryVertexValidation.h.

Constructor & Destructor Documentation

PrimaryVertexValidation::PrimaryVertexValidation ( const edm::ParameterSet iConfig)
explicit

Definition at line 65 of file PrimaryVertexValidation.cc.

References etaOfProbe_, etaSect_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), TFileService::kSharedResource, nBins_, phiSect_, Pi, runControlNumbers_, AlCaHLTBitMon_QueryRunRegistry::string, theBeamspotToken, theTrackClusterizer_, theTrackCollectionToken, theTrackFilter_, and theVertexCollectionToken.

65  :
66  storeNtuple_(iConfig.getParameter<bool>("storeNtuple")),
67  lightNtupleSwitch_(iConfig.getParameter<bool>("isLightNtuple")),
68  useTracksFromRecoVtx_(iConfig.getParameter<bool>("useTracksFromRecoVtx")),
69  vertexZMax_(iConfig.getUntrackedParameter<double>("vertexZMax",99.)),
70  askFirstLayerHit_(iConfig.getParameter<bool>("askFirstLayerHit")),
71  doBPix_(iConfig.getUntrackedParameter<bool>("doBPix",true)),
72  doFPix_(iConfig.getUntrackedParameter<bool>("doFPix",true)),
73  ptOfProbe_(iConfig.getUntrackedParameter<double>("probePt",0.)),
74  etaOfProbe_(iConfig.getUntrackedParameter<double>("probeEta",2.4)),
75  nBins_(iConfig.getUntrackedParameter<int>("numberOfBins",24)),
76  debug_(iConfig.getParameter<bool>("Debug")),
77  runControl_(iConfig.getUntrackedParameter<bool>("runControl",false))
78 {
79 
80  // now do what ever initialization is needed
81  // initialize phase space boundaries
82 
83  usesResource(TFileService::kSharedResource);
84 
85  std::vector<unsigned int> defaultRuns;
86  defaultRuns.push_back(0);
87  runControlNumbers_ = iConfig.getUntrackedParameter<std::vector<unsigned int> >("runControlNumber",defaultRuns);
88 
89  phiSect_ = (2*TMath::Pi())/nBins_;
91 
92  edm::InputTag TrackCollectionTag_ = iConfig.getParameter<edm::InputTag>("TrackCollectionTag");
93  theTrackCollectionToken = consumes<reco::TrackCollection>(TrackCollectionTag_);
94 
95  edm::InputTag VertexCollectionTag_ = iConfig.getParameter<edm::InputTag>("VertexCollectionTag");
96  theVertexCollectionToken = consumes<reco::VertexCollection>(VertexCollectionTag_);
97 
98  edm::InputTag BeamspotTag_ = edm::InputTag("offlineBeamSpot");
99  theBeamspotToken = consumes<reco::BeamSpot>(BeamspotTag_);
100 
101  // select and configure the track filter
102  theTrackFilter_= new TrackFilterForPVFinding(iConfig.getParameter<edm::ParameterSet>("TkFilterParameters") );
103  // select and configure the track clusterizer
104  std::string clusteringAlgorithm=iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<std::string>("algorithm");
105  if (clusteringAlgorithm=="gap"){
106  theTrackClusterizer_ = new GapClusterizerInZ(iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkGapClusParameters"));
107  }else if(clusteringAlgorithm=="DA"){
108  theTrackClusterizer_ = new DAClusterizerInZ(iConfig.getParameter<edm::ParameterSet>("TkClusParameters").getParameter<edm::ParameterSet>("TkDAClusParameters"));
109  }else{
110  throw VertexException("PrimaryVertexProducerAlgorithm: unknown clustering algorithm: " + clusteringAlgorithm);
111  }
112 }
static const std::string kSharedResource
Definition: TFileService.h:76
const double Pi
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< unsigned int > runControlNumbers_
TrackFilterForPVFindingBase * theTrackFilter_
Common base class.
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionToken
TrackClusterizerInZ * theTrackClusterizer_
edm::EDGetTokenT< reco::BeamSpot > theBeamspotToken
edm::EDGetTokenT< reco::TrackCollection > theTrackCollectionToken
PrimaryVertexValidation::~PrimaryVertexValidation ( )

Definition at line 115 of file PrimaryVertexValidation.cc.

116 {
117  // do anything here that needs to be done at desctruction time
118  // (e.g. close files, deallocate resources etc.)
119 }

Member Function Documentation

void PrimaryVertexValidation::add ( std::map< std::string, TH1 * > &  h,
TH1 *  hist 
)
private

Definition at line 2435 of file PrimaryVertexValidation.cc.

References create_public_lumi_plots::hist.

Referenced by counter.Counter::register().

2437 {
2438  h[hist->GetName()]=hist;
2439  hist->StatOverflows(kTRUE);
2440 }
void PrimaryVertexValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Definition at line 128 of file PrimaryVertexValidation.cc.

References a_d3DEtaResiduals, a_d3DPhiResiduals, a_d3DResidualsMap, a_dxEtaResiduals, a_dxPhiResiduals, a_dxyBiasResidualsMap, a_dxyEtaBiasResiduals, a_dxyEtaResiduals, a_dxyPhiBiasResiduals, a_dxyPhiResiduals, a_dxyResidualsMap, a_dxyVsEta, a_dxyVsPhi, a_dyEtaResiduals, a_dyPhiResiduals, a_dzBiasResidualsMap, a_dzEtaBiasResiduals, a_dzEtaResiduals, a_dzPhiBiasResiduals, a_dzPhiResiduals, a_dzResidualsMap, a_dzVsEta, a_dzVsPhi, a_IP2DEtaResiduals, a_IP2DPhiResiduals, a_IP3DEtaResiduals, a_IP3DPhiResiduals, a_reszEtaResiduals, a_reszPhiResiduals, funct::abs(), IPTools::absoluteImpactParameter3D(), askFirstLayerHit_, Beamdxdz_, Beamsigmaz_, ecalDrivenElectronSeedsParameters_cff::beamSpot, reco::BeamSpot::BeamWidthX(), BeamWidthX_, reco::BeamSpot::BeamWidthY(), BeamWidthY_, BSx0_, BSy0_, BSz0_, TransientTrackBuilder::build(), reco::TrackBase::charge(), charge_, reco::Vertex::chi2(), reco::TrackBase::chi2(), chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2ProbUnbiasedVertex_, chi2UnbiasedVertex_, TrackClusterizerInZ::clusterize(), fastPrimaryVertexProducer_cfi::clusters, cmToum, GlobalErrorBase< T, ErrorWeightType >::czz(), allConversions_cfi::d0, reco::TrackBase::d0Error(), d3DErrorFromMyVertex_, d3DFromMyVertex_, debug_, TransientVertex::degreesOfFreedom(), TrackerGeometry::dets(), doBPix_, doFPix_, DOFUnbiasedVertex_, reco::BeamSpot::dxdz(), reco::TrackBase::dxy(), dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, reco::TrackBase::dz(), dz_, dzBs_, reco::TrackBase::dzError(), dzErrorFromMyVertex_, dzFromMyVertex_, reco::TrackBase::eta(), eta_, etaOfProbe_, etaSect_, edm::EventID::event(), edm::Event::eventAuxiliary(), EventNumber_, fillTrackHistos(), edm::EventSetup::get(), edm::Event::getByToken(), h2_probeEtaPhi_, h2_probeEtaPt_, h_Beamsigmaz, h_BeamWidthX, h_BeamWidthY, h_BSx0, h_BSy0, h_BSz0, h_etaMax, h_fitVtxChi2_, h_fitVtxChi2ndf_, h_fitVtxChi2Prob_, h_fitVtxNdof_, h_fitVtxNtracks_, h_fitVtxTrackAverageWeight_, h_fitVtxTrackWeights_, h_nbins, h_nClus, h_nOfflineVertices, h_nTracks, h_probeCharge_, h_probeChi2_, h_probed0RefitV_, h_probed3DRefitV_, h_probedxyRecoV_, h_probedxyRefitV_, h_probedzRecoV_, h_probedzRefitV_, h_probeEta_, h_probeHits1D_, h_probeHits2D_, h_probeHits_, h_probeHitsInBPIX_, h_probeHitsInFPIX_, h_probeHitsInTEC_, h_probeHitsInTIB_, h_probeHitsInTID_, h_probeHitsInTOB_, h_probeNormChi2_, h_probeP_, h_probePhi_, h_probePt_, h_probeQoverP_, h_probeRecoVSigXY_, h_probeRecoVSigZ_, h_probeRefitVLogSig3D_, h_probeRefitVSig3D_, h_probeRefitVSigResZ_, h_probeRefitVSigXY_, h_probeRefitVSigZ_, h_probereszRefitV_, h_probesignIP2DRefitV_, h_probez0RefitV_, h_recoVtxChi2ndf_, h_recoVtxChi2Prob_, h_recoVtxNtracks_, h_recoVtxSumPt_, h_runNumber, h_xErrOfflineVertex, h_xOfflineVertex, h_yErrOfflineVertex, h_yOfflineVertex, h_zErrOfflineVertex, h_zOfflineVertex, hasFirstLayerPixelHits(), hasRecVertex_, TransientVertex::hasTrackWeight(), hDA, reco::TrackBase::hitPattern(), hfClusterShapes_cfi::hits, i, edm::EventAuxiliary::id(), createfilelist::int, IP3DsigFromMyVertex_, IPLsigFromMyVertex_, IPTsigFromMyVertex_, isGoodTrack_, isHighPurity_, isHit2D(), isPhase1_, TrackerGeometry::isThere(), reco::Vertex::isValid(), edm::HandleBase::isValid(), TransientVertex::isValid(), j, gen::k, LogTrace, PerigeeTrajectoryParameters::longitudinalImpactParameter(), PerigeeTrajectoryError::longitudinalImpactParameterError(), edm::EventAuxiliary::luminosityBlock(), LuminosityBlockNumber_, min(), n_d3DEtaResiduals, n_d3DPhiResiduals, n_d3DResidualsMap, n_dxyBiasResidualsMap, n_dxyEtaBiasResiduals, n_dxyEtaResiduals, n_dxyPhiBiasResiduals, n_dxyPhiResiduals, n_dxyResidualsMap, n_dxyVsEta, n_dxyVsPhi, n_dzBiasResidualsMap, n_dzEtaBiasResiduals, n_dzEtaResiduals, n_dzPhiBiasResiduals, n_dzPhiResiduals, n_dzResidualsMap, n_dzVsEta, n_dzVsPhi, n_IP2DEtaResiduals, n_IP2DPhiResiduals, n_IP3DEtaResiduals, n_IP3DPhiResiduals, n_reszEtaResiduals, n_reszPhiResiduals, nBins_, nClus_, reco::Vertex::ndof(), Nevt_, nhits1D_, nhits2D_, nhits_, nhitsBPIX_, nhitsFPIX_, nhitsTEC_, nhitsTIB_, nhitsTID_, nhitsTOB_, nMaxtracks_, nOfflineVertices_, TransientVertex::normalisedChiSquared(), reco::Vertex::normalizedChi2(), reco::TrackBase::normalizedChi2(), nTracks_, nTracksPerClus_, reco::TrackBase::numberOfValidHits(), reco::HitPattern::numberOfValidPixelBarrelHits(), reco::HitPattern::numberOfValidPixelEndcapHits(), reco::HitPattern::numberOfValidStripTECHits(), reco::HitPattern::numberOfValidStripTIBHits(), reco::HitPattern::numberOfValidStripTIDHits(), reco::HitPattern::numberOfValidStripTOBHits(), reco::TrackBase::p(), GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, p_, TrajectoryStateClosestToPoint::perigeeError(), TrajectoryStateClosestToPoint::perigeeParameters(), reco::TrackBase::phi(), phi_, phiSect_, Pi, pixelHitsCheck(), point, FreeTrajectoryState::position(), TrajectoryStateClosestToPoint::position(), reco::Vertex::position(), TransientVertex::position(), position, TransientVertex::positionError(), funct::pow(), EnergyCorrector::pt, reco::TrackBase::pt(), pt_, ptOfProbe_, MetAnalyzer::pv(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), reco::TrackBase::qoverp(), qoverp_, reco::TrackBase::quality(), rootTree_, edm::EventAuxiliary::run(), runControl_, runControlNumbers_, RunNumber_, TrackFilterForPVFindingBase::select(), reco::TransientTrack::setBeamSpot(), SetVarToZero(), reco::BeamSpot::sigmaZ(), IPTools::signedImpactParameter3D(), IPTools::signedTransverseImpactParameter(), mathSSE::sqrt(), storeNtuple_, sumOfWeightsUnbiasedVertex_, funct::tan(), theBeamspotToken, TrajectoryStateClosestToPoint::theState(), reco::TrackBase::theta(), theta_, theTrackClusterizer_, theTrackCollectionToken, theTrackFilter_, theVertexCollectionToken, TransientVertex::totalChiSquared(), HiIsolationCommonParameters_cff::track, reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), reco::Vertex::tracksSize(), tracksUsedForVertexing_, TransientVertex::trackWeight(), PerigeeTrajectoryParameters::transverseImpactParameter(), groupFilesInBlocks::tt, useTracksFromRecoVtx_, VertexFitter< N >::vertex(), reco::TrackBase::vertex(), vertexZMax_, primaryVertexAssociation_cfi::vertices, vtxSort(), cms::Exception::what(), wxy2_, x, PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), xErrOfflineVertex_, xOfflineVertex_, xPCA_, xUnbiasedVertex_, y, PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), yErrOfflineVertex_, yOfflineVertex_, yPCA_, yUnbiasedVertex_, z, PV3DBase< T, PVType, FrameType >::z(), reco::BeamSpot::z0(), zErrOfflineVertex_, zOfflineVertex_, zPCA_, zUnbiasedVertex_, and CombinatorialSeedGeneratorForCosmicsRegionalReconstruction_cfi::zVertex.

129 {
130 
131  using namespace std;
132  using namespace reco;
133  using namespace IPTools;
134 
135  if(nBins_!=24){
136  edm::LogInfo("PrimaryVertexValidation")<<"Using: "<<nBins_<<" bins plots";
137  }
138 
139  bool passesRunControl = false;
140 
141  if(runControl_){
142  for(unsigned int j=0;j<runControlNumbers_.size();j++){
143  if(iEvent.eventAuxiliary().run() == runControlNumbers_[j]){
144  if (debug_){
145  edm::LogInfo("PrimaryVertexValidation")<<" run number: "<<iEvent.eventAuxiliary().run()<<" keeping run:"<<runControlNumbers_[j];
146  }
147  passesRunControl = true;
148  break;
149  }
150  }
151  if (!passesRunControl) return;
152  }
153 
154  Nevt_++;
155 
156  //=======================================================
157  // Initialize Root-tuple variables
158  //=======================================================
159 
160  SetVarToZero();
161 
162  //=======================================================
163  // Retrieve the Magnetic Field information
164  //=======================================================
165 
166  edm::ESHandle<MagneticField> theMGField;
167  iSetup.get<IdealMagneticFieldRecord>().get( theMGField );
168 
169  //=======================================================
170  // Retrieve the Tracking Geometry information
171  //=======================================================
172 
173  edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
174  iSetup.get<GlobalTrackingGeometryRecord>().get( theTrackingGeometry );
175 
176  //=======================================================
177  // Retrieve geometry information
178  //=======================================================
179 
180  edm::LogInfo("read tracker geometry...");
182  iSetup.get<TrackerDigiGeometryRecord>().get( pDD );
183  edm::LogInfo("tracker geometry read")<<"There are: "<< pDD->dets().size() <<" detectors";
184 
185  // switch on the phase1
186  if( (pDD->isThere(GeomDetEnumerators::P1PXB)) ||
188  isPhase1_ = true;
189  edm::LogInfo("PrimaryVertexValidation")<<" pixel phase1 setup ";
190  } else {
191  isPhase1_ = false;
192  edm::LogInfo("PrimaryVertexValidation")<<" pixel phase0 setup ";
193  }
194 
195  if(isPhase1_){
197  } else {
199  }
200 
201  if(h_etaMax->GetEntries()==0.){
202  h_etaMax->SetBinContent(1,etaOfProbe_);
203  h_nbins->SetBinContent(1,nBins_);
204  }
205 
206  //=======================================================
207  // Retrieve the Transient Track Builder information
208  //=======================================================
209 
211  iSetup.get<TransientTrackRecord>().get("TransientTrackBuilder",theB_);
212  double fBfield_=((*theB_).field()->inTesla(GlobalPoint(0.,0.,0.))).z();
213 
214  //=======================================================
215  // Retrieve the Track information
216  //=======================================================
217 
218  edm::Handle<TrackCollection> trackCollectionHandle;
219  iEvent.getByToken(theTrackCollectionToken, trackCollectionHandle);
220 
221  //=======================================================
222  // Retrieve offline vartex information (only for reco)
223  //=======================================================
224 
225  //edm::Handle<VertexCollection> vertices;
227 
228  try {
229  iEvent.getByToken(theVertexCollectionToken, vertices);
230  } catch ( cms::Exception& er ) {
231  LogTrace("PrimaryVertexValidation")<<"caught std::exception "<<er.what()<<std::endl;
232  }
233 
234  std::vector<Vertex> vsorted = *(vertices);
235  // sort the vertices by number of tracks in descending order
236  // use chi2 as tiebreaker
237  std::sort( vsorted.begin(), vsorted.end(), PrimaryVertexValidation::vtxSort );
238 
239  // skip events with no PV, this should not happen
240  if( vsorted.size() == 0) return;
241  // skip events failing vertex cut
242  if( fabs(vsorted[0].z()) > vertexZMax_ ) return;
243 
244  if ( vsorted[0].isValid() ) {
245  xOfflineVertex_ = (vsorted)[0].x();
246  yOfflineVertex_ = (vsorted)[0].y();
247  zOfflineVertex_ = (vsorted)[0].z();
248 
249  xErrOfflineVertex_ = (vsorted)[0].xError();
250  yErrOfflineVertex_ = (vsorted)[0].yError();
251  zErrOfflineVertex_ = (vsorted)[0].zError();
252  }
253 
260 
261  unsigned int vertexCollectionSize = vsorted.size();
262  int nvvertex = 0;
263 
264  for (unsigned int i=0; i<vertexCollectionSize; i++) {
265  const Vertex& vertex = vsorted.at(i);
266  if (vertex.isValid()) nvvertex++;
267  }
268 
269  nOfflineVertices_ = nvvertex;
270  h_nOfflineVertices->Fill(nvvertex);
271 
272  if ( vsorted.size() && useTracksFromRecoVtx_ ) {
273 
274  double sumpt = 0;
275  size_t ntracks = 0;
276  double chi2ndf = 0.;
277  double chi2prob = 0.;
278 
279  if (!vsorted.at(0).isFake()) {
280 
281  Vertex pv = vsorted.at(0);
282 
283  ntracks = pv.tracksSize();
284  chi2ndf = pv.normalizedChi2();
285  chi2prob = TMath::Prob(pv.chi2(),(int)pv.ndof());
286 
287  h_recoVtxNtracks_->Fill(ntracks);
288  h_recoVtxChi2ndf_->Fill(chi2ndf);
289  h_recoVtxChi2Prob_->Fill(chi2prob);
290 
291  for (Vertex::trackRef_iterator itrk = pv.tracks_begin();itrk != pv.tracks_end(); ++itrk) {
292  double pt = (**itrk).pt();
293  sumpt += pt*pt;
294 
295  const math::XYZPoint myVertex(pv.position().x(),pv.position().y(),pv.position().z());
296 
297  double dxyRes = (**itrk).dxy(myVertex);
298  double dzRes = (**itrk).dz(myVertex);
299 
300  double dxy_err = (**itrk).dxyError();
301  double dz_err = (**itrk).dzError();
302 
303  float trackphi = ((**itrk).phi())*(180/TMath::Pi());
304  float tracketa = (**itrk).eta();
305 
306  for(int i=0; i<nBins_; i++){
307 
308  float phiF = (-TMath::Pi()+i*phiSect_)*(180/TMath::Pi());
309  float phiL = (-TMath::Pi()+(i+1)*phiSect_)*(180/TMath::Pi());
310 
311  float etaF=-etaOfProbe_+i*etaSect_;
312  float etaL=-etaOfProbe_+(i+1)*etaSect_;
313 
314  if(tracketa >= etaF && tracketa < etaL ){
315 
316  a_dxyEtaBiasResiduals[i]->Fill(dxyRes*cmToum);
317  a_dzEtaBiasResiduals[i]->Fill(dzRes*cmToum);
318  n_dxyEtaBiasResiduals[i]->Fill((dxyRes)/dxy_err);
319  n_dzEtaBiasResiduals[i]->Fill((dzRes)/dz_err);
320 
321  }
322 
323  if(trackphi >= phiF && trackphi < phiL ){
324 
325  a_dxyPhiBiasResiduals[i]->Fill(dxyRes*cmToum);
326  a_dzPhiBiasResiduals[i]->Fill(dzRes*cmToum);
327  n_dxyPhiBiasResiduals[i]->Fill((dxyRes)/dxy_err);
328  n_dzPhiBiasResiduals[i]->Fill((dzRes)/dz_err);
329 
330  for(int j=0; j<nBins_; j++){
331 
332  float etaJ=-etaOfProbe_+j*etaSect_;
333  float etaK=-etaOfProbe_+(j+1)*etaSect_;
334 
335  if(tracketa >= etaJ && tracketa < etaK ){
336 
337  a_dxyBiasResidualsMap[i][j]->Fill(dxyRes*cmToum);
338  a_dzBiasResidualsMap[i][j]->Fill(dzRes*cmToum);
339 
340  n_dxyBiasResidualsMap[i][j]->Fill((dxyRes)/dxy_err);
341  n_dzBiasResidualsMap[i][j]->Fill((dzRes)/dz_err);
342 
343  }
344  }
345  }
346  }
347  }
348 
349  h_recoVtxSumPt_->Fill(sumpt);
350 
351  }
352  }
353 
354  //=======================================================
355  // Retrieve Beamspot information
356  //=======================================================
357 
359  edm::Handle<BeamSpot> beamSpotHandle;
360  iEvent.getByToken(theBeamspotToken, beamSpotHandle);
361 
362  if ( beamSpotHandle.isValid() ) {
363  beamSpot = *beamSpotHandle;
364  BSx0_ = beamSpot.x0();
365  BSy0_ = beamSpot.y0();
366  BSz0_ = beamSpot.z0();
367  Beamsigmaz_ = beamSpot.sigmaZ();
368  Beamdxdz_ = beamSpot.dxdz();
369  BeamWidthX_ = beamSpot.BeamWidthX();
370  BeamWidthY_ = beamSpot.BeamWidthY();
371 
372  wxy2_=TMath::Power(BeamWidthX_,2)+TMath::Power(BeamWidthY_,2);
373 
374  } else {
375  edm::LogWarning("PrimaryVertexValidation")<<"No BeamSpot found!";
376  }
377 
378  h_BSx0->Fill(BSx0_);
379  h_BSy0->Fill(BSy0_);
380  h_BSz0->Fill(BSz0_);
381  h_Beamsigmaz->Fill(Beamsigmaz_);
382  h_BeamWidthX->Fill(BeamWidthX_);
383  h_BeamWidthY->Fill(BeamWidthY_);
384 
385  if(debug_)
386  edm::LogInfo("PrimaryVertexValidation")<<"Beamspot x:" <<BSx0_<<" y:"<<BSy0_<<" z:"<<BSz0_;
387 
388  //=======================================================
389  // Starts here ananlysis
390  //=======================================================
391 
392  RunNumber_=iEvent.eventAuxiliary().run();
393  h_runNumber->Fill(RunNumber_);
395  EventNumber_=iEvent.eventAuxiliary().id().event();
396 
397  if(debug_)
398  edm::LogInfo("PrimaryVertexValidation")<<" looping over "<<trackCollectionHandle->size()<< "tracks";
399 
400  h_nTracks->Fill(trackCollectionHandle->size());
401 
402  //======================================================
403  // Interface RECO tracks to vertex reconstruction
404  //======================================================
405 
406  std::vector<TransientTrack> t_tks;
407  unsigned int k = 0;
408  for(TrackCollection::const_iterator track = trackCollectionHandle->begin(); track!= trackCollectionHandle->end(); ++track, ++k){
409 
410  TransientTrack tt = theB_->build(&(*track));
411  tt.setBeamSpot(beamSpot);
412  t_tks.push_back(tt);
413 
414  }
415 
416  if(debug_) {
417  edm::LogInfo("PrimaryVertexValidation") << "Found: " << t_tks.size() << " reconstructed tracks";
418  }
419 
420  //======================================================
421  // select the tracks
422  //======================================================
423 
424  std::vector<TransientTrack> seltks = theTrackFilter_->select(t_tks);
425 
426  //======================================================
427  // clusterize tracks in Z
428  //======================================================
429 
430  vector< vector<TransientTrack> > clusters = theTrackClusterizer_->clusterize(seltks);
431 
432  if (debug_){
433  edm::LogInfo("PrimaryVertexValidation")<<" looping over: "<< clusters.size() << " clusters from " << t_tks.size() << " selected tracks";
434  }
435 
436  nClus_=clusters.size();
437  h_nClus->Fill(nClus_);
438 
439  //======================================================
440  // Starts loop on clusters
441  //======================================================
442 
443  for (vector< vector<TransientTrack> >::const_iterator iclus = clusters.begin(); iclus != clusters.end(); iclus++) {
444 
445  nTracksPerClus_=0;
446 
447  unsigned int i = 0;
448  for(vector<TransientTrack>::const_iterator theTTrack = iclus->begin(); theTTrack!= iclus->end(); ++theTTrack, ++i)
449  {
450  if ( nTracks_ >= nMaxtracks_ ) {
451  edm::LogError("PrimaryVertexValidation")<<" Warning - Number of tracks: " << nTracks_ << " , greater than " << nMaxtracks_;
452  continue;
453  }
454 
455  const Track & theTrack = theTTrack->track();
456 
457  pt_[nTracks_] = theTrack.pt();
458  p_[nTracks_] = theTrack.p();
459  nhits_[nTracks_] = theTrack.numberOfValidHits();
460  eta_[nTracks_] = theTrack.eta();
461  theta_[nTracks_] = theTrack.theta();
462  phi_[nTracks_] = theTrack.phi();
463  chi2_[nTracks_] = theTrack.chi2();
464  chi2ndof_[nTracks_] = theTrack.normalizedChi2();
465  charge_[nTracks_] = theTrack.charge();
466  qoverp_[nTracks_] = theTrack.qoverp();
467  dz_[nTracks_] = theTrack.dz();
468  dxy_[nTracks_] = theTrack.dxy();
469 
470  TrackBase::TrackQuality _trackQuality = TrackBase::qualityByName("highPurity");
471  isHighPurity_[nTracks_] = theTrack.quality(_trackQuality);
472 
474  dxyBs_[nTracks_] = theTrack.dxy(point);
475  dzBs_[nTracks_] = theTrack.dz(point);
476 
477  xPCA_[nTracks_] = theTrack.vertex().x();
478  yPCA_[nTracks_] = theTrack.vertex().y();
479  zPCA_[nTracks_] = theTrack.vertex().z();
480 
481  //=======================================================
482  // Retrieve rechit information
483  //=======================================================
484 
485  const reco::HitPattern& hits = theTrack.hitPattern();
486 
487  int nRecHit1D=0;
488  int nRecHit2D=0;
489  int nhitinTIB = hits.numberOfValidStripTIBHits();
490  int nhitinTOB = hits.numberOfValidStripTOBHits();
491  int nhitinTID = hits.numberOfValidStripTIDHits();
492  int nhitinTEC = hits.numberOfValidStripTECHits();
493  int nhitinBPIX = hits.numberOfValidPixelBarrelHits();
494  int nhitinFPIX = hits.numberOfValidPixelEndcapHits();
495 
496  for (trackingRecHit_iterator iHit = theTTrack->recHitsBegin(); iHit != theTTrack->recHitsEnd(); ++iHit) {
497  if((*iHit)->isValid()) {
498 
499  if (this->isHit2D(**iHit)) {++nRecHit2D;}
500  else {++nRecHit1D; }
501  }
502  }
503 
504  nhits1D_[nTracks_] = nRecHit1D;
505  nhits2D_[nTracks_] = nRecHit2D;
506  nhitsBPIX_[nTracks_] = nhitinBPIX;
507  nhitsFPIX_[nTracks_] = nhitinFPIX;
508  nhitsTIB_[nTracks_] = nhitinTIB;
509  nhitsTID_[nTracks_] = nhitinTID;
510  nhitsTOB_[nTracks_] = nhitinTOB;
511  nhitsTEC_[nTracks_] = nhitinTEC;
512 
513  //=======================================================
514  // Good tracks for vertexing selection
515  //=======================================================
516 
517  bool pass = true;
518  if(askFirstLayerHit_) pass = this->hasFirstLayerPixelHits((*theTTrack));
519  if (pass && (theTrack.pt() >=ptOfProbe_) && fabs(theTrack.eta()) <= etaOfProbe_){
521  }
522 
523  //=======================================================
524  // Fit unbiased vertex
525  //=======================================================
526 
527  vector<TransientTrack> theFinalTracks;
528  theFinalTracks.clear();
529 
530  for(vector<TransientTrack>::const_iterator tk = iclus->begin(); tk!= iclus->end(); ++tk){
531 
532  pass = this->hasFirstLayerPixelHits((*tk));
533  if (pass){
534  if( tk == theTTrack ) continue;
535  else {
536  theFinalTracks.push_back((*tk));
537  }
538  }
539  }
540 
541  if(theFinalTracks.size() > 1){
542 
543  if(debug_)
544  edm::LogInfo("PrimaryVertexValidation")<<"Transient Track Collection size: "<<theFinalTracks.size();
545  try{
546 
547  VertexFitter<5>* theFitter = new AdaptiveVertexFitter;
548  TransientVertex theFittedVertex = theFitter->vertex(theFinalTracks);
549 
550  //AdaptiveVertexFitter* theFitter = new AdaptiveVertexFitter;
551  //TransientVertex theFittedVertex = theFitter->vertex(theFinalTracks,beamSpot); // if you want the beam constraint
552 
553  double totalTrackWeights=0;
554  if(theFittedVertex.isValid ()){
555 
556 
557  if(theFittedVertex.hasTrackWeight()){
558  for(size_t rtracks= 0; rtracks < theFinalTracks.size(); rtracks++){
559  sumOfWeightsUnbiasedVertex_[nTracks_] += theFittedVertex.trackWeight(theFinalTracks[rtracks]);
560  totalTrackWeights+= theFittedVertex.trackWeight(theFinalTracks[rtracks]);
561  h_fitVtxTrackWeights_->Fill(theFittedVertex.trackWeight(theFinalTracks[rtracks]));
562  }
563  }
564 
565  h_fitVtxTrackAverageWeight_->Fill(totalTrackWeights/theFinalTracks.size());
566 
568  const math::XYZPoint myVertex(theFittedVertex.position().x(),theFittedVertex.position().y(),theFittedVertex.position().z());
569 
570  const Vertex vertex = theFittedVertex;
571  fillTrackHistos(hDA,"all",&(*theTTrack),vertex,beamSpot,fBfield_);
572 
573  hasRecVertex_[nTracks_] = 1;
574  xUnbiasedVertex_[nTracks_] = theFittedVertex.position().x();
575  yUnbiasedVertex_[nTracks_] = theFittedVertex.position().y();
576  zUnbiasedVertex_[nTracks_] = theFittedVertex.position().z();
577 
579  chi2UnbiasedVertex_[nTracks_] = theFittedVertex.totalChiSquared();
580  DOFUnbiasedVertex_[nTracks_] = theFittedVertex.degreesOfFreedom();
581  chi2ProbUnbiasedVertex_[nTracks_] = TMath::Prob(theFittedVertex.totalChiSquared(),(int)theFittedVertex.degreesOfFreedom());
582  tracksUsedForVertexing_[nTracks_] = theFinalTracks.size();
583 
584  h_fitVtxNtracks_->Fill(theFinalTracks.size());
585  h_fitVtxChi2_->Fill(theFittedVertex.totalChiSquared());
586  h_fitVtxNdof_->Fill(theFittedVertex.degreesOfFreedom());
587  h_fitVtxChi2ndf_->Fill(theFittedVertex.normalisedChiSquared());
588  h_fitVtxChi2Prob_->Fill(TMath::Prob(theFittedVertex.totalChiSquared(),(int)theFittedVertex.degreesOfFreedom()));
589 
590  // from my Vertex
591  double dxyFromMyVertex = theTrack.dxy(myVertex);
592  double dzFromMyVertex = theTrack.dz(myVertex);
593 
594  GlobalPoint vert(theFittedVertex.position().x(),theFittedVertex.position().y(),theFittedVertex.position().z());
595 
596  //FreeTrajectoryState theTrackNearVertex = (*theTTrack).trajectoryStateClosestToPoint(vert).theState();
597  //double dz_err = sqrt(theFittedVertex.positionError().czz() + theTrackNearVertex.cartesianError().position().czz());
598  //double dz_err = hypot(theTrack.dzError(),theFittedVertex.positionError().czz());
599 
600  double dz_err = sqrt(std::pow(theTrack.dzError(), 2) + theFittedVertex.positionError().czz());
601 
602 
603  // PV2D
604  std::pair<bool,Measurement1D> s_ip2dpv = signedTransverseImpactParameter(*theTTrack,
605  GlobalVector(theTrack.px(),
606  theTrack.py(),
607  theTrack.pz()),
608  theFittedVertex);
609 
610  double s_ip2dpv_corr = s_ip2dpv.second.value();
611  double s_ip2dpv_err = s_ip2dpv.second.error();
612 
613  // PV3D
614  std::pair<bool, Measurement1D> s_ip3dpv = signedImpactParameter3D(*theTTrack,
615  GlobalVector(theTrack.px(),
616  theTrack.py(),
617  theTrack.pz()),
618  theFittedVertex);
619 
620  double s_ip3dpv_corr = s_ip3dpv.second.value();
621  double s_ip3dpv_err = s_ip3dpv.second.error();
622 
623  // PV3D absolute
624  std::pair<bool,Measurement1D> ip3dpv = absoluteImpactParameter3D(*theTTrack,theFittedVertex);
625  double ip3d_corr = ip3dpv.second.value();
626  double ip3d_err = ip3dpv.second.error();
627 
628  // with respect to any specified vertex, such as primary vertex
629  TrajectoryStateClosestToPoint traj = (*theTTrack).trajectoryStateClosestToPoint(vert);
630 
631  GlobalPoint refPoint = traj.position();
632  GlobalPoint cPToVtx = traj.theState().position();
633 
634  float my_dx = refPoint.x() - myVertex.x();
635  float my_dy = refPoint.y() - myVertex.y();
636 
637  float my_dx2 = cPToVtx.x() - myVertex.x();
638  float my_dy2 = cPToVtx.y() - myVertex.y();
639 
640  float my_dxy = std::sqrt(my_dx*my_dx + my_dy*my_dy);
641 
643  //double d0_error = traj.perigeeError().transverseImpactParameterError();
644  double z0 = traj.perigeeParameters().longitudinalImpactParameter();
645  double z0_error = traj.perigeeError().longitudinalImpactParameterError();
646 
647  edm::LogInfo("PrimaryVertexValidation")<< "my_dx:" << my_dx
648  << " my_dy:" << my_dy
649  << " my_dxy:" << my_dxy
650  << " my_dx2:" << my_dx2
651  << " my_dy2:" << my_dy2
652  << " d0: " << d0
653  << " dxyFromVtx:" << dxyFromMyVertex << "\n"
654  << " ============================== "<< "\n"
655  << "diff1:" << std::abs(d0) - std::abs(my_dxy) << "\n"
656  << "diff2:" << std::abs(d0) - std::abs(dxyFromMyVertex) << "\n"
657  << "diff3:" << (my_dx - my_dx2) << " " << (my_dy - my_dy2) << "\n"
658  << std::endl;
659 
660  // define IPs
661 
662  dxyFromMyVertex_[nTracks_] = dxyFromMyVertex;
663  dxyErrorFromMyVertex_[nTracks_] = s_ip2dpv_err;
664  IPTsigFromMyVertex_[nTracks_] = dxyFromMyVertex/s_ip2dpv_err;
665 
666  dzFromMyVertex_[nTracks_] = dzFromMyVertex;
667  dzErrorFromMyVertex_[nTracks_] = dz_err;
668  IPLsigFromMyVertex_[nTracks_] = dzFromMyVertex/dz_err;
669 
670  d3DFromMyVertex_[nTracks_] = ip3d_corr;
671  d3DErrorFromMyVertex_[nTracks_] = ip3d_err;
672  IP3DsigFromMyVertex_[nTracks_] = (ip3d_corr/ip3d_err);
673 
674  // fill directly the histograms of residuals
675 
676  float trackphi = (theTrack.phi())*(180/TMath::Pi());
677  float tracketa = theTrack.eta();
678  float trackpt = theTrack.pt();
679 
680  // checks on the probe track quality
681  if(trackpt >= ptOfProbe_ && fabs(tracketa)<= etaOfProbe_){
682 
683  std::pair<bool,bool> pixelOcc = pixelHitsCheck((*theTTrack));
684 
685  /*
686  if(pixelOcc.first == true)
687  std::cout<<"has BPIx hits"<<std::endl;
688  if(pixelOcc.second == true)
689  std::cout<<"has FPix hits"<<std::endl;
690  */
691 
692  if(!doBPix_ && (pixelOcc.first == true)) continue;
693  if(!doFPix_ && (pixelOcc.second == true)) continue;
694 
695  //std::cout<<"track passed"<<std::endl;
696 
697  fillTrackHistos(hDA,"sel",&(*theTTrack),vertex,beamSpot,fBfield_);
698 
699  // probe checks
700  h_probePt_->Fill(theTrack.pt());
701  h_probeP_->Fill(theTrack.p());
702  h_probeEta_->Fill(theTrack.eta());
703  h_probePhi_->Fill(theTrack.phi());
704  h2_probeEtaPhi_->Fill(theTrack.eta(),theTrack.phi());
705  h2_probeEtaPt_->Fill(theTrack.eta(),theTrack.pt());
706 
707  h_probeChi2_->Fill(theTrack.chi2());
708  h_probeNormChi2_->Fill(theTrack.normalizedChi2());
709  h_probeCharge_->Fill(theTrack.charge());
710  h_probeQoverP_->Fill(theTrack.qoverp());
711  h_probeHits_->Fill(theTrack.numberOfValidHits());
712  h_probeHits1D_->Fill(nRecHit1D);
713  h_probeHits2D_->Fill(nRecHit2D);
714  h_probeHitsInTIB_->Fill(nhitinBPIX);
715  h_probeHitsInTOB_->Fill(nhitinFPIX);
716  h_probeHitsInTID_->Fill(nhitinTIB);
717  h_probeHitsInTEC_->Fill(nhitinTID);
718  h_probeHitsInBPIX_->Fill(nhitinTOB);
719  h_probeHitsInFPIX_->Fill(nhitinTEC);
720 
721  float dxyRecoV = theTrack.dz(theRecoVertex);
722  float dzRecoV = theTrack.dxy(theRecoVertex);
723  float dxysigmaRecoV = TMath::Sqrt(theTrack.d0Error()*theTrack.d0Error()+xErrOfflineVertex_*yErrOfflineVertex_);
724  float dzsigmaRecoV = TMath::Sqrt(theTrack.dzError()*theTrack.dzError()+zErrOfflineVertex_*zErrOfflineVertex_);
725 
726  double zTrack=(theTTrack->stateAtBeamLine().trackStateAtPCA()).position().z();
727  double zVertex=theFittedVertex.position().z();
728  double tantheta=tan((theTTrack->stateAtBeamLine().trackStateAtPCA()).momentum().theta());
729 
730  double dz2= pow(theTrack.dzError(),2)+wxy2_/pow(tantheta,2);
731  double restrkz = zTrack-zVertex;
732  double pulltrkz = (zTrack-zVertex)/TMath::Sqrt(dz2);
733 
734  h_probedxyRecoV_->Fill(dxyRecoV);
735  h_probedzRecoV_->Fill(dzRecoV);
736 
737  h_probedzRefitV_->Fill(dxyFromMyVertex);
738  h_probedxyRefitV_->Fill(dzFromMyVertex);
739 
740  h_probed0RefitV_->Fill(d0);
741  h_probez0RefitV_->Fill(z0);
742 
743  h_probesignIP2DRefitV_->Fill(s_ip2dpv_corr);
744  h_probed3DRefitV_->Fill(ip3d_corr);
745  h_probereszRefitV_->Fill(restrkz);
746 
747  h_probeRecoVSigZ_->Fill(dzRecoV/dzsigmaRecoV);
748  h_probeRecoVSigXY_->Fill(dxyRecoV/dxysigmaRecoV);
749  h_probeRefitVSigZ_->Fill(dzFromMyVertex/dz_err);
750  h_probeRefitVSigXY_->Fill(dxyFromMyVertex/s_ip2dpv_err);
751  h_probeRefitVSig3D_->Fill(ip3d_corr/ip3d_err);
752  h_probeRefitVLogSig3D_->Fill(log10(ip3d_corr/ip3d_err));
753  h_probeRefitVSigResZ_->Fill(pulltrkz);
754 
755  a_dxyVsPhi->Fill(trackphi,dxyFromMyVertex*cmToum);
756  a_dzVsPhi->Fill(trackphi,z0*cmToum);
757  n_dxyVsPhi->Fill(trackphi,dxyFromMyVertex/s_ip2dpv_err);
758  n_dzVsPhi->Fill(trackphi,z0/z0_error);
759 
760  a_dxyVsEta->Fill(tracketa,dxyFromMyVertex*cmToum);
761  a_dzVsEta->Fill(tracketa,z0*cmToum);
762  n_dxyVsEta->Fill(tracketa,dxyFromMyVertex/s_ip2dpv_err);
763  n_dzVsEta->Fill(tracketa,z0/z0_error);
764 
765  // filling the binned distributions
766  for(int i=0; i<nBins_; i++){
767 
768  float phiF = (-TMath::Pi()+i*phiSect_)*(180/TMath::Pi());
769  float phiL = (-TMath::Pi()+(i+1)*phiSect_)*(180/TMath::Pi());
770 
771  float etaF=-etaOfProbe_+i*etaSect_;
772  float etaL=-etaOfProbe_+(i+1)*etaSect_;
773 
774  if(tracketa >= etaF && tracketa < etaL ){
775 
776  a_dxyEtaResiduals[i]->Fill(dxyFromMyVertex*cmToum);
777  a_dxEtaResiduals[i]->Fill(my_dx*cmToum);
778  a_dyEtaResiduals[i]->Fill(my_dy*cmToum);
779  a_dzEtaResiduals[i]->Fill(dzFromMyVertex*cmToum);
780  n_dxyEtaResiduals[i]->Fill(dxyFromMyVertex/s_ip2dpv_err);
781  n_dzEtaResiduals[i]->Fill(dzFromMyVertex/dz_err);
782  a_IP2DEtaResiduals[i]->Fill(s_ip2dpv_corr*cmToum);
783  n_IP2DEtaResiduals[i]->Fill(s_ip2dpv_corr/s_ip2dpv_err);
784  a_reszEtaResiduals[i]->Fill(restrkz*cmToum);
785  n_reszEtaResiduals[i]->Fill(pulltrkz);
786  a_d3DEtaResiduals[i]->Fill(ip3d_corr*cmToum);
787  n_d3DEtaResiduals[i]->Fill(ip3d_corr/ip3d_err);
788  a_IP3DEtaResiduals[i]->Fill(s_ip3dpv_corr*cmToum);
789  n_IP3DEtaResiduals[i]->Fill(s_ip3dpv_corr/s_ip3dpv_err);
790 
791  }
792 
793  if(trackphi >= phiF && trackphi < phiL ){
794  a_dxyPhiResiduals[i]->Fill(dxyFromMyVertex*cmToum);
795  a_dxPhiResiduals[i]->Fill(my_dx*cmToum);
796  a_dyPhiResiduals[i]->Fill(my_dy*cmToum);
797  a_dzPhiResiduals[i]->Fill(dzFromMyVertex*cmToum);
798  n_dxyPhiResiduals[i]->Fill(dxyFromMyVertex/s_ip2dpv_err);
799  n_dzPhiResiduals[i]->Fill(dzFromMyVertex/dz_err);
800  a_IP2DPhiResiduals[i]->Fill(s_ip2dpv_corr*cmToum);
801  n_IP2DPhiResiduals[i]->Fill(s_ip2dpv_corr/s_ip2dpv_err);
802  a_reszPhiResiduals[i]->Fill(restrkz*cmToum);
803  n_reszPhiResiduals[i]->Fill(pulltrkz);
804  a_d3DPhiResiduals[i]->Fill(ip3d_corr*cmToum);
805  n_d3DPhiResiduals[i]->Fill(ip3d_corr/ip3d_err);
806  a_IP3DPhiResiduals[i]->Fill(s_ip3dpv_corr*cmToum);
807  n_IP3DPhiResiduals[i]->Fill(s_ip3dpv_corr/s_ip3dpv_err);
808 
809  for(int j=0; j<nBins_; j++){
810 
811  float etaJ=-etaOfProbe_+j*etaSect_;
812  float etaK=-etaOfProbe_+(j+1)*etaSect_;
813 
814  if(tracketa >= etaJ && tracketa < etaK ){
815  a_dxyResidualsMap[i][j]->Fill(dxyFromMyVertex*cmToum);
816  a_dzResidualsMap[i][j]->Fill(dzFromMyVertex*cmToum);
817  n_dxyResidualsMap[i][j]->Fill(dxyFromMyVertex/s_ip2dpv_err);
818  n_dzResidualsMap[i][j]->Fill(dzFromMyVertex/dz_err);
819  a_d3DResidualsMap[i][j]->Fill(ip3d_corr*cmToum);
820  n_d3DResidualsMap[i][j]->Fill(ip3d_corr/ip3d_err);
821 
822  }
823  }
824  }
825  }
826  }
827 
828  if(debug_){
829  edm::LogInfo("PrimaryVertexValidation")<<" myVertex.x()= "<<myVertex.x()<<"\n"
830  <<" myVertex.y()= "<<myVertex.y()<<" \n"
831  <<" myVertex.z()= "<<myVertex.z()<<" \n"
832  <<" theTrack.dz(myVertex)= "<<theTrack.dz(myVertex)<<" \n"
833  <<" zPCA -myVertex.z() = "<<(theTrack.vertex().z() -myVertex.z());
834 
835  }// ends if debug_
836  } // ends if the fitted vertex is Valid
837 
838  delete theFitter;
839 
840  } catch ( cms::Exception& er ) {
841  LogTrace("PrimaryVertexValidation")<<"caught std::exception "<<er.what()<<std::endl;
842  }
843 
844  } //ends if theFinalTracks.size() > 2
845 
846  else {
847  if(debug_)
848  edm::LogInfo("PrimaryVertexValidation")<<"Not enough tracks to make a vertex. Returns no vertex info";
849  }
850 
851  ++nTracks_;
852  ++nTracksPerClus_;
853 
854  if(debug_)
855  edm::LogInfo("PrimaryVertexValidation")<<"Track "<<i<<" : pT = "<<theTrack.pt();
856 
857  }// for loop on tracks
858  } // for loop on track clusters
859 
860  // Fill the TTree if needed
861 
862  if(storeNtuple_){
863  rootTree_->Fill();
864  }
865 
866 
867 }
double qoverp() const
q / p
Definition: TrackBase.h:568
virtual char const * what() const
Definition: Exception.cc:141
GlobalError positionError() const
double p() const
momentum vector magnitude
Definition: TrackBase.h:610
const double Pi
EventNumber_t event() const
Definition: EventID.h:41
double z0() const
z coordinate
Definition: BeamSpot.h:68
int i
Definition: DBlmapReader.cc:9
TH1F * n_dzResidualsMap[nMaxBins_][nMaxBins_]
double d0Error() const
error on d0
Definition: TrackBase.h:797
double longitudinalImpactParameterError() const
TH1F * a_IP3DEtaResiduals[nMaxBins_]
std::vector< unsigned int > runControlNumbers_
static bool vtxSort(const reco::Vertex &a, const reco::Vertex &b)
const PerigeeTrajectoryError & perigeeError() const
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:81
void setBeamSpot(const reco::BeamSpot &beamSpot)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:556
const DetContainer & dets() const
Returm a vector of all GeomDet (including all GeomDetUnits)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
TH1F * n_IP2DPhiResiduals[nMaxBins_]
TrackFilterForPVFindingBase * theTrackFilter_
TH1F * a_dxyResidualsMap[nMaxBins_][nMaxBins_]
std::map< std::string, TH1 * > hDA
TrackQuality
track quality
Definition: TrackBase.h:151
TH1F * n_dxyEtaBiasResiduals[nMaxBins_]
const FreeTrajectoryState & theState() const
double theta() const
polar angle
Definition: TrackBase.h:574
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:68
std::pair< bool, Measurement1D > signedTransverseImpactParameter(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:50
TH1F * n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
float totalChiSquared() const
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
reco::TransientTrack build(const reco::Track *p) const
std::pair< bool, Measurement1D > absoluteImpactParameter3D(const reco::TransientTrack &transientTrack, const reco::Vertex &vertex)
Definition: IPTools.cc:37
T y() const
Definition: PV3DBase.h:63
RunNumber_t run() const
std::pair< bool, Measurement1D > signedImpactParameter3D(const reco::TransientTrack &track, const GlobalVector &direction, const reco::Vertex &vertex)
Definition: IPTools.cc:71
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
float DOFUnbiasedVertex_[nMaxtracks_]
TH1F * a_dzPhiBiasResiduals[nMaxBins_]
double d3DFromMyVertex_[nMaxtracks_]
TH1F * n_dzEtaBiasResiduals[nMaxBins_]
float chi2ProbUnbiasedVertex_[nMaxtracks_]
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:622
double dxyFromMyVertex_[nMaxtracks_]
const Point & position() const
position
Definition: Vertex.h:109
int numberOfValidStripTOBHits() const
Definition: HitPattern.h:868
double dzErrorFromMyVertex_[nMaxtracks_]
void fillTrackHistos(std::map< std::string, TH1 * > &h, const std::string &ttype, const reco::TransientTrack *tt, const reco::Vertex &v, const reco::BeamSpot &beamSpot, double fBfield)
LuminosityBlockNumber_t luminosityBlock() const
TH1F * a_dxyPhiBiasResiduals[nMaxBins_]
double IPTsigFromMyVertex_[nMaxtracks_]
bool isThere(GeomDetEnumerators::SubDetector subdet) const
TH1F * a_IP2DEtaResiduals[nMaxBins_]
float normalisedChiSquared() const
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
Definition: TrackBase.h:682
int tracksUsedForVertexing_[nMaxtracks_]
TH1F * n_IP2DEtaResiduals[nMaxBins_]
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
std::pair< bool, bool > pixelHitsCheck(const reco::TransientTrack track)
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:843
const PerigeeTrajectoryParameters & perigeeParameters() const
bool hasFirstLayerPixelHits(const reco::TransientTrack track)
TH1F * n_reszEtaResiduals[nMaxBins_]
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:544
TH1F * n_dzPhiBiasResiduals[nMaxBins_]
float degreesOfFreedom() const
double yUnbiasedVertex_[nMaxtracks_]
T sqrt(T t)
Definition: SSEVec.h:18
GlobalPoint position() const
double pt() const
track transverse momentum
Definition: TrackBase.h:616
T z() const
Definition: PV3DBase.h:64
TH1F * n_IP3DEtaResiduals[nMaxBins_]
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
def pv(vc)
Definition: MetAnalyzer.py:6
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double chi2() const
chi-squares
Definition: Vertex.h:98
int j
Definition: DBlmapReader.cc:9
double zUnbiasedVertex_[nMaxtracks_]
int numberOfValidStripTIDHits() const
Definition: HitPattern.h:863
TH1F * a_reszPhiResiduals[nMaxBins_]
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:815
int numberOfValidStripTECHits() const
Definition: HitPattern.h:873
float chi2normUnbiasedVertex_[nMaxtracks_]
TH1F * n_d3DResidualsMap[nMaxBins_][nMaxBins_]
virtual CachingVertex< N > vertex(const std::vector< reco::TransientTrack > &tracks) const =0
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT< reco::VertexCollection > theVertexCollectionToken
TH1F * a_d3DResidualsMap[nMaxBins_][nMaxBins_]
bool isValid() const
Definition: HandleBase.h:75
float trackWeight(const reco::TransientTrack &track) const
double IPLsigFromMyVertex_[nMaxtracks_]
#define LogTrace(id)
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
double ndof() const
Definition: Vertex.h:105
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:634
virtual std::vector< std::vector< reco::TransientTrack > > clusterize(const std::vector< reco::TransientTrack > &tracks) const =0
int k[5][pyjets_maxn]
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:604
double dzError() const
error on dz
Definition: TrackBase.h:809
EventAuxiliary const & eventAuxiliary() const
Definition: Event.h:78
TH1F * a_IP2DPhiResiduals[nMaxBins_]
GlobalPoint position() const
bool hasTrackWeight() const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
bool isHit2D(const TrackingRecHit &hit) const
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
const T & get() const
Definition: EventSetup.h:56
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
TH1F * n_dxyPhiBiasResiduals[nMaxBins_]
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:88
TrackClusterizerInZ * theTrackClusterizer_
double xUnbiasedVertex_[nMaxtracks_]
virtual std::vector< reco::TransientTrack > select(const std::vector< reco::TransientTrack > &tracks) const =0
int numberOfValidStripTIBHits() const
Definition: HitPattern.h:858
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:505
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:848
TH1F * a_dxyEtaBiasResiduals[nMaxBins_]
edm::EDGetTokenT< reco::BeamSpot > theBeamspotToken
edm::EDGetTokenT< reco::TrackCollection > theTrackCollectionToken
EventID const & id() const
double dzFromMyVertex_[nMaxtracks_]
fixed size matrix
TH1F * n_IP3DPhiResiduals[nMaxBins_]
static int position[264][3]
Definition: ReadPGInfo.cc:509
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:37
double y0() const
y coordinate
Definition: BeamSpot.h:66
TH1F * a_reszEtaResiduals[nMaxBins_]
TH1F * a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_IP3DPhiResiduals[nMaxBins_]
int charge() const
track electric charge
Definition: TrackBase.h:562
TH1F * n_dxyResidualsMap[nMaxBins_][nMaxBins_]
double normalizedChi2() const
chi-squared divided by n.d.o.f.
Definition: Vertex.h:107
double dxyErrorFromMyVertex_[nMaxtracks_]
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:76
TH1F * n_reszPhiResiduals[nMaxBins_]
float sumOfWeightsUnbiasedVertex_[nMaxtracks_]
TH1F * n_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
double d3DErrorFromMyVertex_[nMaxtracks_]
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
TH1F * a_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
T x() const
Definition: PV3DBase.h:62
TH1F * a_dzEtaBiasResiduals[nMaxBins_]
bool isValid() const
TH1F * a_dzResidualsMap[nMaxBins_][nMaxBins_]
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
float chi2UnbiasedVertex_[nMaxtracks_]
size_t tracksSize() const
number of tracks
Definition: Vertex.cc:71
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:628
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Global3DVector GlobalVector
Definition: GlobalVector.h:10
double x0() const
x coordinate
Definition: BeamSpot.h:64
double IP3DsigFromMyVertex_[nMaxtracks_]
void PrimaryVertexValidation::beginJob ( void  )
privatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 937 of file PrimaryVertexValidation.cc.

References a_d3DEtaResiduals, a_d3DPhiResiduals, a_d3DResidualsMap, a_dxEtaResiduals, a_dxPhiResiduals, 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_dxyVsEta, a_dxyVsPhi, a_dxyWidthBiasMap, a_dxyWidthMap, a_dyEtaResiduals, a_dyPhiResiduals, 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_dzVsEta, a_dzVsPhi, a_dzWidthBiasMap, a_dzWidthMap, a_IP2DEtaResiduals, a_IP2DPhiResiduals, a_IP3DEtaResiduals, a_IP3DPhiResiduals, a_reszEtaResiduals, a_reszPhiResiduals, Beamdxdz_, Beamsigmaz_, BeamWidthX_, BeamWidthY_, bookVertexHistograms(), BSx0_, BSy0_, BSz0_, charge_, chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2ProbUnbiasedVertex_, chi2UnbiasedVertex_, d3DFromMyVertex_, DOFUnbiasedVertex_, dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, dz_, dzBs_, dzErrorFromMyVertex_, dzFromMyVertex_, eta_, etaOfProbe_, etaSect_, EventNumber_, h2_probeEtaPhi_, h2_probeEtaPt_, h_Beamsigmaz, h_BeamWidthX, h_BeamWidthY, h_BSx0, h_BSy0, h_BSz0, h_etaMax, h_fitVtxChi2_, h_fitVtxChi2ndf_, h_fitVtxChi2Prob_, h_fitVtxNdof_, h_fitVtxNtracks_, h_fitVtxTrackAverageWeight_, h_fitVtxTrackWeights_, h_nbins, h_nClus, h_nOfflineVertices, h_nTracks, h_probeCharge_, h_probeChi2_, h_probed0RefitV_, h_probed3DRefitV_, h_probedxyRecoV_, h_probedxyRefitV_, h_probedzRecoV_, h_probedzRefitV_, h_probeEta_, h_probeHits1D_, h_probeHits2D_, h_probeHits_, h_probeHitsInBPIX_, h_probeHitsInFPIX_, h_probeHitsInTEC_, h_probeHitsInTIB_, h_probeHitsInTID_, h_probeHitsInTOB_, h_probeNormChi2_, h_probeP_, h_probePhi_, h_probePt_, h_probeQoverP_, h_probeRecoVSigXY_, h_probeRecoVSigZ_, h_probeRefitVLogSig3D_, h_probeRefitVSig3D_, h_probeRefitVSigResZ_, h_probeRefitVSigXY_, h_probeRefitVSigZ_, h_probereszRefitV_, h_probesignIP2DRefitV_, h_probez0RefitV_, h_recoVtxChi2ndf_, h_recoVtxChi2Prob_, h_recoVtxNtracks_, h_recoVtxSumPt_, h_runNumber, h_xErrOfflineVertex, h_xOfflineVertex, h_yErrOfflineVertex, h_yOfflineVertex, h_zErrOfflineVertex, h_zOfflineVertex, hasRecVertex_, hDA, i, IP3DsigFromMyVertex_, IPLsigFromMyVertex_, IPTsigFromMyVertex_, isGoodTrack_, isHighPurity_, j, lightNtupleSwitch_, LuminosityBlockNumber_, TFileDirectory::make(), TFileService::make(), TFileService::mkdir(), n_d3DEtaResiduals, n_d3DPhiResiduals, n_d3DResidualsMap, 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_dxyVsEta, n_dxyVsPhi, 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_dzVsEta, n_dzVsPhi, n_dzWidthBiasMap, n_dzWidthMap, n_IP2DEtaResiduals, n_IP2DPhiResiduals, n_IP3DEtaResiduals, n_IP3DPhiResiduals, n_reszEtaResiduals, n_reszPhiResiduals, nBins_, nClus_, Nevt_, nhits1D_, nhits2D_, nhits_, nhitsBPIX_, nhitsFPIX_, nhitsTEC_, nhitsTIB_, nhitsTID_, nhitsTOB_, nOfflineVertices_, nTracks_, nTracksPerClus_, p_, phi_, phiSect_, Pi, pt_, qoverp_, rootTree_, RunNumber_, sumOfWeightsUnbiasedVertex_, theta_, tracksUsedForVertexing_, useTracksFromRecoVtx_, xOfflineVertex_, xPCA_, xUnbiasedVertex_, yOfflineVertex_, yPCA_, yUnbiasedVertex_, zOfflineVertex_, zPCA_, and zUnbiasedVertex_.

938 {
939  edm::LogInfo("PrimaryVertexValidation")
940  <<"######################################\n"
941  <<"Begin Job \n"
942  <<"######################################";
943 
944  // Define TTree for output
945  Nevt_ = 0;
946 
947  // rootFile_ = new TFile(filename_.c_str(),"recreate");
949  rootTree_ = fs->make<TTree>("tree","PV Validation tree");
950 
951  // Track Paramters
952 
953  if(lightNtupleSwitch_){
954 
955  rootTree_->Branch("EventNumber",&EventNumber_,"EventNumber/i");
956  rootTree_->Branch("RunNumber",&RunNumber_,"RunNumber/i");
957  rootTree_->Branch("LuminosityBlockNumber",&LuminosityBlockNumber_,"LuminosityBlockNumber/i");
958  rootTree_->Branch("nOfflineVertices",&nOfflineVertices_,"nOfflineVertices/I");
959  rootTree_->Branch("nTracks",&nTracks_,"nTracks/I");
960  rootTree_->Branch("phi",&phi_,"phi[nTracks]/D");
961  rootTree_->Branch("eta",&eta_,"eta[nTracks]/D");
962  rootTree_->Branch("pt",&pt_,"pt[nTracks]/D");
963  rootTree_->Branch("dxyFromMyVertex",&dxyFromMyVertex_,"dxyFromMyVertex[nTracks]/D");
964  rootTree_->Branch("dzFromMyVertex",&dzFromMyVertex_,"dzFromMyVertex[nTracks]/D");
965  rootTree_->Branch("d3DFromMyVertex",&d3DFromMyVertex_,"d3DFromMyVertex[nTracks]/D");
966  rootTree_->Branch("IPTsigFromMyVertex",&IPTsigFromMyVertex_,"IPTsigFromMyVertex_[nTracks]/D");
967  rootTree_->Branch("IPLsigFromMyVertex",&IPLsigFromMyVertex_,"IPLsigFromMyVertex_[nTracks]/D");
968  rootTree_->Branch("IP3DsigFromMyVertex",&IP3DsigFromMyVertex_,"IP3DsigFromMyVertex_[nTracks]/D");
969  rootTree_->Branch("hasRecVertex",&hasRecVertex_,"hasRecVertex[nTracks]/I");
970  rootTree_->Branch("isGoodTrack",&isGoodTrack_,"isGoodTrack[nTracks]/I");
971  rootTree_->Branch("isHighPurity",&isHighPurity_,"isHighPurity_[nTracks]/I");
972 
973  } else {
974 
975  rootTree_->Branch("nTracks",&nTracks_,"nTracks/I");
976  rootTree_->Branch("nTracksPerClus",&nTracksPerClus_,"nTracksPerClus/I");
977  rootTree_->Branch("nClus",&nClus_,"nClus/I");
978  rootTree_->Branch("xOfflineVertex",&xOfflineVertex_,"xOfflineVertex/D");
979  rootTree_->Branch("yOfflineVertex",&yOfflineVertex_,"yOfflineVertex/D");
980  rootTree_->Branch("zOfflineVertex",&zOfflineVertex_,"zOfflineVertex/D");
981  rootTree_->Branch("BSx0",&BSx0_,"BSx0/D");
982  rootTree_->Branch("BSy0",&BSy0_,"BSy0/D");
983  rootTree_->Branch("BSz0",&BSz0_,"BSz0/D");
984  rootTree_->Branch("Beamsigmaz",&Beamsigmaz_,"Beamsigmaz/D");
985  rootTree_->Branch("Beamdxdz",&Beamdxdz_,"Beamdxdz/D");
986  rootTree_->Branch("BeamWidthX",&BeamWidthX_,"BeamWidthX/D");
987  rootTree_->Branch("BeamWidthY",&BeamWidthY_,"BeamWidthY/D");
988  rootTree_->Branch("pt",&pt_,"pt[nTracks]/D");
989  rootTree_->Branch("p",&p_,"p[nTracks]/D");
990  rootTree_->Branch("nhits",&nhits_,"nhits[nTracks]/I");
991  rootTree_->Branch("nhits1D",&nhits1D_,"nhits1D[nTracks]/I");
992  rootTree_->Branch("nhits2D",&nhits2D_,"nhits2D[nTracks]/I");
993  rootTree_->Branch("nhitsBPIX",&nhitsBPIX_,"nhitsBPIX[nTracks]/I");
994  rootTree_->Branch("nhitsFPIX",&nhitsFPIX_,"nhitsFPIX[nTracks]/I");
995  rootTree_->Branch("nhitsTIB",&nhitsTIB_,"nhitsTIB[nTracks]/I");
996  rootTree_->Branch("nhitsTID",&nhitsTID_,"nhitsTID[nTracks]/I");
997  rootTree_->Branch("nhitsTOB",&nhitsTOB_,"nhitsTOB[nTracks]/I");
998  rootTree_->Branch("nhitsTEC",&nhitsTEC_,"nhitsTEC[nTracks]/I");
999  rootTree_->Branch("eta",&eta_,"eta[nTracks]/D");
1000  rootTree_->Branch("theta",&theta_,"theta[nTracks]/D");
1001  rootTree_->Branch("phi",&phi_,"phi[nTracks]/D");
1002  rootTree_->Branch("chi2",&chi2_,"chi2[nTracks]/D");
1003  rootTree_->Branch("chi2ndof",&chi2ndof_,"chi2ndof[nTracks]/D");
1004  rootTree_->Branch("charge",&charge_,"charge[nTracks]/I");
1005  rootTree_->Branch("qoverp",&qoverp_,"qoverp[nTracks]/D");
1006  rootTree_->Branch("dz",&dz_,"dz[nTracks]/D");
1007  rootTree_->Branch("dxy",&dxy_,"dxy[nTracks]/D");
1008  rootTree_->Branch("dzBs",&dzBs_,"dzBs[nTracks]/D");
1009  rootTree_->Branch("dxyBs",&dxyBs_,"dxyBs[nTracks]/D");
1010  rootTree_->Branch("xPCA",&xPCA_,"xPCA[nTracks]/D");
1011  rootTree_->Branch("yPCA",&yPCA_,"yPCA[nTracks]/D");
1012  rootTree_->Branch("zPCA",&zPCA_,"zPCA[nTracks]/D");
1013  rootTree_->Branch("xUnbiasedVertex",&xUnbiasedVertex_,"xUnbiasedVertex[nTracks]/D");
1014  rootTree_->Branch("yUnbiasedVertex",&yUnbiasedVertex_,"yUnbiasedVertex[nTracks]/D");
1015  rootTree_->Branch("zUnbiasedVertex",&zUnbiasedVertex_,"zUnbiasedVertex[nTracks]/D");
1016  rootTree_->Branch("chi2normUnbiasedVertex",&chi2normUnbiasedVertex_,"chi2normUnbiasedVertex[nTracks]/F");
1017  rootTree_->Branch("chi2UnbiasedVertex",&chi2UnbiasedVertex_,"chi2UnbiasedVertex[nTracks]/F");
1018  rootTree_->Branch("DOFUnbiasedVertex",&DOFUnbiasedVertex_," DOFUnbiasedVertex[nTracks]/F");
1019  rootTree_->Branch("chi2ProbUnbiasedVertex",&chi2ProbUnbiasedVertex_,"chi2ProbUnbiasedVertex[nTracks]/F");
1020  rootTree_->Branch("sumOfWeightsUnbiasedVertex",&sumOfWeightsUnbiasedVertex_,"sumOfWeightsUnbiasedVertex[nTracks]/F");
1021  rootTree_->Branch("tracksUsedForVertexing",&tracksUsedForVertexing_,"tracksUsedForVertexing[nTracks]/I");
1022  rootTree_->Branch("dxyFromMyVertex",&dxyFromMyVertex_,"dxyFromMyVertex[nTracks]/D");
1023  rootTree_->Branch("dzFromMyVertex",&dzFromMyVertex_,"dzFromMyVertex[nTracks]/D");
1024  rootTree_->Branch("dxyErrorFromMyVertex",&dxyErrorFromMyVertex_,"dxyErrorFromMyVertex_[nTracks]/D");
1025  rootTree_->Branch("dzErrorFromMyVertex",&dzErrorFromMyVertex_,"dzErrorFromMyVertex_[nTracks]/D");
1026  rootTree_->Branch("IPTsigFromMyVertex",&IPTsigFromMyVertex_,"IPTsigFromMyVertex_[nTracks]/D");
1027  rootTree_->Branch("IPLsigFromMyVertex",&IPLsigFromMyVertex_,"IPLsigFromMyVertex_[nTracks]/D");
1028  rootTree_->Branch("hasRecVertex",&hasRecVertex_,"hasRecVertex[nTracks]/I");
1029  rootTree_->Branch("isGoodTrack",&isGoodTrack_,"isGoodTrack[nTracks]/I");
1030  }
1031 
1032  // event histograms
1033  TFileDirectory EventFeatures = fs->mkdir("EventFeatures");
1034 
1035  TH1F::SetDefaultSumw2(kTRUE);
1036 
1037  h_nTracks = EventFeatures.make<TH1F>("h_nTracks","number of tracks per event;n_{tracks}/event;n_{events}",300,-0.5,299.5);
1038  h_nClus = EventFeatures.make<TH1F>("h_nClus","number of track clusters;n_{clusters}/event;n_{events}",50,-0.5,49.5);
1039  h_nOfflineVertices = EventFeatures.make<TH1F>("h_nOfflineVertices","number of offline reconstructed vertices;n_{vertices}/event;n_{events}",50,-0.5,49.5);
1040  h_runNumber = EventFeatures.make<TH1F>("h_runNumber","run number;run number;n_{events}",100000,150000.,250000.);
1041  h_xOfflineVertex = EventFeatures.make<TH1F>("h_xOfflineVertex","x-coordinate of offline vertex;x_{vertex};n_{events}",100,-0.1,0.1);
1042  h_yOfflineVertex = EventFeatures.make<TH1F>("h_yOfflineVertex","y-coordinate of offline vertex;y_{vertex};n_{events}",100,-0.1,0.1);
1043  h_zOfflineVertex = EventFeatures.make<TH1F>("h_zOfflineVertex","z-coordinate of offline vertex;z_{vertex};n_{events}",100,-30.,30.);
1044  h_xErrOfflineVertex = EventFeatures.make<TH1F>("h_xErrOfflineVertex","x-coordinate error of offline vertex;err_{x}^{vtx};n_{events}",100,0.,0.01);
1045  h_yErrOfflineVertex = EventFeatures.make<TH1F>("h_yErrOfflineVertex","y-coordinate error of offline vertex;err_{y}^{vtx};n_{events}",100,0.,0.01);
1046  h_zErrOfflineVertex = EventFeatures.make<TH1F>("h_zErrOfflineVertex","z-coordinate error of offline vertex;err_{z}^{vtx};n_{events}",100,0.,10.);
1047  h_BSx0 = EventFeatures.make<TH1F>("h_BSx0","x-coordinate of reco beamspot;x^{BS}_{0};n_{events}",100,-0.1,0.1);
1048  h_BSy0 = EventFeatures.make<TH1F>("h_BSy0","y-coordinate of reco beamspot;y^{BS}_{0};n_{events}",100,-0.1,0.1);
1049  h_BSz0 = EventFeatures.make<TH1F>("h_BSz0","z-coordinate of reco beamspot;z^{BS}_{0};n_{events}",100,-1.,1.);
1050  h_Beamsigmaz = EventFeatures.make<TH1F>("h_Beamsigmaz","z-coordinate beam width;#sigma_{Z}^{beam};n_{events}",100,0.,1.);
1051  h_BeamWidthX = EventFeatures.make<TH1F>("h_BeamWidthX","x-coordinate beam width;#sigma_{X}^{beam};n_{events}",100,0.,0.01);
1052  h_BeamWidthY = EventFeatures.make<TH1F>("h_BeamWidthY","y-coordinate beam width;#sigma_{Y}^{beam};n_{events}",100,0.,0.01);
1053 
1054  h_etaMax = EventFeatures.make<TH1F>("etaMax","etaMax",1,-0.5,0.5);
1055  h_nbins = EventFeatures.make<TH1F>("nbins","nbins",1,-0.5,0.5);
1056 
1057  // probe track histograms
1058  TFileDirectory ProbeFeatures = fs->mkdir("ProbeTrackFeatures");
1059 
1060  h_probePt_ = ProbeFeatures.make<TH1F>("h_probePt","p_{T} of probe track;track p_{T} (GeV); tracks",100,0.,50.);
1061  h_probeP_ = ProbeFeatures.make<TH1F>("h_probeP","momentum of probe track;track p (GeV); tracks",100,0.,100.);
1062  h_probeEta_ = ProbeFeatures.make<TH1F>("h_probeEta","#eta of the probe track;track #eta;tracks",54,-2.8,2.8);
1063  h_probePhi_ = ProbeFeatures.make<TH1F>("h_probePhi","#phi of probe track;track #phi (rad);tracks",100,-3.15,3.15);
1064 
1065  h2_probeEtaPhi_ = ProbeFeatures.make<TH2F>("h2_probeEtaPhi","probe track #phi vs #eta;#eta of probe track;track #phi of probe track (rad); tracks",54,-2.8,2.8,100,-3.15,3.15);
1066  h2_probeEtaPt_ = ProbeFeatures.make<TH2F>("h2_probeEtaPt","probe track p_{T} vs #eta;#eta of probe track;track p_{T} (GeV); tracks",54,-2.8,2.8,100,0.,50.);
1067 
1068  h_probeChi2_ = ProbeFeatures.make<TH1F>("h_probeChi2","#chi^{2} of probe track;track #chi^{2}; tracks",100,0.,100.);
1069  h_probeNormChi2_ = ProbeFeatures.make<TH1F>("h_probeNormChi2"," normalized #chi^{2} of probe track;track #chi^{2}/ndof; tracks",100,0.,10.);
1070  h_probeCharge_ = ProbeFeatures.make<TH1F>("h_probeCharge","charge of profe track;track charge Q;tracks",3,-1.5,1.5);
1071  h_probeQoverP_ = ProbeFeatures.make<TH1F>("h_probeQoverP","q/p of probe track; track Q/p (GeV^{-1});tracks",200,-1.,1.);
1072  h_probedzRecoV_ = ProbeFeatures.make<TH1F>("h_probedzRecoV","d_{z}(V_{offline}) of probe track;track d_{z}(V_{off}) (cm);tracks",200,-1.,1.);
1073  h_probedxyRecoV_ = ProbeFeatures.make<TH1F>("h_probedxyRecoV","d_{xy}(V_{offline}) of probe track;track d_{xy}(V_{off}) (cm);tracks",200,-1.,1.);
1074  h_probedzRefitV_ = ProbeFeatures.make<TH1F>("h_probedzRefitV","d_{z}(V_{refit}) of probe track;track d_{z}(V_{fit}) (cm);tracks",200,-1.,1.);
1075  h_probesignIP2DRefitV_ = ProbeFeatures.make<TH1F>("h_probesignIPRefitV","ip_{2D}(V_{refit}) of probe track;track ip_{2D}(V_{fit}) (cm);tracks",200,-1.,1.);
1076  h_probedxyRefitV_ = ProbeFeatures.make<TH1F>("h_probedxyRefitV","d_{xy}(V_{refit}) of probe track;track d_{xy}(V_{fit}) (cm);tracks",200,-1.,1.);
1077 
1078  h_probez0RefitV_ = ProbeFeatures.make<TH1F>("h_probez0RefitV","z_{0}(V_{refit}) of probe track;track z_{0}(V_{fit}) (cm);tracks",200,-1.,1.);
1079  h_probed0RefitV_ = ProbeFeatures.make<TH1F>("h_probed0RefitV","d_{0}(V_{refit}) of probe track;track d_{0}(V_{fit}) (cm);tracks",200,-1.,1.);
1080 
1081  h_probed3DRefitV_ = ProbeFeatures.make<TH1F>("h_probed3DRefitV","d_{3D}(V_{refit}) of probe track;track d_{3D}(V_{fit}) (cm);tracks",200,0.,1.);
1082  h_probereszRefitV_ = ProbeFeatures.make<TH1F>("h_probeReszRefitV","z_{track} -z_{V_{refit}};track res_{z}(V_{refit}) (cm);tracks",200,-1.,1.);
1083 
1084  h_probeRecoVSigZ_ = ProbeFeatures.make<TH1F>("h_probeRecoVSigZ" ,"Longitudinal DCA Significance (reco);d_{z}(V_{off})/#sigma_{dz};tracks",100,-8,8);
1085  h_probeRecoVSigXY_ = ProbeFeatures.make<TH1F>("h_probeRecoVSigXY" ,"Transverse DCA Significance (reco);d_{xy}(V_{off})/#sigma_{dxy};tracks",100,-8,8);
1086  h_probeRefitVSigZ_ = ProbeFeatures.make<TH1F>("h_probeRefitVSigZ" ,"Longitudinal DCA Significance (refit);d_{z}(V_{fit})/#sigma_{dz};tracks",100,-8,8);
1087  h_probeRefitVSigXY_= ProbeFeatures.make<TH1F>("h_probeRefitVSigXY","Transverse DCA Significance (refit);d_{xy}(V_{fit})/#sigma_{dxy};tracks",100,-8,8);
1088  h_probeRefitVSig3D_= ProbeFeatures.make<TH1F>("h_probeRefitVSig3D","3D DCA Significance (refit);d_{3D}/#sigma_{3D};tracks",100,0.,20.);
1089  h_probeRefitVLogSig3D_ = ProbeFeatures.make<TH1F>("h_probeRefitVLogSig3D","log_{10}(3D DCA-Significance) (refit);log_{10}(d_{3D}/#sigma_{3D});tracks",100,-5.,4.);
1090  h_probeRefitVSigResZ_ = ProbeFeatures.make<TH1F>("h_probeRefitVSigResZ" ,"Longitudinal residual significance (refit);(z_{track} -z_{V_{fit}})/#sigma_{res_{z}};tracks",100,-8,8);
1091 
1092  h_probeHits_ = ProbeFeatures.make<TH1F>("h_probeNRechits" ,"N_{hits} ;N_{hits} ;tracks",40,-0.5,39.5);
1093  h_probeHits1D_ = ProbeFeatures.make<TH1F>("h_probeNRechits1D" ,"N_{hits} 1D ;N_{hits} 1D ;tracks",40,-0.5,39.5);
1094  h_probeHits2D_ = ProbeFeatures.make<TH1F>("h_probeNRechits2D" ,"N_{hits} 2D ;N_{hits} 2D ;tracks",40,-0.5,39.5);
1095  h_probeHitsInTIB_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTIB" ,"N_{hits} TIB ;N_{hits} TIB;tracks",40,-0.5,39.5);
1096  h_probeHitsInTOB_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTOB" ,"N_{hits} TOB ;N_{hits} TOB;tracks",40,-0.5,39.5);
1097  h_probeHitsInTID_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTID" ,"N_{hits} TID ;N_{hits} TID;tracks",40,-0.5,39.5);
1098  h_probeHitsInTEC_ = ProbeFeatures.make<TH1F>("h_probeNRechitsTEC" ,"N_{hits} TEC ;N_{hits} TEC;tracks",40,-0.5,39.5);
1099  h_probeHitsInBPIX_ = ProbeFeatures.make<TH1F>("h_probeNRechitsBPIX","N_{hits} BPIX;N_{hits} BPIX;tracks",40,-0.5,39.5);
1100  h_probeHitsInFPIX_ = ProbeFeatures.make<TH1F>("h_probeNRechitsFPIX","N_{hits} FPIX;N_{hits} FPIX;tracks",40,-0.5,39.5);
1101 
1102  // refit vertex features
1103  TFileDirectory RefitVertexFeatures = fs->mkdir("RefitVertexFeatures");
1104  h_fitVtxNtracks_ = RefitVertexFeatures.make<TH1F>("h_fitVtxNtracks" ,"N_{trks} used in vertex fit;N^{fit}_{tracks};vertices" ,100,-0.5,99.5);
1105  h_fitVtxNdof_ = RefitVertexFeatures.make<TH1F>("h_fitVtxNdof" ,"N_{DOF} of vertex fit;N_{DOF} of refit vertex;vertices" ,100,-0.5,99.5);
1106  h_fitVtxChi2_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2" ,"#chi^{2} of vertex fit;vertex #chi^{2};vertices" ,100,-0.5,99.5);
1107  h_fitVtxChi2ndf_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2ndf" ,"#chi^{2}/ndf of vertex fit;vertex #chi^{2}/ndf;vertices" ,100,-0.5,9.5);
1108  h_fitVtxChi2Prob_ = RefitVertexFeatures.make<TH1F>("h_fitVtxChi2Prob" ,"Prob(#chi^{2},ndf) of vertex fit;Prob(#chi^{2},ndf);vertices",40,0.,1.);
1109  h_fitVtxTrackWeights_ = RefitVertexFeatures.make<TH1F>("h_fitVtxTrackWeights","track weights associated to track;track weights;tracks",40,0.,1.);
1110  h_fitVtxTrackAverageWeight_ = RefitVertexFeatures.make<TH1F>("h_fitVtxTrackAverageWeight_","average track weight per vertex;#LT track weight #GT;vertices",40,0.,1.);
1111 
1112  if(useTracksFromRecoVtx_) {
1113 
1114  TFileDirectory RecoVertexFeatures = fs->mkdir("RecoVertexFeatures");
1115  h_recoVtxNtracks_ = RecoVertexFeatures.make<TH1F>("h_recoVtxNtracks" ,"N^{vtx}_{trks};N^{vtx}_{trks};vertices" ,100,-0.5,99.5);
1116  h_recoVtxChi2ndf_ = RecoVertexFeatures.make<TH1F>("h_recoVtxChi2ndf" ,"#chi^{2}/ndf vtx;#chi^{2}/ndf vtx;vertices" ,10,-0.5,9.5);
1117  h_recoVtxChi2Prob_ = RecoVertexFeatures.make<TH1F>("h_recoVtxChi2Prob" ,"Prob(#chi^{2},ndf);Prob(#chi^{2},ndf);vertices",40,0.,1.);
1118  h_recoVtxSumPt_ = RecoVertexFeatures.make<TH1F>("h_recoVtxSumPt" ,"Sum(p^{trks}_{T});Sum(p^{trks}_{T});vertices" ,100,0.,200.);
1119 
1120  }
1121 
1122 
1123  TFileDirectory DA = fs->mkdir("DA");
1124  //DA.cd();
1126  //for(std::map<std::string,TH1*>::const_iterator hist=hDA.begin(); hist!=hDA.end(); hist++){
1127  //hist->second->SetDirectory(DA);
1128  // DA.make<TH1F>(hist->second);
1129  // }
1130 
1131  // initialize the residuals histograms
1132 
1133  float dxymax_phi = 2000;
1134  float dzmax_phi = 2000;
1135  float dxymax_eta = 3000;
1136  float dzmax_eta = 3000;
1137 
1138  float d3Dmax_phi = hypot(dxymax_phi,dzmax_phi);
1139  float d3Dmax_eta = hypot(dxymax_eta,dzmax_eta);
1140 
1141  const int mybins_ = 500;
1142 
1144  //
1145  // Unbiased track-to-vertex residuals
1146  // The vertex is refit without the probe track
1147  //
1149 
1150  TFileDirectory AbsTransPhiRes = fs->mkdir("Abs_Transv_Phi_Residuals");
1151  TFileDirectory AbsTransEtaRes = fs->mkdir("Abs_Transv_Eta_Residuals");
1152 
1153  TFileDirectory AbsLongPhiRes = fs->mkdir("Abs_Long_Phi_Residuals");
1154  TFileDirectory AbsLongEtaRes = fs->mkdir("Abs_Long_Eta_Residuals");
1155 
1156  TFileDirectory Abs3DPhiRes = fs->mkdir("Abs_3D_Phi_Residuals");
1157  TFileDirectory Abs3DEtaRes = fs->mkdir("Abs_3D_Eta_Residuals");
1158 
1159  TFileDirectory NormTransPhiRes = fs->mkdir("Norm_Transv_Phi_Residuals");
1160  TFileDirectory NormTransEtaRes = fs->mkdir("Norm_Transv_Eta_Residuals");
1161 
1162  TFileDirectory NormLongPhiRes = fs->mkdir("Norm_Long_Phi_Residuals");
1163  TFileDirectory NormLongEtaRes = fs->mkdir("Norm_Long_Eta_Residuals");
1164 
1165  TFileDirectory Norm3DPhiRes = fs->mkdir("Norm_3D_Phi_Residuals");
1166  TFileDirectory Norm3DEtaRes = fs->mkdir("Norm_3D_Eta_Residuals");
1167 
1168  TFileDirectory AbsDoubleDiffRes = fs->mkdir("Abs_DoubleDiffResiduals");
1169  TFileDirectory NormDoubleDiffRes = fs->mkdir("Norm_DoubleDiffResiduals");
1170 
1171  for ( int i=0; i<nBins_; ++i ) {
1172 
1173  float phiF = (-TMath::Pi()+i*phiSect_)*(180/TMath::Pi());
1174  float phiL = (-TMath::Pi()+(i+1)*phiSect_)*(180/TMath::Pi());
1175 
1176  float etaF=-etaOfProbe_+i*etaSect_;
1177  float etaL=-etaOfProbe_+(i+1)*etaSect_;
1178 
1179  // dxy vs phi and eta
1180 
1181  a_dxyPhiResiduals[i] = AbsTransPhiRes.make<TH1F>(Form("histo_dxy_phi_plot%i",i),
1182  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy} [#mum];tracks",phiF,phiL),
1183  mybins_,-dxymax_phi,dxymax_phi);
1184 
1185  a_dxyEtaResiduals[i] = AbsTransEtaRes.make<TH1F>(Form("histo_dxy_eta_plot%i",i),
1186  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy} [#mum];tracks",etaF,etaL),
1187  mybins_,-dxymax_eta,dxymax_eta);
1188 
1189 
1190  // dx vs phi and eta
1191 
1192  a_dxPhiResiduals[i] = AbsTransPhiRes.make<TH1F>(Form("histo_dx_phi_plot%i",i),
1193  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{x} [#mum];tracks",phiF,phiL),
1194  mybins_,-dxymax_phi,dxymax_phi);
1195 
1196  a_dxEtaResiduals[i] = AbsTransEtaRes.make<TH1F>(Form("histo_dx_eta_plot%i",i),
1197  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{x} [#mum];tracks",etaF,etaL),
1198  mybins_,-dxymax_eta,dxymax_eta);
1199 
1200 
1201  // dy vs phi and eta
1202 
1203  a_dyPhiResiduals[i] = AbsTransPhiRes.make<TH1F>(Form("histo_dy_phi_plot%i",i),
1204  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{y} [#mum];tracks",phiF,phiL),
1205  mybins_,-dxymax_phi,dxymax_phi);
1206 
1207  a_dyEtaResiduals[i] = AbsTransEtaRes.make<TH1F>(Form("histo_dy_eta_plot%i",i),
1208  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{y} [#mum];tracks",etaF,etaL),
1209  mybins_,-dxymax_eta,dxymax_eta);
1210 
1211  // IP2D vs phi and eta
1212 
1213  a_IP2DPhiResiduals[i] = AbsTransPhiRes.make<TH1F>(Form("histo_IP2D_phi_plot%i",i),
1214  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;IP_{2D} [#mum];tracks",phiF,phiL),
1215  mybins_,-dxymax_phi,dxymax_phi);
1216 
1217  a_IP2DEtaResiduals[i] = AbsTransEtaRes.make<TH1F>(Form("histo_IP2D_eta_plot%i",i),
1218  Form("%.2f<#eta^{probe}_{tk}<%.2f;IP_{2D} [#mum];tracks",etaF,etaL),
1219  mybins_,-dxymax_eta,dxymax_eta);
1220 
1221  // IP3D vs phi and eta
1222 
1223  a_IP3DPhiResiduals[i] = Abs3DPhiRes.make<TH1F>(Form("histo_IP3D_phi_plot%i",i),
1224  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;IP_{3D} [#mum];tracks",phiF,phiL),
1225  mybins_,-dxymax_phi,dxymax_phi);
1226 
1227  a_IP3DEtaResiduals[i] = Abs3DEtaRes.make<TH1F>(Form("histo_IP3D_eta_plot%i",i),
1228  Form("%.2f<#eta^{probe}_{tk}<%.2f;IP_{3D} [#mum];tracks",etaF,etaL),
1229  mybins_,-dxymax_eta,dxymax_eta);
1230 
1231  // dz vs phi and eta
1232 
1233  a_dzPhiResiduals[i] = AbsLongPhiRes.make<TH1F>(Form("histo_dz_phi_plot%i",i),
1234  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{z} [#mum];tracks",phiF,phiL),
1235  mybins_,-dzmax_phi,dzmax_phi);
1236 
1237  a_dzEtaResiduals[i] = AbsLongEtaRes.make<TH1F>(Form("histo_dz_eta_plot%i",i),
1238  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z} [#mum];tracks",etaF,etaL),
1239  mybins_,-dzmax_eta,dzmax_eta);
1240 
1241 
1242  // resz vs phi and eta
1243 
1244  a_reszPhiResiduals[i] = AbsLongPhiRes.make<TH1F>(Form("histo_resz_phi_plot%i",i),
1245  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;z_{trk} - z_{vtx} [#mum];tracks",phiF,phiL),
1246  mybins_,-dzmax_phi,dzmax_phi);
1247 
1248  a_reszEtaResiduals[i] = AbsLongEtaRes.make<TH1F>(Form("histo_resz_eta_plot%i",i),
1249  Form("%.2f<#eta^{probe}_{tk}<%.2f;z_{trk} - z_{vtx} [#mum];tracks",etaF,etaL),
1250  mybins_,-dzmax_eta,dzmax_eta);
1251 
1252  // d3D vs phi and eta
1253 
1254  a_d3DPhiResiduals[i] = Abs3DPhiRes.make<TH1F>(Form("histo_d3D_phi_plot%i",i),
1255  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{3D} [#mum];tracks",phiF,phiL),
1256  mybins_,0.,d3Dmax_phi);
1257 
1258  a_d3DEtaResiduals[i] = Abs3DEtaRes.make<TH1F>(Form("histo_d3D_eta_plot%i",i),
1259  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{3D} [#mum];tracks",etaF,etaL),
1260  mybins_,0.,d3Dmax_eta);
1261 
1262  // _ _ _ _ _ ___ _ _ _
1263  // | \| |___ _ _ _ __ __ _| (_)______ __| | | _ \___ __(_)__| |_ _ __ _| |___
1264  // | .` / _ \ '_| ' \/ _` | | |_ / -_) _` | | / -_|_-< / _` | || / _` | (_-<
1265  // |_|\_\___/_| |_|_|_\__,_|_|_/__\___\__,_| |_|_\___/__/_\__,_|\_,_\__,_|_/__/
1266  //
1267 
1268  // normalized dxy vs eta and phi
1269 
1270  n_dxyPhiResiduals[i] = NormTransPhiRes.make<TH1F>(Form("histo_norm_dxy_phi_plot%i",i),
1271  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}};tracks",phiF,phiL),
1272  mybins_,-dxymax_phi/100.,dxymax_phi/100.);
1273 
1274  n_dxyEtaResiduals[i] = NormTransEtaRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i",i),
1275  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy}/#sigma_{d_{xy}};tracks",etaF,etaL),
1276  mybins_,-dxymax_eta/100.,dxymax_eta/100.);
1277 
1278  // normalized IP2d vs eta and phi
1279 
1280  n_IP2DPhiResiduals[i] = NormTransPhiRes.make<TH1F>(Form("histo_norm_IP2D_phi_plot%i",i),
1281  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;IP_{2D}/#sigma_{IP_{2D}};tracks",phiF,phiL),
1282  mybins_,-dxymax_phi/100.,dxymax_phi/100.);
1283 
1284  n_IP2DEtaResiduals[i] = NormTransEtaRes.make<TH1F>(Form("histo_norm_IP2D_eta_plot%i",i),
1285  Form("%.2f<#eta^{probe}_{tk}<%.2f;IP_{2D}/#sigma_{IP_{2D}};tracks",etaF,etaL),
1286  mybins_,-dxymax_eta/100.,dxymax_eta/100.);
1287 
1288  // normalized IP3d vs eta and phi
1289 
1290  n_IP3DPhiResiduals[i] = Norm3DPhiRes.make<TH1F>(Form("histo_norm_IP3D_phi_plot%i",i),
1291  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;IP_{3D}/#sigma_{IP_{3D}};tracks",phiF,phiL),
1292  mybins_,-dxymax_phi/100.,dxymax_phi/100.);
1293 
1294  n_IP3DEtaResiduals[i] = Norm3DEtaRes.make<TH1F>(Form("histo_norm_IP3D_eta_plot%i",i),
1295  Form("%.2f<#eta^{probe}_{tk}<%.2f;IP_{3D}/#sigma_{IP_{3D}};tracks",etaF,etaL),
1296  mybins_,-dxymax_eta/100.,dxymax_eta/100.);
1297 
1298  // normalized dz vs phi and eta
1299 
1300  n_dzPhiResiduals[i] = NormLongPhiRes.make<TH1F>(Form("histo_norm_dz_phi_plot%i",i),
1301  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}};tracks",phiF,phiL),
1302  mybins_,-dzmax_phi/100.,dzmax_phi/100.);
1303 
1304  n_dzEtaResiduals[i] = NormLongEtaRes.make<TH1F>(Form("histo_norm_dz_eta_plot%i",i),
1305  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z}/#sigma_{d_{z}};tracks",etaF,etaL),
1306  mybins_,-dzmax_eta/100.,dzmax_eta/100.);
1307 
1308  // pull of resz
1309 
1310  n_reszPhiResiduals[i] = NormLongPhiRes.make<TH1F>(Form("histo_norm_resz_phi_plot%i",i),
1311  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;(z_{trk}-z_{vtx})/#sigma_{res_{z}};tracks",phiF,phiL),
1312  mybins_,-dzmax_phi/100.,dzmax_phi/100.);
1313 
1314  n_reszEtaResiduals[i] = NormLongEtaRes.make<TH1F>(Form("histo_norm_resz_eta_plot%i",i),
1315  Form("%.2f<#eta^{probe}_{tk}<%.2f;(z_{trk}-z_{vtx})/#sigma_{res_{z}};tracks",etaF,etaL),
1316  mybins_,-dzmax_eta/100.,dzmax_eta/100.);
1317 
1318  // normalized d3D vs phi and eta
1319 
1320  n_d3DPhiResiduals[i] = Norm3DPhiRes.make<TH1F>(Form("histo_norm_d3D_phi_plot%i",i),
1321  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{3D}/#sigma_{d_{3D}};tracks",phiF,phiL),
1322  mybins_,0.,d3Dmax_phi/100.);
1323 
1324  n_d3DEtaResiduals[i] = Norm3DEtaRes.make<TH1F>(Form("histo_norm_d3D_eta_plot%i",i),
1325  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{3D}/#sigma_{d_{3D}};tracks",etaF,etaL),
1326  mybins_,0.,d3Dmax_eta/100.);
1327 
1328  // ___ _ _ ___ _ __ __ ___ _ _ _
1329  // | \ ___ _ _| |__| |___| \(_)/ _|/ _| | _ \___ __(_)__| |_ _ __ _| |___
1330  // | |) / _ \ || | '_ \ / -_) |) | | _| _| | / -_|_-< / _` | || / _` | (_-<
1331  // |___/\___/\_,_|_.__/_\___|___/|_|_| |_| |_|_\___/__/_\__,_|\_,_\__,_|_/__/
1332 
1333  for ( int j=0; j<nBins_; ++j ) {
1334 
1335  a_dxyResidualsMap[i][j] = AbsDoubleDiffRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),
1336  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy};tracks",etaF,etaL,phiF,phiL),
1337  mybins_,-dzmax_eta,dzmax_eta);
1338 
1339  a_dzResidualsMap[i][j] = AbsDoubleDiffRes.make<TH1F>(Form("histo_dz_eta_plot%i_phi_plot%i",i,j),
1340  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z};tracks",etaF,etaL,phiF,phiL),
1341  mybins_,-dzmax_eta,dzmax_eta);
1342 
1343  a_d3DResidualsMap[i][j] = AbsDoubleDiffRes.make<TH1F>(Form("histo_d3D_eta_plot%i_phi_plot%i",i,j),
1344  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{3D};tracks",etaF,etaL,phiF,phiL),
1345  mybins_,0.,d3Dmax_eta);
1346 
1347  n_dxyResidualsMap[i][j] = NormDoubleDiffRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),
1348  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}};tracks",etaF,etaL,phiF,phiL),
1349  mybins_,-dzmax_eta/100,dzmax_eta/100);
1350 
1351  n_dzResidualsMap[i][j] = NormDoubleDiffRes.make<TH1F>(Form("histo_norm_dz_eta_plot%i_phi_plot%i",i,j),
1352  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}};tracks",etaF,etaL,phiF,phiL),
1353  mybins_,-dzmax_eta/100,dzmax_eta/100);
1354 
1355  n_d3DResidualsMap[i][j] = NormDoubleDiffRes.make<TH1F>(Form("histo_norm_d3D_eta_plot%i_phi_plot%i",i,j),
1356  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{3D}/#sigma_{d_{3D}};tracks",etaF,etaL,phiF,phiL),
1357  mybins_,0.,d3Dmax_eta);
1358 
1359  }
1360  }
1361 
1362  // declaration of the directories
1363 
1364  TFileDirectory BiasVsParameter = fs->mkdir("BiasVsParameter");
1365 
1366  a_dxyVsPhi = BiasVsParameter.make<TH2F>("h2_dxy_vs_phi","d_{xy} vs track #phi;track #phi [rad];track d_{xy}(PV) [#mum]",
1367  48,-TMath::Pi(),TMath::Pi(),mybins_,-dxymax_phi,dxymax_phi);
1368 
1369  a_dzVsPhi = BiasVsParameter.make<TH2F>("h2_dz_vs_phi","d_{z} vs track #phi;track #phi [rad];track d_{z}(PV) [#mum]",
1370  48,-TMath::Pi(),TMath::Pi(),mybins_,-dzmax_phi,dzmax_phi);
1371 
1372  n_dxyVsPhi = BiasVsParameter.make<TH2F>("h2_n_dxy_vs_phi","d_{xy}/#sigma_{d_{xy}} vs track #phi;track #phi [rad];track d_{xy}(PV)/#sigma_{d_{xy}}",
1373  48,-TMath::Pi(),TMath::Pi(),mybins_,-dxymax_phi/100.,dxymax_phi/100.);
1374 
1375  n_dzVsPhi = BiasVsParameter.make<TH2F>("h2_n_dz_vs_phi","d_{z}/#sigma_{d_{z}} vs track #phi;track #phi [rad];track d_{z}(PV)/#sigma_{d_{z}}",
1376  48,-TMath::Pi(),TMath::Pi(),mybins_,-dzmax_phi/100.,dzmax_phi/100.);
1377 
1378  a_dxyVsEta = BiasVsParameter.make<TH2F>("h2_dxy_vs_eta","d_{xy} vs track #eta;track #eta;track d_{xy}(PV) [#mum]",
1379  48,-etaOfProbe_,etaOfProbe_,mybins_,-dxymax_eta,dzmax_eta);
1380 
1381  a_dzVsEta = BiasVsParameter.make<TH2F>("h2_dz_vs_eta","d_{z} vs track #eta;track #eta;track d_{z}(PV) [#mum]",
1382  48,-etaOfProbe_,etaOfProbe_,mybins_,-dzmax_eta,dzmax_eta);
1383 
1384  n_dxyVsEta = BiasVsParameter.make<TH2F>("h2_n_dxy_vs_eta","d_{xy}/#sigma_{d_{xy}} vs track #eta;track #eta;track d_{xy}(PV)/#sigma_{d_{xy}}",
1385  48,-etaOfProbe_,etaOfProbe_,mybins_,-dxymax_eta/100.,dxymax_eta/100.);
1386 
1387  n_dzVsEta = BiasVsParameter.make<TH2F>("h2_n_dz_vs_eta","d_{z}/#sigma_{d_{z}} vs track #eta;track #eta;track d_{z}(PV)/#sigma_{d_{z}}",
1388  48,-etaOfProbe_,etaOfProbe_,mybins_,-dzmax_eta/100.,dzmax_eta/100.);
1389 
1390  TFileDirectory MeanTrendsDir = fs->mkdir("MeanTrends");
1391  TFileDirectory WidthTrendsDir = fs->mkdir("WidthTrends");
1392  TFileDirectory MedianTrendsDir = fs->mkdir("MedianTrends");
1393  TFileDirectory MADTrendsDir = fs->mkdir("MADTrends");
1394 
1395  TFileDirectory Mean2DMapsDir = fs->mkdir("MeanMaps");
1396  TFileDirectory Width2DMapsDir = fs->mkdir("WidthMaps");
1397 
1398  Double_t highedge=nBins_-0.5;
1399  Double_t lowedge=-0.5;
1400 
1401  // means and widths from the fit
1402 
1403  a_dxyPhiMeanTrend = MeanTrendsDir.make<TH1F> ("means_dxy_phi",
1404  "#LT d_{xy} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy} #GT [#mum]",
1405  nBins_,lowedge,highedge);
1406 
1407  a_dxyPhiWidthTrend = WidthTrendsDir.make<TH1F>("widths_dxy_phi",
1408  "#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{xy}} [#mum]",
1409  nBins_,lowedge,highedge);
1410 
1411  a_dzPhiMeanTrend = MeanTrendsDir.make<TH1F> ("means_dz_phi",
1412  "#LT d_{z} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z} #GT [#mum]",
1413  nBins_,lowedge,highedge);
1414 
1415  a_dzPhiWidthTrend = WidthTrendsDir.make<TH1F>("widths_dz_phi","#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{z}} [#mum]",
1416  nBins_,lowedge,highedge);
1417 
1418  a_dxyEtaMeanTrend = MeanTrendsDir.make<TH1F> ("means_dxy_eta",
1419  "#LT d_{xy} #GT vs #eta sector;#eta (sector);#LT d_{xy} #GT [#mum]",
1420  nBins_,lowedge,highedge);
1421 
1422  a_dxyEtaWidthTrend = WidthTrendsDir.make<TH1F>("widths_dxy_eta",
1423  "#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{xy}} [#mum]",
1424  nBins_,lowedge,highedge);
1425 
1426  a_dzEtaMeanTrend = MeanTrendsDir.make<TH1F> ("means_dz_eta",
1427  "#LT d_{z} #GT vs #eta sector;#eta (sector);#LT d_{z} #GT [#mum]"
1428  ,nBins_,lowedge,highedge);
1429 
1430  a_dzEtaWidthTrend = WidthTrendsDir.make<TH1F>("widths_dz_eta",
1431  "#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{z}} [#mum]",
1432  nBins_,lowedge,highedge);
1433 
1434  n_dxyPhiMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dxy_phi",
1435  "#LT d_{xy}/#sigma_{d_{xy}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy}/#sigma_{d_{xy}} #GT",
1436  nBins_,lowedge,highedge);
1437 
1438  n_dxyPhiWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dxy_phi",
1439  "width(d_{xy}/#sigma_{d_{xy}}) vs #phi sector;#varphi (sector) [degrees]; width(d_{xy}/#sigma_{d_{xy}})",
1440  nBins_,lowedge,highedge);
1441 
1442  n_dzPhiMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dz_phi",
1443  "#LT d_{z}/#sigma_{d_{z}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z}/#sigma_{d_{z}} #GT",
1444  nBins_,lowedge,highedge);
1445 
1446  n_dzPhiWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dz_phi",
1447  "width(d_{z}/#sigma_{d_{z}}) vs #phi sector;#varphi (sector) [degrees];width(d_{z}/#sigma_{d_{z}})",
1448  nBins_,lowedge,highedge);
1449 
1450  n_dxyEtaMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dxy_eta",
1451  "#LT d_{xy}/#sigma_{d_{xy}} #GT vs #eta sector;#eta (sector);#LT d_{xy}/#sigma_{d_{z}} #GT",
1452  nBins_,lowedge,highedge);
1453 
1454  n_dxyEtaWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dxy_eta",
1455  "width(d_{xy}/#sigma_{d_{xy}}) vs #eta sector;#eta (sector);width(d_{xy}/#sigma_{d_{z}})",
1456  nBins_,lowedge,highedge);
1457 
1458  n_dzEtaMeanTrend = MeanTrendsDir.make<TH1F> ("norm_means_dz_eta",
1459  "#LT d_{z}/#sigma_{d_{z}} #GT vs #eta sector;#eta (sector);#LT d_{z}/#sigma_{d_{z}} #GT",
1460  nBins_,lowedge,highedge);
1461 
1462  n_dzEtaWidthTrend = WidthTrendsDir.make<TH1F>("norm_widths_dz_eta",
1463  "width(d_{z}/#sigma_{d_{z}}) vs #eta sector;#eta (sector);width(d_{z}/#sigma_{d_{z}})",
1464  nBins_,lowedge,highedge);
1465 
1466  // 2D maps
1467 
1468  a_dxyMeanMap = Mean2DMapsDir.make<TH2F> ("means_dxy_map",
1469  "#LT d_{xy} #GT map;#eta (sector);#varphi (sector) [degrees]",
1470  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1471 
1472  a_dzMeanMap = Mean2DMapsDir.make<TH2F> ("means_dz_map",
1473  "#LT d_{z} #GT map;#eta (sector);#varphi (sector) [degrees]",
1474  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1475 
1476  n_dxyMeanMap = Mean2DMapsDir.make<TH2F> ("norm_means_dxy_map",
1477  "#LT d_{xy}/#sigma_{d_{xy}} #GT map;#eta (sector);#varphi (sector) [degrees]",
1478  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1479 
1480  n_dzMeanMap = Mean2DMapsDir.make<TH2F> ("norm_means_dz_map",
1481  "#LT d_{z}/#sigma_{d_{z}} #GT map;#eta (sector);#varphi (sector) [degrees]",
1482  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1483 
1484  a_dxyWidthMap = Width2DMapsDir.make<TH2F> ("widths_dxy_map",
1485  "#sigma_{d_{xy}} map;#eta (sector);#varphi (sector) [degrees]",
1486  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1487 
1488  a_dzWidthMap = Width2DMapsDir.make<TH2F> ("widths_dz_map",
1489  "#sigma_{d_{z}} map;#eta (sector);#varphi (sector) [degrees]",
1490  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1491 
1492  n_dxyWidthMap = Width2DMapsDir.make<TH2F> ("norm_widths_dxy_map",
1493  "width(d_{xy}/#sigma_{d_{xy}}) map;#eta (sector);#varphi (sector) [degrees]",
1494  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1495 
1496  n_dzWidthMap = Width2DMapsDir.make<TH2F> ("norm_widths_dz_map",
1497  "width(d_{z}/#sigma_{d_{z}}) map;#eta (sector);#varphi (sector) [degrees]",
1498  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1499 
1500  // medians and MADs
1501 
1502  a_dxyPhiMedianTrend = MedianTrendsDir.make<TH1F>("medians_dxy_phi",
1503  "Median of d_{xy} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}) [#mum]",
1504  nBins_,lowedge,highedge);
1505 
1506  a_dxyPhiMADTrend = MADTrendsDir.make<TH1F> ("MADs_dxy_phi",
1507  "Median absolute deviation of d_{xy} vs #phi sector;#varphi (sector) [degrees];MAD(d_{xy}) [#mum]",
1508  nBins_,lowedge,highedge);
1509 
1510  a_dzPhiMedianTrend = MedianTrendsDir.make<TH1F>("medians_dz_phi",
1511  "Median of d_{z} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}) [#mum]",
1512  nBins_,lowedge,highedge);
1513 
1514  a_dzPhiMADTrend = MADTrendsDir.make<TH1F> ("MADs_dz_phi",
1515  "Median absolute deviation of d_{z} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}) [#mum]",
1516  nBins_,lowedge,highedge);
1517 
1518  a_dxyEtaMedianTrend = MedianTrendsDir.make<TH1F>("medians_dxy_eta",
1519  "Median of d_{xy} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}) [#mum]",
1520  nBins_,lowedge,highedge);
1521 
1522  a_dxyEtaMADTrend = MADTrendsDir.make<TH1F> ("MADs_dxy_eta",
1523  "Median absolute deviation of d_{xy} vs #eta sector;#eta (sector);MAD(d_{xy}) [#mum]",
1524  nBins_,lowedge,highedge);
1525 
1526  a_dzEtaMedianTrend = MedianTrendsDir.make<TH1F>("medians_dz_eta",
1527  "Median of d_{z} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}) [#mum]",
1528  nBins_,lowedge,highedge);
1529 
1530  a_dzEtaMADTrend = MADTrendsDir.make<TH1F> ("MADs_dz_eta",
1531  "Median absolute deviation of d_{z} vs #eta sector;#eta (sector);MAD(d_{z}) [#mum]",
1532  nBins_,lowedge,highedge);
1533 
1534  n_dxyPhiMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dxy_phi",
1535  "Median of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}/#sigma_{d_{xy}})",
1536  nBins_,lowedge,highedge);
1537 
1538  n_dxyPhiMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dxy_phi",
1539  "Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees]; MAD(d_{xy}/#sigma_{d_{xy}})",
1540  nBins_,lowedge,highedge);
1541 
1542  n_dzPhiMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dz_phi",
1543  "Median of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}/#sigma_{d_{z}})",
1544  nBins_,lowedge,highedge);
1545 
1546  n_dzPhiMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dz_phi",
1547  "Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}/#sigma_{d_{z}})",
1548  nBins_,lowedge,highedge);
1549 
1550  n_dxyEtaMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dxy_eta",
1551  "Median of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}/#sigma_{d_{z}})",
1552  nBins_,lowedge,highedge);
1553 
1554  n_dxyEtaMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dxy_eta",
1555  "Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);MAD(d_{xy}/#sigma_{d_{z}})",
1556  nBins_,lowedge,highedge);
1557 
1558  n_dzEtaMedianTrend = MedianTrendsDir.make<TH1F>("norm_medians_dz_eta",
1559  "Median of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}/#sigma_{d_{z}})",
1560  nBins_,lowedge,highedge);
1561 
1562  n_dzEtaMADTrend = MADTrendsDir.make<TH1F> ("norm_MADs_dz_eta",
1563  "Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);MAD(d_{z}/#sigma_{d_{z}})",
1564  nBins_,lowedge,highedge);
1565 
1566 
1568  //
1569  // plots of biased residuals
1570  // The vertex includes the probe track
1571  //
1573 
1574  if (useTracksFromRecoVtx_){
1575 
1576  TFileDirectory AbsTransPhiBiasRes = fs->mkdir("Abs_Transv_Phi_BiasResiduals");
1577  TFileDirectory AbsTransEtaBiasRes = fs->mkdir("Abs_Transv_Eta_BiasResiduals");
1578 
1579  TFileDirectory AbsLongPhiBiasRes = fs->mkdir("Abs_Long_Phi_BiasResiduals");
1580  TFileDirectory AbsLongEtaBiasRes = fs->mkdir("Abs_Long_Eta_BiasResiduals");
1581 
1582  TFileDirectory NormTransPhiBiasRes = fs->mkdir("Norm_Transv_Phi_BiasResiduals");
1583  TFileDirectory NormTransEtaBiasRes = fs->mkdir("Norm_Transv_Eta_BiasResiduals");
1584 
1585  TFileDirectory NormLongPhiBiasRes = fs->mkdir("Norm_Long_Phi_BiasResiduals");
1586  TFileDirectory NormLongEtaBiasRes = fs->mkdir("Norm_Long_Eta_BiasResiduals");
1587 
1588  TFileDirectory AbsDoubleDiffBiasRes = fs->mkdir("Abs_DoubleDiffBiasResiduals");
1589  TFileDirectory NormDoubleDiffBiasRes = fs->mkdir("Norm_DoubleDiffBiasResiduals");
1590 
1591  for ( int i=0; i<nBins_; ++i ) {
1592 
1593  float phiF = (-TMath::Pi()+i*phiSect_)*(180/TMath::Pi());
1594  float phiL = (-TMath::Pi()+(i+1)*phiSect_)*(180/TMath::Pi());
1595 
1596  float etaF=-etaOfProbe_+i*etaSect_;
1597  float etaL=-etaOfProbe_+(i+1)*etaSect_;
1598 
1599  a_dxyPhiBiasResiduals[i] = AbsTransPhiBiasRes.make<TH1F>(Form("histo_dxy_phi_plot%i",i),
1600  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy} [#mum];tracks",phiF,phiL),
1601  mybins_,-dxymax_phi,dxymax_phi);
1602 
1603  a_dxyEtaBiasResiduals[i] = AbsTransEtaBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i",i),
1604  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy} [#mum];tracks",etaF,etaL),
1605  mybins_,-dxymax_eta,dxymax_eta);
1606 
1607  a_dzPhiBiasResiduals[i] = AbsLongPhiBiasRes.make<TH1F>(Form("histo_dz_phi_plot%i",i),
1608  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f #circ;d_{z} [#mum];tracks",phiF,phiL),
1609  mybins_,-dzmax_phi,dzmax_phi);
1610 
1611  a_dzEtaBiasResiduals[i] = AbsLongEtaBiasRes.make<TH1F>(Form("histo_dz_eta_plot%i",i),
1612  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z} [#mum];tracks",etaF,etaL),
1613  mybins_,-dzmax_eta,dzmax_eta);
1614 
1615  n_dxyPhiBiasResiduals[i] = NormTransPhiBiasRes.make<TH1F>(Form("histo_norm_dxy_phi_plot%i",i),
1616  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}};tracks",phiF,phiL),
1617  mybins_,-dxymax_phi/100.,dxymax_phi/100.);
1618 
1619  n_dxyEtaBiasResiduals[i] = NormTransEtaBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i",i),
1620  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{xy}/#sigma_{d_{xy}};tracks",etaF,etaL),
1621  mybins_,-dxymax_eta/100.,dxymax_eta/100.);
1622 
1623  n_dzPhiBiasResiduals[i] = NormLongPhiBiasRes.make<TH1F>(Form("histo_norm_dz_phi_plot%i",i),
1624  Form("%.2f#circ<#varphi^{probe}_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}};tracks",phiF,phiL),
1625  mybins_,-dzmax_phi/100.,dzmax_phi/100.);
1626 
1627  n_dzEtaBiasResiduals[i] = NormLongEtaBiasRes.make<TH1F>(Form("histo_norm_dz_eta_plot%i",i),
1628  Form("%.2f<#eta^{probe}_{tk}<%.2f;d_{z}/#sigma_{d_{z}};tracks",etaF,etaL),
1629  mybins_,-dzmax_eta/100.,dzmax_eta/100.);
1630 
1631  for ( int j=0; j<nBins_; ++j ) {
1632 
1633  a_dxyBiasResidualsMap[i][j] = AbsDoubleDiffBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),
1634  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy} [#mum];tracks",etaF,etaL,phiF,phiL),
1635  mybins_,-dzmax_eta,dzmax_eta);
1636 
1637  a_dzBiasResidualsMap[i][j] = AbsDoubleDiffBiasRes.make<TH1F>(Form("histo_dxy_eta_plot%i_phi_plot%i",i,j),
1638  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z} [#mum];tracks",etaF,etaL,phiF,phiL),
1639  mybins_,-dzmax_eta,dzmax_eta);
1640 
1641  n_dxyBiasResidualsMap[i][j] = NormDoubleDiffBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),
1642  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{xy}/#sigma_{d_{xy}};tracks",etaF,etaL,phiF,phiL),
1643  mybins_,-dzmax_eta/100,dzmax_eta/100);
1644 
1645  n_dzBiasResidualsMap[i][j] = NormDoubleDiffBiasRes.make<TH1F>(Form("histo_norm_dxy_eta_plot%i_phi_plot%i",i,j),
1646  Form("%.2f<#eta_{tk}<%.2f %.2f#circ<#varphi_{tk}<%.2f#circ;d_{z}/#sigma_{d_{z}};tracks",etaF,etaL,phiF,phiL),
1647  mybins_,-dzmax_eta/100,dzmax_eta/100);
1648  }
1649  }
1650 
1651  // declaration of the directories
1652 
1653  TFileDirectory MeanBiasTrendsDir = fs->mkdir("MeanBiasTrends");
1654  TFileDirectory WidthBiasTrendsDir = fs->mkdir("WidthBiasTrends");
1655  TFileDirectory MedianBiasTrendsDir = fs->mkdir("MedianBiasTrends");
1656  TFileDirectory MADBiasTrendsDir = fs->mkdir("MADBiasTrends");
1657 
1658  TFileDirectory Mean2DBiasMapsDir = fs->mkdir("MeanBiasMaps");
1659  TFileDirectory Width2DBiasMapsDir = fs->mkdir("WidthBiasMaps");
1660 
1661  // means and widths from the fit
1662 
1663  a_dxyPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dxy_phi",
1664  "#LT d_{xy} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy} #GT [#mum]",
1665  nBins_,lowedge,highedge);
1666 
1667  a_dxyPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dxy_phi",
1668  "#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{xy}} [#mum]",
1669  nBins_,lowedge,highedge);
1670 
1671  a_dzPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dz_phi",
1672  "#LT d_{z} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z} #GT [#mum]",
1673  nBins_,lowedge,highedge);
1674 
1675  a_dzPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dz_phi",
1676  "#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#sigma_{d_{z}} [#mum]",
1677  nBins_,lowedge,highedge);
1678 
1679  a_dxyEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dxy_eta",
1680  "#LT d_{xy} #GT vs #eta sector;#eta (sector);#LT d_{xy} #GT [#mum]",
1681  nBins_,lowedge,highedge);
1682 
1683  a_dxyEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dxy_eta",
1684  "#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{xy}} [#mum]",
1685  nBins_,lowedge,highedge);
1686 
1687  a_dzEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("means_dz_eta",
1688  "#LT d_{z} #GT vs #eta sector;#eta (sector);#LT d_{z} #GT [#mum]",
1689  nBins_,lowedge,highedge);
1690 
1691  a_dzEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("widths_dz_eta",
1692  "#sigma_{d_{xy}} vs #eta sector;#eta (sector);#sigma_{d_{z}} [#mum]",
1693  nBins_,lowedge,highedge);
1694 
1695  n_dxyPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dxy_phi",
1696  "#LT d_{xy}/#sigma_{d_{xy}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{xy}/#sigma_{d_{xy}} #GT",
1697  nBins_,lowedge,highedge);
1698 
1699  n_dxyPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dxy_phi",
1700  "width(d_{xy}/#sigma_{d_{xy}}) vs #phi sector;#varphi (sector) [degrees]; width(d_{xy}/#sigma_{d_{xy}})",
1701  nBins_,lowedge,highedge);
1702 
1703  n_dzPhiMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dz_phi",
1704  "#LT d_{z}/#sigma_{d_{z}} #GT vs #phi sector;#varphi (sector) [degrees];#LT d_{z}/#sigma_{d_{z}} #GT",
1705  nBins_,lowedge,highedge);
1706 
1707  n_dzPhiWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dz_phi",
1708  "width(d_{z}/#sigma_{d_{z}}) vs #phi sector;#varphi (sector) [degrees];width(d_{z}/#sigma_{d_{z}})",
1709  nBins_,lowedge,highedge);
1710 
1711  n_dxyEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dxy_eta",
1712  "#LT d_{xy}/#sigma_{d_{xy}} #GT vs #eta sector;#eta (sector);#LT d_{xy}/#sigma_{d_{z}} #GT",
1713  nBins_,lowedge,highedge);
1714 
1715  n_dxyEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dxy_eta",
1716  "width(d_{xy}/#sigma_{d_{xy}}) vs #eta sector;#eta (sector);width(d_{xy}/#sigma_{d_{z}})",
1717  nBins_,lowedge,highedge);
1718 
1719  n_dzEtaMeanBiasTrend = MeanBiasTrendsDir.make<TH1F> ("norm_means_dz_eta",
1720  "#LT d_{z}/#sigma_{d_{z}} #GT vs #eta sector;#eta (sector);#LT d_{z}/#sigma_{d_{z}} #GT",
1721  nBins_,lowedge,highedge);
1722 
1723  n_dzEtaWidthBiasTrend = WidthBiasTrendsDir.make<TH1F>("norm_widths_dz_eta",
1724  "width(d_{z}/#sigma_{d_{z}}) vs #eta sector;#eta (sector);width(d_{z}/#sigma_{d_{z}})",
1725  nBins_,lowedge,highedge);
1726 
1727  // 2D maps
1728 
1729  a_dxyMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("means_dxy_map",
1730  "#LT d_{xy} #GT map;#eta (sector);#varphi (sector) [degrees]",
1731  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1732 
1733  a_dzMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("means_dz_map",
1734  "#LT d_{z} #GT map;#eta (sector);#varphi (sector) [degrees]",
1735  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1736 
1737  n_dxyMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("norm_means_dxy_map",
1738  "#LT d_{xy}/#sigma_{d_{xy}} #GT map;#eta (sector);#varphi (sector) [degrees]",
1739  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1740 
1741  n_dzMeanBiasMap = Mean2DBiasMapsDir.make<TH2F> ("norm_means_dz_map",
1742  "#LT d_{z}/#sigma_{d_{z}} #GT map;#eta (sector);#varphi (sector) [degrees]",
1743  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1744 
1745  a_dxyWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("widths_dxy_map",
1746  "#sigma_{d_{xy}} map;#eta (sector);#varphi (sector) [degrees]",
1747  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1748 
1749  a_dzWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("widths_dz_map",
1750  "#sigma_{d_{z}} map;#eta (sector);#varphi (sector) [degrees]",
1751  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1752 
1753  n_dxyWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("norm_widths_dxy_map",
1754  "width(d_{xy}/#sigma_{d_{xy}}) map;#eta (sector);#varphi (sector) [degrees]",
1755  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1756 
1757  n_dzWidthBiasMap = Width2DBiasMapsDir.make<TH2F> ("norm_widths_dz_map",
1758  "width(d_{z}/#sigma_{d_{z}}) map;#eta (sector);#varphi (sector) [degrees]",
1759  nBins_,lowedge,highedge,nBins_,lowedge,highedge);
1760 
1761  // medians and MADs
1762 
1763  a_dxyPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dxy_phi",
1764  "Median of d_{xy} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}) [#mum]",
1765  nBins_,lowedge,highedge);
1766 
1767  a_dxyPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dxy_phi",
1768  "Median absolute deviation of d_{xy} vs #phi sector;#varphi (sector) [degrees];MAD(d_{xy}) [#mum]",
1769  nBins_,lowedge,highedge);
1770 
1771  a_dzPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dz_phi",
1772  "Median of d_{z} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}) [#mum]",
1773  nBins_,lowedge,highedge);
1774 
1775  a_dzPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dz_phi",
1776  "Median absolute deviation of d_{z} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}) [#mum]",
1777  nBins_,lowedge,highedge);
1778 
1779  a_dxyEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dxy_eta",
1780  "Median of d_{xy} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}) [#mum]",
1781  nBins_,lowedge,highedge);
1782 
1783  a_dxyEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dxy_eta",
1784  "Median absolute deviation of d_{xy} vs #eta sector;#eta (sector);MAD(d_{xy}) [#mum]",
1785  nBins_,lowedge,highedge);
1786 
1787  a_dzEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("medians_dz_eta",
1788  "Median of d_{z} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}) [#mum]",
1789  nBins_,lowedge,highedge);
1790 
1791  a_dzEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("MADs_dz_eta",
1792  "Median absolute deviation of d_{z} vs #eta sector;#eta (sector);MAD(d_{z}) [#mum]",
1793  nBins_,lowedge,highedge);
1794 
1795  n_dxyPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dxy_phi",
1796  "Median of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{xy}/#sigma_{d_{xy}})",
1797  nBins_,lowedge,highedge);
1798 
1799  n_dxyPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dxy_phi",
1800  "Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #phi sector;#varphi (sector) [degrees]; MAD(d_{xy}/#sigma_{d_{xy}})",
1801  nBins_,lowedge,highedge);
1802 
1803  n_dzPhiMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dz_phi",
1804  "Median of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];#mu_{1/2}(d_{z}/#sigma_{d_{z}})",
1805  nBins_,lowedge,highedge);
1806 
1807  n_dzPhiMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dz_phi",
1808  "Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #phi sector;#varphi (sector) [degrees];MAD(d_{z}/#sigma_{d_{z}})",
1809  nBins_,lowedge,highedge);
1810 
1811  n_dxyEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dxy_eta",
1812  "Median of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{xy}/#sigma_{d_{z}})",
1813  nBins_,lowedge,highedge);
1814 
1815  n_dxyEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dxy_eta",
1816  "Median absolute deviation of d_{xy}/#sigma_{d_{xy}} vs #eta sector;#eta (sector);MAD(d_{xy}/#sigma_{d_{z}})",
1817  nBins_,lowedge,highedge);
1818 
1819  n_dzEtaMedianBiasTrend = MedianBiasTrendsDir.make<TH1F>("norm_medians_dz_eta",
1820  "Median of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);#mu_{1/2}(d_{z}/#sigma_{d_{z}})",
1821  nBins_,lowedge,highedge);
1822 
1823  n_dzEtaMADBiasTrend = MADBiasTrendsDir.make<TH1F> ("norm_MADs_dz_eta",
1824  "Median absolute deviation of d_{z}/#sigma_{d_{z}} vs #eta sector;#eta (sector);MAD(d_{z}/#sigma_{d_{z}})",
1825  nBins_,lowedge,highedge);
1826 
1827  }
1828 }
const double Pi
int i
Definition: DBlmapReader.cc:9
TH1F * n_dzResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_IP3DEtaResiduals[nMaxBins_]
TH1F * n_IP2DPhiResiduals[nMaxBins_]
TH1F * a_dxyResidualsMap[nMaxBins_][nMaxBins_]
std::map< std::string, TH1 * > hDA
TH1F * n_dxyEtaBiasResiduals[nMaxBins_]
TH1F * n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
float DOFUnbiasedVertex_[nMaxtracks_]
TH1F * a_dzPhiBiasResiduals[nMaxBins_]
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
double d3DFromMyVertex_[nMaxtracks_]
TH1F * n_dzEtaBiasResiduals[nMaxBins_]
float chi2ProbUnbiasedVertex_[nMaxtracks_]
double dxyFromMyVertex_[nMaxtracks_]
double dzErrorFromMyVertex_[nMaxtracks_]
TH1F * a_dxyPhiBiasResiduals[nMaxBins_]
double IPTsigFromMyVertex_[nMaxtracks_]
TH1F * a_IP2DEtaResiduals[nMaxBins_]
int tracksUsedForVertexing_[nMaxtracks_]
TH1F * n_IP2DEtaResiduals[nMaxBins_]
TH1F * n_reszEtaResiduals[nMaxBins_]
TH1F * n_dzPhiBiasResiduals[nMaxBins_]
double yUnbiasedVertex_[nMaxtracks_]
TH1F * n_IP3DEtaResiduals[nMaxBins_]
int j
Definition: DBlmapReader.cc:9
double zUnbiasedVertex_[nMaxtracks_]
TH1F * a_reszPhiResiduals[nMaxBins_]
float chi2normUnbiasedVertex_[nMaxtracks_]
TH1F * n_d3DResidualsMap[nMaxBins_][nMaxBins_]
T * make(const Args &...args) const
make new ROOT object
TH1F * a_d3DResidualsMap[nMaxBins_][nMaxBins_]
double IPLsigFromMyVertex_[nMaxtracks_]
TH1F * a_IP2DPhiResiduals[nMaxBins_]
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
TH1F * n_dxyPhiBiasResiduals[nMaxBins_]
double xUnbiasedVertex_[nMaxtracks_]
TH1F * a_dxyEtaBiasResiduals[nMaxBins_]
double dzFromMyVertex_[nMaxtracks_]
TH1F * n_IP3DPhiResiduals[nMaxBins_]
TH1F * a_reszEtaResiduals[nMaxBins_]
TH1F * a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_IP3DPhiResiduals[nMaxBins_]
TH1F * n_dxyResidualsMap[nMaxBins_][nMaxBins_]
double dxyErrorFromMyVertex_[nMaxtracks_]
TH1F * n_reszPhiResiduals[nMaxBins_]
float sumOfWeightsUnbiasedVertex_[nMaxtracks_]
TH1F * n_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dzEtaBiasResiduals[nMaxBins_]
TH1F * a_dzResidualsMap[nMaxBins_][nMaxBins_]
float chi2UnbiasedVertex_[nMaxtracks_]
std::map< std::string, TH1 * > bookVertexHistograms(TFileDirectory dir)
double IP3DsigFromMyVertex_[nMaxtracks_]
std::map< std::string, TH1 * > PrimaryVertexValidation::bookVertexHistograms ( TFileDirectory  dir)
private

Definition at line 2269 of file PrimaryVertexValidation.cc.

References h, TFileDirectory::make(), Pi, AlCaHLTBitMon_QueryRunRegistry::string, lumiQTWidget::t, and cutBasedMuonId_MuonPOG_V0_cff::types.

Referenced by beginJob().

2271 {
2272 
2273  TH1F::SetDefaultSumw2(kTRUE);
2274 
2275  std::map<std::string, TH1*> h;
2276 
2277  // histograms of track quality (Data and MC)
2278  std::string types[] = {"all","sel"};
2279  for(int t=0; t<2; t++){
2280  h["pseudorapidity_"+types[t]] =dir.make <TH1F>(("rapidity_"+types[t]).c_str(),"track pseudorapidity; track #eta; tracks",100,-3., 3.);
2281  h["z0_"+types[t]] = dir.make<TH1F>(("z0_"+types[t]).c_str(),"track z_{0};track z_{0} (cm);tracks",80,-40., 40.);
2282  h["phi_"+types[t]] = dir.make<TH1F>(("phi_"+types[t]).c_str(),"track #phi; track #phi;tracks",80,-TMath::Pi(), TMath::Pi());
2283  h["eta_"+types[t]] = dir.make<TH1F>(("eta_"+types[t]).c_str(),"track #eta; track #eta;tracks",80,-4., 4.);
2284  h["pt_"+types[t]] = dir.make<TH1F>(("pt_"+types[t]).c_str(),"track p_{T}; track p_{T} [GeV];tracks",100,0., 20.);
2285  h["p_"+types[t]] = dir.make<TH1F>(("p_"+types[t]).c_str(),"track p; track p [GeV];tracks",100,0., 20.);
2286  h["found_"+types[t]] = dir.make<TH1F>(("found_"+types[t]).c_str(),"n. found hits;n^{found}_{hits};tracks",30, 0., 30.);
2287  h["lost_"+types[t]] = dir.make<TH1F>(("lost_"+types[t]).c_str(),"n. lost hits;n^{lost}_{hits};tracks",20, 0., 20.);
2288  h["nchi2_"+types[t]] = dir.make<TH1F>(("nchi2_"+types[t]).c_str(),"normalized track #chi^{2};track #chi^{2}/ndf;tracks",100, 0., 20.);
2289  h["rstart_"+types[t]] = dir.make<TH1F>(("rstart_"+types[t]).c_str(),"track start radius; track innermost radius r (cm);tracks",100, 0., 20.);
2290  h["expectedInner_"+types[t]] = dir.make<TH1F>(("expectedInner_"+types[t]).c_str(),"n. expected inner hits;n^{expected}_{inner};tracks",10, 0., 10.);
2291  h["expectedOuter_"+types[t]] = dir.make<TH1F>(("expectedOuter_"+types[t]).c_str(),"n. expected outer hits;n^{expected}_{outer};tracks ",10, 0., 10.);
2292  h["logtresxy_"+types[t]] = dir.make<TH1F>(("logtresxy_"+types[t]).c_str(),"log10(track r-#phi resolution/#mum);log10(track r-#phi resolution/#mum);tracks",100, 0., 5.);
2293  h["logtresz_"+types[t]] = dir.make<TH1F>(("logtresz_"+types[t]).c_str(),"log10(track z resolution/#mum);log10(track z resolution/#mum);tracks",100, 0., 5.);
2294  h["tpullxy_"+types[t]] = dir.make<TH1F>(("tpullxy_"+types[t]).c_str(),"track r-#phi pull;pull_{r-#phi};tracks",100, -10., 10.);
2295  h["tpullz_"+types[t]] = dir.make<TH1F>(("tpullz_"+types[t]).c_str(),"track r-z pull;pull_{r-z};tracks",100, -50., 50.);
2296  h["tlogDCAxy_"+types[t]] = dir.make<TH1F>(("tlogDCAxy_"+types[t]).c_str(),"track log_{10}(DCA_{r-#phi});track log_{10}(DCA_{r-#phi});tracks",200, -5., 3.);
2297  h["tlogDCAz_"+types[t]] = dir.make<TH1F>(("tlogDCAz_"+types[t]).c_str(),"track log_{10}(DCA_{r-z});track log_{10}(DCA_{r-z});tracks",200, -5., 5.);
2298  h["lvseta_"+types[t]] = dir.make<TH2F>(("lvseta_"+types[t]).c_str(),"cluster length vs #eta;track #eta;cluster length",60,-3., 3., 20, 0., 20);
2299  h["lvstanlambda_"+types[t]] = dir.make<TH2F>(("lvstanlambda_"+types[t]).c_str(),"cluster length vs tan #lambda; tan#lambda;cluster length",60,-6., 6., 20, 0., 20);
2300  h["restrkz_"+types[t]] = dir.make<TH1F>(("restrkz_"+types[t]).c_str(),"z-residuals (track vs vertex);res_{z} (cm);tracks", 200, -5., 5.);
2301  h["restrkzvsphi_"+types[t]] = dir.make<TH2F>(("restrkzvsphi_"+types[t]).c_str(),"z-residuals (track - vertex) vs track #phi;track #phi;res_{z} (cm)", 12,-TMath::Pi(),TMath::Pi(),100, -0.5,0.5);
2302  h["restrkzvseta_"+types[t]] = dir.make<TH2F>(("restrkzvseta_"+types[t]).c_str(),"z-residuals (track - vertex) vs track #eta;track #eta;res_{z} (cm)", 12,-3.,3.,200, -0.5,0.5);
2303  h["pulltrkzvsphi_"+types[t]] = dir.make<TH2F>(("pulltrkzvsphi_"+types[t]).c_str(),"normalized z-residuals (track - vertex) vs track #phi;track #phi;res_{z}/#sigma_{res_{z}}", 12,-TMath::Pi(),TMath::Pi(),100, -5., 5.);
2304  h["pulltrkzvseta_"+types[t]] = dir.make<TH2F>(("pulltrkzvseta_"+types[t]).c_str(),"normalized z-residuals (track - vertex) vs track #eta;track #eta;res_{z}/#sigma_{res_{z}}", 12,-3.,3.,100, -5., 5.);
2305  h["pulltrkz_"+types[t]] = dir.make<TH1F>(("pulltrkz_"+types[t]).c_str(),"normalized z-residuals (track vs vertex);res_{z}/#sigma_{res_{z}};tracks", 100, -5., 5.);
2306  h["sigmatrkz0_"+types[t]] = dir.make<TH1F>(("sigmatrkz0_"+types[t]).c_str(),"z-resolution (excluding beam);#sigma^{trk}_{z_{0}} (cm);tracks", 100, 0., 5.);
2307  h["sigmatrkz_"+types[t]] = dir.make<TH1F>(("sigmatrkz_"+types[t]).c_str(),"z-resolution (including beam);#sigma^{trk}_{z} (cm);tracks", 100,0., 5.);
2308  h["nbarrelhits_"+types[t]] = dir.make<TH1F>(("nbarrelhits_"+types[t]).c_str(),"number of pixel barrel hits;n. hits Barrel Pixel;tracks", 10, 0., 10.);
2309  h["nbarrelLayers_"+types[t]] = dir.make<TH1F>(("nbarrelLayers_"+types[t]).c_str(),"number of pixel barrel layers;n. layers Barrel Pixel;tracks", 10, 0., 10.);
2310  h["nPxLayers_"+types[t]] = dir.make<TH1F>(("nPxLayers_"+types[t]).c_str(),"number of pixel layers (barrel+endcap);n. Pixel layers;tracks", 10, 0., 10.);
2311  h["nSiLayers_"+types[t]] = dir.make<TH1F>(("nSiLayers_"+types[t]).c_str(),"number of Tracker layers;n. Tracker layers;tracks", 20, 0., 20.);
2312  h["trackAlgo_"+types[t]] = dir.make<TH1F>(("trackAlgo_"+types[t]).c_str(),"track algorithm;track algo;tracks", 30, 0., 30.);
2313  h["trackQuality_"+types[t]] = dir.make<TH1F>(("trackQuality_"+types[t]).c_str(),"track quality;track quality;tracks", 7, -1., 6.);
2314  }
2315 
2316  return h;
2317 
2318 }
const double Pi
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
T * make(const Args &...args) const
make new ROOT object
void PrimaryVertexValidation::endJob ( void  )
privatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1830 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, fillMap(), fillTrendPlot(), 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, Nevt_, and useTracksFromRecoVtx_.

Referenced by o2olib.O2ORunMgr::executeJob().

1831 {
1832 
1833  edm::LogInfo("PrimaryVertexValidation")
1834  <<"######################################\n"
1835  <<"# PrimaryVertexValidation::endJob()\n"
1836  <<"# Number of analyzed events: "<<Nevt_<<"\n"
1837  <<"######################################";
1838 
1840 
1845 
1850 
1855 
1860 
1861  // medians and MADs
1862 
1867 
1872 
1877 
1882 
1883  // 2d Maps
1884 
1889 
1894 
1895  }
1896 
1897  // do profiles
1898 
1903 
1908 
1913 
1918 
1919  // medians and MADs
1920 
1925 
1930 
1935 
1940 
1941  // 2D Maps
1942 
1947 
1952 
1953 }
TH1F * n_dzResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dxyResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dxyEtaBiasResiduals[nMaxBins_]
TH1F * n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dzPhiBiasResiduals[nMaxBins_]
TH1F * n_dzEtaBiasResiduals[nMaxBins_]
TH1F * a_dxyPhiBiasResiduals[nMaxBins_]
void fillMap(TH2F *trendMap, TH1F *residualsMapPlot[100][100], TString fitPar_)
TH1F * n_dzPhiBiasResiduals[nMaxBins_]
TH1F * n_dxyPhiBiasResiduals[nMaxBins_]
TH1F * a_dxyEtaBiasResiduals[nMaxBins_]
TH1F * a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dxyResidualsMap[nMaxBins_][nMaxBins_]
TH1F * n_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
TH1F * a_dzEtaBiasResiduals[nMaxBins_]
void fillTrendPlot(TH1F *trendPlot, TH1F *residualsPlot[100], TString fitPar_, TString var_)
TH1F * a_dzResidualsMap[nMaxBins_][nMaxBins_]
void PrimaryVertexValidation::fill ( std::map< std::string, TH1 * > &  h,
std::string  s,
double  x 
)
private

Definition at line 2443 of file PrimaryVertexValidation.cc.

References gather_cfg::cout, and alignCSCRings::s.

Referenced by fillTrackHistos().

2445 {
2446  // cout << "fill1 " << s << endl;
2447  if(h.count(s)==0){
2448  std::cout << "Trying to fill non-exiting Histogram named " << s << std::endl;
2449  return;
2450  }
2451  h[s]->Fill(x);
2452 }
void PrimaryVertexValidation::fill ( std::map< std::string, TH1 * > &  h,
std::string  s,
double  x,
double  y 
)
private

Definition at line 2455 of file PrimaryVertexValidation.cc.

References gather_cfg::cout, DEFINE_FWK_MODULE, and alignCSCRings::s.

2457 {
2458  // cout << "fill2 " << s << endl;
2459  if(h.count(s)==0){
2460  std::cout << "Trying to fill non-exiting Histogram named " << s << std::endl;
2461  return;
2462  }
2463  h[s]->Fill(x,y);
2464 }
void PrimaryVertexValidation::fillMap ( TH2F *  trendMap,
TH1F *  residualsMapPlot[100][100],
TString  fitPar_ 
)
private

Definition at line 2183 of file PrimaryVertexValidation.cc.

References gather_cfg::cout, etaOfProbe_, etaSect_, fitResiduals(), getMAD(), getMedian(), i, j, nBins_, phiSect_, and Pi.

Referenced by endJob().

2185 {
2186 
2187  for ( int i=0; i<nBins_; ++i ) {
2188 
2189  char phipositionString[129];
2190  float phiInterval = phiSect_*(180/TMath::Pi());
2191  float phiposition = (-180+i*phiInterval)+(phiInterval/2);
2192  sprintf(phipositionString,"%.f",phiposition);
2193 
2194  trendMap->GetYaxis()->SetBinLabel(i+1,phipositionString);
2195 
2196  for ( int j=0; j<nBins_; ++j ) {
2197 
2198  char etapositionString[129];
2199  float etaposition = (-etaOfProbe_+j*etaSect_)+(etaSect_/2);
2200  sprintf(etapositionString,"%.1f",etaposition);
2201 
2202  if(i==0) { trendMap->GetXaxis()->SetBinLabel(j+1,etapositionString); }
2203 
2204  if(fitPar_=="mean"){
2205  float mean_ = fitResiduals(residualsMapPlot[i][j]).first.first;
2206  float meanErr_ = fitResiduals(residualsMapPlot[i][j]).first.second;
2207  trendMap->SetBinContent(j+1,i+1,mean_);
2208  trendMap->SetBinError(j+1,i+1,meanErr_);
2209  } else if (fitPar_=="width"){
2210  float width_ = fitResiduals(residualsMapPlot[i][j]).second.first;
2211  float widthErr_ = fitResiduals(residualsMapPlot[i][j]).second.second;
2212  trendMap->SetBinContent(j+1,i+1,width_);
2213  trendMap->SetBinError(j+1,i+1,widthErr_);
2214  } else if (fitPar_=="median"){
2215  float median_ = getMedian(residualsMapPlot[i][j]).first;
2216  float medianErr_ = getMedian(residualsMapPlot[i][j]).second;
2217  trendMap->SetBinContent(j+1,i+1,median_);
2218  trendMap->SetBinError(j+1,i+1,medianErr_);
2219  } else if (fitPar_=="mad"){
2220  float mad_ = getMAD(residualsMapPlot[i][j]).first;
2221  float madErr_ = getMAD(residualsMapPlot[i][j]).second;
2222  trendMap->SetBinContent(j+1,i+1,mad_);
2223  trendMap->SetBinError(j+1,i+1,madErr_);
2224  } else {
2225  std::cout<<"PrimaryVertexValidation::fillMap() "<<fitPar_<<" unknown estimator!"<<std::endl;
2226  }
2227  } // closes loop on eta bins
2228  } // cloeses loop on phi bins
2229 }
const double Pi
int i
Definition: DBlmapReader.cc:9
std::pair< Double_t, Double_t > getMAD(TH1F *histo)
std::pair< Double_t, Double_t > getMedian(TH1F *histo)
std::pair< std::pair< Double_t, Double_t >, std::pair< Double_t, Double_t > > fitResiduals(TH1 *hist)
int j
Definition: DBlmapReader.cc:9
void PrimaryVertexValidation::fillTrackHistos ( std::map< std::string, TH1 * > &  h,
const std::string &  ttype,
const reco::TransientTrack tt,
const reco::Vertex v,
const reco::BeamSpot beamSpot,
double  fBfield 
)
private

Definition at line 2321 of file PrimaryVertexValidation.cc.

References reco::TrackBase::algo(), Reference_intrackfit_cff::barrel, reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), funct::cos(), allConversions_cfi::d0, reco::TrackBase::d0Error(), reco::TrackBase::dxy(), allConversions_cfi::dz, reco::TrackBase::dz(), reco::TrackBase::dzError(), reco::TrackBase::eta(), fill(), objects.autophobj::float, reco::Track::found(), reco::TrackBase::hitPattern(), reco::Track::innerPosition(), edm::Ref< C, T, F >::isNonnull(), reco::Vertex::isValid(), kappa, reco::TrackBase::lambda(), cmsBatch::log, reco::Track::lost(), reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfHits(), reco::TrackBase::p(), reco::TrackBase::phi(), PixelSubdetector::PixelBarrel, reco::HitPattern::pixelBarrelLayersWithMeasurement(), reco::HitPattern::pixelLayersWithMeasurement(), reco::BeamSpot::position(), reco::Vertex::position(), position, funct::pow(), reco::TrackBase::pt(), lumiQueryAPI::q, reco::TrackBase::qoverp(), reco::TrackBase::qualityMask(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), funct::sin(), mathSSE::sqrt(), reco::TransientTrack::stateAtBeamLine(), funct::tan(), reco::TrackBase::theta(), reco::TransientTrack::track(), DetId::Tracker, reco::HitPattern::trackerLayersWithMeasurement(), TrajectoryStateClosestToBeamLine::trackStateAtPCA(), reco::TrackBase::vx(), reco::TrackBase::vy(), reco::TrackBase::vz(), wxy2_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and z.

Referenced by analyze().

2323 {
2324 
2325  using namespace reco;
2326 
2327  fill(h,"pseudorapidity_"+ttype,tt->track().eta());
2328  fill(h,"z0_"+ttype,tt->track().vz());
2329  fill(h,"phi_"+ttype,tt->track().phi());
2330  fill(h,"eta_"+ttype,tt->track().eta());
2331  fill(h,"pt_"+ttype,tt->track().pt());
2332  fill(h,"p_"+ttype,tt->track().p());
2333  fill(h,"found_"+ttype,tt->track().found());
2334  fill(h,"lost_"+ttype,tt->track().lost());
2335  fill(h,"nchi2_"+ttype,tt->track().normalizedChi2());
2336  fill(h,"rstart_"+ttype,(tt->track().innerPosition()).Rho());
2337 
2338  double d0Error=tt->track().d0Error();
2339  double d0=tt->track().dxy(beamSpot.position());
2340  double dz=tt->track().dz(beamSpot.position());
2341  if (d0Error>0){
2342  fill(h,"logtresxy_"+ttype,log(d0Error/0.0001)/log(10.));
2343  fill(h,"tpullxy_"+ttype,d0/d0Error);
2344  fill(h,"tlogDCAxy_"+ttype,log(fabs(d0/d0Error)));
2345 
2346  }
2347  //double z0=tt->track().vz();
2348  double dzError=tt->track().dzError();
2349  if(dzError>0){
2350  fill(h,"logtresz_"+ttype,log(dzError/0.0001)/log(10.));
2351  fill(h,"tpullz_"+ttype,dz/dzError);
2352  fill(h,"tlogDCAz_"+ttype,log(fabs(dz/dzError)));
2353  }
2354 
2355  //
2356  double wxy2_=pow(beamSpot.BeamWidthX(),2)+pow(beamSpot.BeamWidthY(),2);
2357 
2358  fill(h,"sigmatrkz_"+ttype,sqrt(pow(tt->track().dzError(),2)+wxy2_/pow(tan(tt->track().theta()),2)));
2359  fill(h,"sigmatrkz0_"+ttype,tt->track().dzError());
2360 
2361  // track vs vertex
2362  if( v.isValid()){ // && (v.ndof()<10.)) {
2363  // emulate clusterizer input
2364  //const TransientTrack & tt = theB_->build(&t); wrong !!!!
2365  //reco::TransientTrack tt = theB_->build(&t);
2366  //ttt->track().setBeamSpot(beamSpot); // need the setBeamSpot !
2367  double z=(tt->stateAtBeamLine().trackStateAtPCA()).position().z();
2368  double tantheta=tan((tt->stateAtBeamLine().trackStateAtPCA()).momentum().theta());
2369  double dz2= pow(tt->track().dzError(),2)+wxy2_/pow(tantheta,2);
2370 
2371  fill(h,"restrkz_"+ttype,z-v.position().z());
2372  fill(h,"restrkzvsphi_"+ttype,tt->track().phi(), z-v.position().z());
2373  fill(h,"restrkzvseta_"+ttype,tt->track().eta(), z-v.position().z());
2374  fill(h,"pulltrkzvsphi_"+ttype,tt->track().phi(), (z-v.position().z())/sqrt(dz2));
2375  fill(h,"pulltrkzvseta_"+ttype,tt->track().eta(), (z-v.position().z())/sqrt(dz2));
2376 
2377  fill(h,"pulltrkz_"+ttype,(z-v.position().z())/sqrt(dz2));
2378 
2379  double x1=tt->track().vx()-beamSpot.x0(); double y1=tt->track().vy()-beamSpot.y0();
2380 
2381  double kappa=-0.002998*fBfield_*tt->track().qoverp()/cos(tt->track().theta());
2382  double D0=x1*sin(tt->track().phi())-y1*cos(tt->track().phi())-0.5*kappa*(x1*x1+y1*y1);
2383  double q=sqrt(1.-2.*kappa*D0);
2384  double s0=(x1*cos(tt->track().phi())+y1*sin(tt->track().phi()))/q;
2385  // double s1;
2386  if (fabs(kappa*s0)>0.001){
2387  //s1=asin(kappa*s0)/kappa;
2388  }else{
2389  //double ks02=(kappa*s0)*(kappa*s0);
2390  //s1=s0*(1.+ks02/6.+3./40.*ks02*ks02+5./112.*pow(ks02,3));
2391  }
2392  // sp.ddcap=-2.*D0/(1.+q);
2393  //double zdcap=tt->track().vz()-s1/tan(tt->track().theta());
2394 
2395  }
2396  //
2397 
2398  // collect some info on hits and clusters
2399  fill(h,"nbarrelLayers_"+ttype,tt->track().hitPattern().pixelBarrelLayersWithMeasurement());
2400  fill(h,"nPxLayers_"+ttype,tt->track().hitPattern().pixelLayersWithMeasurement());
2401  fill(h,"nSiLayers_"+ttype,tt->track().hitPattern().trackerLayersWithMeasurement());
2402  fill(h,"expectedInner_"+ttype,tt->track().hitPattern().numberOfHits(HitPattern::MISSING_INNER_HITS));
2403  fill(h,"expectedOuter_"+ttype,tt->track().hitPattern().numberOfHits(HitPattern::MISSING_OUTER_HITS));
2404  fill(h,"trackAlgo_"+ttype,tt->track().algo());
2405  fill(h,"trackQuality_"+ttype,tt->track().qualityMask());
2406 
2407  //
2408  int longesthit=0, nbarrel=0;
2410  if ((**hit).isValid() && (**hit).geographicalId().det() == DetId::Tracker ){
2411  bool barrel = DetId((**hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
2412  //bool endcap = DetId::DetId((**hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
2413  if (barrel){
2414  const SiPixelRecHit *pixhit = dynamic_cast<const SiPixelRecHit*>( &(**hit));
2415  edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& clust = (*pixhit).cluster();
2416  if (clust.isNonnull()) {
2417  nbarrel++;
2418  if (clust->sizeY()-longesthit>0) longesthit=clust->sizeY();
2419  if (clust->sizeY()>20.){
2420  fill(h,"lvseta_"+ttype,tt->track().eta(), 19.9);
2421  fill(h,"lvstanlambda_"+ttype,tan(tt->track().lambda()), 19.9);
2422  }else{
2423  fill(h,"lvseta_"+ttype,tt->track().eta(), float(clust->sizeY()));
2424  fill(h,"lvstanlambda_"+ttype,tan(tt->track().lambda()), float(clust->sizeY()));
2425  }
2426  }
2427  }
2428  }
2429  }
2430  fill(h,"nbarrelhits_"+ttype,float(nbarrel));
2431  //-------------------------------------------------------------------
2432 }
double qoverp() const
q / p
Definition: TrackBase.h:568
double p() const
momentum vector magnitude
Definition: TrackBase.h:610
double d0Error() const
error on d0
Definition: TrackBase.h:797
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
unsigned short lost() const
Number of lost (=invalid) hits on track.
Definition: Track.h:199
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:556
double theta() const
polar angle
Definition: TrackBase.h:574
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:68
Divides< arg, void > D0
Definition: Factorize.h:143
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:499
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:518
const Point & position() const
position
Definition: Vertex.h:109
TrajectoryStateClosestToBeamLine stateAtBeamLine() const
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:55
TrackAlgorithm algo() const
Definition: TrackBase.h:492
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
T sqrt(T t)
Definition: SSEVec.h:18
double pt() const
track transverse momentum
Definition: TrackBase.h:616
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
int qualityMask() const
Definition: TrackBase.h:857
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
double lambda() const
Lambda angle.
Definition: TrackBase.h:580
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:86
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:104
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:604
double dzError() const
error on dz
Definition: TrackBase.h:809
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:664
Definition: DetId.h:18
const Track & track() const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
int pixelBarrelLayersWithMeasurement() const
Definition: HitPattern.cc:558
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:88
Pixel cluster – collection of neighboring pixels above threshold.
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:658
fixed size matrix
static int position[264][3]
Definition: ReadPGInfo.cc:509
unsigned short found() const
Number of valid hits on track.
Definition: Track.h:194
void fill(std::map< std::string, TH1 * > &h, std::string s, double x)
double y0() const
y coordinate
Definition: BeamSpot.h:66
const Point & position() const
position
Definition: BeamSpot.h:62
static const G4double kappa
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:652
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:807
Our base class.
Definition: SiPixelRecHit.h:23
double x0() const
x coordinate
Definition: BeamSpot.h:64
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:109
void PrimaryVertexValidation::fillTrendPlot ( TH1F *  trendPlot,
TH1F *  residualsPlot[100],
TString  fitPar_,
TString  var_ 
)
private

Definition at line 2133 of file PrimaryVertexValidation.cc.

References gather_cfg::cout, etaOfProbe_, etaSect_, fitResiduals(), getMAD(), getMedian(), i, nBins_, phiSect_, and Pi.

Referenced by endJob().

2135 {
2136 
2137  for ( int i=0; i<nBins_; ++i ) {
2138 
2139  char phipositionString[129];
2140  float phiInterval = phiSect_*(180/TMath::Pi());
2141  float phiposition = (-180+i*phiInterval)+(phiInterval/2);
2142  sprintf(phipositionString,"%.f",phiposition);
2143 
2144  char etapositionString[129];
2145  float etaposition = (-etaOfProbe_+i*etaSect_)+(etaSect_/2);
2146  sprintf(etapositionString,"%.1f",etaposition);
2147 
2148  if(fitPar_=="mean"){
2149  float mean_ = fitResiduals(residualsPlot[i]).first.first;
2150  float meanErr_ = fitResiduals(residualsPlot[i]).first.second;
2151  trendPlot->SetBinContent(i+1,mean_);
2152  trendPlot->SetBinError(i+1,meanErr_);
2153  } else if (fitPar_=="width"){
2154  float width_ = fitResiduals(residualsPlot[i]).second.first;
2155  float widthErr_ = fitResiduals(residualsPlot[i]).second.second;
2156  trendPlot->SetBinContent(i+1,width_);
2157  trendPlot->SetBinError(i+1,widthErr_);
2158  } else if (fitPar_=="median"){
2159  float median_ = getMedian(residualsPlot[i]).first;
2160  float medianErr_ = getMedian(residualsPlot[i]).second;
2161  trendPlot->SetBinContent(i+1,median_);
2162  trendPlot->SetBinError(i+1,medianErr_);
2163  } else if (fitPar_=="mad"){
2164  float mad_ = getMAD(residualsPlot[i]).first;
2165  float madErr_ = getMAD(residualsPlot[i]).second;
2166  trendPlot->SetBinContent(i+1,mad_);
2167  trendPlot->SetBinError(i+1,madErr_);
2168  } else {
2169  std::cout<<"PrimaryVertexValidation::fillTrendPlot() "<<fitPar_<<" unknown estimator!"<<std::endl;
2170  }
2171 
2172  if(var_=="eta"){
2173  trendPlot->GetXaxis()->SetBinLabel(i+1,etapositionString);
2174  } else if(var_=="phi"){
2175  trendPlot->GetXaxis()->SetBinLabel(i+1,phipositionString);
2176  } else {
2177  std::cout<<"PrimaryVertexValidation::fillTrendPlot() "<<var_<<" unknown track parameter!"<<std::endl;
2178  }
2179  }
2180 }
const double Pi
int i
Definition: DBlmapReader.cc:9
std::pair< Double_t, Double_t > getMAD(TH1F *histo)
std::pair< Double_t, Double_t > getMedian(TH1F *histo)
std::pair< std::pair< Double_t, Double_t >, std::pair< Double_t, Double_t > > fitResiduals(TH1 *hist)
std::pair< std::pair< Double_t, Double_t >, std::pair< Double_t, Double_t > > PrimaryVertexValidation::fitResiduals ( TH1 *  hist)
private

Definition at line 2090 of file PrimaryVertexValidation.cc.

References RecoEcal_EventContent_cff::func, RecoTauDiscriminantConfiguration::mean, and mps_fire::result.

Referenced by fillMap(), and fillTrendPlot().

2092 {
2093  //float fitResult(9999);
2094  //if (hist->GetEntries() < 20) return ;
2095 
2096  float mean = hist->GetMean();
2097  float sigma = hist->GetRMS();
2098 
2099  TF1 func("tmp", "gaus", mean - 1.5*sigma, mean + 1.5*sigma);
2100  if (0 == hist->Fit(&func,"QNR")) { // N: do not blow up file by storing fit!
2101  mean = func.GetParameter(1);
2102  sigma = func.GetParameter(2);
2103  // second fit: three sigma of first fit around mean of first fit
2104  func.SetRange(mean - 2*sigma, mean + 2*sigma);
2105  // I: integral gives more correct results if binning is too wide
2106  // L: Likelihood can treat empty bins correctly (if hist not weighted...)
2107  if (0 == hist->Fit(&func, "Q0LR")) {
2108  if (hist->GetFunction(func.GetName())) { // Take care that it is later on drawn:
2109  hist->GetFunction(func.GetName())->ResetBit(TF1::kNotDraw);
2110  }
2111  }
2112  }
2113 
2114  float res_mean = func.GetParameter(1);
2115  float res_width = func.GetParameter(2);
2116 
2117  float res_mean_err = func.GetParError(1);
2118  float res_width_err = func.GetParError(2);
2119 
2120  std::pair<Double_t,Double_t> resultM;
2121  std::pair<Double_t,Double_t> resultW;
2122 
2123  resultM = std::make_pair(res_mean,res_mean_err);
2124  resultW = std::make_pair(res_width,res_width_err);
2125 
2126  std::pair<std::pair<Double_t,Double_t>, std::pair<Double_t,Double_t> > result;
2127 
2128  result = std::make_pair(resultM,resultW);
2129  return result;
2130 }
std::pair< Double_t, Double_t > PrimaryVertexValidation::getMAD ( TH1F *  histo)
private

Definition at line 2057 of file PrimaryVertexValidation.cc.

References Abs(), getMedian(), j, pileupCalc::nbins, mps_fire::result, and create_public_lumi_plots::weights.

Referenced by fillMap(), and fillTrendPlot().

2059 {
2060 
2061  int nbins = histo->GetNbinsX();
2062  Double_t median = getMedian(histo).first;
2063  Double_t x_lastBin = histo->GetBinLowEdge(nbins+1);
2064  const char *HistoName =histo->GetName();
2065  TString Finalname = Form("resMed%s",HistoName);
2066  TH1F *newHisto = new TH1F(Finalname,Finalname,nbins,0.,x_lastBin);
2067  Double_t *residuals = new Double_t[nbins];
2068  Double_t *weights = new Double_t[nbins];
2069 
2070  for (int j = 0; j < nbins; j++) {
2071  residuals[j] = TMath::Abs(median - histo->GetBinCenter(j+1));
2072  weights[j]=histo->GetBinContent(j+1);
2073  newHisto->Fill(residuals[j],weights[j]);
2074  }
2075 
2076  Double_t theMAD = (getMedian(newHisto).first)*1.4826;
2077 
2078  delete[] residuals; residuals=0;
2079  delete[] weights; weights=0;
2080  newHisto->Delete("");
2081 
2082  std::pair<Double_t,Double_t> result;
2083  result = std::make_pair(theMAD,theMAD/histo->GetEntries());
2084 
2085  return result;
2086 
2087 }
std::pair< Double_t, Double_t > getMedian(TH1F *histo)
T Abs(T a)
Definition: MathUtil.h:49
int j
Definition: DBlmapReader.cc:9
std::string HistoName
std::pair< Double_t, Double_t > PrimaryVertexValidation::getMedian ( TH1F *  histo)
private

Definition at line 2031 of file PrimaryVertexValidation.cc.

References j, pileupCalc::nbins, mps_fire::result, x, and y.

Referenced by fillMap(), fillTrendPlot(), and getMAD().

2033 {
2034  Double_t median = 999;
2035  int nbins = histo->GetNbinsX();
2036 
2037  //extract median from histogram
2038  double *x = new double[nbins];
2039  double *y = new double[nbins];
2040  for (int j = 0; j < nbins; j++) {
2041  x[j] = histo->GetBinCenter(j+1);
2042  y[j] = histo->GetBinContent(j+1);
2043  }
2044  median = TMath::Median(nbins, x, y);
2045 
2046  delete[] x; x = 0;
2047  delete[] y; y = 0;
2048 
2049  std::pair<Double_t,Double_t> result;
2050  result = std::make_pair(median,median/TMath::Sqrt(histo->GetEntries()));
2051 
2052  return result;
2053 
2054 }
int j
Definition: DBlmapReader.cc:9
bool PrimaryVertexValidation::hasFirstLayerPixelHits ( const reco::TransientTrack  track)
private

Definition at line 919 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().

920 {
921  using namespace reco;
922  const HitPattern& p = track.hitPattern();
923  for (int i=0; i<p.numberOfHits(HitPattern::TRACK_HITS); i++) {
924  uint32_t pattern = p.getHitPattern(HitPattern::TRACK_HITS, i);
925  if (p.pixelBarrelHitFilter(pattern) || p.pixelEndcapHitFilter(pattern) ) {
926  if (p.getLayer(pattern) == 1) {
927  if (p.validHitFilter(pattern)) {
928  return true;
929  }
930  }
931  }
932  }
933  return false;
934 }
int i
Definition: DBlmapReader.cc:9
static uint32_t getLayer(uint16_t pattern)
Definition: HitPattern.h:700
const HitPattern & hitPattern() const
static bool pixelBarrelHitFilter(uint16_t pattern)
Definition: HitPattern.h:575
static bool pixelEndcapHitFilter(uint16_t pattern)
Definition: HitPattern.h:585
static bool validHitFilter(uint16_t pattern)
Definition: HitPattern.h:787
fixed size matrix
uint16_t getHitPattern(HitCategory category, int position) const
Definition: HitPattern.h:515
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:807
bool PrimaryVertexValidation::isHit2D ( const TrackingRecHit hit) const
private

Definition at line 870 of file PrimaryVertexValidation.cc.

References TrackingRecHit::dimension(), TrackingRecHit::geographicalId(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, and DetId::Tracker.

Referenced by analyze().

871 {
872  if (hit.dimension() < 2) {
873  return false; // some (muon...) stuff really has RecHit1D
874  } else {
875  const DetId detId(hit.geographicalId());
876  if (detId.det() == DetId::Tracker) {
877  if (detId.subdetId() == PixelSubdetector::PixelBarrel || detId.subdetId() == PixelSubdetector::PixelEndcap) {
878  return true; // pixel is always 2D
879  } else { // should be SiStrip now
880  if (dynamic_cast<const SiStripRecHit2D*>(&hit)) return false; // normal hit
881  else if (dynamic_cast<const SiStripMatchedRecHit2D*>(&hit)) return true; // matched is 2D
882  else if (dynamic_cast<const ProjectedSiStripRecHit2D*>(&hit)) return false; // crazy hit...
883  else {
884  edm::LogError("UnkownType") << "@SUB=AlignmentTrackSelector::isHit2D"
885  << "Tracker hit not in pixel and neither SiStripRecHit2D nor "
886  << "SiStripMatchedRecHit2D nor ProjectedSiStripRecHit2D.";
887  return false;
888  }
889  }
890  } else { // not tracker??
891  edm::LogWarning("DetectorMismatch") << "@SUB=AlignmentTrackSelector::isHit2D"
892  << "Hit not in tracker with 'official' dimension >=2.";
893  return true; // dimension() >= 2 so accept that...
894  }
895  }
896  // never reached...
897 }
virtual int dimension() const =0
Definition: DetId.h:18
DetId geographicalId() const
bool PrimaryVertexValidation::passesTrackCuts ( const reco::Track track,
const reco::Vertex vertex,
std::string  qualityString_,
double  dxyErrMax_,
double  dzErrMax_,
double  ptErrMax_ 
)
private

Definition at line 2242 of file PrimaryVertexValidation.cc.

References reco::TrackBase::d0Error(), particleFlowDisplacedVertexCandidate_cfi::dxy, reco::TrackBase::dxy(), allConversions_cfi::dz, reco::TrackBase::dz(), reco::TrackBase::dzError(), reco::Vertex::position(), reco::TrackBase::pt(), reco::TrackBase::ptError(), reco::TrackBase::quality(), reco::TrackBase::qualityByName(), mathSSE::sqrt(), reco::Vertex::xError(), reco::Vertex::yError(), and reco::Vertex::zError().

2244 {
2245 
2246  math::XYZPoint vtxPoint(0.0,0.0,0.0);
2247  double vzErr =0.0, vxErr=0.0, vyErr=0.0;
2248  vtxPoint=vertex.position();
2249  vzErr=vertex.zError();
2250  vxErr=vertex.xError();
2251  vyErr=vertex.yError();
2252 
2253  double dxy=0.0, dz=0.0, dxysigma=0.0, dzsigma=0.0;
2254  dxy = track.dxy(vtxPoint);
2255  dz = track.dz(vtxPoint);
2256  dxysigma = sqrt(track.d0Error()*track.d0Error()+vxErr*vyErr);
2257  dzsigma = sqrt(track.dzError()*track.dzError()+vzErr*vzErr);
2258 
2259  if(track.quality(reco::TrackBase::qualityByName(qualityString_)) != 1)return false;
2260  if(fabs(dxy/dxysigma) > dxyErrMax_) return false;
2261  if(fabs(dz/dzsigma) > dzErrMax_) return false;
2262  if(track.ptError() / track.pt() > ptErrMax_) return false;
2263 
2264  return true;
2265 }
double d0Error() const
error on d0
Definition: TrackBase.h:797
double zError() const
error on z
Definition: Vertex.h:123
const Point & position() const
position
Definition: Vertex.h:109
T sqrt(T t)
Definition: SSEVec.h:18
double pt() const
track transverse momentum
Definition: TrackBase.h:616
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:758
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
Definition: TrackBase.h:604
double dzError() const
error on dz
Definition: TrackBase.h:809
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:125
double xError() const
error on x
Definition: Vertex.h:119
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:505
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:586
double yError() const
error on y
Definition: Vertex.h:121
std::pair< bool, bool > PrimaryVertexValidation::pixelHitsCheck ( const reco::TransientTrack  track)
private

Definition at line 901 of file PrimaryVertexValidation.cc.

References reco::TransientTrack::hitPattern(), reco::HitPattern::numberOfValidPixelBarrelHits(), reco::HitPattern::numberOfValidPixelEndcapHits(), and AlCaHLTBitMon_ParallelJobs::p.

Referenced by analyze().

901  {
902 
903  bool hasBPixHits = false;
904  bool hasFPixHits = false;
905 
906  const reco::HitPattern& p = track.hitPattern();
907  if(p.numberOfValidPixelEndcapHits()!=0){
908  hasFPixHits = true;
909  }
910  if(p.numberOfValidPixelBarrelHits()!=0){
911  hasBPixHits = true;
912  }
913 
914  return std::make_pair(hasBPixHits,hasFPixHits);
915 }
const HitPattern & hitPattern() const
int numberOfValidPixelBarrelHits() const
Definition: HitPattern.h:843
int numberOfValidPixelEndcapHits() const
Definition: HitPattern.h:848
void PrimaryVertexValidation::SetVarToZero ( )
private

Definition at line 1956 of file PrimaryVertexValidation.cc.

References Beamdxdz_, Beamsigmaz_, BeamWidthX_, BeamWidthY_, BSx0_, BSy0_, BSz0_, charge_, chi2_, chi2ndof_, chi2normUnbiasedVertex_, chi2ProbUnbiasedVertex_, chi2UnbiasedVertex_, d3DErrorFromMyVertex_, d3DFromMyVertex_, DOFUnbiasedVertex_, dxy_, dxyBs_, dxyErrorFromMyVertex_, dxyFromMyVertex_, dz_, dzBs_, dzErrorFromMyVertex_, dzFromMyVertex_, eta_, hasRecVertex_, i, IP3DsigFromMyVertex_, 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_, wxy2_, xErrOfflineVertex_, xOfflineVertex_, xPCA_, xUnbiasedVertex_, yErrOfflineVertex_, yOfflineVertex_, yPCA_, yUnbiasedVertex_, zErrOfflineVertex_, zOfflineVertex_, zPCA_, and zUnbiasedVertex_.

Referenced by analyze().

1958 {
1959  nTracks_ = 0;
1960  nClus_ = 0;
1962  RunNumber_ =0;
1964  xOfflineVertex_ =-999.;
1965  yOfflineVertex_ =-999.;
1966  zOfflineVertex_ =-999.;
1967  xErrOfflineVertex_=0.;
1968  yErrOfflineVertex_=0.;
1969  zErrOfflineVertex_=0.;
1970  BSx0_ = -999.;
1971  BSy0_ = -999.;
1972  BSz0_ = -999.;
1973  Beamsigmaz_=-999.;
1974  Beamdxdz_=-999.;
1975  BeamWidthX_=-999.;
1976  BeamWidthY_=-999.;
1977  wxy2_=-999.;
1978 
1979  for ( int i=0; i<nMaxtracks_; ++i ) {
1980 
1981  pt_[i] = 0;
1982  p_[i] = 0;
1983  nhits_[i] = 0;
1984  nhits1D_[i] = 0;
1985  nhits2D_[i] = 0;
1986  nhitsBPIX_[i] = 0;
1987  nhitsFPIX_[i] = 0;
1988  nhitsTIB_[i] = 0;
1989  nhitsTID_[i] = 0;
1990  nhitsTOB_[i] = 0;
1991  nhitsTEC_[i] = 0;
1992  isHighPurity_[i] = 0;
1993  eta_[i] = 0;
1994  theta_[i] = 0;
1995  phi_[i] = 0;
1996  chi2_[i] = 0;
1997  chi2ndof_[i] = 0;
1998  charge_[i] = 0;
1999  qoverp_[i] = 0;
2000  dz_[i] = 0;
2001  dxy_[i] = 0;
2002  dzBs_[i] = 0;
2003  dxyBs_[i] = 0;
2004  xPCA_[i] = 0;
2005  yPCA_[i] = 0;
2006  zPCA_[i] = 0;
2007  xUnbiasedVertex_[i] =0;
2008  yUnbiasedVertex_[i] =0;
2009  zUnbiasedVertex_[i] =0;
2013  DOFUnbiasedVertex_[i]=0;
2016  dxyFromMyVertex_[i]=0;
2017  dzFromMyVertex_[i]=0;
2018  d3DFromMyVertex_[i]=0;
2022  IPTsigFromMyVertex_[i]=0;
2023  IPLsigFromMyVertex_[i]=0;
2025  hasRecVertex_[i] = 0;
2026  isGoodTrack_[i] = 0;
2027  }
2028 }
int i
Definition: DBlmapReader.cc:9
float DOFUnbiasedVertex_[nMaxtracks_]
double d3DFromMyVertex_[nMaxtracks_]
float chi2ProbUnbiasedVertex_[nMaxtracks_]
double dxyFromMyVertex_[nMaxtracks_]
double dzErrorFromMyVertex_[nMaxtracks_]
double IPTsigFromMyVertex_[nMaxtracks_]
int tracksUsedForVertexing_[nMaxtracks_]
double yUnbiasedVertex_[nMaxtracks_]
double zUnbiasedVertex_[nMaxtracks_]
float chi2normUnbiasedVertex_[nMaxtracks_]
double IPLsigFromMyVertex_[nMaxtracks_]
double xUnbiasedVertex_[nMaxtracks_]
double dzFromMyVertex_[nMaxtracks_]
double dxyErrorFromMyVertex_[nMaxtracks_]
float sumOfWeightsUnbiasedVertex_[nMaxtracks_]
double d3DErrorFromMyVertex_[nMaxtracks_]
float chi2UnbiasedVertex_[nMaxtracks_]
double IP3DsigFromMyVertex_[nMaxtracks_]
double PrimaryVertexValidation::square ( double  x)
inlineprivate

Definition at line 86 of file PrimaryVertexValidation.h.

References x.

86  {
87  return x*x;
88  }
bool PrimaryVertexValidation::vtxSort ( const reco::Vertex a,
const reco::Vertex b 
)
staticprivate

Definition at line 2232 of file PrimaryVertexValidation.cc.

References reco::Vertex::chi2(), funct::false, and reco::Vertex::tracksSize().

Referenced by analyze().

2234 {
2235  if( a.tracksSize() != b.tracksSize() )
2236  return a.tracksSize() > b.tracksSize() ? true : false ;
2237  else
2238  return a.chi2() < b.chi2() ? true : false ;
2239 }
double chi2() const
chi-squares
Definition: Vertex.h:98
size_t tracksSize() const
number of tracks
Definition: Vertex.cc:71

Member Data Documentation

TH1F* PrimaryVertexValidation::a_d3DEtaResiduals[nMaxBins_]
private

Definition at line 244 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_d3DPhiResiduals[nMaxBins_]
private

Definition at line 243 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_d3DResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 270 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_dxEtaResiduals[nMaxBins_]
private

Definition at line 226 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_dxPhiResiduals[nMaxBins_]
private

Definition at line 225 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 368 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaBiasResiduals[nMaxBins_]
private

Definition at line 353 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMADBiasTrend
private

Definition at line 404 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMADTrend
private

Definition at line 306 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMeanBiasTrend
private

Definition at line 381 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMeanTrend
private

Definition at line 283 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMedianBiasTrend
private

Definition at line 403 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaMedianTrend
private

Definition at line 305 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaResiduals[nMaxBins_]
private

Definition at line 223 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaWidthBiasTrend
private

Definition at line 382 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyEtaWidthTrend
private

Definition at line 284 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dxyMeanBiasMap
private

Definition at line 420 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dxyMeanMap
private

Definition at line 336 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiBiasResiduals[nMaxBins_]
private

Definition at line 352 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMADBiasTrend
private

Definition at line 399 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMADTrend
private

Definition at line 301 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMeanBiasTrend
private

Definition at line 376 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMeanTrend
private

Definition at line 278 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMedianBiasTrend
private

Definition at line 398 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiMedianTrend
private

Definition at line 300 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiResiduals[nMaxBins_]
private

Definition at line 222 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiWidthBiasTrend
private

Definition at line 377 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyPhiWidthTrend
private

Definition at line 279 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dxyResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 268 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dxyVsEta
private

Definition at line 328 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::a_dxyVsPhi
private

Definition at line 322 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::a_dxyWidthBiasMap
private

Definition at line 426 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dxyWidthMap
private

Definition at line 342 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dyEtaResiduals[nMaxBins_]
private

Definition at line 229 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_dyPhiResiduals[nMaxBins_]
private

Definition at line 228 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 369 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaBiasResiduals[nMaxBins_]
private

Definition at line 356 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMADBiasTrend
private

Definition at line 406 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMADTrend
private

Definition at line 308 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMeanBiasTrend
private

Definition at line 383 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMeanTrend
private

Definition at line 285 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMedianBiasTrend
private

Definition at line 405 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaMedianTrend
private

Definition at line 307 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaResiduals[nMaxBins_]
private

Definition at line 232 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaWidthBiasTrend
private

Definition at line 384 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzEtaWidthTrend
private

Definition at line 286 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dzMeanBiasMap
private

Definition at line 421 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dzMeanMap
private

Definition at line 337 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiBiasResiduals[nMaxBins_]
private

Definition at line 355 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMADBiasTrend
private

Definition at line 401 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMADTrend
private

Definition at line 303 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMeanBiasTrend
private

Definition at line 378 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMeanTrend
private

Definition at line 280 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMedianBiasTrend
private

Definition at line 400 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiMedianTrend
private

Definition at line 302 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiResiduals[nMaxBins_]
private

Definition at line 231 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiWidthBiasTrend
private

Definition at line 379 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzPhiWidthTrend
private

Definition at line 281 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_dzResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 269 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dzVsEta
private

Definition at line 329 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::a_dzVsPhi
private

Definition at line 323 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::a_dzWidthBiasMap
private

Definition at line 427 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::a_dzWidthMap
private

Definition at line 343 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::a_IP2DEtaResiduals[nMaxBins_]
private

Definition at line 235 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_IP2DPhiResiduals[nMaxBins_]
private

Definition at line 234 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_IP3DEtaResiduals[nMaxBins_]
private

Definition at line 238 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_IP3DPhiResiduals[nMaxBins_]
private

Definition at line 237 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_reszEtaResiduals[nMaxBins_]
private

Definition at line 241 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::a_reszPhiResiduals[nMaxBins_]
private

Definition at line 240 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

bool PrimaryVertexValidation::askFirstLayerHit_
private

Definition at line 109 of file PrimaryVertexValidation.h.

Referenced by analyze().

double PrimaryVertexValidation::Beamdxdz_
private

Definition at line 157 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::Beamsigmaz_
private

Definition at line 156 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::BeamWidthX_
private

Definition at line 158 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::BeamWidthY_
private

Definition at line 159 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::BSx0_
private

Definition at line 153 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::BSy0_
private

Definition at line 154 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::BSz0_
private

Definition at line 155 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::charge_[nMaxtracks_]
private

Definition at line 180 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::chi2_[nMaxtracks_]
private

Definition at line 178 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::chi2ndof_[nMaxtracks_]
private

Definition at line 179 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

float PrimaryVertexValidation::chi2normUnbiasedVertex_[nMaxtracks_]
private

Definition at line 192 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

float PrimaryVertexValidation::chi2ProbUnbiasedVertex_[nMaxtracks_]
private

Definition at line 194 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

float PrimaryVertexValidation::chi2UnbiasedVertex_[nMaxtracks_]
private

Definition at line 193 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

const int PrimaryVertexValidation::cmToum = 10000
staticprivate

Definition at line 132 of file PrimaryVertexValidation.h.

Referenced by analyze().

double PrimaryVertexValidation::d3DErrorFromMyVertex_[nMaxtracks_]
private

Definition at line 205 of file PrimaryVertexValidation.h.

Referenced by analyze(), and SetVarToZero().

double PrimaryVertexValidation::d3DFromMyVertex_[nMaxtracks_]
private

Definition at line 201 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

bool PrimaryVertexValidation::debug_
private

Definition at line 118 of file PrimaryVertexValidation.h.

Referenced by analyze().

bool PrimaryVertexValidation::doBPix_
private

Definition at line 110 of file PrimaryVertexValidation.h.

Referenced by analyze().

bool PrimaryVertexValidation::doFPix_
private

Definition at line 111 of file PrimaryVertexValidation.h.

Referenced by analyze().

float PrimaryVertexValidation::DOFUnbiasedVertex_[nMaxtracks_]
private

Definition at line 195 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dxy_[nMaxtracks_]
private

Definition at line 183 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dxyBs_[nMaxtracks_]
private

Definition at line 184 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dxyErrorFromMyVertex_[nMaxtracks_]
private

Definition at line 203 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dxyFromMyVertex_[nMaxtracks_]
private

Definition at line 199 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dz_[nMaxtracks_]
private

Definition at line 182 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dzBs_[nMaxtracks_]
private

Definition at line 185 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dzErrorFromMyVertex_[nMaxtracks_]
private

Definition at line 204 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::dzFromMyVertex_[nMaxtracks_]
private

Definition at line 200 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::eta_[nMaxtracks_]
private

Definition at line 175 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::etaOfProbe_
private
float PrimaryVertexValidation::etaSect_
private
unsigned int PrimaryVertexValidation::EventNumber_
private

Definition at line 143 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::h2_probeEtaPhi_
private

Definition at line 452 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::h2_probeEtaPt_
private

Definition at line 453 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_Beamsigmaz
private

Definition at line 446 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_BeamWidthX
private

Definition at line 447 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_BeamWidthY
private

Definition at line 448 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_BSx0
private

Definition at line 443 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_BSy0
private

Definition at line 444 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_BSz0
private

Definition at line 445 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_etaMax
private

Definition at line 215 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxChi2_
private

Definition at line 498 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxChi2ndf_
private

Definition at line 500 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxChi2Prob_
private

Definition at line 501 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxNdof_
private

Definition at line 497 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxNtracks_
private

Definition at line 499 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxTrackAverageWeight_
private

Definition at line 503 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_fitVtxTrackWeights_
private

Definition at line 502 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_nbins
private

Definition at line 216 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_nClus
private

Definition at line 434 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_nOfflineVertices
private

Definition at line 435 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_nTracks
private

Definition at line 433 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeCharge_
private

Definition at line 461 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeChi2_
private

Definition at line 459 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probed0RefitV_
private

Definition at line 470 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probed3DRefitV_
private

Definition at line 474 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probedxyRecoV_
private

Definition at line 465 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probedxyRefitV_
private

Definition at line 468 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probedzRecoV_
private

Definition at line 464 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probedzRefitV_
private

Definition at line 467 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeEta_
private

Definition at line 457 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHits1D_
private

Definition at line 486 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHits2D_
private

Definition at line 487 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHits_
private

Definition at line 485 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInBPIX_
private

Definition at line 492 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInFPIX_
private

Definition at line 493 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInTEC_
private

Definition at line 491 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInTIB_
private

Definition at line 488 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInTID_
private

Definition at line 490 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeHitsInTOB_
private

Definition at line 489 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeNormChi2_
private

Definition at line 460 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeP_
private

Definition at line 455 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probePhi_
private

Definition at line 458 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probePt_
private

Definition at line 456 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeQoverP_
private

Definition at line 462 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRecoVSigXY_
private

Definition at line 478 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRecoVSigZ_
private

Definition at line 477 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRefitVLogSig3D_
private

Definition at line 482 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRefitVSig3D_
private

Definition at line 481 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRefitVSigResZ_
private

Definition at line 483 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRefitVSigXY_
private

Definition at line 480 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probeRefitVSigZ_
private

Definition at line 479 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probereszRefitV_
private

Definition at line 475 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probesignIP2DRefitV_
private

Definition at line 473 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_probez0RefitV_
private

Definition at line 471 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_recoVtxChi2ndf_
private

Definition at line 506 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_recoVtxChi2Prob_
private

Definition at line 507 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_recoVtxNtracks_
private

Definition at line 505 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_recoVtxSumPt_
private

Definition at line 508 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_runNumber
private

Definition at line 436 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_xErrOfflineVertex
private

Definition at line 440 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_xOfflineVertex
private

Definition at line 437 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_yErrOfflineVertex
private

Definition at line 441 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_yOfflineVertex
private

Definition at line 438 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_zErrOfflineVertex
private

Definition at line 442 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::h_zOfflineVertex
private

Definition at line 439 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

int PrimaryVertexValidation::hasRecVertex_[nMaxtracks_]
private

Definition at line 211 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

std::map<std::string, TH1*> PrimaryVertexValidation::hDA
private

Definition at line 510 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

double PrimaryVertexValidation::IP3DsigFromMyVertex_[nMaxtracks_]
private

Definition at line 209 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::IPLsigFromMyVertex_[nMaxtracks_]
private

Definition at line 208 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::IPTsigFromMyVertex_[nMaxtracks_]
private

Definition at line 207 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::isGoodTrack_[nMaxtracks_]
private

Definition at line 212 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::isHighPurity_[nMaxtracks_]
private

Definition at line 174 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

bool PrimaryVertexValidation::isPhase1_
private

Definition at line 114 of file PrimaryVertexValidation.h.

Referenced by analyze().

bool PrimaryVertexValidation::lightNtupleSwitch_
private

Definition at line 102 of file PrimaryVertexValidation.h.

Referenced by beginJob().

unsigned int PrimaryVertexValidation::LuminosityBlockNumber_
private

Definition at line 144 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

TH1F* PrimaryVertexValidation::n_d3DEtaResiduals[nMaxBins_]
private

Definition at line 264 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_d3DPhiResiduals[nMaxBins_]
private

Definition at line 263 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_d3DResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 274 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_dxyBiasResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 371 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaBiasResiduals[nMaxBins_]
private

Definition at line 361 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMADBiasTrend
private

Definition at line 414 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMADTrend
private

Definition at line 316 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMeanBiasTrend
private

Definition at line 391 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMeanTrend
private

Definition at line 293 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMedianBiasTrend
private

Definition at line 413 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaMedianTrend
private

Definition at line 315 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaResiduals[nMaxBins_]
private

Definition at line 249 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaWidthBiasTrend
private

Definition at line 392 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyEtaWidthTrend
private

Definition at line 294 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dxyMeanBiasMap
private

Definition at line 423 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dxyMeanMap
private

Definition at line 339 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiBiasResiduals[nMaxBins_]
private

Definition at line 360 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMADBiasTrend
private

Definition at line 409 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMADTrend
private

Definition at line 311 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMeanBiasTrend
private

Definition at line 386 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMeanTrend
private

Definition at line 288 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMedianBiasTrend
private

Definition at line 408 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiMedianTrend
private

Definition at line 310 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiResiduals[nMaxBins_]
private

Definition at line 248 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiWidthBiasTrend
private

Definition at line 387 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyPhiWidthTrend
private

Definition at line 289 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dxyResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 272 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dxyVsEta
private

Definition at line 331 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::n_dxyVsPhi
private

Definition at line 325 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::n_dxyWidthBiasMap
private

Definition at line 429 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dxyWidthMap
private

Definition at line 345 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzBiasResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 372 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaBiasResiduals[nMaxBins_]
private

Definition at line 364 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMADBiasTrend
private

Definition at line 416 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMADTrend
private

Definition at line 318 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMeanBiasTrend
private

Definition at line 393 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMeanTrend
private

Definition at line 295 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMedianBiasTrend
private

Definition at line 415 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaMedianTrend
private

Definition at line 317 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaResiduals[nMaxBins_]
private

Definition at line 252 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaWidthBiasTrend
private

Definition at line 394 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzEtaWidthTrend
private

Definition at line 296 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dzMeanBiasMap
private

Definition at line 424 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dzMeanMap
private

Definition at line 340 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiBiasResiduals[nMaxBins_]
private

Definition at line 363 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMADBiasTrend
private

Definition at line 411 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMADTrend
private

Definition at line 313 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMeanBiasTrend
private

Definition at line 388 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMeanTrend
private

Definition at line 290 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMedianBiasTrend
private

Definition at line 410 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiMedianTrend
private

Definition at line 312 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiResiduals[nMaxBins_]
private

Definition at line 251 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiWidthBiasTrend
private

Definition at line 389 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzPhiWidthTrend
private

Definition at line 291 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_dzResidualsMap[nMaxBins_][nMaxBins_]
private

Definition at line 273 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dzVsEta
private

Definition at line 332 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::n_dzVsPhi
private

Definition at line 326 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH2F* PrimaryVertexValidation::n_dzWidthBiasMap
private

Definition at line 430 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH2F* PrimaryVertexValidation::n_dzWidthMap
private

Definition at line 346 of file PrimaryVertexValidation.h.

Referenced by beginJob(), and endJob().

TH1F* PrimaryVertexValidation::n_IP2DEtaResiduals[nMaxBins_]
private

Definition at line 255 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_IP2DPhiResiduals[nMaxBins_]
private

Definition at line 254 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_IP3DEtaResiduals[nMaxBins_]
private

Definition at line 258 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_IP3DPhiResiduals[nMaxBins_]
private

Definition at line 257 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_reszEtaResiduals[nMaxBins_]
private

Definition at line 261 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

TH1F* PrimaryVertexValidation::n_reszPhiResiduals[nMaxBins_]
private

Definition at line 260 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

int PrimaryVertexValidation::nBins_
private
int PrimaryVertexValidation::nClus_
private

Definition at line 140 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::Nevt_
private

Definition at line 92 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

int PrimaryVertexValidation::nhits1D_[nMaxtracks_]
private

Definition at line 166 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhits2D_[nMaxtracks_]
private

Definition at line 167 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhits_[nMaxtracks_]
private

Definition at line 165 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsBPIX_[nMaxtracks_]
private

Definition at line 168 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsFPIX_[nMaxtracks_]
private

Definition at line 169 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsTEC_[nMaxtracks_]
private

Definition at line 173 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsTIB_[nMaxtracks_]
private

Definition at line 170 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsTID_[nMaxtracks_]
private

Definition at line 171 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nhitsTOB_[nMaxtracks_]
private

Definition at line 172 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

const int PrimaryVertexValidation::nMaxBins_ = 100
staticprivate

Definition at line 98 of file PrimaryVertexValidation.h.

const int PrimaryVertexValidation::nMaxtracks_ = 1000
staticprivate

Definition at line 131 of file PrimaryVertexValidation.h.

Referenced by analyze(), and SetVarToZero().

int PrimaryVertexValidation::nOfflineVertices_
private

Definition at line 141 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nTracks_
private

Definition at line 138 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

int PrimaryVertexValidation::nTracksPerClus_
private

Definition at line 139 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

double PrimaryVertexValidation::p_[nMaxtracks_]
private

Definition at line 164 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::phi_[nMaxtracks_]
private

Definition at line 177 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

float PrimaryVertexValidation::phiSect_
private
double PrimaryVertexValidation::pt_[nMaxtracks_]
private

Definition at line 163 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::ptOfProbe_
private

Definition at line 112 of file PrimaryVertexValidation.h.

Referenced by analyze().

double PrimaryVertexValidation::qoverp_[nMaxtracks_]
private

Definition at line 181 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

TTree* PrimaryVertexValidation::rootTree_
private

Definition at line 125 of file PrimaryVertexValidation.h.

Referenced by analyze(), and beginJob().

bool PrimaryVertexValidation::runControl_
private

Definition at line 119 of file PrimaryVertexValidation.h.

Referenced by analyze().

std::vector<unsigned int> PrimaryVertexValidation::runControlNumbers_
private

Definition at line 116 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

unsigned int PrimaryVertexValidation::RunNumber_
private

Definition at line 142 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

bool PrimaryVertexValidation::storeNtuple_
private

Definition at line 101 of file PrimaryVertexValidation.h.

Referenced by analyze().

float PrimaryVertexValidation::sumOfWeightsUnbiasedVertex_[nMaxtracks_]
private

Definition at line 196 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

edm::EDGetTokenT<reco::BeamSpot> PrimaryVertexValidation::theBeamspotToken
private

Definition at line 123 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

edm::ParameterSet PrimaryVertexValidation::theConfig
private

Definition at line 91 of file PrimaryVertexValidation.h.

double PrimaryVertexValidation::theta_[nMaxtracks_]
private

Definition at line 176 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

TrackClusterizerInZ* PrimaryVertexValidation::theTrackClusterizer_
private

Definition at line 95 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

edm::EDGetTokenT<reco::TrackCollection> PrimaryVertexValidation::theTrackCollectionToken
private

Definition at line 121 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

TrackFilterForPVFindingBase* PrimaryVertexValidation::theTrackFilter_
private

Definition at line 94 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

edm::EDGetTokenT<reco::VertexCollection> PrimaryVertexValidation::theVertexCollectionToken
private

Definition at line 122 of file PrimaryVertexValidation.h.

Referenced by analyze(), and PrimaryVertexValidation().

int PrimaryVertexValidation::tracksUsedForVertexing_[nMaxtracks_]
private

Definition at line 197 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

bool PrimaryVertexValidation::useTracksFromRecoVtx_
private

Definition at line 103 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and endJob().

double PrimaryVertexValidation::vertexZMax_
private

Definition at line 106 of file PrimaryVertexValidation.h.

Referenced by analyze().

double PrimaryVertexValidation::wxy2_
private

Definition at line 160 of file PrimaryVertexValidation.h.

Referenced by analyze(), fillTrackHistos(), and SetVarToZero().

double PrimaryVertexValidation::xErrOfflineVertex_
private

Definition at line 149 of file PrimaryVertexValidation.h.

Referenced by analyze(), and SetVarToZero().

double PrimaryVertexValidation::xOfflineVertex_
private

Definition at line 145 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::xPCA_[nMaxtracks_]
private

Definition at line 186 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::xUnbiasedVertex_[nMaxtracks_]
private

Definition at line 189 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::yErrOfflineVertex_
private

Definition at line 150 of file PrimaryVertexValidation.h.

Referenced by analyze(), and SetVarToZero().

double PrimaryVertexValidation::yOfflineVertex_
private

Definition at line 146 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::yPCA_[nMaxtracks_]
private

Definition at line 187 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::yUnbiasedVertex_[nMaxtracks_]
private

Definition at line 190 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::zErrOfflineVertex_
private

Definition at line 151 of file PrimaryVertexValidation.h.

Referenced by analyze(), and SetVarToZero().

double PrimaryVertexValidation::zOfflineVertex_
private

Definition at line 147 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::zPCA_[nMaxtracks_]
private

Definition at line 188 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().

double PrimaryVertexValidation::zUnbiasedVertex_[nMaxtracks_]
private

Definition at line 191 of file PrimaryVertexValidation.h.

Referenced by analyze(), beginJob(), and SetVarToZero().