CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
VirtualJetProducer Class Referenceabstract

#include <VirtualJetProducer.h>

Inheritance diagram for VirtualJetProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper cms::CompoundJetProducer cms::SubEventGenJetProducer CMSInsideOutJetProducer FastjetJetProducer SubjetFilterJetProducer cms::SubJetProducer cms::CATopJetProducer

Classes

struct  JetType
 

Public Types

typedef boost::shared_ptr
< fastjet::GhostedAreaSpec > 
ActiveAreaSpecPtr
 
typedef boost::shared_ptr
< fastjet::AreaDefinition > 
AreaDefinitionPtr
 
typedef boost::shared_ptr
< fastjet::ClusterSequence > 
ClusterSequencePtr
 
typedef boost::shared_ptr
< fastjet::JetDefinition > 
JetDefPtr
 
typedef boost::shared_ptr
< fastjet::JetDefinition::Plugin > 
PluginPtr
 
typedef boost::shared_ptr
< fastjet::RangeDefinition > 
RangeDefPtr
 
- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 

Public Member Functions

std::string jetType () const
 
virtual void produce (edm::Event &iEvent, const edm::EventSetup &iSetup)
 
 VirtualJetProducer (const edm::ParameterSet &iConfig)
 
virtual ~VirtualJetProducer ()
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Protected Member Functions

virtual void copyConstituents (const std::vector< fastjet::PseudoJet > &fjConstituents, reco::Jet *jet)
 
virtual std::vector
< reco::CandidatePtr
getConstituents (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)
 
virtual void runAlgorithm (edm::Event &iEvent, const edm::EventSetup &iSetup)=0
 
template<typename T >
void writeCompoundJets (edm::Event &iEvent, edm::EventSetup const &iSetup)
 function template to write out the outputs More...
 
template<typename T >
void writeJets (edm::Event &iEvent, edm::EventSetup const &iSetup)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Protected Attributes

bool doAreaDiskApprox_
 
bool doAreaFastjet_
 
bool doFastJetNonUniform_
 
bool doPUOffsetCorr_
 
bool doPVCorrection_
 
bool doRhoFastjet_
 
ActiveAreaSpecPtr fjActiveArea_
 
AreaDefinitionPtr fjAreaDefinition_
 
ClusterSequencePtr fjClusterSeq_
 
std::vector< fastjet::PseudoJet > fjInputs_
 
JetDefPtr fjJetDefinition_
 
std::vector< fastjet::PseudoJet > fjJets_
 
PluginPtr fjPlugin_
 
RangeDefPtr fjRangeDef_
 
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 rParam_
 
edm::InputTag src_
 
edm::InputTag srcPVs_
 
boost::shared_ptr
< PileUpSubtractor
subtractor_
 
bool useDeterministicSeed_
 
bool useExplicitGhosts_
 
reco::Particle::Point vertex_
 
double voronoiRfact_
 
bool writeCompound_
 

Private Attributes

std::auto_ptr< AnomalousToweranomalousTowerDef_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Detailed Description

Definition at line 29 of file VirtualJetProducer.h.

Member Typedef Documentation

typedef boost::shared_ptr<fastjet::GhostedAreaSpec> VirtualJetProducer::ActiveAreaSpecPtr

Definition at line 82 of file VirtualJetProducer.h.

typedef boost::shared_ptr<fastjet::AreaDefinition> VirtualJetProducer::AreaDefinitionPtr

Definition at line 83 of file VirtualJetProducer.h.

typedef boost::shared_ptr<fastjet::ClusterSequence> VirtualJetProducer::ClusterSequencePtr

Definition at line 79 of file VirtualJetProducer.h.

typedef boost::shared_ptr<fastjet::JetDefinition> VirtualJetProducer::JetDefPtr

Definition at line 81 of file VirtualJetProducer.h.

typedef boost::shared_ptr<fastjet::JetDefinition::Plugin> VirtualJetProducer::PluginPtr

Definition at line 80 of file VirtualJetProducer.h.

typedef boost::shared_ptr<fastjet::RangeDefinition> VirtualJetProducer::RangeDefPtr

Definition at line 84 of file VirtualJetProducer.h.

Constructor & Destructor Documentation

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

Definition at line 115 of file VirtualJetProducer.cc.

References anomalousTowerDef_, VirtualJetProducer::JetType::BasicJet, VirtualJetProducer::JetType::byName(), VirtualJetProducer::JetType::CaloJet, doAreaDiskApprox_, doAreaFastjet_, doFastJetNonUniform_, doPUOffsetCorr_, doRhoFastjet_, edm::hlt::Exception, edm::ParameterSet::exists(), fjActiveArea_, fjAreaDefinition_, fjJetDefinition_, fjPlugin_, fjRangeDef_, reco::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), jetAlgorithm_, jetCollInstanceName_, jetType_, jetTypeE, makeProduces(), maxInputs_, minSeed_, moduleLabel_, nExclude_, puCenters_, puSubtractorName_, puWidth_, restrictInputs_, rParam_, subtractor_, useDeterministicSeed_, useExplicitGhosts_, voronoiRfact_, and writeCompound_.

