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<> cms::CATopJetProducer cms::HTTTopJetProducer

Public Types

typedef std::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 std::shared_ptr< fastjet::GhostedAreaSpec > ActiveAreaSpecPtr
 
typedef std::shared_ptr< fastjet::AreaDefinition > AreaDefinitionPtr
 
typedef std::shared_ptr< fastjet::ClusterSequence > ClusterSequencePtr
 
typedef std::shared_ptr< fastjet::JetDefinition > JetDefPtr
 
typedef std::shared_ptr< fastjet::JetDefinition::Plugin > PluginPtr
 
typedef std::shared_ptr< fastjet::Selector > SelectorPtr
 
- 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 Member Functions

 FastjetJetProducer (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~FastjetJetProducer () override
 
- Public Member Functions inherited from VirtualJetProducer
std::string jetType () const
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 VirtualJetProducer (const edm::ParameterSet &iConfig)
 
 ~VirtualJetProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

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)
 

Protected Member Functions

virtual void produceTrackJets (edm::Event &iEvent, const edm::EventSetup &iSetup)
 
void runAlgorithm (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
- 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)
 
template<typename T >
void writeJetsWithConstituents (edm::Event &iEvent, edm::EventSetup const &iSetup)
 function template to write out the outputs More...
 

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 applyWeight_
 
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_
 
SelectorPtr fjSelector_
 
bool fromHTTTopJetProducer_ = false
 
double ghostArea_
 
double ghostEtaMax_
 
edm::EDGetTokenT< reco::VertexCollectioninput_vertex_token_
 
edm::EDGetTokenT< edm::ValueMap< float > > input_weights_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_
 
std::shared_ptr< PileUpSubtractorsubtractor_
 
bool useDeterministicSeed_
 
bool useExplicitGhosts_
 
int verbosity_
 
reco::Particle::Point vertex_
 
double voronoiRfact_
 
edm::ValueMap< float > weights_
 
bool writeCompound_
 
bool writeJetsWithConst_
 

Detailed Description

Definition at line 41 of file FastjetJetProducer.h.

Member Typedef Documentation

◆ DynamicRfiltPtr

Definition at line 58 of file FastjetJetProducer.h.

◆ transformer

typedef fastjet::Transformer FastjetJetProducer::transformer

Definition at line 44 of file FastjetJetProducer.h.

◆ transformer_coll

Definition at line 46 of file FastjetJetProducer.h.

◆ transformer_ptr

Definition at line 45 of file FastjetJetProducer.h.

Constructor & Destructor Documentation

◆ FastjetJetProducer()

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

Definition at line 60 of file FastjetJetProducer.cc.

