28 #include "CLHEP/Random/RandGauss.h" 30 #include "Math/GenVector/VectorUtil.h" 63 smearedPVsigmaX_ = iConfig.
getParameter<
double>(
"smearedPVsigmaX");
64 smearedPVsigmaY_ = iConfig.
getParameter<
double>(
"smearedPVsigmaY");
65 smearedPVsigmaZ_ = iConfig.
getParameter<
double>(
"smearedPVsigmaZ");
67 PFCandidate_token = consumes<PFCandidateCollection>(PFCandidateProducer_);
68 PFJetTracksAssociator_token = consumes<JetTracksAssociationCollection>(PFJetTracksAssociatorProducer_);
69 PV_token = consumes<VertexCollection>(PVProducer_);
70 produces<PFTauTagInfoCollection>();
77 iEvent.
getByToken(PFJetTracksAssociator_token,thePFJetTracksAssociatorCollection);
80 iEvent.
getByToken(PFCandidate_token,thePFCandidateCollection);
81 vector<CandidatePtr> thePFCandsInTheEvent;
82 for(
unsigned int i_PFCand=0;i_PFCand!=thePFCandidateCollection->size();i_PFCand++) {
83 thePFCandsInTheEvent.push_back(
CandidatePtr(thePFCandidateCollection,i_PFCand));
93 if(!vertCollection.empty()) thePV =*(vertCollection.begin());
96 SimPVError(0,0)=15.*15.;
97 SimPVError(1,1)=15.*15.;
98 SimPVError(2,2)=15.*15.;
100 thePV=
Vertex(SimPVPoint,SimPVError,1,1,1);
103 auto resultExt = std::make_unique<PFTauTagInfoCollection>();
105 PFTauTagInfo myPFTauTagInfo=PFRecoTauTagInfoAlgo_->buildPFTauTagInfo(
JetBaseRef((*iAssoc).first),thePFCandsInTheEvent,(*iAssoc).second,thePV);
106 resultExt->push_back(myPFTauTagInfo);
119 desc.
add<
int>(
"tkminTrackerHitsn", 3);
120 desc.
add<
double>(
"tkminPt", 0.5);
121 desc.
add<
double>(
"tkmaxChi2", 100.0);
122 desc.
add<
double>(
"ChargedHadrCand_AssociationCone", 1.0);
123 desc.
add<
int>(
"ChargedHadrCand_tkminTrackerHitsn", 3);
124 desc.
add<
double>(
"ChargedHadrCand_tkmaxChi2", 100.0);
125 desc.
add<
double>(
"tkPVmaxDZ", 0.2);
126 desc.
add<
double>(
"GammaCand_EcalclusMinEt", 1.0);
127 desc.
add<
int>(
"tkminPixelHitsn", 0);
130 desc.
add<
double>(
"ChargedHadrCand_tkminPt", 0.5);
131 desc.
add<
double>(
"ChargedHadrCand_tkmaxipt", 0.03);
132 desc.
add<
int>(
"ChargedHadrCand_tkminPixelHitsn", 0);
133 desc.
add<
bool>(
"UsePVconstraint",
true);
134 desc.
add<
double>(
"NeutrHadrCand_HcalclusMinEt", 1.0);
136 desc.
add<
double>(
"smearedPVsigmaY", 0.0015);
137 desc.
add<
double>(
"smearedPVsigmaX", 0.0015);
138 desc.
add<
double>(
"smearedPVsigmaZ", 0.005);
139 desc.
add<
double>(
"ChargedHadrCand_tkPVmaxDZ", 0.2);
140 desc.
add<
double>(
"tkmaxipt", 0.03);
141 descriptions.
add(
"pfRecoTauTagInfoProducerInsideOut", desc);
146 desc.
add<
int>(
"tkminTrackerHitsn", 3);
147 desc.
add<
double>(
"tkminPt", 0.5);
148 desc.
add<
double>(
"tkmaxChi2", 100.0);
149 desc.
add<
double>(
"ChargedHadrCand_AssociationCone", 0.8);
150 desc.
add<
int>(
"ChargedHadrCand_tkminTrackerHitsn", 3);
151 desc.
add<
double>(
"ChargedHadrCand_tkmaxChi2", 100.0);
152 desc.
add<
double>(
"tkPVmaxDZ", 0.2);
153 desc.
add<
double>(
"GammaCand_EcalclusMinEt", 1.0);
154 desc.
add<
int>(
"tkminPixelHitsn", 0);
157 desc.
add<
double>(
"ChargedHadrCand_tkminPt", 0.5);
158 desc.
add<
double>(
"ChargedHadrCand_tkmaxipt", 0.03);
159 desc.
add<
int>(
"ChargedHadrCand_tkminPixelHitsn", 0);
160 desc.
add<
bool>(
"UsePVconstraint",
true);
161 desc.
add<
double>(
"NeutrHadrCand_HcalclusMinEt", 1.0);
163 desc.
add<
double>(
"smearedPVsigmaY", 0.0015);
164 desc.
add<
double>(
"smearedPVsigmaX", 0.0015);
165 desc.
add<
double>(
"smearedPVsigmaZ", 0.005);
166 desc.
add<
double>(
"ChargedHadrCand_tkPVmaxDZ", 0.2);
167 desc.
add<
double>(
"tkmaxipt", 0.03);
168 descriptions.
add(
"pfRecoTauTagInfoProducer", desc);
edm::InputTag PFJetTracksAssociatorProducer_
T getParameter(std::string const &) const
edm::EDGetTokenT< PFCandidateCollection > PFCandidate_token
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
transient_vector_type::const_iterator const_iterator
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const_iterator end() const
math::Error< dimension >::type Error
covariance error matrix (3x3)
std::vector< Vertex > VertexCollection
collection of Vertex objects
edm::EDGetTokenT< VertexCollection > PV_token
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
#define DEFINE_FWK_MODULE(type)
math::XYZPoint Point
point in the space
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::unique_ptr< const PFRecoTauTagInfoAlgorithm > PFRecoTauTagInfoAlgo_
edm::RefToBase< Jet > JetBaseRef
edm::InputTag PFCandidateProducer_
edm::Ptr< Candidate > CandidatePtr
persistent reference to an object in a collection of Candidate objects
PFRecoTauTagInfoProducer(const edm::ParameterSet &iConfig)
~PFRecoTauTagInfoProducer() override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T const * product() const
XYZPointD XYZPoint
point in space with cartesian internal representation
edm::EDGetTokenT< JetTracksAssociationCollection > PFJetTracksAssociator_token
void add(std::string const &label, ParameterSetDescription const &psetDescription)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::InputTag PVProducer_
const_iterator begin() const