116  : moduleLabel_ (iConfig.getParameter<string> ("@module_label"))
117  , src_ (iConfig.getParameter<edm::InputTag>("src"))
118  , srcPVs_ (iConfig.getParameter<edm::InputTag>("srcPVs"))
119  , jetType_ (iConfig.getParameter<string> ("jetType"))
120  , jetAlgorithm_ (iConfig.getParameter<string> ("jetAlgorithm"))
121  , rParam_ (iConfig.getParameter<double> ("rParam"))
122  , inputEtMin_ (iConfig.getParameter<double> ("inputEtMin"))
123  , inputEMin_ (iConfig.getParameter<double> ("inputEMin"))
124  , jetPtMin_ (iConfig.getParameter<double> ("jetPtMin"))
125  , doPVCorrection_(iConfig.getParameter<bool> ("doPVCorrection"))
126  , restrictInputs_(false)
127  , maxInputs_(99999999)
128  , doAreaFastjet_ (iConfig.getParameter<bool> ("doAreaFastjet"))
129  , useExplicitGhosts_(false)
130  , doAreaDiskApprox_ (false)
131  , doRhoFastjet_ (iConfig.getParameter<bool> ("doRhoFastjet"))
132  , voronoiRfact_ (-9)
133  , doPUOffsetCorr_(iConfig.getParameter<bool> ("doPUOffsetCorr"))
134  , puWidth_(0)
135  , nExclude_(0)
136  , jetCollInstanceName_ ("")
137  , writeCompound_ ( false )
138 {
139  anomalousTowerDef_ = std::auto_ptr<AnomalousTower>(new AnomalousTower(iConfig));
140 
141  //
142  // additional parameters to think about:
143  // - overlap threshold (set to 0.75 for the time being)
144  // - p parameter for generalized kT (set to -2 for the time being)
145  // - fastjet PU subtraction parameters (not yet considered)
146  //
147  if (jetAlgorithm_=="SISCone") {
148  fjPlugin_ = PluginPtr( new fastjet::SISConePlugin(rParam_,0.75,0,0.0,false,
149  fastjet::SISConePlugin::SM_pttilde) );
150  fjJetDefinition_= JetDefPtr( new fastjet::JetDefinition(&*fjPlugin_) );
151  }
152  else if (jetAlgorithm_=="IterativeCone") {
153  fjPlugin_ = PluginPtr(new fastjet::CMSIterativeConePlugin(rParam_,1.0));
154  fjJetDefinition_= JetDefPtr(new fastjet::JetDefinition(&*fjPlugin_));
155  }
156  else if (jetAlgorithm_=="CDFMidPoint") {
157  fjPlugin_ = PluginPtr(new fastjet::CDFMidPointPlugin(rParam_,0.75));
158  fjJetDefinition_= JetDefPtr(new fastjet::JetDefinition(&*fjPlugin_));
159  }
160  else if (jetAlgorithm_=="ATLASCone") {
161  fjPlugin_ = PluginPtr(new fastjet::ATLASConePlugin(rParam_));
162  fjJetDefinition_= JetDefPtr(new fastjet::JetDefinition(&*fjPlugin_));
163  }
164  else if (jetAlgorithm_=="Kt")
165  fjJetDefinition_= JetDefPtr(new fastjet::JetDefinition(fastjet::kt_algorithm,rParam_));
166  else if (jetAlgorithm_=="CambridgeAachen")
167  fjJetDefinition_= JetDefPtr(new fastjet::JetDefinition(fastjet::cambridge_algorithm,
168  rParam_) );
169  else if (jetAlgorithm_=="AntiKt")
170  fjJetDefinition_= JetDefPtr( new fastjet::JetDefinition(fastjet::antikt_algorithm,rParam_) );
171  else if (jetAlgorithm_=="GeneralizedKt")
172  fjJetDefinition_= JetDefPtr( new fastjet::JetDefinition(fastjet::genkt_algorithm,
173  rParam_,-2) );
174  else
175  throw cms::Exception("Invalid jetAlgorithm")
176  <<"Jet algorithm for VirtualJetProducer is invalid, Abort!\n";
177 
179 
180  if ( iConfig.exists("jetCollInstanceName") ) {
181  jetCollInstanceName_ = iConfig.getParameter<string>("jetCollInstanceName");
182  }
183 
184  if ( doPUOffsetCorr_ ) {
186  throw cms::Exception("InvalidInput") << "Can only offset correct jets of type CaloJet or BasicJet";
187  }
188 
189  if(iConfig.exists("subtractorName")) puSubtractorName_ = iConfig.getParameter<string> ("subtractorName");
190  else puSubtractorName_ = std::string();
191 
192  if(puSubtractorName_.empty()){
193  edm::LogWarning("VirtualJetProducer") << "Pile Up correction on; however, pile up type is not specified. Using default... \n";
194  subtractor_ = boost::shared_ptr<PileUpSubtractor>(new PileUpSubtractor(iConfig));
195  }else{
196  subtractor_ = boost::shared_ptr<PileUpSubtractor>(PileUpSubtractorFactory::get()->create( puSubtractorName_, iConfig));
197  }
198  }
199 
200  // use explicit ghosts in the fastjet clustering sequence?
201  if ( iConfig.exists("useExplicitGhosts") ) {
202  useExplicitGhosts_ = iConfig.getParameter<bool>("useExplicitGhosts");
203  }
204 
205  // do approximate disk-based area calculation => warn if conflicting request
206  if (iConfig.exists("doAreaDiskApprox")) {
207  doAreaDiskApprox_ = iConfig.getParameter<bool>("doAreaDiskApprox");
209  throw cms::Exception("Conflicting area calculations") << "Both the calculation of jet area via fastjet and via an analytical disk approximation have been requested. Please decide on one.\n";
210 
211  }
212  // turn off jet collection output for speed
213  // Voronoi-based area calculation allows for an empirical scale factor
214  if (iConfig.exists("voronoiRfact"))
215  voronoiRfact_ = iConfig.getParameter<double>("voronoiRfact");
216 
217 
218  // do fasjet area / rho calcluation? => accept corresponding parameters
219  if ( doAreaFastjet_ || doRhoFastjet_ ) {
220  // Eta range of jets to be considered for Rho calculation
221  // Should be at most (jet acceptance - jet radius)
222  double rhoEtaMax=iConfig.getParameter<double>("Rho_EtaMax");
223  // default Ghost_EtaMax should be 5
224  double ghostEtaMax = iConfig.getParameter<double>("Ghost_EtaMax");
225  // default Active_Area_Repeats 1
226  int activeAreaRepeats = iConfig.getParameter<int> ("Active_Area_Repeats");
227  // default GhostArea 0.01
228  double ghostArea = iConfig.getParameter<double> ("GhostArea");
229  if (voronoiRfact_ <= 0) {
230  fjActiveArea_ = ActiveAreaSpecPtr(new fastjet::GhostedAreaSpec(ghostEtaMax,activeAreaRepeats,ghostArea));
231  fjActiveArea_->set_fj2_placement(true);
232  if ( ! useExplicitGhosts_ ) {
233  fjAreaDefinition_ = AreaDefinitionPtr( new fastjet::AreaDefinition(fastjet::active_area, *fjActiveArea_ ) );
234  } else {
235  fjAreaDefinition_ = AreaDefinitionPtr( new fastjet::AreaDefinition(fastjet::active_area_explicit_ghosts, *fjActiveArea_ ) );
236  }
237  }
238  fjRangeDef_ = RangeDefPtr( new fastjet::RangeDefinition(rhoEtaMax) );
239  }
240 
241  // restrict inputs to first "maxInputs" towers?
242  if ( iConfig.exists("restrictInputs") ) {
243  restrictInputs_ = iConfig.getParameter<bool>("restrictInputs");
244  maxInputs_ = iConfig.getParameter<unsigned int>("maxInputs");
245  }
246 
247 
248  string alias=iConfig.getUntrackedParameter<string>("alias",moduleLabel_);
249 
250 
251  // Check to see if we are writing compound jets for substructure
252  // and jet grooming
253  if ( iConfig.exists("writeCompound") ) {
254  writeCompound_ = iConfig.getParameter<bool>("writeCompound");
255  }
256 
257  // make the "produces" statements
259 
260  doFastJetNonUniform_ = false;
261  if(iConfig.exists("doFastJetNonUniform")) doFastJetNonUniform_ = iConfig.getParameter<bool> ("doFastJetNonUniform");
263  puCenters_ = iConfig.getParameter<std::vector<double> >("puCenters");
264  puWidth_ = iConfig.getParameter<double>("puWidth");
265  nExclude_ = iConfig.getParameter<unsigned int>("nExclude");
266  }
267 
268  useDeterministicSeed_ = false;
269  minSeed_ = 0;
270  if ( iConfig.exists("useDeterministicSeed") ) {
271  useDeterministicSeed_ = iConfig.getParameter<bool>("useDeterministicSeed");
272  minSeed_ = iConfig.getParameter<unsigned int>("minSeed");
273  }
274 
275 
276  produces<std::vector<double> >("rhos");
277  produces<std::vector<double> >("sigmas");
278  produces<double>("rho");
279  produces<double>("sigma");
280 
281 
282 }
boost::shared_ptr< fastjet::AreaDefinition > AreaDefinitionPtr
JetType::Type jetTypeE
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
boost::shared_ptr< fastjet::JetDefinition::Plugin > PluginPtr
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::string puSubtractorName_
std::vector< double > puCenters_
boost::shared_ptr< fastjet::RangeDefinition > RangeDefPtr
std::string jetCollInstanceName_
boost::shared_ptr< PileUpSubtractor > subtractor_
virtual void makeProduces(std::string s, std::string tag="")
boost::shared_ptr< fastjet::JetDefinition > JetDefPtr
std::auto_ptr< AnomalousTower > anomalousTowerDef_
ActiveAreaSpecPtr fjActiveArea_
boost::shared_ptr< fastjet::GhostedAreaSpec > ActiveAreaSpecPtr
AreaDefinitionPtr fjAreaDefinition_
static Type byName(const std::string &name)
T get(const Candidate &c)
Definition: component.h:56
VirtualJetProducer::~VirtualJetProducer ( )
virtual

