68 float dPhi1 = charge<0 ? seed->dPhi1()/dPhi1Const : seed->dPhi1Pos()/dPhi1Const;
75 float dPhi2 = charge <0 ? seed->dPhi2()/dPhi2Const : seed->dPhi2Pos()/dPhi2Const;
82 const float dRZ2Const = seed->subDet1()==1 ? seed->subDet2()==1 ?
sZ2B_ :
sR2I_ :
sR2F_;
83 float dRZ2 = charge<0 ? seed->dRz2()/dRZ2Const : seed->dRz2Pos()/dRZ2Const;
92 desc.
add<
double>(
"npixelmatchcut", 1.0);
93 desc.
add<
int>(
"ncandcut", 1);
95 desc.
add<
double>(
"s_a_phi1B", 0.0069) ;
96 desc.
add<
double>(
"s_a_phi1I", 0.0088) ;
97 desc.
add<
double>(
"s_a_phi1F", 0.0076) ;
98 desc.
add<
double>(
"s_a_phi2B", 0.00037) ;
99 desc.
add<
double>(
"s_a_phi2I", 0.00070) ;
100 desc.
add<
double>(
"s_a_phi2F", 0.00906) ;
101 desc.
add<
double>(
"s_a_zB" , 0.012) ;
102 desc.
add<
double>(
"s_a_rI" , 0.027) ;
103 desc.
add<
double>(
"s_a_rF" , 0.040) ;
104 desc.
add<
double>(
"s2_threshold", 0);
105 desc.
add<
double>(
"tanhSO10BarrelThres", 0.35);
106 desc.
add<
double>(
"tanhSO10InterThres", 1);
107 desc.
add<
double>(
"tanhSO10ForwardThres", 1);
108 desc.
add<
bool> (
"useS" ,
false);
109 desc.
add<
bool> (
"pixelVeto",
false);
111 descriptions.
add(
"hltElectronPixelMatchFilter",desc);
127 std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > recoecalcands;
137 for (
auto & recoecalcand : recoecalcands) {
167 for(
auto seedIt = eleSeeds->begin(); seedIt != eleSeeds->end(); seedIt++){
170 if(&(*candSCRef) == &(*scRef)){
176 if(s2Neg<s2Thres || s2Pos<s2Thres) nrMatch++ ;
T getParameter(std::string const &) const
float calDPhi1Sq(reco::ElectronSeedCollection::const_iterator seed, int charge) const
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > candToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HLTElectronPixelMatchFilter(const edm::ParameterSet &)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
edm::EDGetTokenT< reco::ElectronSeedCollection > l1PixelSeedsToken_
#define DEFINE_FWK_MODULE(type)
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
~HLTElectronPixelMatchFilter() override
ParameterDescriptionBase * add(U const &iLabel, T const &value)
int getNrOfMatches(edm::Handle< reco::ElectronSeedCollection > &eleSeeds, reco::SuperClusterRef &candSCRef) const
float calDZ2Sq(reco::ElectronSeedCollection::const_iterator seed, int charge) const
edm::InputTag l1PixelSeedsTag_
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Power< A, B >::type pow(const A &a, const B &b)
float calDPhi2Sq(reco::ElectronSeedCollection::const_iterator seed, int charge) const