CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
FastjetJetProducer Class Reference

#include <FastjetJetProducer.h>

Inheritance diagram for FastjetJetProducer:
VirtualJetProducer edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper cms::CATopJetProducer cms::HTTTopJetProducer

Public Types

typedef boost::shared_ptr< DynamicRfiltDynamicRfiltPtr
 
typedef fastjet::Transformer transformer
 
typedef std::vector< transformer_ptrtransformer_coll
 
typedef std::unique_ptr< transformertransformer_ptr
 
- Public Types inherited from VirtualJetProducer
typedef boost::shared_ptr< fastjet::GhostedAreaSpec > ActiveAreaSpecPtr
 
typedef boost::shared_ptr< fastjet::AreaDefinition > AreaDefinitionPtr
 
typedef boost::shared_ptr< fastjet::ClusterSequence > ClusterSequencePtr
 
typedef boost::shared_ptr< fastjet::JetDefinition > JetDefPtr
 
typedef boost::shared_ptr< fastjet::JetDefinition::Plugin > PluginPtr
 
typedef boost::shared_ptr< fastjet::RangeDefinition > RangeDefPtr
 
- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 FastjetJetProducer (const edm::ParameterSet &iConfig)
 
virtual void produce (edm::Event &iEvent, const edm::EventSetup &iSetup)
 
virtual ~FastjetJetProducer ()
 
- Public Member Functions inherited from VirtualJetProducer
std::string jetType () const
 
 VirtualJetProducer (const edm::ParameterSet &iConfig)
 
virtual ~VirtualJetProducer ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel)
 
virtual ~ProducerBase () noexcept(false)
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void fillDescriptionsFromFastJetProducer (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from VirtualJetProducer
static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void fillDescriptionsFromVirtualJetProducer (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Protected Member Functions

virtual void produceTrackJets (edm::Event &iEvent, const edm::EventSetup &iSetup)
 
virtual void runAlgorithm (edm::Event &iEvent, const edm::EventSetup &iSetup)
 
- Protected Member Functions inherited from VirtualJetProducer
virtual void addHTTTopJetTagInfoCollection (edm::Event &iEvent, const edm::EventSetup &iSetup, edm::OrphanHandle< reco::BasicJetCollection > &oh)
 
virtual void copyConstituents (const std::vector< fastjet::PseudoJet > &fjConstituents, reco::Jet *jet)
 
virtual std::vector< reco::CandidatePtrgetConstituents (const std::vector< fastjet::PseudoJet > &fjConstituents)
 
virtual void inputTowers ()
 
virtual bool isAnomalousTower (reco::CandidatePtr input)
 
bool makeBasicJet (const JetType::Type &fTag)
 
bool makeCaloJet (const JetType::Type &fTag)
 
bool makeGenJet (const JetType::Type &fTag)
 
bool makePFClusterJet (const JetType::Type &fTag)
 
bool makePFJet (const JetType::Type &fTag)
 
virtual void makeProduces (std::string s, std::string tag="")
 
bool makeTrackJet (const JetType::Type &fTag)
 
void offsetCorrectJets (std::vector< fastjet::PseudoJet > &orphanInput)
 
virtual void output (edm::Event &iEvent, edm::EventSetup const &iSetup)
 
template<typename T >
void writeCompoundJets (edm::Event &iEvent, edm::EventSetup const &iSetup)
 function template to write out the outputs More...
 
template<typename T >
void writeJets (edm::Event &iEvent, edm::EventSetup const &iSetup)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Attributes

double beta_
 for constituent subtraction : R parameter for KT alg in jet median background estimator More...
 
bool correctShape_
 Soft drop. More...
 
double csRho_EtaMax_
 for pruning: constituent dR * pt/2m < rcut_factor More...
 
double csRParam_
 for constituent subtraction : maximum rapidity for ghosts More...
 
double dRMax_
 for CMSBoostedTauSeedingAlgorithm : min dR More...
 
double dRMin_
 for CMSBoostedTauSeedingAlgorithm : max asymmetry More...
 
float dxyTrVtxMax_
 
float dzTrVtxMax_
 
double gridMaxRapidity_
 for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases) More...
 
double gridSpacing_
 for shape subtraction, get the fixed-grid rho More...
 
edm::EDGetTokenT< edm::View< reco::RecoChargedRefCandidate > > input_chrefcand_token_
 for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence More...
 
int maxDepth_
 for CMSBoostedTauSeedingAlgorithm : max dR More...
 
float maxVtxZ_
 
int minVtxNdof_
 
double muCut_
 Correct the shape of the jets. More...
 
double muMax_
 for CMSBoostedTauSeedingAlgorithm : min mass-drop More...
 
double muMin_
 for CMSBoostedTauSeedingAlgorithm : subjet pt min More...
 
int nFilt_
 for dynamic filtering radius (as in arXiv:0802.2470) More...
 
double R0_
 for soft drop : beta (angular exponent) More...
 
double RcutFactor_
 for pruning OR soft drop: constituent minimum pt fraction of parent cluster More...
 
double rFilt_
 for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet > ycut More...
 
DynamicRfiltPtr rFiltDynamic_
 for filtering, trimming: dR scale of sub-clustering More...
 
double rFiltFactor_
 for dynamic filtering radius (as in arXiv:0802.2470) More...
 
double subjetPtMin_
 for shape subtraction, get the grid spacing More...
 
double trimPtFracMin_
 for filtering, pruning: number of subjets expected More...
 
bool useCMSBoostedTauSeedingAlgorithm_
 Jet pruning technique. More...
 
bool useConstituentSubtraction_
 Use Kt clustering algorithm for pruning (default is Cambridge/Aachen) More...
 
bool useDynamicFiltering_
 Jet filtering technique. More...
 
bool useFiltering_
 Mass-drop tagging for boosted Higgs. More...
 
bool useKtPruning_
 algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging) More...
 
bool useMassDropTagger_
 
bool useOnlyOnePV_
 
bool useOnlyVertexTracks_
 
bool usePruning_
 Jet trimming technique. More...
 
bool useSoftDrop_
 constituent subtraction technique More...
 