Definition at line 285 of file VirtualJetProducer.cc.

286 {
287 }

Member Function Documentation

void VirtualJetProducer::copyConstituents ( const std::vector< fastjet::PseudoJet > &  fjConstituents,
reco::Jet jet 
)
protectedvirtual

Definition at line 448 of file VirtualJetProducer.cc.

References reco::CompositePtrCandidate::addDaughter(), i, getHLTprescales::index, and inputs_.

450 {
451  for (unsigned int i=0;i<fjConstituents.size();++i) {
452  int index = fjConstituents[i].user_index();
453  if ( index >= 0 && static_cast<unsigned int>(index) < inputs_.size() )
454  jet->addDaughter(inputs_[index]);
455  }
456 }
int i
Definition: DBlmapReader.cc:9
std::vector< edm::Ptr< reco::Candidate > > inputs_
void addDaughter(const CandidatePtr &)
add a daughter via a reference
vector< reco::CandidatePtr > VirtualJetProducer::getConstituents ( const std::vector< fastjet::PseudoJet > &  fjConstituents)
protectedvirtual

Definition at line 461 of file VirtualJetProducer.cc.

References i, getHLTprescales::index, inputs_, and query::result.

Referenced by FastjetJetProducer::produceTrackJets(), cms::SubEventGenJetProducer::runAlgorithm(), writeCompoundJets(), and writeJets().

462 {
463  vector<reco::CandidatePtr> result;
464  for (unsigned int i=0;i<fjConstituents.size();i++) {
465  int index = fjConstituents[i].user_index();
466  if ( index >= 0 && static_cast<unsigned int>(index) < inputs_.size() ) {
467  reco::CandidatePtr candidate = inputs_[index];
468  result.push_back(candidate);
469  }
470  }
471  return result;
472 }
int i
Definition: DBlmapReader.cc:9
std::vector< edm::Ptr< reco::Candidate > > inputs_
tuple result
Definition: query.py:137
void VirtualJetProducer::inputTowers ( )
protectedvirtual

Reimplemented in cms::CompoundJetProducer, SubjetFilterJetProducer, and cms::SubEventGenJetProducer.

Definition at line 391 of file VirtualJetProducer.cc.

References doPVCorrection_, fjInputs_, edm::Ptr< T >::get(), i, LaserDQM_cfg::input, inputEMin_, inputEtMin_, inputs_, isAnomalousTower(), edm::detail::isnan(), jetTypeE, makeCaloJet(), maxInputs_, CaloTower::p4(), restrictInputs_, python.multivaluedict::sort(), and vertex_.

Referenced by SubjetFilterJetProducer::inputTowers(), cms::CompoundJetProducer::inputTowers(), produce(), and FastjetJetProducer::produceTrackJets().

