CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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

Implements edm::global::EDProducerBase.

Definition at line 41 of file PATVertexSlimmer.cc.

References edm::ValueMap< T >::const_iterator::begin(), reco::Vertex::chi2(), reco::Vertex::covariance(), edm::ValueMap< T >::const_iterator::end(), edm::helper::Filler< Map >::fill(), edm::Event::getByToken(), i, edm::HandleBase::id(), edm::ValueMap< T >::const_iterator::id(), edm::helper::Filler< Map >::insert(), j, relval_2017::k, gen::n, reco::Vertex::ndof(), reco::Vertex::position(), edm::Event::put(), findQualityFiles::v, and HLT_FULL_cff::vertices.

41  {
43  iEvent.getByToken(src_, vertices);
44  std::auto_ptr<std::vector<reco::Vertex> > outPtr(new 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(outPtr);
61  if(rekeyScores_) {
63  iEvent.getByToken(score_, scores);
64  std::auto_ptr<edm::ValueMap<float> > vertexScoreOutput( new 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( vertexScoreOutput );
74  }
75 }
int i
Definition: DBlmapReader.cc:9
ProductID id() const
Definition: HandleBase.cc:15
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
double covariance(int i, int j) const
(i, j)-th element of error matrix, i, j = 0, ... 2
Definition: Vertex.h:116
const edm::EDGetTokenT< std::vector< reco::Vertex > > src_
const Point & position() const
position
Definition: Vertex.h:99
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
double chi2() const
chi-squares
Definition: Vertex.h:88
int j
Definition: DBlmapReader.cc:9
double ndof() const
Definition: Vertex.h:95
const edm::EDGetTokenT< edm::ValueMap< float > > score_
container::const_iterator begin() const
Definition: ValueMap.h:174
ProductID id() const
Definition: ValueMap.h:173
container::const_iterator end() const
Definition: ValueMap.h:177

Member Data Documentation

const bool pat::PATVertexSlimmer::rekeyScores_
private

Definition at line 26 of file PATVertexSlimmer.cc.

Referenced by PATVertexSlimmer().

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

Definition at line 25 of file PATVertexSlimmer.cc.

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

Definition at line 24 of file PATVertexSlimmer.cc.