Skip to content

Commit

Permalink
Merge pull request #16 from vberta/CMSSW_11_2_0_pre8_trackjet_rebased
Browse files Browse the repository at this point in the history
cleaning of _cff and DeepCore plugin, various fix, Run3 validation only
  • Loading branch information
vberta authored Nov 24, 2020
2 parents 5b2cb2f + ae19b27 commit 31ededd
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 70 deletions.
36 changes: 7 additions & 29 deletions RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,43 +137,21 @@
keepOriginalIfRebuildFails = True,
lockHits = False,
requireSeedHitsInRebuild = False,
trajectoryFilter = cms.PSet(refToPSet_ = cms.string('CkfBaseTrajectoryFilter_blockLoose'))
trajectoryFilter = cms.PSet(refToPSet_ = cms.string('jetCoreRegionalStepDeepCoreTrajectoryFilter'))
)

#customized cleaner for DeepCore
trajectoryCleanerBySharedHits_JetCore = cms.ESProducer("TrajectoryCleanerESProducer",
ComponentName = cms.string('jetCoreTrajectoryCleanerBySharedHits'),
ComponentType = cms.string('TrajectoryCleanerBySharedHits'),
MissingHitPenalty = cms.double(20.0),
ValidHitBonus = cms.double(5.0),
allowSharedFirstHit = cms.bool(True),
from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
jetCoreRegionalStepDeepCoreTrajectoryCleaner = trajectoryCleanerBySharedHits.clone(
ComponentName = cms.string('jetCoreRegionalStepDeepCoreTrajectoryCleaner'),
fractionShared = cms.double(0.45)
)

#DeepCore filter
CkfBaseTrajectoryFilter_blockLoose = cms.PSet(
ComponentType = cms.string('CkfBaseTrajectoryFilter'),
chargeSignificance = cms.double(-1.0),
constantValueForLostHitsFractionFilter = cms.double(2.0),
extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),
maxCCCLostHits = cms.int32(9999),
jetCoreRegionalStepDeepCoreTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( #blockloose
maxConsecLostHits = cms.int32(2),
maxLostHits = cms.int32(999),
maxLostHitsFraction = cms.double(1.1),
maxNumberOfHits = cms.int32(100),
minGoodStripCharge = cms.PSet(
refToPSet_ = cms.string('SiStripClusterChargeCutNone')
),
minHitsMinPt = cms.int32(3),
minNumberOfHitsForLoopers = cms.int32(13),
minNumberOfHitsPerLoop = cms.int32(4),
minPt = cms.double(0.9),
minimumNumberOfHits = cms.int32(2),
nSigmaMinPt = cms.double(5.0),
pixelSeedExtension = cms.bool(False),
seedExtension = cms.int32(0),
seedPairPenalty = cms.int32(0),
strictSeedExtension = cms.bool(False)
minimumNumberOfHits = cms.int32(2)
)


Expand All @@ -198,7 +176,7 @@
#onlyPixelHitsForSeedCleaner = cms.bool(True),
)
seedingDeepCore.toModify(jetCoreRegionalStepTrackCandidates,
TrajectoryCleaner = 'jetCoreTrajectoryCleanerBySharedHits',
TrajectoryCleaner = 'jetCoreRegionalStepDeepCoreTrajectoryCleaner',
doSeedingRegionRebuilding = True,
)

Expand Down
40 changes: 24 additions & 16 deletions RecoTracker/TkSeedGenerator/plugins/DeepCoreSeedGenerator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,13 @@

// system include files

#define jetDimX 30 //pixel dimension of NN window on layer2
#define jetDimY 30 //pixel dimension of NN window on layer2
#define Nlayer 4 //Number of layer used in DeepCore
#define Nover 3 //Max number of tracks recorded per pixel
#define Npar 5 //Number of track parameter

#include "DeepCoreSeedGenerator.h"

#include <memory>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/one/EDProducer.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
Expand Down Expand Up @@ -123,8 +117,6 @@ DeepCoreSeedGenerator::DeepCoreSeedGenerator(const edm::ParameterSet& iConfig)