60  : VirtualJetProducer(iConfig) {
61  useOnlyVertexTracks_ = iConfig.getParameter<bool>("UseOnlyVertexTracks");
62  useOnlyOnePV_ = iConfig.getParameter<bool>("UseOnlyOnePV");
63  dzTrVtxMax_ = iConfig.getParameter<double>("DzTrVtxMax");
64  dxyTrVtxMax_ = iConfig.getParameter<double>("DxyTrVtxMax");
65  minVtxNdof_ = iConfig.getParameter<int>("MinVtxNdof");
66  maxVtxZ_ = iConfig.getParameter<double>("MaxVtxZ");
67 
68  useMassDropTagger_ = iConfig.getParameter<bool>("useMassDropTagger");
69  muCut_ = iConfig.getParameter<double>("muCut");
70  yCut_ = iConfig.getParameter<double>("yCut");
71 
72  useFiltering_ = iConfig.getParameter<bool>("useFiltering");
73  rFilt_ = iConfig.getParameter<double>("rFilt");
74  nFilt_ = iConfig.getParameter<int>("nFilt");
75  useDynamicFiltering_ = iConfig.getParameter<bool>("useDynamicFiltering");
77  rFiltDynamic_ = std::make_shared<DynamicRfilt>(rFilt_, rFiltFactor_);
78  rFiltFactor_ = iConfig.getParameter<double>("rFiltFactor");
79 
80  useTrimming_ = iConfig.getParameter<bool>("useTrimming");
81  trimPtFracMin_ = iConfig.getParameter<double>("trimPtFracMin");
82 
83  usePruning_ = iConfig.getParameter<bool>("usePruning");
84  zCut_ = iConfig.getParameter<double>("zcut");
85  RcutFactor_ = iConfig.getParameter<double>("rcut_factor");
86  useKtPruning_ = iConfig.getParameter<bool>("useKtPruning");
87 
88  useCMSBoostedTauSeedingAlgorithm_ = iConfig.getParameter<bool>("useCMSBoostedTauSeedingAlgorithm");
89  subjetPtMin_ = iConfig.getParameter<double>("subjetPtMin");
90  muMin_ = iConfig.getParameter<double>("muMin");
91  muMax_ = iConfig.getParameter<double>("muMax");
92  yMin_ = iConfig.getParameter<double>("yMin");
93  yMax_ = iConfig.getParameter<double>("yMax");
94  dRMin_ = iConfig.getParameter<double>("dRMin");
95  dRMax_ = iConfig.getParameter<double>("dRMax");
96  maxDepth_ = iConfig.getParameter<int>("maxDepth");
97 
98  useConstituentSubtraction_ = iConfig.getParameter<bool>("useConstituentSubtraction");
99  csRho_EtaMax_ = iConfig.getParameter<double>("csRho_EtaMax");
100  csRParam_ = iConfig.getParameter<double>("csRParam");
101 
102  useSoftDrop_ = iConfig.getParameter<bool>("useSoftDrop");
103  zCut_ = iConfig.getParameter<double>("zcut");
104  beta_ = iConfig.getParameter<double>("beta");
105  R0_ = iConfig.getParameter<double>("R0");
106 
107  correctShape_ = iConfig.getParameter<bool>("correctShape");
108  gridMaxRapidity_ = iConfig.getParameter<double>("gridMaxRapidity");
109  gridSpacing_ = iConfig.getParameter<double>("gridSpacing");
110 
112  consumes<edm::View<reco::RecoChargedRefCandidate>>(iConfig.getParameter<edm::InputTag>("src"));
113 
116  useExplicitGhosts_ = true;
117 
119 
120  if ((useMassDropTagger_) && ((muCut_ == -1) || (yCut_ == -1)))
121  throw cms::Exception("useMassDropTagger")
122  << "Parameters muCut and/or yCut for Mass Drop are not defined." << std::endl;
123 
124  if ((useFiltering_) && ((rFilt_ == -1) || (nFilt_ == -1))) {
125  throw cms::Exception("useFiltering") << "Parameters rFilt and/or nFilt for Filtering are not defined." << std::endl;
126  if ((useDynamicFiltering_) && (rFiltFactor_ == -1))
127  throw cms::Exception("useDynamicFiltering")
128  << "Parameters rFiltFactor for DynamicFiltering is not defined." << std::endl;
129  }
130 
131  if ((useTrimming_) && ((rFilt_ == -1) || (trimPtFracMin_ == -1)))
132  throw cms::Exception("useTrimming") << "Parameters rFilt and/or trimPtFracMin for Trimming are not defined."
133  << std::endl;
134 
135  if ((usePruning_) && ((zCut_ == -1) || (RcutFactor_ == -1) || (nFilt_ == -1)))
136  throw cms::Exception("usePruning") << "Parameters zCut and/or RcutFactor and/or nFilt for Pruning are not defined."
137  << std::endl;
138 
140  ((subjetPtMin_ == -1) || (maxDepth_ == -1) || (muMin_ == -1) || (muMax_ == -1) || (yMin_ == -1) ||
141  (yMax_ == -1) || (dRMin_ == -1) || (dRMax_ == -1)))
142  throw cms::Exception("useCMSBoostedTauSeedingAlgorithm")
143  << "Parameters subjetPtMin, muMin, muMax, yMin, yMax, dRmin, dRmax, maxDepth for CMSBoostedTauSeedingAlgorithm "
144  "are not defined."
145  << std::endl;
146 
147  if (useConstituentSubtraction_ && (fjAreaDefinition_.get() == nullptr))
148  throw cms::Exception("AreaMustBeSet")
149  << "Logic error. The area definition must be set if you use constituent subtraction." << std::endl;
150 
151  if ((useConstituentSubtraction_) && ((csRho_EtaMax_ == -1) || (csRParam_ == -1)))
152  throw cms::Exception("useConstituentSubtraction")
153  << "Parameters csRho_EtaMax and/or csRParam for ConstituentSubtraction are not defined." << std::endl;
154 
155  if (useSoftDrop_ && usePruning_)
156  throw cms::Exception("PruningAndSoftDrop")
157  << "Logic error. Soft drop is a generalized pruning, do not run them together." << std::endl;
158 
159  if ((useSoftDrop_) && ((zCut_ == -1) || (beta_ == -1) || (R0_ == -1)))
160  throw cms::Exception("useSoftDrop") << "Parameters zCut and/or beta and/or R0 for SoftDrop are not defined."
161  << std::endl;
162 
163  if ((correctShape_) && ((gridMaxRapidity_ == -1) || (gridSpacing_ == -1)))
164  throw cms::Exception("correctShape")
165  << "Parameters gridMaxRapidity and/or gridSpacing for SoftDrop are not defined." << std::endl;
166 }

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_.

◆ ~FastjetJetProducer()

FastjetJetProducer::~FastjetJetProducer ( )
override

Definition at line 169 of file FastjetJetProducer.cc.

169 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 465 of file FastjetJetProducer.cc.

465  {
466  edm::ParameterSetDescription descFastjetJetProducer;
468  fillDescriptionsFromFastJetProducer(descFastjetJetProducer);
472  descFastjetJetProducer.add<string>("jetCollInstanceName", "");
473  descFastjetJetProducer.add<bool>("sumRecHits", false);
474 
476  descriptions.add("FastjetJetProducer", descFastjetJetProducer);
477 }

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

◆ fillDescriptionsFromFastJetProducer()

void FastjetJetProducer::fillDescriptionsFromFastJetProducer ( edm::ParameterSetDescription desc)
static

Definition at line 479 of file FastjetJetProducer.cc.

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

References submitPVResolutionJobs::desc.

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

◆ produce()

void FastjetJetProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 175 of file FastjetJetProducer.cc.