392 {
393  std::vector<edm::Ptr<reco::Candidate> >::const_iterator inBegin = inputs_.begin(),
394  inEnd = inputs_.end(), i = inBegin;
395  for (; i != inEnd; ++i ) {
397  if (std::isnan(input->pt())) continue;
398  if (input->et() <inputEtMin_) continue;
399  if (input->energy()<inputEMin_) continue;
400  if (isAnomalousTower(input)) continue;
401  if (input->pt() == 0) {
402  edm::LogError("NullTransverseMomentum") << "dropping input candidate with pt=0";
403  continue;
404  }
406  const CaloTower* tower=dynamic_cast<const CaloTower*>(input.get());
408  fjInputs_.push_back(fastjet::PseudoJet(ct.px(),ct.py(),ct.pz(),ct.energy()));
409  //std::cout << "tower:" << *tower << '\n';
410  }
411  else {
412  /*
413  if(makePFJet(jetTypeE)) {
414  reco::PFCandidate* pfc = (reco::PFCandidate*)input.get();
415  std::cout << "PF cand:" << *pfc << '\n';
416  }
417  */
418  fjInputs_.push_back(fastjet::PseudoJet(input->px(),input->py(),input->pz(),
419  input->energy()));
420  }
421  fjInputs_.back().set_user_index(i - inBegin);
422  }
423 
424  if ( restrictInputs_ && fjInputs_.size() > maxInputs_ ) {
426  std::sort(fjInputs_.begin(), fjInputs_.end(), pTComparator);
427  fjInputs_.resize(maxInputs_);
428  edm::LogWarning("JetRecoTooManyEntries") << "Too many inputs in the event, limiting to first " << maxInputs_ << ". Output is suspect.";
429  }
430 }
JetType::Type jetTypeE
int i
Definition: DBlmapReader.cc:9
reco::Particle::Point vertex_
math::PtEtaPhiMLorentzVector p4(double vtxZ) const
Definition: CaloTower.cc:105
PtEtaPhiMLorentzVectorD PtEtaPhiMLorentzVector
Lorentz vector with cartesian internal representation.
Definition: LorentzVector.h:26
virtual bool isAnomalousTower(reco::CandidatePtr input)
std::vector< fastjet::PseudoJet > fjInputs_
std::vector< edm::Ptr< reco::Candidate > > inputs_
T const * get() const
Returns C++ pointer to the item.
Definition: Ptr.h:143
bool isnan(float x)
Definition: math.h:13
bool makeCaloJet(const JetType::Type &fTag)
bool VirtualJetProducer::isAnomalousTower ( reco::CandidatePtr  input)
protectedvirtual

Definition at line 433 of file VirtualJetProducer.cc.

References anomalousTowerDef_, jetTypeE, and makeCaloJet().

Referenced by cms::SubEventGenJetProducer::inputTowers(), and inputTowers().

434 {
435  if (!makeCaloJet(jetTypeE))
436  return false;
437  else
438  return (*anomalousTowerDef_)(*input);
439 }
JetType::Type jetTypeE
std::auto_ptr< AnomalousTower > anomalousTowerDef_
bool makeCaloJet(const JetType::Type &fTag)
std::string VirtualJetProducer::jetType ( ) const
inline

Definition at line 91 of file VirtualJetProducer.h.

References jetType_.

91 { return jetType_; }
bool VirtualJetProducer::makeBasicJet ( const JetType::Type fTag)
inlineprotected

Definition at line 66 of file VirtualJetProducer.h.

References VirtualJetProducer::JetType::BasicJet.

bool VirtualJetProducer::makeCaloJet ( const JetType::Type fTag)
inlineprotected

Definition at line 51 of file VirtualJetProducer.h.

References VirtualJetProducer::JetType::CaloJet.

Referenced by inputTowers(), isAnomalousTower(), and produce().

51  {
52  return fTag == JetType::CaloJet;
53  }
bool VirtualJetProducer::makeGenJet ( const JetType::Type fTag)
inlineprotected

Definition at line 57 of file VirtualJetProducer.h.

References VirtualJetProducer::JetType::GenJet.

57  {
58  return fTag == JetType::GenJet;
59  }
bool VirtualJetProducer::makePFClusterJet ( const JetType::Type fTag)
inlineprotected
bool VirtualJetProducer::makePFJet ( const JetType::Type fTag)
inlineprotected

Definition at line 54 of file VirtualJetProducer.h.

References VirtualJetProducer::JetType::PFJet.

54  {
55  return fTag == JetType::PFJet;
56  }
void VirtualJetProducer::makeProduces ( std::string  s,
std::string  tag = "" 
)
protectedvirtual

Definition at line 82 of file VirtualJetProducer.cc.

References GlobalPosition_Frontier_DevDB_cff::tag.

Referenced by SubjetFilterJetProducer::SubjetFilterJetProducer(), and VirtualJetProducer().

83 {
84 
85 
86  if ( writeCompound_ ) {
87  produces<reco::BasicJetCollection>();
88  }
89 
90  if (makeCaloJet(jetTypeE)) {
91  produces<reco::CaloJetCollection>(tag).setBranchAlias(alias);
92  }
93  else if (makePFJet(jetTypeE)) {
94  produces<reco::PFJetCollection>(tag).setBranchAlias(alias);
95  }
96  else if (makeGenJet(jetTypeE)) {
97  produces<reco::GenJetCollection>(tag).setBranchAlias(alias);
98  }
99  else if (makeTrackJet(jetTypeE)) {
100  produces<reco::TrackJetCollection>(tag).setBranchAlias(alias);
101  }
102  else if (makePFClusterJet(jetTypeE)) {
103  produces<reco::PFClusterJetCollection>(tag).setBranchAlias(alias);
104  }
105  else if (makeBasicJet(jetTypeE)) {
106  produces<reco::BasicJetCollection>(tag).setBranchAlias(alias);
107  }
108 }
JetType::Type jetTypeE
bool makeGenJet(const JetType::Type &fTag)
bool makeBasicJet(const JetType::Type &fTag)
bool makeTrackJet(const JetType::Type &fTag)
bool makePFJet(const JetType::Type &fTag)
bool makePFClusterJet(const JetType::Type &fTag)
bool makeCaloJet(const JetType::Type &fTag)
bool VirtualJetProducer::makeTrackJet ( const JetType::Type fTag)
inlineprotected
void VirtualJetProducer::offsetCorrectJets ( std::vector< fastjet::PseudoJet > &  orphanInput)
protected
void VirtualJetProducer::output ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
protectedvirtual

Reimplemented in cms::CompoundJetProducer, and SubjetFilterJetProducer.

Definition at line 477 of file VirtualJetProducer.cc.

References VirtualJetProducer::JetType::BasicJet, VirtualJetProducer::JetType::CaloJet, edm::hlt::Exception, VirtualJetProducer::JetType::GenJet, iEvent, jetTypeE, VirtualJetProducer::JetType::PFClusterJet, VirtualJetProducer::JetType::PFJet, VirtualJetProducer::JetType::TrackJet, and writeCompound_.

Referenced by produce().

