61 namespace AlCaIsoTracks {
120 nRun_(0), nAll_(0), nGood_(0) {
122 const double isolationRadius(28.9);
164 edm::LogInfo(
"HcalIsoTrack") <<
"Parameters read from config file \n"
166 <<
":" << slopeRestrictionPt_
167 <<
"\t theTrackQuality " << theTrackQuality_
177 <<
"\t a_coneR " << a_coneR_
178 <<
"\t a_charIsoR " << a_charIsoR_
195 LogDebug(
"HcalIsoTrack") <<
"Run " << iEvent.
id().
run() <<
" Event "
196 << iEvent.
id().
event() <<
" Luminosity "
204 if (!triggerEventHandle.
isValid()) {
208 triggerEvent = *(triggerEventHandle.
product());
213 if (triggerResults.
isValid()) {
215 std::vector<std::string>
modules;
217 const std::vector<std::string> & triggerNames_ = triggerNames.
triggerNames();
218 for (
unsigned int iHLT=0; iHLT<triggerResults->size(); iHLT++) {
219 int hlt = triggerResults->accept(iHLT);
221 if (triggerNames_[iHLT].
find(
trigNames_[
i].c_str())!=std::string::npos) {
225 LogDebug(
"HcalIsoTrack") <<
"This is the trigger we are looking for "
226 << triggerNames_[iHLT] <<
" Flag " << hlt
247 if (!trkCollection.
isValid()) {
251 reco::TrackCollection::const_iterator trkItr;
259 if (recVtxs->size()>0 && !((*recVtxs)[0].isFake())) {
262 }
else if (beamSpotH.
isValid()) {
263 leadPV = beamSpotH->position();
265 LogDebug(
"HcalIsoTrack") <<
"Primary Vertex " << leadPV;
270 if (!barrelRecHitsHandle.
isValid()) {
276 if (!endcapRecHitsHandle.
isValid()) {
291 std::vector<spr::propagatedTrackDirection> trkCaloDirections;
293 trkCaloDirections,
false);
295 std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
296 unsigned int nTracks(0), nselTracks(0);
297 for (trkDetItr = trkCaloDirections.begin(),nTracks=0;
298 trkDetItr != trkCaloDirections.end(); trkDetItr++,nTracks++) {
299 const reco::Track* pTrack = &(*(trkDetItr->trkItr));
301 pTrack->
pz(), pTrack->
p());
302 LogDebug(
"HcalIsoTrack") <<
"This track : " << nTracks
303 <<
" (pt|eta|phi|p) :" << pTrack->
pt()
304 <<
"|" << pTrack->
eta() <<
"|"
305 << pTrack->
phi() <<
"|" << pTrack->
p();
310 LogDebug(
"HcalIsoTrack") <<
"qltyFlag|okECAL|okHCAL : " << qltyFlag
311 <<
"|" << trkDetItr->okECAL <<
"|"
312 << trkDetItr->okHCAL;
313 if (qltyFlag && trkDetItr->okECAL && trkDetItr->okHCAL) {
314 double t_p = pTrack->
p();
316 int nRH_eMipDR(0), nNearTRKs(0);
319 trkDetItr->pointHCAL,
321 trkDetItr->directionECAL,
327 LogDebug(
"HcalIsoTrack") <<
"This track : " << nTracks
328 <<
" (pt|eta|phi|p) :" << pTrack->
pt()
329 <<
"|" << pTrack->
eta() <<
"|"
330 << pTrack->
phi() <<
"|" << t_p
331 <<
"e_MIP " << eMipDR
332 <<
" Chg Isolation " << hmaxNearP;
349 globalCache()->nAll_ +=
nAll_;
350 globalCache()->nGood_ +=
nGood_;
355 << count->
nAll_ <<
" events";
double p() const
momentum vector magnitude
T getParameter(std::string const &) const
EventNumber_t event() const
virtual void endStream() override
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, std::string &theTrackQuality, bool debug=false)
The single EDProduct to be saved for each event (AOD case)
spr::trackSelectionParameters selectionParameter_
static void globalEndJob(const AlCaIsoTracks::Counters *counters)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
edm::InputTag triggerEvent_
int bunchCrossing() const
edm::LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
std::vector< std::string > trigNames_
double phi() const
azimuthal angle of momentum vector
std::atomic< unsigned int > nAll_
double chargeIsolationCone(unsigned int trkIndex, std::vector< spr::propagatedTrackDirection > &trkDirs, double dR, int &nNearTRKs, bool debug=false)
double px() const
x coordinate of momentum vector
virtual bool filter(edm::Event &, edm::EventSetup const &) override
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Strings const & triggerNames() const
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
double eta() const
pseudorapidity of momentum vector
void addDefault(ParameterSetDescription const &psetDescription)
edm::InputTag labelGenTrack_
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
double pt() const
track transverse momentum
Abs< T >::type abs(const T &t)
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
double eCone_ecal(const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
static std::string const triggerResults
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
double pz() const
z coordinate of momentum vector
std::string theTrackQuality_
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
static TrackQuality qualityByName(const std::string &name)
T const * product() const
XYZPointD XYZPoint
point in space with cartesian internal representation
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
AlCaIsoTracksFilter(edm::ParameterSet const &, const AlCaIsoTracks::Counters *count)
T const * product() const
double slopeRestrictionPt_
reco::TrackBase::TrackQuality minQuality
edm::InputTag theTriggerResultsLabel
virtual void endRun(edm::Run const &, edm::EventSetup const &) override
HLTConfigProvider hltConfig_
edm::InputTag labelRecVtx_
std::atomic< unsigned int > nGood_
double py() const
y coordinate of momentum vector
std::vector< std::string > HLTNames_
static std::unique_ptr< AlCaIsoTracks::Counters > initializeGlobalCache(edm::ParameterSet const &iConfig)
virtual void beginRun(edm::Run const &, edm::EventSetup const &) override