bool useTrimming_
 Use dynamic filtering radius (as in arXiv:0802.2470) More...
 
double yCut_
 for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet) More...
 
double yMax_
 for CMSBoostedTauSeedingAlgorithm : min asymmetry More...
 
double yMin_
 for CMSBoostedTauSeedingAlgorithm : max mass-drop More...
 
double zCut_
 for trimming: constituent minimum pt fraction of full jet More...
 

Additional Inherited Members

- Protected Attributes inherited from VirtualJetProducer
int activeAreaRepeats_
 
bool doAreaDiskApprox_
 
bool doAreaFastjet_
 
bool doFastJetNonUniform_
 
bool doPUOffsetCorr_
 
bool doPVCorrection_
 
bool doRhoFastjet_
 
ActiveAreaSpecPtr fjActiveArea_
 
AreaDefinitionPtr fjAreaDefinition_
 
ClusterSequencePtr fjClusterSeq_
 
std::vector< fastjet::PseudoJet > fjInputs_
 
JetDefPtr fjJetDefinition_
 
std::vector< fastjet::PseudoJet > fjJets_
 
PluginPtr fjPlugin_
 
RangeDefPtr fjRangeDef_
 
bool fromHTTTopJetProducer_
 
double ghostArea_
 
double ghostEtaMax_
 
edm::EDGetTokenT< reco::VertexCollectioninput_vertex_token_
 
double inputEMin_
 
double inputEtMin_
 
std::vector< edm::Ptr< reco::Candidate > > inputs_
 
std::string jetAlgorithm_
 
std::string jetCollInstanceName_
 
double jetPtMin_
 
std::string jetType_
 
JetType::Type jetTypeE
 
unsigned int maxInputs_
 
unsigned int minSeed_
 
std::string moduleLabel_
 
unsigned int nExclude_
 
std::vector< double > puCenters_
 
std::string puSubtractorName_
 
double puWidth_
 
bool restrictInputs_
 
double rhoEtaMax_
 
double rParam_
 
edm::InputTag src_
 
edm::InputTag srcPVs_
 
boost::shared_ptr< PileUpSubtractorsubtractor_
 
bool useDeterministicSeed_
 
bool useExplicitGhosts_
 
int verbosity_
 
reco::Particle::Point vertex_
 
double voronoiRfact_
 
bool writeCompound_
 

Detailed Description

Definition at line 41 of file FastjetJetProducer.h.

Member Typedef Documentation

Definition at line 60 of file FastjetJetProducer.h.

typedef fastjet::Transformer FastjetJetProducer::transformer

Definition at line 46 of file FastjetJetProducer.h.

Definition at line 48 of file FastjetJetProducer.h.

Definition at line 47 of file FastjetJetProducer.h.

Constructor & Destructor Documentation

FastjetJetProducer::FastjetJetProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 62 of file FastjetJetProducer.cc.

References beta_, correctShape_, csRho_EtaMax_, csRParam_, dRMax_, dRMin_, dxyTrVtxMax_, dzTrVtxMax_, Exception, VirtualJetProducer::fjAreaDefinition_, edm::ParameterSet::getParameter(), gridMaxRapidity_, gridSpacing_, input_chrefcand_token_, maxDepth_, maxVtxZ_, minVtxNdof_, muCut_, muMax_, muMin_, nFilt_, R0_, RcutFactor_, rFilt_, rFiltDynamic_, rFiltFactor_, subjetPtMin_, trimPtFracMin_, useCMSBoostedTauSeedingAlgorithm_, useConstituentSubtraction_, useDynamicFiltering_, VirtualJetProducer::useExplicitGhosts_, useFiltering_, useKtPruning_, useMassDropTagger_, useOnlyOnePV_, useOnlyVertexTracks_, usePruning_, useSoftDrop_, useTrimming_, yCut_, yMax_, yMin_, and zCut_.

