54 dPhi1Para_(config.getParameter<edm::
ParameterSet>(
"dPhi1SParams")),
55 dPhi2Para_(config.getParameter<edm::
ParameterSet>(
"dPhi2SParams")),
56 dRZ2Para_(config.getParameter<edm::
ParameterSet>(
"dRZ2SParams")),
57 productsToWrite_(config.getParameter<int>(
"productsToWrite"))
61 produces < reco::RecoEcalCandidateIsolationMap >(
"s2");
63 produces < reco::RecoEcalCandidateIsolationMap >(
"dPhi1BestS2");
64 produces < reco::RecoEcalCandidateIsolationMap >(
"dPhi2BestS2");
65 produces < reco::RecoEcalCandidateIsolationMap >(
"dzBestS2");
88 edm::ParameterDescription<int>(
"yMax",99999,
true) and
93 edm::ParameterDescription<double>(
"xMax",3.0,
true) and
94 edm::ParameterDescription<int>(
"yMin",0,
true) and
95 edm::ParameterDescription<int>(
"yMax",99999,
true) and
96 edm::ParameterDescription<std::string>(
"funcType",
"pol0",
true) and
99 (edm::ParameterDescription<double>(
"xMin",0.0,
true) and
100 edm::ParameterDescription<double>(
"xMax",3.0,
true) and
101 edm::ParameterDescription<int>(
"yMin",0,
true) and
102 edm::ParameterDescription<int>(
"yMax",99999,
true) and
103 edm::ParameterDescription<std::string>(
"funcType",
"pol0",
true) and
106 binParamDesc.
ifValue(edm::ParameterDescription<std::string>(
"binType",
"AbsEtaClus",
true),
std::move(binDescCases));
109 varParamDesc.addVPSet(
"bins",binParamDesc);
110 desc.
add(
"dPhi1SParams",varParamDesc);
111 desc.
add(
"dPhi2SParams",varParamDesc);
112 desc.
add(
"dRZ2SParams",varParamDesc);
113 desc.
add<
int>(
"productsToWrite",0);
114 descriptions.
add((
"hltEgammaHLTPixelMatchVarProducer"), desc);
127 if(!recoEcalCandHandle.
isValid() || !pixelSeedsHandle.
isValid())
return;
129 auto dPhi1BestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
130 auto dPhi2BestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
131 auto dzBestS2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
132 auto s2Map = std::make_unique<reco::RecoEcalCandidateIsolationMap>(recoEcalCandHandle);
134 for(
unsigned int candNr = 0; candNr<recoEcalCandHandle->size(); candNr++) {
140 for(
auto &
seed : *pixelSeedsHandle){
143 if(&(*candSCRef) == &(*pixelSCRef)){
145 std::array<float,4> s2Data =
calS2(
seed,-1);
146 std::array<float,4> s2DataPos =
calS2(
seed,+1);
147 if(s2Data[0]<bestS2[0]) bestS2=s2Data;
148 if(s2DataPos[0]<bestS2[0]) bestS2=s2DataPos;
154 s2Map->insert(candRef,bestS2[0]);
156 dPhi1BestS2Map->insert(candRef,bestS2[1]);
157 dPhi2BestS2Map->insert(candRef,bestS2[2]);
158 dzBestS2Map->insert(candRef,bestS2[3]);
177 float dPhi1 = (charge <0 ? seed.
dPhi1() : seed.
dPhi1Pos())/dPhi1Const;
178 float dPhi2 = (charge <0 ? seed.
dPhi2() : seed.
dPhi2Pos())/dPhi2Const;
179 float dRz2 = (charge <0 ? seed.
dRz2() : seed.
dRz2Pos())/dRZ2Const;
181 float s2 = dPhi1*dPhi1+dPhi2*dPhi2+dRz2*dRz2;
182 return std::array<float,4>{{
s2,dPhi1,dPhi2,dRz2}};
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
egPM::Param< reco::ElectronSeed > dPhi2Para_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
void produce(edm::StreamID sid, edm::Event &, const edm::EventSetup &) const override
egPM::Param< reco::ElectronSeed > dPhi1Para_
egPM::Param< reco::ElectronSeed > dRZ2Para_
~EgammaHLTPixelMatchVarProducer()
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T > > cases)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< ElectronSeed > ElectronSeedCollection
collection of ElectronSeed objects
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > recoEcalCandidateToken_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::array< float, 4 > calS2(const reco::ElectronSeed &seed, int charge) const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< RecoEcalCandidate > RecoEcalCandidateCollection
collectin of RecoEcalCandidate objects
const edm::EDGetTokenT< reco::ElectronSeedCollection > pixelSeedsToken_
EgammaHLTPixelMatchVarProducer(const edm::ParameterSet &)