CMS 3D CMS Logo

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

#include <TkConvValidator.h>

Inheritance diagram for TkConvValidator:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
virtual void dqmBeginRun (edm::Run const &r, edm::EventSetup const &theEventSetup) override
 
virtual void endJob ()
 
virtual void endRun (edm::Run const &r, edm::EventSetup const &es) override
 
 TkConvValidator (const edm::ParameterSet &)
 
virtual ~TkConvValidator ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::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 & itemsToGetFrom (BranchType iType) 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

float etaTransformation (float a, float b)
 
float phiNormalization (float &a)
 
math::XYZVector recalculateMomentumAtFittedVertex (const MagneticField &mf, const TrackerGeometry &trackerGeom, const edm::RefToBase< reco::Track > &tk, const reco::Vertex &vtx)
 

Private Attributes

bool arbitratedEcalSeeded_
 
bool arbitratedMerged_
 
double bcEtLow_
 
edm::EDGetTokenT< reco::BeamSpotbeamspotToken_
 
std::string conversionCollection_
 
edm::EDGetTokenT< reco::ConversionCollectionconversionCollectionPr_Token_
 
std::string conversionCollectionProducer_
 
std::string conversionTrackProducer_
 
DQMStoredbe_
 
bool dCotCutOn_
 
double dCotCutValue_
 
double dCotHardCutValue_
 
std::string dqmpath_
 
bool ecalalgotracks_
 
double ecalEtSumCut_
 
double ecalIsolRadius_
 
std::string fName_
 
edm::EDGetTokenT< edm::SimTrackContainerg4_simTk_Token_
 
edm::EDGetTokenT< edm::SimVertexContainerg4_simVtx_Token_
 
bool generalTracksOnly_
 
edm::EDGetTokenT< reco::GenJetCollectiongenjets_Token_
 
MonitorElementh2_Chi2VsEta_ [3]
 
MonitorElementh2_Chi2VsR_ [3]
 
MonitorElementh2_convVtxdRVsEta_
 
MonitorElementh2_convVtxdRVsR_
 
MonitorElementh2_convVtxRrecVsTrue_
 
MonitorElementh2_DCotTracksVsEta_
 
MonitorElementh2_DCotTracksVsR_
 
MonitorElementh2_DPhiTracksAtEcalVsEta_
 
MonitorElementh2_DPhiTracksAtEcalVsR_
 
MonitorElementh2_DPhiTracksAtVtxVsEta_
 
MonitorElementh2_DPhiTracksAtVtxVsR_
 
MonitorElementh2_dzPVVsR_
 
MonitorElementh2_photonPtRecVsPtSim_
 
MonitorElementh2_PtRecVsPtSim_ [3]
 
MonitorElementh2_TkPtPull_ [3]
 
MonitorElementh_AllSimConv_ [5]
 Denominator for efficiencies. More...
 
MonitorElementh_convEta2_ [3][3]
 
MonitorElementh_convEta_ [3][3]
 
MonitorElementh_convEtaMatchSC_ [3][3]
 
MonitorElementh_convPhi_ [3][3]
 
MonitorElementh_convPt_ [3][3]
 
MonitorElementh_convPtRes_ [3]
 
MonitorElementh_convR_ [3][3]
 
MonitorElementh_convRplot_
 
MonitorElementh_convSCdEta_ [3][3]
 
MonitorElementh_convSCdPhi_ [3][3]
 
MonitorElementh_convVtxdEta_
 
MonitorElementh_convVtxdPhi_
 
MonitorElementh_convVtxdR_
 
MonitorElementh_convVtxdR_barrel_
 
MonitorElementh_convVtxdR_endcap_
 
MonitorElementh_convVtxdX_
 
MonitorElementh_convVtxdX_barrel_
 
MonitorElementh_convVtxdX_endcap_
 
MonitorElementh_convVtxdY_
 
MonitorElementh_convVtxdY_barrel_
 
MonitorElementh_convVtxdY_endcap_
 
MonitorElementh_convVtxdZ_
 
MonitorElementh_convVtxdZ_barrel_
 
MonitorElementh_convVtxdZ_endcap_
 
MonitorElementh_convVtxRvsZ_ [3]
 
MonitorElementh_convVtxRvsZ_zoom_ [2]
 
MonitorElementh_convVtxYvsX_
 
MonitorElementh_convVtxYvsX_zoom_ [2]
 
MonitorElementh_convZ_ [3][3]
 
MonitorElementh_convZplot_
 
MonitorElementh_DCotTracks_ [3][3]
 
MonitorElementh_deltaExpectedHitsInner_ [3][3]
 
MonitorElementh_DEtaTracksAtEcal_ [3][3]
 
MonitorElementh_distMinAppTracks_ [3][3]
 
MonitorElementh_dlClosestHitToVtx_ [3]
 
MonitorElementh_dlClosestHitToVtxSig_ [3]
 
MonitorElementh_DPhiTracksAtEcal_ [3][3]
 
MonitorElementh_DPhiTracksAtVtx_ [3][3]
 
MonitorElementh_dzPVFromTracks_ [2]
 
MonitorElementh_EoverPTracks_ [3][3]
 
MonitorElementh_invMass_ [3][3]
 
MonitorElementh_leadExpectedHitsInner_ [3][3]
 
MonitorElementh_leadNHitsBeforeVtx_ [3][3]
 
MonitorElementh_lxybs_ [3][3]
 
MonitorElementh_match_
 
MonitorElementh_maxDlClosestHitToVtx_ [3][3]
 
MonitorElementh_maxDlClosestHitToVtxSig_ [3][3]
 
MonitorElementh_maxNHitsBeforeVtx_ [3][3]
 
MonitorElementh_nConv_ [3][3]
 info per conversion More...
 
MonitorElementh_nHitsBeforeVtx_ [3]
 
MonitorElementh_nSharedHits_ [3][3]
 
MonitorElementh_nSimConv_ [2]
 
MonitorElementh_RecoConvTwoMTracks_ [5]
 
MonitorElementh_RecoConvTwoTracks_ [5]
 
MonitorElementh_SimConvEtaPix_ [2]
 
MonitorElementh_SimConvOneMTracks_ [5]
 
MonitorElementh_SimConvOneTracks_ [5]
 Numerator for efficiencies. More...
 
MonitorElementh_SimConvTwoMTracks_ [5]
 
MonitorElementh_SimConvTwoMTracksAndVtxPGT0005_ [5]
 
MonitorElementh_SimConvTwoMTracksAndVtxPGT01_ [5]
 
MonitorElementh_SimConvTwoMTracksAndVtxPGT0_ [5]
 
MonitorElementh_SimConvTwoTracks_ [5]
 
MonitorElementh_simConvVtxRvsZ_ [4]
 
MonitorElementh_simConvVtxYvsX_
 
MonitorElementh_SimRecConvOneMTracks_ [5]
 
MonitorElementh_SimRecConvOneTracks_ [5]
 
MonitorElementh_SimRecConvTwoMTracks_ [5]
 
MonitorElementh_SimRecConvTwoTracks_ [5]
 
MonitorElementh_simTkEta_
 
MonitorElementh_simTkPt_
 
MonitorElementh_sumNHitsBeforeVtx_ [3][3]
 
MonitorElementh_tkChi2_ [3]
 
MonitorElementh_tkChi2Large_ [3]
 
MonitorElementh_TkD0_ [3]
 
MonitorElementh_TkPtPull_ [3]
 
MonitorElementh_trailNHitsBeforeVtx_ [3][3]
 
MonitorElementh_VisSimConv_ [6]
 
MonitorElementh_VisSimConvLarge_
 
MonitorElementh_vtxChi2Prob_ [3][3]
 
MonitorElementh_zPVFromTracks_ [2]
 
double hcalEtSumCut_
 
double hcalHitEtLow_
 
double hcalIsolExtRadius_
 
double hcalIsolInnRadius_
 
edm::EDGetTokenT< edm::HepMCProducthepMC_Token_
 
bool highPurity_
 
bool isRunCentrally_
 
edm::InputTag label_tp_
 
double lip_
 
uint maxHitsBeforeVtx_
 
double maxPhoEtaForEffic
 
double maxPhoEtaForPurity
 
double maxPhoRForEffic
 
double maxPhoRForPurity
 
double maxPhoZForEffic
 
double maxPhoZForPurity
 
double mcConvEta_
 
double mcConvPhi_
 
double mcConvPt_
 
double mcConvR_
 
double mcConvX_
 
double mcConvY_
 
double mcConvZ_
 
double mcEta_
 
double mcJetEta_
 
double mcJetPhi_
 
double mcPhi_
 global variable for the MC photon More...
 
double minLxy_
 
double minPhoEtCut_
 
double minPhoPtForEffic
 
double minPhoPtForPurity
 
double minProb_
 
int nEntry_
 
int nEvt_
 
MonitorElementnHits_ [3]
 
MonitorElementnHitsVsEta_ [3]
 
MonitorElementnHitsVsR_ [3]
 
int nInvalidPCA_
 
int nMatched_
 
int nRecConv_
 
int nRecConvAss_
 
int nRecConvAssWithEcal_
 
int nSimConv_ [2]
 
int numOfTracksInCone_
 
edm::EDGetTokenT< reco::VertexCollectionoffline_pvToken_
 
MonitorElementp2_convVtxdRVsRZ_
 
MonitorElementp2_convVtxdZVsRZ_
 
MonitorElementp2_effRZ_
 
MonitorElementp_Chi2VsEta_ [3]
 
MonitorElementp_Chi2VsR_ [3]
 
MonitorElementp_convVtxdRVsEta_
 
MonitorElementp_convVtxdRVsR_
 
MonitorElementp_convVtxdXVsX_
 
MonitorElementp_convVtxdYVsY_
 
MonitorElementp_convVtxdZVsR_
 
MonitorElementp_convVtxdZVsZ_
 
MonitorElementp_DCotTracksVsEta_
 
MonitorElementp_DCotTracksVsR_
 
MonitorElementp_DPhiTracksAtEcalVsEta_
 
MonitorElementp_DPhiTracksAtEcalVsR_
 
MonitorElementp_DPhiTracksAtVtxVsEta_
 
MonitorElementp_DPhiTracksAtVtxVsR_
 
MonitorElementp_dzPVVsR_
 
MonitorElementp_nHitsVsEta_ [3]
 
MonitorElementp_nHitsVsR_ [3]
 
MonitorElementp_TkPtPull_ [3]
 
edm::ParameterSet parameters_
 
std::string photonCollection_
 
edm::EDGetTokenT< reco::PhotonCollectionphotonCollectionPr_Token_
 
std::string photonCollectionProducer_
 
double recMaxPt_
 
double recMinPt_
 Global variables for reco Photon. More...
 
double simMaxPt_
 
double simMinPt_
 
edm::ESHandle< CaloGeometrytheCaloGeom_
 
edm::ESHandle< CaloTopologytheCaloTopo_
 
edm::RefVector< TrackingParticleCollectiontheConvTP_
 
edm::ESHandle< MagneticFieldtheMF_
 
PhotonMCTruthFinderthePhotonMCTruthFinder_
 
edm::EDGetTokenT< TrackingParticleRefVectortpSelForEff_Token_
 
edm::EDGetTokenT< TrackingParticleRefVectortpSelForFake_Token_
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatortrackAssociator_Token_
 
double trkIsolExtRadius_
 
double trkIsolInnRadius_
 
double trkPtLow_
 
double trkPtSumCut_
 
int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::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

$Id: TkConvValidator

Author
N.Marinelli - Univ. of Notre Dame

Definition at line 51 of file TkConvValidator.h.

Constructor & Destructor Documentation

TkConvValidator::TkConvValidator ( const edm::ParameterSet pset)
explicit

Definition at line 104 of file TkConvValidator.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), muonDTDigis_cfi::pset, and AlCaHLTBitMon_QueryRunRegistry::string.

105  {
106 
107  fName_ = pset.getUntrackedParameter<std::string>("Name");
108  verbosity_ = pset.getUntrackedParameter<int>("Verbosity");
109  parameters_ = pset;
110 
111  photonCollectionProducer_ = pset.getParameter<std::string>("phoProducer");
112  photonCollection_ = pset.getParameter<std::string>("photonCollection");
113  photonCollectionPr_Token_ = consumes<reco::PhotonCollection> (
115  photonCollection_));
116 
118  conversionCollection_ = pset.getParameter<std::string>("conversionCollection");
119  conversionCollectionPr_Token_ = consumes<reco::ConversionCollection> (
120  edm::InputTag(conversionCollectionProducer_,
121  conversionCollection_));
122 
123  // conversionTrackProducer_ = pset.getParameter<std::string>("trackProducer");
124  dqmpath_ = pset.getParameter<std::string>("dqmpath");
125  minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
126  generalTracksOnly_ = pset.getParameter<bool>("generalTracksOnly");
127  arbitratedMerged_ = pset.getParameter<bool>("arbitratedMerged");
128  arbitratedEcalSeeded_ = pset.getParameter<bool>("arbitratedEcalSeeded");
129  ecalalgotracks_ = pset.getParameter<bool>("ecalalgotracks");
130  highPurity_ = pset.getParameter<bool>("highPurity");
131  minProb_ = pset.getParameter<double>("minProb");
132  maxHitsBeforeVtx_ = pset.getParameter<uint>("maxHitsBeforeVtx");
133  minLxy_ = pset.getParameter<double>("minLxy");
134  isRunCentrally_= pset.getParameter<bool>("isRunCentrally");
135 
136  offline_pvToken_ = consumes<reco::VertexCollection>(
137  pset.getUntrackedParameter<edm::InputTag> ("offlinePV",
138  edm::InputTag("offlinePrimaryVertices")));
139  beamspotToken_ = consumes<reco::BeamSpot>(
140  pset.getUntrackedParameter<edm::InputTag> ("beamspot",
141  edm::InputTag("offlineBeamSpot")));
142  g4_simTk_Token_ = consumes<edm::SimTrackContainer>(pset.getParameter<edm::InputTag>("simTracks"));
143  g4_simVtx_Token_ = consumes<edm::SimVertexContainer>(pset.getParameter<edm::InputTag>("simTracks"));
144 
145  tpSelForEff_Token_ = consumes<TrackingParticleRefVector> (
146  edm::InputTag("tpSelecForEfficiency"));
147  tpSelForFake_Token_ = consumes<TrackingParticleRefVector> (
148  edm::InputTag("tpSelecForFakeRate"));
149  //hepMC_Token_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
150  //genjets_Token_ = consumes<reco::GenJetCollection>(
151  // edm::InputTag("ak4GenJets"));
152 
153  trackAssociator_Token_ = consumes<reco::TrackToTrackingParticleAssociator>(edm::InputTag("trackAssociatorByHitsForConversionValidation"));
154  }
T getParameter(std::string const &) const
std::string dqmpath_
T getUntrackedParameter(std::string const &, T const &) const
std::string photonCollection_
edm::EDGetTokenT< TrackingParticleRefVector > tpSelForFake_Token_
edm::EDGetTokenT< reco::PhotonCollection > photonCollectionPr_Token_
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
edm::ParameterSet parameters_
edm::EDGetTokenT< edm::SimTrackContainer > g4_simTk_Token_
edm::EDGetTokenT< edm::SimVertexContainer > g4_simVtx_Token_
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
edm::EDGetTokenT< TrackingParticleRefVector > tpSelForEff_Token_
std::string conversionCollection_
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > trackAssociator_Token_
edm::EDGetTokenT< reco::ConversionCollection > conversionCollectionPr_Token_
std::string conversionCollectionProducer_
std::string fName_
std::string photonCollectionProducer_
TkConvValidator::~TkConvValidator ( )
virtual

Definition at line 158 of file TkConvValidator.cc.

158 {}

Member Function Documentation

void TkConvValidator::analyze ( const edm::Event e,
const edm::EventSetup esup 
)
overridevirtual

Definition at line 803 of file TkConvValidator.cc.

