CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
PixelVertexCollectionTrimmer Class Reference

#include <RecoPixelVertexing/PixelVertexFinding/src/PixelVertexCollectionTrimmer.cc>

Inheritance diagram for PixelVertexCollectionTrimmer:
edm::stream::EDProducer<>

Public Member Functions

 PixelVertexCollectionTrimmer (const edm::ParameterSet &)
 
 ~PixelVertexCollectionTrimmer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

double fractionSumPt2_
 
unsigned int maxVtx_
 
double minSumPt2_
 
PVClusterComparerpvComparer_
 
edm::EDGetTokenT< reco::VertexCollectionvtxToken_
 

Additional Inherited Members

- 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
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 39 of file PixelVertexCollectionTrimmer.cc.

Constructor & Destructor Documentation

◆ PixelVertexCollectionTrimmer()

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

Definition at line 57 of file PixelVertexCollectionTrimmer.cc.

57  {
59  vtxToken_ = consumes<reco::VertexCollection>(vtxInputTag);
60  maxVtx_ = iConfig.getParameter<unsigned int>("maxVtx");
61  fractionSumPt2_ = iConfig.getParameter<double>("fractionSumPt2");
62  minSumPt2_ = iConfig.getParameter<double>("minSumPt2");
63 
64  edm::ParameterSet PVcomparerPSet = iConfig.getParameter<edm::ParameterSet>("PVcomparer");
65  double track_pt_min = PVcomparerPSet.getParameter<double>("track_pt_min");
66  double track_pt_max = PVcomparerPSet.getParameter<double>("track_pt_max");
67  double track_chi2_max = PVcomparerPSet.getParameter<double>("track_chi2_max");
68  double track_prob_min = PVcomparerPSet.getParameter<double>("track_prob_min");
69 
71 
72  produces<reco::VertexCollection>();
73 }

References fractionSumPt2_, edm::ParameterSet::getParameter(), maxVtx_, minSumPt2_, pvComparer_, HLT_FULL_cff::track_chi2_max, HLT_FULL_cff::track_prob_min, HLT_FULL_cff::track_pt_max, HLT_FULL_cff::track_pt_min, L1TMuonDQMOffline_cfi::vtxInputTag, and vtxToken_.

◆ ~PixelVertexCollectionTrimmer()

PixelVertexCollectionTrimmer::~PixelVertexCollectionTrimmer ( )
override

Definition at line 75 of file PixelVertexCollectionTrimmer.cc.

75 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 115 of file PixelVertexCollectionTrimmer.cc.

