29 #include "CLHEP/Random/RandGauss.h" 60 smearedPVsigmaX_ = iConfig.
getParameter<
double>(
"smearedPVsigmaX");
61 smearedPVsigmaY_ = iConfig.
getParameter<
double>(
"smearedPVsigmaY");
62 smearedPVsigmaZ_ = iConfig.
getParameter<
double>(
"smearedPVsigmaZ");
65 if(Algorithm_ ==
"ConeBased") {
68 else if(Algorithm_ ==
"HPS") {
78 produces<PFTauCollection>();
81 delete PFRecoTauAlgo_;
85 auto resultPFTau = std::make_unique<PFTauCollection>();
89 PFRecoTauAlgo_->setTransientTrackBuilder(myTransientTrackBuilder.product());
106 if(!vertCollection.empty()) thePV=*(vertCollection.begin());
109 SimPVError(0,0)=smearedPVsigmaX_*smearedPVsigmaX_;
110 SimPVError(1,1)=smearedPVsigmaY_*smearedPVsigmaY_;
111 SimPVError(2,2)=smearedPVsigmaZ_*smearedPVsigmaZ_;
112 Vertex::Point SimPVPoint(CLHEP::RandGauss::shoot(0.,smearedPVsigmaX_),
113 CLHEP::RandGauss::shoot(0.,smearedPVsigmaY_),
114 CLHEP::RandGauss::shoot(0.,smearedPVsigmaZ_));
115 thePV=
Vertex(SimPVPoint,SimPVError,1,1,1);
119 iEvent.
getByToken(PFTauTagInfoProducer_,thePFTauTagInfoCollection);
121 for(PFTauTagInfoCollection::const_iterator i_info=thePFTauTagInfoCollection->begin();i_info!=thePFTauTagInfoCollection->end();i_info++) {
122 if((*i_info).pfjetRef()->pt()>JetMinPt_){
125 resultPFTau->push_back(myPFTau);
136 desc.
add<
double>(
"Rphi", 2.0);
137 desc.
add<
double>(
"LeadTrack_minPt", 0.0);
142 desc.
add<
double>(
"EcalStripSumE_deltaPhiOverQ_minValue", -0.1);
143 desc.
add<
double>(
"smearedPVsigmaX", 0.0015);
144 desc.
add<
double>(
"smearedPVsigmaY", 0.0015);
148 desc.
add<
double>(
"TrackerIsolConeSize_min", 0.0);
149 desc.
add<
double>(
"MatchingConeSize_min", 0.0);
151 desc.
add<
double>(
"ChargedHadrCandLeadChargedHadrCand_tksmaxDZ", 1.0);
152 desc.
add<
double>(
"TrackerIsolConeSize_max", 0.6);
153 desc.
add<
double>(
"TrackerSignalConeSize_max", 0.07);
155 desc.
add<
bool>(
"AddEllipseGammas",
false);
156 desc.
add<
double>(
"maximumForElectrionPreIDOutput", -0.1);
157 desc.
add<
double>(
"TrackerSignalConeSize_min", 0.0);
158 desc.
add<
double>(
"JetPtMin", 0.0);
160 desc.
add<
double>(
"AreaMetric_recoElements_maxabsEta", 2.5);
161 desc.
add<
double>(
"HCALIsolConeSize_max", 0.6);
162 desc.
add<
unsigned int>(
"Track_IsolAnnulus_minNhits", 3);
164 desc.
add<
double>(
"ElecPreIDLeadTkMatch_maxDR", 0.01);
168 desc.
add<
bool>(
"UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint",
true);
170 desc.
add<
double>(
"ECALIsolConeSize_max", 0.6);
172 desc.
add<
double>(
"EcalStripSumE_deltaPhiOverQ_maxValue", 0.5);
173 desc.
add<
double>(
"HCALSignalConeSize_max", 0.6);
174 desc.
add<
double>(
"ECALSignalConeSize_min", 0.0);
175 desc.
add<
double>(
"EcalStripSumE_minClusEnergy", 0.1);
176 desc.
add<
double>(
"EcalStripSumE_deltaEta", 0.03);
178 desc.
add<
double>(
"LeadPFCand_minPt", 5.0);
179 desc.
add<
double>(
"HCALSignalConeSize_min", 0.0);
180 desc.
add<
double>(
"ECALSignalConeSize_max", 0.6);
182 desc.
add<
bool>(
"putNeutralHadronsInP4",
false);
183 desc.
add<
double>(
"TrackLeadTrack_maxDZ", 1.0);
184 desc.
add<
unsigned int>(
"ChargedHadrCand_IsolAnnulus_minNhits", 0);
185 desc.
add<
double>(
"ECALIsolConeSize_min", 0.0);
186 desc.
add<
bool>(
"UseTrackLeadTrackDZconstraint",
true);
187 desc.
add<
double>(
"MaxEtInEllipse", 2.0);
189 desc.
add<
double>(
"smearedPVsigmaZ", 0.005);
190 desc.
add<
double>(
"MatchingConeSize_max", 0.6);
191 desc.
add<
double>(
"HCALIsolConeSize_min", 0.0);
192 descriptions.
add(
"pfRecoTauProducerDef", desc);
T getParameter(std::string const &) const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
PFRecoTauProducer(const edm::ParameterSet &iConfig)
math::Error< dimension >::type Error
covariance error matrix (3x3)
std::vector< Vertex > VertexCollection
collection of Vertex objects
#define DEFINE_FWK_MODULE(type)
math::XYZPoint Point
point in the space
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void produce(edm::Event &, const edm::EventSetup &) override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T const * product() const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::InputTag ElectronPreIDProducer_
PFRecoTauAlgorithmBase * PFRecoTauAlgo_
edm::EDGetTokenT< PFTauTagInfoCollection > PFTauTagInfoProducer_
~PFRecoTauProducer() override
edm::EDGetTokenT< VertexCollection > PVProducer_