Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update trajectory filters (minNumberOfHits --> minNumberOfHitsForLoopers) #14317

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
25 changes: 25 additions & 0 deletions HLTrigger/Configuration/python/customizeHLTforCMSSW.py
Expand Up @@ -38,6 +38,30 @@ def customiseFor13753(process):
producer.CleanerPSet.useQuadrupletAlgo = cms.bool(False)
return process

def customiseFor14317(process):
for pset in process._Process__psets.values():
if hasattr(pset,'ComponentType'):
if (pset.ComponentType == 'CkfBaseTrajectoryFilter'):
value = cms.int32(13)
if hasattr(pset,'minNumberOfHits'):
value = getattr(pset,'minNumberOfHits')
delattr(pset,'minNumberOfHits')
if not hasattr(pset,'minNumberOfHitsForLoopers'):
pset.minNumberOfHitsForLoopers = value
if not hasattr(pset,'minNumberOfHitsPerLoop'):
pset.minNumberOfHitsPerLoop = cms.int32(4)
if not hasattr(pset,'extraNumberOfHitsBeforeTheFirstLoop'):
pset.extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4)
if not hasattr(pset,'maxLostHitsFraction'):
pset.maxLostHitsFraction = cms.double(999.)
if not hasattr(pset,'constantValueForLostHitsFractionFilter'):
pset.constantValueForLostHitsFractionFilter = cms.double(1.)
if not hasattr(pset,'minimumNumberOfHits'):
pset.minimumNumberOfHits = cms.int32(5)
if not hasattr(pset,'seedPairPenalty'):
pset.seedPairPenalty = cms.int32(0)
return process

#
# CMSSW version specific customizations
def customizeHLTforCMSSW(process, menuType="GRun"):
Expand All @@ -48,6 +72,7 @@ def customizeHLTforCMSSW(process, menuType="GRun"):
if cmsswVersion >= "CMSSW_8_1":
process = customiseFor13753(process)
process = customiseFor14282(process)
process = customiseFor14317(process)

if cmsswVersion >= "CMSSW_8_0":
# process = customiseFor12718(process)
Expand Down
Expand Up @@ -13,7 +13,7 @@
#include "TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h"
#include "TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h"
#include "TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h"

#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"