DeepCoreSeedGenerator::~DeepCoreSeedGenerator() {}

#define foreach BOOST_FOREACH

void DeepCoreSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
auto result = std::make_unique<TrajectorySeedCollection>();
auto resultTracks = std::make_unique<reco::TrackCollection>();
Expand Down Expand Up @@ -172,7 +164,6 @@ void DeepCoreSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& i

auto output = std::make_unique<edmNew::DetSetVector<SiPixelCluster>>();

print = false;
int jet_number = 0;
for (unsigned int ji = 0; ji < cores->size(); ji++) { //loop jet
jet_number++;
Expand Down Expand Up @@ -259,7 +250,7 @@ void DeepCoreSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& i

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
jetDimY / 2) { //used the baricenter, better description maybe useful

if (det == goodDet1 || det == goodDet3 || det == goodDet4 || det == globDet) {
fillPixelMatrix(aCluster, lay, localInter, det, input_tensors);
Expand Down Expand Up @@ -434,8 +425,11 @@ void DeepCoreSeedGenerator::fillPixelMatrix(
}
}

std::pair<double[jetDimX][jetDimY][Nover][Npar], double[jetDimX][jetDimY][Nover]> DeepCoreSeedGenerator::SeedEvaluation(
tensorflow::NamedTensorList input_tensors) {
// std::pair<double[jetDimX][jetDimY][Nover][Npar], double[jetDimX][jetDimY][Nover]> DeepCoreSeedGenerator::SeedEvaluation(
std::pair<double[DeepCoreSeedGenerator::jetDimX][DeepCoreSeedGenerator::jetDimY][DeepCoreSeedGenerator::Nover]
[DeepCoreSeedGenerator::Npar],
double[DeepCoreSeedGenerator::jetDimX][DeepCoreSeedGenerator::jetDimY][DeepCoreSeedGenerator::Nover]>
DeepCoreSeedGenerator::SeedEvaluation(tensorflow::NamedTensorList input_tensors) {
std::vector<tensorflow::Tensor> outputs;
std::vector<std::string> output_names;
output_names.push_back(outputTensorName_[0]);
Expand Down Expand Up @@ -619,10 +613,24 @@ void DeepCoreSeedGenerator::endJob() {}

// ------------ method fills 'descriptions' with the allowed parameters for the module ------------
void DeepCoreSeedGenerator::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
//The following says we do not know what parameters are allowed so do no validation
// Please change this to state exactly what you do use, even if it is no parameters
edm::ParameterSetDescription desc;
desc.setUnknown();
// desc.setUnknown();

desc.add<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
desc.add<edm::InputTag>("pixelClusters", edm::InputTag("siPixelClustersPreSplitting"));
desc.add<edm::InputTag>("cores", edm::InputTag("jetsForCoreTracking"));
desc.add<double>("ptMin", 300);
desc.add<double>("deltaR", 0.1);
desc.add<double>("chargeFractionMin", 18000.0);
desc.add<double>("centralMIPCharge", 2);
desc.add<std::string>("pixelCPE", "PixelCPEGeneric");
desc.add<edm::FileInPath>("weightFile",
edm::FileInPath("RecoTracker/TkSeedGenerator/data/DeepCoreSeedGenerator_TrainedModel.pb"));
desc.add<std::vector<std::string>>("inputTensorName", {"input_1", "input_2", "input_3"});
desc.add<std::vector<std::string>>("outputTensorName", {"output_node0", "output_node1"});
desc.add<unsigned>("nThreads", 1);
desc.add<std::string>("singleThreadPool", "no_threads");
desc.add<double>("probThr", 0.99);
descriptions.addDefault(desc);
}

Expand Down
27 changes: 11 additions & 16 deletions RecoTracker/TkSeedGenerator/plugins/DeepCoreSeedGenerator.h
Original file line number Diff line number Diff line change
@@ -1,17 +1,11 @@
#ifndef RecoTracker_TkSeedGenerator_DeepCoreSeedGenerator_H
#define RecoTracker_TkSeedGenerator_DeepCoreSeedGenerator_H

#define jetDimX 30 //pixel dimension of NN window on layer2
#define jetDimY 30 //pixel dimension of NN window on layer2
#define Nlayer 4 //Number of layer used in DeepCore
#define Nover 3 //Max number of tracks recorded per pixel
#define Npar 5 //Number of track parameter

#include <memory>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/one/EDProducer.h"
#include "FWCore/Framework/interface/stream/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/MakerMacros.h"
Expand Down Expand Up @@ -72,7 +66,7 @@ namespace edm {
class EventSetup;
} // namespace edm

class DeepCoreSeedGenerator : public edm::one::EDProducer<edm::one::SharedResources> {
class DeepCoreSeedGenerator : public edm::stream::EDProducer<> {
public:
explicit DeepCoreSeedGenerator(const edm::ParameterSet&);
~DeepCoreSeedGenerator() override;
Expand All @@ -96,19 +90,20 @@ class DeepCoreSeedGenerator : public edm::one::EDProducer<edm::one::SharedResour

typedef boost::sub_range<std::vector<SiPixelClusterWithTracks>> SiPixelClustersWithTracks;

TFile* DeepCoreSeedGenerator_out;
TTree* DeepCoreSeedGeneratorTree;

double jet_pt;
double jet_eta;
double pitchX = 0.01; //100 um (pixel pitch in X)
double pitchY = 0.015; //150 um (pixel pitch in Y)
bool print = false;
double pitchX = 0.01; //100 um (pixel pitch in X)
double pitchY = 0.015; //150 um (pixel pitch in Y)
static const int jetDimX = 30; //pixel dimension of NN window on layer2
static const int jetDimY = 30; //pixel dimension of NN window on layer2
static const int Nlayer = 4; //Number of layer used in DeepCore
static const int Nover = 3; //Max number of tracks recorded per pixel
static const int Npar = 5; //Number of track parameter

private:
void beginJob() override;
void beginJob();
void produce(edm::Event&, const edm::EventSetup&) override;
void endJob() override;
void endJob();

// ----------member data ---------------------------
std::string propagatorName_;
Expand Down
14 changes: 13 additions & 1 deletion Validation/RecoTrack/python/PostProcessorTracker_cfi.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def _addNoFlow(module):
if not tmp[ind-1] in _noflowSeen:
module.noFlowDists.append(tmp[ind-1])

_defaultSubdirs = ["Tracking/Track/*", "Tracking/TrackTPPtLess09/*", "Tracking/TrackFromPV/*", "Tracking/TrackFromPVAllTP/*", "Tracking/TrackAllTPEffic/*", "Tracking/TrackBuilding/*","Tracking/TrackConversion/*", "Tracking/TrackGsf/*", "Tracking/JetCore/*"]
_defaultSubdirs = ["Tracking/Track/*", "Tracking/TrackTPPtLess09/*", "Tracking/TrackFromPV/*", "Tracking/TrackFromPVAllTP/*", "Tracking/TrackAllTPEffic/*", "Tracking/TrackBuilding/*","Tracking/TrackConversion/*", "Tracking/TrackGsf/*"]
_defaultSubdirsSummary = [e.replace("/*","") for e in _defaultSubdirs]

postProcessorTrack = DQMEDHarvester("DQMGenericClient",
Expand Down Expand Up @@ -317,6 +317,18 @@ def _addNoFlow(module):
postProcessorTrackSummary
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
postProcessorTrackRun3 = postProcessorTrack.clone()
postProcessorTrackRun3.subDirs.extend(["Tracking/JetCore/*"])
run3_common.toReplaceWith(postProcessorTrack,postProcessorTrackRun3)
postProcessorTrackSummaryRun3 = postProcessorTrackSummary.clone()
postProcessorTrackSummaryRun3.subDirs.extend(["Tracking/JetCore/*"])
run3_common.toReplaceWith(postProcessorTrackSummary,postProcessorTrackSummaryRun3)
postProcessorTrack2DRun3 = postProcessorTrack2D.clone()
postProcessorTrack2DRun3.subDirs.extend(["Tracking/JetCore/*"])
run3_common.toReplaceWith(postProcessorTrack2D,postProcessorTrack2DRun3)


fastSim.toModify(postProcessorTrack, subDirs = [e for e in _defaultSubdirs if e not in ["Tracking/TrackGsf/*","Tracking/TrackConversion/*"]])
fastSim.toModify(postProcessorTrackSummary, subDirs = [e for e in _defaultSubdirsSummary if e not in ["Tracking/TrackGsf","Tracking/TrackConversion"]])

Expand Down
23 changes: 15 additions & 8 deletions Validation/RecoTrack/python/TrackValidation_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -704,11 +704,13 @@ def _uniqueFirstLayers(layerList):
trackValidatorBuilding +
trackValidatorBuildingPreSplitting +
trackValidatorConversion +
trackValidatorGsfTracks+
trackValidatorJetCore,
trackValidatorGsfTracks,
tracksPreValidation
)

from Configuration.Eras.Modifier_run3_common_cff import run3_common
run3_common.toReplaceWith(tracksValidation, cms.Sequence(tracksValidation.copy()+trackValidatorJetCore))

from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
#tracksValidationPhase2 = cms.Sequence(tracksValidation+trackValidatorTPEtaGreater2p7) # it does not work
tracksPreValidationPhase2 = tracksPreValidation.copy()
Expand Down Expand Up @@ -903,23 +905,28 @@ def _uniqueFirstLayers(layerList):
trackValidatorsTrackingOnly.replace(trackValidatorAllTPEfficStandalone,trackValidatorAllTPEfficTrackingOnly)
trackValidatorsTrackingOnly += trackValidatorSeedingTrackingOnly
trackValidatorsTrackingOnly += trackValidatorSeedingPreSplittingTrackingOnly
trackValidatorsTrackingOnly += trackValidatorJetCore
trackValidatorsTrackingOnly += trackValidatorJetCoreSeedingTrackingOnly
trackValidatorsTrackingOnly += trackValidatorBuilding
trackValidatorsTrackingOnly += trackValidatorBuildingPreSplitting
trackValidatorsTrackingOnly.replace(trackValidatorConversionStandalone, trackValidatorConversionTrackingOnly)
trackValidatorsTrackingOnly.remove(trackValidatorGsfTracksStandalone)
trackValidatorsTrackingOnly.replace(trackValidatorBHadronStandalone, trackValidatorBHadronTrackingOnly)

run3_common.toReplaceWith(trackValidatorsTrackingOnly, cms.Sequence(
trackValidatorsTrackingOnly.copy()+
trackValidatorJetCore+
trackValidatorJetCoreSeedingTrackingOnly
)
)
phase2_tracker.toReplaceWith(trackValidatorsTrackingOnly, trackValidatorsTrackingOnly.copyAndExclude([ #must be done for each era which does not have jetcore in the iteration
trackValidatorJetCore,
trackValidatorJetCoreSeedingTrackingOnly
]))
fastSim.toReplaceWith(trackValidatorsTrackingOnly, trackValidatorsTrackingOnly.copyAndExclude([
trackValidatorBuildingPreSplitting,
trackValidatorSeedingPreSplittingTrackingOnly,
trackValidatorConversionTrackingOnly,
trackValidatorBHadronTrackingOnly
]))
phase2_tracker.toReplaceWith(trackValidatorsTrackingOnly, trackValidatorsTrackingOnly.copyAndExclude([
trackValidatorJetCore,
trackValidatorJetCoreSeedingTrackingOnly
]))
tracksValidationTrackingOnly = cms.Sequence(
trackValidatorsTrackingOnly,
tracksPreValidationTrackingOnly,
Expand Down

0 comments on commit 31ededd

Please sign in to comment.