478 {
479  // Write jets and constitutents. Will use fjJets_, inputs_
480  // and fjClusterSeq_
481 
482  if ( !writeCompound_ ) {
483  switch( jetTypeE ) {
484  case JetType::CaloJet :
485  writeJets<reco::CaloJet>( iEvent, iSetup);
486  break;
487  case JetType::PFJet :
488  writeJets<reco::PFJet>( iEvent, iSetup);
489  break;
490  case JetType::GenJet :
491  writeJets<reco::GenJet>( iEvent, iSetup);
492  break;
493  case JetType::TrackJet :
494  writeJets<reco::TrackJet>( iEvent, iSetup);
495  break;
496  case JetType::PFClusterJet :
497  writeJets<reco::PFClusterJet>( iEvent, iSetup);
498  break;
499  case JetType::BasicJet :
500  writeJets<reco::BasicJet>( iEvent, iSetup);
501  break;
502  default:
503  throw cms::Exception("InvalidInput") << "invalid jet type in VirtualJetProducer\n";
504  break;
505  };
506  } else {
507  // Write jets and constitutents.
508  switch( jetTypeE ) {
509  case JetType::CaloJet :
510  writeCompoundJets<reco::CaloJet>( iEvent, iSetup );
511  break;
512  case JetType::PFJet :
513  writeCompoundJets<reco::PFJet>( iEvent, iSetup );
514  break;
515  case JetType::GenJet :
516  writeCompoundJets<reco::GenJet>( iEvent, iSetup );
517  break;
518  case JetType::BasicJet :
519  writeCompoundJets<reco::BasicJet>( iEvent, iSetup );
520  break;
521  default:
522  throw cms::Exception("InvalidInput") << "invalid jet type in CompoundJetProducer\n";
523  break;
524  };
525  }
526 
527 }
JetType::Type jetTypeE
int iEvent
Definition: GenABIO.cc:243
void VirtualJetProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::EDProducer.

Reimplemented in cms::CATopJetProducer, SubjetFilterJetProducer, CMSInsideOutJetProducer, cms::SubEventGenJetProducer, cms::SubJetProducer, and FastjetJetProducer.

Definition at line 295 of file VirtualJetProducer.cc.

References doPUOffsetCorr_, doPVCorrection_, edm::EventID::event(), fjInputs_, fjJetDefinition_, fjJets_, edm::Event::getByLabel(), i, edm::EventBase::id(), inputs_, inputTowers(), jetTypeE, LogDebug, makeCaloJet(), max(), minSeed_, output(), edm::EventID::run(), runAlgorithm(), src_, srcPVs_, subtractor_, useDeterministicSeed_, and vertex_.

Referenced by FastjetJetProducer::produce(), cms::SubJetProducer::produce(), CMSInsideOutJetProducer::produce(), and SubjetFilterJetProducer::produce().

296 {
297 
298  // If requested, set the fastjet random seed to a deterministic function
299  // of the run/lumi/event.
300  // NOTE!!! The fastjet random number sequence is a global singleton.
301  // Thus, we have to create an object and get access to the global singleton
302  // in order to change it.
303  if ( useDeterministicSeed_ ) {
304  fastjet::GhostedAreaSpec gas;
305  std::vector<int> seeds(2);
306  seeds[0] = std::max(iEvent.id().run(),minSeed_ + 3) + 3 * iEvent.id().event();
307  seeds[1] = std::max(iEvent.id().run(),minSeed_ + 5) + 5 * iEvent.id().event();
308  gas.set_random_status(seeds);
309  }
310 
311  LogDebug("VirtualJetProducer") << "Entered produce\n";
312  //determine signal vertex2
313  vertex_=reco::Jet::Point(0,0,0);
315  LogDebug("VirtualJetProducer") << "Adding PV info\n";
317  iEvent.getByLabel(srcPVs_,pvCollection);
318  if (pvCollection->size()>0) vertex_=pvCollection->begin()->position();
319  }
320 
321  // For Pileup subtraction using offset correction:
322  // set up geometry map
323  if ( doPUOffsetCorr_ ) {
324  subtractor_->setupGeometryMap(iEvent, iSetup);
325  }
326 
327  // clear data
328  LogDebug("VirtualJetProducer") << "Clear data\n";
329  fjInputs_.clear();
330  fjJets_.clear();
331  inputs_.clear();
332 
333  // get inputs and convert them to the fastjet format (fastjet::PeudoJet)
335  iEvent.getByLabel(src_,inputsHandle);
336  for (size_t i = 0; i < inputsHandle->size(); ++i) {
337  inputs_.push_back(inputsHandle->ptrAt(i));
338  }
339  LogDebug("VirtualJetProducer") << "Got inputs\n";
340 
341  // Convert candidates to fastjet::PseudoJets.
342  // Also correct to Primary Vertex. Will modify fjInputs_
343  // and use inputs_
344  fjInputs_.reserve(inputs_.size());
345  inputTowers();
346  LogDebug("VirtualJetProducer") << "Inputted towers\n";
347 
348  // For Pileup subtraction using offset correction:
349  // Subtract pedestal.
350  if ( doPUOffsetCorr_ ) {
351  subtractor_->setDefinition(fjJetDefinition_);
353  subtractor_->calculatePedestal(fjInputs_);
354  subtractor_->subtractPedestal(fjInputs_);
355  LogDebug("VirtualJetProducer") << "Subtracted pedestal\n";
356  }
357  // Run algorithm. Will modify fjJets_ and allocate fjClusterSeq_.
358  // This will use fjInputs_
359  runAlgorithm( iEvent, iSetup );
360 
361  // if ( doPUOffsetCorr_ ) {
362  // subtractor_->setAlgorithm(fjClusterSeq_);
363  // }
364 
365  LogDebug("VirtualJetProducer") << "Ran algorithm\n";
366  // For Pileup subtraction using offset correction:
367  // Now we find jets and need to recalculate their energy,
368  // mark towers participated in jet,
369  // remove occupied towers from the list and recalculate mean and sigma
370  // put the initial towers collection to the jet,
371  // and subtract from initial towers in jet recalculated mean and sigma of towers
372  if ( doPUOffsetCorr_ ) {
373  LogDebug("VirtualJetProducer") << "Do PUOffsetCorr\n";
374  vector<fastjet::PseudoJet> orphanInput;
375  subtractor_->calculateOrphanInput(orphanInput);
376  subtractor_->calculatePedestal(orphanInput);
377  subtractor_->offsetCorrectJets();
378  }
379  // Write the output jets.
380  // This will (by default) call the member function template
381  // "writeJets", but can be overridden.
382  // this will use inputs_
383  output( iEvent, iSetup );
384  LogDebug("VirtualJetProducer") << "Wrote jets\n";
385 
386  return;
387 }
#define LogDebug(id)
RunNumber_t run() const
Definition: EventID.h:42
JetType::Type jetTypeE
EventNumber_t event() const
Definition: EventID.h:44
int i
Definition: DBlmapReader.cc:9
reco::Particle::Point vertex_
std::vector< fastjet::PseudoJet > fjJets_
virtual void inputTowers()
virtual void runAlgorithm(edm::Event &iEvent, const edm::EventSetup &iSetup)=0
std::vector< fastjet::PseudoJet > fjInputs_
boost::shared_ptr< PileUpSubtractor > subtractor_
std::vector< edm::Ptr< reco::Candidate > > inputs_
const T & max(const T &a, const T &b)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
edm::EventID id() const
Definition: EventBase.h:56
virtual void output(edm::Event &iEvent, edm::EventSetup const &iSetup)
bool makeCaloJet(const JetType::Type &fTag)
math::XYZPoint Point
point in the space
Definition: LeafCandidate.h:29
virtual void VirtualJetProducer::runAlgorithm ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
protectedpure virtual
template<class T >
void VirtualJetProducer::writeCompoundJets ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
protected