175  {
176  // for everything but track jets
177  if (!makeTrackJet(jetTypeE)) {
178  // use the default production from one collection
180 
181  } else { // produce trackjets from tracks grouped per primary vertex
182 
183  produceTrackJets(iEvent, iSetup);
184  }
185 
186  // fjClusterSeq_ retains quite a lot of memory - about 1 to 7Mb at 200 pileup
187  // depending on the exact configuration; and there are 24 FastjetJetProducers in the
188  // sequence so this adds up to about 60 Mb. It's allocated every time runAlgorithm
189  // is called, so safe to delete here.
190  fjClusterSeq_.reset();
191 }

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

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

◆ produceTrackJets()

void FastjetJetProducer::produceTrackJets ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
protectedvirtual

Definition at line 193 of file FastjetJetProducer.cc.

193  {
194  // read in the track candidates
196  iEvent.getByToken(input_chrefcand_token_, inputsHandle);
197 
198  // make collection with pointers so we can play around with it
199  std::vector<edm::Ptr<reco::RecoChargedRefCandidate>> allInputs;
200  std::vector<edm::Ptr<reco::Candidate>> origInputs;
201  for (size_t i = 0; i < inputsHandle->size(); ++i) {
202  allInputs.push_back(inputsHandle->ptrAt(i));
203  origInputs.push_back(inputsHandle->ptrAt(i));
204  }
205 
206  // read in the PV collection
209  // define the overall output jet container
210  auto jets = std::make_unique<std::vector<reco::TrackJet>>();
211 
212  // loop over the good vertices, clustering for each vertex separately
213  for (reco::VertexCollection::const_iterator itVtx = pvCollection->begin(); itVtx != pvCollection->end(); ++itVtx) {
214  if (itVtx->isFake() || itVtx->ndof() < minVtxNdof_ || fabs(itVtx->z()) > maxVtxZ_)
215  continue;
216 
217  // clear the intermediate containers
218  inputs_.clear();
219  fjInputs_.clear();
220  fjJets_.clear();
221 
222  // if only vertex-associated tracks should be used
223  if (useOnlyVertexTracks_) {
224  // loop over the tracks associated to the vertex
225  for (reco::Vertex::trackRef_iterator itTr = itVtx->tracks_begin(); itTr != itVtx->tracks_end(); ++itTr) {
226  // whether a match was found in the track candidate input
227  bool found = false;
228  // loop over input track candidates
229  for (std::vector<edm::Ptr<reco::RecoChargedRefCandidate>>::iterator itIn = allInputs.begin();
230  itIn != allInputs.end();
231  ++itIn) {
232  // match the input track candidate to the track from the vertex
233  reco::TrackRef trref(itTr->castTo<reco::TrackRef>());
234  // check if the tracks match
235  if ((*itIn)->track() == trref) {
236  found = true;
237  // add this track candidate to the input for clustering
238  inputs_.push_back(*itIn);
239  // erase the track candidate from the total list of input, so we don't reuse it later
240  allInputs.erase(itIn);
241  // found the candidate track corresponding to the vertex track, so stop the loop
242  break;
243  } // end if match found
244  } // end loop over input tracks
245  // give an info message in case no match is found (can happen if candidates are subset of tracks used for clustering)
246  if (!found)
247  edm::LogInfo("FastjetTrackJetProducer")
248  << "Ignoring a track at vertex which is not in input track collection!";
249  } // end loop over tracks associated to vertex
250  // if all inpt track candidates should be used
251  } else {
252  // loop over input track candidates
253  for (std::vector<edm::Ptr<reco::RecoChargedRefCandidate>>::iterator itIn = allInputs.begin();
254  itIn != allInputs.end();
255  ++itIn) {
256  // check if the track is close enough to the vertex
257  float dz = (*itIn)->track()->dz(itVtx->position());
258  float dxy = (*itIn)->track()->dxy(itVtx->position());
259  if (fabs(dz) > dzTrVtxMax_)
260  continue;
261  if (fabs(dxy) > dxyTrVtxMax_)
262  continue;
263  bool closervtx = false;
264  // now loop over the good vertices a second time
265  for (reco::VertexCollection::const_iterator itVtx2 = pvCollection->begin(); itVtx2 != pvCollection->end();
266  ++itVtx2) {
267  if (itVtx->isFake() || itVtx->ndof() < minVtxNdof_ || fabs(itVtx->z()) > maxVtxZ_)
268  continue;
269  // and check this track is closer to any other vertex (if more than 1 vertex considered)
270  if (!useOnlyOnePV_ && itVtx != itVtx2 && fabs((*itIn)->track()->dz(itVtx2->position())) < fabs(dz)) {
271  closervtx = true;
272  break; // 1 closer vertex makes the track already not matched, so break
273  }
274  }
275  // don't add this track if another vertex is found closer
276  if (closervtx)
277  continue;
278  // add this track candidate to the input for clustering
279  inputs_.push_back(*itIn);
280  // erase the track candidate from the total list of input, so we don't reuse it later
281  allInputs.erase(itIn);
282  // take a step back in the loop since we just erased
283  --itIn;
284  }
285  }
286 
287  // convert candidates in inputs_ to fastjet::PseudoJets in fjInputs_
288  fjInputs_.reserve(inputs_.size());
289  inputTowers();
290  LogDebug("FastjetTrackJetProducer") << "Inputted towers\n";
291 
292  // run algorithm, using fjInputs_, modifying fjJets_ and allocating fjClusterSeq_
293  runAlgorithm(iEvent, iSetup);
294  LogDebug("FastjetTrackJetProducer") << "Ran algorithm\n";
295 
296  // convert our jets and add to the overall jet vector
297  for (unsigned int ijet = 0; ijet < fjJets_.size(); ++ijet) {
298  // get the constituents from fastjet
299  std::vector<fastjet::PseudoJet> fjConstituents = sorted_by_pt(fjClusterSeq_->constituents(fjJets_[ijet]));
300  // convert them to CandidatePtr vector
301  std::vector<reco::CandidatePtr> constituents = getConstituents(fjConstituents);
302  // fill the trackjet
304  // write the specifics to the jet (simultaneously sets 4-vector, vertex).
306  jet,
307  reco::Particle::LorentzVector(fjJets_[ijet].px(), fjJets_[ijet].py(), fjJets_[ijet].pz(), fjJets_[ijet].E()),
308  vertex_,
309  constituents,
310  iSetup);
311  jet.setJetArea(0);
312  jet.setPileup(0);
313  jet.setPrimaryVertex(edm::Ref<reco::VertexCollection>(pvCollection, (int)(itVtx - pvCollection->begin())));
314  jet.setVertex(itVtx->position());
315  jets->push_back(jet);
316  }
317 
318  if (useOnlyOnePV_)
319  break; // stop vertex loop if only one vertex asked for
320  } // end loop over vertices
321 
322  // put the jets in the collection
323  LogDebug("FastjetTrackJetProducer") << "Put " << jets->size() << " jets in the event.\n";
324  iEvent.put(std::move(jets));
325 
326  // Clear the work vectors so that memory is free for other modules.
327  // Use the trick of swapping with an empty vector so that the memory
328  // is actually given back rather than silently kept.
329  decltype(fjInputs_)().swap(fjInputs_);
330  decltype(fjJets_)().swap(fjJets_);
331  decltype(inputs_)().swap(inputs_);
332 }