62  :
63  VirtualJetProducer( iConfig )
64 {
65  useOnlyVertexTracks_ = iConfig.getParameter<bool>("UseOnlyVertexTracks");
66  useOnlyOnePV_ = iConfig.getParameter<bool>("UseOnlyOnePV");
67  dzTrVtxMax_ = iConfig.getParameter<double>("DzTrVtxMax");
68  dxyTrVtxMax_ = iConfig.getParameter<double>("DxyTrVtxMax");
69  minVtxNdof_ = iConfig.getParameter<int>("MinVtxNdof");
70  maxVtxZ_ = iConfig.getParameter<double>("MaxVtxZ");
71 
72  useMassDropTagger_ = iConfig.getParameter<bool>("useMassDropTagger");
73  muCut_ = iConfig.getParameter<double>("muCut");
74  yCut_ = iConfig.getParameter<double>("yCut");
75 
76  useFiltering_ = iConfig.getParameter<bool>("useFiltering");
77  rFilt_ = iConfig.getParameter<double>("rFilt");
78  nFilt_ = iConfig.getParameter<int>("nFilt");
79  useDynamicFiltering_ = iConfig.getParameter<bool>("useDynamicFiltering");
80  if ( useDynamicFiltering_ ) rFiltDynamic_ = DynamicRfiltPtr(new DynamicRfilt(rFilt_, rFiltFactor_));
81  rFiltFactor_ = iConfig.getParameter<double>("rFiltFactor");
82 
83  useTrimming_ = iConfig.getParameter<bool>("useTrimming");
84  trimPtFracMin_ = iConfig.getParameter<double>("trimPtFracMin");
85 
86  usePruning_ = iConfig.getParameter<bool>("usePruning");
87  zCut_ = iConfig.getParameter<double>("zcut");
88  RcutFactor_ = iConfig.getParameter<double>("rcut_factor");
89  nFilt_ = iConfig.getParameter<int>("nFilt");
90  useKtPruning_ = iConfig.getParameter<bool>("useKtPruning");
91 
92  useCMSBoostedTauSeedingAlgorithm_ = iConfig.getParameter<bool>("useCMSBoostedTauSeedingAlgorithm");
93  subjetPtMin_ = iConfig.getParameter<double>("subjetPtMin");
94  muMin_ = iConfig.getParameter<double>("muMin");
95  muMax_ = iConfig.getParameter<double>("muMax");
96  yMin_ = iConfig.getParameter<double>("yMin");
97  yMax_ = iConfig.getParameter<double>("yMax");
98  dRMin_ = iConfig.getParameter<double>("dRMin");
99  dRMax_ = iConfig.getParameter<double>("dRMax");
100  maxDepth_ = iConfig.getParameter<int>("maxDepth");
101 
102 
103  useConstituentSubtraction_ = iConfig.getParameter<bool>("useConstituentSubtraction");
104  csRho_EtaMax_ = iConfig.getParameter<double>("csRho_EtaMax");
105  csRParam_ = iConfig.getParameter<double>("csRParam");
106 
107  useSoftDrop_ = iConfig.getParameter<bool>("useSoftDrop");
108  zCut_ = iConfig.getParameter<double>("zcut");
109  beta_ = iConfig.getParameter<double>("beta");
110  R0_ = iConfig.getParameter<double>("R0");
111 
112  correctShape_ = iConfig.getParameter<bool>("correctShape");
113  gridMaxRapidity_ = iConfig.getParameter<double>("gridMaxRapidity");
114  gridSpacing_ = iConfig.getParameter<double>("gridSpacing");
115 
116  input_chrefcand_token_ = consumes<edm::View<reco::RecoChargedRefCandidate> >(iConfig.getParameter<edm::InputTag>("src"));
117 
118  if ( useFiltering_ ||
119  useTrimming_ ||
120  usePruning_ ||
121  useMassDropTagger_ ||
124  useSoftDrop_ ||
126  ) useExplicitGhosts_ = true;
127 
129 
130  if ( ( useMassDropTagger_ ) && ( ( muCut_ == -1 ) || ( yCut_ == -1 ) ) )
131  throw cms::Exception("useMassDropTagger") << "Parameters muCut and/or yCut for Mass Drop are not defined." << std::endl;
132 
133  if ( ( useFiltering_ ) && ( ( rFilt_ == -1 ) || ( nFilt_ == -1 ) ) ) {
134  throw cms::Exception("useFiltering") << "Parameters rFilt and/or nFilt for Filtering are not defined." << std::endl;
135  if ( ( useDynamicFiltering_ ) && ( rFiltFactor_ == -1 ) )
136  throw cms::Exception("useDynamicFiltering") << "Parameters rFiltFactor for DynamicFiltering is not defined." << std::endl;
137  }
138 
139  if ( ( useTrimming_ ) && ( ( rFilt_ == -1 ) || ( trimPtFracMin_ == -1 ) ) )
140  throw cms::Exception("useTrimming") << "Parameters rFilt and/or trimPtFracMin for Trimming are not defined." << std::endl;
141 
142  if ( ( usePruning_ ) && ( ( zCut_ == -1 ) || ( RcutFactor_ == -1 ) || ( nFilt_ == -1 )) )
143  throw cms::Exception("usePruning") << "Parameters zCut and/or RcutFactor and/or nFilt for Pruning are not defined." << std::endl;
144 
145  if ( ( useCMSBoostedTauSeedingAlgorithm_ ) && ( ( subjetPtMin_ == -1 ) || ( maxDepth_ == -1 ) ||
146  ( muMin_ == -1 ) || ( muMax_ == -1 ) ||
147  ( yMin_ == -1 ) || ( yMax_ == -1 ) ||
148  ( dRMin_ == -1 ) || ( dRMax_ == -1 ) ) )
149  throw cms::Exception("useCMSBoostedTauSeedingAlgorithm") << "Parameters subjetPtMin, muMin, muMax, yMin, yMax, dRmin, dRmax, maxDepth for CMSBoostedTauSeedingAlgorithm are not defined." << std::endl;
150 
151  if ( useConstituentSubtraction_ && ( fjAreaDefinition_.get() == 0 ) )
152  throw cms::Exception("AreaMustBeSet") << "Logic error. The area definition must be set if you use constituent subtraction." << std::endl;
153 
154  if ( ( useConstituentSubtraction_ ) && ( ( csRho_EtaMax_ == -1 ) || ( csRParam_ == -1 ) ) )
155  throw cms::Exception("useConstituentSubtraction") << "Parameters csRho_EtaMax and/or csRParam for ConstituentSubtraction are not defined." << std::endl;
156 
157  if ( useSoftDrop_ && usePruning_ )
158  throw cms::Exception("PruningAndSoftDrop") << "Logic error. Soft drop is a generalized pruning, do not run them together." << std::endl;
159 
160  if ( ( useSoftDrop_ ) && ( ( zCut_ == -1 ) || ( beta_ == -1 ) || ( R0_ == -1 )) )
161  throw cms::Exception("useSoftDrop") << "Parameters zCut and/or beta and/or R0 for SoftDrop are not defined." << std::endl;
162 
163  if ( ( correctShape_ ) && ( ( gridMaxRapidity_ == -1 ) || ( gridSpacing_ == -1 )) )
164  throw cms::Exception("correctShape") << "Parameters gridMaxRapidity and/or gridSpacing for SoftDrop are not defined." << std::endl;
165 
166 }
double muMin_
for CMSBoostedTauSeedingAlgorithm : subjet pt min
T getParameter(std::string const &) const
double yMin_
for CMSBoostedTauSeedingAlgorithm : max mass-drop
bool useFiltering_
Mass-drop tagging for boosted Higgs.
bool correctShape_
Soft drop.
double rFilt_
for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet > ycut
double dRMax_
for CMSBoostedTauSeedingAlgorithm : min dR
double subjetPtMin_
for shape subtraction, get the grid spacing
bool useDynamicFiltering_
Jet filtering technique.
double RcutFactor_
for pruning OR soft drop: constituent minimum pt fraction of parent cluster
bool useSoftDrop_
constituent subtraction technique
double yMax_
for CMSBoostedTauSeedingAlgorithm : min asymmetry
double gridSpacing_
for shape subtraction, get the fixed-grid rho
bool useKtPruning_
algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging) ...
bool useTrimming_
Use dynamic filtering radius (as in arXiv:0802.2470)
double csRParam_
for constituent subtraction : maximum rapidity for ghosts
double trimPtFracMin_
for filtering, pruning: number of subjets expected
double gridMaxRapidity_
for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases) ...
bool usePruning_
Jet trimming technique.
bool useCMSBoostedTauSeedingAlgorithm_
Jet pruning technique.
edm::EDGetTokenT< edm::View< reco::RecoChargedRefCandidate > > input_chrefcand_token_
for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence ...
double csRho_EtaMax_
for pruning: constituent dR * pt/2m < rcut_factor
double muMax_
for CMSBoostedTauSeedingAlgorithm : min mass-drop
double muCut_
Correct the shape of the jets.
double rFiltFactor_
for dynamic filtering radius (as in arXiv:0802.2470)
DynamicRfiltPtr rFiltDynamic_
for filtering, trimming: dR scale of sub-clustering
double dRMin_
for CMSBoostedTauSeedingAlgorithm : max asymmetry
boost::shared_ptr< DynamicRfilt > DynamicRfiltPtr
double beta_
for constituent subtraction : R parameter for KT alg in jet median background estimator ...
double zCut_
for trimming: constituent minimum pt fraction of full jet
int nFilt_
for dynamic filtering radius (as in arXiv:0802.2470)
int maxDepth_
for CMSBoostedTauSeedingAlgorithm : max dR
double R0_
for soft drop : beta (angular exponent)
double yCut_
for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet)
VirtualJetProducer(const edm::ParameterSet &iConfig)
bool useConstituentSubtraction_
Use Kt clustering algorithm for pruning (default is Cambridge/Aachen)
AreaDefinitionPtr fjAreaDefinition_
FastjetJetProducer::~FastjetJetProducer ( )
virtual