function template to write out the outputs

Definition at line 663 of file VirtualJetProducer.cc.

References doAreaFastjet_, fjJets_, getConstituents(), errorMatrix2Lands::indices, metsig::jet, jetCollInstanceName_, point, edm::Event::put(), reco::Jet::setJetArea(), and reco::writeSpecific().

664 {
665 
666  // get a list of output jets
667  std::auto_ptr<reco::BasicJetCollection> jetCollection( new reco::BasicJetCollection() );
668  // get a list of output subjets
669  std::auto_ptr<std::vector<T> > subjetCollection( new std::vector<T>() );
670 
671  // This will store the handle for the subjets after we write them
672  edm::OrphanHandle< std::vector<T> > subjetHandleAfterPut;
673  // this is the mapping of subjet to hard jet
674  std::vector< std::vector<int> > indices;
675  // this is the list of hardjet 4-momenta
676  std::vector<math::XYZTLorentzVector> p4_hardJets;
677  // this is the hardjet areas
678  std::vector<double> area_hardJets;
679 
680 
681  // Loop over the hard jets
682  std::vector<fastjet::PseudoJet>::const_iterator it = fjJets_.begin(),
683  iEnd = fjJets_.end(),
684  iBegin = fjJets_.begin();
685  indices.resize( fjJets_.size() );
686  for ( ; it != iEnd; ++it ) {
687  fastjet::PseudoJet const & localJet = *it;
688  unsigned int jetIndex = it - iBegin;
689  // Get the 4-vector for the hard jet
690  p4_hardJets.push_back( math::XYZTLorentzVector(localJet.px(), localJet.py(), localJet.pz(), localJet.e() ));
691  double localJetArea = 0.0;
692  if ( doAreaFastjet_ && localJet.has_area() ) {
693  localJetArea = localJet.area();
694  }
695  area_hardJets.push_back( localJetArea );
696 
697  // create the subjet list
698  std::vector<fastjet::PseudoJet> constituents;
699  if ( it->has_pieces() ) {
700  constituents = it->pieces();
701  } else {
702  constituents=it->constituents();
703  }
704 
705 
706  std::vector<fastjet::PseudoJet>::const_iterator itSubJetBegin = constituents.begin(),
707  itSubJet = itSubJetBegin, itSubJetEnd = constituents.end();
708  for (; itSubJet != itSubJetEnd; ++itSubJet ){
709 
710  fastjet::PseudoJet const & subjet = *itSubJet;
711 
712  math::XYZTLorentzVector p4Subjet(subjet.px(), subjet.py(), subjet.pz(), subjet.e() );
714 
715  // This will hold ptr's to the subjets
716  std::vector<reco::CandidatePtr> subjetConstituents;
717 
718  // Get the transient subjet constituents from fastjet
719  std::vector<fastjet::PseudoJet> subjetFastjetConstituents = subjet.constituents();
720  std::vector<reco::CandidatePtr> constituents =
721  getConstituents(subjetFastjetConstituents );
722 
723  indices[jetIndex].push_back( subjetCollection->size() );
724 
725  // Add the concrete subjet type to the subjet list to write to event record
726  T jet;
727  reco::writeSpecific( jet, p4Subjet, point, constituents, iSetup);
728  double subjetArea = 0.0;
729  if ( doAreaFastjet_ && itSubJet->has_area() ){
730  subjetArea = itSubJet->area();
731  }
732  jet.setJetArea( subjetArea );
733  subjetCollection->push_back( jet );
734 
735  }
736  }
737  // put subjets into event record
738  subjetHandleAfterPut = iEvent.put( subjetCollection, jetCollInstanceName_ );
739 
740 
741  // Now create the hard jets with ptr's to the subjets as constituents
742  std::vector<math::XYZTLorentzVector>::const_iterator ip4 = p4_hardJets.begin(),
743  ip4Begin = p4_hardJets.begin(),
744  ip4End = p4_hardJets.end();
745 
746  for ( ; ip4 != ip4End; ++ip4 ) {
747  int p4_index = ip4 - ip4Begin;
748  std::vector<int> & ind = indices[p4_index];
749  std::vector<reco::CandidatePtr> i_hardJetConstituents;
750  // Add the subjets to the hard jet
751  for( std::vector<int>::const_iterator isub = ind.begin();
752  isub != ind.end(); ++isub ) {
753  reco::CandidatePtr candPtr( subjetHandleAfterPut, *isub, false );
754  i_hardJetConstituents.push_back( candPtr );
755  }
757  reco::BasicJet toput( *ip4, point, i_hardJetConstituents);
758  toput.setJetArea( area_hardJets[ip4 - ip4Begin] );
759  jetCollection->push_back( toput );
760  }
761 
762  // put hard jets into event record
763  iEvent.put( jetCollection);
764 
765 }
virtual std::vector< reco::CandidatePtr > getConstituents(const std::vector< fastjet::PseudoJet > &fjConstituents)
std::vector< fastjet::PseudoJet > fjJets_
Jets made from CaloTowers.
Definition: BasicJet.h:21
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
std::string jetCollInstanceName_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
math::XYZPoint Point
point in the space
Definition: Particle.h:29
long double T
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
void writeSpecific(reco::CaloJet &jet, reco::Particle::LorentzVector const &p4, reco::Particle::Point const &point, std::vector< reco::CandidatePtr > const &constituents, edm::EventSetup const &c)
Definition: JetSpecific.cc:41
std::vector< BasicJet > BasicJetCollection
collection of BasicJet objects
template<typename T >
void VirtualJetProducer::writeJets ( edm::Event iEvent,
edm::EventSetup const &  iSetup 
)
protected