References funct::abs(), reco::TrackBase::algo(), reco::Conversion::arbitratedEcalSeeded, reco::Conversion::arbitratedMerged, reco::TrackToTrackingParticleAssociator::associateRecoToSim(), reco::TrackToTrackingParticleAssociator::associateSimToReco(), ALCARECOTkAlJpsiMuMu_cff::charge, reco::Vertex::chi2(), ChiSquaredProbability(), conv, reco::Conversion::conversionVertex(), allConversions_cfi::d0, reco::deltaPhi(), reco::Conversion::distOfMinimumApproach(), reco::Conversion::dlClosestHitToVtx(), reco::Conversion::dPhiTracksAtVtx(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, edm::AssociationMap< Tag >::end(), HcalObjRepresent::Fill(), edm::AssociationMap< Tag >::find(), reco::Conversion::generalTracksOnly, edm::EventSetup::get(), edm::RefToBase< T >::get(), edm::Event::getByToken(), reco::Conversion::highPurity, reco::TrackBase::hitPattern(), mps_fire::i, edm::EventBase::id(), reco::TrackBase::inOutEcalSeededConv, reco::Vertex::isValid(), edm::HandleBase::isValid(), edm::Ref< C, T, F >::key(), match(), hpstanc_transforms::max, tkConvValidator_cfi::maxPhoEtaForEffic, tkConvValidator_cfi::maxPhoEtaForPurity, tkConvValidator_cfi::maxPhoRForEffic, tkConvValidator_cfi::maxPhoZForEffic, tkConvValidator_cfi::maxPhoZForPurity, tkConvValidator_cfi::minPhoPtForEffic, tkConvValidator_cfi::minPhoPtForPurity, reco::HitPattern::MISSING_INNER_HITS, reco::Vertex::ndof(), reco::Conversion::nHitsBeforeVtx(), reco::Conversion::nSharedHits(), reco::HitPattern::numberOfHits(), reco::TrackBase::outInEcalSeededConv, p1, p2, reco::Conversion::pairCotThetaSeparation(), reco::Conversion::pairInvariantMass(), cosmictrackingParticleSelector_cfi::pdgId, configurableAnalysis::Photon, correctedPhotons_cfi::photonCollection, reco::Vertex::position(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), reco::TrackBase::pt(), edm::RefToBaseVector< T >::push_back(), q1, q2, reco::Conversion::quality(), recPt, reco::Conversion::refittedPairMomentum(), reco::Vertex::refittedTracks(), edm::AssociationMap< Tag >::size(), mathSSE::sqrt(), reco::Photon::superCluster(), mixOne_simraw_on_sim_cfi::tracker, l1t::tracks, reco::Conversion::tracks(), photonValidationSequence_cff::useTP, particleFlowSuperClusterECAL_cfi::vertexCollection, badGlobalMuonTaggersAOD_cff::vtx, reco::Vertex::x(), reco::BeamSpot::x0(), reco::Vertex::y(), reco::BeamSpot::y0(), and reco::Conversion::zOfPrimaryVertexFromTracks().

803  {
805  using namespace edm;
806  // const float etaPhiDistance=0.01;
807  // Fiducial region
808  // const float TRK_BARL =0.9;
809  const float BARL = 1.4442; // DAQ TDR p.290
810  // const float END_LO = 1.566; // unused
811  const float END_HI = 2.5;
812  // Electron mass
813  // const Float_t mElec= 0.000511; // unused
814 
816  e.getByToken(trackAssociator_Token_,theTrackAssociator);
817 
818 
819  nEvt_++;
820  LogInfo("TkConvValidator") << "TkConvValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
821  // std::cout << "TkConvValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
822 
823 
824  // get the geometry from the event setup:
825  esup.get<CaloGeometryRecord>().get(theCaloGeom_);
826 
827 
828  // Transform Track into TransientTrack (needed by the Vertex fitter)
830  esup.get<TransientTrackRecord>().get("TransientTrackBuilder",theTTB);
831 
832 
836  const reco::ConversionCollection convCollection = *(convHandle.product());
837  if (!convHandle.isValid()) {
838  edm::LogError("ConversionsProducer") << "Error! Can't get the collection "<< std::endl;
839  return;
840  }
841 
843  Handle<reco::PhotonCollection> photonHandle;
844  e.getByToken(photonCollectionPr_Token_, photonHandle);
845  const reco::PhotonCollection photonCollection = *(photonHandle.product());
846  if (!photonHandle.isValid()) {
847  edm::LogError("PhotonProducer") << "Error! Can't get the Photon collection "<< std::endl;
848  return;
849  }
850 
851 
852  // offline Primary vertex
855  e.getByToken(offline_pvToken_, vertexHandle);
856  if (!vertexHandle.isValid()) {
857  edm::LogError("TrackerOnlyConversionProducer") << "Error! Can't get the product primary Vertex Collection "<< "\n";
858  } else {
859  vertexCollection = *(vertexHandle.product());
860  }
861  reco::Vertex the_pvtx;
862  bool valid_pvtx = false;
863  if (!vertexCollection.empty()){
864  the_pvtx = *(vertexCollection.begin());
865  //asking for one good vertex
866  if (the_pvtx.isValid() && fabs(the_pvtx.position().z())<=15 && the_pvtx.position().Rho()<=2){
867  valid_pvtx = true;
868  }
869  }
870 
872  e.getByToken(beamspotToken_, bsHandle);
873  if (!bsHandle.isValid()) {
874  edm::LogError("TrackerOnlyConversionProducer")
875  << "Error! Can't get the product primary Vertex Collection "<< "\n";
876  return;
877  }
878  const reco::BeamSpot &thebs = *bsHandle.product();
879 
880  //get tracker geometry for hits positions
882  esup.get<TrackerDigiGeometryRecord>().get(tracker);
883  const TrackerGeometry* trackerGeom = tracker.product();
884 
885 
886 
888  //get simtrack info
889  //std::vector<SimTrack> theSimTracks;
890  //std::vector<SimVertex> theSimVertices;
891 
894  e.getByToken(g4_simTk_Token_, SimTk);
895  e.getByToken(g4_simVtx_Token_, SimVtx);
896 
897  bool useTP = parameters_.getParameter<bool>("useTP");
900  edm::Handle<TrackingParticleRefVector> TPHandleForFakeRate;
901  if (useTP) {
902  e.getByToken(tpSelForEff_Token_, TPHandleForEff);
903  e.getByToken(tpSelForFake_Token_, TPHandleForFakeRate);
904  }
905 
906  const TrackingParticleRefVector &tpForEfficiency= useTP? *(TPHandleForEff.product()) : dummy;
907  const TrackingParticleRefVector &tpForFakeRate= useTP? *(TPHandleForFakeRate.product()):dummy;
908 
909  const std::vector<SimTrack> &theSimTracks= *SimTk;
910  const std::vector<SimVertex> &theSimVertices= *SimVtx;
911 
912  //theSimTracks.insert(theSimTracks.end(),SimTk->begin(),SimTk->end());
913  //theSimVertices.insert(theSimVertices.end(),SimVtx->begin(),SimVtx->end());
914  std::vector<PhotonMCTruth> mcPhotons=thePhotonMCTruthFinder_->find (theSimTracks, theSimVertices);
915 
916  //edm::Handle<edm::HepMCProduct> hepMC;
917  //e.getByToken(hepMC_Token_, hepMC);
918  // const HepMC::GenEvent *myGenEvent = hepMC->GetEvent(); // unused
919 
920 
921  // get generated jets
922  //edm::Handle<reco::GenJetCollection> GenJetsHandle;
923  //e.getByToken(genjets_Token_, GenJetsHandle);
924  //const reco::GenJetCollection &genJetCollection = *(GenJetsHandle.product());
925 
926  ConversionHitChecker hitChecker;
927 
928  // ################ SIM to RECO ######################### //
929  std::map<const reco::Track*,TrackingParticleRef> myAss;
930  std::map<const reco::Track*,TrackingParticleRef>::const_iterator itAss;
931 
932  for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
933 
934  mcConvPt_= (*mcPho).fourMomentum().et();
935  float mcPhi= (*mcPho).fourMomentum().phi();
936  mcPhi_= phiNormalization(mcPhi);
937  mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
938  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
939  mcConvR_= (*mcPho).vertex().perp();
940  mcConvX_= (*mcPho).vertex().x();
941  mcConvY_= (*mcPho).vertex().y();
942  mcConvZ_= (*mcPho).vertex().z();
943  mcConvEta_= (*mcPho).vertex().eta();
944  mcConvPhi_= (*mcPho).vertex().phi();
945 
946  if ( fabs(mcEta_) > END_HI ) continue;
947 
948  if (mcConvPt_<minPhoPtForEffic) continue;
949  if (fabs(mcEta_)>maxPhoEtaForEffic) continue;
950  if (fabs(mcConvZ_)>maxPhoZForEffic) continue;
951  if (mcConvR_>maxPhoRForEffic) continue;
953 
954  bool goodSimConversion=false;
955  bool visibleConversion=false;
956  bool visibleConversionsWithTwoSimTracks=false;
957  if ( (*mcPho).isAConversion() == 1 ) {
958  nSimConv_[0]++;
959  h_AllSimConv_[0]->Fill( mcEta_ ) ;
960  h_AllSimConv_[1]->Fill( mcPhi_ );
961  h_AllSimConv_[2]->Fill( mcConvR_ );
962  h_AllSimConv_[3]->Fill( mcConvZ_ );
963  h_AllSimConv_[4]->Fill( (*mcPho).fourMomentum().et());
964 
965  if ( mcConvR_ <15) h_SimConvEtaPix_[0]->Fill( mcEta_ ) ;
966 
967  if ( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
968  ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) visibleConversion=true;
969 
970  theConvTP_.clear();
971  // std::cout << " TkConvValidator TrackingParticles TrackingParticleCollection size "<< trackingParticles.size() << "\n";
972  //duplicated TP collections for two associations
973  for(const TrackingParticleRef tp: tpForEfficiency) {
974  if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
975  fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
976  fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
977  theConvTP_.push_back( tp );
978  }
979  }
980  //std::cout << " TkConvValidator theConvTP_ size " << theConvTP_.size() << std::endl;
981 
982  if ( theConvTP_.size() == 2 ) visibleConversionsWithTwoSimTracks=true;
983  goodSimConversion=false;
984 
985  if ( visibleConversion && visibleConversionsWithTwoSimTracks ) goodSimConversion=true;
986  if ( goodSimConversion ) {
987  nSimConv_[1]++;
988  h_VisSimConv_[0]->Fill( mcEta_ ) ;
989  h_VisSimConv_[1]->Fill( mcPhi_ );
990  h_VisSimConv_[2]->Fill( mcConvR_ );
991  h_VisSimConv_[3]->Fill( mcConvZ_ );
992  h_VisSimConv_[4]->Fill( (*mcPho).fourMomentum().et());
993 
994  }
995 
997  h_simTkPt_ -> Fill ( (*iTrk)->pt() );
998  h_simTkEta_ -> Fill ( (*iTrk)->eta() );
999  }
1000 
1001 
1002  }
1003 
1004  if ( ! (visibleConversion && visibleConversionsWithTwoSimTracks ) ) continue;
1005 
1006  h_simConvVtxRvsZ_[0] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1007  if ( fabs(mcEta_) <=1.) {
1008  h_simConvVtxRvsZ_[1] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1010  }
1011  else
1012  h_simConvVtxRvsZ_[2] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1013 
1014  //std::cout << " TkConvValidator theConvTP_ size " << theConvTP_.size() << std::endl;
1016  {
1017  // std::cout << " SIM to RECO TP vertex " << (*iTP)->vx() << " " << (*iTP)->vy() << " " << (*iTP)->vz() << " pt " << (*iTP)->pt() << std::endl;
1018  }
1019 
1020  bool recomatch = false;
1021  float chi2Prob = 0.;
1023  // cout << " size of conversions " << convHandle->size() << endl;
1024  for (reco::ConversionCollection::const_iterator conv = convHandle->begin();conv!=convHandle->end();++conv) {
1025 
1026  const reco::Conversion aConv = (*conv);
1030 
1031 
1032  if ( highPurity_ && !aConv.quality(reco::Conversion::highPurity) ) continue;
1033 
1034  //problematic?
1035  std::vector<edm::RefToBase<reco::Track> > tracks = aConv.tracks();
1036 
1037 
1038  const reco::Vertex& vtx = aConv.conversionVertex();
1039  //requires two tracks and a valid vertex
1040  if (tracks.size() !=2 || !(vtx.isValid())) continue;
1041 
1042 
1043  if (ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ) <= minProb_) continue;
1044  if (aConv.nHitsBeforeVtx().size()>1 && max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) > maxHitsBeforeVtx_ ) continue;
1045 
1046 
1047  //compute transverse decay length with respect to beamspot
1048  math::XYZVectorF themom = aConv.refittedPairMomentum();
1049  double dbsx = aConv.conversionVertex().x() - thebs.x0();
1050  double dbsy = aConv.conversionVertex().y() - thebs.y0();
1051  double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho();
1052 
1053  if (lxy<minLxy_) continue;
1054 
1055  // bool phoIsInBarrel=false; // unused
1056  // bool phoIsInEndcap=false; // unused
1057  RefToBase<reco::Track> tfrb1 = aConv.tracks().front();
1058  RefToBase<reco::Track> tfrb2 = aConv.tracks().back();
1059 
1061 
1062 
1063  //reco::TrackRef tk1 = aConv.tracks().front();
1064  //reco::TrackRef tk2 = aConv.tracks().back();
1065  //std::cout << "SIM to RECO conversion track pt " << tk1->pt() << " " << tk2->pt() << endl;
1066  //
1067  //Use two RefToBaseVector and do two association actions to avoid that if two tracks from different collection
1069  tc1.push_back(tfrb1);
1070  tc2.push_back(tfrb2);
1071  bool isAssociated = false;
1072  reco::SimToRecoCollection q1 = theTrackAssociator->associateSimToReco(tc1,theConvTP_);
1073  reco::SimToRecoCollection q2 = theTrackAssociator->associateSimToReco(tc2,theConvTP_);
1074  //try {
1075  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV1, trackV2;
1076 
1077  int tp_1 = 0, tp_2 = 1;//the index of associated tp in theConvTP_ for two tracks
1078  if (q1.find(theConvTP_[0])!=q1.end()){
1079  trackV1 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q1[theConvTP_[0]];
1080  } else if (q1.find(theConvTP_[1])!=q1.end()){
1081  trackV1 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q1[theConvTP_[1]];
1082  tp_1 = 1;
1083  }
1084  if (q2.find(theConvTP_[1])!=q2.end()){
1085  trackV2 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q2[theConvTP_[1]];
1086  } else if (q2.find(theConvTP_[0])!=q2.end()){
1087  trackV2 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q2[theConvTP_[0]];
1088  tp_2 = 0;
1089  }
1090  if (!(trackV1.size()&&trackV2.size()))
1091  continue;
1092  if (tp_1 == tp_2) continue;
1093 
1094  edm::RefToBase<reco::Track> tr1 = trackV1.front().first;
1095  edm::RefToBase<reco::Track> tr2 = trackV2.front().first;
1096  //std::cout << "associated tp1 " <<theConvTP_[0]->pt() << " to track with pT=" << tr1->pt() << " " << (tr1.get())->pt() << endl;
1097  //std::cout << "associated tp2 " <<theConvTP_[1]->pt() << " to track with pT=" << tr2->pt() << " " << (tr2.get())->pt() << endl;
1098  myAss.insert( std::make_pair (tr1.get(),theConvTP_[tp_1] ) );
1099  myAss.insert( std::make_pair (tr2.get(),theConvTP_[tp_2]) );
1100 
1101  //} catch (Exception event) {
1102  //cout << "continue: " << event.what() << endl;
1103  // continue;
1104  //}
1105 
1106 
1107  isAssociated = true;
1108  recomatch = true;
1109  chi2Prob = ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() );
1110 
1111  if (isAssociated) {
1114  h_SimRecConvTwoMTracks_[2]->Fill( mcConvR_ );
1116  h_SimRecConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et());
1117  }
1118 
1119  // break;
1120  } // loop over reco conversions
1121  if (recomatch) {
1125  h_SimConvTwoMTracks_[2]->Fill( mcConvR_ );
1127  h_SimConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et());
1128 
1129 
1130  if ( chi2Prob > 0) {
1133  h_SimConvTwoMTracksAndVtxPGT0_[2]->Fill( mcConvR_ );
1135  h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill( (*mcPho).fourMomentum().et());
1136  }
1137  if ( chi2Prob > 0.0005) {
1140  h_SimConvTwoMTracksAndVtxPGT0005_[2]->Fill( mcConvR_ );
1142  h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill( (*mcPho).fourMomentum().et());
1143 
1144  }
1145  }
1146 
1147  } //End loop over simulated conversions
1148 
1149 
1150  // ########################### RECO to SIM ############################## //
1151 
1152  for (reco::ConversionCollection::const_iterator conv = convHandle->begin();conv!=convHandle->end();++conv) {
1153  const reco::Conversion aConv = (*conv);
1157 
1158 
1159  if ( highPurity_ && !aConv.quality(reco::Conversion::highPurity) ) continue;
1160 
1161  //problematic?
1162  std::vector<edm::RefToBase<reco::Track> > tracks = aConv.tracks();
1163 
1164  const reco::Vertex& vtx = aConv.conversionVertex();
1165  //requires two tracks and a valid vertex
1166  if (tracks.size() !=2 || !(vtx.isValid())) continue;
1167  //if (tracks.size() !=2) continue;
1168 
1169 
1170  if (ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ) <= minProb_) continue;
1171  if (aConv.nHitsBeforeVtx().size()>1 && max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) > maxHitsBeforeVtx_ ) continue;
1172 
1173  //compute transverse decay length with respect to beamspot
1174  math::XYZVectorF themom = aConv.refittedPairMomentum();
1175  double dbsx = aConv.conversionVertex().x() - thebs.x0();
1176  double dbsy = aConv.conversionVertex().y() - thebs.y0();
1177  double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho();
1178 
1179  if (lxy<minLxy_) continue;
1180 
1181  bool phoIsInBarrel=false;
1182  bool phoIsInEndcap=false;
1183  RefToBase<reco::Track> tk1 = aConv.tracks().front();
1184  RefToBase<reco::Track> tk2 = aConv.tracks().back();
1186  tc1.push_back(tk1);
1187  tc2.push_back(tk2);
1188 
1190 
1191 
1192  //std::cout << " RECO to SIM conversion track pt " << tk1->pt() << " " << tk2->pt() << endl;
1193  const reco::Track refTk1 = aConv.conversionVertex().refittedTracks().front();
1194  const reco::Track refTk2 = aConv.conversionVertex().refittedTracks().back();
1195 
1196  //TODO replace it with phi at vertex
1197  float dPhiTracksAtVtx = aConv.dPhiTracksAtVtx();
1198  // override with the phi calculated at the vertex
1199  math::XYZVector p1AtVtx= recalculateMomentumAtFittedVertex ( (*theMF_), *trackerGeom, tk1, aConv.conversionVertex() );
1200  math::XYZVector p2AtVtx= recalculateMomentumAtFittedVertex ( (*theMF_), *trackerGeom, tk2, aConv.conversionVertex() );
1201  if ( sqrt(p1AtVtx.perp2()) > sqrt(p2AtVtx.perp2()) )
1202  dPhiTracksAtVtx = p1AtVtx.phi() - p2AtVtx.phi();
1203  else
1204  dPhiTracksAtVtx = p2AtVtx.phi() - p1AtVtx.phi();
1205 
1206 
1207  math::XYZVectorF refittedMom = aConv.refittedPairMomentum();
1208 
1209 
1210  if (fabs(refittedMom.eta())< 1.479 ) {
1211  phoIsInBarrel=true;
1212  } else {
1213  phoIsInEndcap=true;
1214  }
1215 
1216  nRecConv_++;
1217 
1218  // check matching with reco photon
1219  double Mindeltaeta = 999999;
1220  double Mindeltaphi = 999999;
1221  bool matchConvSC=false;
1222  reco::PhotonCollection::const_iterator iMatchingSC;
1223  for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
1224  reco::Photon aPho = reco::Photon(*iPho);
1225  const double deltaphi= reco::deltaPhi( aConv.refittedPairMomentum().phi(), aPho.superCluster()->position().phi());
1226  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1227  double deltaeta = abs( aPho.superCluster()->position().eta() -ConvEta);
1228  if (abs(deltaeta)<abs(Mindeltaeta) && abs(deltaphi)<abs(Mindeltaphi)) {
1229  Mindeltaphi=abs(deltaphi);
1230  Mindeltaeta=abs(deltaeta);
1231  iMatchingSC = iPho ;
1232  }
1233  }
1234  if (abs(Mindeltaeta)<0.1 && abs(Mindeltaphi)<0.1) {
1235  matchConvSC=true;
1236  }
1237 
1238 
1240  int match =0;
1241  float invM=aConv.pairInvariantMass();
1242  float chi2Prob = ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() );
1243  uint maxNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) : 0;
1244  uint sumNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(0) + aConv.nHitsBeforeVtx().at(1) : 0;
1245  float maxDlClosestHitToVtx = aConv.dlClosestHitToVtx().size()>1 ? max(aConv.dlClosestHitToVtx().at(0).value(),aConv.dlClosestHitToVtx().at(1).value()) : 0;
1246  float maxDlClosestHitToVtxSig = aConv.dlClosestHitToVtx().size()>1 ? max(aConv.dlClosestHitToVtx().at(0).value()/aConv.dlClosestHitToVtx().at(0).error(),aConv.dlClosestHitToVtx().at(1).value()/aConv.dlClosestHitToVtx().at(1).error()) : 0;
1247 
1248  int ilead = 0, itrail = 1;
1249  if (tk2->pt() > tk1->pt()) {
1250  ilead = 1;
1251  itrail = 0;
1252  }
1253  RefToBase<reco::Track> tklead = aConv.tracks().at(ilead);
1254  RefToBase<reco::Track> tktrail = aConv.tracks().at(itrail);
1255 
1256  int deltaExpectedHitsInner = tklead->hitPattern().numberOfHits(reco::HitPattern::MISSING_INNER_HITS)
1258  int leadExpectedHitsInner = tklead->hitPattern().numberOfHits(reco::HitPattern::MISSING_INNER_HITS);
1259  uint leadNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(ilead) : 0;
1260  uint trailNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(itrail) : 0;
1261 
1262 
1263  h_convEta_[match][0]->Fill( refittedMom.eta() );
1264  h_convEta2_[match][0]->Fill( refittedMom.eta() );
1265 
1266  h_convPhi_[match][0]->Fill( refittedMom.phi() );
1267  h_convR_[match][0]->Fill( sqrt(aConv.conversionVertex().position().perp2()) );
1268  h_convRplot_->Fill( sqrt(aConv.conversionVertex().position().perp2()) );
1269  h_convZ_[match][0]->Fill( aConv.conversionVertex().position().z() );
1270  h_convZplot_->Fill( aConv.conversionVertex().position().z() );
1271  h_convPt_[match][0]->Fill( sqrt(refittedMom.perp2()) );
1272  h_invMass_[match][0] ->Fill( invM);
1273  h_vtxChi2Prob_[match][0] ->Fill (chi2Prob);
1274  h_lxybs_[match][0] ->Fill (lxy);
1275  h_maxNHitsBeforeVtx_[match][0] ->Fill (maxNHitsBeforeVtx);
1276  h_leadNHitsBeforeVtx_[match][0] ->Fill (leadNHitsBeforeVtx);
1277  h_trailNHitsBeforeVtx_[match][0] ->Fill (trailNHitsBeforeVtx);
1278  h_sumNHitsBeforeVtx_[match][0] ->Fill (sumNHitsBeforeVtx);
1279  h_deltaExpectedHitsInner_[match][0] ->Fill (deltaExpectedHitsInner);
1280  h_leadExpectedHitsInner_[match][0] ->Fill (leadExpectedHitsInner);
1281  h_maxDlClosestHitToVtx_[match][0] ->Fill (maxDlClosestHitToVtx);
1282  h_maxDlClosestHitToVtxSig_[match][0] ->Fill (maxDlClosestHitToVtxSig);
1283  h_nSharedHits_[match][0] ->Fill (aConv.nSharedHits());
1284 
1285 
1286  if ( matchConvSC ) {
1287  h_convEtaMatchSC_[match][0]->Fill( refittedMom.eta() );
1288  h_EoverPTracks_[match][0] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1289  h_convSCdPhi_[match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1290  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1291  h_convSCdEta_[match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1292  }
1293 
1295  h_DPhiTracksAtVtx_[match][0]->Fill( dPhiTracksAtVtx);
1296  h2_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx);
1297  h2_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx);
1298  p_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx);
1299  p_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx);
1300 
1301  h_DCotTracks_[match][0] ->Fill ( aConv.pairCotThetaSeparation() );
1303  h2_DCotTracksVsR_->Fill( mcConvR_, aConv.pairCotThetaSeparation() );
1305  p_DCotTracksVsR_->Fill( mcConvR_, aConv.pairCotThetaSeparation() );
1306 
1307  if ( phoIsInBarrel ) {
1308  h_invMass_[match][1] ->Fill(invM);
1309  h_vtxChi2Prob_[match][1] ->Fill (chi2Prob);
1311  h_DPhiTracksAtVtx_[match][1]->Fill( dPhiTracksAtVtx);
1312  h_DCotTracks_[match][1] ->Fill ( aConv.pairCotThetaSeparation() );
1313  h_lxybs_[match][1] ->Fill (lxy);
1314  h_maxNHitsBeforeVtx_[match][1] ->Fill (maxNHitsBeforeVtx);
1315  h_leadNHitsBeforeVtx_[match][1] ->Fill (leadNHitsBeforeVtx);
1316  h_trailNHitsBeforeVtx_[match][1] ->Fill (trailNHitsBeforeVtx);
1317  h_sumNHitsBeforeVtx_[match][1] ->Fill (sumNHitsBeforeVtx);
1318  h_deltaExpectedHitsInner_[match][1] ->Fill (deltaExpectedHitsInner);
1319  h_leadExpectedHitsInner_[match][1] ->Fill (leadExpectedHitsInner);
1320  h_maxDlClosestHitToVtx_[match][1] ->Fill (maxDlClosestHitToVtx);
1321  h_maxDlClosestHitToVtxSig_[match][1] ->Fill (maxDlClosestHitToVtxSig);
1322  h_nSharedHits_[match][1] ->Fill (aConv.nSharedHits());
1323 
1324  /*
1325  if ( aConv.caloCluster().size() ) {
1326  h_convSCdPhi_[match][1]->Fill( aConv.caloCluster()[0]->phi() - refittedMom.phi() );
1327  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1328  h_convSCdEta_[match][1]->Fill( aConv.caloCluster()[0]->eta() - ConvEta );
1329  }
1330  */
1331 
1332  if ( matchConvSC ) {
1333  h_EoverPTracks_[match][1] -> Fill(iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1334  h_convSCdPhi_[match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1335  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1336  h_convSCdEta_[match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1337  }
1338  }
1339 
1340 
1341  if ( phoIsInEndcap ) {
1342  h_invMass_[match][2] ->Fill(invM);
1343  h_vtxChi2Prob_[match][2] ->Fill (chi2Prob);
1345  h_DPhiTracksAtVtx_[match][2]->Fill( dPhiTracksAtVtx);
1346  h_DCotTracks_[match][2] ->Fill ( aConv.pairCotThetaSeparation() );
1347  h_lxybs_[match][2] ->Fill (lxy);
1348  h_maxNHitsBeforeVtx_[match][2] ->Fill (maxNHitsBeforeVtx);
1349  h_leadNHitsBeforeVtx_[match][2] ->Fill (leadNHitsBeforeVtx);
1350  h_trailNHitsBeforeVtx_[match][2] ->Fill (trailNHitsBeforeVtx);
1351  h_sumNHitsBeforeVtx_[match][2] ->Fill (sumNHitsBeforeVtx);
1352  h_deltaExpectedHitsInner_[match][2] ->Fill (deltaExpectedHitsInner);
1353  h_leadExpectedHitsInner_[match][2] ->Fill (leadExpectedHitsInner);
1354  h_maxDlClosestHitToVtx_[match][2] ->Fill (maxDlClosestHitToVtx);
1355  h_maxDlClosestHitToVtxSig_[match][2] ->Fill (maxDlClosestHitToVtxSig);
1356  h_nSharedHits_[match][2] ->Fill (aConv.nSharedHits());
1357  if ( matchConvSC ) {
1358  h_EoverPTracks_[match][2] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1359  h_convSCdPhi_[match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1360  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1361  h_convSCdEta_[match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1362 
1363  }
1364  }
1365 
1366  h_convVtxRvsZ_[0] ->Fill ( fabs (aConv.conversionVertex().position().z() ), sqrt(aConv.conversionVertex().position().perp2()) ) ;
1367  h_convVtxYvsX_ ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() );
1368  h_convVtxYvsX_zoom_[0] ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() );
1369  h_convVtxYvsX_zoom_[1] ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() );
1370 
1371 
1372  // quantities per track: all conversions
1373  for (unsigned int i=0; i<tracks.size(); i++) {
1374  double d0;
1375  if (valid_pvtx){
1376  d0 = - tracks[i]->dxy(the_pvtx.position());
1377  } else {
1378  d0 = tracks[i]->d0();
1379  }
1380  h_TkD0_[match]->Fill ( d0* tracks[i]->charge() );
1381  h_nHitsBeforeVtx_[match]->Fill ( aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(i) : 0 );
1382  h_dlClosestHitToVtx_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value() : 0 );
1383  h_dlClosestHitToVtxSig_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value()/aConv.dlClosestHitToVtx().at(i).error() : 0 );
1384 
1385  nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) );
1386  nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) );
1387  p_nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) -0.0001);
1388  p_nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) -0.0001);
1389  h_tkChi2_[match] ->Fill (tracks[i]->normalizedChi2() );
1390  h_tkChi2Large_[match] ->Fill (tracks[i]->normalizedChi2() );
1391  h2_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() );
1392  h2_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() );
1393  p_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() );
1394  p_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() );
1395 
1396  }
1397 
1398  bool associated = false;
1399  float mcConvPt_= -99999999;
1400  // float mcPhi= 0; // unused
1401  float simPV_Z=0;
1402  for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
1403  mcConvPt_= (*mcPho).fourMomentum().et();
1404  float mcPhi= (*mcPho).fourMomentum().phi();
1405  simPV_Z = (*mcPho).primaryVertex().z();
1406  mcPhi_= phiNormalization(mcPhi);
1407  mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
1408  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
1409  mcConvR_= (*mcPho).vertex().perp();
1410  mcConvX_= (*mcPho).vertex().x();
1411  mcConvY_= (*mcPho).vertex().y();
1412  mcConvZ_= (*mcPho).vertex().z();
1413  mcConvEta_= (*mcPho).vertex().eta();
1414  mcConvPhi_= (*mcPho).vertex().phi();
1415  if ( fabs(mcEta_) > END_HI ) continue;
1416  if (mcConvPt_<minPhoPtForPurity) continue;
1417  if (fabs(mcEta_)>maxPhoEtaForPurity) continue;
1418  if (fabs(mcConvZ_)>maxPhoZForPurity) continue;
1419  if (mcConvR_>maxPhoRForEffic) continue;
1420 
1421  if ( (*mcPho).isAConversion() != 1 ) continue;
1422  if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
1423  ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) )
1424  continue;
1425 
1426 
1427  theConvTP_.clear();
1428  for(const TrackingParticleRef tp: tpForFakeRate) {
1429  if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
1430  fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
1431  fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
1432  theConvTP_.push_back( tp );
1433  }
1434  }
1435 
1436  if ( theConvTP_.size() < 2 ) continue;
1437 
1438  //associated = false;
1439  reco::RecoToSimCollection p1 = theTrackAssociator->associateRecoToSim(tc1,theConvTP_);
1440  reco::RecoToSimCollection p2 = theTrackAssociator->associateRecoToSim(tc2,theConvTP_);
1441  try{
1442  std::vector<std::pair<TrackingParticleRef, double> > tp1 = p1[tk1];
1443  std::vector<std::pair<TrackingParticleRef, double> > tp2 = p2[tk2];
1444  if (!(tp1.size()&&tp2.size())){
1445  tp1 = p1[tk2];
1446  tp2 = p2[tk1];
1447  }
1448  if (tp1.size()&&tp2.size()) {
1449  TrackingParticleRef tpr1 = tp1.front().first;
1450  TrackingParticleRef tpr2 = tp2.front().first;
1451  if (abs(tpr1->pdgId())==11&&abs(tpr2->pdgId())==11&& tpr1->pdgId()*tpr2->pdgId()<0) {
1452  if ( (tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()==1) &&
1453  (tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()==1)) {
1454  if (tpr1->parentVertex().key()==tpr2->parentVertex().key() && ((*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22)) {
1455  mcConvR_ = sqrt(tpr1->parentVertex()->position().Perp2());
1456  mcConvZ_ = tpr1->parentVertex()->position().z();
1457  mcConvX_ = tpr1->parentVertex()->position().x();
1458  mcConvY_ = tpr1->parentVertex()->position().y();
1459  mcConvEta_ = tpr1->parentVertex()->position().eta();
1460  mcConvPhi_ = tpr1->parentVertex()->position().phi();
1461  mcConvPt_ = sqrt((*tpr1->parentVertex()->sourceTracks_begin())->momentum().Perp2());
1462  //std::cout << " Reco to Sim mcconvpt " << mcConvPt_ << std::endl;
1463  //cout << "associated track1 to " << tpr1->pdgId() << " with p=" << tpr1->p4() << " with pT=" << tpr1->pt() << endl;
1464  //cout << "associated track2 to " << tpr2->pdgId() << " with p=" << tpr2->p4() << " with pT=" << tpr2->pt() << endl;
1465  associated = true;
1466  break;
1467  }
1468  }
1469  }
1470  }
1471  } catch (Exception event) {
1472  //cout << "do not continue: " << event.what() << endl;
1473  //continue;
1474  }
1475 
1476  }// end loop on sim photons
1477 
1478 
1479  if (0) {
1480  theConvTP_.clear();
1481  theConvTP_ = tpForFakeRate;
1482  reco::RecoToSimCollection p1incl = theTrackAssociator->associateRecoToSim(tc1,theConvTP_);
1483  reco::RecoToSimCollection p2incl = theTrackAssociator->associateRecoToSim(tc2,theConvTP_);
1484 
1485 
1486  for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
1487  mcConvPt_= (*mcPho).fourMomentum().et();
1488  float mcPhi= (*mcPho).fourMomentum().phi();
1489  simPV_Z = (*mcPho).primaryVertex().z();
1490  mcPhi_= phiNormalization(mcPhi);
1491  mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
1492  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
1493  mcConvR_= (*mcPho).vertex().perp();
1494  mcConvX_= (*mcPho).vertex().x();
1495  mcConvY_= (*mcPho).vertex().y();
1496  mcConvZ_= (*mcPho).vertex().z();
1497  mcConvEta_= (*mcPho).vertex().eta();
1498  mcConvPhi_= (*mcPho).vertex().phi();
1499  if ( fabs(mcEta_) > END_HI ) continue;
1500  if (mcConvPt_<minPhoPtForPurity) continue;
1501  if (fabs(mcEta_)>maxPhoEtaForPurity) continue;
1502  if (fabs(mcConvZ_)>maxPhoZForPurity) continue;
1503  if (mcConvR_>maxPhoRForEffic) continue;
1504 
1505  if ( (*mcPho).isAConversion() != 1 ) continue;
1506  if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
1507  ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) )
1508  continue;
1509 
1510 
1511  theConvTP_.clear();
1512  for(TrackingParticleRef tp: tpForFakeRate) {
1513  if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
1514  fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
1515  fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
1516  theConvTP_.push_back( tp );
1517 
1518 
1519  }
1520  }
1521 
1522  if ( theConvTP_.size() < 2 ) continue;
1523 
1524  //associated = false;
1525  reco::RecoToSimCollection p1 = theTrackAssociator->associateRecoToSim(tc1,theConvTP_);
1526  reco::RecoToSimCollection p2 = theTrackAssociator->associateRecoToSim(tc2,theConvTP_);
1527 
1528 
1529 
1530 
1531 
1532  if ( (p1incl.size() && p2incl.size()) && (p1.size() || p2.size()) ) { // associated = true;
1533  try{
1534  std::vector<std::pair<TrackingParticleRef, double> > tp1 = p1incl[tk1];
1535  std::vector<std::pair<TrackingParticleRef, double> > tp2 = p2incl[tk2];
1536  if (!(tp1.size()&&tp2.size())){
1537  tp1 = p1[tk2];
1538  tp2 = p2[tk1];
1539  }
1540  if (tp1.size()&&tp2.size()) {
1541  TrackingParticleRef tpr1 = tp1.front().first;
1542  TrackingParticleRef tpr2 = tp2.front().first;
1543  if (abs(tpr1->pdgId())==11&&abs(tpr2->pdgId())==11 && tpr1->pdgId()*tpr2->pdgId()<0) {
1544  if ( ((tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()>=1) && (*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22) &&
1545  ((tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()>=1) && (*tpr2->parentVertex()->sourceTracks_begin())->pdgId()==22) ) {
1546 
1547  // if ( fabs(tpr1->vx() - tpr2->vx()) < 0.1 && fabs(tpr1->vy() - tpr2->vy()) < 0.1 && fabs(tpr1->vz() - tpr2->vz()) < 0.1) {
1548  //if (((*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22) || ((*tpr2->parentVertex()->sourceTracks_begin())->pdgId()==22)) {
1549 // mcConvR_ = sqrt(tpr1->parentVertex()->position().Perp2());
1550 // mcConvZ_ = tpr1->parentVertex()->position().z();
1551 // mcConvX_ = tpr1->parentVertex()->position().x();
1552 // mcConvY_ = tpr1->parentVertex()->position().y();
1553 // mcConvEta_ = tpr1->parentVertex()->position().eta();
1554 // mcConvPhi_ = tpr1->parentVertex()->position().phi();
1555 // mcConvPt_ = sqrt((*tpr1->parentVertex()->sourceTracks_begin())->momentum().Perp2());
1556  //std::cout << " Reco to Sim mcconvpt " << mcConvPt_ << std::endl;
1557  //cout << "associated track1 to " << tpr1->pdgId() << " with p=" << tpr1->p4() << " with pT=" << tpr1->pt() << endl;
1558  //cout << "associated track2 to " << tpr2->pdgId() << " with p=" << tpr2->p4() << " with pT=" << tpr2->pt() << endl;
1559  associated = true;
1560  break;
1561  //}
1562  //}
1563  }
1564  }
1565  }
1566  } catch (Exception event) {
1567  //cout << "do not continue: " << event.what() << endl;
1568  //continue;
1569  }
1570 
1571  }
1572 
1573  }
1574  }
1575 
1576  if ( associated ) match=1;
1577  else
1578  match=2;
1579 
1580  h_match_->Fill(float(match));
1582  if ( match == 1) nRecConvAss_++;
1583  h_convEta_[match][0]->Fill( refittedMom.eta() );
1584  h_convEta_[match][1]->Fill( refittedMom.eta() );
1585  if (matchConvSC) h_convEtaMatchSC_[match][0]->Fill( refittedMom.eta() );
1586  h_convPhi_[match][0]->Fill( refittedMom.phi() );
1587  h_convR_[match][0]->Fill( sqrt(aConv.conversionVertex().position().perp2()) );
1588  h_convZ_[match][0]->Fill( aConv.conversionVertex().position().z() );
1589  h_convPt_[match][0]->Fill( sqrt(refittedMom.perp2()) );
1590  h_invMass_[match][0] ->Fill( invM);
1591  h_vtxChi2Prob_[match][0] ->Fill (chi2Prob);
1592  h_DPhiTracksAtVtx_[match][0]->Fill( dPhiTracksAtVtx);
1593  h_DCotTracks_[match][0] ->Fill ( aConv.pairCotThetaSeparation() );
1595  h_lxybs_[match][0] ->Fill (lxy);
1596  h_maxNHitsBeforeVtx_[match][0] ->Fill (maxNHitsBeforeVtx);
1597  h_leadNHitsBeforeVtx_[match][0] ->Fill (leadNHitsBeforeVtx);
1598  h_trailNHitsBeforeVtx_[match][0] ->Fill (trailNHitsBeforeVtx);
1599  h_sumNHitsBeforeVtx_[match][0] ->Fill (sumNHitsBeforeVtx);
1600  h_deltaExpectedHitsInner_[match][0] ->Fill (deltaExpectedHitsInner);
1601  h_leadExpectedHitsInner_[match][0] ->Fill (leadExpectedHitsInner);
1602  h_maxDlClosestHitToVtx_[match][0] ->Fill (maxDlClosestHitToVtx);
1603  h_maxDlClosestHitToVtxSig_[match][0] ->Fill (maxDlClosestHitToVtxSig);
1604  h_nSharedHits_[match][0] ->Fill (aConv.nSharedHits());
1605  if ( matchConvSC ) {
1606  //h_EoverPTracks_[match][0] ->Fill (aConv.EoverPrefittedTracks());
1607  h_EoverPTracks_[match][0] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1608  h_convSCdPhi_[match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1609  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1610  h_convSCdEta_[match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1611 
1612  }
1613  if ( match==1) {
1614  h2_photonPtRecVsPtSim_->Fill ( mcConvPt_, sqrt(refittedMom.perp2()) );
1615  h_convPtRes_[0]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_);
1616  }
1617 
1618  if ( phoIsInBarrel ) {
1619  h_invMass_[match][1] ->Fill(invM);
1620  h_vtxChi2Prob_[match][1] ->Fill (chi2Prob);
1621  h_DPhiTracksAtVtx_[match][1]->Fill( dPhiTracksAtVtx);
1622  h_DCotTracks_[match][1] ->Fill ( aConv.pairCotThetaSeparation() );
1624  h_lxybs_[match][1] ->Fill (lxy);
1625  h_maxNHitsBeforeVtx_[match][1] ->Fill (maxNHitsBeforeVtx);
1626  h_leadNHitsBeforeVtx_[match][1] ->Fill (leadNHitsBeforeVtx);
1627  h_trailNHitsBeforeVtx_[match][1] ->Fill (trailNHitsBeforeVtx);
1628  h_sumNHitsBeforeVtx_[match][1] ->Fill (sumNHitsBeforeVtx);
1629  h_deltaExpectedHitsInner_[match][1] ->Fill (deltaExpectedHitsInner);
1630  h_leadExpectedHitsInner_[match][1] ->Fill (leadExpectedHitsInner);
1631  h_maxDlClosestHitToVtx_[match][1] ->Fill (maxDlClosestHitToVtx);
1632  h_maxDlClosestHitToVtxSig_[match][1] ->Fill (maxDlClosestHitToVtxSig);
1633  h_nSharedHits_[match][1] ->Fill (aConv.nSharedHits());
1634  if ( matchConvSC ) {
1635  // h_EoverPTracks_[match][1] ->Fill (aConv.EoverPrefittedTracks());
1636  h_EoverPTracks_[match][1] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1637  h_convSCdPhi_[match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1638  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1639  h_convSCdEta_[match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1640 
1641  }
1642  if ( match==1) h_convPtRes_[1]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_);
1643  }
1644 
1645 
1646  if ( phoIsInEndcap ) {
1647  h_invMass_[match][2] ->Fill(invM);
1648  h_vtxChi2Prob_[match][2] ->Fill (chi2Prob);
1649  h_DPhiTracksAtVtx_[match][2]->Fill( dPhiTracksAtVtx);
1650  h_DCotTracks_[match][2] ->Fill ( aConv.pairCotThetaSeparation() );
1652  h_lxybs_[match][2] ->Fill (lxy);
1653  h_maxNHitsBeforeVtx_[match][2] ->Fill (maxNHitsBeforeVtx);
1654  h_leadNHitsBeforeVtx_[match][2] ->Fill (leadNHitsBeforeVtx);
1655  h_trailNHitsBeforeVtx_[match][2] ->Fill (trailNHitsBeforeVtx);
1656  h_sumNHitsBeforeVtx_[match][2] ->Fill (sumNHitsBeforeVtx);
1657  h_deltaExpectedHitsInner_[match][2] ->Fill (deltaExpectedHitsInner);
1658  h_leadExpectedHitsInner_[match][2] ->Fill (leadExpectedHitsInner);
1659  h_maxDlClosestHitToVtx_[match][2] ->Fill (maxDlClosestHitToVtx);
1660  h_maxDlClosestHitToVtxSig_[match][2] ->Fill (maxDlClosestHitToVtxSig);
1661  h_nSharedHits_[match][2] ->Fill (aConv.nSharedHits());
1662  if ( matchConvSC ) {
1663  // h_EoverPTracks_[match][2] ->Fill (aConv.EoverPrefittedTracks());
1664  h_EoverPTracks_[match][2] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2()));
1665  h_convSCdPhi_[match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1666  double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks());
1667  h_convSCdEta_[match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1668  }
1669  if ( match==1) h_convPtRes_[2]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_);
1670  }
1671 
1672 
1673  if ( match == 1 ) {
1674  h_convVtxdX_ ->Fill ( aConv.conversionVertex().position().x() - mcConvX_);
1675  h_convVtxdY_ ->Fill ( aConv.conversionVertex().position().y() - mcConvY_);
1676  h_convVtxdZ_ ->Fill ( aConv.conversionVertex().position().z() - mcConvZ_);
1677  h_convVtxdR_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_);
1678  h_convVtxdPhi_ ->Fill ( aConv.conversionVertex().position().phi() - mcConvPhi_);
1679  h_convVtxdEta_ ->Fill ( aConv.conversionVertex().position().eta() - mcConvEta_);
1680  h2_convVtxdRVsR_ ->Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ );
1681  h2_convVtxdRVsEta_ ->Fill (mcEta_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ );
1682  p_convVtxdRVsR_ ->Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ );
1683  p_convVtxdRVsEta_ ->Fill (mcEta_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ );
1686  p_convVtxdZVsZ_ ->Fill (mcConvZ_, aConv.conversionVertex().position().z() - mcConvZ_ );
1687  p_convVtxdZVsR_ ->Fill (mcConvR_, aConv.conversionVertex().position().z() - mcConvZ_ );
1688 
1689  float dR=sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_;
1690  float dZ=aConv.conversionVertex().position().z() - mcConvZ_;
1691  p2_convVtxdRVsRZ_ ->Fill (mcConvZ_,mcConvR_, dR );
1692  p2_convVtxdZVsRZ_ ->Fill (mcConvZ_,mcConvR_, dZ );
1693 
1694 
1695 
1696 
1697  h2_convVtxRrecVsTrue_ -> Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) );
1698 
1699 
1701  h_dzPVFromTracks_[match]->Fill ( aConv.zOfPrimaryVertexFromTracks() - simPV_Z );
1702  h2_dzPVVsR_ ->Fill(mcConvR_, aConv.zOfPrimaryVertexFromTracks() - simPV_Z );
1703  p_dzPVVsR_ ->Fill(mcConvR_, aConv.zOfPrimaryVertexFromTracks() - simPV_Z );
1704 
1705  if ( phoIsInBarrel ) {
1709  h_convVtxdR_barrel_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_);
1710 
1711  }
1712  if ( phoIsInEndcap ) {
1716  h_convVtxdR_endcap_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_);
1717 
1718  }
1719 
1720 
1721  }
1722 
1724  for (unsigned int i=0; i<tracks.size(); i++) {
1725  //std::cout << " Loop over tracks pt " << tracks[i]->pt() << std::endl;
1726  RefToBase<reco::Track> tfrb(aConv.tracks()[i] );
1727  itAss= myAss.find( tfrb.get() );
1728 
1729  nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) );
1730  nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) );
1731  p_nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) -0.0001);
1732  p_nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) -0.0001);
1733  h_tkChi2_[match] ->Fill (tracks[i]->normalizedChi2() );
1734  h_tkChi2Large_[match] ->Fill (tracks[i]->normalizedChi2() );
1735  h2_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() );
1736  h2_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() );
1737  p_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() );
1738  p_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() );
1739  double d0;
1740  if (valid_pvtx){
1741  d0 = - tracks[i]->dxy(the_pvtx.position());
1742  } else {
1743  d0 = tracks[i]->d0();
1744  }
1745  h_TkD0_[match]->Fill (d0* tracks[i]->charge() );
1746  h_nHitsBeforeVtx_[match]->Fill ( aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(i) : 0 );
1747  h_dlClosestHitToVtx_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value() : 0 );
1748  h_dlClosestHitToVtxSig_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value()/aConv.dlClosestHitToVtx().at(i).error() : 0 );
1749 
1750 
1751  if ( itAss == myAss.end() ) continue;
1752  reco::Track refTrack= aConv.conversionVertex().refittedTracks()[i];
1753 
1754  float simPt = sqrt( ((*itAss).second)->momentum().perp2() );
1755  float recPt = refTrack.pt();
1756  float ptres= recPt - simPt ;
1757  //float pterror = aConv.tracks()[i]->ptError();
1758  float pterror = aConv.conversionVertex().refittedTracks()[i].ptError();
1759  h2_PtRecVsPtSim_[0]->Fill ( simPt, recPt);
1760  h_TkPtPull_[0] ->Fill(ptres/pterror);
1761  h2_TkPtPull_[0] ->Fill(mcEta_, ptres/pterror);
1762 
1763  if ( phoIsInBarrel ) {
1764  h_TkPtPull_[1] ->Fill(ptres/pterror);
1765  h2_PtRecVsPtSim_[1]->Fill ( simPt, recPt);
1766  }
1767  if ( phoIsInEndcap ) {
1768  h_TkPtPull_[2] ->Fill(ptres/pterror);
1769  h2_PtRecVsPtSim_[2]->Fill ( simPt, recPt);
1770  }
1771  } // end loop over track
1772 
1773 
1774 
1775  } // loop over reco conversions
1776 
1777 
1778  h_nConv_[0][0]->Fill (float(nRecConv_));
1779  h_nConv_[1][0]->Fill (float(nRecConvAss_));
1780 
1781 
1782 
1783 }
MonitorElement * h2_DPhiTracksAtVtxVsR_
MonitorElement * h2_dzPVVsR_
const reco::Vertex & conversionVertex() const
returns the reco conversion vertex
Definition: Conversion.h:97
MonitorElement * h_maxDlClosestHitToVtx_[3][3]
MonitorElement * h_convPt_[3][3]
MonitorElement * p_convVtxdYVsY_
value_type const * get() const
Definition: RefToBase.h:234
T getParameter(std::string const &) const
MonitorElement * h2_DCotTracksVsR_
MonitorElement * h_convVtxdR_
MonitorElement * h2_DCotTracksVsEta_
MonitorElement * h_simConvVtxRvsZ_[4]
MonitorElement * h_convZplot_
MonitorElement * h_convSCdPhi_[3][3]
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0_[5]
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0005_[5]
reco::SuperClusterRef superCluster() const
Ref to SuperCluster.
MonitorElement * h_DCotTracks_[3][3]
const_iterator end() const
last iterator over the map (read only)
static HepMC::IO_HEPEVT conv
MonitorElement * nHitsVsEta_[3]
edm::EDGetTokenT< TrackingParticleRefVector > tpSelForFake_Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
MonitorElement * h_lxybs_[3][3]
edm::RefVector< TrackingParticleCollection > theConvTP_
MonitorElement * h_trailNHitsBeforeVtx_[3][3]
bool quality(ConversionQuality q) const
Definition: Conversion.h:181
double y() const
y coordinate
Definition: Vertex.h:113
math::XYZVector recalculateMomentumAtFittedVertex(const MagneticField &mf, const TrackerGeometry &trackerGeom, const edm::RefToBase< reco::Track > &tk, const reco::Vertex &vtx)
MonitorElement * p_Chi2VsR_[3]
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:68
MonitorElement * h_convVtxYvsX_zoom_[2]
edm::EDGetTokenT< reco::PhotonCollection > photonCollectionPr_Token_
MonitorElement * p_DCotTracksVsR_
MonitorElement * h_tkChi2_[3]
const std::vector< Measurement1DFloat > & dlClosestHitToVtx() const
Vector of signed decay length with uncertainty from nearest hit on track to the conversion vtx positi...
Definition: Conversion.h:163
MonitorElement * h_convVtxdX_
const_iterator find(const key_type &k) const
find element with specified reference key
MonitorElement * h_convPtRes_[3]
MonitorElement * h_convEtaMatchSC_[3][3]
double zOfPrimaryVertexFromTracks(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
Definition: Conversion.h:145
double distOfMinimumApproach() const
Definition: Conversion.h:125
MonitorElement * h2_Chi2VsEta_[3]
MonitorElement * h_SimRecConvTwoMTracks_[5]
double pairCotThetaSeparation() const
Delta cot(Theta) where Theta is the angle in the (y,z) plane between the two tracks. Original tracks are used.
Definition: Conversion.cc:209
MonitorElement * h_vtxChi2Prob_[3][3]
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
MonitorElement * h_convVtxdX_endcap_
MonitorElement * h_convVtxdR_endcap_
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
key_type key() const
Accessor for product key.
Definition: Ref.h:264
MonitorElement * h_zPVFromTracks_[2]
MonitorElement * h_convVtxdY_barrel_
MonitorElement * h_tkChi2Large_[3]
edm::ParameterSet parameters_
edm::EDGetTokenT< edm::SimTrackContainer > g4_simTk_Token_
MonitorElement * p_DCotTracksVsEta_
edm::EDGetTokenT< edm::SimVertexContainer > g4_simVtx_Token_
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:253
const std::vector< Track > & refittedTracks() const
Returns the container of refitted tracks.
Definition: Vertex.h:164
MonitorElement * h_maxDlClosestHitToVtxSig_[3][3]
MonitorElement * h_convVtxdR_barrel_
MonitorElement * h_leadExpectedHitsInner_[3][3]
double pairInvariantMass() const
if nTracks=2 returns the pair invariant mass. Original tracks are used here
Definition: Conversion.cc:190
const Point & position() const
position
Definition: Vertex.h:109
math::XYZVectorF refittedPairMomentum() const
Conversion tracks momentum from the tracks refitted with vertex constraint.
Definition: Conversion.cc:248
double q2[4]
Definition: TauolaWrapper.h:88
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:248
MonitorElement * h_convSCdEta_[3][3]
MonitorElement * h_sumNHitsBeforeVtx_[3][3]
void Fill(long long x)
MonitorElement * h_dzPVFromTracks_[2]
TrackAlgorithm algo() const
Definition: TrackBase.h:492
MonitorElement * h_nConv_[3][3]
info per conversion
edm::ESHandle< CaloGeometry > theCaloGeom_
MonitorElement * h_convVtxdY_
MonitorElement * p_DPhiTracksAtVtxVsEta_
MonitorElement * h_deltaExpectedHitsInner_[3][3]
MonitorElement * h_convVtxdEta_
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
MonitorElement * h_convVtxYvsX_
MonitorElement * p_convVtxdZVsR_
edm::EDGetTokenT< TrackingParticleRefVector > tpSelForEff_Token_
MonitorElement * p_convVtxdRVsR_
MonitorElement * h_convR_[3][3]
float etaTransformation(float a, float b)
float phiNormalization(float &a)
MonitorElement * h_VisSimConv_[6]
MonitorElement * h2_photonPtRecVsPtSim_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * h_EoverPTracks_[3][3]
edm::ESHandle< MagneticField > theMF_
T sqrt(T t)
Definition: SSEVec.h:18
PhotonMCTruthFinder * thePhotonMCTruthFinder_
double pt() const
track transverse momentum
Definition: TrackBase.h:616
MonitorElement * h_leadNHitsBeforeVtx_[3][3]
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > trackAssociator_Token_
edm::EDGetTokenT< reco::ConversionCollection > conversionCollectionPr_Token_
MonitorElement * h_distMinAppTracks_[3][3]
MonitorElement * p_DPhiTracksAtVtxVsR_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * h_SimConvEtaPix_[2]
double chi2() const
chi-squares
Definition: Vertex.h:98
MonitorElement * h_convVtxdX_barrel_
MonitorElement * p_nHitsVsEta_[3]
MonitorElement * h_simTkPt_
float ChiSquaredProbability(double chiSquared, double nrDOF)
MonitorElement * p_convVtxdXVsX_
MonitorElement * h_convVtxdY_endcap_
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
Definition: Vector3D.h:17
MonitorElement * h_convEta_[3][3]
bool isValid() const
Definition: HandleBase.h:74
double p2[4]
Definition: TauolaWrapper.h:90
double ndof() const
Definition: Vertex.h:105
MonitorElement * h_simConvVtxYvsX_
MonitorElement * h_convEta2_[3][3]
MonitorElement * h_nHitsBeforeVtx_[3]
MonitorElement * p2_convVtxdRVsRZ_
MonitorElement * p_Chi2VsEta_[3]
double deltaPhi(double phi1, double phi2)
Definition: deltaPhi.h:22
double x() const
x coordinate
Definition: Vertex.h:111
MonitorElement * h_convVtxdZ_
MonitorElement * h_convVtxRvsZ_[3]
uint8_t nSharedHits() const
number of shared hits btw the two track
Definition: Conversion.h:165
MonitorElement * h2_DPhiTracksAtVtxVsEta_
MonitorElement * h_convPhi_[3][3]
size_type size() const
map size
T const * product() const
Definition: Handle.h:81
void clear()
Clear the vector.
Definition: RefVector.h:147
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:445
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
double q1[4]
Definition: TauolaWrapper.h:87
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
MonitorElement * h_convVtxdZ_barrel_
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
const T & get() const
Definition: EventSetup.h:56
MonitorElement * h2_convVtxRrecVsTrue_
MonitorElement * h_AllSimConv_[5]
Denominator for efficiencies.
MonitorElement * h_convRplot_
MonitorElement * p_nHitsVsR_[3]
MonitorElement * p_dzPVVsR_
MonitorElement * h2_Chi2VsR_[3]
std::vector< PhotonMCTruth > find(const std::vector< SimTrack > &simTracks, const std::vector< SimVertex > &simVertices)
MonitorElement * h_convVtxdPhi_
MonitorElement * h_invMass_[3][3]
MonitorElement * h_convZ_[3][3]
edm::EventID id() const
Definition: EventBase.h:60
MonitorElement * h_dlClosestHitToVtxSig_[3]
HLT enums.
double p1[4]
Definition: TauolaWrapper.h:89
MonitorElement * h2_PtRecVsPtSim_[3]
MonitorElement * h_match_
double mcPhi_
global variable for the MC photon
MonitorElement * p_convVtxdZVsZ_
MonitorElement * h2_TkPtPull_[3]
void push_back(const RefToBase< T > &)
const std::vector< uint8_t > & nHitsBeforeVtx() const
Vector of the number of hits before the vertex along each track trajector.
Definition: Conversion.h:161
MonitorElement * h_convVtxdZ_endcap_
MonitorElement * h2_convVtxdRVsR_
MonitorElement * h_DPhiTracksAtVtx_[3][3]
double y0() const
y coordinate
Definition: BeamSpot.h:66
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:69
size_type size() const
Size of the RefVector.
Definition: RefVector.h:107
MonitorElement * nHitsVsR_[3]
double recPt
MonitorElement * h_simTkEta_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
MonitorElement * h_TkPtPull_[3]
MonitorElement * p2_convVtxdZVsRZ_
MonitorElement * h_SimConvTwoMTracks_[5]
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
MonitorElement * p_convVtxdRVsEta_
MonitorElement * h_dlClosestHitToVtx_[3]
MonitorElement * h_TkD0_[3]
MonitorElement * h2_convVtxdRVsEta_
T const * product() const
Definition: ESHandle.h:86
MonitorElement * h_nSharedHits_[3][3]
double dPhiTracksAtVtx() const
Definition: Conversion.cc:313
std::vector< edm::RefToBase< reco::Track > > const & tracks() const
vector of track to base references
Definition: Conversion.cc:176
Definition: event.py:1
MonitorElement * h_maxNHitsBeforeVtx_[3][3]
int numberOfHits(HitCategory category) const
Definition: HitPattern.h:807
double x0() const
x coordinate
Definition: BeamSpot.h:64
void TkConvValidator::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overridevirtual

Histograms for efficiencies

Denominators

zooms

Implements DQMEDAnalyzer.

Definition at line 163 of file TkConvValidator.cc.

References DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), DQMStore::IBooker::bookProfile(), DQMStore::IBooker::bookProfile2D(), CSCSegmentAlgorithmDF_cfi::chi2Max, muonBadTrackFilter_cfi::chi2Min, dbe_, photonValidator_cfi::dCotTracksBin, photonValidator_cfi::dCotTracksMax, photonValidator_cfi::dCotTracksMin, photonValidator_cfi::dPhiTracksBin, photonValidator_cfi::dPhiTracksMax, photonValidator_cfi::dPhiTracksMin, photonValidator_cfi::eoverpBin, photonValidationSequence_cff::eoverpMax, photonValidationSequence_cff::eoverpMin, conversionPostprocessing_cfi::etaBin, conversionPostprocessing_cfi::etaBin2, ALCARECOTkAlBeamHalo_cff::etaMax, ALCARECOTkAlBeamHalo_cff::etaMin, conversionPostprocessing_cfi::etBin, conversionPostprocessing_cfi::etMax, btagDijet_cfi::etMin, tkConvValidator_cfi::maxPhoEtaForEffic, tkConvValidator_cfi::maxPhoEtaForPurity, tkConvValidator_cfi::maxPhoRForEffic, tkConvValidator_cfi::maxPhoRForPurity, tkConvValidator_cfi::maxPhoZForEffic, tkConvValidator_cfi::maxPhoZForPurity, tkConvValidator_cfi::minPhoPtForEffic, tkConvValidator_cfi::minPhoPtForPurity, Utilities::operator, conversionPostprocessing_cfi::phiBin, AlignmentTrackSelector_cfi::phiMax, AlignmentTrackSelector_cfi::phiMin, conversionPostprocessing_cfi::rBin, photonValidator_cfi::rBinForXray, photonValidator_cfi::resBin, photonValidator_cfi::resMax, photonValidator_cfi::resMin, conversionPostprocessing_cfi::rMax, photonValidator_cfi::rMaxForXray, conversionPostprocessing_cfi::rMin, photonValidator_cfi::rMinForXray, DQMStore::IBooker::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, conversionPostprocessing_cfi::zBin, photonValidator_cfi::zBin2ForXray, photonValidator_cfi::zBinForXray, conversionPostprocessing_cfi::zMax, photonValidator_cfi::zMaxForXray, conversionPostprocessing_cfi::zMin, and photonValidator_cfi::zMinForXray.

