CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
pat::PATVertexSlimmer Class Reference
Inheritance diagram for pat::PATVertexSlimmer:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

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

Private Attributes

const bool rekeyScores_
 
const edm::EDGetTokenT< edm::ValueMap< float > > score_
 
const edm::EDGetTokenT< std::vector< reco::Vertex > > src_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 17 of file PATVertexSlimmer.cc.

Constructor & Destructor Documentation

pat::PATVertexSlimmer::PATVertexSlimmer ( const edm::ParameterSet iConfig)
explicit

Definition at line 30 of file PATVertexSlimmer.cc.

References rekeyScores_.

30  :
31  src_(consumes<std::vector<reco::Vertex> >(iConfig.getParameter<edm::InputTag>("src"))),
33  rekeyScores_(iConfig.existsAs<edm::InputTag>("score"))
34 {
35  produces<std::vector<reco::Vertex> >();
36  if(rekeyScores_) produces<edm::ValueMap<float> >();
37 }
T getParameter(std::string const &) const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:186
const edm::EDGetTokenT< std::vector< reco::Vertex > > src_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< edm::ValueMap< float > > score_
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
pat::PATVertexSlimmer::~PATVertexSlimmer ( )

Definition at line 39 of file PATVertexSlimmer.cc.

39 {}

Member Function Documentation

void pat::PATVertexSlimmer::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
virtual

Definition at line 41 of file PATVertexSlimmer.cc.

References reco::Vertex::chi2(), reco::Vertex::covariance(), DEFINE_FWK_MODULE, edm::helper::Filler< Map >::fill(), edm::Event::getByToken(), mps_fire::i, edm::HandleBase::id(), edm::helper::Filler< Map >::insert(), gen::k, eostools::move(), gen::n, reco::Vertex::ndof(), reco::Vertex::position(), edm::Event::put(), rekeyScores_, score_, src_, findQualityFiles::v, and ecalDrivenElectronSeedsParameters_cff::vertices.

41  {
43  iEvent.getByToken(src_, vertices);
44  auto outPtr = std::make_unique<std::vector<reco::Vertex>>();
45 
46  outPtr->reserve(vertices->size());
47  for (unsigned int i = 0, n = vertices->size(); i < n; ++i) {
48  const reco::Vertex &v = (*vertices)[i];
49  auto co = v.covariance();
50  if(i>0) {
51  for(size_t j=0;j<3;j++){
52  for(size_t k=j;k<3;k++){
53  co(j,k) = MiniFloatConverter::reduceMantissaToNbits<10>( co(j,k) );
54  }
55  }
56  }
57  outPtr->push_back(reco::Vertex(v.position(), co, v.chi2(), v.ndof(), 0));
58  }
59 
60  auto oh = iEvent.put(std::move(outPtr));
61  if(rekeyScores_) {
63  iEvent.getByToken(score_, scores);
64  auto vertexScoreOutput = std::make_unique<edm::ValueMap<float>>();
65  edm::ValueMap<float>::const_iterator idIt=scores->begin();
66  for(;idIt!=scores->end();idIt++) {
67  if(idIt.id() == vertices.id()) break;
68  }
69  // std::find_if(scores->begin(), scores->end(), [vertices] (const edm::ValueMap<float>::const_iterator& s) { return s.id() == vertices.id(); } );
70  edm::ValueMap<float>::Filler vertexScoreFiller(*vertexScoreOutput);
71  vertexScoreFiller.insert(oh,idIt.begin(),idIt.end());
72  vertexScoreFiller.fill();
73  iEvent.put(std::move(vertexScoreOutput));
74  }
75 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:122
ProductID id() const
Definition: HandleBase.cc:15
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:460
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
Definition: Vertex.h:130
const edm::EDGetTokenT< std::vector< reco::Vertex > > src_
const Point & position() const
position
Definition: Vertex.h:109
double chi2() const
chi-squares
Definition: Vertex.h:98
double ndof() const
Definition: Vertex.h:105
int k[5][pyjets_maxn]
const edm::EDGetTokenT< edm::ValueMap< float > > score_
def move(src, dest)
Definition: eostools.py:510

Member Data Documentation

const bool pat::PATVertexSlimmer::rekeyScores_
private

Definition at line 26 of file PATVertexSlimmer.cc.

Referenced by PATVertexSlimmer(), and produce().

const edm::EDGetTokenT<edm::ValueMap<float> > pat::PATVertexSlimmer::score_
private

Definition at line 25 of file PATVertexSlimmer.cc.

Referenced by produce().

const edm::EDGetTokenT<std::vector<reco::Vertex> > pat::PATVertexSlimmer::src_
private

Definition at line 24 of file PATVertexSlimmer.cc.

Referenced by produce().