Definition at line 530 of file VirtualJetProducer.cc.

References reco::deltaR(), doAreaDiskApprox_, doAreaFastjet_, doFastJetNonUniform_, doPUOffsetCorr_, doRhoFastjet_, eta(), fjClusterSeq_, fjJets_, fjRangeDef_, getConstituents(), reco::helper::VirtualJetProducerHelper::intersection(), edm::detail::isnan(), metsig::jet, jetCollInstanceName_, fwrapper::jets, M_PI, nExclude_, puCenters_, edm::Event::put(), puWidth_, dt_dqm_sourceclient_common_cff::reco, rho, fastjet::BackgroundEstimator::rho(), rParam_, fastjet::BackgroundEstimator::set_excluded_jets(), fastjet::BackgroundEstimator::sigma(), subtractor_, vertex_, and reco::writeSpecific().

531 {
532  if (doRhoFastjet_) {
533  // declare jet collection without the two jets,
534  // for unbiased background estimation.
535  std::vector<fastjet::PseudoJet> fjexcluded_jets;
536  fjexcluded_jets=fjJets_;
537 
538  if(fjexcluded_jets.size()>2) fjexcluded_jets.resize(nExclude_);
539 
541  std::auto_ptr<std::vector<double> > rhos(new std::vector<double>);
542  std::auto_ptr<std::vector<double> > sigmas(new std::vector<double>);
543  int nEta = puCenters_.size();
544  rhos->reserve(nEta);
545  sigmas->reserve(nEta);
546  fastjet::ClusterSequenceAreaBase const* clusterSequenceWithArea =
547  dynamic_cast<fastjet::ClusterSequenceAreaBase const *> ( &*fjClusterSeq_ );
548 
549 
550  for(int ie = 0; ie < nEta; ++ie){
551  double eta = puCenters_[ie];
552  double etamin=eta-puWidth_;
553  double etamax=eta+puWidth_;
554  fastjet::RangeDefinition range_rho(etamin,etamax);
555  fastjet::BackgroundEstimator bkgestim(*clusterSequenceWithArea,range_rho);
556  bkgestim.set_excluded_jets(fjexcluded_jets);
557  rhos->push_back(bkgestim.rho());
558  sigmas->push_back(bkgestim.sigma());
559  }
560  iEvent.put(rhos,"rhos");
561  iEvent.put(sigmas,"sigmas");
562  }else{
563  std::auto_ptr<double> rho(new double(0.0));
564  std::auto_ptr<double> sigma(new double(0.0));
565  double mean_area = 0;
566 
567  fastjet::ClusterSequenceAreaBase const* clusterSequenceWithArea =
568  dynamic_cast<fastjet::ClusterSequenceAreaBase const *> ( &*fjClusterSeq_ );
569  /*
570  const double nemptyjets = clusterSequenceWithArea->n_empty_jets(*fjRangeDef_);
571  if(( nemptyjets < -15 ) || ( nemptyjets > fjRangeDef_->area()+ 15)) {
572  edm::LogWarning("StrangeNEmtpyJets") << "n_empty_jets is : " << clusterSequenceWithArea->n_empty_jets(*fjRangeDef_) << " with range " << fjRangeDef_->description() << ".";
573  }
574  */
575  clusterSequenceWithArea->get_median_rho_and_sigma(*fjRangeDef_,false,*rho,*sigma,mean_area);
576  if((*rho < 0)|| (std::isnan(*rho))) {
577  edm::LogError("BadRho") << "rho value is " << *rho << " area:" << mean_area << " and n_empty_jets: " << clusterSequenceWithArea->n_empty_jets(*fjRangeDef_) << " with range " << fjRangeDef_->description()
578  <<". Setting rho to rezo.";
579  *rho = 0;
580  }
581  iEvent.put(rho,"rho");
582  iEvent.put(sigma,"sigma");
583  }
584  } // doRhoFastjet_
585 
586  // produce output jet collection
587 
588  using namespace reco;
589 
590  std::auto_ptr<std::vector<T> > jets(new std::vector<T>() );
591  jets->reserve(fjJets_.size());
592 
593  // Distance between jet centers -- for disk-based area calculation
594  std::vector<std::vector<double> > rij(fjJets_.size());
595 
596  for (unsigned int ijet=0;ijet<fjJets_.size();++ijet) {
597  // allocate this jet
598  T jet;
599  // get the fastjet jet
600  const fastjet::PseudoJet& fjJet = fjJets_[ijet];
601  // get the constituents from fastjet
602  std::vector<fastjet::PseudoJet> fjConstituents = fastjet::sorted_by_pt(fjJet.constituents());
603  // convert them to CandidatePtr vector
604  std::vector<CandidatePtr> constituents =
605  getConstituents(fjConstituents);
606 
607 
608  // calcuate the jet area
609  double jetArea=0.0;
610  if ( doAreaFastjet_ && fjJet.has_area() ) {
611  jetArea = fjJet.area();
612  }
613  else if ( doAreaDiskApprox_ ) {
614  // Here it is assumed that fjJets_ is in decreasing order of pT,
615  // which should happen in FastjetJetProducer::runAlgorithm()
616  jetArea = M_PI;
617  if (ijet) {
618  std::vector<double>& distance = rij[ijet];
619  distance.resize(ijet);
620  for (unsigned jJet = 0; jJet < ijet; ++jJet) {
621  distance[jJet] = reco::deltaR(fjJets_[ijet],fjJets_[jJet]) / rParam_;
622  jetArea -= reco::helper::VirtualJetProducerHelper::intersection(distance[jJet]);
623  for (unsigned kJet = 0; kJet < jJet; ++kJet) {
624  jetArea += reco::helper::VirtualJetProducerHelper::intersection(distance[jJet], distance[kJet], rij[jJet][kJet]);
625  } // end loop over harder jets
626  } // end loop over harder jets
627  }
628  jetArea *= rParam_;
629  jetArea *= rParam_;
630  }
631  // write the specifics to the jet (simultaneously sets 4-vector, vertex).
632  // These are overridden functions that will call the appropriate
633  // specific allocator.
634  writeSpecific(jet,
635  Particle::LorentzVector(fjJet.px(),
636  fjJet.py(),
637  fjJet.pz(),
638  fjJet.E()),
639  vertex_,
640  constituents, iSetup);
641 
642  jet.setJetArea (jetArea);
643 
644  if(doPUOffsetCorr_){
645  jet.setPileup(subtractor_->getPileUpEnergy(ijet));
646  }else{
647  jet.setPileup (0.0);
648  }
649 
650  // add to the list
651  jets->push_back(jet);
652  }
653  // put the jets in the collection
654  iEvent.put(jets,jetCollInstanceName_);
655 
656 
657 }
reco::Particle::Point vertex_
virtual std::vector< reco::CandidatePtr > getConstituents(const std::vector< fastjet::PseudoJet > &fjConstituents)
std::vector< fastjet::PseudoJet > fjJets_
Definition: DDAxes.h:10
std::vector< double > puCenters_
T eta() const
double deltaR(double eta1, double phi1, double eta2, double phi2)
Definition: deltaR.h:19
std::string jetCollInstanceName_
boost::shared_ptr< PileUpSubtractor > subtractor_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:85
bool isnan(float x)
Definition: math.h:13
ClusterSequencePtr fjClusterSeq_
vector< PseudoJet > jets
#define M_PI
Definition: BFit3D.cc:3
long double T
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:25
void writeSpecific(reco::CaloJet &jet, reco::Particle::LorentzVector const &p4, reco::Particle::Point const &point, std::vector< reco::CandidatePtr > const &constituents, edm::EventSetup const &c)
Definition: JetSpecific.cc:41