References PVValHelper::dxy, dxyTrVtxMax_, PVValHelper::dz, dzTrVtxMax_, VirtualJetProducer::fjClusterSeq_, VirtualJetProducer::fjInputs_, VirtualJetProducer::fjJets_, newFWLiteAna::found, VirtualJetProducer::getConstituents(), mps_fire::i, iEvent, input_chrefcand_token_, VirtualJetProducer::input_vertex_token_, VirtualJetProducer::inputs_, VirtualJetProducer::inputTowers(), metsig::jet, singleTopDQM_cfi::jets, LogDebug, maxVtxZ_, minVtxNdof_, eostools::move(), anotherprimaryvertexanalyzer_cfi::pvCollection, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, runAlgorithm(), edm::swap(), useOnlyOnePV_, useOnlyVertexTracks_, trackerHitRTTI::vector, VirtualJetProducer::vertex_, and reco::writeSpecific().

Referenced by produce().

◆ runAlgorithm()

void FastjetJetProducer::runAlgorithm ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements VirtualJetProducer.

Reimplemented in cms::HTTTopJetProducer.

Definition at line 335 of file FastjetJetProducer.cc.

335  {
336  // run algorithm
337  /*
338  fjInputs_.clear();
339  double px, py , pz, E;
340  string line;
341  std::ifstream fin("dump3.txt");
342  while (getline(fin, line)){
343  if (line == "#END") break;
344  if (line.substr(0,1) == "#") {continue;}
345  istringstream istr(line);
346  istr >> px >> py >> pz >> E;
347  // create a fastjet::PseudoJet with these components and put it onto
348  // back of the input_particles vector
349  fastjet::PseudoJet j(px,py,pz,E);
350  //if ( fabs(j.rap()) < inputEtaMax )
351  fjInputs_.push_back(fastjet::PseudoJet(px,py,pz,E));
352  }
353  fin.close();
354  */
355 
356  if (!doAreaFastjet_ && !doRhoFastjet_) {
357  fjClusterSeq_ = std::make_shared<fastjet::ClusterSequence>(fjInputs_, *fjJetDefinition_);
358  } else if (voronoiRfact_ <= 0) {
359  fjClusterSeq_ =
360  ClusterSequencePtr(new fastjet::ClusterSequenceArea(fjInputs_, *fjJetDefinition_, *fjAreaDefinition_));
361  } else {
363  new fastjet::ClusterSequenceVoronoiArea(fjInputs_, *fjJetDefinition_, fastjet::VoronoiAreaSpec(voronoiRfact_)));
364  }
365 
368  fjJets_ = fastjet::sorted_by_pt(fjClusterSeq_->inclusive_jets(jetPtMin_));
369  } else {
370  fjJets_.clear();
371 
372  transformer_coll transformers;
373 
374  std::vector<fastjet::PseudoJet> tempJets = fastjet::sorted_by_pt(fjClusterSeq_->inclusive_jets(jetPtMin_));
375 
376  unique_ptr<fastjet::JetMedianBackgroundEstimator> bge_rho;
378  fastjet::Selector rho_range = fastjet::SelectorAbsRapMax(csRho_EtaMax_);
379  bge_rho = std::make_unique<fastjet::JetMedianBackgroundEstimator>(
380  rho_range, fastjet::JetDefinition(fastjet::kt_algorithm, csRParam_), *fjAreaDefinition_);
381  bge_rho->set_particles(fjInputs_);
382  fastjet::contrib::ConstituentSubtractor* constituentSubtractor =
383  new fastjet::contrib::ConstituentSubtractor(bge_rho.get());
384 
385  transformers.push_back(transformer_ptr(constituentSubtractor));
386  };
387  if (useMassDropTagger_) {
388  fastjet::MassDropTagger* md_tagger = new fastjet::MassDropTagger(muCut_, yCut_);
389  transformers.push_back(transformer_ptr(md_tagger));
390  }
392  fastjet::contrib::CMSBoostedTauSeedingAlgorithm* tau_tagger = new fastjet::contrib::CMSBoostedTauSeedingAlgorithm(
394  transformers.push_back(transformer_ptr(tau_tagger));
395  }
396  if (useTrimming_) {
397  fastjet::Filter* trimmer = new fastjet::Filter(fastjet::JetDefinition(fastjet::kt_algorithm, rFilt_),
398  fastjet::SelectorPtFractionMin(trimPtFracMin_));
399  transformers.push_back(transformer_ptr(trimmer));
400  }
401  if ((useFiltering_) && (!useDynamicFiltering_)) {
402  fastjet::Filter* filter = new fastjet::Filter(fastjet::JetDefinition(fastjet::cambridge_algorithm, rFilt_),
403  fastjet::SelectorNHardest(nFilt_));
404  transformers.push_back(transformer_ptr(filter));
405  }
406 
407  if ((usePruning_) && (!useKtPruning_)) {
408  fastjet::Pruner* pruner = new fastjet::Pruner(fastjet::cambridge_algorithm, zCut_, RcutFactor_);
409  transformers.push_back(transformer_ptr(pruner));
410  }
411 
412  if (useDynamicFiltering_) {
414  new fastjet::Filter(fastjet::Filter(&*rFiltDynamic_, fastjet::SelectorNHardest(nFilt_)));
415  transformers.push_back(transformer_ptr(filter));
416  }
417 
418  if (useKtPruning_) {
419  fastjet::Pruner* pruner = new fastjet::Pruner(fastjet::kt_algorithm, zCut_, RcutFactor_);
420  transformers.push_back(transformer_ptr(pruner));
421  }
422 
423  if (useSoftDrop_) {
424  fastjet::contrib::SoftDrop* sd = new fastjet::contrib::SoftDrop(beta_, zCut_, R0_);
425  transformers.push_back(transformer_ptr(sd));
426  }
427 
428  unique_ptr<fastjet::Subtractor> subtractor;
429  unique_ptr<fastjet::GridMedianBackgroundEstimator> bge_rho_grid;
430  if (correctShape_) {
431  bge_rho_grid = std::make_unique<fastjet::GridMedianBackgroundEstimator>(gridMaxRapidity_, gridSpacing_);
432  bge_rho_grid->set_particles(fjInputs_);
433  subtractor = std::make_unique<fastjet::Subtractor>(bge_rho_grid.get());
434  subtractor->set_use_rho_m();
435  //subtractor->use_common_bge_for_rho_and_rhom(true);
436  }
437 
438  for (std::vector<fastjet::PseudoJet>::const_iterator ijet = tempJets.begin(), ijetEnd = tempJets.end();
439  ijet != ijetEnd;
440  ++ijet) {
441  fastjet::PseudoJet transformedJet = *ijet;
442  bool passed = true;
443  for (transformer_coll::const_iterator itransf = transformers.begin(), itransfEnd = transformers.end();
444  itransf != itransfEnd;
445  ++itransf) {
446  if (transformedJet != 0) {
447  transformedJet = (**itransf)(transformedJet);
448  } else {
449  passed = false;
450  }
451  }
452 
453  if (correctShape_) {
454  transformedJet = (*subtractor)(transformedJet);
455  }
456 
457  if (passed) {
458  fjJets_.push_back(transformedJet);
459  }
460  }
461  }
462 }

