23 const float dummy = -9.;
67 pvNDOF_(iConfig.getParameter<
int>(
"pvNDOF")),
69 lxyCUT_(iConfig.getParameter<double>(
"lxyCUT")),
70 lxyWRTbsCUT_(iConfig.getParameter<double>(
"lxyWRTbsCUT")),
71 debug_(iConfig.getUntrackedParameter<
bool>(
"debug")) {
73 std::cout <<
"VertexCompositeCandidateCollectionSelector::VertexCompositeCandidateCollectionSelector" << std::endl;
75 produces<reco::VertexCompositeCandidateCollection>();
89 std::cout <<
"VertexCompositeCandidateCollectionSelector::produce" << std::endl;
92 auto result = std::make_unique<reco::VertexCompositeCandidateCollection>();
97 if (beamspotHandle.isValid())
98 bs = &(*beamspotHandle);
104 pv = &pvHandle->front();
107 pv->tracksSize() == 0
115 int n = (v0Handle.
isValid() ? v0Handle->size() : -1);
119 auto const& v0s = *v0Handle.
product();
120 for (
auto const&
v0 : v0s) {
125 float abslxy = (
pv ==
nullptr ?
dummy : displacementFromPV2D.
perp());
126 float abslxyWRTbs = (
bs ==
nullptr ?
dummy : displacementFromBS2D.
perp());
133 << (abslxyWRTbs >=
lxyWRTbsCUT_ ?
"OK" :
"KO") << std::endl;
158 desc.add<
int>(
"pvNDOF");
159 desc.add<
double>(
"lxyCUT", 16.);
160 desc.add<
double>(
"lxyWRTbsCUT", 0.);
161 desc.addUntracked<
bool>(
"debug",
false);
162 descriptions.
add(
"VertexCompositeCandidateCollectionSelector",
desc);
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< VertexCompositeCandidate > VertexCompositeCandidateCollection
collection of Candidate objects
edm::EDGetTokenT< reco::VertexCompositeCandidateCollection > v0Token_
static PFTauRenderPlugin instance
T const * product() const
Global3DPoint GlobalPoint
std::vector< Vertex > VertexCollection
VertexCompositeCandidateCollectionSelector(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< reco::VertexCollection > pvToken_
edm::EDGetTokenT< reco::BeamSpot > bsToken_