Definition at line 170 of file FastjetJetProducer.cc.

171 {
172 }

Member Function Documentation

void FastjetJetProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 459 of file FastjetJetProducer.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), fillDescriptionsFromFastJetProducer(), and VirtualJetProducer::fillDescriptionsFromVirtualJetProducer().

459  {
460 
461  edm::ParameterSetDescription descFastjetJetProducer;
463  fillDescriptionsFromFastJetProducer(descFastjetJetProducer);
467  descFastjetJetProducer.add<string>("jetCollInstanceName", "" );
468  descFastjetJetProducer.add<bool> ("sumRecHits", false);
469 
471  descriptions.add("FastjetJetProducer",descFastjetJetProducer);
472 
473 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptionsFromFastJetProducer(edm::ParameterSetDescription &desc)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptionsFromVirtualJetProducer(edm::ParameterSetDescription &desc)
void FastjetJetProducer::fillDescriptionsFromFastJetProducer ( edm::ParameterSetDescription desc)
static

Definition at line 475 of file FastjetJetProducer.cc.

References edm::ParameterSetDescription::add(), and DEFINE_FWK_MODULE.

Referenced by fillDescriptions(), cms::CATopJetProducer::fillDescriptions(), and cms::HTTTopJetProducer::fillDescriptions().

476 {
477  desc.add<bool>("useMassDropTagger", false);
478  desc.add<bool>("useFiltering", false);
479  desc.add<bool>("useDynamicFiltering", false);
480  desc.add<bool>("useTrimming", false);
481  desc.add<bool>("usePruning", false);
482  desc.add<bool>("useCMSBoostedTauSeedingAlgorithm", false);
483  desc.add<bool>("useKtPruning", false);
484  desc.add<bool>("useConstituentSubtraction", false);
485  desc.add<bool>("useSoftDrop", false);
486  desc.add<bool>("correctShape", false);
487  desc.add<bool>("UseOnlyVertexTracks", false);
488  desc.add<bool>("UseOnlyOnePV", false);
489  desc.add<double>("muCut", -1.0);
490  desc.add<double>("yCut", -1.0);
491  desc.add<double>("rFilt", -1.0);
492  desc.add<double>("rFiltFactor", -1.0);
493  desc.add<double>("trimPtFracMin",-1.0);
494  desc.add<double>("zcut", -1.0);
495  desc.add<double>("rcut_factor", -1.0);
496  desc.add<double>("csRho_EtaMax",-1.0);
497  desc.add<double>("csRParam", -1.0);
498  desc.add<double>("beta", -1.0);
499  desc.add<double>("R0", -1.0);
500  desc.add<double>("gridMaxRapidity", -1.0); // For fixed-grid rho
501  desc.add<double>("gridSpacing", -1.0); // For fixed-grid rho
502  desc.add<double>("DzTrVtxMax", 999999.);
503  desc.add<double>("DxyTrVtxMax", 999999.);
504  desc.add<double>("MaxVtxZ", 15.0);
505  desc.add<double>("subjetPtMin", -1.0);
506  desc.add<double>("muMin", -1.0);
507  desc.add<double>("muMax", -1.0);
508  desc.add<double>("yMin", -1.0);
509  desc.add<double>("yMax", -1.0);
510  desc.add<double>("dRMin", -1.0);
511  desc.add<double>("dRMax", -1.0);
512  desc.add<int>("maxDepth", -1);
513  desc.add<int>("nFilt", -1);
514  desc.add<int>("MinVtxNdof", 5);
515 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void FastjetJetProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Reimplemented from VirtualJetProducer.

Reimplemented in cms::HTTTopJetProducer, and cms::CATopJetProducer.

Definition at line 179 of file FastjetJetProducer.cc.

References VirtualJetProducer::fjClusterSeq_, VirtualJetProducer::jetTypeE, VirtualJetProducer::makeTrackJet(), VirtualJetProducer::produce(), and produceTrackJets().

Referenced by cms::CATopJetProducer::produce(), and cms::HTTTopJetProducer::produce().

180 {
181 
182  // for everything but track jets
183  if (!makeTrackJet(jetTypeE)) {
184 
185  // use the default production from one collection
186  VirtualJetProducer::produce( iEvent, iSetup );
187 
188  } else { // produce trackjets from tracks grouped per primary vertex
189 
190  produceTrackJets(iEvent, iSetup);
191 
192  }
193 
194  // fjClusterSeq_ retains quite a lot of memory - about 1 to 7Mb at 200 pileup
195  // depending on the exact configuration; and there are 24 FastjetJetProducers in the
196  // sequence so this adds up to about 60 Mb. It's allocated every time runAlgorithm
197  // is called, so safe to delete here.
198  fjClusterSeq_.reset();
199 }
JetType::Type jetTypeE
bool makeTrackJet(const JetType::Type &fTag)
ClusterSequencePtr fjClusterSeq_
virtual void produceTrackJets(edm::Event &iEvent, const edm::EventSetup &iSetup)
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
void FastjetJetProducer::produceTrackJets ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
protectedvirtual

Definition at line 202 of file FastjetJetProducer.cc.

References particleFlowDisplacedVertexCandidate_cfi::dxy, dxyTrVtxMax_, allConversions_cfi::dz, dzTrVtxMax_, VirtualJetProducer::fjClusterSeq_, VirtualJetProducer::fjInputs_, VirtualJetProducer::fjJets_, runEdmFileComparison::found, edm::Event::getByToken(), VirtualJetProducer::getConstituents(), mps_fire::i, input_chrefcand_token_, VirtualJetProducer::input_vertex_token_, VirtualJetProducer::inputs_, VirtualJetProducer::inputTowers(), metsig::jet, fwrapper::jets, LogDebug, maxVtxZ_, minVtxNdof_, eostools::move(), edm::Event::put(), anotherprimaryvertexanalyzer_cfi::pvCollection, runAlgorithm(), reco::Jet::setJetArea(), reco::Jet::setPileup(), reco::TrackJet::setPrimaryVertex(), reco::LeafCandidate::setVertex(), edm::swap(), useOnlyOnePV_, useOnlyVertexTracks_, VirtualJetProducer::vertex_, and reco::writeSpecific().

Referenced by produce().

203 {
204 
205  // read in the track candidates
207  iEvent.getByToken(input_chrefcand_token_, inputsHandle);
208 
209  // make collection with pointers so we can play around with it
210  std::vector<edm::Ptr<reco::RecoChargedRefCandidate> > allInputs;
211  std::vector<edm::Ptr<reco::Candidate> > origInputs;
212  for (size_t i = 0; i < inputsHandle->size(); ++i) {
213  allInputs.push_back(inputsHandle->ptrAt(i));
214  origInputs.push_back(inputsHandle->ptrAt(i));
215  }
216 
217  // read in the PV collection
219  iEvent.getByToken(input_vertex_token_, pvCollection);
220  // define the overall output jet container
221  auto jets = std::make_unique<std::vector<reco::TrackJet>>();
222 
223  // loop over the good vertices, clustering for each vertex separately
224  for (reco::VertexCollection::const_iterator itVtx = pvCollection->begin(); itVtx != pvCollection->end(); ++itVtx) {
225  if (itVtx->isFake() || itVtx->ndof() < minVtxNdof_ || fabs(itVtx->z()) > maxVtxZ_) continue;
226 
227  // clear the intermediate containers
228  inputs_.clear();
229  fjInputs_.clear();
230  fjJets_.clear();
231 
232  // if only vertex-associated tracks should be used
233  if (useOnlyVertexTracks_) {
234  // loop over the tracks associated to the vertex
235  for (reco::Vertex::trackRef_iterator itTr = itVtx->tracks_begin(); itTr != itVtx->tracks_end(); ++itTr) {
236  // whether a match was found in the track candidate input
237  bool found = false;
238  // loop over input track candidates
239  for (std::vector<edm::Ptr<reco::RecoChargedRefCandidate> >::iterator itIn = allInputs.begin(); itIn != allInputs.end(); ++itIn) {
240  // match the input track candidate to the track from the vertex
241  reco::TrackRef trref(itTr->castTo<reco::TrackRef>());
242  // check if the tracks match
243  if ((*itIn)->track() == trref) {
244  found = true;
245  // add this track candidate to the input for clustering
246  inputs_.push_back(*itIn);
247  // erase the track candidate from the total list of input, so we don't reuse it later
248  allInputs.erase(itIn);
249  // found the candidate track corresponding to the vertex track, so stop the loop
250  break;
251  } // end if match found
252  } // end loop over input tracks
253  // give an info message in case no match is found (can happen if candidates are subset of tracks used for clustering)
254  if (!found) edm::LogInfo("FastjetTrackJetProducer") << "Ignoring a track at vertex which is not in input track collection!";
255  } // end loop over tracks associated to vertex
256  // if all inpt track candidates should be used
257  } else {
258  // loop over input track candidates
259  for (std::vector<edm::Ptr<reco::RecoChargedRefCandidate> >::iterator itIn = allInputs.begin(); itIn != allInputs.end(); ++itIn) {
260  // check if the track is close enough to the vertex
261  float dz = (*itIn)->track()->dz(itVtx->position());
262  float dxy = (*itIn)->track()->dxy(itVtx->position());
263  if (fabs(dz) > dzTrVtxMax_) continue;
264  if (fabs(dxy) > dxyTrVtxMax_) continue;
265  bool closervtx = false;
266  // now loop over the good vertices a second time
267  for (reco::VertexCollection::const_iterator itVtx2 = pvCollection->begin(); itVtx2 != pvCollection->end(); ++itVtx2) {
268  if (itVtx->isFake() || itVtx->ndof() < minVtxNdof_ || fabs(itVtx->z()) > maxVtxZ_) continue;
269  // and check this track is closer to any other vertex (if more than 1 vertex considered)
270  if (!useOnlyOnePV_ &&
271  itVtx != itVtx2 &&
272  fabs((*itIn)->track()->dz(itVtx2->position())) < fabs(dz)) {
273  closervtx = true;
274  break; // 1 closer vertex makes the track already not matched, so break
275  }
276  }
277  // don't add this track if another vertex is found closer
278  if (closervtx) continue;
279  // add this track candidate to the input for clustering
280  inputs_.push_back(*itIn);
281  // erase the track candidate from the total list of input, so we don't reuse it later
282  allInputs.erase(itIn);
283  // take a step back in the loop since we just erased
284  --itIn;
285  }
286  }
287 
288  // convert candidates in inputs_ to fastjet::PseudoJets in fjInputs_
289  fjInputs_.reserve(inputs_.size());
290  inputTowers();
291  LogDebug("FastjetTrackJetProducer") << "Inputted towers\n";
292 
293  // run algorithm, using fjInputs_, modifying fjJets_ and allocating fjClusterSeq_
294  runAlgorithm(iEvent, iSetup);
295  LogDebug("FastjetTrackJetProducer") << "Ran algorithm\n";
296 
297  // convert our jets and add to the overall jet vector
298  for (unsigned int ijet=0;ijet<fjJets_.size();++ijet) {
299  // get the constituents from fastjet
300  std::vector<fastjet::PseudoJet> fjConstituents = sorted_by_pt(fjClusterSeq_->constituents(fjJets_[ijet]));
301  // convert them to CandidatePtr vector
302  std::vector<reco::CandidatePtr> constituents = getConstituents(fjConstituents);
303  // fill the trackjet
305  // write the specifics to the jet (simultaneously sets 4-vector, vertex).
306  writeSpecific( jet,
307  reco::Particle::LorentzVector(fjJets_[ijet].px(), fjJets_[ijet].py(), fjJets_[ijet].pz(), fjJets_[ijet].E()),
308  vertex_, constituents, iSetup);
309  jet.setJetArea(0);
310  jet.setPileup(0);
311  jet.setPrimaryVertex(edm::Ref<reco::VertexCollection>(pvCollection, (int) (itVtx-pvCollection->begin())));
312  jet.setVertex(itVtx->position());
313  jets->push_back(jet);
314  }
315 
316  if (useOnlyOnePV_) break; // stop vertex loop if only one vertex asked for
317  } // end loop over vertices
318 
319  // put the jets in the collection
320  LogDebug("FastjetTrackJetProducer") << "Put " << jets->size() << " jets in the event.\n";
321  iEvent.put(std::move(jets));
322 
323  // Clear the work vectors so that memory is free for other modules.
324  // Use the trick of swapping with an empty vector so that the memory
325  // is actually given back rather than silently kept.
326  decltype(fjInputs_)().swap(fjInputs_);
327  decltype(fjJets_)().swap(fjJets_);
328  decltype(inputs_)().swap(inputs_);
329 }
#define LogDebug(id)
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
reco::Particle::Point vertex_
virtual std::vector< reco::CandidatePtr > getConstituents(const std::vector< fastjet::PseudoJet > &fjConstituents)
std::vector< fastjet::PseudoJet > fjJets_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
virtual void setPileup(float fEnergy)
Set pileup energy contribution as calculated by algorithm.
Definition: Jet.h:108
virtual void inputTowers()
virtual void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup)
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:116
virtual void setJetArea(float fArea)
set jet area
Definition: Jet.h:103
std::vector< fastjet::PseudoJet > fjInputs_
std::vector< edm::Ptr< reco::Candidate > > inputs_
ClusterSequencePtr fjClusterSeq_
vector< PseudoJet > jets
edm::EDGetTokenT< edm::View< reco::RecoChargedRefCandidate > > input_chrefcand_token_
for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence ...
void setPrimaryVertex(const reco::VertexRef &vtx)
set associated primary vertex
Definition: TrackJet.cc:80
virtual void setVertex(const Point &vertex)
set vertex
Jets made out of tracks.
Definition: TrackJet.h:27
edm::EDGetTokenT< reco::VertexCollection > input_vertex_token_
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:37
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
def move(src, dest)
Definition: eostools.py:510
void writeSpecific(reco::CaloJet &jet, reco::Particle::LorentzVector const &p4, reco::Particle::Point const &point, std::vector< reco::CandidatePtr > const &constituents, edm::EventSetup const &c)
Definition: JetSpecific.cc:41
void FastjetJetProducer::runAlgorithm ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
protectedvirtual

Implements VirtualJetProducer.

Reimplemented in cms::HTTTopJetProducer, and cms::CATopJetProducer.

Definition at line 333 of file FastjetJetProducer.cc.

References beta_, correctShape_, csRho_EtaMax_, csRParam_, VirtualJetProducer::doAreaFastjet_, VirtualJetProducer::doRhoFastjet_, dRMax_, dRMin_, ALCARECOTkAlBeamHalo_cff::filter, hiDetachedQuadStep_cff::Filter, VirtualJetProducer::fjAreaDefinition_, VirtualJetProducer::fjClusterSeq_, VirtualJetProducer::fjInputs_, VirtualJetProducer::fjJetDefinition_, VirtualJetProducer::fjJets_, gridMaxRapidity_, gridSpacing_, VirtualJetProducer::jetPtMin_, maxDepth_, muCut_, muMax_, muMin_, nFilt_, TriggerAnalyzer::passed, R0_, RcutFactor_, rFilt_, rFiltDynamic_, sd, ALCARECOPromptCalibProdSiPixelAli0T_cff::Selector, subjetPtMin_, trimPtFracMin_, useCMSBoostedTauSeedingAlgorithm_, useConstituentSubtraction_, useDynamicFiltering_, useFiltering_, useKtPruning_, useMassDropTagger_, usePruning_, useSoftDrop_, useTrimming_, VirtualJetProducer::verbosity_, VirtualJetProducer::voronoiRfact_, yCut_, yMax_, yMin_, and zCut_.

Referenced by produceTrackJets().

334 {
335  // run algorithm
336  /*
337  fjInputs_.clear();
338  double px, py , pz, E;
339  string line;
340  std::ifstream fin("dump3.txt");
341  while (getline(fin, line)){
342  if (line == "#END") break;
343  if (line.substr(0,1) == "#") {continue;}
344  istringstream istr(line);
345  istr >> px >> py >> pz >> E;
346  // create a fastjet::PseudoJet with these components and put it onto
347  // back of the input_particles vector
348  fastjet::PseudoJet j(px,py,pz,E);
349  //if ( fabs(j.rap()) < inputEtaMax )
350  fjInputs_.push_back(fastjet::PseudoJet(px,py,pz,E));
351  }
352  fin.close();
353  */
354 
355  if ( !doAreaFastjet_ && !doRhoFastjet_) {
356  fjClusterSeq_ = ClusterSequencePtr( new fastjet::ClusterSequence( fjInputs_, *fjJetDefinition_ ) );
357  } else if (voronoiRfact_ <= 0) {
358  fjClusterSeq_ = ClusterSequencePtr( new fastjet::ClusterSequenceArea( fjInputs_, *fjJetDefinition_ , *fjAreaDefinition_ ) );
359  } else {
360  fjClusterSeq_ = ClusterSequencePtr( new fastjet::ClusterSequenceVoronoiArea( fjInputs_, *fjJetDefinition_ , fastjet::VoronoiAreaSpec(voronoiRfact_) ) );
361  }
362 
364  fjJets_ = fastjet::sorted_by_pt(fjClusterSeq_->inclusive_jets(jetPtMin_));
365  } else {
366  fjJets_.clear();
367 
368 
369  transformer_coll transformers;
370 
371 
372  std::vector<fastjet::PseudoJet> tempJets = fastjet::sorted_by_pt(fjClusterSeq_->inclusive_jets(jetPtMin_));
373 
374  unique_ptr<fastjet::JetMedianBackgroundEstimator> bge_rho;
376  fastjet::Selector rho_range = fastjet::SelectorAbsRapMax(csRho_EtaMax_);
377  bge_rho = unique_ptr<fastjet::JetMedianBackgroundEstimator> (new fastjet::JetMedianBackgroundEstimator(rho_range, fastjet::JetDefinition(fastjet::kt_algorithm, csRParam_), *fjAreaDefinition_) );
378  bge_rho->set_particles(fjInputs_);
379  fastjet::contrib::ConstituentSubtractor * constituentSubtractor = new fastjet::contrib::ConstituentSubtractor(bge_rho.get());
380 
381  transformers.push_back( transformer_ptr(constituentSubtractor) );
382  };
383  if ( useMassDropTagger_ ) {
384  fastjet::MassDropTagger * md_tagger = new fastjet::MassDropTagger ( muCut_, yCut_ );
385  transformers.push_back( transformer_ptr(md_tagger) );
386  }
388  fastjet::contrib::CMSBoostedTauSeedingAlgorithm * tau_tagger =
389  new fastjet::contrib::CMSBoostedTauSeedingAlgorithm ( subjetPtMin_, muMin_, muMax_, yMin_, yMax_, dRMin_, dRMax_, maxDepth_, verbosity_ );
390  transformers.push_back( transformer_ptr(tau_tagger ));
391  }
392  if ( useTrimming_ ) {
393  fastjet::Filter * trimmer = new fastjet::Filter(fastjet::JetDefinition(fastjet::kt_algorithm, rFilt_), fastjet::SelectorPtFractionMin(trimPtFracMin_));
394  transformers.push_back( transformer_ptr(trimmer) );
395  }
396  if ( (useFiltering_) && (!useDynamicFiltering_) ) {
397  fastjet::Filter * filter = new fastjet::Filter(fastjet::JetDefinition(fastjet::cambridge_algorithm, rFilt_), fastjet::SelectorNHardest(nFilt_));
398  transformers.push_back( transformer_ptr(filter));
399  }
400 
401  if ( (usePruning_) && (!useKtPruning_) ) {
402  fastjet::Pruner * pruner = new fastjet::Pruner(fastjet::cambridge_algorithm, zCut_, RcutFactor_);
403  transformers.push_back( transformer_ptr(pruner ));
404  }
405 
406  if ( useDynamicFiltering_ ){
407  fastjet::Filter * filter = new fastjet::Filter( fastjet::Filter(&*rFiltDynamic_, fastjet::SelectorNHardest(nFilt_)));
408  transformers.push_back( transformer_ptr(filter));
409  }
410 
411  if ( useKtPruning_ ) {
412  fastjet::Pruner * pruner = new fastjet::Pruner(fastjet::kt_algorithm, zCut_, RcutFactor_);
413  transformers.push_back( transformer_ptr(pruner ));
414  }
415 
416  if ( useSoftDrop_ ) {
417  fastjet::contrib::SoftDrop * sd = new fastjet::contrib::SoftDrop(beta_, zCut_, R0_ );
418  transformers.push_back( transformer_ptr(sd) );
419  }
420 
421  unique_ptr<fastjet::Subtractor> subtractor;
422  unique_ptr<fastjet::GridMedianBackgroundEstimator> bge_rho_grid;
423  if ( correctShape_ ) {
424  bge_rho_grid = unique_ptr<fastjet::GridMedianBackgroundEstimator> (new fastjet::GridMedianBackgroundEstimator(gridMaxRapidity_, gridSpacing_) );
425  bge_rho_grid->set_particles(fjInputs_);
426  subtractor = unique_ptr<fastjet::Subtractor>( new fastjet::Subtractor( bge_rho_grid.get()) );
427  subtractor->set_use_rho_m();
428  //subtractor->use_common_bge_for_rho_and_rhom(true);
429  }
430 
431 
432  for ( std::vector<fastjet::PseudoJet>::const_iterator ijet = tempJets.begin(),
433  ijetEnd = tempJets.end(); ijet != ijetEnd; ++ijet ) {
434 
435  fastjet::PseudoJet transformedJet = *ijet;
436  bool passed = true;
437  for ( transformer_coll::const_iterator itransf = transformers.begin(),
438  itransfEnd = transformers.end(); itransf != itransfEnd; ++itransf ) {
439  if ( transformedJet != 0 ) {
440  transformedJet = (**itransf)(transformedJet);
441  } else {
442  passed=false;
443  }
444  }
445 
446  if ( correctShape_ ) {
447  transformedJet = (*subtractor)(transformedJet);
448  }
449 
450  if ( passed ) {
451  fjJets_.push_back( transformedJet );
452  }
453  }
454  }
455 
456 }
double muMin_
for CMSBoostedTauSeedingAlgorithm : subjet pt min
double yMin_
for CMSBoostedTauSeedingAlgorithm : max mass-drop
bool useFiltering_
Mass-drop tagging for boosted Higgs.
bool correctShape_
Soft drop.
double rFilt_
for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet > ycut
double dRMax_
for CMSBoostedTauSeedingAlgorithm : min dR
double subjetPtMin_
for shape subtraction, get the grid spacing
std::vector< fastjet::PseudoJet > fjJets_
bool useDynamicFiltering_
Jet filtering technique.
double RcutFactor_
for pruning OR soft drop: constituent minimum pt fraction of parent cluster
bool useSoftDrop_
constituent subtraction technique
double yMax_
for CMSBoostedTauSeedingAlgorithm : min asymmetry
double gridSpacing_
for shape subtraction, get the fixed-grid rho
bool useKtPruning_
algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging) ...
bool useTrimming_
Use dynamic filtering radius (as in arXiv:0802.2470)
double csRParam_
for constituent subtraction : maximum rapidity for ghosts
std::vector< fastjet::PseudoJet > fjInputs_
std::vector< transformer_ptr > transformer_coll
double trimPtFracMin_
for filtering, pruning: number of subjets expected
double gridMaxRapidity_
for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases) ...
bool usePruning_
Jet trimming technique.
bool useCMSBoostedTauSeedingAlgorithm_
Jet pruning technique.
ClusterSequencePtr fjClusterSeq_
double csRho_EtaMax_
for pruning: constituent dR * pt/2m < rcut_factor
double muMax_
for CMSBoostedTauSeedingAlgorithm : min mass-drop
double muCut_
Correct the shape of the jets.
DynamicRfiltPtr rFiltDynamic_
for filtering, trimming: dR scale of sub-clustering
double dRMin_
for CMSBoostedTauSeedingAlgorithm : max asymmetry
double beta_
for constituent subtraction : R parameter for KT alg in jet median background estimator ...
double zCut_
for trimming: constituent minimum pt fraction of full jet
int nFilt_
for dynamic filtering radius (as in arXiv:0802.2470)
int maxDepth_
for CMSBoostedTauSeedingAlgorithm : max dR
double sd
double R0_
for soft drop : beta (angular exponent)
std::unique_ptr< transformer > transformer_ptr
double yCut_
for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet)
bool useConstituentSubtraction_
Use Kt clustering algorithm for pruning (default is Cambridge/Aachen)
AreaDefinitionPtr fjAreaDefinition_
boost::shared_ptr< fastjet::ClusterSequence > ClusterSequencePtr