References beta_, correctShape_, csRho_EtaMax_, csRParam_, VirtualJetProducer::doAreaFastjet_, VirtualJetProducer::doRhoFastjet_, dRMax_, dRMin_, ALCARECOTkAlBeamHalo_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().

Member Data Documentation

◆ beta_

double FastjetJetProducer::beta_
private

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

Definition at line 99 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ correctShape_

bool FastjetJetProducer::correctShape_
private

Soft drop.

Definition at line 87 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ csRho_EtaMax_

double FastjetJetProducer::csRho_EtaMax_
private

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

Definition at line 97 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ csRParam_

double FastjetJetProducer::csRParam_
private

for constituent subtraction : maximum rapidity for ghosts

Definition at line 98 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ dRMax_

double FastjetJetProducer::dRMax_
private

for CMSBoostedTauSeedingAlgorithm : min dR

Definition at line 110 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ dRMin_

double FastjetJetProducer::dRMin_
private

for CMSBoostedTauSeedingAlgorithm : max asymmetry

Definition at line 109 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ dxyTrVtxMax_

float FastjetJetProducer::dxyTrVtxMax_
private

Definition at line 73 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ dzTrVtxMax_

float FastjetJetProducer::dzTrVtxMax_
private

Definition at line 72 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ gridMaxRapidity_

double FastjetJetProducer::gridMaxRapidity_
private

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

Definition at line 101 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ gridSpacing_

double FastjetJetProducer::gridSpacing_
private

for shape subtraction, get the fixed-grid rho

Definition at line 102 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ input_chrefcand_token_

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

for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence

