#include <TkConvValidator.h>
$Id: TkConvValidator
$Id: TkConvValidator
Definition at line 48 of file TkConvValidator.h.
TkConvValidator::TkConvValidator | ( | const edm::ParameterSet & | pset | ) | [explicit] |
Definition at line 109 of file TkConvValidator.cc.
References edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().
{ fName_ = pset.getUntrackedParameter<std::string>("Name"); verbosity_ = pset.getUntrackedParameter<int>("Verbosity"); parameters_ = pset; photonCollectionProducer_ = pset.getParameter<std::string>("phoProducer"); photonCollection_ = pset.getParameter<std::string>("photonCollection"); conversionCollectionProducer_ = pset.getParameter<std::string>("convProducer"); conversionCollection_ = pset.getParameter<std::string>("conversionCollection"); // conversionTrackProducer_ = pset.getParameter<std::string>("trackProducer"); dqmpath_ = pset.getParameter<std::string>("dqmpath"); minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut"); generalTracksOnly_ = pset.getParameter<bool>("generalTracksOnly"); arbitratedMerged_ = pset.getParameter<bool>("arbitratedMerged"); arbitratedEcalSeeded_ = pset.getParameter<bool>("arbitratedEcalSeeded"); ecalalgotracks_ = pset.getParameter<bool>("ecalalgotracks"); highPurity_ = pset.getParameter<bool>("highPurity"); minProb_ = pset.getParameter<double>("minProb"); maxHitsBeforeVtx_ = pset.getParameter<uint>("maxHitsBeforeVtx"); minLxy_ = pset.getParameter<double>("minLxy"); isRunCentrally_= pset.getParameter<bool>("isRunCentrally"); }
TkConvValidator::~TkConvValidator | ( | ) | [virtual] |
Definition at line 139 of file TkConvValidator.cc.
{}
void TkConvValidator::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | esup | ||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 791 of file TkConvValidator.cc.
References abs, reco::Conversion::arbitratedEcalSeeded, reco::Conversion::arbitratedMerged, DeDxDiscriminatorTools::charge(), reco::Vertex::chi2(), ChiSquaredProbability(), conv, reco::Conversion::conversionVertex(), debug_cff::d0, Geom::deltaPhi(), reco::Conversion::distOfMinimumApproach(), reco::Conversion::dlClosestHitToVtx(), reco::Conversion::dPhiTracksAtVtx(), edm::AssociationMap< Tag >::end(), event(), HcalObjRepresent::Fill(), edm::AssociationMap< Tag >::find(), reco::Conversion::generalTracksOnly, edm::RefToBase< T >::get(), edm::EventSetup::get(), edm::Event::getByLabel(), reco::Conversion::highPurity, i, edm::EventBase::id(), reco::Vertex::isValid(), edm::Ref< C, T, F >::key(), match(), max(), reco::Vertex::ndof(), reco::Conversion::nHitsBeforeVtx(), reco::Conversion::nSharedHits(), p1, p2, reco::Conversion::pairCotThetaSeparation(), reco::Conversion::pairInvariantMass(), benchmark_cfg::pdgId, reco::Vertex::position(), 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(), patCandidatesForDimuonsSequences_cff::tracker, reco::Conversion::tracks(), testEve_cfg::tracks, GoodVertex_cfg::vertexCollection, reco::Vertex::x(), reco::Vertex::y(), and reco::Conversion::zOfPrimaryVertexFromTracks().
{ using namespace edm; // const float etaPhiDistance=0.01; // Fiducial region // const float TRK_BARL =0.9; const float BARL = 1.4442; // DAQ TDR p.290 // const float END_LO = 1.566; // unused const float END_HI = 2.5; // Electron mass // const Float_t mElec= 0.000511; // unused nEvt_++; LogInfo("TkConvValidator") << "TkConvValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; // std::cout << "TkConvValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; // get the geometry from the event setup: esup.get<CaloGeometryRecord>().get(theCaloGeom_); // Transform Track into TransientTrack (needed by the Vertex fitter) edm::ESHandle<TransientTrackBuilder> theTTB; esup.get<TransientTrackRecord>().get("TransientTrackBuilder",theTTB); Handle<reco::ConversionCollection> convHandle; e.getByLabel(conversionCollectionProducer_, conversionCollection_ , convHandle); const reco::ConversionCollection convCollection = *(convHandle.product()); if (!convHandle.isValid()) { edm::LogError("ConversionsProducer") << "Error! Can't get the collection "<< std::endl; return; } Handle<reco::PhotonCollection> photonHandle; e.getByLabel(photonCollectionProducer_, photonCollection_ , photonHandle); const reco::PhotonCollection photonCollection = *(photonHandle.product()); if (!photonHandle.isValid()) { edm::LogError("PhotonProducer") << "Error! Can't get the Photon collection "<< std::endl; return; } // offline Primary vertex edm::Handle<reco::VertexCollection> vertexHandle; reco::VertexCollection vertexCollection; e.getByLabel("offlinePrimaryVertices", vertexHandle); if (!vertexHandle.isValid()) { edm::LogError("TrackerOnlyConversionProducer") << "Error! Can't get the product primary Vertex Collection "<< "\n"; } else { vertexCollection = *(vertexHandle.product()); } reco::Vertex the_pvtx; bool valid_pvtx = false; if (!vertexCollection.empty()){ the_pvtx = *(vertexCollection.begin()); //asking for one good vertex if (the_pvtx.isValid() && fabs(the_pvtx.position().z())<=15 && the_pvtx.position().Rho()<=2){ valid_pvtx = true; } } edm::Handle<reco::BeamSpot> bsHandle; e.getByLabel("offlineBeamSpot", bsHandle); if (!bsHandle.isValid()) { edm::LogError("TrackerOnlyConversionProducer") << "Error! Can't get the product primary Vertex Collection "<< "\n"; return; } const reco::BeamSpot &thebs = *bsHandle.product(); //get tracker geometry for hits positions edm::ESHandle<TrackerGeometry> tracker; esup.get<TrackerDigiGeometryRecord>().get(tracker); const TrackerGeometry* trackerGeom = tracker.product(); //get simtrack info std::vector<SimTrack> theSimTracks; std::vector<SimVertex> theSimVertices; edm::Handle<SimTrackContainer> SimTk; edm::Handle<SimVertexContainer> SimVtx; e.getByLabel("g4SimHits",SimTk); e.getByLabel("g4SimHits",SimVtx); bool useTP= parameters_.getParameter<bool>("useTP"); TrackingParticleCollection tpForEfficiency; TrackingParticleCollection tpForFakeRate; edm::Handle<TrackingParticleCollection> TPHandleForEff; edm::Handle<TrackingParticleCollection> TPHandleForFakeRate; if ( useTP) { e.getByLabel("tpSelecForEfficiency",TPHandleForEff); tpForEfficiency = *(TPHandleForEff.product()); e.getByLabel("tpSelecForFakeRate",TPHandleForFakeRate); tpForFakeRate = *(TPHandleForFakeRate.product()); } theSimTracks.insert(theSimTracks.end(),SimTk->begin(),SimTk->end()); theSimVertices.insert(theSimVertices.end(),SimVtx->begin(),SimVtx->end()); std::vector<PhotonMCTruth> mcPhotons=thePhotonMCTruthFinder_->find (theSimTracks, theSimVertices); edm::Handle<edm::HepMCProduct> hepMC; e.getByLabel("generator",hepMC); // const HepMC::GenEvent *myGenEvent = hepMC->GetEvent(); // unused // get generated jets edm::Handle<reco::GenJetCollection> GenJetsHandle ; e.getByLabel("iterativeCone5GenJets","",GenJetsHandle); reco::GenJetCollection genJetCollection = *(GenJetsHandle.product()); ConversionHitChecker hitChecker; // ################ SIM to RECO ######################### // std::map<const reco::Track*,TrackingParticleRef> myAss; std::map<const reco::Track*,TrackingParticleRef>::const_iterator itAss; for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) { mcConvPt_= (*mcPho).fourMomentum().et(); float mcPhi= (*mcPho).fourMomentum().phi(); mcPhi_= phiNormalization(mcPhi); mcEta_= (*mcPho).fourMomentum().pseudoRapidity(); mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() ); mcConvR_= (*mcPho).vertex().perp(); mcConvX_= (*mcPho).vertex().x(); mcConvY_= (*mcPho).vertex().y(); mcConvZ_= (*mcPho).vertex().z(); mcConvEta_= (*mcPho).vertex().eta(); mcConvPhi_= (*mcPho).vertex().phi(); if ( fabs(mcEta_) > END_HI ) continue; if (mcConvPt_<minPhoPtForEffic) continue; if (fabs(mcEta_)>maxPhoEtaForEffic) continue; if (fabs(mcConvZ_)>maxPhoZForEffic) continue; if (mcConvR_>maxPhoRForEffic) continue; bool goodSimConversion=false; bool visibleConversion=false; bool visibleConversionsWithTwoSimTracks=false; if ( (*mcPho).isAConversion() == 1 ) { nSimConv_[0]++; h_AllSimConv_[0]->Fill( mcEta_ ) ; h_AllSimConv_[1]->Fill( mcPhi_ ); h_AllSimConv_[2]->Fill( mcConvR_ ); h_AllSimConv_[3]->Fill( mcConvZ_ ); h_AllSimConv_[4]->Fill( (*mcPho).fourMomentum().et()); if ( mcConvR_ <15) h_SimConvEtaPix_[0]->Fill( mcEta_ ) ; if ( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) || ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) visibleConversion=true; theConvTP_.clear(); // std::cout << " TkConvValidator TrackingParticles TrackingParticleCollection size "<< trackingParticles.size() << "\n"; //duplicated TP collections for two associations for(size_t i = 0; i < tpForEfficiency.size(); ++i){ TrackingParticleRef tp (TPHandleForEff,i); if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 && fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 && fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) { theConvTP_.push_back( tp ); } } //std::cout << " TkConvValidator theConvTP_ size " << theConvTP_.size() << std::endl; if ( theConvTP_.size() == 2 ) visibleConversionsWithTwoSimTracks=true; goodSimConversion=false; if ( visibleConversion && visibleConversionsWithTwoSimTracks ) goodSimConversion=true; if ( goodSimConversion ) { nSimConv_[1]++; h_VisSimConv_[0]->Fill( mcEta_ ) ; h_VisSimConv_[1]->Fill( mcPhi_ ); h_VisSimConv_[2]->Fill( mcConvR_ ); h_VisSimConv_[3]->Fill( mcConvZ_ ); h_VisSimConv_[4]->Fill( (*mcPho).fourMomentum().et()); } for ( edm::RefVector<TrackingParticleCollection>::iterator iTrk=theConvTP_.begin(); iTrk!=theConvTP_.end(); ++iTrk) { h_simTkPt_ -> Fill ( (*iTrk)->pt() ); h_simTkEta_ -> Fill ( (*iTrk)->eta() ); } } if ( ! (visibleConversion && visibleConversionsWithTwoSimTracks ) ) continue; h_simConvVtxRvsZ_[0] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ; if ( fabs(mcEta_) <=1.) { h_simConvVtxRvsZ_[1] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ; h_simConvVtxYvsX_ ->Fill ( mcConvX_, mcConvY_ ) ; } else h_simConvVtxRvsZ_[2] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ; //std::cout << " TkConvValidator theConvTP_ size " << theConvTP_.size() << std::endl; for ( edm::RefVector<TrackingParticleCollection>::iterator iTP= theConvTP_.begin(); iTP!=theConvTP_.end(); iTP++) { // std::cout << " SIM to RECO TP vertex " << (*iTP)->vx() << " " << (*iTP)->vy() << " " << (*iTP)->vz() << " pt " << (*iTP)->pt() << std::endl; } bool recomatch = false; float chi2Prob = 0.; // cout << " size of conversions " << convHandle->size() << endl; for (reco::ConversionCollection::const_iterator conv = convHandle->begin();conv!=convHandle->end();++conv) { const reco::Conversion aConv = (*conv); if ( arbitratedMerged_ && !aConv.quality(reco::Conversion::arbitratedMerged) ) continue; if ( generalTracksOnly_ && !aConv.quality(reco::Conversion::generalTracksOnly) ) continue; if ( arbitratedEcalSeeded_ && !aConv.quality(reco::Conversion::arbitratedEcalSeeded) ) continue; if ( highPurity_ && !aConv.quality(reco::Conversion::highPurity) ) continue; //problematic? std::vector<edm::RefToBase<reco::Track> > tracks = aConv.tracks(); const reco::Vertex& vtx = aConv.conversionVertex(); //requires two tracks and a valid vertex if (tracks.size() !=2 || !(vtx.isValid())) continue; if (ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ) <= minProb_) continue; if (aConv.nHitsBeforeVtx().size()>1 && max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) > maxHitsBeforeVtx_ ) continue; //compute transverse decay length with respect to beamspot math::XYZVectorF themom = aConv.refittedPairMomentum(); double dbsx = aConv.conversionVertex().x() - thebs.x0(); double dbsy = aConv.conversionVertex().y() - thebs.y0(); double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho(); if (lxy<minLxy_) continue; // bool phoIsInBarrel=false; // unused // bool phoIsInEndcap=false; // unused RefToBase<reco::Track> tfrb1 = aConv.tracks().front(); RefToBase<reco::Track> tfrb2 = aConv.tracks().back(); if ( ecalalgotracks_ && ( !(tfrb1->algo()==15 || tfrb1->algo()==16) || !(tfrb2->algo()==15 || tfrb2->algo()==16) ) ) continue; //reco::TrackRef tk1 = aConv.tracks().front(); //reco::TrackRef tk2 = aConv.tracks().back(); //std::cout << "SIM to RECO conversion track pt " << tk1->pt() << " " << tk2->pt() << endl; // //Use two RefToBaseVector and do two association actions to avoid that if two tracks from different collection RefToBaseVector<reco::Track> tc1, tc2; tc1.push_back(tfrb1); tc2.push_back(tfrb2); bool isAssociated = false; reco::SimToRecoCollection q1 = theTrackAssociator_->associateSimToReco(tc1,theConvTP_,&e); reco::SimToRecoCollection q2 = theTrackAssociator_->associateSimToReco(tc2,theConvTP_,&e); //try { std::vector<std::pair<RefToBase<reco::Track>, double> > trackV1, trackV2; int tp_1 = 0, tp_2 = 1;//the index of associated tp in theConvTP_ for two tracks if (q1.find(theConvTP_[0])!=q1.end()){ trackV1 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q1[theConvTP_[0]]; } else if (q1.find(theConvTP_[1])!=q1.end()){ trackV1 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q1[theConvTP_[1]]; tp_1 = 1; } if (q2.find(theConvTP_[1])!=q2.end()){ trackV2 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q2[theConvTP_[1]]; } else if (q2.find(theConvTP_[0])!=q2.end()){ trackV2 = (std::vector<std::pair<RefToBase<reco::Track>, double> >) q2[theConvTP_[0]]; tp_2 = 0; } if (!(trackV1.size()&&trackV2.size())) continue; if (tp_1 == tp_2) continue; edm::RefToBase<reco::Track> tr1 = trackV1.front().first; edm::RefToBase<reco::Track> tr2 = trackV2.front().first; //std::cout << "associated tp1 " <<theConvTP_[0]->pt() << " to track with pT=" << tr1->pt() << " " << (tr1.get())->pt() << endl; //std::cout << "associated tp2 " <<theConvTP_[1]->pt() << " to track with pT=" << tr2->pt() << " " << (tr2.get())->pt() << endl; myAss.insert( std::make_pair (tr1.get(),theConvTP_[tp_1] ) ); myAss.insert( std::make_pair (tr2.get(),theConvTP_[tp_2]) ); //} catch (Exception event) { //cout << "continue: " << event.what() << endl; // continue; //} isAssociated = true; recomatch = true; chi2Prob = ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ); if (isAssociated) { h_SimRecConvTwoMTracks_[0]->Fill( mcEta_ ) ; h_SimRecConvTwoMTracks_[1]->Fill( mcPhi_ ); h_SimRecConvTwoMTracks_[2]->Fill( mcConvR_ ); h_SimRecConvTwoMTracks_[3]->Fill( mcConvZ_ ); h_SimRecConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et()); } // break; } // loop over reco conversions if (recomatch) { h_SimConvTwoMTracks_[0]->Fill( mcEta_ ) ; h_SimConvTwoMTracks_[1]->Fill( mcPhi_ ); h_SimConvTwoMTracks_[2]->Fill( mcConvR_ ); h_SimConvTwoMTracks_[3]->Fill( mcConvZ_ ); h_SimConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et()); if ( chi2Prob > 0) { h_SimConvTwoMTracksAndVtxPGT0_[0]->Fill( mcEta_ ) ; h_SimConvTwoMTracksAndVtxPGT0_[1]->Fill( mcPhi_ ); h_SimConvTwoMTracksAndVtxPGT0_[2]->Fill( mcConvR_ ); h_SimConvTwoMTracksAndVtxPGT0_[3]->Fill( mcConvZ_ ); h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill( (*mcPho).fourMomentum().et()); } if ( chi2Prob > 0.0005) { h_SimConvTwoMTracksAndVtxPGT0005_[0]->Fill( mcEta_ ) ; h_SimConvTwoMTracksAndVtxPGT0005_[1]->Fill( mcPhi_ ); h_SimConvTwoMTracksAndVtxPGT0005_[2]->Fill( mcConvR_ ); h_SimConvTwoMTracksAndVtxPGT0005_[3]->Fill( mcConvZ_ ); h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill( (*mcPho).fourMomentum().et()); } } } //End loop over simulated conversions // ########################### RECO to SIM ############################## // for (reco::ConversionCollection::const_iterator conv = convHandle->begin();conv!=convHandle->end();++conv) { const reco::Conversion aConv = (*conv); if ( arbitratedMerged_ && !aConv.quality(reco::Conversion::arbitratedMerged) ) continue; if ( generalTracksOnly_ && !aConv.quality(reco::Conversion::generalTracksOnly) ) continue; if ( arbitratedEcalSeeded_ && !aConv.quality(reco::Conversion::arbitratedEcalSeeded) ) continue; if ( highPurity_ && !aConv.quality(reco::Conversion::highPurity) ) continue; //problematic? std::vector<edm::RefToBase<reco::Track> > tracks = aConv.tracks(); const reco::Vertex& vtx = aConv.conversionVertex(); //requires two tracks and a valid vertex if (tracks.size() !=2 || !(vtx.isValid())) continue; //if (tracks.size() !=2) continue; if (ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ) <= minProb_) continue; if (aConv.nHitsBeforeVtx().size()>1 && max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) > maxHitsBeforeVtx_ ) continue; //compute transverse decay length with respect to beamspot math::XYZVectorF themom = aConv.refittedPairMomentum(); double dbsx = aConv.conversionVertex().x() - thebs.x0(); double dbsy = aConv.conversionVertex().y() - thebs.y0(); double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho(); if (lxy<minLxy_) continue; bool phoIsInBarrel=false; bool phoIsInEndcap=false; RefToBase<reco::Track> tk1 = aConv.tracks().front(); RefToBase<reco::Track> tk2 = aConv.tracks().back(); RefToBaseVector<reco::Track> tc1, tc2; tc1.push_back(tk1); tc2.push_back(tk2); if ( ecalalgotracks_ && ( !(tk1->algo()==15 || tk1->algo()==16) || !(tk2->algo()==15 || tk2->algo()==16) ) ) continue; //std::cout << " RECO to SIM conversion track pt " << tk1->pt() << " " << tk2->pt() << endl; const reco::Track refTk1 = aConv.conversionVertex().refittedTracks().front(); const reco::Track refTk2 = aConv.conversionVertex().refittedTracks().back(); //TODO replace it with phi at vertex float dPhiTracksAtVtx = aConv.dPhiTracksAtVtx(); // override with the phi calculated at the vertex math::XYZVector p1AtVtx= recalculateMomentumAtFittedVertex ( (*theMF_), *trackerGeom, tk1, aConv.conversionVertex() ); math::XYZVector p2AtVtx= recalculateMomentumAtFittedVertex ( (*theMF_), *trackerGeom, tk2, aConv.conversionVertex() ); if ( sqrt(p1AtVtx.perp2()) > sqrt(p2AtVtx.perp2()) ) dPhiTracksAtVtx = p1AtVtx.phi() - p2AtVtx.phi(); else dPhiTracksAtVtx = p2AtVtx.phi() - p1AtVtx.phi(); math::XYZVector convMom = tk1->momentum() + tk2->momentum(); math::XYZVectorF refittedMom = aConv.refittedPairMomentum(); if (fabs(refittedMom.eta())< 1.479 ) { phoIsInBarrel=true; } else { phoIsInEndcap=true; } nRecConv_++; // check matching with reco photon double Mindeltaeta = 999999; double Mindeltaphi = 999999; bool matchConvSC=false; reco::PhotonCollection::const_iterator iMatchingSC; for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) { reco::Photon aPho = reco::Photon(*iPho); const double deltaphi= reco::deltaPhi( aConv.refittedPairMomentum().phi(), aPho.superCluster()->position().phi()); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); double deltaeta = abs( aPho.superCluster()->position().eta() -ConvEta); if (abs(deltaeta)<abs(Mindeltaeta) && abs(deltaphi)<abs(Mindeltaphi)) { Mindeltaphi=abs(deltaphi); Mindeltaeta=abs(deltaeta); iMatchingSC = iPho ; } } if (abs(Mindeltaeta)<0.1 && abs(Mindeltaphi)<0.1) { matchConvSC=true; } int match =0; float invM=aConv.pairInvariantMass(); float chi2Prob = ChiSquaredProbability( aConv.conversionVertex().chi2(), aConv.conversionVertex().ndof() ); uint maxNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? max(aConv.nHitsBeforeVtx().at(0),aConv.nHitsBeforeVtx().at(1)) : 0; uint sumNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(0) + aConv.nHitsBeforeVtx().at(1) : 0; float maxDlClosestHitToVtx = aConv.dlClosestHitToVtx().size()>1 ? max(aConv.dlClosestHitToVtx().at(0).value(),aConv.dlClosestHitToVtx().at(1).value()) : 0; 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; int ilead = 0, itrail = 1; if (tk2->pt() > tk1->pt()) { ilead = 1; itrail = 0; } RefToBase<reco::Track> tklead = aConv.tracks().at(ilead); RefToBase<reco::Track> tktrail = aConv.tracks().at(itrail); int deltaExpectedHitsInner = tklead->trackerExpectedHitsInner().numberOfHits() - tktrail->trackerExpectedHitsInner().numberOfHits(); int leadExpectedHitsInner = tklead->trackerExpectedHitsInner().numberOfHits(); uint leadNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(ilead) : 0; uint trailNHitsBeforeVtx = aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(itrail) : 0; h_convEta_[match][0]->Fill( refittedMom.eta() ); h_convEta2_[match][0]->Fill( refittedMom.eta() ); h_convPhi_[match][0]->Fill( refittedMom.phi() ); h_convR_[match][0]->Fill( sqrt(aConv.conversionVertex().position().perp2()) ); h_convRplot_->Fill( sqrt(aConv.conversionVertex().position().perp2()) ); h_convZ_[match][0]->Fill( aConv.conversionVertex().position().z() ); h_convZplot_->Fill( aConv.conversionVertex().position().z() ); h_convPt_[match][0]->Fill( sqrt(refittedMom.perp2()) ); h_invMass_[match][0] ->Fill( invM); h_vtxChi2Prob_[match][0] ->Fill (chi2Prob); h_lxybs_[match][0] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][0] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][0] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][0] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][0] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][0] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][0] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][0] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][0] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][0] ->Fill (aConv.nSharedHits()); if ( matchConvSC ) { h_convEtaMatchSC_[match][0]->Fill( refittedMom.eta() ); h_EoverPTracks_[match][0] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } h_distMinAppTracks_[match][0] ->Fill (aConv.distOfMinimumApproach()); h_DPhiTracksAtVtx_[match][0]->Fill( dPhiTracksAtVtx); h2_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx); h2_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx); p_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx); p_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx); h_DCotTracks_[match][0] ->Fill ( aConv.pairCotThetaSeparation() ); h2_DCotTracksVsEta_->Fill( mcEta_, aConv.pairCotThetaSeparation() ); h2_DCotTracksVsR_->Fill( mcConvR_, aConv.pairCotThetaSeparation() ); p_DCotTracksVsEta_->Fill( mcEta_, aConv.pairCotThetaSeparation() ); p_DCotTracksVsR_->Fill( mcConvR_, aConv.pairCotThetaSeparation() ); if ( phoIsInBarrel ) { h_invMass_[match][1] ->Fill(invM); h_vtxChi2Prob_[match][1] ->Fill (chi2Prob); h_distMinAppTracks_[match][1] ->Fill (aConv.distOfMinimumApproach()); h_DPhiTracksAtVtx_[match][1]->Fill( dPhiTracksAtVtx); h_DCotTracks_[match][1] ->Fill ( aConv.pairCotThetaSeparation() ); h_lxybs_[match][1] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][1] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][1] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][1] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][1] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][1] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][1] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][1] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][1] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][1] ->Fill (aConv.nSharedHits()); /* if ( aConv.caloCluster().size() ) { h_convSCdPhi_[match][1]->Fill( aConv.caloCluster()[0]->phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][1]->Fill( aConv.caloCluster()[0]->eta() - ConvEta ); } */ if ( matchConvSC ) { h_EoverPTracks_[match][1] -> Fill(iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } } if ( phoIsInEndcap ) { h_invMass_[match][2] ->Fill(invM); h_vtxChi2Prob_[match][2] ->Fill (chi2Prob); h_distMinAppTracks_[match][2] ->Fill (aConv.distOfMinimumApproach()); h_DPhiTracksAtVtx_[match][2]->Fill( dPhiTracksAtVtx); h_DCotTracks_[match][2] ->Fill ( aConv.pairCotThetaSeparation() ); h_lxybs_[match][2] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][2] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][2] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][2] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][2] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][2] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][2] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][2] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][2] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][2] ->Fill (aConv.nSharedHits()); if ( matchConvSC ) { h_EoverPTracks_[match][2] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } } h_convVtxRvsZ_[0] ->Fill ( fabs (aConv.conversionVertex().position().z() ), sqrt(aConv.conversionVertex().position().perp2()) ) ; h_convVtxYvsX_ ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() ); h_convVtxYvsX_zoom_[0] ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() ); h_convVtxYvsX_zoom_[1] ->Fill ( aConv.conversionVertex().position().x(), aConv.conversionVertex().position().y() ); // quantities per track: all conversions for (unsigned int i=0; i<tracks.size(); i++) { double d0; if (valid_pvtx){ d0 = - tracks[i]->dxy(the_pvtx.position()); } else { d0 = tracks[i]->d0(); } h_TkD0_[match]->Fill ( d0* tracks[i]->charge() ); h_nHitsBeforeVtx_[match]->Fill ( aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(i) : 0 ); h_dlClosestHitToVtx_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value() : 0 ); h_dlClosestHitToVtxSig_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value()/aConv.dlClosestHitToVtx().at(i).error() : 0 ); nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) ); nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) ); p_nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) -0.0001); p_nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) -0.0001); h_tkChi2_[match] ->Fill (tracks[i]->normalizedChi2() ); h_tkChi2Large_[match] ->Fill (tracks[i]->normalizedChi2() ); h2_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() ); h2_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() ); p_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() ); p_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() ); } bool associated = false; float mcConvPt_= -99999999; // float mcPhi= 0; // unused float simPV_Z=0; for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) { mcConvPt_= (*mcPho).fourMomentum().et(); float mcPhi= (*mcPho).fourMomentum().phi(); simPV_Z = (*mcPho).primaryVertex().z(); mcPhi_= phiNormalization(mcPhi); mcEta_= (*mcPho).fourMomentum().pseudoRapidity(); mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() ); mcConvR_= (*mcPho).vertex().perp(); mcConvX_= (*mcPho).vertex().x(); mcConvY_= (*mcPho).vertex().y(); mcConvZ_= (*mcPho).vertex().z(); mcConvEta_= (*mcPho).vertex().eta(); mcConvPhi_= (*mcPho).vertex().phi(); if ( fabs(mcEta_) > END_HI ) continue; if (mcConvPt_<minPhoPtForPurity) continue; if (fabs(mcEta_)>maxPhoEtaForPurity) continue; if (fabs(mcConvZ_)>maxPhoZForPurity) continue; if (mcConvR_>maxPhoRForEffic) continue; if ( (*mcPho).isAConversion() != 1 ) continue; if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) || ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) ) continue; theConvTP_.clear(); for(size_t i = 0; i < tpForFakeRate.size(); ++i){ TrackingParticleRef tp (TPHandleForFakeRate,i); if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 && fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 && fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) { theConvTP_.push_back( tp ); } } if ( theConvTP_.size() < 2 ) continue; //associated = false; reco::RecoToSimCollection p1 = theTrackAssociator_->associateRecoToSim(tc1,theConvTP_,&e); reco::RecoToSimCollection p2 = theTrackAssociator_->associateRecoToSim(tc2,theConvTP_,&e); try{ std::vector<std::pair<TrackingParticleRef, double> > tp1 = p1[tk1]; std::vector<std::pair<TrackingParticleRef, double> > tp2 = p2[tk2]; if (!(tp1.size()&&tp2.size())){ tp1 = p1[tk2]; tp2 = p2[tk1]; } if (tp1.size()&&tp2.size()) { TrackingParticleRef tpr1 = tp1.front().first; TrackingParticleRef tpr2 = tp2.front().first; if (abs(tpr1->pdgId())==11&&abs(tpr2->pdgId())==11&& tpr1->pdgId()*tpr2->pdgId()<0) { if ( (tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()==1) && (tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()==1)) { if (tpr1->parentVertex().key()==tpr2->parentVertex().key() && ((*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22)) { mcConvR_ = sqrt(tpr1->parentVertex()->position().Perp2()); mcConvZ_ = tpr1->parentVertex()->position().z(); mcConvX_ = tpr1->parentVertex()->position().x(); mcConvY_ = tpr1->parentVertex()->position().y(); mcConvEta_ = tpr1->parentVertex()->position().eta(); mcConvPhi_ = tpr1->parentVertex()->position().phi(); mcConvPt_ = sqrt((*tpr1->parentVertex()->sourceTracks_begin())->momentum().Perp2()); //std::cout << " Reco to Sim mcconvpt " << mcConvPt_ << std::endl; //cout << "associated track1 to " << tpr1->pdgId() << " with p=" << tpr1->p4() << " with pT=" << tpr1->pt() << endl; //cout << "associated track2 to " << tpr2->pdgId() << " with p=" << tpr2->p4() << " with pT=" << tpr2->pt() << endl; associated = true; break; } } } } } catch (Exception event) { //cout << "do not continue: " << event.what() << endl; //continue; } }// end loop on sim photons if (0) { theConvTP_.clear(); for(size_t i = 0; i < tpForFakeRate.size(); ++i){ TrackingParticleRef tp (TPHandleForFakeRate,i); theConvTP_.push_back( tp ); } reco::RecoToSimCollection p1incl = theTrackAssociator_->associateRecoToSim(tc1,theConvTP_,&e); reco::RecoToSimCollection p2incl = theTrackAssociator_->associateRecoToSim(tc2,theConvTP_,&e); for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) { mcConvPt_= (*mcPho).fourMomentum().et(); float mcPhi= (*mcPho).fourMomentum().phi(); simPV_Z = (*mcPho).primaryVertex().z(); mcPhi_= phiNormalization(mcPhi); mcEta_= (*mcPho).fourMomentum().pseudoRapidity(); mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() ); mcConvR_= (*mcPho).vertex().perp(); mcConvX_= (*mcPho).vertex().x(); mcConvY_= (*mcPho).vertex().y(); mcConvZ_= (*mcPho).vertex().z(); mcConvEta_= (*mcPho).vertex().eta(); mcConvPhi_= (*mcPho).vertex().phi(); if ( fabs(mcEta_) > END_HI ) continue; if (mcConvPt_<minPhoPtForPurity) continue; if (fabs(mcEta_)>maxPhoEtaForPurity) continue; if (fabs(mcConvZ_)>maxPhoZForPurity) continue; if (mcConvR_>maxPhoRForEffic) continue; if ( (*mcPho).isAConversion() != 1 ) continue; if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) || ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) ) continue; theConvTP_.clear(); for(size_t i = 0; i < tpForFakeRate.size(); ++i){ TrackingParticleRef tp (TPHandleForFakeRate,i); if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 && fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 && fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) { theConvTP_.push_back( tp ); } } if ( theConvTP_.size() < 2 ) continue; //associated = false; reco::RecoToSimCollection p1 = theTrackAssociator_->associateRecoToSim(tc1,theConvTP_,&e); reco::RecoToSimCollection p2 = theTrackAssociator_->associateRecoToSim(tc2,theConvTP_,&e); if ( (p1incl.size() && p2incl.size()) && (p1.size() || p2.size()) ) { // associated = true; try{ std::vector<std::pair<TrackingParticleRef, double> > tp1 = p1incl[tk1]; std::vector<std::pair<TrackingParticleRef, double> > tp2 = p2incl[tk2]; if (!(tp1.size()&&tp2.size())){ tp1 = p1[tk2]; tp2 = p2[tk1]; } if (tp1.size()&&tp2.size()) { TrackingParticleRef tpr1 = tp1.front().first; TrackingParticleRef tpr2 = tp2.front().first; if (abs(tpr1->pdgId())==11&&abs(tpr2->pdgId())==11 && tpr1->pdgId()*tpr2->pdgId()<0) { if ( ((tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()>=1) && (*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22) && ((tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()>=1) && (*tpr2->parentVertex()->sourceTracks_begin())->pdgId()==22) ) { // if ( fabs(tpr1->vx() - tpr2->vx()) < 0.1 && fabs(tpr1->vy() - tpr2->vy()) < 0.1 && fabs(tpr1->vz() - tpr2->vz()) < 0.1) { //if (((*tpr1->parentVertex()->sourceTracks_begin())->pdgId()==22) || ((*tpr2->parentVertex()->sourceTracks_begin())->pdgId()==22)) { // mcConvR_ = sqrt(tpr1->parentVertex()->position().Perp2()); // mcConvZ_ = tpr1->parentVertex()->position().z(); // mcConvX_ = tpr1->parentVertex()->position().x(); // mcConvY_ = tpr1->parentVertex()->position().y(); // mcConvEta_ = tpr1->parentVertex()->position().eta(); // mcConvPhi_ = tpr1->parentVertex()->position().phi(); // mcConvPt_ = sqrt((*tpr1->parentVertex()->sourceTracks_begin())->momentum().Perp2()); //std::cout << " Reco to Sim mcconvpt " << mcConvPt_ << std::endl; //cout << "associated track1 to " << tpr1->pdgId() << " with p=" << tpr1->p4() << " with pT=" << tpr1->pt() << endl; //cout << "associated track2 to " << tpr2->pdgId() << " with p=" << tpr2->p4() << " with pT=" << tpr2->pt() << endl; associated = true; break; //} //} } } } } catch (Exception event) { //cout << "do not continue: " << event.what() << endl; //continue; } } } } if ( associated ) match=1; else match=2; h_match_->Fill(float(match)); if ( match == 1) nRecConvAss_++; h_convEta_[match][0]->Fill( refittedMom.eta() ); h_convEta_[match][1]->Fill( refittedMom.eta() ); if (matchConvSC) h_convEtaMatchSC_[match][0]->Fill( refittedMom.eta() ); h_convPhi_[match][0]->Fill( refittedMom.phi() ); h_convR_[match][0]->Fill( sqrt(aConv.conversionVertex().position().perp2()) ); h_convZ_[match][0]->Fill( aConv.conversionVertex().position().z() ); h_convPt_[match][0]->Fill( sqrt(refittedMom.perp2()) ); h_invMass_[match][0] ->Fill( invM); h_vtxChi2Prob_[match][0] ->Fill (chi2Prob); h_DPhiTracksAtVtx_[match][0]->Fill( dPhiTracksAtVtx); h_DCotTracks_[match][0] ->Fill ( aConv.pairCotThetaSeparation() ); h_distMinAppTracks_[match][0] ->Fill (aConv.distOfMinimumApproach()); h_lxybs_[match][0] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][0] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][0] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][0] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][0] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][0] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][0] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][0] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][0] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][0] ->Fill (aConv.nSharedHits()); if ( matchConvSC ) { //h_EoverPTracks_[match][0] ->Fill (aConv.EoverPrefittedTracks()); h_EoverPTracks_[match][0] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } if ( match==1) { h2_photonPtRecVsPtSim_->Fill ( mcConvPt_, sqrt(refittedMom.perp2()) ); h_convPtRes_[0]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_); } if ( phoIsInBarrel ) { h_invMass_[match][1] ->Fill(invM); h_vtxChi2Prob_[match][1] ->Fill (chi2Prob); h_DPhiTracksAtVtx_[match][1]->Fill( dPhiTracksAtVtx); h_DCotTracks_[match][1] ->Fill ( aConv.pairCotThetaSeparation() ); h_distMinAppTracks_[match][1] ->Fill (aConv.distOfMinimumApproach()); h_lxybs_[match][1] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][1] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][1] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][1] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][1] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][1] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][1] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][1] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][1] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][1] ->Fill (aConv.nSharedHits()); if ( matchConvSC ) { // h_EoverPTracks_[match][1] ->Fill (aConv.EoverPrefittedTracks()); h_EoverPTracks_[match][1] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } if ( match==1) h_convPtRes_[1]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_); } if ( phoIsInEndcap ) { h_invMass_[match][2] ->Fill(invM); h_vtxChi2Prob_[match][2] ->Fill (chi2Prob); h_DPhiTracksAtVtx_[match][2]->Fill( dPhiTracksAtVtx); h_DCotTracks_[match][2] ->Fill ( aConv.pairCotThetaSeparation() ); h_distMinAppTracks_[match][2] ->Fill (aConv.distOfMinimumApproach()); h_lxybs_[match][2] ->Fill (lxy); h_maxNHitsBeforeVtx_[match][2] ->Fill (maxNHitsBeforeVtx); h_leadNHitsBeforeVtx_[match][2] ->Fill (leadNHitsBeforeVtx); h_trailNHitsBeforeVtx_[match][2] ->Fill (trailNHitsBeforeVtx); h_sumNHitsBeforeVtx_[match][2] ->Fill (sumNHitsBeforeVtx); h_deltaExpectedHitsInner_[match][2] ->Fill (deltaExpectedHitsInner); h_leadExpectedHitsInner_[match][2] ->Fill (leadExpectedHitsInner); h_maxDlClosestHitToVtx_[match][2] ->Fill (maxDlClosestHitToVtx); h_maxDlClosestHitToVtxSig_[match][2] ->Fill (maxDlClosestHitToVtxSig); h_nSharedHits_[match][2] ->Fill (aConv.nSharedHits()); if ( matchConvSC ) { // h_EoverPTracks_[match][2] ->Fill (aConv.EoverPrefittedTracks()); h_EoverPTracks_[match][2] ->Fill (iMatchingSC->superCluster()->energy()/sqrt(refittedMom.mag2())); h_convSCdPhi_[match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() ); double ConvEta = etaTransformation(aConv.refittedPairMomentum().eta(),aConv.zOfPrimaryVertexFromTracks()); h_convSCdEta_[match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta ); } if ( match==1) h_convPtRes_[2]->Fill ( sqrt(refittedMom.perp2())/mcConvPt_); } if ( match == 1 ) { h_convVtxdX_ ->Fill ( aConv.conversionVertex().position().x() - mcConvX_); h_convVtxdY_ ->Fill ( aConv.conversionVertex().position().y() - mcConvY_); h_convVtxdZ_ ->Fill ( aConv.conversionVertex().position().z() - mcConvZ_); h_convVtxdR_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_); h_convVtxdPhi_ ->Fill ( aConv.conversionVertex().position().phi() - mcConvPhi_); h_convVtxdEta_ ->Fill ( aConv.conversionVertex().position().eta() - mcConvEta_); h2_convVtxdRVsR_ ->Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ ); h2_convVtxdRVsEta_ ->Fill (mcEta_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ ); p_convVtxdRVsR_ ->Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ ); p_convVtxdRVsEta_ ->Fill (mcEta_, sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_ ); p_convVtxdXVsX_ ->Fill (mcConvX_, aConv.conversionVertex().position().x() - mcConvX_ ); p_convVtxdYVsY_ ->Fill (mcConvY_, aConv.conversionVertex().position().y() - mcConvY_ ); p_convVtxdZVsZ_ ->Fill (mcConvZ_, aConv.conversionVertex().position().z() - mcConvZ_ ); p_convVtxdZVsR_ ->Fill (mcConvR_, aConv.conversionVertex().position().z() - mcConvZ_ ); float dR=sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_; float dZ=aConv.conversionVertex().position().z() - mcConvZ_; p2_convVtxdRVsRZ_ ->Fill (mcConvZ_,mcConvR_, dR ); p2_convVtxdZVsRZ_ ->Fill (mcConvZ_,mcConvR_, dZ ); h2_convVtxRrecVsTrue_ -> Fill (mcConvR_, sqrt(aConv.conversionVertex().position().perp2()) ); h_zPVFromTracks_[match]->Fill ( aConv.zOfPrimaryVertexFromTracks() ); h_dzPVFromTracks_[match]->Fill ( aConv.zOfPrimaryVertexFromTracks() - simPV_Z ); h2_dzPVVsR_ ->Fill(mcConvR_, aConv.zOfPrimaryVertexFromTracks() - simPV_Z ); p_dzPVVsR_ ->Fill(mcConvR_, aConv.zOfPrimaryVertexFromTracks() - simPV_Z ); if ( phoIsInBarrel ) { h_convVtxdX_barrel_ ->Fill ( aConv.conversionVertex().position().x() - mcConvX_); h_convVtxdY_barrel_ ->Fill ( aConv.conversionVertex().position().y() - mcConvY_); h_convVtxdZ_barrel_ ->Fill ( aConv.conversionVertex().position().z() - mcConvZ_); h_convVtxdR_barrel_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_); } if ( phoIsInEndcap ) { h_convVtxdX_endcap_ ->Fill ( aConv.conversionVertex().position().x() - mcConvX_); h_convVtxdY_endcap_ ->Fill ( aConv.conversionVertex().position().y() - mcConvY_); h_convVtxdZ_endcap_ ->Fill ( aConv.conversionVertex().position().z() - mcConvZ_); h_convVtxdR_endcap_ ->Fill ( sqrt(aConv.conversionVertex().position().perp2()) - mcConvR_); } } for (unsigned int i=0; i<tracks.size(); i++) { //std::cout << " Loop over tracks pt " << tracks[i]->pt() << std::endl; RefToBase<reco::Track> tfrb(aConv.tracks()[i] ); itAss= myAss.find( tfrb.get() ); nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) ); nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) ); p_nHitsVsEta_[match] ->Fill (mcEta_, float(tracks[i]->numberOfValidHits()) -0.0001); p_nHitsVsR_[match] ->Fill (mcConvR_, float(tracks[i]->numberOfValidHits()) -0.0001); h_tkChi2_[match] ->Fill (tracks[i]->normalizedChi2() ); h_tkChi2Large_[match] ->Fill (tracks[i]->normalizedChi2() ); h2_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() ); h2_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() ); p_Chi2VsEta_[match] ->Fill( mcEta_, tracks[i]->normalizedChi2() ); p_Chi2VsR_[match] ->Fill( mcConvR_, tracks[i]->normalizedChi2() ); double d0; if (valid_pvtx){ d0 = - tracks[i]->dxy(the_pvtx.position()); } else { d0 = tracks[i]->d0(); } h_TkD0_[match]->Fill (d0* tracks[i]->charge() ); h_nHitsBeforeVtx_[match]->Fill ( aConv.nHitsBeforeVtx().size()>1 ? aConv.nHitsBeforeVtx().at(i) : 0 ); h_dlClosestHitToVtx_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value() : 0 ); h_dlClosestHitToVtxSig_[match]->Fill ( aConv.dlClosestHitToVtx().size()>1 ? aConv.dlClosestHitToVtx().at(i).value()/aConv.dlClosestHitToVtx().at(i).error() : 0 ); if ( itAss == myAss.end() ) continue; reco::Track refTrack= aConv.conversionVertex().refittedTracks()[i]; float simPt = sqrt( ((*itAss).second)->momentum().perp2() ); float recPt = refTrack.pt(); float ptres= recPt - simPt ; //float pterror = aConv.tracks()[i]->ptError(); float pterror = aConv.conversionVertex().refittedTracks()[i].ptError(); h2_PtRecVsPtSim_[0]->Fill ( simPt, recPt); h_TkPtPull_[0] ->Fill(ptres/pterror); h2_TkPtPull_[0] ->Fill(mcEta_, ptres/pterror); if ( phoIsInBarrel ) { h_TkPtPull_[1] ->Fill(ptres/pterror); h2_PtRecVsPtSim_[1]->Fill ( simPt, recPt); } if ( phoIsInEndcap ) { h_TkPtPull_[2] ->Fill(ptres/pterror); h2_PtRecVsPtSim_[2]->Fill ( simPt, recPt); } } // end loop over track } // loop over reco conversions h_nConv_[0][0]->Fill (float(nRecConv_)); h_nConv_[1][0]->Fill (float(nRecConvAss_)); }
void TkConvValidator::beginJob | ( | void | ) | [virtual] |
Histograms for efficiencies
Denominators
zooms
Reimplemented from edm::EDAnalyzer.
Definition at line 144 of file TkConvValidator.cc.
References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), DQMStore::bookProfile2D(), dbe_, jptDQMConfig_cff::etaMax, jptDQMConfig_cff::etaMin, jptDQMConfig_cff::etMax, reco::tau::qcuts::etMin(), cmsCodeRules::cppFunctionSkipper::operator, jptDQMConfig_cff::phiMax, jptDQMConfig_cff::phiMin, and DQMStore::setCurrentFolder().
{ nEvt_=0; nEntry_=0; nRecConv_=0; nRecConvAss_=0; nRecConvAssWithEcal_=0; nInvalidPCA_=0; dbe_ = 0; dbe_ = edm::Service<DQMStore>().operator->(); double etMin = parameters_.getParameter<double>("etMin"); double etMax = parameters_.getParameter<double>("etMax"); int etBin = parameters_.getParameter<int>("etBin"); double resMin = parameters_.getParameter<double>("resMin"); double resMax = parameters_.getParameter<double>("resMax"); int resBin = parameters_.getParameter<int>("resBin"); double etaMin = parameters_.getParameter<double>("etaMin"); double etaMax = parameters_.getParameter<double>("etaMax"); int etaBin = parameters_.getParameter<int>("etaBin"); int etaBin2 = parameters_.getParameter<int>("etaBin2"); double phiMin = parameters_.getParameter<double>("phiMin"); double phiMax = parameters_.getParameter<double>("phiMax"); int phiBin = parameters_.getParameter<int>("phiBin"); double rMin = parameters_.getParameter<double>("rMin"); double rMax = parameters_.getParameter<double>("rMax"); int rBin = parameters_.getParameter<int>("rBin"); double zMin = parameters_.getParameter<double>("zMin"); double zMax = parameters_.getParameter<double>("zMax"); int zBin = parameters_.getParameter<int>("zBin"); double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin"); double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax"); int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin"); double eoverpMin = parameters_.getParameter<double>("eoverpMin"); double eoverpMax = parameters_.getParameter<double>("eoverpMax"); int eoverpBin = parameters_.getParameter<int>("eoverpBin"); // double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin"); // unused // double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax"); // unused // int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin"); // unused double dCotTracksMin = parameters_.getParameter<double>("dCotTracksMin"); double dCotTracksMax = parameters_.getParameter<double>("dCotTracksMax"); int dCotTracksBin = parameters_.getParameter<int>("dCotTracksBin"); double chi2Min = parameters_.getParameter<double>("chi2Min"); double chi2Max = parameters_.getParameter<double>("chi2Max"); double rMinForXray = parameters_.getParameter<double>("rMinForXray"); double rMaxForXray = parameters_.getParameter<double>("rMaxForXray"); int rBinForXray = parameters_.getParameter<int>("rBinForXray"); double zMinForXray = parameters_.getParameter<double>("zMinForXray"); double zMaxForXray = parameters_.getParameter<double>("zMaxForXray"); int zBinForXray = parameters_.getParameter<int>("zBinForXray"); int zBin2ForXray = parameters_.getParameter<int>("zBin2ForXray"); minPhoPtForEffic = parameters_.getParameter<double>("minPhoPtForEffic"); maxPhoEtaForEffic = parameters_.getParameter<double>("maxPhoEtaForEffic"); maxPhoZForEffic = parameters_.getParameter<double>("maxPhoZForEffic"); maxPhoRForEffic = parameters_.getParameter<double>("maxPhoRForEffic"); minPhoPtForPurity = parameters_.getParameter<double>("minPhoPtForPurity"); maxPhoEtaForPurity = parameters_.getParameter<double>("maxPhoEtaForPurity"); maxPhoZForPurity = parameters_.getParameter<double>("maxPhoZForPurity"); maxPhoRForPurity = parameters_.getParameter<double>("maxPhoRForPurity"); if (dbe_) { // SC from reco photons //TString simfolder = TString( std::string simpath = dqmpath_ + "SimulationInfo"; dbe_->setCurrentFolder(simpath); // // simulation information about conversions std::string histname = "nOfSimConversions"; h_nSimConv_[0] = dbe_->book1D(histname,"# of Sim conversions per event ",20,-0.5,19.5); histname = "h_AllSimConvEta"; h_AllSimConv_[0] = dbe_->book1D(histname," All conversions: simulated #eta",etaBin2,etaMin,etaMax); histname = "h_AllSimConvPhi"; h_AllSimConv_[1] = dbe_->book1D(histname," All conversions: simulated #phi",phiBin,phiMin,phiMax); histname = "h_AllSimConvR"; h_AllSimConv_[2] = dbe_->book1D(histname," All conversions: simulated R",rBin,rMin,rMax); histname = "h_AllSimConvZ"; h_AllSimConv_[3] = dbe_->book1D(histname," All conversions: simulated Z",zBin,zMin,zMax); histname = "h_AllSimConvEt"; h_AllSimConv_[4] = dbe_->book1D(histname," All conversions: simulated Et",etBin,etMin,etMax); // histname = "nOfVisSimConversions"; h_nSimConv_[1] = dbe_->book1D(histname,"# of Sim conversions per event ",20,-0.5,19.5); histname = "h_VisSimConvEta"; h_VisSimConv_[0] = dbe_->book1D(histname," All vis conversions: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_VisSimConvPhi"; h_VisSimConv_[1] = dbe_->book1D(histname," All vis conversions: simulated #phi",phiBin,phiMin, phiMax); histname = "h_VisSimConvR"; h_VisSimConv_[2] = dbe_->book1D(histname," All vis conversions: simulated R",rBin,rMin,rMax); histname = "h_VisSimConvZ"; h_VisSimConv_[3] = dbe_->book1D(histname," All vis conversions: simulated Z",zBin,zMin, zMax); histname = "h_VisSimConvEt"; h_VisSimConv_[4] = dbe_->book1D(histname," All vis conversions: simulated Et",etBin,etMin, etMax); // histname = "h_SimConvTwoMTracksEta"; h_SimConvTwoMTracks_[0] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_SimConvTwoMTracksPhi"; h_SimConvTwoMTracks_[1] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax); histname = "h_SimConvTwoMTracksR"; h_SimConvTwoMTracks_[2] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax); histname = "h_SimConvTwoMTracksZ"; h_SimConvTwoMTracks_[3] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax); histname = "h_SimConvTwoMTracksEt"; h_SimConvTwoMTracks_[4] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax); // histname = "h_SimConvTwoTracksEta"; h_SimConvTwoTracks_[0] = dbe_->book1D(histname," All vis conversions with 2 reco tracks: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_SimConvTwoTracksPhi"; h_SimConvTwoTracks_[1] = dbe_->book1D(histname," All vis conversions with 2 reco tracks: simulated #phi",phiBin,phiMin, phiMax); histname = "h_SimConvTwoTracksR"; h_SimConvTwoTracks_[2] = dbe_->book1D(histname," All vis conversions with 2 reco tracks: simulated R",rBin,rMin, rMax); histname = "h_SimConvTwoTracksZ"; h_SimConvTwoTracks_[3] = dbe_->book1D(histname," All vis conversions with 2 reco tracks: simulated Z",zBin,zMin, zMax); histname = "h_SimConvTwoTracksEt"; h_SimConvTwoTracks_[4] = dbe_->book1D(histname," All vis conversions with 2 reco tracks: simulated Et",etBin,etMin, etMax); // histname = "h_SimConvTwoMTracksEtaAndVtxPGT0"; h_SimConvTwoMTracksAndVtxPGT0_[0] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_SimConvTwoMTracksPhiAndVtxPGT0"; h_SimConvTwoMTracksAndVtxPGT0_[1] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax); histname = "h_SimConvTwoMTracksRAndVtxPGT0"; h_SimConvTwoMTracksAndVtxPGT0_[2] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax); histname = "h_SimConvTwoMTracksZAndVtxPGT0"; h_SimConvTwoMTracksAndVtxPGT0_[3] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax); histname = "h_SimConvTwoMTracksEtAndVtxPGT0"; h_SimConvTwoMTracksAndVtxPGT0_[4] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax); // histname = "h_SimConvTwoMTracksEtaAndVtxPGT0005"; h_SimConvTwoMTracksAndVtxPGT0005_[0] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_SimConvTwoMTracksPhiAndVtxPGT0005"; h_SimConvTwoMTracksAndVtxPGT0005_[1] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax); histname = "h_SimConvTwoMTracksRAndVtxPGT0005"; h_SimConvTwoMTracksAndVtxPGT0005_[2] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax); histname = "h_SimConvTwoMTracksZAndVtxPGT0005"; h_SimConvTwoMTracksAndVtxPGT0005_[3] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax); histname = "h_SimConvTwoMTracksEtAndVtxPGT0005"; h_SimConvTwoMTracksAndVtxPGT0005_[4] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax); histname = "h_SimRecConvTwoMTracksEta"; h_SimRecConvTwoMTracks_[0] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax); histname = "h_SimRecConvTwoMTracksPhi"; h_SimRecConvTwoMTracks_[1] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax); histname = "h_SimRecConvTwoMTracksR"; h_SimRecConvTwoMTracks_[2] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax); histname = "h_SimRecConvTwoMTracksZ"; h_SimRecConvTwoMTracks_[3] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax); histname = "h_SimRecConvTwoMTracksEt"; h_SimRecConvTwoMTracks_[4] = dbe_->book1D(histname," All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax); // h_SimConvEtaPix_[0] = dbe_->book1D("simConvEtaPix"," sim converted Photon Eta: Pix ",etaBin,etaMin, etaMax) ; h_simTkPt_ = dbe_->book1D("simTkPt","Sim conversion tracks pt ",etBin*3,0.,etMax); h_simTkEta_ = dbe_->book1D("simTkEta","Sim conversion tracks eta ",etaBin,etaMin,etaMax); h_simConvVtxRvsZ_[0] = dbe_->book2D("simConvVtxRvsZAll"," Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_simConvVtxRvsZ_[1] = dbe_->book2D("simConvVtxRvsZBarrel"," Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_simConvVtxRvsZ_[2] = dbe_->book2D("simConvVtxRvsZEndcap"," Photon Sim conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_simConvVtxRvsZ_[3] = dbe_->book2D("simConvVtxRvsZBarrel2"," Photon Sim conversion vtx position when reco R<4cm",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_simConvVtxYvsX_ = dbe_->book2D("simConvVtxYvsXTrkBarrel"," Photon Sim conversion vtx position, (x,y) eta<1 ",100, -80., 80., 100, -80., 80.); std::string convpath = dqmpath_ + "ConversionInfo"; dbe_->setCurrentFolder(convpath); histname="nConv"; h_nConv_[0][0] = dbe_->book1D(histname+"All","Number Of Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5); h_nConv_[0][1] = dbe_->book1D(histname+"Barrel","Number Of Conversions per isolated candidates per events: Ecal Barrel ",10,-0.5, 9.5); h_nConv_[0][2] = dbe_->book1D(histname+"Endcap","Number Of Conversions per isolated candidates per events: Ecal Endcap ",10,-0.5, 9.5); h_nConv_[1][0] = dbe_->book1D(histname+"All_Ass","Number Of associated Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5); h_convEta_[0][0] = dbe_->book1D("convEta"," converted Photon Eta ",etaBin,etaMin, etaMax) ; h_convEtaMatchSC_[0][0] = dbe_->book1D("convEtaMatchSC"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ; h_convEta2_[0][0] = dbe_->book1D("convEta2"," converted Photon Eta ",etaBin2,etaMin, etaMax) ; h_convPhi_[0][0] = dbe_->book1D("convPhi"," converted Photon Phi ",phiBin,phiMin,phiMax) ; h_convR_[0][0] = dbe_->book1D("convR"," converted photon R",rBin,rMin, rMax); h_convZ_[0][0] = dbe_->book1D("convZ"," converted photon Z",zBin,zMin, zMax); h_convPt_[0][0] = dbe_->book1D("convPt"," conversions Transverse Energy: all eta ", etBin,etMin, etMax); h_convEta_[1][0] = dbe_->book1D("convEtaAss2"," Matched converted Photon Eta ",etaBin2,etaMin, etaMax) ; h_convEta_[1][1] = dbe_->book1D("convEtaAss"," Matched converted Photon Eta ",etaBin,etaMin, etaMax) ; h_convEtaMatchSC_[1][0] = dbe_->book1D("convEtaMatchSCAss"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ; h_convPhi_[1][0] = dbe_->book1D("convPhiAss"," Matched converted Photon Phi ",phiBin,phiMin,phiMax) ; h_convR_[1][0] = dbe_->book1D("convRAss"," Matched converted photon R",rBin,rMin, rMax); h_convZ_[1][0] = dbe_->book1D("convZAss"," Matched converted photon Z",zBin,zMin, zMax); h_convPt_[1][0] = dbe_->book1D("convPtAss","Matched conversions Transverse Energy: all eta ", etBin,etMin, etMax); h_convEta_[2][0] = dbe_->book1D("convEtaFake2"," Fake converted Photon Eta ",etaBin2,etaMin, etaMax) ; h_convEta_[2][1] = dbe_->book1D("convEtaFake"," Fake converted Photon Eta ",etaBin,etaMin, etaMax) ; h_convEtaMatchSC_[2][0] = dbe_->book1D("convEtaMatchSCFake"," converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ; h_convPhi_[2][0] = dbe_->book1D("convPhiFake"," Fake converted Photon Phi ",phiBin,phiMin,phiMax) ; h_convR_[2][0] = dbe_->book1D("convRFake"," Fake converted photon R",rBin,rMin, rMax); h_convZ_[2][0] = dbe_->book1D("convZFake"," Fake converted photon Z",zBin,zMin, zMax); h_convPt_[2][0] = dbe_->book1D("convPtFake","Fake conversions Transverse Energy: all eta ", etBin,etMin, etMax); h_convRplot_ = dbe_->book1D("convRplot"," converted photon R",600, 0.,120.); h_convZplot_ = dbe_->book1D("convZplot"," converted photon Z",320,-160.,160.); histname = "convSCdPhi"; h_convSCdPhi_[0][0] = dbe_->book1D(histname+"All","dPhi between SC and conversion",100, -0.1,0.1); h_convSCdPhi_[0][1] = dbe_->book1D(histname+"Barrel"," dPhi between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdPhi_[0][2] = dbe_->book1D(histname+"Endcap"," dPhi between SC and conversion: Endcap",100, -0.1,0.1); h_convSCdPhi_[1][0] = dbe_->book1D(histname+"All_Ass","dPhi between SC and conversion",100, -0.1,0.1); h_convSCdPhi_[1][1] = dbe_->book1D(histname+"Barrel_Ass"," dPhi between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdPhi_[1][2] = dbe_->book1D(histname+"Endcap_Ass"," dPhi between SC and conversion: Endcap",100, -0.1,0.1); h_convSCdPhi_[2][0] = dbe_->book1D(histname+"All_Fakes","dPhi between SC and conversion",100, -0.1,0.1); h_convSCdPhi_[2][1] = dbe_->book1D(histname+"Barrel_Fakes"," dPhi between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdPhi_[2][2] = dbe_->book1D(histname+"Endcap_Fakes"," dPhi between SC and conversion: Endcap",100, -0.1,0.1); histname = "convSCdEta"; h_convSCdEta_[0][0] = dbe_->book1D(histname+"All"," dEta between SC and conversion",100, -0.1,0.1); h_convSCdEta_[0][1] = dbe_->book1D(histname+"Barrel"," dEta between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdEta_[0][2] = dbe_->book1D(histname+"Endcap"," dEta between SC and conversion: Endcap",100, -0.1,0.1); h_convSCdEta_[1][0] = dbe_->book1D(histname+"All_Ass"," dEta between SC and conversion",100, -0.1,0.1); h_convSCdEta_[1][1] = dbe_->book1D(histname+"Barrel_Ass"," dEta between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdEta_[1][2] = dbe_->book1D(histname+"Endcap_Ass"," dEta between SC and conversion: Endcap",100, -0.1,0.1); h_convSCdEta_[2][0] = dbe_->book1D(histname+"All_Fakes"," dEta between SC and conversion",100, -0.1,0.1); h_convSCdEta_[2][1] = dbe_->book1D(histname+"Barrel_Fakes"," dEta between SC and conversion: Barrel",100, -0.1,0.1); h_convSCdEta_[2][2] = dbe_->book1D(histname+"Endcap_Fakes"," dEta between SC and conversion: Endcap",100, -0.1,0.1); histname = "convPtRes"; h_convPtRes_[0] = dbe_->book1D(histname+"All"," Conversion Pt rec/true : All ecal ", resBin,resMin, resMax); h_convPtRes_[1] = dbe_->book1D(histname+"Barrel"," Conversion Pt rec/true : Barrel ",resBin,resMin, resMax); h_convPtRes_[2] = dbe_->book1D(histname+"Endcap"," Conversion Pt rec/true : Endcap ",resBin,resMin, resMax); histname="hInvMass"; h_invMass_[0][0]= dbe_->book1D(histname+"All_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5); h_invMass_[0][1]= dbe_->book1D(histname+"Barrel_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5); h_invMass_[0][2]= dbe_->book1D(histname+"Endcap_AllTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5); // h_invMass_[1][0]= dbe_->book1D(histname+"All_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5); h_invMass_[1][1]= dbe_->book1D(histname+"Barrel_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5); h_invMass_[1][2]= dbe_->book1D(histname+"Endcap_AssTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5); // h_invMass_[2][0]= dbe_->book1D(histname+"All_FakeTracks"," Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5); h_invMass_[2][1]= dbe_->book1D(histname+"Barrel_FakeTracks"," Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5); h_invMass_[2][2]= dbe_->book1D(histname+"Endcap_FaleTracks"," Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5); histname="hDPhiTracksAtVtx"; h_DPhiTracksAtVtx_[0][0] =dbe_->book1D(histname+"All", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[0][1] =dbe_->book1D(histname+"Barrel", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[0][2] =dbe_->book1D(histname+"Endcap", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[1][0] =dbe_->book1D(histname+"All_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[1][1] =dbe_->book1D(histname+"Barrel_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[1][2] =dbe_->book1D(histname+"Endcap_Ass", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[2][0] =dbe_->book1D(histname+"All_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[2][1] =dbe_->book1D(histname+"Barrel_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); h_DPhiTracksAtVtx_[2][2] =dbe_->book1D(histname+"Endcap_Fakes", " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax); histname="hDPhiTracksAtVtxVsEta"; h2_DPhiTracksAtVtxVsEta_ = dbe_->book2D(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta",etaBin2,etaMin, etaMax,100, -0.5, 0.5); histname="pDPhiTracksAtVtxVsEta"; p_DPhiTracksAtVtxVsEta_ = dbe_->bookProfile(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta ",etaBin2,etaMin, etaMax, 100, -0.5, 0.5,""); histname="hDPhiTracksAtVtxVsR"; h2_DPhiTracksAtVtxVsR_ = dbe_->book2D(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R",rBin,rMin, rMax,100, -0.5, 0.5); histname="pDPhiTracksAtVtxVsR"; p_DPhiTracksAtVtxVsR_ = dbe_->bookProfile(histname+"All"," Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.5, 0.5,""); histname="hDCotTracks"; h_DCotTracks_[0][0]= dbe_->book1D(histname+"All"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[0][1]= dbe_->book1D(histname+"Barrel"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[0][2]= dbe_->book1D(histname+"Endcap"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[1][0]= dbe_->book1D(histname+"All_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[1][1]= dbe_->book1D(histname+"Barrel_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[1][2]= dbe_->book1D(histname+"Endcap_Ass"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[2][0]= dbe_->book1D(histname+"All_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[2][1]= dbe_->book1D(histname+"Barrel_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); h_DCotTracks_[2][2]= dbe_->book1D(histname+"Endcap_Fakes"," Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax); histname="hDCotTracksVsEta"; h2_DCotTracksVsEta_ = dbe_->book2D(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta",etaBin2,etaMin, etaMax,100, -0.2, 0.2); histname="pDCotTracksVsEta"; p_DCotTracksVsEta_ = dbe_->bookProfile(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta ",etaBin2,etaMin, etaMax, 100, -0.2, 0.2,""); histname="hDCotTracksVsR"; h2_DCotTracksVsR_ = dbe_->book2D(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R",rBin,rMin, rMax,100, -0.2, 0.2); histname="pDCotTracksVsR"; p_DCotTracksVsR_ = dbe_->bookProfile(histname+"All"," Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.2, 0.2,""); histname="hDistMinAppTracks"; h_distMinAppTracks_[0][0]= dbe_->book1D(histname+"All"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[0][1]= dbe_->book1D(histname+"Barrel"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[0][2]= dbe_->book1D(histname+"Endcap"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[1][0]= dbe_->book1D(histname+"All_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[1][1]= dbe_->book1D(histname+"Barrel_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[1][2]= dbe_->book1D(histname+"Endcap_Ass"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[2][0]= dbe_->book1D(histname+"All_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[2][1]= dbe_->book1D(histname+"Barrel_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0); h_distMinAppTracks_[2][2]= dbe_->book1D(histname+"Endcap_Fakes"," Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0); h_convVtxRvsZ_[0] = dbe_->book2D("convVtxRvsZAll"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_convVtxRvsZ_[1] = dbe_->book2D("convVtxRvsZBarrel"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_convVtxRvsZ_[2] = dbe_->book2D("convVtxRvsZEndcap"," Photon Reco conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray); h_convVtxYvsX_ = dbe_->book2D("convVtxYvsXTrkBarrel"," Photon Reco conversion vtx position, (x,y) eta<1 ", 1000, -60., 60., 1000, -60., 60.); h_convVtxRvsZ_zoom_[0] = dbe_->book2D("convVtxRvsZBarrelZoom1"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 40.); h_convVtxRvsZ_zoom_[1] = dbe_->book2D("convVtxRvsZBarrelZoom2"," Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 20.); h_convVtxYvsX_zoom_[0] = dbe_->book2D("convVtxYvsXTrkBarrelZoom1"," Photon Reco conversion vtx position, (x,y) eta<1 ",100, -40., 40., 100, -40., 40.); h_convVtxYvsX_zoom_[1] = dbe_->book2D("convVtxYvsXTrkBarrelZoom2"," Photon Reco conversion vtx position, (x,y) eta<1 ",100, -20., 20., 100, -20., 20.); h_convVtxdR_ = dbe_->book1D("convVtxdR"," Photon Reco conversion vtx dR",100, -10.,10.); h_convVtxdX_ = dbe_->book1D("convVtxdX"," Photon Reco conversion vtx dX",100, -10.,10.); h_convVtxdY_ = dbe_->book1D("convVtxdY"," Photon Reco conversion vtx dY",100, -10.,10.); h_convVtxdZ_ = dbe_->book1D("convVtxdZ"," Photon Reco conversion vtx dZ",100, -20.,20.); h_convVtxdPhi_ = dbe_->book1D("convVtxdPhi"," Photon Reco conversion vtx dPhi",100, -0.01,0.01); h_convVtxdEta_ = dbe_->book1D("convVtxdEta"," Photon Reco conversion vtx dEta",100, -0.5,0.5); h_convVtxdR_barrel_ = dbe_->book1D("convVtxdR_barrel"," Photon Reco conversion vtx dR, |eta|<=1.2",100, -10.,10.); h_convVtxdX_barrel_ = dbe_->book1D("convVtxdX_barrel"," Photon Reco conversion vtx dX, |eta|<=1.2",100, -10.,10.); h_convVtxdY_barrel_ = dbe_->book1D("convVtxdY_barrel"," Photon Reco conversion vtx dY, |eta|<=1.2 ",100, -10.,10.); h_convVtxdZ_barrel_ = dbe_->book1D("convVtxdZ_barrel"," Photon Reco conversion vtx dZ, |eta|<=1.2,",100, -20.,20.); h_convVtxdR_endcap_ = dbe_->book1D("convVtxdR_endcap"," Photon Reco conversion vtx dR, |eta|>1.2 ",100, -10.,10.); h_convVtxdX_endcap_ = dbe_->book1D("convVtxdX_endcap"," Photon Reco conversion vtx dX, |eta|>1.2",100, -10.,10.); h_convVtxdY_endcap_ = dbe_->book1D("convVtxdY_endcap"," Photon Reco conversion vtx dY, |eta|>1.2",100, -10.,10.); h_convVtxdZ_endcap_ = dbe_->book1D("convVtxdZ_endcap"," Photon Reco conversion vtx dZ, |eta|>1.2",100, -20.,20.); h2_convVtxdRVsR_ = dbe_->book2D("h2ConvVtxdRVsR"," Conversion vtx dR vsR" ,rBin,rMin, rMax,100, -20.,20.); h2_convVtxdRVsEta_ = dbe_->book2D("h2ConvVtxdRVsEta","Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax,100, -20.,20.); p_convVtxdRVsR_ = dbe_->bookProfile("pConvVtxdRVsR"," Conversion vtx dR vsR" ,rBin,rMin, rMax ,100, -20.,20., ""); p_convVtxdRVsEta_ = dbe_->bookProfile("pConvVtxdRVsEta","Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax, 100, -20.,20., ""); p_convVtxdXVsX_ = dbe_->bookProfile("pConvVtxdXVsX","Conversion vtx dX vs X" ,120,-60, 60 ,100, -20.,20., ""); p_convVtxdYVsY_ = dbe_->bookProfile("pConvVtxdYVsY","Conversion vtx dY vs Y" ,120,-60, 60 ,100, -20.,20., ""); p_convVtxdZVsZ_ = dbe_->bookProfile("pConvVtxdZVsZ","Conversion vtx dZ vs Z" ,zBin,zMin,zMax ,100, -20.,20., ""); p_convVtxdZVsR_ = dbe_->bookProfile("pConvVtxdZVsR","Conversion vtx dZ vs R" ,rBin,rMin,rMax ,100, -20.,20., ""); p2_convVtxdRVsRZ_ = dbe_->bookProfile2D("p2ConvVtxdRVsRZ","Conversion vtx dR vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,"s"); p2_convVtxdZVsRZ_ = dbe_->bookProfile2D("p2ConvVtxdZVsRZ","Conversion vtx dZ vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,"s"); histname="EoverPtracks"; h_EoverPTracks_[0][0] = dbe_->book1D(histname+"All"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax ); h_EoverPTracks_[0][1] = dbe_->book1D(histname+"Barrel"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[0][2] = dbe_->book1D(histname+"Endcap"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[1][0] = dbe_->book1D(histname+"All_Ass"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[1][1] = dbe_->book1D(histname+"Barrel_Ass"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[1][2] = dbe_->book1D(histname+"Endcap_Ass"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[2][0] = dbe_->book1D(histname+"All_Fakes"," photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[2][1] = dbe_->book1D(histname+"Barrel_Fakes"," photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax); h_EoverPTracks_[2][2] = dbe_->book1D(histname+"Endcap_Fakes"," photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax); h2_convVtxRrecVsTrue_ = dbe_->book2D("h2ConvVtxRrecVsTrue","Photon Reco conversion vtx R rec vs true" ,rBin,rMin, rMax,rBin,rMin, rMax); histname="vtxChi2Prob"; h_vtxChi2Prob_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 100, 0., 1.); h_vtxChi2Prob_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, 0., 1.); h_vtxChi2Prob_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, 0., 1.); h_vtxChi2Prob_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 100, 0., 1.); h_vtxChi2Prob_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, 0., 1.); h_vtxChi2Prob_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, 0., 1.); h_vtxChi2Prob_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, 0., 1.); h_vtxChi2Prob_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, 0., 1.); h_vtxChi2Prob_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, 0., 1.); h_zPVFromTracks_[1] = dbe_->book1D("zPVFromTracks"," Photons: PV z from conversion tracks",100, -25., 25.); h_dzPVFromTracks_[1] = dbe_->book1D("dzPVFromTracks"," Photons: PV Z_rec - Z_true from conversion tracks",100, -5., 5.); h2_dzPVVsR_ = dbe_->book2D("h2dzPVVsR","Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax,100, -3.,3.); p_dzPVVsR_ = dbe_->bookProfile("pdzPVVsR","Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax, 100, -3.,3.,""); histname="lxybs"; h_lxybs_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 200, -100., 100.); h_lxybs_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 200, -100., 100.); h_lxybs_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 200, -100., 100.); h_lxybs_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 200, -100., 100.); h_lxybs_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 200, -100., 100.); h_lxybs_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 200, -100., 100.); h_lxybs_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 200, -100., 100.); h_lxybs_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 200, -100., 100.); h_lxybs_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 200, -100., 100.); histname="maxNHitsBeforeVtx"; h_maxNHitsBeforeVtx_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_maxNHitsBeforeVtx_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="leadNHitsBeforeVtx"; h_leadNHitsBeforeVtx_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadNHitsBeforeVtx_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="trailNHitsBeforeVtx"; h_trailNHitsBeforeVtx_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_trailNHitsBeforeVtx_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="sumNHitsBeforeVtx"; h_sumNHitsBeforeVtx_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_sumNHitsBeforeVtx_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="maxDlClosestHitToVtx"; h_maxDlClosestHitToVtx_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 100, -10., 10.); h_maxDlClosestHitToVtx_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, -10., 10.); h_maxDlClosestHitToVtx_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, -10., 10.); h_maxDlClosestHitToVtx_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 100, -10., 10.); h_maxDlClosestHitToVtx_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, -10., 10.); h_maxDlClosestHitToVtx_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, -10., 10.); h_maxDlClosestHitToVtx_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, -10., 10.); h_maxDlClosestHitToVtx_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, -10., 10.); h_maxDlClosestHitToVtx_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, -10., 10.); histname="maxDlClosestHitToVtxSig"; h_maxDlClosestHitToVtxSig_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 100, -8., 8.); h_maxDlClosestHitToVtxSig_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 100, -8., 8.); histname="deltaExpectedHitsInner"; h_deltaExpectedHitsInner_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 31, -15.5, 15.5); h_deltaExpectedHitsInner_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 31, -15.5, 15.5); histname="leadExpectedHitsInner"; h_leadExpectedHitsInner_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadExpectedHitsInner_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadExpectedHitsInner_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_leadExpectedHitsInner_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadExpectedHitsInner_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadExpectedHitsInner_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_leadExpectedHitsInner_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_leadExpectedHitsInner_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_leadExpectedHitsInner_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="nSharedHits"; h_nSharedHits_[0][0] = dbe_->book1D(histname+"All","vertex #chi^{2} all", 16, -0.5, 15.5); h_nSharedHits_[0][1] = dbe_->book1D(histname+"Barrel","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_nSharedHits_[0][2] = dbe_->book1D(histname+"Endcap","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_nSharedHits_[1][0] = dbe_->book1D(histname+"All_Ass","vertex #chi^{2} all", 16, -0.5, 15.5); h_nSharedHits_[1][1] = dbe_->book1D(histname+"Barrel_Ass","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_nSharedHits_[1][2] = dbe_->book1D(histname+"Endcap_Ass","vertex #chi^{2} endcap", 16, -0.5, 15.5); h_nSharedHits_[2][0] = dbe_->book1D(histname+"All_Fakes","vertex #chi^{2} all", 16, -0.5, 15.5); h_nSharedHits_[2][1] = dbe_->book1D(histname+"Barrel_Fakes","vertex #chi^{2} barrel", 16, -0.5, 15.5); h_nSharedHits_[2][2] = dbe_->book1D(histname+"Endcap_Fakes","vertex #chi^{2} endcap", 16, -0.5, 15.5); histname="nHits"; nHits_[0] = dbe_->book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits all tracks",etaBin,etaMin, etaMax,30,0., 30.); nHits_[1] = dbe_->book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits all tracks ass",etaBin,etaMin, etaMax,30,0., 30.); nHits_[2] = dbe_->book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits all tracks fakes",etaBin,etaMin, etaMax,30,0., 30.); histname="nHitsVsEta"; nHitsVsEta_[0] = dbe_->book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.); nHitsVsEta_[1] = dbe_->book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.); nHitsVsEta_[2] = dbe_->book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.); histname="h_nHitsVsEta"; p_nHitsVsEta_[0] = dbe_->bookProfile(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,""); p_nHitsVsEta_[1] = dbe_->bookProfile(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,""); p_nHitsVsEta_[2] = dbe_->bookProfile(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,""); histname="nHitsVsR"; nHitsVsR_[0] = dbe_->book2D(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.); nHitsVsR_[1] = dbe_->book2D(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.); nHitsVsR_[2] = dbe_->book2D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.); histname="h_nHitsVsR"; p_nHitsVsR_[0] = dbe_->bookProfile(histname+"AllTracks","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,""); p_nHitsVsR_[1] = dbe_->bookProfile(histname+"AllTracks_Ass","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,""); p_nHitsVsR_[2] = dbe_->bookProfile(histname+"AllTracks_Fakes","Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,""); histname="tkChi2"; h_tkChi2_[0] = dbe_->book1D(histname+"AllTracks","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max); h_tkChi2_[1] = dbe_->book1D(histname+"AllTracks_Ass","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max); h_tkChi2_[2] = dbe_->book1D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max); histname="tkChi2Large"; h_tkChi2Large_[0] = dbe_->book1D(histname+"AllTracks","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0); h_tkChi2Large_[1] = dbe_->book1D(histname+"AllTracks_Ass","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0); h_tkChi2Large_[2] = dbe_->book1D(histname+"AllTracks_Fakes","Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0); histname="h2Chi2VsEta"; h2_Chi2VsEta_[0]=dbe_->book2D(histname+"All"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max); h2_Chi2VsEta_[1]=dbe_->book2D(histname+"All_Ass"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max); h2_Chi2VsEta_[2]=dbe_->book2D(histname+"All_Fakes"," Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max); histname="pChi2VsEta"; p_Chi2VsEta_[0]=dbe_->bookProfile(histname+"All"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,""); p_Chi2VsEta_[1]=dbe_->bookProfile(histname+"All_Ass"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,""); p_Chi2VsEta_[2]=dbe_->bookProfile(histname+"All_Fakes"," Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,""); histname="h2Chi2VsR"; h2_Chi2VsR_[0]=dbe_->book2D(histname+"All"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max); h2_Chi2VsR_[1]=dbe_->book2D(histname+"All_Ass"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max); h2_Chi2VsR_[2]=dbe_->book2D(histname+"All_Fakes"," Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max); histname="pChi2VsR"; p_Chi2VsR_[0]=dbe_->bookProfile(histname+"All"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,""); p_Chi2VsR_[1]=dbe_->bookProfile(histname+"All_Ass"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,""); p_Chi2VsR_[2]=dbe_->bookProfile(histname+"All_Fakes"," Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,""); histname="hTkD0"; h_TkD0_[0]=dbe_->book1D(histname+"All"," Reco Track D0*q: All ",200,-0.1,60); h_TkD0_[1]=dbe_->book1D(histname+"All_Ass"," Reco Track D0*q: Barrel ",200,-0.1,60); h_TkD0_[2]=dbe_->book1D(histname+"All_Fakes"," Reco Track D0*q: Endcap ",200,-0.1,60); histname="hTkPtPull"; h_TkPtPull_[0]=dbe_->book1D(histname+"All"," Reco Track Pt pull: All ",100, -20., 10.); histname="hTkPtPull"; h_TkPtPull_[1]=dbe_->book1D(histname+"Barrel"," Reco Track Pt pull: Barrel ",100, -20., 10.); histname="hTkPtPull"; h_TkPtPull_[2]=dbe_->book1D(histname+"Endcap"," Reco Track Pt pull: Endcap ",100, -20., 10.); histname="h2TkPtPullEta"; h2_TkPtPull_[0]=dbe_->book2D(histname+"All"," Reco Track Pt pull: All ",etaBin2,etaMin, etaMax,100, -20., 10.); histname="pTkPtPullEta"; p_TkPtPull_[0]=dbe_->bookProfile(histname+"All"," Reco Track Pt pull: All ",etaBin2,etaMin, etaMax, 100, -20., 10., " "); histname="PtRecVsPtSim"; h2_PtRecVsPtSim_[0]=dbe_->book2D(histname+"All", "Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax); h2_PtRecVsPtSim_[1]=dbe_->book2D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", etBin,etMin,etMax,etBin,etMin, etMax); h2_PtRecVsPtSim_[2]=dbe_->book2D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", etBin,etMin,etMax,etBin,etMin, etMax); histname="photonPtRecVsPtSim"; h2_photonPtRecVsPtSim_=dbe_->book2D(histname+"All", "Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax); histname="nHitsBeforeVtx"; h_nHitsBeforeVtx_[0]=dbe_->book1D(histname+"All", "Pt Rec vs Pt sim: All ", 16, -0.5, 15.5); h_nHitsBeforeVtx_[1]=dbe_->book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 16, -0.5, 15.5); h_nHitsBeforeVtx_[2]=dbe_->book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 16, -0.5, 15.5); histname="dlClosestHitToVtx"; h_dlClosestHitToVtx_[0]=dbe_->book1D(histname+"All", "Pt Rec vs Pt sim: All ", 100, -10., 10.); h_dlClosestHitToVtx_[1]=dbe_->book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 100, -10., 10.); h_dlClosestHitToVtx_[2]=dbe_->book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 100, -10., 10.); histname="dlClosestHitToVtxSig"; h_dlClosestHitToVtxSig_[0]=dbe_->book1D(histname+"All", "Pt Rec vs Pt sim: All ", 100, -8., 8.); h_dlClosestHitToVtxSig_[1]=dbe_->book1D(histname+"Barrel", "Pt Rec vs Pt sim: Barrel ", 100, -8., 8.); h_dlClosestHitToVtxSig_[2]=dbe_->book1D(histname+"Endcap", "Pt Rec vs Pt sim: Endcap ", 100, -8., 8.); h_match_= dbe_->book1D("h_match"," ", 3, -0.5,2.5); } // if DQM }
void TkConvValidator::beginRun | ( | edm::Run const & | r, |
edm::EventSetup const & | theEventSetup | ||
) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 765 of file TkConvValidator.cc.
References edm::EventSetup::get(), and edm::ESHandle< T >::product().
{ //get magnetic field edm::LogInfo("ConvertedPhotonProducer") << " get magnetic field" << "\n"; theEventSetup.get<IdealMagneticFieldRecord>().get(theMF_); edm::ESHandle<TrackAssociatorBase> theHitsAssociator; theEventSetup.get<TrackAssociatorRecord>().get("trackAssociatorByHitsForConversionValidation",theHitsAssociator); theTrackAssociator_ = (TrackAssociatorBase *) theHitsAssociator.product(); thePhotonMCTruthFinder_ = new PhotonMCTruthFinder(); }
void TkConvValidator::endJob | ( | void | ) | [virtual] |
Reimplemented from edm::EDAnalyzer.
Definition at line 1780 of file TkConvValidator.cc.
References dbe_, dumpDBToFile_GT_ttrig_cfg::outputFileName, and DQMStore::save().
{ std::string outputFileName = parameters_.getParameter<std::string>("OutputFileName"); if ( ! isRunCentrally_ ) { dbe_->save(outputFileName); } edm::LogInfo("TkConvValidator") << "Analyzed " << nEvt_ << "\n"; // std::cout << "::endJob Analyzed " << nEvt_ << " events " << " with total " << nPho_ << " Photons " << "\n"; // std::cout << "TkConvValidator::endJob Analyzed " << nEvt_ << " events " << "\n"; return ; }
void TkConvValidator::endRun | ( | edm::Run & | r, |
edm::EventSetup const & | es | ||
) | [virtual] |
Definition at line 783 of file TkConvValidator.cc.
{ delete thePhotonMCTruthFinder_; }
float TkConvValidator::etaTransformation | ( | float | a, |
float | b | ||
) | [private] |
Definition at line 1844 of file TkConvValidator.cc.
References ETA, etaBarrelEndcap, funct::log(), PI, R_ECAL, funct::tan(), and Z_Endcap.
{ //---Definitions const float PI = 3.1415927; //---Definitions for ECAL const float R_ECAL = 136.5; const float Z_Endcap = 328.0; const float etaBarrelEndcap = 1.479; //---ETA correction float Theta = 0.0 ; float ZEcal = R_ECAL*sinh(EtaParticle)+Zvertex; if(ZEcal != 0.0) Theta = atan(R_ECAL/ZEcal); if(Theta<0.0) Theta = Theta+PI ; float ETA = - log(tan(0.5*Theta)); if( fabs(ETA) > etaBarrelEndcap ) { float Zend = Z_Endcap ; if(EtaParticle<0.0 ) Zend = -Zend ; float Zlen = Zend - Zvertex ; float RR = Zlen/sinh(EtaParticle); Theta = atan(RR/Zend); if(Theta<0.0) Theta = Theta+PI ; ETA = - log(tan(0.5*Theta)); } //---Return the result return ETA; //---end }
float TkConvValidator::phiNormalization | ( | float & | a | ) | [private] |
Definition at line 1828 of file TkConvValidator.cc.
math::XYZVector TkConvValidator::recalculateMomentumAtFittedVertex | ( | const MagneticField & | mf, |
const TrackerGeometry & | trackerGeom, | ||
const edm::RefToBase< reco::Track > & | tk, | ||
const reco::Vertex & | vtx | ||
) | [private] |
Definition at line 1796 of file TkConvValidator.cc.
References anyDirection, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateTransform::innerStateOnSurface(), TrajectoryStateOnSurface::isValid(), reco::Vertex::position(), PropagatorWithMaterial::propagate(), query::result, mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ math::XYZVector result; Surface::RotationType rot; ReferenceCountingPointer<BoundCylinder> theBarrel_(new BoundCylinder( Surface::PositionType(0,0,0), rot, SimpleCylinderBounds( sqrt(vtx.position().perp2())-0.001, sqrt(vtx.position().perp2())+0.001, -fabs(vtx.position().z()), fabs(vtx.position().z())))); ReferenceCountingPointer<BoundDisk> theDisk_(new BoundDisk( Surface::PositionType( 0, 0, vtx.position().z()), rot, SimpleDiskBounds( 0, sqrt(vtx.position().perp2()), -0.001, 0.001))); TrajectoryStateTransform transformer; const TrajectoryStateOnSurface myTSOS = transformer.innerStateOnSurface(*tk, trackerGeom, &mf); PropagatorWithMaterial propag( anyDirection, 0.000511, &mf ); TrajectoryStateOnSurface stateAtVtx; stateAtVtx = propag.propagate(myTSOS, *theBarrel_); if (!stateAtVtx.isValid() ) { stateAtVtx = propag.propagate(myTSOS, *theDisk_); } if (stateAtVtx.isValid()){ return math::XYZVector ( double(stateAtVtx.globalMomentum().x()), double(stateAtVtx.globalMomentum().y()), double(stateAtVtx.globalMomentum().z())); } else { return math::XYZVector(0.,0.,0.); } }
bool TkConvValidator::arbitratedEcalSeeded_ [private] |
Definition at line 126 of file TkConvValidator.h.
bool TkConvValidator::arbitratedMerged_ [private] |
Definition at line 125 of file TkConvValidator.h.
double TkConvValidator::bcEtLow_ [private] |
Definition at line 113 of file TkConvValidator.h.
std::string TkConvValidator::conversionCollection_ [private] |
Definition at line 92 of file TkConvValidator.h.
std::string TkConvValidator::conversionCollectionProducer_ [private] |
Definition at line 91 of file TkConvValidator.h.
std::string TkConvValidator::conversionTrackProducer_ [private] |
Definition at line 93 of file TkConvValidator.h.
DQMStore* TkConvValidator::dbe_ [private] |
Definition at line 73 of file TkConvValidator.h.
bool TkConvValidator::dCotCutOn_ [private] |
Definition at line 121 of file TkConvValidator.h.
double TkConvValidator::dCotCutValue_ [private] |
Definition at line 122 of file TkConvValidator.h.
double TkConvValidator::dCotHardCutValue_ [private] |
Definition at line 123 of file TkConvValidator.h.
std::string TkConvValidator::dqmpath_ [private] |
Definition at line 98 of file TkConvValidator.h.
bool TkConvValidator::ecalalgotracks_ [private] |
Definition at line 127 of file TkConvValidator.h.
double TkConvValidator::ecalEtSumCut_ [private] |
Definition at line 119 of file TkConvValidator.h.
double TkConvValidator::ecalIsolRadius_ [private] |
Definition at line 112 of file TkConvValidator.h.
std::string TkConvValidator::fName_ [private] |
Definition at line 72 of file TkConvValidator.h.
bool TkConvValidator::generalTracksOnly_ [private] |
Definition at line 124 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_Chi2VsEta_[3] [private] |
Definition at line 319 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_Chi2VsR_[3] [private] |
Definition at line 321 of file TkConvValidator.h.
Definition at line 272 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_convVtxdRVsR_ [private] |
Definition at line 271 of file TkConvValidator.h.
Definition at line 286 of file TkConvValidator.h.
Definition at line 231 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_DCotTracksVsR_ [private] |
Definition at line 233 of file TkConvValidator.h.
Definition at line 241 of file TkConvValidator.h.
Definition at line 239 of file TkConvValidator.h.
Definition at line 225 of file TkConvValidator.h.
Definition at line 227 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_dzPVVsR_ [private] |
Definition at line 295 of file TkConvValidator.h.
Definition at line 330 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_PtRecVsPtSim_[3] [private] |
Definition at line 329 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h2_TkPtPull_[3] [private] |
Definition at line 327 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_AllSimConv_[5] [private] |
Denominator for efficiencies.
Definition at line 179 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convEta2_[3][3] [private] |
Definition at line 206 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convEta_[3][3] [private] |
Definition at line 205 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convEtaMatchSC_[3][3] [private] |
Definition at line 204 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convPhi_[3][3] [private] |
Definition at line 207 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convPt_[3][3] [private] |
Definition at line 210 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convPtRes_[3] [private] |
Definition at line 220 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convR_[3][3] [private] |
Definition at line 208 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convRplot_ [private] |
Definition at line 217 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convSCdEta_[3][3] [private] |
Definition at line 213 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convSCdPhi_[3][3] [private] |
Definition at line 214 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdEta_ [private] |
Definition at line 257 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdPhi_ [private] |
Definition at line 258 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdR_ [private] |
Definition at line 256 of file TkConvValidator.h.
Definition at line 263 of file TkConvValidator.h.
Definition at line 268 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdX_ [private] |
Definition at line 253 of file TkConvValidator.h.
Definition at line 260 of file TkConvValidator.h.
Definition at line 265 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdY_ [private] |
Definition at line 254 of file TkConvValidator.h.
Definition at line 261 of file TkConvValidator.h.
Definition at line 266 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxdZ_ [private] |
Definition at line 255 of file TkConvValidator.h.
Definition at line 262 of file TkConvValidator.h.
Definition at line 267 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxRvsZ_[3] [private] |
Definition at line 248 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxRvsZ_zoom_[2] [private] |
Definition at line 250 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxYvsX_ [private] |
Definition at line 249 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convVtxYvsX_zoom_[2] [private] |
Definition at line 251 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convZ_[3][3] [private] |
Definition at line 209 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_convZplot_ [private] |
Definition at line 218 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_DCotTracks_[3][3] [private] |
Definition at line 230 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_deltaExpectedHitsInner_[3][3] [private] |
Definition at line 303 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_DEtaTracksAtEcal_[3][3] [private] |
Definition at line 244 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_distMinAppTracks_[3][3] [private] |
Definition at line 236 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_dlClosestHitToVtx_[3] [private] |
Definition at line 337 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_dlClosestHitToVtxSig_[3] [private] |
Definition at line 338 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_DPhiTracksAtEcal_[3][3] [private] |
Definition at line 238 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_DPhiTracksAtVtx_[3][3] [private] |
Definition at line 224 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_dzPVFromTracks_[2] [private] |
Definition at line 294 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_EoverPTracks_[3][3] [private] |
Definition at line 211 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_invMass_[3][3] [private] |
Definition at line 222 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_leadExpectedHitsInner_[3][3] [private] |
Definition at line 304 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_leadNHitsBeforeVtx_[3][3] [private] |
Definition at line 300 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_lxybs_[3][3] [private] |
Definition at line 298 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_match_ [private] |
Definition at line 332 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_maxDlClosestHitToVtx_[3][3] [private] |
Definition at line 305 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_maxDlClosestHitToVtxSig_[3][3] [private] |
Definition at line 306 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_maxNHitsBeforeVtx_[3][3] [private] |
Definition at line 299 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_nConv_[3][3] [private] |
info per conversion
Definition at line 203 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_nHitsBeforeVtx_[3] [private] |
Definition at line 336 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_nSharedHits_[3][3] [private] |
Definition at line 307 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_nSimConv_[2] [private] |
Definition at line 168 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_RecoConvTwoMTracks_[5] [private] |
Definition at line 199 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_RecoConvTwoTracks_[5] [private] |
Definition at line 197 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimConvEtaPix_[2] [private] |
Definition at line 169 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimConvOneMTracks_[5] [private] |
Definition at line 184 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimConvOneTracks_[5] [private] |
Numerator for efficiencies.
Definition at line 183 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimConvTwoMTracks_[5] [private] |
Definition at line 186 of file TkConvValidator.h.
Definition at line 188 of file TkConvValidator.h.
Definition at line 189 of file TkConvValidator.h.
Definition at line 187 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimConvTwoTracks_[5] [private] |
Definition at line 185 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_simConvVtxRvsZ_[4] [private] |
Definition at line 174 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_simConvVtxYvsX_ [private] |
Definition at line 175 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimRecConvOneMTracks_[5] [private] |
Definition at line 192 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimRecConvOneTracks_[5] [private] |
Definition at line 191 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimRecConvTwoMTracks_[5] [private] |
Definition at line 194 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_SimRecConvTwoTracks_[5] [private] |
Definition at line 193 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_simTkEta_ [private] |
Definition at line 172 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_simTkPt_ [private] |
Definition at line 171 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_sumNHitsBeforeVtx_[3][3] [private] |
Definition at line 302 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_tkChi2_[3] [private] |
Definition at line 317 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_tkChi2Large_[3] [private] |
Definition at line 318 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_TkD0_[3] [private] |
Definition at line 324 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_TkPtPull_[3] [private] |
Definition at line 326 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_trailNHitsBeforeVtx_[3][3] [private] |
Definition at line 301 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_VisSimConv_[6] [private] |
Definition at line 180 of file TkConvValidator.h.
Definition at line 181 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_vtxChi2Prob_[3][3] [private] |
Definition at line 289 of file TkConvValidator.h.
MonitorElement* TkConvValidator::h_zPVFromTracks_[2] [private] |
Definition at line 293 of file TkConvValidator.h.
double TkConvValidator::hcalEtSumCut_ [private] |
Definition at line 120 of file TkConvValidator.h.
double TkConvValidator::hcalHitEtLow_ [private] |
Definition at line 116 of file TkConvValidator.h.
double TkConvValidator::hcalIsolExtRadius_ [private] |
Definition at line 114 of file TkConvValidator.h.
double TkConvValidator::hcalIsolInnRadius_ [private] |
Definition at line 115 of file TkConvValidator.h.
bool TkConvValidator::highPurity_ [private] |
Definition at line 128 of file TkConvValidator.h.
bool TkConvValidator::isRunCentrally_ [private] |
Definition at line 105 of file TkConvValidator.h.
edm::InputTag TkConvValidator::label_tp_ [private] |
Definition at line 100 of file TkConvValidator.h.
double TkConvValidator::lip_ [private] |
Definition at line 111 of file TkConvValidator.h.
uint TkConvValidator::maxHitsBeforeVtx_ [private] |
Definition at line 130 of file TkConvValidator.h.
double TkConvValidator::maxPhoEtaForEffic [private] |
Definition at line 151 of file TkConvValidator.h.
double TkConvValidator::maxPhoEtaForPurity [private] |
Definition at line 155 of file TkConvValidator.h.
double TkConvValidator::maxPhoRForEffic [private] |
Definition at line 153 of file TkConvValidator.h.
double TkConvValidator::maxPhoRForPurity [private] |
Definition at line 157 of file TkConvValidator.h.
double TkConvValidator::maxPhoZForEffic [private] |
Definition at line 152 of file TkConvValidator.h.
double TkConvValidator::maxPhoZForPurity [private] |
Definition at line 156 of file TkConvValidator.h.
double TkConvValidator::mcConvEta_ [private] |
Definition at line 143 of file TkConvValidator.h.
double TkConvValidator::mcConvPhi_ [private] |
Definition at line 142 of file TkConvValidator.h.
double TkConvValidator::mcConvPt_ [private] |
Definition at line 137 of file TkConvValidator.h.
double TkConvValidator::mcConvR_ [private] |
Definition at line 138 of file TkConvValidator.h.
double TkConvValidator::mcConvX_ [private] |
Definition at line 141 of file TkConvValidator.h.
double TkConvValidator::mcConvY_ [private] |
Definition at line 140 of file TkConvValidator.h.
double TkConvValidator::mcConvZ_ [private] |
Definition at line 139 of file TkConvValidator.h.
double TkConvValidator::mcEta_ [private] |
Definition at line 136 of file TkConvValidator.h.
double TkConvValidator::mcJetEta_ [private] |
Definition at line 144 of file TkConvValidator.h.
double TkConvValidator::mcJetPhi_ [private] |
Definition at line 145 of file TkConvValidator.h.
double TkConvValidator::mcPhi_ [private] |
global variable for the MC photon
Definition at line 135 of file TkConvValidator.h.
double TkConvValidator::minLxy_ [private] |
Definition at line 131 of file TkConvValidator.h.
double TkConvValidator::minPhoEtCut_ [private] |
Definition at line 107 of file TkConvValidator.h.
double TkConvValidator::minPhoPtForEffic [private] |
Definition at line 150 of file TkConvValidator.h.
double TkConvValidator::minPhoPtForPurity [private] |
Definition at line 154 of file TkConvValidator.h.
double TkConvValidator::minProb_ [private] |
Definition at line 129 of file TkConvValidator.h.
int TkConvValidator::nEntry_ [private] |
Definition at line 78 of file TkConvValidator.h.
int TkConvValidator::nEvt_ [private] |
Definition at line 77 of file TkConvValidator.h.
MonitorElement* TkConvValidator::nHits_[3] [private] |
Definition at line 312 of file TkConvValidator.h.
MonitorElement* TkConvValidator::nHitsVsEta_[3] [private] |
Definition at line 314 of file TkConvValidator.h.
MonitorElement* TkConvValidator::nHitsVsR_[3] [private] |
Definition at line 316 of file TkConvValidator.h.
int TkConvValidator::nInvalidPCA_ [private] |
Definition at line 85 of file TkConvValidator.h.
int TkConvValidator::nMatched_ [private] |
Definition at line 80 of file TkConvValidator.h.
int TkConvValidator::nRecConv_ [private] |
Definition at line 81 of file TkConvValidator.h.
int TkConvValidator::nRecConvAss_ [private] |
Definition at line 82 of file TkConvValidator.h.
int TkConvValidator::nRecConvAssWithEcal_ [private] |
Definition at line 83 of file TkConvValidator.h.
int TkConvValidator::nSimConv_[2] [private] |
Definition at line 79 of file TkConvValidator.h.
int TkConvValidator::numOfTracksInCone_ [private] |
Definition at line 117 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p2_convVtxdRVsRZ_ [private] |
Definition at line 283 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p2_convVtxdZVsRZ_ [private] |
Definition at line 284 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p2_effRZ_ [private] |
Definition at line 334 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_Chi2VsEta_[3] [private] |
Definition at line 320 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_Chi2VsR_[3] [private] |
Definition at line 322 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdRVsEta_ [private] |
Definition at line 275 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdRVsR_ [private] |
Definition at line 274 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdXVsX_ [private] |
Definition at line 277 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdYVsY_ [private] |
Definition at line 278 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdZVsR_ [private] |
Definition at line 280 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_convVtxdZVsZ_ [private] |
Definition at line 279 of file TkConvValidator.h.
Definition at line 232 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_DCotTracksVsR_ [private] |
Definition at line 234 of file TkConvValidator.h.
Definition at line 242 of file TkConvValidator.h.
Definition at line 240 of file TkConvValidator.h.
Definition at line 226 of file TkConvValidator.h.
Definition at line 228 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_dzPVVsR_ [private] |
Definition at line 296 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_nHitsVsEta_[3] [private] |
Definition at line 313 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_nHitsVsR_[3] [private] |
Definition at line 315 of file TkConvValidator.h.
MonitorElement* TkConvValidator::p_TkPtPull_[3] [private] |
Definition at line 328 of file TkConvValidator.h.
Definition at line 87 of file TkConvValidator.h.
std::string TkConvValidator::photonCollection_ [private] |
Definition at line 96 of file TkConvValidator.h.
std::string TkConvValidator::photonCollectionProducer_ [private] |
Definition at line 95 of file TkConvValidator.h.
double TkConvValidator::recMaxPt_ [private] |
Definition at line 164 of file TkConvValidator.h.
double TkConvValidator::recMinPt_ [private] |
Global variables for reco Photon.
Definition at line 163 of file TkConvValidator.h.
double TkConvValidator::simMaxPt_ [private] |
Definition at line 160 of file TkConvValidator.h.
double TkConvValidator::simMinPt_ [private] |
Definition at line 159 of file TkConvValidator.h.
Definition at line 88 of file TkConvValidator.h.
Definition at line 89 of file TkConvValidator.h.
Definition at line 147 of file TkConvValidator.h.
edm::ESHandle<MagneticField> TkConvValidator::theMF_ [private] |
Definition at line 74 of file TkConvValidator.h.
Definition at line 102 of file TkConvValidator.h.
Definition at line 103 of file TkConvValidator.h.
double TkConvValidator::trkIsolExtRadius_ [private] |
Definition at line 108 of file TkConvValidator.h.
double TkConvValidator::trkIsolInnRadius_ [private] |
Definition at line 109 of file TkConvValidator.h.
double TkConvValidator::trkPtLow_ [private] |
Definition at line 110 of file TkConvValidator.h.
double TkConvValidator::trkPtSumCut_ [private] |
Definition at line 118 of file TkConvValidator.h.
int TkConvValidator::verbosity_ [private] |
Definition at line 76 of file TkConvValidator.h.