115  {
116  //The following says we do not know what parameters are allowed so do no validation
117  // Please change this to state exactly what you do use, even if it is no parameters
119  desc.add<edm::InputTag>("src", edm::InputTag(""))->setComment("input (pixel) vertex collection");
120  desc.add<unsigned int>("maxVtx", 100)->setComment("max output collection size (number of accepted vertices)");
121  desc.add<double>("fractionSumPt2", 0.3)->setComment("threshold on sumPt2 fraction of the leading vertex");
122  desc.add<double>("minSumPt2", 0.)->setComment("min sumPt2");
123  edm::ParameterSetDescription PVcomparerPSet;
124  PVcomparerPSet.add<double>("track_pt_min", 1.0)->setComment("min track p_T");
125  PVcomparerPSet.add<double>("track_pt_max", 10.0)->setComment("max track p_T");
126  PVcomparerPSet.add<double>("track_chi2_max", 99999.)->setComment("max track chi2");
127  PVcomparerPSet.add<double>("track_prob_min", -1.)->setComment("min track prob");
128  desc.add<edm::ParameterSetDescription>("PVcomparer", PVcomparerPSet)
129  ->setComment("from RecoPixelVertexing/PixelVertexFinding/python/PVClusterComparer_cfi.py");
130  descriptions.add("hltPixelVertexCollectionTrimmer", desc);
131 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, and edm::ParameterDescriptionNode::setComment().

◆ produce()

void PixelVertexCollectionTrimmer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 78 of file PixelVertexCollectionTrimmer.cc.

78  {
79  using namespace edm;
80 
81  auto vtxs_trim = std::make_unique<reco::VertexCollection>();
82 
84  iEvent.getByToken(vtxToken_, vtxs);
85 
86  double sumpt2;
87  //double sumpt2previous = -99. ;
88 
89  // this is not the logic we want, at least for now
90  // if requires the sumpt2 for vtx_n to be > threshold * sumpt2 vtx_n-1
91  // for (reco::VertexCollection::const_iterator vtx = vtxs->begin(); vtx != vtxs->end(); ++vtx, ++counter){
92  // if (counter > maxVtx_) break ;
93  // sumpt2 = PVCluster.pTSquaredSum(*vtx) ;
94  // if (sumpt2 > sumpt2previous*fractionSumPt2_ && sumpt2 > minSumPt2_ ) vtxs_trim->push_back(*vtx) ;
95  // else if (counter == 0 ) vtxs_trim->push_back(*vtx) ;
96  // sumpt2previous = sumpt2 ;
97  // }
98 
99  double sumpt2first = pvComparer_->pTSquaredSum(*(vtxs->begin()));
100 
101  for (reco::VertexCollection::const_iterator vtx = vtxs->begin(), evtx = vtxs->end(); vtx != evtx; ++vtx) {
102  if (vtxs_trim->size() >= maxVtx_)
103  break;
104  sumpt2 = pvComparer_->pTSquaredSum(*vtx);
105  // std::cout << "sumpt2: " << sumpt2 << "[" << sumpt2first << "]" << std::endl;
106  // if (sumpt2 >= sumpt2first*fractionSumPt2_ && sumpt2 > minSumPt2_ ) vtxs_trim->push_back(*vtx) ;
107  if (sumpt2 >= sumpt2first * fractionSumPt2_ && sumpt2 > minSumPt2_)
108  vtxs_trim->push_back(*vtx);
109  }
110  // std::cout << " ==> # vertices: " << vtxs_trim->size() << std::endl;
111  iEvent.put(std::move(vtxs_trim));
112 }

References fractionSumPt2_, iEvent, maxVtx_, minSumPt2_, eostools::move(), PVClusterComparer::pTSquaredSum(), pvComparer_, extraflags_cff::vtx, and vtxToken_.

Member Data Documentation

◆ fractionSumPt2_

double PixelVertexCollectionTrimmer::fractionSumPt2_
private

Definition at line 51 of file PixelVertexCollectionTrimmer.cc.

Referenced by PixelVertexCollectionTrimmer(), and produce().

◆ maxVtx_

unsigned int PixelVertexCollectionTrimmer::maxVtx_
private

Definition at line 50 of file PixelVertexCollectionTrimmer.cc.

Referenced by PixelVertexCollectionTrimmer(), and produce().

◆ minSumPt2_

double PixelVertexCollectionTrimmer::minSumPt2_
private

Definition at line 52 of file PixelVertexCollectionTrimmer.cc.

Referenced by PixelVertexCollectionTrimmer(), and produce().

◆ pvComparer_

PVClusterComparer* PixelVertexCollectionTrimmer::pvComparer_
private

Definition at line 54 of file PixelVertexCollectionTrimmer.cc.

Referenced by PixelVertexCollectionTrimmer(), and produce().

◆ vtxToken_

edm::EDGetTokenT<reco::VertexCollection> PixelVertexCollectionTrimmer::vtxToken_
private

Definition at line 49 of file PixelVertexCollectionTrimmer.cc.

Referenced by PixelVertexCollectionTrimmer(), and produce().

HLT_FULL_cff.track_pt_min
track_pt_min
Definition: HLT_FULL_cff.py:256
HLT_FULL_cff.track_prob_min
track_prob_min
Definition: HLT_FULL_cff.py:255
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
edm
HLT enums.
Definition: AlignableModifier.h:19
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
PixelVertexCollectionTrimmer::maxVtx_
unsigned int maxVtx_
Definition: PixelVertexCollectionTrimmer.cc:50
edm::Handle< reco::VertexCollection >
PixelVertexCollectionTrimmer::minSumPt2_
double minSumPt2_
Definition: PixelVertexCollectionTrimmer.cc:52
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
PVClusterComparer::pTSquaredSum
double pTSquaredSum(const PVCluster &v)
Calculate sum of square of the pT's of the tracks in the vertex.
Definition: PVClusterComparer.cc:23
PixelVertexCollectionTrimmer::pvComparer_
PVClusterComparer * pvComparer_
Definition: PixelVertexCollectionTrimmer.cc:54
HLT_FULL_cff.track_chi2_max
track_chi2_max
Definition: HLT_FULL_cff.py:253
HLT_FULL_cff.track_pt_max
track_pt_max
Definition: HLT_FULL_cff.py:254
edm::ParameterSet
Definition: ParameterSet.h:47
iEvent
int iEvent
Definition: GenABIO.cc:224
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
extraflags_cff.vtx
vtx
Definition: extraflags_cff.py:18
L1TMuonDQMOffline_cfi.vtxInputTag
vtxInputTag
Definition: L1TMuonDQMOffline_cfi.py:46
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::ParameterDescriptionNode::setComment
void setComment(std::string const &value)
Definition: ParameterDescriptionNode.cc:106
PVClusterComparer
Definition: PVClusterComparer.h:16
PixelVertexCollectionTrimmer::fractionSumPt2_
double fractionSumPt2_
Definition: PixelVertexCollectionTrimmer.cc:51
edm::InputTag
Definition: InputTag.h:15
PixelVertexCollectionTrimmer::vtxToken_
edm::EDGetTokenT< reco::VertexCollection > vtxToken_
Definition: PixelVertexCollectionTrimmer.cc:49