Definition at line 114 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ maxDepth_

int FastjetJetProducer::maxDepth_
private

for CMSBoostedTauSeedingAlgorithm : max dR

Definition at line 111 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ maxVtxZ_

float FastjetJetProducer::maxVtxZ_
private

Definition at line 75 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ minVtxNdof_

int FastjetJetProducer::minVtxNdof_
private

Definition at line 74 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ muCut_

double FastjetJetProducer::muCut_
private

Correct the shape of the jets.

Definition at line 88 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ muMax_

double FastjetJetProducer::muMax_
private

for CMSBoostedTauSeedingAlgorithm : min mass-drop

Definition at line 106 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ muMin_

double FastjetJetProducer::muMin_
private

for CMSBoostedTauSeedingAlgorithm : subjet pt min

Definition at line 105 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ nFilt_

int FastjetJetProducer::nFilt_
private

for dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 93 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ R0_

double FastjetJetProducer::R0_
private

for soft drop : beta (angular exponent)

Definition at line 100 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ RcutFactor_

double FastjetJetProducer::RcutFactor_
private

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

Definition at line 96 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ rFilt_

double FastjetJetProducer::rFilt_
private

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

Definition at line 90 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ rFiltDynamic_

DynamicRfiltPtr FastjetJetProducer::rFiltDynamic_
private

for filtering, trimming: dR scale of sub-clustering

Definition at line 91 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ rFiltFactor_

double FastjetJetProducer::rFiltFactor_
private

for dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 92 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer().

◆ subjetPtMin_

double FastjetJetProducer::subjetPtMin_
private

for shape subtraction, get the grid spacing

Definition at line 104 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ trimPtFracMin_

double FastjetJetProducer::trimPtFracMin_
private

for filtering, pruning: number of subjets expected

Definition at line 94 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useCMSBoostedTauSeedingAlgorithm_

bool FastjetJetProducer::useCMSBoostedTauSeedingAlgorithm_
private

Jet pruning technique.

Definition at line 83 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useConstituentSubtraction_

bool FastjetJetProducer::useConstituentSubtraction_
private

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

Definition at line 85 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useDynamicFiltering_

bool FastjetJetProducer::useDynamicFiltering_
private

Jet filtering technique.

Definition at line 80 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useFiltering_

bool FastjetJetProducer::useFiltering_
private

Mass-drop tagging for boosted Higgs.

Definition at line 79 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useKtPruning_

bool FastjetJetProducer::useKtPruning_
private

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

Definition at line 84 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useMassDropTagger_

bool FastjetJetProducer::useMassDropTagger_
private

Definition at line 78 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useOnlyOnePV_

bool FastjetJetProducer::useOnlyOnePV_
private

Definition at line 71 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ useOnlyVertexTracks_

bool FastjetJetProducer::useOnlyVertexTracks_
private

Definition at line 70 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and produceTrackJets().

◆ usePruning_

bool FastjetJetProducer::usePruning_
private

Jet trimming technique.

Definition at line 82 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useSoftDrop_

bool FastjetJetProducer::useSoftDrop_
private

constituent subtraction technique

Definition at line 86 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ useTrimming_

bool FastjetJetProducer::useTrimming_
private

Use dynamic filtering radius (as in arXiv:0802.2470)

Definition at line 81 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ yCut_

double FastjetJetProducer::yCut_
private

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

Definition at line 89 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ yMax_

double FastjetJetProducer::yMax_
private

for CMSBoostedTauSeedingAlgorithm : min asymmetry

Definition at line 108 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ yMin_

double FastjetJetProducer::yMin_
private

for CMSBoostedTauSeedingAlgorithm : max mass-drop

Definition at line 107 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

◆ zCut_

double FastjetJetProducer::zCut_
private

for trimming: constituent minimum pt fraction of full jet

Definition at line 95 of file FastjetJetProducer.h.

Referenced by FastjetJetProducer(), and runAlgorithm().

