60 produces<reco::RecoChargedCandidateCollection>();
68 desc.
add<
bool>(
"saveTags",
false);
69 desc.
add<
double>(
"minDEDx",0.0);
70 desc.
add<
double>(
"minPT",0.0);
71 desc.
add<
double>(
"minNOM",0.0);
72 desc.
add<
double>(
"maxETA",5.5);
73 desc.
add<
double>(
"minNumValidHits",0);
74 desc.
add<
double>(
"maxNHitMissIn",99);
75 desc.
add<
double>(
"maxNHitMissMid",99);
76 desc.
add<
double>(
"maxRelTrkIsoDeltaRp3", -1);
77 desc.
add<
double>(
"relTrkIsoDeltaRSize", 0.3);
78 desc.
add<
double>(
"maxAssocCaloE", -99);
79 desc.
add<
double>(
"maxAssocCaloEDeltaRSize", 0.5);
83 descriptions.
add(
"hltDeDxFilter",desc);
97 auto chargedCandidates = std::make_unique<std::vector<RecoChargedCandidate>>();
121 float eta[trackCollection.size()],
phi[trackCollection.size()],
pt[trackCollection.size()];
122 for(
unsigned int i=0;
i<trackCollection.size();
i++){
123 eta[
i] = trackCollection[
i].eta();
124 phi[
i] = trackCollection[
i].phi();
125 pt[
i] = trackCollection[
i].pt();
127 for(
unsigned int i=0;
i<trackCollection.size();
i++){
135 Particle::Charge
q = track->charge();
140 int Hits = ((dEdxTrack[
track].numberOfSaturatedMeasurements()&0xFF)<<16) | ((dEdxTrack[
track].numberOfMeasurements()&0xFF)<<8) | (track->found()&0xFF);
143 chargedCandidates->push_back(cand);
148 auto ptCone = trackCollection[
i].pt();
149 for(
unsigned int j=0; j<trackCollection.size(); j++){
151 auto trkDeltaR2 =
deltaR2(eta[i], phi[i], eta[j], phi[j]);
156 double relTrkIso = (ptCone - pt[
i])/(pt[i]);
163 double caloEMDeltaRp5 = 0;
164 double caloHadDeltaRp5 = 0;
167 auto caloDeltaR2 =
deltaR2(eta[i], phi[i], j->eta(), j->phi());
168 double Eem = j->emEnergy();
169 double Ehad = j->hadEnergy();
172 caloEMDeltaRp5 += Eem;
173 caloHadDeltaRp5 += Ehad;
T getParameter(std::string const &) const
edm::EDGetToken inputdedxToken_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::EDGetToken inputTracksToken_
double relTrkIsoDeltaRSize_
double maxAssocCaloEDeltaRSize_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< Track > TrackCollection
collection of Tracks
std::vector< CaloTower >::const_iterator const_iterator
edm::Ref< RecoChargedCandidateCollection > RecoChargedCandidateRef
reference to an object in a collection of RecoChargedCandidate objects
edm::EDGetToken caloTowersToken_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
HLTDeDxFilter(const edm::ParameterSet &)
edm::InputTag inputdedxTag_
edm::InputTag thisModuleTag_
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_MODULE(type)
double maxRelTrkIsoDeltaRp3_
edm::InputTag inputTracksTag_
edm::InputTag caloTowersTag_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const_iterator end() const
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
T const * product() const
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool hltFilter(edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
~HLTDeDxFilter() override
void setTrack(const reco::TrackRef &r)
set reference to track
Power< A, B >::type pow(const A &a, const B &b)
const_iterator begin() const
math::PtEtaPhiELorentzVectorF LorentzVector