163  {
164 
165  nEvt_=0;
166  nEntry_=0;
167  nRecConv_=0;
168  nRecConvAss_=0;
170 
171  nInvalidPCA_=0;
172 
173  dbe_ = 0;
175 
176 
177  double etMin = parameters_.getParameter<double>("etMin");
178  double etMax = parameters_.getParameter<double>("etMax");
179  int etBin = parameters_.getParameter<int>("etBin");
180 
181 
182  double resMin = parameters_.getParameter<double>("resMin");
183  double resMax = parameters_.getParameter<double>("resMax");
184  int resBin = parameters_.getParameter<int>("resBin");
185 
186  double etaMin = parameters_.getParameter<double>("etaMin");
187  double etaMax = parameters_.getParameter<double>("etaMax");
188  int etaBin = parameters_.getParameter<int>("etaBin");
189  int etaBin2 = parameters_.getParameter<int>("etaBin2");
190 
191 
192  double phiMin = parameters_.getParameter<double>("phiMin");
193  double phiMax = parameters_.getParameter<double>("phiMax");
194  int phiBin = parameters_.getParameter<int>("phiBin");
195 
196 
197  double rMin = parameters_.getParameter<double>("rMin");
198  double rMax = parameters_.getParameter<double>("rMax");
199  int rBin = parameters_.getParameter<int>("rBin");
200 
201  double zMin = parameters_.getParameter<double>("zMin");
202  double zMax = parameters_.getParameter<double>("zMax");
203  int zBin = parameters_.getParameter<int>("zBin");
204 
205  double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin");
206  double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax");
207  int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin");
208 
209  double eoverpMin = parameters_.getParameter<double>("eoverpMin");
210  double eoverpMax = parameters_.getParameter<double>("eoverpMax");
211  int eoverpBin = parameters_.getParameter<int>("eoverpBin");
212 
213 
214  // double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin"); // unused
215  // double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax"); // unused
216  // int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin"); // unused
217 
218  double dCotTracksMin = parameters_.getParameter<double>("dCotTracksMin");
219  double dCotTracksMax = parameters_.getParameter<double>("dCotTracksMax");
220  int dCotTracksBin = parameters_.getParameter<int>("dCotTracksBin");
221 
222 
223  double chi2Min = parameters_.getParameter<double>("chi2Min");
224  double chi2Max = parameters_.getParameter<double>("chi2Max");
225 
226 
227  double rMinForXray = parameters_.getParameter<double>("rMinForXray");
228  double rMaxForXray = parameters_.getParameter<double>("rMaxForXray");
229  int rBinForXray = parameters_.getParameter<int>("rBinForXray");
230  double zMinForXray = parameters_.getParameter<double>("zMinForXray");
231  double zMaxForXray = parameters_.getParameter<double>("zMaxForXray");
232  int zBinForXray = parameters_.getParameter<int>("zBinForXray");
233  int zBin2ForXray = parameters_.getParameter<int>("zBin2ForXray");
234 
235  minPhoPtForEffic = parameters_.getParameter<double>("minPhoPtForEffic");
236  maxPhoEtaForEffic = parameters_.getParameter<double>("maxPhoEtaForEffic");
237  maxPhoZForEffic = parameters_.getParameter<double>("maxPhoZForEffic");
238  maxPhoRForEffic = parameters_.getParameter<double>("maxPhoRForEffic");
239  minPhoPtForPurity = parameters_.getParameter<double>("minPhoPtForPurity");
240  maxPhoEtaForPurity = parameters_.getParameter<double>("maxPhoEtaForPurity");
241  maxPhoZForPurity = parameters_.getParameter<double>("maxPhoZForPurity");
242  maxPhoRForPurity = parameters_.getParameter<double>("maxPhoRForPurity");
243 
244 
245  if (dbe_) {
246 
248  // SC from reco photons
249 
250  //TString simfolder = TString(
251  std::string simpath = dqmpath_ + "SimulationInfo";
252  iBooker.setCurrentFolder(simpath);
253  //
254  // simulation information about conversions
256  std::string histname = "nOfSimConversions";
257  h_nSimConv_[0] = iBooker.book1D(histname,"# of Sim conversions per event ",20,-0.5,19.5);
259  histname = "h_AllSimConvEta";
260  h_AllSimConv_[0] = iBooker.book1D(histname," All conversions: simulated #eta",etaBin2,etaMin,etaMax);
261  histname = "h_AllSimConvPhi";
262  h_AllSimConv_[1] = iBooker.book1D(histname," All conversions: simulated #phi",phiBin,phiMin,phiMax);
263  histname = "h_AllSimConvR";
264  h_AllSimConv_[2] = iBooker.book1D(histname," All conversions: simulated R",rBin,rMin,rMax);
265  histname = "h_AllSimConvZ";
266  h_AllSimConv_[3] = iBooker.book1D(histname," All conversions: simulated Z",zBin,zMin,zMax);
267  histname = "h_AllSimConvEt";
268  h_AllSimConv_[4] = iBooker.book1D(histname," All conversions: simulated Et",etBin,etMin,etMax);
269  //
270  histname = "nOfVisSimConversions";
271  h_nSimConv_[1] = iBooker.book1D(histname,"# of Sim conversions per event ",20,-0.5,19.5);
272  histname = "h_VisSimConvEta";
273  h_VisSimConv_[0] = iBooker.book1D(histname," All vis conversions: simulated #eta",etaBin2,etaMin, etaMax);
274  histname = "h_VisSimConvPhi";
275  h_VisSimConv_[1] = iBooker.book1D(histname," All vis conversions: simulated #phi",phiBin,phiMin, phiMax);
276  histname = "h_VisSimConvR";
277  h_VisSimConv_[2] = iBooker.book1D(histname," All vis conversions: simulated R",rBin,rMin,rMax);
278  histname = "h_VisSimConvZ";
279  h_VisSimConv_[3] = iBooker.book1D(histname," All vis conversions: simulated Z",zBin,zMin, zMax);
280  histname = "h_VisSimConvEt";
281  h_VisSimConv_[4] = iBooker.book1D(histname," All vis conversions: simulated Et",etBin,etMin, etMax);
282 
283  //
284  histname = "h_SimConvTwoMTracksEta";
285  h_SimConvTwoMTracks_[0] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax);
286  histname = "h_SimConvTwoMTracksPhi";
287  h_SimConvTwoMTracks_[1] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax);
288  histname = "h_SimConvTwoMTracksR";
289  h_SimConvTwoMTracks_[2] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax);
290  histname = "h_SimConvTwoMTracksZ";
291  h_SimConvTwoMTracks_[3] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax);
292  histname = "h_SimConvTwoMTracksEt";
293  h_SimConvTwoMTracks_[4] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax);
294  //
295  histname = "h_SimConvTwoTracksEta";
296  h_SimConvTwoTracks_[0] = iBooker.book1D(histname," All vis conversions with 2 reco tracks: simulated #eta",etaBin2,etaMin, etaMax);
297  histname = "h_SimConvTwoTracksPhi";
298  h_SimConvTwoTracks_[1] = iBooker.book1D(histname," All vis conversions with 2 reco tracks: simulated #phi",phiBin,phiMin, phiMax);
299  histname = "h_SimConvTwoTracksR";
300  h_SimConvTwoTracks_[2] = iBooker.book1D(histname," All vis conversions with 2 reco tracks: simulated R",rBin,rMin, rMax);
301  histname = "h_SimConvTwoTracksZ";
302  h_SimConvTwoTracks_[3] = iBooker.book1D(histname," All vis conversions with 2 reco tracks: simulated Z",zBin,zMin, zMax);
303  histname = "h_SimConvTwoTracksEt";
304  h_SimConvTwoTracks_[4] = iBooker.book1D(histname," All vis conversions with 2 reco tracks: simulated Et",etBin,etMin, etMax);
305  //
306  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0";
307  h_SimConvTwoMTracksAndVtxPGT0_[0] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax);
308  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0";
309  h_SimConvTwoMTracksAndVtxPGT0_[1] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax);
310  histname = "h_SimConvTwoMTracksRAndVtxPGT0";
311  h_SimConvTwoMTracksAndVtxPGT0_[2] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax);
312  histname = "h_SimConvTwoMTracksZAndVtxPGT0";
313  h_SimConvTwoMTracksAndVtxPGT0_[3] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax);
314  histname = "h_SimConvTwoMTracksEtAndVtxPGT0";
315  h_SimConvTwoMTracksAndVtxPGT0_[4] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax);
316 
317  //
318  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0005";
319  h_SimConvTwoMTracksAndVtxPGT0005_[0] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax);
320  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0005";
321  h_SimConvTwoMTracksAndVtxPGT0005_[1] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax);
322  histname = "h_SimConvTwoMTracksRAndVtxPGT0005";
323  h_SimConvTwoMTracksAndVtxPGT0005_[2] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax);
324  histname = "h_SimConvTwoMTracksZAndVtxPGT0005";
325  h_SimConvTwoMTracksAndVtxPGT0005_[3] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax);
326  histname = "h_SimConvTwoMTracksEtAndVtxPGT0005";
327  h_SimConvTwoMTracksAndVtxPGT0005_[4] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax);
328 
329  histname = "h_SimRecConvTwoMTracksEta";
330  h_SimRecConvTwoMTracks_[0] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax);
331  histname = "h_SimRecConvTwoMTracksPhi";
332  h_SimRecConvTwoMTracks_[1] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax);
333  histname = "h_SimRecConvTwoMTracksR";
334  h_SimRecConvTwoMTracks_[2] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax);
335  histname = "h_SimRecConvTwoMTracksZ";
336  h_SimRecConvTwoMTracks_[3] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax);
337  histname = "h_SimRecConvTwoMTracksEt";
338  h_SimRecConvTwoMTracks_[4] = iBooker.book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax);
339  //
340 
341 
342  h_SimConvEtaPix_[0] = iBooker.book1D("simConvEtaPix"," sim converted Photon Eta: Pix ",etaBin,etaMin, etaMax) ;
343  h_simTkPt_ = iBooker.book1D("simTkPt","Sim conversion tracks pt ",etBin*3,0.,etMax);
344  h_simTkEta_ = iBooker.book1D("simTkEta","Sim conversion tracks eta ",etaBin,etaMin,etaMax);
345 
346  h_simConvVtxRvsZ_[0] = iBooker.book2D("simConvVtxRvsZAll"," Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
347  h_simConvVtxRvsZ_[1] = iBooker.book2D("simConvVtxRvsZBarrel"," Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
348  h_simConvVtxRvsZ_[2] = iBooker.book2D("simConvVtxRvsZEndcap"," Photon Sim conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
349  h_simConvVtxRvsZ_[3] = iBooker.book2D("simConvVtxRvsZBarrel2"," Photon Sim conversion vtx position when reco R<4cm",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
350  h_simConvVtxYvsX_ = iBooker.book2D("simConvVtxYvsXTrkBarrel"," Photon Sim conversion vtx position, (x,y) eta<1 ",100, -80., 80., 100, -80., 80.);
351 
352  std::string convpath = dqmpath_ + "ConversionInfo";
353  iBooker.setCurrentFolder(convpath);
354 
355  histname="nConv";
356  h_nConv_[0][0] = iBooker.book1D(histname+"All","Number Of Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5);
357  h_nConv_[0][1] = iBooker.book1D(histname+"Barrel","Number Of Conversions per isolated candidates per events: Ecal Barrel ",10,-0.5, 9.5);
358  h_nConv_[0][2] = iBooker.book1D(histname+"Endcap","Number Of Conversions per isolated candidates per events: Ecal Endcap ",10,-0.5, 9.5);
359  h_nConv_[1][0] = iBooker.book1D(histname+"All_Ass","Number Of associated Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5);
360 
361  h_convEta_[0][0] = iBooker.book1D("convEta"," converted Photon Eta ",etaBin,etaMin, etaMax) ;
362  h_convEtaMatchSC_[0][0] = iBooker.book1D("convEtaMatchSC"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
363  h_convEta2_[0][0] = iBooker.book1D("convEta2"," converted Photon Eta ",etaBin2,etaMin, etaMax) ;
364  h_convPhi_[0][0] = iBooker.book1D("convPhi"," converted Photon Phi ",phiBin,phiMin,phiMax) ;
365  h_convR_[0][0] = iBooker.book1D("convR"," converted photon R",rBin,rMin, rMax);
366  h_convZ_[0][0] = iBooker.book1D("convZ"," converted photon Z",zBin,zMin, zMax);
367  h_convPt_[0][0] = iBooker.book1D("convPt"," conversions Transverse Energy: all eta ", etBin,etMin, etMax);
368 
369  h_convEta_[1][0] = iBooker.book1D("convEtaAss2"," Matched converted Photon Eta ",etaBin2,etaMin, etaMax) ;
370  h_convEta_[1][1] = iBooker.book1D("convEtaAss"," Matched converted Photon Eta ",etaBin,etaMin, etaMax) ;
371  h_convEtaMatchSC_[1][0] = iBooker.book1D("convEtaMatchSCAss"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
372  h_convPhi_[1][0] = iBooker.book1D("convPhiAss"," Matched converted Photon Phi ",phiBin,phiMin,phiMax) ;
373  h_convR_[1][0] = iBooker.book1D("convRAss"," Matched converted photon R",rBin,rMin, rMax);
374  h_convZ_[1][0] = iBooker.book1D("convZAss"," Matched converted photon Z",zBin,zMin, zMax);
375  h_convPt_[1][0] = iBooker.book1D("convPtAss","Matched conversions Transverse Energy: all eta ", etBin,etMin, etMax);
376 
377  h_convEta_[2][0] = iBooker.book1D("convEtaFake2"," Fake converted Photon Eta ",etaBin2,etaMin, etaMax) ;
378  h_convEta_[2][1] = iBooker.book1D("convEtaFake"," Fake converted Photon Eta ",etaBin,etaMin, etaMax) ;
379  h_convEtaMatchSC_[2][0] = iBooker.book1D("convEtaMatchSCFake"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
380  h_convPhi_[2][0] = iBooker.book1D("convPhiFake"," Fake converted Photon Phi ",phiBin,phiMin,phiMax) ;
381  h_convR_[2][0] = iBooker.book1D("convRFake"," Fake converted photon R",rBin,rMin, rMax);
382  h_convZ_[2][0] = iBooker.book1D("convZFake"," Fake converted photon Z",zBin,zMin, zMax);
383  h_convPt_[2][0] = iBooker.book1D("convPtFake","Fake conversions Transverse Energy: all eta ", etBin,etMin, etMax);
384 
385  h_convRplot_ = iBooker.book1D("convRplot"," converted photon R",600, 0.,120.);
386  h_convZplot_ = iBooker.book1D("convZplot"," converted photon Z",320,-160.,160.);
387 
388  histname = "convSCdPhi";
389  h_convSCdPhi_[0][0] = iBooker.book1D(histname+"All","dPhi between SC and conversion",100, -0.1,0.1);
390  h_convSCdPhi_[0][1] = iBooker.book1D(histname+"Barrel"," dPhi between SC and conversion: Barrel",100, -0.1,0.1);
391  h_convSCdPhi_[0][2] = iBooker.book1D(histname+"Endcap"," dPhi between SC and conversion: Endcap",100, -0.1,0.1);
392  h_convSCdPhi_[1][0] = iBooker.book1D(histname+"All_Ass","dPhi between SC and conversion",100, -0.1,0.1);
393  h_convSCdPhi_[1][1] = iBooker.book1D(histname+"Barrel_Ass"," dPhi between SC and conversion: Barrel",100, -0.1,0.1);
394  h_convSCdPhi_[1][2] = iBooker.book1D(histname+"Endcap_Ass"," dPhi between SC and conversion: Endcap",100, -0.1,0.1);
395  h_convSCdPhi_[2][0] = iBooker.book1D(histname+"All_Fakes","dPhi between SC and conversion",100, -0.1,0.1);
396  h_convSCdPhi_[2][1] = iBooker.book1D(histname+"Barrel_Fakes"," dPhi between SC and conversion: Barrel",100, -0.1,0.1);
397  h_convSCdPhi_[2][2] = iBooker.book1D(histname+"Endcap_Fakes"," dPhi between SC and conversion: Endcap",100, -0.1,0.1);
398  histname = "convSCdEta";
399  h_convSCdEta_[0][0] = iBooker.book1D(histname+"All"," dEta between SC and conversion",100, -0.1,0.1);
400  h_convSCdEta_[0][1] = iBooker.book1D(histname+"Barrel"," dEta between SC and conversion: Barrel",100, -0.1,0.1);
401  h_convSCdEta_[0][2] = iBooker.book1D(histname+"Endcap"," dEta between SC and conversion: Endcap",100, -0.1,0.1);
402  h_convSCdEta_[1][0] = iBooker.book1D(histname+"All_Ass"," dEta between SC and conversion",100, -0.1,0.1);
403  h_convSCdEta_[1][1] = iBooker.book1D(histname+"Barrel_Ass"," dEta between SC and conversion: Barrel",100, -0.1,0.1);
404  h_convSCdEta_[1][2] = iBooker.book1D(histname+"Endcap_Ass"," dEta between SC and conversion: Endcap",100, -0.1,0.1);
405  h_convSCdEta_[2][0] = iBooker.book1D(histname+"All_Fakes"," dEta between SC and conversion",100, -0.1,0.1);
406  h_convSCdEta_[2][1] = iBooker.book1D(histname+"Barrel_Fakes"," dEta between SC and conversion: Barrel",100, -0.1,0.1);
407  h_convSCdEta_[2][2] = iBooker.book1D(histname+"Endcap_Fakes"," dEta between SC and conversion: Endcap",100, -0.1,0.1);
408 
409  histname = "convPtRes";
410  h_convPtRes_[0] = iBooker.book1D(histname+"All"," Conversion Pt rec/true : All ecal ", resBin,resMin, resMax);
411  h_convPtRes_[1] = iBooker.book1D(histname+"Barrel"," Conversion Pt rec/true : Barrel ",resBin,resMin, resMax);
412  h_convPtRes_[2] = iBooker.book1D(histname+"Endcap"," Conversion Pt rec/true : Endcap ",resBin,resMin, resMax);
413 
414 
415  histname="hInvMass";
416  h_invMass_[0][0]= iBooker.book1D(histname+"All_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
417  h_invMass_[0][1]= iBooker.book1D(histname+"Barrel_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
418  h_invMass_[0][2]= iBooker.book1D(histname+"Endcap_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
419  //
420  h_invMass_[1][0]= iBooker.book1D(histname+"All_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
421  h_invMass_[1][1]= iBooker.book1D(histname+"Barrel_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
422  h_invMass_[1][2]= iBooker.book1D(histname+"Endcap_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
423  //
424  h_invMass_[2][0]= iBooker.book1D(histname+"All_FakeTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
425  h_invMass_[2][1]= iBooker.book1D(histname+"Barrel_FakeTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
426  h_invMass_[2][2]= iBooker.book1D(histname+"Endcap_FaleTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
427 
428 
429 
430  histname="hDPhiTracksAtVtx";
431  h_DPhiTracksAtVtx_[0][0] =iBooker.book1D(histname+"All", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
432  h_DPhiTracksAtVtx_[0][1] =iBooker.book1D(histname+"Barrel", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
433  h_DPhiTracksAtVtx_[0][2] =iBooker.book1D(histname+"Endcap", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
434  h_DPhiTracksAtVtx_[1][0] =iBooker.book1D(histname+"All_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
435  h_DPhiTracksAtVtx_[1][1] =iBooker.book1D(histname+"Barrel_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
436  h_DPhiTracksAtVtx_[1][2] =iBooker.book1D(histname+"Endcap_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
437  h_DPhiTracksAtVtx_[2][0] =iBooker.book1D(histname+"All_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
438  h_DPhiTracksAtVtx_[2][1] =iBooker.book1D(histname+"Barrel_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
439  h_DPhiTracksAtVtx_[2][2] =iBooker.book1D(histname+"Endcap_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
440 
441 
442 
443  histname="hDPhiTracksAtVtxVsEta";
444  h2_DPhiTracksAtVtxVsEta_ = iBooker.book2D(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta",etaBin2,etaMin, etaMax,100, -0.5, 0.5);
445  histname="pDPhiTracksAtVtxVsEta";
446  p_DPhiTracksAtVtxVsEta_ = iBooker.bookProfile(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta ",etaBin2,etaMin, etaMax, 100, -0.5, 0.5,"");
447 
448  histname="hDPhiTracksAtVtxVsR";
449  h2_DPhiTracksAtVtxVsR_ = iBooker.book2D(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R",rBin,rMin, rMax,100, -0.5, 0.5);
450  histname="pDPhiTracksAtVtxVsR";
451  p_DPhiTracksAtVtxVsR_ = iBooker.bookProfile(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.5, 0.5,"");
452 
453 
454  histname="hDCotTracks";
455  h_DCotTracks_[0][0]= iBooker.book1D(histname+"All"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
456  h_DCotTracks_[0][1]= iBooker.book1D(histname+"Barrel"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
457  h_DCotTracks_[0][2]= iBooker.book1D(histname+"Endcap"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
458  h_DCotTracks_[1][0]= iBooker.book1D(histname+"All_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
459  h_DCotTracks_[1][1]= iBooker.book1D(histname+"Barrel_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
460  h_DCotTracks_[1][2]= iBooker.book1D(histname+"Endcap_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
461  h_DCotTracks_[2][0]= iBooker.book1D(histname+"All_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
462  h_DCotTracks_[2][1]= iBooker.book1D(histname+"Barrel_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
463  h_DCotTracks_[2][2]= iBooker.book1D(histname+"Endcap_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
464 
465 
466  histname="hDCotTracksVsEta";
467  h2_DCotTracksVsEta_ = iBooker.book2D(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta",etaBin2,etaMin, etaMax,100, -0.2, 0.2);
468  histname="pDCotTracksVsEta";
469  p_DCotTracksVsEta_ = iBooker.bookProfile(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta ",etaBin2,etaMin, etaMax, 100, -0.2, 0.2,"");
470 
471  histname="hDCotTracksVsR";
472  h2_DCotTracksVsR_ = iBooker.book2D(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R",rBin,rMin, rMax,100, -0.2, 0.2);
473  histname="pDCotTracksVsR";
474  p_DCotTracksVsR_ = iBooker.bookProfile(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.2, 0.2,"");
475 
476 
477  histname="hDistMinAppTracks";
478  h_distMinAppTracks_[0][0]= iBooker.book1D(histname+"All"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
479  h_distMinAppTracks_[0][1]= iBooker.book1D(histname+"Barrel"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
480  h_distMinAppTracks_[0][2]= iBooker.book1D(histname+"Endcap"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
481  h_distMinAppTracks_[1][0]= iBooker.book1D(histname+"All_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
482  h_distMinAppTracks_[1][1]= iBooker.book1D(histname+"Barrel_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
483  h_distMinAppTracks_[1][2]= iBooker.book1D(histname+"Endcap_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
484  h_distMinAppTracks_[2][0]= iBooker.book1D(histname+"All_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
485  h_distMinAppTracks_[2][1]= iBooker.book1D(histname+"Barrel_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
486  h_distMinAppTracks_[2][2]= iBooker.book1D(histname+"Endcap_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
487 
488 
489  h_convVtxRvsZ_[0] = iBooker.book2D("convVtxRvsZAll"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
490  h_convVtxRvsZ_[1] = iBooker.book2D("convVtxRvsZBarrel"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
491  h_convVtxRvsZ_[2] = iBooker.book2D("convVtxRvsZEndcap"," Photon Reco conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
492  h_convVtxYvsX_ = iBooker.book2D("convVtxYvsXTrkBarrel"," Photon Reco conversion vtx position, (x,y) eta<1 ", 1000, -60., 60., 1000, -60., 60.);
494  h_convVtxRvsZ_zoom_[0] = iBooker.book2D("convVtxRvsZBarrelZoom1"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 40.);
495  h_convVtxRvsZ_zoom_[1] = iBooker.book2D("convVtxRvsZBarrelZoom2"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 20.);
496  h_convVtxYvsX_zoom_[0] = iBooker.book2D("convVtxYvsXTrkBarrelZoom1"," Photon Reco conversion vtx position, (x,y) eta<1 ",100, -40., 40., 100, -40., 40.);
497  h_convVtxYvsX_zoom_[1] = iBooker.book2D("convVtxYvsXTrkBarrelZoom2"," Photon Reco conversion vtx position, (x,y) eta<1 ",100, -20., 20., 100, -20., 20.);
498 
499  h_convVtxdR_ = iBooker.book1D("convVtxdR"," Photon Reco conversion vtx dR",100, -10.,10.);
500  h_convVtxdX_ = iBooker.book1D("convVtxdX"," Photon Reco conversion vtx dX",100, -10.,10.);
501  h_convVtxdY_ = iBooker.book1D("convVtxdY"," Photon Reco conversion vtx dY",100, -10.,10.);
502  h_convVtxdZ_ = iBooker.book1D("convVtxdZ"," Photon Reco conversion vtx dZ",100, -20.,20.);
503 
504  h_convVtxdPhi_ = iBooker.book1D("convVtxdPhi"," Photon Reco conversion vtx dPhi",100, -0.01,0.01);
505  h_convVtxdEta_ = iBooker.book1D("convVtxdEta"," Photon Reco conversion vtx dEta",100, -0.5,0.5);
506 
507  h_convVtxdR_barrel_ = iBooker.book1D("convVtxdR_barrel"," Photon Reco conversion vtx dR, |eta|<=1.2",100, -10.,10.);
508  h_convVtxdX_barrel_ = iBooker.book1D("convVtxdX_barrel"," Photon Reco conversion vtx dX, |eta|<=1.2",100, -10.,10.);
509  h_convVtxdY_barrel_ = iBooker.book1D("convVtxdY_barrel"," Photon Reco conversion vtx dY, |eta|<=1.2 ",100, -10.,10.);
510  h_convVtxdZ_barrel_ = iBooker.book1D("convVtxdZ_barrel"," Photon Reco conversion vtx dZ, |eta|<=1.2,",100, -20.,20.);
511 
512  h_convVtxdR_endcap_ = iBooker.book1D("convVtxdR_endcap"," Photon Reco conversion vtx dR, |eta|>1.2 ",100, -10.,10.);
513  h_convVtxdX_endcap_ = iBooker.book1D("convVtxdX_endcap"," Photon Reco conversion vtx dX, |eta|>1.2",100, -10.,10.);
514  h_convVtxdY_endcap_ = iBooker.book1D("convVtxdY_endcap"," Photon Reco conversion vtx dY, |eta|>1.2",100, -10.,10.);
515  h_convVtxdZ_endcap_ = iBooker.book1D("convVtxdZ_endcap"," Photon Reco conversion vtx dZ, |eta|>1.2",100, -20.,20.);
516 
517 
518 
519  h2_convVtxdRVsR_ = iBooker.book2D("h2ConvVtxdRVsR"," Conversion vtx dR vsR" ,rBin,rMin, rMax,100, -20.,20.);
520  h2_convVtxdRVsEta_ = iBooker.book2D("h2ConvVtxdRVsEta","Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax,100, -20.,20.);
521 
522  p_convVtxdRVsR_ = iBooker.bookProfile("pConvVtxdRVsR"," Conversion vtx dR vsR" ,rBin,rMin, rMax ,100, -20.,20., "");
523  p_convVtxdRVsEta_ = iBooker.bookProfile("pConvVtxdRVsEta","Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax, 100, -20.,20., "");
524  p_convVtxdXVsX_ = iBooker.bookProfile("pConvVtxdXVsX","Conversion vtx dX vs X" ,120,-60, 60 ,100, -20.,20., "");
525  p_convVtxdYVsY_ = iBooker.bookProfile("pConvVtxdYVsY","Conversion vtx dY vs Y" ,120,-60, 60 ,100, -20.,20., "");
526  p_convVtxdZVsZ_ = iBooker.bookProfile("pConvVtxdZVsZ","Conversion vtx dZ vs Z" ,zBin,zMin,zMax ,100, -20.,20., "");
527 
528  p_convVtxdZVsR_ = iBooker.bookProfile("pConvVtxdZVsR","Conversion vtx dZ vs R" ,rBin,rMin,rMax ,100, -20.,20., "");
529  p2_convVtxdRVsRZ_ = iBooker.bookProfile2D("p2ConvVtxdRVsRZ","Conversion vtx dR vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,"s");
530  p2_convVtxdZVsRZ_ = iBooker.bookProfile2D("p2ConvVtxdZVsRZ","Conversion vtx dZ vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,"s");
531 
532 
533  histname="EoverPtracks";
534  h_EoverPTracks_[0][0] = iBooker.book1D(histname+"All"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax );
535  h_EoverPTracks_[0][1] = iBooker.book1D(histname+"Barrel"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
536  h_EoverPTracks_[0][2] = iBooker.book1D(histname+"Endcap"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
537  h_EoverPTracks_[1][0] = iBooker.book1D(histname+"All_Ass"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
538  h_EoverPTracks_[1][1] = iBooker.book1D(histname+"Barrel_Ass"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
539  h_EoverPTracks_[1][2] = iBooker.book1D(histname+"Endcap_Ass"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
540  h_EoverPTracks_[2][0] = iBooker.book1D(histname+"All_Fakes"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
541  h_EoverPTracks_[2][1] = iBooker.book1D(histname+"Barrel_Fakes"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
542  h_EoverPTracks_[2][2] = iBooker.book1D(histname+"Endcap_Fakes"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
543 
544 
545  h2_convVtxRrecVsTrue_ = iBooker.book2D("h2ConvVtxRrecVsTrue","Photon Reco conversion vtx R rec vs true" ,rBin,rMin, rMax,rBin,rMin, rMax);
546 
547  histname="vtxChi2Prob";
548  h_vtxChi2Prob_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 100, 0., 1.);
549  h_vtxChi2Prob_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, 0., 1.);
550  h_vtxChi2Prob_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, 0., 1.);
551  h_vtxChi2Prob_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 100, 0., 1.);
552  h_vtxChi2Prob_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, 0., 1.);
553  h_vtxChi2Prob_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, 0., 1.);
554  h_vtxChi2Prob_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, 0., 1.);
555  h_vtxChi2Prob_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, 0., 1.);
556  h_vtxChi2Prob_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, 0., 1.);
557 
558 
559  h_zPVFromTracks_[1] = iBooker.book1D("zPVFromTracks"," Photons: PV z from conversion tracks",100, -25., 25.);
560  h_dzPVFromTracks_[1] = iBooker.book1D("dzPVFromTracks"," Photons: PV Z_rec - Z_true from conversion tracks",100, -5., 5.);
561  h2_dzPVVsR_ = iBooker.book2D("h2dzPVVsR","Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax,100, -3.,3.);
562  p_dzPVVsR_ = iBooker.bookProfile("pdzPVVsR","Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax, 100, -3.,3.,"");
563 
564 
565  histname="lxybs";
566  h_lxybs_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 200, -100., 100.);
567  h_lxybs_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 200, -100., 100.);
568  h_lxybs_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 200, -100., 100.);
569  h_lxybs_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 200, -100., 100.);
570  h_lxybs_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 200, -100., 100.);
571  h_lxybs_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 200, -100., 100.);
572  h_lxybs_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 200, -100., 100.);
573  h_lxybs_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 200, -100., 100.);
574  h_lxybs_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 200, -100., 100.);
575 
576  histname="maxNHitsBeforeVtx";
577  h_maxNHitsBeforeVtx_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
578  h_maxNHitsBeforeVtx_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
579  h_maxNHitsBeforeVtx_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
580  h_maxNHitsBeforeVtx_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
581  h_maxNHitsBeforeVtx_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
582  h_maxNHitsBeforeVtx_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
583  h_maxNHitsBeforeVtx_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
584  h_maxNHitsBeforeVtx_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
585  h_maxNHitsBeforeVtx_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
586 
587  histname="leadNHitsBeforeVtx";
588  h_leadNHitsBeforeVtx_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
589  h_leadNHitsBeforeVtx_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
590  h_leadNHitsBeforeVtx_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
591  h_leadNHitsBeforeVtx_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
592  h_leadNHitsBeforeVtx_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
593  h_leadNHitsBeforeVtx_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
594  h_leadNHitsBeforeVtx_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
595  h_leadNHitsBeforeVtx_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
596  h_leadNHitsBeforeVtx_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
597 
598  histname="trailNHitsBeforeVtx";
599  h_trailNHitsBeforeVtx_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
600  h_trailNHitsBeforeVtx_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
601  h_trailNHitsBeforeVtx_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
602  h_trailNHitsBeforeVtx_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
603  h_trailNHitsBeforeVtx_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
604  h_trailNHitsBeforeVtx_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
605  h_trailNHitsBeforeVtx_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
606  h_trailNHitsBeforeVtx_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
607  h_trailNHitsBeforeVtx_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
608 
609  histname="sumNHitsBeforeVtx";
610  h_sumNHitsBeforeVtx_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
611  h_sumNHitsBeforeVtx_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
612  h_sumNHitsBeforeVtx_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
613  h_sumNHitsBeforeVtx_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
614  h_sumNHitsBeforeVtx_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
615  h_sumNHitsBeforeVtx_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
616  h_sumNHitsBeforeVtx_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
617  h_sumNHitsBeforeVtx_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
618  h_sumNHitsBeforeVtx_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
619 
620  histname="maxDlClosestHitToVtx";
621  h_maxDlClosestHitToVtx_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 100, -10., 10.);
622  h_maxDlClosestHitToVtx_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, -10., 10.);
623  h_maxDlClosestHitToVtx_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, -10., 10.);
624  h_maxDlClosestHitToVtx_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 100, -10., 10.);
625  h_maxDlClosestHitToVtx_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, -10., 10.);
626  h_maxDlClosestHitToVtx_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, -10., 10.);
627  h_maxDlClosestHitToVtx_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, -10., 10.);
628  h_maxDlClosestHitToVtx_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, -10., 10.);
629  h_maxDlClosestHitToVtx_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, -10., 10.);
630 
631  histname="maxDlClosestHitToVtxSig";
632  h_maxDlClosestHitToVtxSig_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 100, -8., 8.);
633  h_maxDlClosestHitToVtxSig_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, -8., 8.);
634  h_maxDlClosestHitToVtxSig_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, -8., 8.);
635  h_maxDlClosestHitToVtxSig_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 100, -8., 8.);
636  h_maxDlClosestHitToVtxSig_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, -8., 8.);
637  h_maxDlClosestHitToVtxSig_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, -8., 8.);
638  h_maxDlClosestHitToVtxSig_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, -8., 8.);
639  h_maxDlClosestHitToVtxSig_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, -8., 8.);
640  h_maxDlClosestHitToVtxSig_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, -8., 8.);
641 
642  histname="deltaExpectedHitsInner";
643  h_deltaExpectedHitsInner_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 31, -15.5, 15.5);
644  h_deltaExpectedHitsInner_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 31, -15.5, 15.5);
645  h_deltaExpectedHitsInner_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 31, -15.5, 15.5);
646  h_deltaExpectedHitsInner_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 31, -15.5, 15.5);
647  h_deltaExpectedHitsInner_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 31, -15.5, 15.5);
648  h_deltaExpectedHitsInner_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 31, -15.5, 15.5);
649  h_deltaExpectedHitsInner_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 31, -15.5, 15.5);
650  h_deltaExpectedHitsInner_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 31, -15.5, 15.5);
651  h_deltaExpectedHitsInner_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 31, -15.5, 15.5);
652 
653  histname="leadExpectedHitsInner";
654  h_leadExpectedHitsInner_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
655  h_leadExpectedHitsInner_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
656  h_leadExpectedHitsInner_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
657  h_leadExpectedHitsInner_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
658  h_leadExpectedHitsInner_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
659  h_leadExpectedHitsInner_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
660  h_leadExpectedHitsInner_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
661  h_leadExpectedHitsInner_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
662  h_leadExpectedHitsInner_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
663 
664  histname="nSharedHits";
665  h_nSharedHits_[0][0] = iBooker.book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5);
666  h_nSharedHits_[0][1] = iBooker.book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5);
667  h_nSharedHits_[0][2] = iBooker.book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5);
668  h_nSharedHits_[1][0] = iBooker.book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5);
669  h_nSharedHits_[1][1] = iBooker.book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5);
670  h_nSharedHits_[1][2] = iBooker.book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5);
671  h_nSharedHits_[2][0] = iBooker.book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5);
672  h_nSharedHits_[2][1] = iBooker.book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5);
673  h_nSharedHits_[2][2] = iBooker.book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5);
674 
676  histname="nHits";
677  nHits_[0] = iBooker.book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits all tracks",etaBin,etaMin, etaMax,30,0., 30.);
678  nHits_[1] = iBooker.book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits all tracks ass",etaBin,etaMin, etaMax,30,0., 30.);
679  nHits_[2] = iBooker.book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits all tracks fakes",etaBin,etaMin, etaMax,30,0., 30.);
680 
681 
682  histname="nHitsVsEta";
683  nHitsVsEta_[0] = iBooker.book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
684  nHitsVsEta_[1] = iBooker.book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
685  nHitsVsEta_[2] = iBooker.book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
686  histname="h_nHitsVsEta";
687  p_nHitsVsEta_[0] = iBooker.bookProfile(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,"");
688  p_nHitsVsEta_[1] = iBooker.bookProfile(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,"");
689  p_nHitsVsEta_[2] = iBooker.bookProfile(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,"");
690 
691 
692  histname="nHitsVsR";
693  nHitsVsR_[0] = iBooker.book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
694  nHitsVsR_[1] = iBooker.book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
695  nHitsVsR_[2] = iBooker.book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
696 
697  histname="h_nHitsVsR";
698  p_nHitsVsR_[0] = iBooker.bookProfile(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,"");
699  p_nHitsVsR_[1] = iBooker.bookProfile(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,"");
700  p_nHitsVsR_[2] = iBooker.bookProfile(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,"");
701 
702  histname="tkChi2";
703  h_tkChi2_[0] = iBooker.book1D(histname+"AllTracks","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
704  h_tkChi2_[1] = iBooker.book1D(histname+"AllTracks_Ass","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
705  h_tkChi2_[2] = iBooker.book1D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
706 
707  histname="tkChi2Large";
708  h_tkChi2Large_[0] = iBooker.book1D(histname+"AllTracks","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
709  h_tkChi2Large_[1] = iBooker.book1D(histname+"AllTracks_Ass","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
710  h_tkChi2Large_[2] = iBooker.book1D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
711 
712 
713  histname="h2Chi2VsEta";
714  h2_Chi2VsEta_[0]=iBooker.book2D(histname+"All"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
715  h2_Chi2VsEta_[1]=iBooker.book2D(histname+"All_Ass"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
716  h2_Chi2VsEta_[2]=iBooker.book2D(histname+"All_Fakes"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
717  histname="pChi2VsEta";
718  p_Chi2VsEta_[0]=iBooker.bookProfile(histname+"All"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,"");
719  p_Chi2VsEta_[1]=iBooker.bookProfile(histname+"All_Ass"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,"");
720  p_Chi2VsEta_[2]=iBooker.bookProfile(histname+"All_Fakes"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,"");
721 
722  histname="h2Chi2VsR";
723  h2_Chi2VsR_[0]=iBooker.book2D(histname+"All"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
724  h2_Chi2VsR_[1]=iBooker.book2D(histname+"All_Ass"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
725  h2_Chi2VsR_[2]=iBooker.book2D(histname+"All_Fakes"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
726  histname="pChi2VsR";
727  p_Chi2VsR_[0]=iBooker.bookProfile(histname+"All"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,"");
728  p_Chi2VsR_[1]=iBooker.bookProfile(histname+"All_Ass"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,"");
729  p_Chi2VsR_[2]=iBooker.bookProfile(histname+"All_Fakes"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,"");
730 
731  histname="hTkD0";
732  h_TkD0_[0]=iBooker.book1D(histname+"All"," Reco Track D0*q: All ",200,-0.1,60);
733  h_TkD0_[1]=iBooker.book1D(histname+"All_Ass"," Reco Track D0*q: Barrel ",200,-0.1,60);
734  h_TkD0_[2]=iBooker.book1D(histname+"All_Fakes"," Reco Track D0*q: Endcap ",200,-0.1,60);
735 
736 
737 
738  histname="hTkPtPull";
739  h_TkPtPull_[0]=iBooker.book1D(histname+"All"," Reco Track Pt pull: All ",100, -20., 10.);
740  histname="hTkPtPull";
741  h_TkPtPull_[1]=iBooker.book1D(histname+"Barrel"," Reco Track Pt pull: Barrel ",100, -20., 10.);
742  histname="hTkPtPull";
743  h_TkPtPull_[2]=iBooker.book1D(histname+"Endcap"," Reco Track Pt pull: Endcap ",100, -20., 10.);
744 
745  histname="h2TkPtPullEta";
746  h2_TkPtPull_[0]=iBooker.book2D(histname+"All"," Reco Track Pt pull: All ",etaBin2,etaMin, etaMax,100, -20., 10.);
747  histname="pTkPtPullEta";
748  p_TkPtPull_[0]=iBooker.bookProfile(histname+"All"," Reco Track Pt pull: All ",etaBin2,etaMin, etaMax, 100, -20., 10., " ");
749 
750 
751  histname="PtRecVsPtSim";
752  h2_PtRecVsPtSim_[0]=iBooker.book2D(histname+"All", "Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax);
753  h2_PtRecVsPtSim_[1]=iBooker.book2D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", etBin,etMin,etMax,etBin,etMin, etMax);
754  h2_PtRecVsPtSim_[2]=iBooker.book2D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", etBin,etMin,etMax,etBin,etMin, etMax);
755 
756  histname="photonPtRecVsPtSim";
757  h2_photonPtRecVsPtSim_=iBooker.book2D(histname+"All", "Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax);
758 
759  histname="nHitsBeforeVtx";
760  h_nHitsBeforeVtx_[0]=iBooker.book1D(histname+"All", "Pt Rec vs Pt sim: All ", 16, -0.5, 15.5);
761  h_nHitsBeforeVtx_[1]=iBooker.book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 16, -0.5, 15.5);
762  h_nHitsBeforeVtx_[2]=iBooker.book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 16, -0.5, 15.5);
763 
764  histname="dlClosestHitToVtx";
765  h_dlClosestHitToVtx_[0]=iBooker.book1D(histname+"All", "Pt Rec vs Pt sim: All ", 100, -10., 10.);
766  h_dlClosestHitToVtx_[1]=iBooker.book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 100, -10., 10.);
767  h_dlClosestHitToVtx_[2]=iBooker.book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 100, -10., 10.);
768 
769  histname="dlClosestHitToVtxSig";
770  h_dlClosestHitToVtxSig_[0]=iBooker.book1D(histname+"All", "Pt Rec vs Pt sim: All ", 100, -8., 8.);
771  h_dlClosestHitToVtxSig_[1]=iBooker.book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 100, -8., 8.);
772  h_dlClosestHitToVtxSig_[2]=iBooker.book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 100, -8., 8.);
773 
774  h_match_= iBooker.book1D("h_match"," ", 3, -0.5,2.5);
775 
776 
777  } // if DQM
778 
779 
780 
781 }
MonitorElement * h2_DPhiTracksAtVtxVsR_
MonitorElement * h2_dzPVVsR_
MonitorElement * h_maxDlClosestHitToVtx_[3][3]
MonitorElement * h_convPt_[3][3]
MonitorElement * p_convVtxdYVsY_
T getParameter(std::string const &) const
std::string dqmpath_
MonitorElement * h2_DCotTracksVsR_
MonitorElement * h_convVtxdR_
MonitorElement * h2_DCotTracksVsEta_
MonitorElement * h_simConvVtxRvsZ_[4]
MonitorElement * h_convZplot_
MonitorElement * h_nSimConv_[2]
MonitorElement * h_convSCdPhi_[3][3]
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0_[5]
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0005_[5]
MonitorElement * h_DCotTracks_[3][3]
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * nHitsVsEta_[3]
MonitorElement * h_lxybs_[3][3]
MonitorElement * h_trailNHitsBeforeVtx_[3][3]
MonitorElement * p_Chi2VsR_[3]
MonitorElement * h_convVtxYvsX_zoom_[2]
MonitorElement * p_DCotTracksVsR_
MonitorElement * h_tkChi2_[3]
MonitorElement * h_convVtxdX_
MonitorElement * h_convPtRes_[3]
MonitorElement * h_convEtaMatchSC_[3][3]
MonitorElement * h2_Chi2VsEta_[3]
MonitorElement * p_TkPtPull_[3]
MonitorElement * h_SimRecConvTwoMTracks_[5]
MonitorElement * h_vtxChi2Prob_[3][3]
MonitorElement * h_convVtxdX_endcap_
MonitorElement * h_convVtxdR_endcap_
MonitorElement * h_zPVFromTracks_[2]
MonitorElement * h_convVtxdY_barrel_
MonitorElement * h_tkChi2Large_[3]
edm::ParameterSet parameters_
MonitorElement * p_DCotTracksVsEta_
MonitorElement * h_maxDlClosestHitToVtxSig_[3][3]
MonitorElement * h_convVtxdR_barrel_
MonitorElement * h_leadExpectedHitsInner_[3][3]
MonitorElement * h_convSCdEta_[3][3]
MonitorElement * h_sumNHitsBeforeVtx_[3][3]
MonitorElement * h_dzPVFromTracks_[2]
MonitorElement * h_nConv_[3][3]
info per conversion
MonitorElement * h_convVtxdY_
MonitorElement * p_DPhiTracksAtVtxVsEta_
MonitorElement * h_deltaExpectedHitsInner_[3][3]
MonitorElement * h_convVtxdEta_
MonitorElement * h_convVtxYvsX_
MonitorElement * p_convVtxdZVsR_
MonitorElement * p_convVtxdRVsR_
MonitorElement * h_convR_[3][3]
MonitorElement * h_VisSimConv_[6]
MonitorElement * h2_photonPtRecVsPtSim_
MonitorElement * bookProfile2D(Args &&...args)
Definition: DQMStore.h:163
MonitorElement * h_EoverPTracks_[3][3]
MonitorElement * h_leadNHitsBeforeVtx_[3][3]
MonitorElement * h_distMinAppTracks_[3][3]
MonitorElement * p_DPhiTracksAtVtxVsR_
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
MonitorElement * h_SimConvEtaPix_[2]
MonitorElement * h_convVtxdX_barrel_
MonitorElement * p_nHitsVsEta_[3]
MonitorElement * h_simTkPt_
MonitorElement * p_convVtxdXVsX_
MonitorElement * h_convVtxdY_endcap_
MonitorElement * h_convEta_[3][3]
MonitorElement * h_convVtxRvsZ_zoom_[2]
MonitorElement * h_simConvVtxYvsX_
MonitorElement * h_convEta2_[3][3]
MonitorElement * h_nHitsBeforeVtx_[3]
MonitorElement * p2_convVtxdRVsRZ_
MonitorElement * p_Chi2VsEta_[3]
MonitorElement * nHits_[3]
MonitorElement * h_SimConvTwoTracks_[5]
MonitorElement * h_convVtxdZ_
MonitorElement * h_convVtxRvsZ_[3]
MonitorElement * h2_DPhiTracksAtVtxVsEta_
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * h_convPhi_[3][3]
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
MonitorElement * h_convVtxdZ_barrel_
MonitorElement * h2_convVtxRrecVsTrue_
MonitorElement * h_AllSimConv_[5]
Denominator for efficiencies.
MonitorElement * h_convRplot_
MonitorElement * p_nHitsVsR_[3]
MonitorElement * p_dzPVVsR_
MonitorElement * h2_Chi2VsR_[3]
MonitorElement * h_convVtxdPhi_
MonitorElement * h_invMass_[3][3]
MonitorElement * h_convZ_[3][3]
MonitorElement * h_dlClosestHitToVtxSig_[3]
MonitorElement * h2_PtRecVsPtSim_[3]
MonitorElement * h_match_
MonitorElement * p_convVtxdZVsZ_
MonitorElement * h2_TkPtPull_[3]
MonitorElement * h_convVtxdZ_endcap_
MonitorElement * h2_convVtxdRVsR_
MonitorElement * h_DPhiTracksAtVtx_[3][3]
MonitorElement * nHitsVsR_[3]
MonitorElement * h_simTkEta_
MonitorElement * h_TkPtPull_[3]
MonitorElement * p2_convVtxdZVsRZ_
MonitorElement * h_SimConvTwoMTracks_[5]
MonitorElement * p_convVtxdRVsEta_
MonitorElement * h_dlClosestHitToVtx_[3]
MonitorElement * h_TkD0_[3]
MonitorElement * h2_convVtxdRVsEta_
MonitorElement * h_nSharedHits_[3][3]
MonitorElement * h_maxNHitsBeforeVtx_[3][3]
void TkConvValidator::dqmBeginRun ( edm::Run const &  r,
edm::EventSetup const &  theEventSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 785 of file TkConvValidator.cc.

References edm::EventSetup::get().

785  {
786 
787  //get magnetic field
788  edm::LogInfo("ConvertedPhotonProducer") << " get magnetic field" << "\n";
789  theEventSetup.get<IdealMagneticFieldRecord>().get(theMF_);
790 
792 
793 }
edm::ESHandle< MagneticField > theMF_
PhotonMCTruthFinder * thePhotonMCTruthFinder_
void TkConvValidator::endJob ( void  )
virtual

Definition at line 1789 of file TkConvValidator.cc.

References dbe_, postProcessorL1Gen_cff::outputFileName, reco::return(), and AlCaHLTBitMon_QueryRunRegistry::string.

1789  {
1790 
1791 
1793  if ( ! isRunCentrally_ ) {
1794  dbe_->save(outputFileName);
1795  }
1796 
1797  edm::LogInfo("TkConvValidator") << "Analyzed " << nEvt_ << "\n";
1798  // std::cout << "::endJob Analyzed " << nEvt_ << " events " << " with total " << nPho_ << " Photons " << "\n";
1799  // std::cout << "TkConvValidator::endJob Analyzed " << nEvt_ << " events " << "\n";
1800 
1801  return ;
1802 }
T getParameter(std::string const &) const
edm::ParameterSet parameters_
return(e1-e2)*(e1-e2)+dp *dp
void TkConvValidator::endRun ( edm::Run const &  r,
edm::EventSetup const &  es 
)
overridevirtual

Reimplemented from edm::stream::EDAnalyzerBase.

Definition at line 795 of file TkConvValidator.cc.

795  {
796 
798 
799 }
PhotonMCTruthFinder * thePhotonMCTruthFinder_
float TkConvValidator::etaTransformation ( float  a,
float  b 
)
private

Definition at line 1855 of file TkConvValidator.cc.

References ETA, etaBarrelEndcap, cmsBatch::log, PI, R_ECAL, funct::tan(), and Z_Endcap.

1855  {
1856 
1857  //---Definitions
1858  const float PI = 3.1415927;
1859 
1860  //---Definitions for ECAL
1861  const float R_ECAL = 136.5;
1862  const float Z_Endcap = 328.0;
1863  const float etaBarrelEndcap = 1.479;
1864 
1865  //---ETA correction
1866 
1867  float Theta = 0.0 ;
1868  float ZEcal = R_ECAL*sinh(EtaParticle)+Zvertex;
1869 
1870  if(ZEcal != 0.0) Theta = atan(R_ECAL/ZEcal);
1871  if(Theta<0.0) Theta = Theta+PI ;
1872  float ETA = - log(tan(0.5*Theta));
1873 
1874  if( fabs(ETA) > etaBarrelEndcap )
1875  {
1876  float Zend = Z_Endcap ;
1877  if(EtaParticle<0.0 ) Zend = -Zend ;
1878  float Zlen = Zend - Zvertex ;
1879  float RR = Zlen/sinh(EtaParticle);
1880  Theta = atan(RR/Zend);
1881  if(Theta<0.0) Theta = Theta+PI ;
1882  ETA = - log(tan(0.5*Theta));
1883  }
1884  //---Return the result
1885  return ETA;
1886  //---end
1887 }
#define ETA
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define PI
Definition: QcdUeDQM.h:36
static const float etaBarrelEndcap
static const float Z_Endcap
static const float R_ECAL
float TkConvValidator::phiNormalization ( float &  a)
private

Definition at line 1839 of file TkConvValidator.cc.

References PI, and TWOPI.

1840 {
1841  //---Definitions
1842  const float PI = 3.1415927;
1843  const float TWOPI = 2.0*PI;
1844 
1845 
1846  if(phi > PI) {phi = phi - TWOPI;}
1847  if(phi < -PI) {phi = phi + TWOPI;}
1848 
1849  // cout << " Float_t PHInormalization out " << PHI << endl;
1850  return phi;
1851 
1852 }
#define TWOPI
EgammaCoreTools.
Definition: DQMSourcePi0.cc:40
#define PI
Definition: QcdUeDQM.h:36
math::XYZVector TkConvValidator::recalculateMomentumAtFittedVertex ( const MagneticField mf,
const TrackerGeometry trackerGeom,
const edm::RefToBase< reco::Track > &  tk,
const reco::Vertex vtx 
)
private

Definition at line 1805 of file TkConvValidator.cc.

References anyDirection, Cylinder::computeRadius(), f, TrajectoryStateOnSurface::globalMomentum(), trajectoryStateTransform::innerStateOnSurface(), TrajectoryStateOnSurface::isValid(), reco::Vertex::position(), Propagator::propagate(), mps_fire::result, makeMuonMisalignmentScenario::rot, mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

1805  {
1806 
1809  auto scp = new SimpleCylinderBounds( sqrt(vtx.position().perp2())-0.001f,
1810  sqrt(vtx.position().perp2())+0.001f,
1811  -fabs(vtx.position().z()),
1812  fabs(vtx.position().z())
1813  );
1815 
1816  ReferenceCountingPointer<Disk> theDisk_(new Disk( Surface::PositionType( 0, 0, vtx.position().z()), rot,
1817  new SimpleDiskBounds( 0, sqrt(vtx.position().perp2()), -0.001, 0.001) )
1818  );
1819 
1820 
1821  const TrajectoryStateOnSurface myTSOS = trajectoryStateTransform::innerStateOnSurface(*tk, trackerGeom, &mf);
1822  PropagatorWithMaterial propag( anyDirection, 0.000511, &mf );
1823  TrajectoryStateOnSurface stateAtVtx;
1824  stateAtVtx = propag.propagate(myTSOS, *theBarrel_);
1825  if (!stateAtVtx.isValid() ) {
1826  stateAtVtx = propag.propagate(myTSOS, *theDisk_);
1827  }
1828  if (stateAtVtx.isValid()){
1829  return math::XYZVector ( double(stateAtVtx.globalMomentum().x()), double(stateAtVtx.globalMomentum().y()), double(stateAtVtx.globalMomentum().z()));
1830  } else {
1831  return math::XYZVector(0.,0.,0.);
1832  }
1833 
1834 
1835 
1836 }
T y() const
Definition: PV3DBase.h:63
const Point & position() const
position
Definition: Vertex.h:109
Definition: BoundDisk.h:19
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
double f[11][100]
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
GlobalVector globalMomentum() const
static float computeRadius(Bounds const &bounds)
Definition: Cylinder.h:30
T x() const
Definition: PV3DBase.h:62
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)

Member Data Documentation

bool TkConvValidator::arbitratedEcalSeeded_
private

Definition at line 141 of file TkConvValidator.h.

bool TkConvValidator::arbitratedMerged_
private

Definition at line 140 of file TkConvValidator.h.

double TkConvValidator::bcEtLow_
private

Definition at line 128 of file TkConvValidator.h.

edm::EDGetTokenT<reco::BeamSpot> TkConvValidator::beamspotToken_
private

Definition at line 105 of file TkConvValidator.h.

std::string TkConvValidator::conversionCollection_
private

Definition at line 95 of file TkConvValidator.h.

edm::EDGetTokenT<reco::ConversionCollection> TkConvValidator::conversionCollectionPr_Token_
private

Definition at line 96 of file TkConvValidator.h.

std::string TkConvValidator::conversionCollectionProducer_
private

Definition at line 94 of file TkConvValidator.h.

std::string TkConvValidator::conversionTrackProducer_
private

Definition at line 98 of file TkConvValidator.h.

DQMStore* TkConvValidator::dbe_
private

Definition at line 76 of file TkConvValidator.h.

bool TkConvValidator::dCotCutOn_
private

Definition at line 136 of file TkConvValidator.h.

double TkConvValidator::dCotCutValue_
private

Definition at line 137 of file TkConvValidator.h.

double TkConvValidator::dCotHardCutValue_
private

Definition at line 138 of file TkConvValidator.h.

std::string TkConvValidator::dqmpath_
private

Definition at line 114 of file TkConvValidator.h.

bool TkConvValidator::ecalalgotracks_
private

Definition at line 142 of file TkConvValidator.h.

double TkConvValidator::ecalEtSumCut_
private

Definition at line 134 of file TkConvValidator.h.

double TkConvValidator::ecalIsolRadius_
private

Definition at line 127 of file TkConvValidator.h.

std::string TkConvValidator::fName_
private

Definition at line 75 of file TkConvValidator.h.

edm::EDGetTokenT<edm::SimTrackContainer> TkConvValidator::g4_simTk_Token_
private

Definition at line 106 of file TkConvValidator.h.

edm::EDGetTokenT<edm::SimVertexContainer> TkConvValidator::g4_simVtx_Token_
private

Definition at line 107 of file TkConvValidator.h.

bool TkConvValidator::generalTracksOnly_
private

Definition at line 139 of file TkConvValidator.h.

edm::EDGetTokenT<reco::GenJetCollection> TkConvValidator::genjets_Token_
private

Definition at line 111 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_Chi2VsEta_[3]
private

Definition at line 334 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_Chi2VsR_[3]
private

Definition at line 336 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_convVtxdRVsEta_
private

Definition at line 287 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_convVtxdRVsR_
private

Definition at line 286 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_convVtxRrecVsTrue_
private

Definition at line 301 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DCotTracksVsEta_
private

Definition at line 246 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DCotTracksVsR_
private

Definition at line 248 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DPhiTracksAtEcalVsEta_
private

Definition at line 256 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DPhiTracksAtEcalVsR_
private

Definition at line 254 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DPhiTracksAtVtxVsEta_
private

Definition at line 240 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_DPhiTracksAtVtxVsR_
private

Definition at line 242 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_dzPVVsR_
private

Definition at line 310 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_photonPtRecVsPtSim_
private

Definition at line 345 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_PtRecVsPtSim_[3]
private

Definition at line 344 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h2_TkPtPull_[3]
private

Definition at line 342 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_AllSimConv_[5]
private

Denominator for efficiencies.

Definition at line 194 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convEta2_[3][3]
private

Definition at line 221 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convEta_[3][3]
private

Definition at line 220 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convEtaMatchSC_[3][3]
private

Definition at line 219 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convPhi_[3][3]
private

Definition at line 222 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convPt_[3][3]
private

Definition at line 225 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convPtRes_[3]
private

Definition at line 235 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convR_[3][3]
private

Definition at line 223 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convRplot_
private

Definition at line 232 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convSCdEta_[3][3]
private

Definition at line 228 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convSCdPhi_[3][3]
private

Definition at line 229 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdEta_
private

Definition at line 272 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdPhi_
private

Definition at line 273 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdR_
private

Definition at line 271 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdR_barrel_
private

Definition at line 278 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdR_endcap_
private

Definition at line 283 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdX_
private

Definition at line 268 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdX_barrel_
private

Definition at line 275 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdX_endcap_
private

Definition at line 280 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdY_
private

Definition at line 269 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdY_barrel_
private

Definition at line 276 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdY_endcap_
private

Definition at line 281 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdZ_
private

Definition at line 270 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdZ_barrel_
private

Definition at line 277 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxdZ_endcap_
private

Definition at line 282 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxRvsZ_[3]
private

Definition at line 263 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxRvsZ_zoom_[2]
private

Definition at line 265 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxYvsX_
private

Definition at line 264 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convVtxYvsX_zoom_[2]
private

Definition at line 266 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convZ_[3][3]
private

Definition at line 224 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_convZplot_
private

Definition at line 233 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_DCotTracks_[3][3]
private

Definition at line 245 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_deltaExpectedHitsInner_[3][3]
private

Definition at line 318 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_DEtaTracksAtEcal_[3][3]
private

Definition at line 259 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_distMinAppTracks_[3][3]
private

Definition at line 251 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_dlClosestHitToVtx_[3]
private

Definition at line 352 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_dlClosestHitToVtxSig_[3]
private

Definition at line 353 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_DPhiTracksAtEcal_[3][3]
private

Definition at line 253 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_DPhiTracksAtVtx_[3][3]
private

Definition at line 239 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_dzPVFromTracks_[2]
private

Definition at line 309 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_EoverPTracks_[3][3]
private

Definition at line 226 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_invMass_[3][3]
private

Definition at line 237 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_leadExpectedHitsInner_[3][3]
private

Definition at line 319 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_leadNHitsBeforeVtx_[3][3]
private

Definition at line 315 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_lxybs_[3][3]
private

Definition at line 313 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_match_
private

Definition at line 347 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_maxDlClosestHitToVtx_[3][3]
private

Definition at line 320 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_maxDlClosestHitToVtxSig_[3][3]
private

Definition at line 321 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_maxNHitsBeforeVtx_[3][3]
private

Definition at line 314 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_nConv_[3][3]
private

info per conversion

Definition at line 218 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_nHitsBeforeVtx_[3]
private

Definition at line 351 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_nSharedHits_[3][3]
private

Definition at line 322 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_nSimConv_[2]
private

Definition at line 183 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_RecoConvTwoMTracks_[5]
private

Definition at line 214 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_RecoConvTwoTracks_[5]
private

Definition at line 212 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvEtaPix_[2]
private

Definition at line 184 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvOneMTracks_[5]
private

Definition at line 199 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvOneTracks_[5]
private

Numerator for efficiencies.

Definition at line 198 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvTwoMTracks_[5]
private

Definition at line 201 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvTwoMTracksAndVtxPGT0005_[5]
private

Definition at line 203 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvTwoMTracksAndVtxPGT01_[5]
private

Definition at line 204 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvTwoMTracksAndVtxPGT0_[5]
private

Definition at line 202 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimConvTwoTracks_[5]
private

Definition at line 200 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_simConvVtxRvsZ_[4]
private

Definition at line 189 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_simConvVtxYvsX_
private

Definition at line 190 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimRecConvOneMTracks_[5]
private

Definition at line 207 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimRecConvOneTracks_[5]
private

Definition at line 206 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimRecConvTwoMTracks_[5]
private

Definition at line 209 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_SimRecConvTwoTracks_[5]
private

Definition at line 208 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_simTkEta_
private

Definition at line 187 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_simTkPt_
private

Definition at line 186 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_sumNHitsBeforeVtx_[3][3]
private

Definition at line 317 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_tkChi2_[3]
private

Definition at line 332 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_tkChi2Large_[3]
private

Definition at line 333 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_TkD0_[3]
private

Definition at line 339 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_TkPtPull_[3]
private

Definition at line 341 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_trailNHitsBeforeVtx_[3][3]
private

Definition at line 316 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_VisSimConv_[6]
private

Definition at line 195 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_VisSimConvLarge_
private

Definition at line 196 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_vtxChi2Prob_[3][3]
private

Definition at line 304 of file TkConvValidator.h.

MonitorElement* TkConvValidator::h_zPVFromTracks_[2]
private

Definition at line 308 of file TkConvValidator.h.

double TkConvValidator::hcalEtSumCut_
private

Definition at line 135 of file TkConvValidator.h.

double TkConvValidator::hcalHitEtLow_
private

Definition at line 131 of file TkConvValidator.h.

double TkConvValidator::hcalIsolExtRadius_
private

Definition at line 129 of file TkConvValidator.h.

double TkConvValidator::hcalIsolInnRadius_
private

Definition at line 130 of file TkConvValidator.h.

edm::EDGetTokenT<edm::HepMCProduct> TkConvValidator::hepMC_Token_
private

Definition at line 110 of file TkConvValidator.h.

bool TkConvValidator::highPurity_
private

Definition at line 143 of file TkConvValidator.h.

bool TkConvValidator::isRunCentrally_
private

Definition at line 120 of file TkConvValidator.h.

edm::InputTag TkConvValidator::label_tp_
private

Definition at line 116 of file TkConvValidator.h.

double TkConvValidator::lip_
private

Definition at line 126 of file TkConvValidator.h.

uint TkConvValidator::maxHitsBeforeVtx_
private

Definition at line 145 of file TkConvValidator.h.

double TkConvValidator::maxPhoEtaForEffic
private

Definition at line 166 of file TkConvValidator.h.

double TkConvValidator::maxPhoEtaForPurity
private

Definition at line 170 of file TkConvValidator.h.

double TkConvValidator::maxPhoRForEffic
private

Definition at line 168 of file TkConvValidator.h.

double TkConvValidator::maxPhoRForPurity
private

Definition at line 172 of file TkConvValidator.h.

double TkConvValidator::maxPhoZForEffic
private

Definition at line 167 of file TkConvValidator.h.

double TkConvValidator::maxPhoZForPurity
private

Definition at line 171 of file TkConvValidator.h.

double TkConvValidator::mcConvEta_
private

Definition at line 158 of file TkConvValidator.h.

double TkConvValidator::mcConvPhi_
private

Definition at line 157 of file TkConvValidator.h.

double TkConvValidator::mcConvPt_
private

Definition at line 152 of file TkConvValidator.h.

double TkConvValidator::mcConvR_
private

Definition at line 153 of file TkConvValidator.h.

double TkConvValidator::mcConvX_
private

Definition at line 156 of file TkConvValidator.h.

double TkConvValidator::mcConvY_
private

Definition at line 155 of file TkConvValidator.h.

double TkConvValidator::mcConvZ_
private

Definition at line 154 of file TkConvValidator.h.

double TkConvValidator::mcEta_
private

Definition at line 151 of file TkConvValidator.h.

double TkConvValidator::mcJetEta_
private

Definition at line 159 of file TkConvValidator.h.

double TkConvValidator::mcJetPhi_
private

Definition at line 160 of file TkConvValidator.h.

double TkConvValidator::mcPhi_
private

global variable for the MC photon

Definition at line 150 of file TkConvValidator.h.

double TkConvValidator::minLxy_
private

Definition at line 146 of file TkConvValidator.h.

double TkConvValidator::minPhoEtCut_
private

Definition at line 122 of file TkConvValidator.h.

double TkConvValidator::minPhoPtForEffic
private

Definition at line 165 of file TkConvValidator.h.

double TkConvValidator::minPhoPtForPurity
private

Definition at line 169 of file TkConvValidator.h.

double TkConvValidator::minProb_
private

Definition at line 144 of file TkConvValidator.h.

int TkConvValidator::nEntry_
private

Definition at line 81 of file TkConvValidator.h.

int TkConvValidator::nEvt_
private

Definition at line 80 of file TkConvValidator.h.

MonitorElement* TkConvValidator::nHits_[3]
private

Definition at line 327 of file TkConvValidator.h.

MonitorElement* TkConvValidator::nHitsVsEta_[3]
private

Definition at line 329 of file TkConvValidator.h.

MonitorElement* TkConvValidator::nHitsVsR_[3]
private

Definition at line 331 of file TkConvValidator.h.

int TkConvValidator::nInvalidPCA_
private

Definition at line 88 of file TkConvValidator.h.

int TkConvValidator::nMatched_
private

Definition at line 83 of file TkConvValidator.h.

int TkConvValidator::nRecConv_
private

Definition at line 84 of file TkConvValidator.h.

int TkConvValidator::nRecConvAss_
private

Definition at line 85 of file TkConvValidator.h.

int TkConvValidator::nRecConvAssWithEcal_
private

Definition at line 86 of file TkConvValidator.h.

int TkConvValidator::nSimConv_[2]
private

Definition at line 82 of file TkConvValidator.h.

int TkConvValidator::numOfTracksInCone_
private

Definition at line 132 of file TkConvValidator.h.

edm::EDGetTokenT<reco::VertexCollection> TkConvValidator::offline_pvToken_
private

Definition at line 104 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p2_convVtxdRVsRZ_
private

Definition at line 298 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p2_convVtxdZVsRZ_
private

Definition at line 299 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p2_effRZ_
private

Definition at line 349 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_Chi2VsEta_[3]
private

Definition at line 335 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_Chi2VsR_[3]
private

Definition at line 337 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdRVsEta_
private

Definition at line 290 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdRVsR_
private

Definition at line 289 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdXVsX_
private

Definition at line 292 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdYVsY_
private

Definition at line 293 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdZVsR_
private

Definition at line 295 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_convVtxdZVsZ_
private

Definition at line 294 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DCotTracksVsEta_
private

Definition at line 247 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DCotTracksVsR_
private

Definition at line 249 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DPhiTracksAtEcalVsEta_
private

Definition at line 257 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DPhiTracksAtEcalVsR_
private

Definition at line 255 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DPhiTracksAtVtxVsEta_
private

Definition at line 241 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_DPhiTracksAtVtxVsR_
private

Definition at line 243 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_dzPVVsR_
private

Definition at line 311 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_nHitsVsEta_[3]
private

Definition at line 328 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_nHitsVsR_[3]
private

Definition at line 330 of file TkConvValidator.h.

MonitorElement* TkConvValidator::p_TkPtPull_[3]
private

Definition at line 343 of file TkConvValidator.h.

edm::ParameterSet TkConvValidator::parameters_
private
std::string TkConvValidator::photonCollection_
private

Definition at line 101 of file TkConvValidator.h.

edm::EDGetTokenT<reco::PhotonCollection> TkConvValidator::photonCollectionPr_Token_
private

Definition at line 102 of file TkConvValidator.h.

std::string TkConvValidator::photonCollectionProducer_
private

Definition at line 100 of file TkConvValidator.h.

double TkConvValidator::recMaxPt_
private

Definition at line 179 of file TkConvValidator.h.

double TkConvValidator::recMinPt_
private

Global variables for reco Photon.

Definition at line 178 of file TkConvValidator.h.

double TkConvValidator::simMaxPt_
private

Definition at line 175 of file TkConvValidator.h.

double TkConvValidator::simMinPt_
private

Definition at line 174 of file TkConvValidator.h.

edm::ESHandle<CaloGeometry> TkConvValidator::theCaloGeom_
private

Definition at line 91 of file TkConvValidator.h.

edm::ESHandle<CaloTopology> TkConvValidator::theCaloTopo_
private

Definition at line 92 of file TkConvValidator.h.

edm::RefVector<TrackingParticleCollection> TkConvValidator::theConvTP_
private

Definition at line 162 of file TkConvValidator.h.

edm::ESHandle<MagneticField> TkConvValidator::theMF_
private

Definition at line 77 of file TkConvValidator.h.

PhotonMCTruthFinder* TkConvValidator::thePhotonMCTruthFinder_
private

Definition at line 118 of file TkConvValidator.h.

edm::EDGetTokenT<TrackingParticleRefVector> TkConvValidator::tpSelForEff_Token_
private

Definition at line 108 of file TkConvValidator.h.

edm::EDGetTokenT<TrackingParticleRefVector> TkConvValidator::tpSelForFake_Token_
private

Definition at line 109 of file TkConvValidator.h.

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> TkConvValidator::trackAssociator_Token_
private

Definition at line 112 of file TkConvValidator.h.

double TkConvValidator::trkIsolExtRadius_
private

Definition at line 123 of file TkConvValidator.h.

double TkConvValidator::trkIsolInnRadius_
private

Definition at line 124 of file TkConvValidator.h.

double TkConvValidator::trkPtLow_
private

Definition at line 125 of file TkConvValidator.h.

double TkConvValidator::trkPtSumCut_
private

Definition at line 133 of file TkConvValidator.h.

int TkConvValidator::verbosity_
private

Definition at line 79 of file TkConvValidator.h.