reco::Vertex::trackRef_iterator
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:38
FastjetJetProducer::maxDepth_
int maxDepth_
for CMSBoostedTauSeedingAlgorithm : max dR
Definition: FastjetJetProducer.h:111
VirtualJetProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: VirtualJetProducer.cc:264
FastjetJetProducer::correctShape_
bool correctShape_
Soft drop.
Definition: FastjetJetProducer.h:87
FastjetJetProducer::useKtPruning_
bool useKtPruning_
algorithm for seeding reconstruction of boosted Taus (similar to mass-drop tagging)
Definition: FastjetJetProducer.h:84
reco::writeSpecific
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:34
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
FastjetJetProducer::transformer_ptr
std::unique_ptr< transformer > transformer_ptr
Definition: FastjetJetProducer.h:45
FastjetJetProducer::transformer_coll
std::vector< transformer_ptr > transformer_coll
Definition: FastjetJetProducer.h:46
FastjetJetProducer::produceTrackJets
virtual void produceTrackJets(edm::Event &iEvent, const edm::EventSetup &iSetup)
Definition: FastjetJetProducer.cc:193
FastjetJetProducer::useSoftDrop_
bool useSoftDrop_
constituent subtraction technique
Definition: FastjetJetProducer.h:86
FastjetJetProducer::muMax_
double muMax_
for CMSBoostedTauSeedingAlgorithm : min mass-drop
Definition: FastjetJetProducer.h:106
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
VirtualJetProducer::ClusterSequencePtr
std::shared_ptr< fastjet::ClusterSequence > ClusterSequencePtr
Definition: VirtualJetProducer.h:73
FastjetJetProducer::csRho_EtaMax_
double csRho_EtaMax_
for pruning: constituent dR * pt/2m < rcut_factor
Definition: FastjetJetProducer.h:97
edm::swap
void swap(Association< C > &lhs, Association< C > &rhs)
Definition: Association.h:117
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
VirtualJetProducer::jetTypeE
JetType::Type jetTypeE
Definition: VirtualJetProducer.h:54
FastjetJetProducer::nFilt_
int nFilt_
for dynamic filtering radius (as in arXiv:0802.2470)
Definition: FastjetJetProducer.h:93
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
FastjetJetProducer::dRMin_
double dRMin_
for CMSBoostedTauSeedingAlgorithm : max asymmetry
Definition: FastjetJetProducer.h:109
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
FastjetJetProducer::rFilt_
double rFilt_
for mass-drop tagging, symmetry cut: min(pt1^2,pt2^2) * dR(1,2) / mjet > ycut
Definition: FastjetJetProducer.h:90
FastjetJetProducer::dzTrVtxMax_
float dzTrVtxMax_
Definition: FastjetJetProducer.h:72
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle
Definition: AssociativeIterator.h:50
FastjetJetProducer::useDynamicFiltering_
bool useDynamicFiltering_
Jet filtering technique.
Definition: FastjetJetProducer.h:80
VirtualJetProducer::voronoiRfact_
double voronoiRfact_
Definition: VirtualJetProducer.h:170
VirtualJetProducer::verbosity_
int verbosity_
Definition: VirtualJetProducer.h:207
VirtualJetProducer::vertex_
reco::Particle::Point vertex_
Definition: VirtualJetProducer.h:184
VirtualJetProducer::fjClusterSeq_
ClusterSequencePtr fjClusterSeq_
Definition: VirtualJetProducer.h:185
reco::Particle::LorentzVector
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
FastjetJetProducer::yMin_
double yMin_
for CMSBoostedTauSeedingAlgorithm : max mass-drop
Definition: FastjetJetProducer.h:107
reco::TrackJet
Jets made out of tracks.
Definition: TrackJet.h:24
edm::Ref< TrackCollection >
VirtualJetProducer::VirtualJetProducer
VirtualJetProducer(const edm::ParameterSet &iConfig)
Definition: VirtualJetProducer.cc:113
FastjetJetProducer::dxyTrVtxMax_
float dxyTrVtxMax_
Definition: FastjetJetProducer.h:73
FastjetJetProducer::R0_
double R0_
for soft drop : beta (angular exponent)
Definition: FastjetJetProducer.h:100
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
FastjetJetProducer::rFiltFactor_
double rFiltFactor_
for dynamic filtering radius (as in arXiv:0802.2470)
Definition: FastjetJetProducer.h:92
FastjetJetProducer::trimPtFracMin_
double trimPtFracMin_
for filtering, pruning: number of subjets expected
Definition: FastjetJetProducer.h:94
anotherprimaryvertexanalyzer_cfi.pvCollection
pvCollection
Definition: anotherprimaryvertexanalyzer_cfi.py:4
ALCARECOTkAlBeamHalo_cff.filter
filter
Definition: ALCARECOTkAlBeamHalo_cff.py:27
FastjetJetProducer::fillDescriptionsFromFastJetProducer
static void fillDescriptionsFromFastJetProducer(edm::ParameterSetDescription &desc)
Definition: FastjetJetProducer.cc:479
FastjetJetProducer::useFiltering_
bool useFiltering_
Mass-drop tagging for boosted Higgs.
Definition: FastjetJetProducer.h:79
VirtualJetProducer::doRhoFastjet_
bool doRhoFastjet_
Definition: VirtualJetProducer.h:167
VirtualJetProducer::inputs_
std::vector< edm::Ptr< reco::Candidate > > inputs_
Definition: VirtualJetProducer.h:183
FastjetJetProducer::useConstituentSubtraction_
bool useConstituentSubtraction_
Use Kt clustering algorithm for pruning (default is Cambridge/Aachen)
Definition: FastjetJetProducer.h:85
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
FastjetJetProducer::yMax_
double yMax_
for CMSBoostedTauSeedingAlgorithm : min asymmetry
Definition: FastjetJetProducer.h:108
VirtualJetProducer::input_vertex_token_
edm::EDGetTokenT< reco::VertexCollection > input_vertex_token_
Definition: VirtualJetProducer.h:223
FastjetJetProducer::muMin_
double muMin_
for CMSBoostedTauSeedingAlgorithm : subjet pt min
Definition: FastjetJetProducer.h:105
FastjetJetProducer::useOnlyVertexTracks_
bool useOnlyVertexTracks_
Definition: FastjetJetProducer.h:70
FastjetJetProducer::zCut_
double zCut_
for trimming: constituent minimum pt fraction of full jet
Definition: FastjetJetProducer.h:95
VirtualJetProducer::makeTrackJet
bool makeTrackJet(const JetType::Type &fTag)
Definition: VirtualJetProducer.h:59
FastjetJetProducer::subjetPtMin_
double subjetPtMin_
for shape subtraction, get the grid spacing
Definition: FastjetJetProducer.h:104
VirtualJetProducer::jetPtMin_
double jetPtMin_
Definition: VirtualJetProducer.h:155
iEvent
int iEvent
Definition: GenABIO.cc:224
FastjetJetProducer::dRMax_
double dRMax_
for CMSBoostedTauSeedingAlgorithm : min dR
Definition: FastjetJetProducer.h:110
VirtualJetProducer::inputTowers
virtual void inputTowers()
Definition: VirtualJetProducer.cc:442
FastjetJetProducer::minVtxNdof_
int minVtxNdof_
Definition: FastjetJetProducer.h:74
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
VirtualJetProducer::fjAreaDefinition_
AreaDefinitionPtr fjAreaDefinition_
Definition: VirtualJetProducer.h:189
FastjetJetProducer::useTrimming_
bool useTrimming_
Use dynamic filtering radius (as in arXiv:0802.2470)
Definition: FastjetJetProducer.h:81
FastjetJetProducer::RcutFactor_
double RcutFactor_
for pruning OR soft drop: constituent minimum pt fraction of parent cluster
Definition: FastjetJetProducer.h:96
edm::Ptr
Definition: AssociationVector.h:31
FastjetJetProducer::muCut_
double muCut_
Correct the shape of the jets.
Definition: FastjetJetProducer.h:88
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
FastjetJetProducer::csRParam_
double csRParam_
for constituent subtraction : maximum rapidity for ghosts
Definition: FastjetJetProducer.h:98
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
ALCARECOPromptCalibProdSiPixelAli0T_cff.Selector
Selector
Definition: ALCARECOPromptCalibProdSiPixelAli0T_cff.py:81
VirtualJetProducer::getConstituents
virtual std::vector< reco::CandidatePtr > getConstituents(const std::vector< fastjet::PseudoJet > &fjConstituents)
Definition: VirtualJetProducer.cc:522
PVValHelper::dxy
Definition: PVValidationHelpers.h:47
FastjetJetProducer::useCMSBoostedTauSeedingAlgorithm_
bool useCMSBoostedTauSeedingAlgorithm_
Jet pruning technique.
Definition: FastjetJetProducer.h:83
PVValHelper::dz
Definition: PVValidationHelpers.h:50
VirtualJetProducer::doAreaFastjet_
bool doAreaFastjet_
Definition: VirtualJetProducer.h:163
metsig::jet
Definition: SignAlgoResolutions.h:47
FastjetJetProducer::runAlgorithm
void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: FastjetJetProducer.cc:335
FastjetJetProducer::useMassDropTagger_
bool useMassDropTagger_
Definition: FastjetJetProducer.h:78
FastjetJetProducer::rFiltDynamic_
DynamicRfiltPtr rFiltDynamic_
for filtering, trimming: dR scale of sub-clustering
Definition: FastjetJetProducer.h:91
FastjetJetProducer::useOnlyOnePV_
bool useOnlyOnePV_
Definition: FastjetJetProducer.h:71
Exception
Definition: hltDiff.cc:246
VirtualJetProducer::fjJets_
std::vector< fastjet::PseudoJet > fjJets_
Definition: VirtualJetProducer.h:192
cms::Filter
dd4hep::Filter Filter
Definition: DDFilteredView.h:50
VirtualJetProducer::fjJetDefinition_
JetDefPtr fjJetDefinition_
Definition: VirtualJetProducer.h:186
TriggerAnalyzer.passed
passed
Definition: TriggerAnalyzer.py:62
FastjetJetProducer::beta_
double beta_
for constituent subtraction : R parameter for KT alg in jet median background estimator
Definition: FastjetJetProducer.h:99
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
FastjetJetProducer::input_chrefcand_token_
edm::EDGetTokenT< edm::View< reco::RecoChargedRefCandidate > > input_chrefcand_token_
for CMSBoostedTauSeedingAlgorithm : max depth for descending into clustering sequence
Definition: FastjetJetProducer.h:114
FastjetJetProducer::yCut_
double yCut_
for mass-drop tagging, m0/mjet (m0 = mass of highest mass subjet)
Definition: FastjetJetProducer.h:89
VirtualJetProducer::useExplicitGhosts_
bool useExplicitGhosts_
Definition: VirtualJetProducer.h:164
FastjetJetProducer::maxVtxZ_
float maxVtxZ_
Definition: FastjetJetProducer.h:75
sd
double sd
Definition: CascadeWrapper.h:113
VirtualJetProducer::fjInputs_
std::vector< fastjet::PseudoJet > fjInputs_
Definition: VirtualJetProducer.h:191
FastjetJetProducer::gridSpacing_
double gridSpacing_
for shape subtraction, get the fixed-grid rho
Definition: FastjetJetProducer.h:102
edm::InputTag
Definition: InputTag.h:15
FastjetJetProducer::usePruning_
bool usePruning_
Jet trimming technique.
Definition: FastjetJetProducer.h:82
VirtualJetProducer::fillDescriptionsFromVirtualJetProducer
static void fillDescriptionsFromVirtualJetProducer(edm::ParameterSetDescription &desc)
Definition: VirtualJetProducer.cc:1016
FastjetJetProducer::gridMaxRapidity_
double gridMaxRapidity_
for soft drop : R0 (angular distance normalization - should be set to jet radius in most cases)
Definition: FastjetJetProducer.h:101