Member Data Documentation

double FastjetJetProducer::beta_
private

for constituent subtraction : R parameter for KT alg in jet median background estimator

Definition at line 103 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::correctShape_
private

Soft drop.

Definition at line 91 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::csRho_EtaMax_
private

for pruning: constituent dR * pt/2m < rcut_factor

Definition at line 101 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::csRParam_
private

for constituent subtraction : maximum rapidity for ghosts

Definition at line 102 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::dRMax_
private

for CMSBoostedTauSeedingAlgorithm : min dR

Definition at line 115 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::dRMin_
private

for CMSBoostedTauSeedingAlgorithm : max asymmetry

Definition at line 114 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

float FastjetJetProducer::dxyTrVtxMax_
private

Definition at line 77 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

float FastjetJetProducer::dzTrVtxMax_
private

Definition at line 76 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

double FastjetJetProducer::gridMaxRapidity_
private

for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases)

Definition at line 105 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::gridSpacing_
private

for shape subtraction, get the fixed-grid rho

Definition at line 106 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

edm::EDGetTokenT<edm::View<reco::RecoChargedRefCandidate> > FastjetJetProducer::input_chrefcand_token_
private

for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence

Definition at line 120 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

int FastjetJetProducer::maxDepth_
private

for CMSBoostedTauSeedingAlgorithm : max dR

