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 hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () 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  nFilt_ = iConfig.getParameter<int>("nFilt");
87  useKtPruning_ = iConfig.getParameter<bool>("useKtPruning");
88 
89  useCMSBoostedTauSeedingAlgorithm_ = iConfig.getParameter<bool>("useCMSBoostedTauSeedingAlgorithm");
90  subjetPtMin_ = iConfig.getParameter<double>("subjetPtMin");
91  muMin_ = iConfig.getParameter<double>("muMin");
92  muMax_ = iConfig.getParameter<double>("muMax");
93  yMin_ = iConfig.getParameter<double>("yMin");
94  yMax_ = iConfig.getParameter<double>("yMax");
95  dRMin_ = iConfig.getParameter<double>("dRMin");
96  dRMax_ = iConfig.getParameter<double>("dRMax");
97  maxDepth_ = iConfig.getParameter<int>("maxDepth");
98 
99  useConstituentSubtraction_ = iConfig.getParameter<bool>("useConstituentSubtraction");
100  csRho_EtaMax_ = iConfig.getParameter<double>("csRho_EtaMax");
101  csRParam_ = iConfig.getParameter<double>("csRParam");
102 
103  useSoftDrop_ = iConfig.getParameter<bool>("useSoftDrop");
104  zCut_ = iConfig.getParameter<double>("zcut");
105  beta_ = iConfig.getParameter<double>("beta");
106  R0_ = iConfig.getParameter<double>("R0");
107 
108  correctShape_ = iConfig.getParameter<bool>("correctShape");
109  gridMaxRapidity_ = iConfig.getParameter<double>("gridMaxRapidity");
110  gridSpacing_ = iConfig.getParameter<double>("gridSpacing");
111 
113  consumes<edm::View<reco::RecoChargedRefCandidate>>(iConfig.getParameter<edm::InputTag>("src"));
114 
117  useExplicitGhosts_ = true;
118 
120 
121  if ((useMassDropTagger_) && ((muCut_ == -1) || (yCut_ == -1)))
122  throw cms::Exception("useMassDropTagger")
123  << "Parameters muCut and/or yCut for Mass Drop are not defined." << std::endl;
124 
125  if ((useFiltering_) && ((rFilt_ == -1) || (nFilt_ == -1))) {
126  throw cms::Exception("useFiltering") << "Parameters rFilt and/or nFilt for Filtering are not defined." << std::endl;
127  if ((useDynamicFiltering_) && (rFiltFactor_ == -1))
128  throw cms::Exception("useDynamicFiltering")
129  << "Parameters rFiltFactor for DynamicFiltering is not defined." << std::endl;
130  }
131 
132  if ((useTrimming_) && ((rFilt_ == -1) || (trimPtFracMin_ == -1)))
133  throw cms::Exception("useTrimming") << "Parameters rFilt and/or trimPtFracMin for Trimming are not defined."
134  << std::endl;
135 
136  if ((usePruning_) && ((zCut_ == -1) || (RcutFactor_ == -1) || (nFilt_ == -1)))
137  throw cms::Exception("usePruning") << "Parameters zCut and/or RcutFactor and/or nFilt for Pruning are not defined."
138  << std::endl;
139 
141  ((subjetPtMin_ == -1) || (maxDepth_ == -1) || (muMin_ == -1) || (muMax_ == -1) || (yMin_ == -1) ||
142  (yMax_ == -1) || (dRMin_ == -1) || (dRMax_ == -1)))
143  throw cms::Exception("useCMSBoostedTauSeedingAlgorithm")
144  << "Parameters subjetPtMin, muMin, muMax, yMin, yMax, dRmin, dRmax, maxDepth for CMSBoostedTauSeedingAlgorithm "
145  "are not defined."
146  << std::endl;
147 
148  if (useConstituentSubtraction_ && (fjAreaDefinition_.get() == nullptr))
149  throw cms::Exception("AreaMustBeSet")
150  << "Logic error. The area definition must be set if you use constituent subtraction." << std::endl;
151 
152  if ((useConstituentSubtraction_) && ((csRho_EtaMax_ == -1) || (csRParam_ == -1)))
153  throw cms::Exception("useConstituentSubtraction")
154  << "Parameters csRho_EtaMax and/or csRParam for ConstituentSubtraction are not defined." << std::endl;
155 
156  if (useSoftDrop_ && usePruning_)
157  throw cms::Exception("PruningAndSoftDrop")
158  << "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."
162  << std::endl;
163 
164  if ((correctShape_) && ((gridMaxRapidity_ == -1) || (gridSpacing_ == -1)))
165  throw cms::Exception("correctShape")
166  << "Parameters gridMaxRapidity and/or gridSpacing for SoftDrop are not defined." << std::endl;
167 }

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 170 of file FastjetJetProducer.cc.

170 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 467 of file FastjetJetProducer.cc.

467  {
468  edm::ParameterSetDescription descFastjetJetProducer;
470  fillDescriptionsFromFastJetProducer(descFastjetJetProducer);
474  descFastjetJetProducer.add<string>("jetCollInstanceName", "");
475  descFastjetJetProducer.add<bool>("sumRecHits", false);
476 
478  descriptions.add("FastjetJetProducer", descFastjetJetProducer);
479 }

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

◆ fillDescriptionsFromFastJetProducer()

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

Definition at line 481 of file FastjetJetProducer.cc.

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

References edm::ParameterSetDescription::add().

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 176 of file FastjetJetProducer.cc.

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

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 194 of file FastjetJetProducer.cc.

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

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_, 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 336 of file FastjetJetProducer.cc.

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

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:355
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
cms::Filter
cms::Filter Filter
Definition: DDFilteredView.h:48
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:194
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::LogInfo
Definition: MessageLogger.h:254
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
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:481
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:670
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
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
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
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:336
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
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
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