Member Data Documentation

std::auto_ptr<AnomalousTower> VirtualJetProducer::anomalousTowerDef_
private

Definition at line 202 of file VirtualJetProducer.h.

Referenced by isAnomalousTower(), and VirtualJetProducer().

bool VirtualJetProducer::doAreaDiskApprox_
protected

Definition at line 167 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

bool VirtualJetProducer::doAreaFastjet_
protected
bool VirtualJetProducer::doFastJetNonUniform_
protected

Definition at line 170 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

bool VirtualJetProducer::doPUOffsetCorr_
protected

Definition at line 174 of file VirtualJetProducer.h.

Referenced by produce(), VirtualJetProducer(), and writeJets().

bool VirtualJetProducer::doPVCorrection_
protected

Definition at line 158 of file VirtualJetProducer.h.

Referenced by inputTowers(), and produce().

bool VirtualJetProducer::doRhoFastjet_
protected
ActiveAreaSpecPtr VirtualJetProducer::fjActiveArea_
protected

Definition at line 183 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer().

AreaDefinitionPtr VirtualJetProducer::fjAreaDefinition_
protected
ClusterSequencePtr VirtualJetProducer::fjClusterSeq_
protected
std::vector<fastjet::PseudoJet> VirtualJetProducer::fjInputs_
protected
JetDefPtr VirtualJetProducer::fjJetDefinition_
protected
std::vector<fastjet::PseudoJet> VirtualJetProducer::fjJets_
protected
PluginPtr VirtualJetProducer::fjPlugin_
protected

Definition at line 182 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer().

RangeDefPtr VirtualJetProducer::fjRangeDef_
protected

Definition at line 185 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

double VirtualJetProducer::inputEMin_
protected

Definition at line 156 of file VirtualJetProducer.h.

Referenced by cms::SubEventGenJetProducer::inputTowers(), and inputTowers().

double VirtualJetProducer::inputEtMin_
protected

Definition at line 155 of file VirtualJetProducer.h.

Referenced by cms::SubEventGenJetProducer::inputTowers(), and inputTowers().

std::vector<edm::Ptr<reco::Candidate> > VirtualJetProducer::inputs_
protected
std::string VirtualJetProducer::jetAlgorithm_
protected

Definition at line 153 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer().

std::string VirtualJetProducer::jetCollInstanceName_
protected
double VirtualJetProducer::jetPtMin_
protected
std::string VirtualJetProducer::jetType_
protected

Definition at line 152 of file VirtualJetProducer.h.

Referenced by jetType(), and VirtualJetProducer().

JetType::Type VirtualJetProducer::jetTypeE
protected
unsigned int VirtualJetProducer::maxInputs_
protected

Definition at line 162 of file VirtualJetProducer.h.

Referenced by inputTowers(), and VirtualJetProducer().

unsigned int VirtualJetProducer::minSeed_
protected

Definition at line 199 of file VirtualJetProducer.h.

Referenced by produce(), and VirtualJetProducer().

std::string VirtualJetProducer::moduleLabel_
protected
unsigned int VirtualJetProducer::nExclude_
protected

Definition at line 192 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

std::vector<double> VirtualJetProducer::puCenters_
protected

Definition at line 190 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

std::string VirtualJetProducer::puSubtractorName_
protected

Definition at line 175 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer().

double VirtualJetProducer::puWidth_
protected

Definition at line 191 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

bool VirtualJetProducer::restrictInputs_
protected

Definition at line 161 of file VirtualJetProducer.h.

Referenced by inputTowers(), and VirtualJetProducer().

double VirtualJetProducer::rParam_
protected

Definition at line 154 of file VirtualJetProducer.h.

Referenced by VirtualJetProducer(), and writeJets().

edm::InputTag VirtualJetProducer::src_
protected
edm::InputTag VirtualJetProducer::srcPVs_
protected

Definition at line 151 of file VirtualJetProducer.h.

Referenced by produce(), and FastjetJetProducer::produceTrackJets().

boost::shared_ptr<PileUpSubtractor> VirtualJetProducer::subtractor_
protected

Definition at line 196 of file VirtualJetProducer.h.

Referenced by produce(), VirtualJetProducer(), and writeJets().

bool VirtualJetProducer::useDeterministicSeed_
protected

Definition at line 198 of file VirtualJetProducer.h.

Referenced by produce(), and VirtualJetProducer().

bool VirtualJetProducer::useExplicitGhosts_
protected
reco::Particle::Point VirtualJetProducer::vertex_
protected
double VirtualJetProducer::voronoiRfact_
protected
bool VirtualJetProducer::writeCompound_
protected

Definition at line 195 of file VirtualJetProducer.h.

Referenced by output(), and VirtualJetProducer().