Definition at line 116 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

float FastjetJetProducer::maxVtxZ_
private

Definition at line 79 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

int FastjetJetProducer::minVtxNdof_
private

Definition at line 78 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

double FastjetJetProducer::muCut_
private

Correct the shape of the jets.

Definition at line 92 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::muMax_
private

for CMSBoostedTauSeedingAlgorithm : min mass-drop

Definition at line 111 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::muMin_
private

for CMSBoostedTauSeedingAlgorithm : subjet pt min

Definition at line 110 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

int FastjetJetProducer::nFilt_
private

for dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 97 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::R0_
private

for soft drop : beta (angular exponent)

Definition at line 104 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::RcutFactor_
private

for pruning OR soft drop: constituent minimum pt fraction of parent cluster

Definition at line 100 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::rFilt_
private

for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet > ycut

Definition at line 94 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

DynamicRfiltPtr FastjetJetProducer::rFiltDynamic_
private

for filtering, trimming: dR scale of sub-clustering

Definition at line 95 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::rFiltFactor_
private

for dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 96 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer().

double FastjetJetProducer::subjetPtMin_
private

for shape subtraction, get the grid spacing

Definition at line 109 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::trimPtFracMin_
private

for filtering, pruning: number of subjets expected

Definition at line 98 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useCMSBoostedTauSeedingAlgorithm_
private

Jet pruning technique.

Definition at line 87 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useConstituentSubtraction_
private

Use Kt clustering algorithm for pruning (default is Cambridge/Aachen)

Definition at line 89 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useDynamicFiltering_
private

Jet filtering technique.

Definition at line 84 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useFiltering_
private

Mass-drop tagging for boosted Higgs.

Definition at line 83 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useKtPruning_
private

algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging)

Definition at line 88 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useMassDropTagger_
private

Definition at line 82 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useOnlyOnePV_
private

Definition at line 75 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

bool FastjetJetProducer::useOnlyVertexTracks_
private

Definition at line 74 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

bool FastjetJetProducer::usePruning_
private

Jet trimming technique.

Definition at line 86 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useSoftDrop_
private

constituent subtraction technique

Definition at line 90 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

bool FastjetJetProducer::useTrimming_
private

Use dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 85 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::yCut_
private

for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet)

Definition at line 93 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::yMax_
private

for CMSBoostedTauSeedingAlgorithm : min asymmetry

Definition at line 113 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::yMin_
private

for CMSBoostedTauSeedingAlgorithm : max mass-drop

Definition at line 112 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

double FastjetJetProducer::zCut_
private

for trimming: constituent minimum pt fraction of full jet

Definition at line 99 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().