diff --git a/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py b/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py index a94f04d6bad6c..9465b349cc3b9 100644 --- a/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py +++ b/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py @@ -167,11 +167,12 @@ ) + import RecoTracker.TkSeedGenerator.jetCoreDirectSeedGenerator_cfi import RecoTracker.TkSeedGenerator.jetCorePerfectSeedGenerator_cfi -jetCoreSeeds = RecoTracker.TkSeedGenerator.jetCoreDirectSeedGenerator_cfi.jetCoreDirectSeedGenerator.clone( -# jetCoreSeeds = RecoTracker.TkSeedGenerator.jetCorePerfectSeedGenerator_cfi.JetCorePerfectSeedGenerator.clone( - vertices="firstStepPrimaryVertices" +#jetCoreSeeds = RecoTracker.TkSeedGenerator.jetCoreDirectSeedGenerator_cfi.jetCoreDirectSeedGenerator.clone( +jetCoreSeeds = RecoTracker.TkSeedGenerator.jetCorePerfectSeedGenerator_cfi.JetCorePerfectSeedGenerator.clone( +vertices="firstStepPrimaryVertices" ) # MAKING OF TRACK CANDIDATES diff --git a/RecoTracker/TkSeedGenerator/plugins/JetCorePerfectSeedGenerator.cc b/RecoTracker/TkSeedGenerator/plugins/JetCorePerfectSeedGenerator.cc index 8a7b5e586a0bc..af60f72481e00 100644 --- a/RecoTracker/TkSeedGenerator/plugins/JetCorePerfectSeedGenerator.cc +++ b/RecoTracker/TkSeedGenerator/plugins/JetCorePerfectSeedGenerator.cc @@ -4,9 +4,7 @@ // Class: JetCorePerfectSeedGenerator // /**\class JetCorePerfectSeedGenerator JetCorePerfectSeedGenerator.cc trackJet/JetCorePerfectSeedGenerator/plugins/JetCorePerfectSeedGenerator.cc - Description: [one line class summary] - Implementation: [Notes on implementation] */ @@ -83,15 +81,14 @@ #include "CommonTools/UtilAlgos/interface/TFileService.h" // #include "SimG4Core/Application/interface/G4SimTrack.h" -// #include "SimDataFormats/Track/interface/SimTrack.h" -// #include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h" +#include "SimDataFormats/Track/interface/SimTrack.h" +#include "SimDataFormats/Vertex/interface/SimVertex.h" #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetUnit.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" -// #include "SimDataFormats/TrackingHit/interface/PSimHit.h" +#include "SimDataFormats/TrackingHit/interface/PSimHit.h" #include "TTree.h" @@ -114,10 +111,9 @@ JetCorePerfectSeedGenerator::JetCorePerfectSeedGenerator(const edm::ParameterSet vertices_(consumes(iConfig.getParameter("vertices"))), pixelClusters_(consumes >(iConfig.getParameter("pixelClusters"))), cores_(consumes >(iConfig.getParameter("cores"))), - // simtracksToken(consumes >(iConfig.getParameter("simTracks"))), - // simvertexToken(consumes >(iConfig.getParameter("simVertex"))), - trackingParticleToken(consumes >(iConfig.getParameter("trackingParticle"))), - // PSimHitToken(consumes >(iConfig.getParameter("simHit"))), + simtracksToken(consumes >(iConfig.getParameter("simTracks"))), + simvertexToken(consumes >(iConfig.getParameter("simVertex"))), + PSimHitToken(consumes >(iConfig.getParameter("simHit"))), ptMin_(iConfig.getParameter("ptMin")), deltaR_(iConfig.getParameter("deltaR")), chargeFracMin_(iConfig.getParameter("chargeFractionMin")), @@ -129,6 +125,23 @@ JetCorePerfectSeedGenerator::JetCorePerfectSeedGenerator(const edm::ParameterSet produces(); + + // edm::Service fileService; + // JetCorePerfectSeedGeneratorTree= fileService->make("JetCorePerfectSeedGeneratorTree","JetCorePerfectSeedGeneratorTree"); + // JetCorePerfectSeedGeneratorTree->Branch("cluster_measured",clusterMeas,"cluster_measured[30][30][4]/D"); + // JetCorePerfectSeedGeneratorTree->Branch("jet_eta",&jet_eta); + // JetCorePerfectSeedGeneratorTree->Branch("jet_pt",&jet_pt); + + // for(int i=0; i(); auto resultTracks = std::make_unique(); // evt_counter++; - +// std::cout << "event number (iterative)=" << evt_counter<< ", event number (id)="<< iEvent.id().event() << std::endl; using namespace edm; using namespace reco; @@ -162,15 +177,12 @@ void JetCorePerfectSeedGenerator::produce(edm::Event& iEvent, const edm::EventSe allSiPixelClusters.clear(); siPixelDetsWithClusters.clear(); allSiPixelClusters.reserve(inputPixelClusters->dataSize()); // this is important, otherwise push_back invalidates the iterators - // edm::Handle > simtracks; - // iEvent.getByToken(simtracksToken, simtracks); - // edm::Handle > simvertex; - // iEvent.getByToken(simvertexToken, simvertex); - - // iEvent.getByToken(PSimHitToken, simhits); + edm::Handle > simtracks; + iEvent.getByToken(simtracksToken, simtracks); + edm::Handle > simvertex; + iEvent.getByToken(simvertexToken, simvertex); - edm::Handle > trackingparticle; -iEvent.getByToken(trackingParticleToken, trackingparticle); + iEvent.getByToken(PSimHitToken, simhits); Handle > vertices; iEvent.getByToken(vertices_, vertices); @@ -178,6 +190,7 @@ iEvent.getByToken(trackingParticleToken, trackingparticle); Handle > cores; iEvent.getByToken(cores_, cores); + // iEvent.getByToken(pixeldigisimlinkToken, pixeldigisimlink); //--------------------------debuging lines ---------------------// edm::ESHandle pe; @@ -194,6 +207,9 @@ iEvent.getByToken(trackingParticleToken, trackingparticle); print = false; int jet_number = 0; +int seed_number = 0; + + for (unsigned int ji = 0; ji < cores->size(); ji++) { //loop jet jet_number++; @@ -205,20 +221,24 @@ int jet_number = 0; const reco::Vertex& jetVertex = (*vertices)[0]; std::vector splitClustDirSet = splittedClusterDirections(jet, tTopo, pp, jetVertex, 1); + //std::vector splitClustDirSet = splittedClusterDirections(jet, tTopo, pp, jetVertex); + // bool l2off=(splitClustDirSet.size()==0); if(splitClustDirSet.size()==0) {//if layer 1 is broken find direcitons on layer 2 splitClustDirSet = splittedClusterDirections(jet, tTopo, pp, jetVertex, 2); // std::cout << "split on lay2, in numero=" << splitClustDirSet.size() << "+jetDir" << std::endl; } if(inclusiveConeSeed) splitClustDirSet.clear(); splitClustDirSet.push_back(GlobalVector(jet.px(),jet.py(),jet.pz())); + // std::cout << "splitted cluster number=" << splitClustDirSet.size() << std::endl;; + for(int cc=0; cc<(int)splitClustDirSet.size(); cc++){ GlobalVector bigClustDir = splitClustDirSet.at(cc); - // const auto & simtracksVector = simtracks.product(); - // const auto & simvertexVector = simvertex.product(); - const auto & trackingparticleVector = trackingparticle.product(); + const auto & simtracksVector = simtracks.product(); + const auto & simvertexVector = simvertex.product(); + LocalPoint jetInter(0,0,0); jet_eta = jet.eta(); @@ -228,32 +248,79 @@ int jet_number = 0; std::vector goodSimHit; + // edmNew::DetSetVector::const_iterator detIt = inputPixelClusters->begin(); const GeomDet* globDet = DetectorSelector(2, jet, bigClustDir, jetVertex, tTopo); //select detector mostly hitten by the jet if(globDet == 0) continue; - // std::pair,std::vector> goodSimTkVx; - std::vector goodTkP = JetCorePerfectSeedGenerator::coreTracksFillingDeltaR(trackingparticleVector,globDet,jet);; + // const GeomDet* goodDet1 = DetectorSelector(1, jet, bigClustDir, jetVertex, tTopo); + // const GeomDet* goodDet3 = DetectorSelector(3, jet, bigClustDir, jetVertex, tTopo); + // const GeomDet* goodDet4 = DetectorSelector(4, jet, bigClustDir, jetVertex, tTopo); + + - // if(inclusiveConeSeed) { - // // goodSimTkVx = JetCorePerfectSeedGenerator::coreTracksFillingDeltaR(simtracksVector, simvertexVector,globDet,jet); + // for (; detIt != inputPixelClusters->end(); detIt++) { //loop deset //COMMENTATO DA QUIIIII + // const edmNew::DetSet& detset = *detIt; + // const GeomDet* det = geometry_->idToDet(detset.id()); //lui sa il layer con cast a PXBDetId (vedi dentro il layer function) // - // } - // else { //notimplemented feature without sim track - // // std::vector goodSimHit = JetCorePerfectSeedGenerator::coreHitsFilling(simhits,globDet,bigClustDir,jetVertex); - // // goodSimTkVx = JetCorePerfectSeedGenerator::coreTracksFilling(goodSimHit,simtracksVector, simvertexVector); - // } + // for (auto cluster = detset.begin(); cluster != detset.end(); cluster++) { //loop cluster + // + // const SiPixelCluster& aCluster = *cluster; + // det_id_type aClusterID= detset.id(); + // if(DetId(aClusterID).subdetId()!=1) continue; + // + // int lay = tTopo->layer(det->geographicalId()); + // + // std::pair> interPair = findIntersection(bigClustDir,(reco::Candidate::Point)jetVertex.position(), det); + // if(interPair.first==false) continue; + // Basic3DVector inter = interPair.second; + // auto localInter = det->specificSurface().toLocal((GlobalPoint)inter); + // + // GlobalPoint pointVertex(jetVertex.position().x(), jetVertex.position().y(), jetVertex.position().z()); + // + // + // // GlobalPoint cPos = det->surface().toGlobal(pp->localParametersV(aCluster,(*geometry_->idToDetUnit(detIt->id())))[0].first); + // LocalPoint cPos_local = pp->localParametersV(aCluster,(*geometry_->idToDetUnit(detIt->id())))[0].first; + // + // if(std::abs(cPos_local.x()-localInter.x())/pitchX<=jetDimX/2 && std::abs(cPos_local.y()-localInter.y())/pitchY<=jetDimY/2){ // per ora preso baricentro, da migliorare + // + // if(det==goodDet1 || det==goodDet3 || det==goodDet4 || det==globDet) { + // // fillPixelMatrix(aCluster,lay,localInter, det, input_matrix_cluster); + // fillPixelMatrix(aCluster,lay,localInter, det, input_tensors); + // } + // } //cluster in ROI + // } //cluster + // } //detset + std::pair,std::vector> goodSimTkVx; + + if(inclusiveConeSeed) { + auto jetVert = jetVertex; + goodSimTkVx = JetCorePerfectSeedGenerator::coreTracksFillingDeltaR(simtracksVector, simvertexVector,globDet,jet,jetVert ); + } + else { + std::vector goodSimHit = JetCorePerfectSeedGenerator::coreHitsFilling(simhits,globDet,bigClustDir,jetVertex); + goodSimTkVx = JetCorePerfectSeedGenerator::coreTracksFilling(goodSimHit,simtracksVector, simvertexVector); + } + seed_number = goodSimTkVx.first.size(); + std::cout << "seed number in deltaR cone =" << seed_number << std::endl; + + std::vector> seedVector = JetCorePerfectSeedGenerator::seedParFilling(goodSimTkVx,globDet, jet); + std::cout << "seedVector.size()=" << seedVector.size()<< std::endl; - // std::vector> seedVector = JetCorePerfectSeedGenerator::seedParFilling(goodSimTkVx,globDet); - std::vector> seedVector = JetCorePerfectSeedGenerator::seedParFilling(goodTkP,globDet); for(uint tk=0; tk=0 && nx>=0 && ny>=0) { + // clusterMeas[nx][ny][layer-1] += (pix.adc)/(float)(14000);//std::cout << "clusterMeas[nx][ny][layer-1] += (pix.adc)/(float)(14000) =" << (pix.adc)/(float)(14000) << std::endl;; + // } + } + } + +} + + const GeomDet* JetCorePerfectSeedGenerator::DetectorSelector(int llay, const reco::Candidate& jet, GlobalVector jetDir, const reco::Vertex& jetVertex, const TrackerTopology* const tTopo){ @@ -427,7 +530,6 @@ std::vector JetCorePerfectSeedGenerator::splittedClusterDirections float expCharge = std::sqrt(1.08f + jetZOverRho * jetZOverRho) * centralMIPCharge_; // std::cout <<"jDir="<< jetDir << ", cDir=" <,std::vector> JetCorePerfectSeedGenerator::coreTracksFilling(std::vector goodSimHit, const auto & simtracksVector, const auto & simvertexVector){ -// std::vector goodSimTrk; -// std::vector goodSimVtx; -// -// for(uint j=0; jsize(); j++){ -// for(std::vector::const_iterator it=goodSimHit.begin(); it!=goodSimHit.end(); ++it) { -// SimTrack st = simtracksVector->at(j); -// if(st.trackId()==(*it).trackId()) { -// goodSimTrk.push_back(st); -// for(uint v =0; vsize(); v++) { -// SimVertex sv = simvertexVector->at(v); -// if((int)sv.vertexId()==(int)st.vertIndex()){ -// // if(st.vertIndex()==-1) goodSimVtx.push_back((SimVertex)jVert); -// //else -// goodSimVtx.push_back(sv); -// } -// } -// } -// } -// } -// std::pair,std::vector> output(goodSimTrk,goodSimVtx); -// return output; -// } - -// std::pair,std::vector> JetCorePerfectSeedGenerator::coreTracksFillingDeltaR( const auto & simtracksVector, const auto & simvertexVector,const GeomDet* globDet, const reco::Candidate& jet){ -// std::vector goodSimTrk; -// std::vector goodSimVtx; -// -// GlobalVector jetDir(jet.px(), jet.py(), jet.pz()); -// for(uint j=0; jsize(); j++){ -// SimTrack st = simtracksVector.at(j); -// GlobalVector trkDir(st.momentum().Px(), st.momentum().Py(), st.momentum().Pz()); -// if(Geom::deltaR(jetDir, trkDir) < deltaR_){ -// goodSimTrk.push_back(st); -// for(uint v =0; vsize(); v++) { -// SimVertex sv = simvertexVector->at(v); -// if((int)sv.vertexId()==(int)st.vertIndex()){ -// // if(st.vertIndex()==-1) goodSimVtx.push_back((SimVertex)jVert); -// //else -// goodSimVtx.push_back(sv); -// } -// } -// -// } -// } -// std::pair,std::vector> output(goodSimTrk,goodSimVtx); -// return output; -// } +std::vector JetCorePerfectSeedGenerator::coreHitsFilling(auto simhits,const GeomDet* globDet,GlobalVector bigClustDir,const reco::Vertex& jetVertex){ + std::vector goodSimHit; + std::vector::const_iterator shIt = simhits->begin(); +// std::set simhitsDetSet; + for (; shIt != simhits->end(); shIt++) { //loop deset + // const edmNew::DetSet& detset = *shIt; + const GeomDet* det = geometry_->idToDet((*shIt).detUnitId()); + // if(det!=goodDet1 && det!=goodDet3 && det!=goodDet4 && det!=globDet) continue; + if(det!=globDet) continue; + std::pair> interPair = findIntersection(bigClustDir,(reco::Candidate::Point)jetVertex.position(), det); + if(interPair.first==false) continue; + Basic3DVector inter = interPair.second; + auto localInter = det->specificSurface().toLocal((GlobalPoint)inter); + // if(jetInter.x()==0 && jetInter.y()==0 && jetInter.z()==0) jetInter = localInter; //filling infoTracks + + // int flip = pixelFlipper(det); + if(std::abs(((*shIt).localPosition()).x()-localInter.x())/pitchX<=jetDimX/2 && std::abs(((*shIt).localPosition()).y()-localInter.y())/pitchY<=jetDimY/2){ + // std::cout << "good sim hit" << (*shIt).trackId()<< std::endl; + goodSimHit.push_back((*shIt)); + } + } + return goodSimHit; +} -std::vector JetCorePerfectSeedGenerator::coreTracksFillingDeltaR( const auto & trackingparticleVector,const GeomDet* globDet, const reco::Candidate& jet){ - std::vector goodTkP; +std::pair,std::vector> JetCorePerfectSeedGenerator::coreTracksFilling(std::vector goodSimHit, const auto & simtracksVector, const auto & simvertexVector){ + std::vector goodSimTrk; + std::vector goodSimVtx; - GlobalVector jetDir(jet.px(), jet.py(), jet.pz()); - for(uint j=0; jsize(); j++){ - TrackingParticle st = trackingparticleVector->at(j); - GlobalVector trkDir(st.px(), st.py(), st.pz()); - if(Geom::deltaR(jetDir, trkDir) < deltaR_){ - goodTkP.push_back(st); + + + for(uint j=0; jsize(); j++){ + for(std::vector::const_iterator it=goodSimHit.begin(); it!=goodSimHit.end(); ++it) { + SimTrack st = simtracksVector->at(j); + if(st.trackId()==(*it).trackId()) { + // goodSimTrk.push_back(st); + + for(uint v =0; vsize(); v++) { + SimVertex sv = simvertexVector->at(v); + if((int)sv.vertexId()==(int)st.vertIndex()){ + // if(st.vertIndex()==-1) goodSimVtx.push_back((SimVertex)jVert); + //else + goodSimTrk.push_back(st); + goodSimVtx.push_back(sv); + } + } + } } } - return goodTkP; + std::pair,std::vector> output(goodSimTrk,goodSimVtx); + return output; } +std::pair,std::vector> JetCorePerfectSeedGenerator::coreTracksFillingDeltaR( const auto & simtracksVector, const auto & simvertexVector,const GeomDet* globDet, const reco::Candidate& jet, auto jetVertex){ + std::vector goodSimTrk; + std::vector goodSimVtx; -// std::vector> JetCorePerfectSeedGenerator::seedParFilling(std::pair,std::vector> goodSimTkVx,const GeomDet* globDet){ -// std::vector> output; -// std::vector goodSimTrk=goodSimTkVx.first; -// std::vector goodSimVtx=goodSimTkVx.second; -// -// for(uint j=0; j> trkInterPair; -// trkInterPair = findIntersection(trkMom,(reco::Candidate::Point)trkPos, globDet); -// if(trkInterPair.first==false) continue; -// Basic3DVector trkInter = trkInterPair.second; -// auto localTrkInter = globDet->specificSurface().toLocal((GlobalPoint)trkInter); -// -// // // for(uint v =0; vsize(); v++) { -// // // SimVertex sv = simvertexVector->at(v); -// // // if((int)sv.vertexId()==(int)st.vertIndex()){ -// // // -// // // } -// // // } -// -// std::array tkPar {{localTrkInter.x(), localTrkInter.y(), st.momentum().Eta(), st.momentum().Phi(), 1/st.momentum().Pt()}}; -// output.push_back(tkPar); -// } -// return output; -// } + GlobalVector jetDir(jet.px(), jet.py(), jet.pz()); -std::vector> JetCorePerfectSeedGenerator::seedParFilling(std::vector goodTkP,const GeomDet* globDet){ - std::vector> output; + for(uint j=0; jsize(); j++){ + SimTrack st = simtracksVector->at(j); + GlobalVector trkDir(st.momentum().Px(), st.momentum().Py(), st.momentum().Pz()); + if(Geom::deltaR(jetDir, trkDir) < deltaR_){ + if(st.charge()==0) continue; + // if((int)st.vertIndex()==-1) { + // goodSimTrk.push_back(st); + // // goodSimVtx.push_back((SimVertex)jetVertex); + // std::cout << "problema" << std::endl; + // } + // else { + for(uint v =0; vsize(); v++) { + SimVertex sv = simvertexVector->at(v); + if((int)sv.vertexId()==(int)st.vertIndex()){ + // if(st.vertIndex()==-1) goodSimVtx.push_back((SimVertex)jVert); + //else + // std::cout << "goodsimtrack " << j<< ", filling good st, pt" << st.momentum().Pt() << ", eta="<< st.momentum().Eta() << ", phi=" << st.momentum().Phi() << std::endl; + goodSimTrk.push_back(st); + goodSimVtx.push_back(sv); + } + } + // } + + } + // else std::cout << "BAD sim track " << j<< ", pt" << st.momentum().Pt() << ", eta="<< st.momentum().Eta() << ", phi=" << st.momentum().Phi() << std::endl; + } + std::pair,std::vector> output(goodSimTrk,goodSimVtx); + return output; +} - for(uint j=0; j> JetCorePerfectSeedGenerator::seedParFilling(std::pair,std::vector> goodSimTkVx,const GeomDet* globDet, const reco::Candidate& jet){ + std::vector> output; + std::vector goodSimTrk=goodSimTkVx.first; + std::vector goodSimVtx=goodSimTkVx.second; + + std::cout << "goodSimTrk.size()" << goodSimTrk.size() << std::endl; + for(uint j=0; j> trkInterPair; + // std::cout << "sv " << (int)sv.vertexId() << "/// st " << (int)st.vertIndex()<< std::endl; trkInterPair = findIntersection(trkMom,(reco::Candidate::Point)trkPos, globDet); - if(trkInterPair.first==false) continue; + if(trkInterPair.first==false) { + GlobalVector jetDir(jet.px(), jet.py(), jet.pz()); + double deltar = Geom::deltaR(jetDir, trkMom); + // std::cout << "not intersection, deltaR=" << deltar << std::endl; + + continue; + } Basic3DVector trkInter = trkInterPair.second; + auto localTrkInter = globDet->specificSurface().toLocal((GlobalPoint)trkInter); + // std::cout << ", localtrackInter" << localTrkInter.x() << ", " << localTrkInter.y() << std::endl; + + + // double tkpar[Npar]; // // for(uint v =0; vsize(); v++) { // // SimVertex sv = simvertexVector->at(v); // // if((int)sv.vertexId()==(int)st.vertIndex()){ // // // // } // // } + // + // tkpar[0] = localTrkInter.x(); + // tkpar[1] = localTrkInter.y(); + // tkpar[2] = st.momentum().Eta(); + // tkpar[3] = st.momentum().Phi(); + // tkpar[4] = 1/st.momentum().Pt(); + + // std::cout << "IN, pt=" < > inputPixelClusters; edm::EDGetTokenT< edm::DetSetVector > pixeldigisimlinkToken; edm::EDGetTokenT > cores_; - // edm::EDGetTokenT > simtracksToken; - // edm::EDGetTokenT > simvertexToken; - // edm::EDGetTokenT > PSimHitToken; - edm::EDGetTokenT > trackingParticleToken; - // edm::Handle > simhits; + edm::EDGetTokenT > simtracksToken; + edm::EDGetTokenT > simvertexToken; + edm::EDGetTokenT > PSimHitToken; + edm::Handle > simhits; double ptMin_; double deltaR_; @@ -181,14 +179,12 @@ class JetCorePerfectSeedGenerator : public edm::one::EDProducer splittedClusterDirections(const reco::Candidate&, const TrackerTopology* const, auto pp, const reco::Vertex& jetVertex, int ); - // std::vector coreHitsFilling(auto,const GeomDet*,GlobalVector,const reco::Vertex&); - // std::pair,std::vector> coreTracksFilling(std::vector, const auto &, const auto &); + std::vector coreHitsFilling(auto,const GeomDet*,GlobalVector,const reco::Vertex&); + std::pair,std::vector> coreTracksFilling(std::vector, const auto &, const auto &); - // std::vector> seedParFilling(std::pair,std::vector>,const GeomDet*); - std::vector> seedParFilling(std::vector,const GeomDet*); + std::vector> seedParFilling(std::pair,std::vector>,const GeomDet*, const reco::Candidate&); - // std::pair,std::vector> coreTracksFillingDeltaR( const auto &, const auto &,const GeomDet* , const reco::Candidate& ); - std::vector coreTracksFillingDeltaR( const auto &,const GeomDet* , const reco::Candidate& ); + std::pair,std::vector> coreTracksFillingDeltaR( const auto &, const auto &,const GeomDet* , const reco::Candidate&,auto ); }; diff --git a/RecoTracker/TkSeedGenerator/python/jetCorePerfectSeedGenerator_cfi.py b/RecoTracker/TkSeedGenerator/python/jetCorePerfectSeedGenerator_cfi.py index 3c57db00edc55..4ade6668c734b 100644 --- a/RecoTracker/TkSeedGenerator/python/jetCorePerfectSeedGenerator_cfi.py +++ b/RecoTracker/TkSeedGenerator/python/jetCorePerfectSeedGenerator_cfi.py @@ -7,6 +7,9 @@ ptMin= cms.double(300), deltaR= cms.double(0.3), chargeFractionMin= cms.double(18000.0), + simTracks= cms.InputTag("g4SimHits"), + simVertex= cms.InputTag("g4SimHits"), + simHit= cms.InputTag("g4SimHits","TrackerHitsPixelBarrelLowTof"), centralMIPCharge= cms.double(2), pixelCPE= cms.string( "PixelCPEGeneric" ) ) diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 9026335f03a3b..78d039baa8c77 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -351,6 +351,7 @@ def _getMVASelectors(postfix): ) # Select jets for JetCore tracking +# highPtJets = cms.EDFilter("CandPtrSelector", src = cms.InputTag("ak4CaloJets"), cut = cms.string("pt()>1000")) #perfectSeeding used in Connecting the Dots highPtJets = cms.EDFilter("CandPtrSelector", src = cms.InputTag("ak4CaloJets"), cut = cms.string("pt()>1000 && eta()<1.4 && eta()>-1.4")) highPtJetsForTrk = highPtJetsForTrk = highPtJets.clone(src = "ak4CaloJetsForTrk")