class CkfBaseTrajectoryFilter : public TrajectoryFilter {
public:
Expand Down Expand Up @@ -51,6 +51,18 @@ class CkfBaseTrajectoryFilter : public TrajectoryFilter {
virtual bool toBeContinued( TempTrajectory& traj) const {return TBC<TempTrajectory>(traj);}

virtual std::string name() const { return "CkfBaseTrajectoryFilter";}

inline edm::ParameterSetDescription getFilledConfigurationDescription() {
edm::ParameterSetDescription descLooper = theLooperTrajectoryFilter->getFilledConfigurationDescription();
edm::ParameterSetDescription descLostHitsFraction = theLostHitsFractionTrajectoryFilter->getFilledConfigurationDescription();
edm::ParameterSetDescription descMinHits = theMinHitsTrajectoryFilter->getFilledConfigurationDescription();

edm::ParameterSetDescription desc;
desc.add<edm::ParameterSetDescription>("looperTrajectoryFilter", descLooper);
desc.add<edm::ParameterSetDescription>("lostHitsFractionTrajectoryFilter",descLostHitsFraction);
desc.add<edm::ParameterSetDescription>("minHitsTrajectoryFilter", descMinHits);
return desc;
}

protected:

Expand Down
Expand Up @@ -2,24 +2,22 @@
#define LooperTrajectoryFilter_H

#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"

class LooperTrajectoryFilter final : public TrajectoryFilter {
public:

explicit LooperTrajectoryFilter( int minNumberOfHits=13,
explicit LooperTrajectoryFilter( int minNumberOfHitsForLoopers=13,
int minNumberOfHitsPerLoop=4,
int extraNumberOfHitsBeforeTheFirstLoop=4):
theMinNumberOfHits(minNumberOfHits),
theMinNumberOfHitsForLoopers(minNumberOfHitsForLoopers),
theMinNumberOfHitsPerLoop(minNumberOfHitsPerLoop),
theExtraNumberOfHitsBeforeTheFirstLoop(extraNumberOfHitsBeforeTheFirstLoop){}

explicit LooperTrajectoryFilter( const edm::ParameterSet & pset, edm::ConsumesCollector& iC){
theMinNumberOfHits = pset.existsAs<int>("minNumberOfHits") ?
pset.getParameter<int>("minNumberOfHits") : 13;
theMinNumberOfHitsPerLoop= pset.existsAs<int>("minNumberOfHitsPerLoop") ?
pset.getParameter<int>("minNumberOfHitsPerLoop") : 4;
theExtraNumberOfHitsBeforeTheFirstLoop= pset.existsAs<int>("extraNumberOfHitsBeforeTheFirstLoop") ?
pset.getParameter<int>("extraNumberOfHitsBeforeTheFirstLoop") : 4;
theMinNumberOfHitsForLoopers = pset.getParameter<int>("minNumberOfHitsForLoopers");
theMinNumberOfHitsPerLoop = pset.getParameter<int>("minNumberOfHitsPerLoop");
theExtraNumberOfHitsBeforeTheFirstLoop = pset.getParameter<int>("extraNumberOfHitsBeforeTheFirstLoop");

}

Expand All @@ -31,10 +29,18 @@ class LooperTrajectoryFilter final : public TrajectoryFilter {

virtual std::string name() const{return "LooperTrajectoryFilter";}

inline edm::ParameterSetDescription getFilledConfigurationDescription() {
edm::ParameterSetDescription desc;
desc.add<int>("minNumberOfHitsForLoopers", 13);
desc.add<int>("minNumberOfHitsPerLoop", 4);
desc.add<int>("extraNumberOfHitsBeforeTheFirstLoop", 4);
return desc;
}

protected:

template<class T> bool QF(const T & traj) const{
if ( traj.isLooper() && (traj.foundHits() < theMinNumberOfHits) ) return false;
if ( traj.isLooper() && (traj.foundHits() < theMinNumberOfHitsForLoopers) ) return false;
else return true;
}

Expand All @@ -47,7 +53,7 @@ class LooperTrajectoryFilter final : public TrajectoryFilter {
return ret;
}

int theMinNumberOfHits;
int theMinNumberOfHitsForLoopers;
int theMinNumberOfHitsPerLoop;
int theExtraNumberOfHitsBeforeTheFirstLoop;

Expand Down
Expand Up @@ -2,19 +2,18 @@
#define LostHitsFractionTrajectoryFilter_H

#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"
#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"

class LostHitsFractionTrajectoryFilter final : public TrajectoryFilter {
public:

explicit LostHitsFractionTrajectoryFilter( float maxLostHitsFraction=1./10.,float constantValue=1 ):
explicit LostHitsFractionTrajectoryFilter( float maxLostHitsFraction=999.,float constantValue=1 ):
theMaxLostHitsFraction( maxLostHitsFraction),
theConstantValue( constantValue) {}

explicit LostHitsFractionTrajectoryFilter( const edm::ParameterSet & pset, edm::ConsumesCollector& iC){
theMaxLostHitsFraction = pset.existsAs<double>("maxLostHitsFraction") ?
pset.getParameter<double>("maxLostHitsFraction") : 999;
theConstantValue = pset.existsAs<double>("constantValueForLostHitsFractionFilter") ?
pset.getParameter<double>("constantValueForLostHitsFractionFilter") : 1;
theMaxLostHitsFraction = pset.getParameter<double>("maxLostHitsFraction");
theConstantValue = pset.getParameter<double>("constantValueForLostHitsFractionFilter");
}

virtual bool qualityFilter( const Trajectory& traj) const { return TrajectoryFilter::qualityFilterIfNotContributing; }
Expand All @@ -25,6 +24,13 @@ class LostHitsFractionTrajectoryFilter final : public TrajectoryFilter {

virtual std::string name() const{return "LostHitsFractionTrajectoryFilter";}

inline edm::ParameterSetDescription getFilledConfigurationDescription() {
edm::ParameterSetDescription desc;
desc.add<double>("maxLostHitsFraction", 999.);
desc.add<double>("constantValueForLostHitsFractionFilter", 1.);
return desc;
}

protected:

template<class T> bool TBC(T& traj) const {
Expand Down
Expand Up @@ -2,7 +2,7 @@
#define MinHitsTrajectoryFilter_H

#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h"

#include "FWCore/ParameterSet/interface/ParameterSetDescription.h"

/** A TrajectoryFilter that stops reconstruction if P_t drops
* below some value at some confidence level.
Expand All @@ -13,11 +13,11 @@
class MinHitsTrajectoryFilter final : public TrajectoryFilter {
public:

explicit MinHitsTrajectoryFilter( int minHits=-1, int seedPairPenalty=0):theMinHits( minHits), theSeedPairPenalty(seedPairPenalty) {}
explicit MinHitsTrajectoryFilter( int minHits=5, int seedPairPenalty=0):theMinHits( minHits), theSeedPairPenalty(seedPairPenalty) {}

MinHitsTrajectoryFilter( const edm::ParameterSet & pset, edm::ConsumesCollector& iC):
theMinHits( pset.getParameter<int>("minimumNumberOfHits")),
theSeedPairPenalty(pset.exists("seedPairPenalty") ? pset.getParameter<int>("seedPairPenalty") : 0)
MinHitsTrajectoryFilter( const edm::ParameterSet & pset, edm::ConsumesCollector& iC)
: theMinHits ( pset.getParameter<int>("minimumNumberOfHits") )
, theSeedPairPenalty( pset.getParameter<int>("seedPairPenalty") )
{}

virtual bool qualityFilter( const Trajectory& traj) const { return QF<Trajectory>(traj);}
Expand All @@ -28,6 +28,13 @@ class MinHitsTrajectoryFilter final : public TrajectoryFilter {

virtual std::string name() const {return "MinHitsTrajectoryFilter";}

inline edm::ParameterSetDescription getFilledConfigurationDescription() {
edm::ParameterSetDescription desc;
desc.add<int>("minimumNumberOfHits",5);
desc.add<int>("seedPairPenalty", 0);
return desc;
}

protected:

template<class T> bool QF(const T & traj) const{
Expand Down
Expand Up @@ -35,8 +35,8 @@
strictSeedExtension = cms.bool(False),

# Cuts for looperTrajectoryFilter
minNumberOfHits = cms.int32(13),
minNumberOfHitsPerLoop = cms.int32(4),
minNumberOfHitsForLoopers = cms.int32(13),
minNumberOfHitsPerLoop = cms.int32(4),
extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4),

# Cut on CCC hits
Expand Down