CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
IsoTrig Class Reference

#include <IsoTrig/IsoTrig/src/IsoTrig.cc>

Inheritance diagram for IsoTrig:
edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 IsoTrig (const edm::ParameterSet &)
 
 ~IsoTrig () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector
< ProductResolverIndexAndSkipBit >
const & 
itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void chgIsolation (double &etaTriggered, double &phiTriggered, edm::Handle< reco::TrackCollection > &trkCollection, const edm::Event &theEvent)
 
void clearChgIsolnTreeVectors ()
 
void clearMipCutTreeVectors ()
 
double dEta (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
double dinvPt (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
double dP (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
double dPhi (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
double dPt (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
double dR (math::XYZTLorentzVector &, math::XYZTLorentzVector &)
 
void endJob () override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
std::pair< double, double > etaPhiTrigger ()
 
void fillCuts (int, double, double, double, math::XYZTLorentzVector &, int, bool)
 
void fillDifferences (int, math::XYZTLorentzVector &, math::XYZTLorentzVector &, bool)
 
void fillEnergy (int, int, double, double, math::XYZTLorentzVector &)
 
void fillHist (int, math::XYZTLorentzVector &)
 
double getDistInCM (double eta1, double phi1, double eta2, double phi2)
 
std::pair< double, double > GetEtaPhiAtEcal (double etaIP, double phiIP, double pT, int charge, double vtxZ)
 
void getGoodTracks (const edm::Event &, edm::Handle< reco::TrackCollection > &)
 
void pushChgIsolnTreeVecs (math::XYZTLorentzVector &Pixcand, math::XYZTLorentzVector &Trkcand, std::vector< double > &PixMaxP, double &TrkMaxP, bool &selTk)
 
void pushMipCutTreeVecs (math::XYZTLorentzVector &NFcand, math::XYZTLorentzVector &Trkcand, double &EmipNFcand, double &EmipTrkcand, double &mindR, double &mindP1, std::vector< bool > &Flags, double hCone)
 
void studyIsolation (edm::Handle< reco::TrackCollection > &, std::vector< reco::TrackCollection::const_iterator > &)
 
void studyMipCut (edm::Handle< reco::TrackCollection > &trkCollection, edm::Handle< reco::IsolatedPixelTrackCandidateCollection > &L2cands)
 
void studyTiming (const edm::Event &theEvent)
 
void studyTrigger (edm::Handle< reco::TrackCollection > &, std::vector< reco::TrackCollection::const_iterator > &)
 
void StudyTrkEbyP (edm::Handle< reco::TrackCollection > &trkCollection)
 

Private Attributes

const double a_charIsoR_
 
const double a_coneR_
 
const double a_mipR_
 
const double a_neutIsoR_
 
const double a_neutR1_
 
const double a_neutR2_
 
edm::Handle< EcalRecHitCollectionbarrelRecHitsHandle_
 
edm::Handle< reco::BeamSpotbeamSpotH_
 
const MagneticFieldbField_
 
double bfVal_
 
bool changed_
 
TTree * ChgIsolnTree_
 
const double cutCharge_
 
const double cutMip_
 
const double cutNeutral_
 
const bool doChgIsolTree_
 
const bool doL2L3_
 
const bool doMipCutTree_
 
const bool doStudyIsol_
 
const bool doTiming_
 
const bool doTrkResTree_
 
const double dr_L1_
 
edm::Handle< EcalRecHitCollectionendcapRecHitsHandle_
 
edm::Service< TFileServicefs_
 
TH1I * g_Accepts
 
TH1I * g_Pre
 
TH1I * g_PreHLT
 
TH1I * g_PreL1
 
const CaloGeometrygeo_
 
TH1D * h_dEta [9]
 
TH1D * h_dEtaL1 [2]
 
TH1D * h_dinvPt [9]
 
TH1D * h_dP [9]
 
TH1D * h_dPhi [9]
 
TH1D * h_dPhiL1 [2]
 
TH1D * h_dPt [9]
 
TH1D * h_dRL1 [2]
 
TH1D * h_eCalo [5][6][48]
 
TH1D * h_eHcal [5][6][48]
 
TH1D * h_eMaxNearP [2]
 
TH1D * h_eMip [2]
 
TH1D * h_eNeutIso [2]
 
TH1D * h_EnIn
 
TH1D * h_EnOut
 
TH1D * h_eta [20]
 
TH1D * h_etaCalibTracks [5][2][2]
 
TH1D * h_etaMipTracks [5][2][2]
 
TH1I * h_Filters
 
TH1I * h_HLT
 
TH1D * h_L1ObjEnergy
 
TH1D * h_mindR [9]
 
TH2D * h_MipEnMatch
 
TH2D * h_MipEnNoMatch
 
TH1I * h_nHLT
 
TH1I * h_nL3Objs
 
TH1D * h_p [20]
 
TH1D * h_phi [20]
 
TH1I * h_Pre
 
TH1I * h_PreHLT
 
TH1D * h_PreHLTwt
 
TH1I * h_PreL1
 
TH1D * h_PreL1wt
 
TH1D * h_pt [20]
 
edm::Handle< HBHERecHitCollectionhbhe_
 
HLTPrescaleProvider hltPrescaleProvider_
 
const edm::InputTag l1CandTag_
 
const edm::InputTag l2CandTag_
 
math::XYZPoint leadPV_
 
const int maxRunNo_
 
const double minPTrackValue_
 
const int minRunNo_
 
TTree * MipCutTree_
 
const edm::InputTag pixCandTag_
 
const std::vector< double > pixelIsolationConeSizeAtEC_
 
std::vector< reco::TrackRefpixelTrackRefsHB_
 
std::vector< reco::TrackRefpixelTrackRefsHE_
 
const std::vector< edm::InputTagpixelTracksSources_
 
double pLimits_ [6]
 
const double prelimCone_
 
const std::string processName_
 
double rEB_
 
edm::Handle
< reco::VertexCollection
recVtxs_
 
spr::trackSelectionParameters selectionParameters_
 
std::vector< double > * t_ECone
 
std::vector< double > * t_NFcandEmip
 
std::vector< double > * t_NFcandEta
 
std::vector< double > * t_NFcandP
 
std::vector< double > * t_NFcandPhi
 
std::vector< double > * t_NFcandPt
 
std::vector< double > * t_NFTrkcandEmip
 
std::vector< double > * t_NFTrkcandEta
 
std::vector< double > * t_NFTrkcandP
 
std::vector< double > * t_NFTrkcandPhi
 
std::vector< double > * t_NFTrkcandPt
 
std::vector< bool > * t_NFTrkChgIsoFlag
 
std::vector< double > * t_NFTrkMinDP1
 
std::vector< double > * t_NFTrkMinDR
 
std::vector< bool > * t_NFTrkMipFlag
 
std::vector< bool > * t_NFTrkMissFlag
 
std::vector< bool > * t_NFTrkNeuIsoFlag
 
std::vector< bool > * t_NFTrkPropFlag
 
std::vector< bool > * t_NFTrkPVFlag
 
std::vector< bool > * t_NFTrkqltyFlag
 
std::vector< bool > * t_NFTrkselTkFlag
 
std::vector< int > * t_nGoodTk
 
std::vector< int > * t_nPixCand
 
std::vector< int > * t_nPixSeed
 
std::vector< double > * t_PixcandEta
 
std::vector< std::vector
< double > > * 
t_PixcandMaxP
 
std::vector< double > * t_PixcandP
 
std::vector< double > * t_PixcandPhi
 
std::vector< double > * t_PixcandPt
 
std::vector< double > * t_PixTrkcandEta
 
std::vector< double > * t_PixTrkcandMaxP
 
std::vector< double > * t_PixTrkcandP
 
std::vector< double > * t_PixTrkcandPhi
 
std::vector< double > * t_PixTrkcandPt
 
std::vector< bool > * t_PixTrkcandselTk
 
std::vector< double > * t_timeL2Prod
 
std::vector< double > * t_TrkhCone
 
std::vector< bool > * t_TrkMissFlag
 
std::vector< bool > * t_TrkNuIsolFlag
 
std::vector< double > * t_TrkP
 
std::vector< bool > * t_TrkPVFlag
 
std::vector< bool > * t_TrkqltyFlag
 
std::vector< bool > * t_TrkselTkFlag
 
const double tauUnbiasCone_
 
std::string theTrackQuality_
 
TTree * TimingTree_
 
edm::EDGetTokenT< reco::BeamSpottok_bs_
 
edm::EDGetTokenT
< EcalRecHitCollection
tok_EB_
 
edm::EDGetTokenT
< EcalRecHitCollection
tok_EE_
 
edm::EDGetTokenT
< reco::TrackCollection
tok_genTrack_
 
edm::ESGetToken< CaloGeometry,
CaloGeometryRecord
tok_geom_
 
edm::EDGetTokenT
< HBHERecHitCollection
tok_hbhe_
 
edm::EDGetTokenT
< trigger::TriggerFilterObjectWithRefs
tok_hlt_
 
edm::EDGetTokenT
< trigger::TriggerFilterObjectWithRefs
tok_l1cand_
 
edm::EDGetTokenT
< reco::IsolatedPixelTrackCandidateCollection
tok_l2cand_
 
edm::EDGetTokenT< LumiDetailstok_lumi_
 
edm::ESGetToken< MagneticField,
IdealMagneticFieldRecord
tok_magField_
 
edm::EDGetTokenT
< reco::IsolatedPixelTrackCandidateCollection
tok_pixtk_
 
std::vector< edm::EDGetTokenT
< reco::TrackCollection > > 
tok_pixtks_
 
edm::EDGetTokenT
< reco::VertexCollection
tok_recVtx_
 
edm::EDGetTokenT
< SeedingLayerSetsHits
tok_SeedingLayerHB_
 
edm::EDGetTokenT
< SeedingLayerSetsHits
tok_SeedingLayerHE_
 
edm::EDGetTokenT
< SiPixelRecHitCollection
tok_SiPixelRecHits_
 
edm::EDGetTokenT
< trigger::TriggerEvent
tok_trigEvt_
 
edm::EDGetTokenT
< edm::TriggerResults
tok_trigRes_
 
edm::EDGetTokenT
< reco::VertexCollection
tok_verthb_
 
edm::EDGetTokenT
< reco::VertexCollection
tok_verthe_
 
std::map< unsigned int,
unsigned int > 
trigList_
 
const std::vector< std::string > trigNames_
 
std::map< unsigned int, const
std::pair< int, int > > 
trigPreList_
 
TTree * TrkResTree_
 
std::vector
< math::XYZTLorentzVector
vec_ [3]
 
const int verbosity_
 
const double vtxCutIsol_
 
const double vtxCutSeed_
 
double zEE_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 95 of file IsoTrig.cc.

Constructor & Destructor Documentation

IsoTrig::IsoTrig ( const edm::ParameterSet iConfig)
explicit

Definition at line 270 of file IsoTrig.cc.

References a_charIsoR_, a_coneR_, a_mipR_, a_neutIsoR_, a_neutR1_, a_neutR2_, cutCharge_, cutMip_, cutNeutral_, doChgIsolTree_, doTiming_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, HLT_FULL_cff::InputTag, isotrackApplyRegressor::k, TFileService::kSharedResource, l1CandTag_, l2CandTag_, spr::trackSelectionParameters::maxChi2, spr::trackSelectionParameters::maxDpOverP, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, spr::trackSelectionParameters::minLayerCrossed, spr::trackSelectionParameters::minOuterHit, spr::trackSelectionParameters::minPt, minPTrackValue_, spr::trackSelectionParameters::minQuality, pixCandTag_, pixelIsolationConeSizeAtEC_, pixelTracksSources_, pLimits_, prelimCone_, processName_, reco::TrackBase::qualityByName(), rEB_, selectionParameters_, tauUnbiasCone_, theTrackQuality_, tok_bs_, tok_EB_, tok_EE_, tok_genTrack_, tok_geom_, tok_hbhe_, tok_hlt_, tok_l1cand_, tok_l2cand_, tok_lumi_, tok_magField_, tok_pixtk_, tok_pixtks_, tok_recVtx_, tok_SeedingLayerHB_, tok_SeedingLayerHE_, tok_SiPixelRecHits_, tok_trigEvt_, tok_trigRes_, tok_verthb_, tok_verthe_, verbosity_, vtxCutIsol_, vtxCutSeed_, and zEE_.

271  : hltPrescaleProvider_(iConfig, consumesCollector(), *this),
272  trigNames_(iConfig.getUntrackedParameter<std::vector<std::string>>("Triggers")),
273  pixCandTag_(iConfig.getUntrackedParameter<edm::InputTag>("pixCandTag")),
274  l1CandTag_(iConfig.getUntrackedParameter<edm::InputTag>("l1CandTag")),
275  l2CandTag_(iConfig.getUntrackedParameter<edm::InputTag>("l2CandTag")),
276  pixelTracksSources_(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("pixelTracksSources")),
277  doL2L3_(iConfig.getUntrackedParameter<bool>("doL2L3", true)),
278  doTiming_(iConfig.getUntrackedParameter<bool>("doTimingTree", true)),
279  doMipCutTree_(iConfig.getUntrackedParameter<bool>("doMipCutTree", true)),
280  doTrkResTree_(iConfig.getUntrackedParameter<bool>("doTrkResTree", true)),
281  doChgIsolTree_(iConfig.getUntrackedParameter<bool>("doChgIsolTree", true)),
282  doStudyIsol_(iConfig.getUntrackedParameter<bool>("doStudyIsol", true)),
283  verbosity_(iConfig.getUntrackedParameter<int>("verbosity", 0)),
284  pixelIsolationConeSizeAtEC_(iConfig.getUntrackedParameter<std::vector<double>>("pixelIsolationConeSizeAtEC")),
285  minPTrackValue_(iConfig.getUntrackedParameter<double>("minPTrackValue")),
286  vtxCutSeed_(iConfig.getUntrackedParameter<double>("vertexCutSeed")),
287  vtxCutIsol_(iConfig.getUntrackedParameter<double>("vertexCutIsol")),
288  tauUnbiasCone_(iConfig.getUntrackedParameter<double>("tauUnbiasCone")),
289  prelimCone_(iConfig.getUntrackedParameter<double>("prelimCone")),
290  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("trackQuality", "highPurity")),
291  processName_(iConfig.getUntrackedParameter<std::string>("processName", "HLT")),
292  dr_L1_(iConfig.getUntrackedParameter<double>("isolationL1", 1.0)),
293  a_coneR_(iConfig.getUntrackedParameter<double>("coneRadius", 34.98)),
294  a_charIsoR_(a_coneR_ + 28.9),
295  a_neutIsoR_(a_charIsoR_ * 0.726),
296  a_mipR_(iConfig.getUntrackedParameter<double>("coneRadiusMIP", 14.0)),
297  a_neutR1_(iConfig.getUntrackedParameter<double>("coneRadiusNeut1", 21.0)),
298  a_neutR2_(iConfig.getUntrackedParameter<double>("coneRadiusNeut2", 29.0)),
299  cutMip_(iConfig.getUntrackedParameter<double>("cutMIP", 1.0)),
300  cutCharge_(iConfig.getUntrackedParameter<double>("chargeIsolation", 2.0)),
301  cutNeutral_(iConfig.getUntrackedParameter<double>("neutralIsolation", 2.0)),
302  minRunNo_(iConfig.getUntrackedParameter<int>("minRun")),
303  maxRunNo_(iConfig.getUntrackedParameter<int>("maxRun")),
304  changed_(false),
305  t_timeL2Prod(nullptr),
306  t_nPixCand(nullptr),
307  t_nPixSeed(nullptr),
308  t_nGoodTk(nullptr),
309  t_TrkhCone(nullptr),
310  t_TrkP(nullptr),
311  t_TrkselTkFlag(nullptr),
312  t_TrkqltyFlag(nullptr),
313  t_TrkMissFlag(nullptr),
314  t_TrkPVFlag(nullptr),
315  t_TrkNuIsolFlag(nullptr),
316  t_PixcandP(nullptr),
317  t_PixcandPt(nullptr),
318  t_PixcandEta(nullptr),
319  t_PixcandPhi(nullptr),
320  t_PixcandMaxP(nullptr),
321  t_PixTrkcandP(nullptr),
322  t_PixTrkcandPt(nullptr),
323  t_PixTrkcandEta(nullptr),
324  t_PixTrkcandPhi(nullptr),
325  t_PixTrkcandMaxP(nullptr),
326  t_PixTrkcandselTk(nullptr),
327  t_NFcandP(nullptr),
328  t_NFcandPt(nullptr),
329  t_NFcandEta(nullptr),
330  t_NFcandPhi(nullptr),
331  t_NFcandEmip(nullptr),
332  t_NFTrkcandP(nullptr),
333  t_NFTrkcandPt(nullptr),
334  t_NFTrkcandEta(nullptr),
335  t_NFTrkcandPhi(nullptr),
336  t_NFTrkcandEmip(nullptr),
337  t_NFTrkMinDR(nullptr),
338  t_NFTrkMinDP1(nullptr),
339  t_NFTrkselTkFlag(nullptr),
340  t_NFTrkqltyFlag(nullptr),
341  t_NFTrkMissFlag(nullptr),
342  t_NFTrkPVFlag(nullptr),
343  t_NFTrkPropFlag(nullptr),
344  t_NFTrkChgIsoFlag(nullptr),
345  t_NFTrkNeuIsoFlag(nullptr),
346  t_NFTrkMipFlag(nullptr),
347  t_ECone(nullptr) {
348  usesResource(TFileService::kSharedResource);
349 
350  //now do whatever initialization is needed
352  selectionParameters_.minPt = iConfig.getUntrackedParameter<double>("minTrackPt", 10.0);
353  selectionParameters_.minQuality = trackQuality_;
354  selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter<double>("maxDxyPV", 0.2);
355  selectionParameters_.maxDzPV = iConfig.getUntrackedParameter<double>("maxDzPV", 5.0);
356  selectionParameters_.maxChi2 = iConfig.getUntrackedParameter<double>("maxChi2", 5.0);
357  selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter<double>("maxDpOverP", 0.1);
358  selectionParameters_.minOuterHit = iConfig.getUntrackedParameter<int>("minOuterHit", 4);
359  selectionParameters_.minLayerCrossed = iConfig.getUntrackedParameter<int>("minLayerCrossed", 8);
360  selectionParameters_.maxInMiss = iConfig.getUntrackedParameter<int>("maxInMiss", 0);
361  selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter<int>("maxOutMiss", 0);
362 
363  // define tokens for access
364  tok_lumi_ = consumes<LumiDetails, edm::InLumi>(edm::InputTag("lumiProducer"));
365  edm::InputTag triggerEvent_("hltTriggerSummaryAOD", "", processName_);
366  tok_trigEvt_ = consumes<trigger::TriggerEvent>(triggerEvent_);
367  edm::InputTag theTriggerResultsLabel("TriggerResults", "", processName_);
368  tok_trigRes_ = consumes<edm::TriggerResults>(theTriggerResultsLabel);
369  tok_genTrack_ = consumes<reco::TrackCollection>(edm::InputTag("generalTracks"));
370  tok_recVtx_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
371  tok_bs_ = consumes<reco::BeamSpot>(edm::InputTag("offlineBeamSpot"));
372  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
373  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
374  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
375  tok_pixtk_ = consumes<reco::IsolatedPixelTrackCandidateCollection>(pixCandTag_);
376  tok_l1cand_ = consumes<trigger::TriggerFilterObjectWithRefs>(l1CandTag_);
377  tok_l2cand_ = consumes<reco::IsolatedPixelTrackCandidateCollection>(l2CandTag_);
378  if (doTiming_) {
379  tok_verthb_ = consumes<reco::VertexCollection>(edm::InputTag("hltHITPixelVerticesHB"));
380  tok_verthe_ = consumes<reco::VertexCollection>(edm::InputTag("hltHITPixelVerticesHB"));
381  tok_hlt_ = consumes<trigger::TriggerFilterObjectWithRefs>(edm::InputTag("hltL1sL1SingleJet68"));
382  tok_SeedingLayerHB_ = consumes<SeedingLayerSetsHits>(edm::InputTag("hltPixelLayerTripletsHITHB"));
383  tok_SeedingLayerHE_ = consumes<SeedingLayerSetsHits>(edm::InputTag("hltPixelLayerTripletsHITHE"));
384  tok_SiPixelRecHits_ = consumes<SiPixelRecHitCollection>(edm::InputTag("hltSiPixelRecHits"));
385  }
386  if (doChgIsolTree_) {
387  for (unsigned int k = 0; k < pixelTracksSources_.size(); ++k) {
388  // edm::InputTag pix (pixelTracksSources_[k],"",processName_);
389  // tok_pixtks_.push_back(consumes<reco::TrackCollection>(pix));
390  tok_pixtks_.push_back(consumes<reco::TrackCollection>(pixelTracksSources_[k]));
391  }
392  }
393  if (verbosity_ >= 0) {
394  edm::LogVerbatim("IsoTrack") << "Parameters read from config file \n"
395  << "\t minPt " << selectionParameters_.minPt << "\t theTrackQuality "
396  << theTrackQuality_ << "\t minQuality " << selectionParameters_.minQuality
397  << "\t maxDxyPV " << selectionParameters_.maxDxyPV << "\t maxDzPV "
399  << "\t maxDpOverP " << selectionParameters_.maxDpOverP << "\t minOuterHit "
400  << selectionParameters_.minOuterHit << "\t minLayerCrossed "
401  << selectionParameters_.minLayerCrossed << "\t maxInMiss "
402  << selectionParameters_.maxInMiss << "\t maxOutMiss "
403  << selectionParameters_.maxOutMiss << "\t a_coneR " << a_coneR_ << "\t a_charIsoR "
404  << a_charIsoR_ << "\t a_neutIsoR " << a_neutIsoR_ << "\t a_mipR " << a_mipR_
405  << "\t a_neutR " << a_neutR1_ << ":" << a_neutR2_ << "\t cuts (MIP " << cutMip_
406  << " : Charge " << cutCharge_ << " : Neutral " << cutNeutral_ << ")";
407  edm::LogVerbatim("IsoTrack") << "Charge Isolation parameters:"
408  << "\t minPTrackValue " << minPTrackValue_ << "\t vtxCutSeed " << vtxCutSeed_
409  << "\t vtxCutIsol " << vtxCutIsol_ << "\t tauUnbiasCone " << tauUnbiasCone_
410  << "\t prelimCone " << prelimCone_ << "\t pixelIsolationConeSizeAtEC";
411  for (unsigned int k = 0; k < pixelIsolationConeSizeAtEC_.size(); ++k)
412  edm::LogVerbatim("IsoTrack") << "[" << k << "] " << pixelIsolationConeSizeAtEC_[k];
413  }
414  double pl[] = {20, 30, 40, 60, 80, 120};
415  for (int i = 0; i < 6; ++i)
416  pLimits_[i] = pl[i];
417  rEB_ = 123.8;
418  zEE_ = 317.0;
419 
420  tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
421  tok_magField_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
422 }
bool changed_
Definition: IsoTrig.cc:203
static const std::string kSharedResource
Definition: TFileService.h:76
Log< level::Info, true > LogVerbatim
std::vector< bool > * t_NFTrkPVFlag
Definition: IsoTrig.cc:247
std::vector< double > * t_PixTrkcandPhi
Definition: IsoTrig.cc:228
std::vector< double > * t_PixTrkcandP
Definition: IsoTrig.cc:225
const double a_coneR_
Definition: IsoTrig.cc:164
T getUntrackedParameter(std::string const &, T const &) const
std::string theTrackQuality_
Definition: IsoTrig.cc:160
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > tok_l2cand_
Definition: IsoTrig.cc:184
const edm::InputTag l2CandTag_
Definition: IsoTrig.cc:152
std::vector< double > * t_NFTrkMinDR
Definition: IsoTrig.cc:242
std::vector< bool > * t_NFTrkMissFlag
Definition: IsoTrig.cc:246
const bool doChgIsolTree_
Definition: IsoTrig.cc:155
edm::EDGetTokenT< LumiDetails > tok_lumi_
Definition: IsoTrig.cc:168
std::vector< bool > * t_PixTrkcandselTk
Definition: IsoTrig.cc:230
const double a_charIsoR_
Definition: IsoTrig.cc:164
const double a_neutR2_
Definition: IsoTrig.cc:165
TrackQuality
track quality
Definition: TrackBase.h:150
std::vector< double > * t_NFTrkcandEta
Definition: IsoTrig.cc:239
std::vector< double > * t_NFcandP
Definition: IsoTrig.cc:232
const int verbosity_
Definition: IsoTrig.cc:156
const int maxRunNo_
Definition: IsoTrig.cc:167
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsoTrig.cc:175
const double a_neutIsoR_
Definition: IsoTrig.cc:164
std::vector< int > * t_nPixSeed
Definition: IsoTrig.cc:209
std::vector< double > * t_TrkhCone
Definition: IsoTrig.cc:212
double rEB_
Definition: IsoTrig.cc:162
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > tok_pixtk_
Definition: IsoTrig.cc:182
std::vector< bool > * t_NFTrkqltyFlag
Definition: IsoTrig.cc:245
std::vector< double > * t_PixTrkcandMaxP
Definition: IsoTrig.cc:229
const double minPTrackValue_
Definition: IsoTrig.cc:158
std::vector< bool > * t_NFTrkselTkFlag
Definition: IsoTrig.cc:244
const double a_mipR_
Definition: IsoTrig.cc:165
std::vector< double > * t_PixcandP
Definition: IsoTrig.cc:220
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
Definition: IsoTrig.cc:169
const double tauUnbiasCone_
Definition: IsoTrig.cc:159
std::vector< bool > * t_NFTrkMipFlag
Definition: IsoTrig.cc:251
const double dr_L1_
Definition: IsoTrig.cc:164
std::vector< double > * t_NFTrkMinDP1
Definition: IsoTrig.cc:243
const std::vector< edm::InputTag > pixelTracksSources_
Definition: IsoTrig.cc:153
HLTPrescaleProvider hltPrescaleProvider_
Definition: IsoTrig.cc:150
const bool doMipCutTree_
Definition: IsoTrig.cc:154
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
Definition: IsoTrig.cc:170
std::vector< double > * t_NFTrkcandP
Definition: IsoTrig.cc:237
edm::EDGetTokenT< SeedingLayerSetsHits > tok_SeedingLayerHB_
Definition: IsoTrig.cc:179
std::vector< bool > * t_TrkNuIsolFlag
Definition: IsoTrig.cc:218
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
Definition: IsoTrig.cc:188
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: IsoTrig.cc:174
const double prelimCone_
Definition: IsoTrig.cc:159
std::vector< bool > * t_TrkPVFlag
Definition: IsoTrig.cc:217
std::vector< double > * t_ECone
Definition: IsoTrig.cc:252
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsoTrig.cc:172
const double a_neutR1_
Definition: IsoTrig.cc:165
double zEE_
Definition: IsoTrig.cc:162
std::vector< bool > * t_NFTrkChgIsoFlag
Definition: IsoTrig.cc:249
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tok_pixtks_
Definition: IsoTrig.cc:185
std::vector< double > * t_TrkP
Definition: IsoTrig.cc:213
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
std::vector< double > * t_NFcandEta
Definition: IsoTrig.cc:234
edm::EDGetTokenT< SeedingLayerSetsHits > tok_SeedingLayerHE_
Definition: IsoTrig.cc:180
std::vector< double > * t_timeL2Prod
Definition: IsoTrig.cc:207
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsoTrig.cc:176
std::vector< double > * t_PixcandPt
Definition: IsoTrig.cc:221
std::vector< double > * t_NFcandEmip
Definition: IsoTrig.cc:236
const bool doTrkResTree_
Definition: IsoTrig.cc:155
std::vector< bool > * t_NFTrkPropFlag
Definition: IsoTrig.cc:248
std::vector< double > * t_NFTrkcandPhi
Definition: IsoTrig.cc:240
const double cutCharge_
Definition: IsoTrig.cc:166
std::vector< bool > * t_TrkMissFlag
Definition: IsoTrig.cc:216
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: IsoTrig.cc:173
std::vector< int > * t_nPixCand
Definition: IsoTrig.cc:208
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
std::vector< double > * t_NFTrkcandPt
Definition: IsoTrig.cc:238
const bool doStudyIsol_
Definition: IsoTrig.cc:155
const edm::InputTag pixCandTag_
Definition: IsoTrig.cc:152
std::vector< double > * t_PixTrkcandPt
Definition: IsoTrig.cc:226
edm::EDGetTokenT< reco::VertexCollection > tok_verthb_
Definition: IsoTrig.cc:178
std::vector< double > * t_NFcandPt
Definition: IsoTrig.cc:233
const int minRunNo_
Definition: IsoTrig.cc:167
std::vector< bool > * t_TrkqltyFlag
Definition: IsoTrig.cc:215
const std::string processName_
Definition: IsoTrig.cc:161
std::vector< std::vector< double > > * t_PixcandMaxP
Definition: IsoTrig.cc:224
std::vector< double > * t_NFTrkcandEmip
Definition: IsoTrig.cc:241
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_l1cand_
Definition: IsoTrig.cc:183
const double vtxCutIsol_
Definition: IsoTrig.cc:158
const edm::InputTag l1CandTag_
Definition: IsoTrig.cc:152
edm::EDGetTokenT< SiPixelRecHitCollection > tok_SiPixelRecHits_
Definition: IsoTrig.cc:181
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsoTrig.cc:177
std::vector< double > * t_PixcandEta
Definition: IsoTrig.cc:222
reco::TrackBase::TrackQuality minQuality
std::vector< bool > * t_NFTrkNeuIsoFlag
Definition: IsoTrig.cc:250
std::vector< double > * t_PixcandPhi
Definition: IsoTrig.cc:223
const bool doTiming_
Definition: IsoTrig.cc:154
std::vector< double > * t_PixTrkcandEta
Definition: IsoTrig.cc:227
std::vector< int > * t_nGoodTk
Definition: IsoTrig.cc:210
edm::EDGetTokenT< reco::VertexCollection > tok_verthe_
Definition: IsoTrig.cc:178
const std::vector< double > pixelIsolationConeSizeAtEC_
Definition: IsoTrig.cc:157
const double cutMip_
Definition: IsoTrig.cc:165
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_hlt_
Definition: IsoTrig.cc:171
const double cutNeutral_
Definition: IsoTrig.cc:166
double pLimits_[6]
Definition: IsoTrig.cc:204
std::vector< bool > * t_TrkselTkFlag
Definition: IsoTrig.cc:214
const std::vector< std::string > trigNames_
Definition: IsoTrig.cc:151
const double vtxCutSeed_
Definition: IsoTrig.cc:158
const bool doL2L3_
Definition: IsoTrig.cc:154
std::vector< double > * t_NFcandPhi
Definition: IsoTrig.cc:235
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
Definition: IsoTrig.cc:187
IsoTrig::~IsoTrig ( )
override

Definition at line 424 of file IsoTrig.cc.

References t_ECone, t_NFcandEmip, t_NFcandEta, t_NFcandP, t_NFcandPhi, t_NFcandPt, t_NFTrkcandEmip, t_NFTrkcandEta, t_NFTrkcandP, t_NFTrkcandPhi, t_NFTrkcandPt, t_NFTrkChgIsoFlag, t_NFTrkMinDP1, t_NFTrkMinDR, t_NFTrkMipFlag, t_NFTrkMissFlag, t_NFTrkNeuIsoFlag, t_NFTrkPropFlag, t_NFTrkPVFlag, t_NFTrkqltyFlag, t_NFTrkselTkFlag, t_nGoodTk, t_nPixCand, t_nPixSeed, t_PixcandEta, t_PixcandMaxP, t_PixcandP, t_PixcandPhi, t_PixcandPt, t_PixTrkcandEta, t_PixTrkcandMaxP, t_PixTrkcandP, t_PixTrkcandPhi, t_PixTrkcandPt, t_PixTrkcandselTk, t_timeL2Prod, t_TrkhCone, t_TrkMissFlag, t_TrkNuIsolFlag, t_TrkP, t_TrkPVFlag, t_TrkqltyFlag, and t_TrkselTkFlag.

424  {
425  // do anything here that needs to be done at desctruction time
426  // (e.g. close files, deallocate resources etc.)
427  if (t_timeL2Prod)
428  delete t_timeL2Prod;
429  if (t_nPixCand)
430  delete t_nPixCand;
431  if (t_nPixSeed)
432  delete t_nPixSeed;
433  if (t_nGoodTk)
434  delete t_nGoodTk;
435  if (t_TrkhCone)
436  delete t_TrkhCone;
437  if (t_TrkP)
438  delete t_TrkP;
439  if (t_TrkselTkFlag)
440  delete t_TrkselTkFlag;
441  if (t_TrkqltyFlag)
442  delete t_TrkqltyFlag;
443  if (t_TrkMissFlag)
444  delete t_TrkMissFlag;
445  if (t_TrkPVFlag)
446  delete t_TrkPVFlag;
447  if (t_TrkNuIsolFlag)
448  delete t_TrkNuIsolFlag;
449  if (t_PixcandP)
450  delete t_PixcandP;
451  if (t_PixcandPt)
452  delete t_PixcandPt;
453  if (t_PixcandEta)
454  delete t_PixcandEta;
455  if (t_PixcandPhi)
456  delete t_PixcandPhi;
457  if (t_PixcandMaxP)
458  delete t_PixcandMaxP;
459  if (t_PixTrkcandP)
460  delete t_PixTrkcandP;
461  if (t_PixTrkcandPt)
462  delete t_PixTrkcandPt;
463  if (t_PixTrkcandEta)
464  delete t_PixTrkcandEta;
465  if (t_PixTrkcandPhi)
466  delete t_PixTrkcandPhi;
467  if (t_PixTrkcandMaxP)
468  delete t_PixTrkcandMaxP;
469  if (t_PixTrkcandselTk)
470  delete t_PixTrkcandselTk;
471  if (t_NFcandP)
472  delete t_NFcandP;
473  if (t_NFcandPt)
474  delete t_NFcandPt;
475  if (t_NFcandEta)
476  delete t_NFcandEta;
477  if (t_NFcandPhi)
478  delete t_NFcandPhi;
479  if (t_NFcandEmip)
480  delete t_NFcandEmip;
481  if (t_NFTrkcandP)
482  delete t_NFTrkcandP;
483  if (t_NFTrkcandPt)
484  delete t_NFTrkcandPt;
485  if (t_NFTrkcandEta)
486  delete t_NFTrkcandEta;
487  if (t_NFTrkcandPhi)
488  delete t_NFTrkcandPhi;
489  if (t_NFTrkcandEmip)
490  delete t_NFTrkcandEmip;
491  if (t_NFTrkMinDR)
492  delete t_NFTrkMinDR;
493  if (t_NFTrkMinDP1)
494  delete t_NFTrkMinDP1;
495  if (t_NFTrkselTkFlag)
496  delete t_NFTrkselTkFlag;
497  if (t_NFTrkqltyFlag)
498  delete t_NFTrkqltyFlag;
499  if (t_NFTrkMissFlag)
500  delete t_NFTrkMissFlag;
501  if (t_NFTrkPVFlag)
502  delete t_NFTrkPVFlag;
503  if (t_NFTrkPropFlag)
504  delete t_NFTrkPropFlag;
505  if (t_NFTrkChgIsoFlag)
506  delete t_NFTrkChgIsoFlag;
507  if (t_NFTrkNeuIsoFlag)
508  delete t_NFTrkNeuIsoFlag;
509  if (t_NFTrkMipFlag)
510  delete t_NFTrkMipFlag;
511  if (t_ECone)
512  delete t_ECone;
513 }
std::vector< bool > * t_NFTrkPVFlag
Definition: IsoTrig.cc:247
std::vector< double > * t_PixTrkcandPhi
Definition: IsoTrig.cc:228
std::vector< double > * t_PixTrkcandP
Definition: IsoTrig.cc:225
std::vector< double > * t_NFTrkMinDR
Definition: IsoTrig.cc:242
std::vector< bool > * t_NFTrkMissFlag
Definition: IsoTrig.cc:246
std::vector< bool > * t_PixTrkcandselTk
Definition: IsoTrig.cc:230
std::vector< double > * t_NFTrkcandEta
Definition: IsoTrig.cc:239
std::vector< double > * t_NFcandP
Definition: IsoTrig.cc:232
std::vector< int > * t_nPixSeed
Definition: IsoTrig.cc:209
std::vector< double > * t_TrkhCone
Definition: IsoTrig.cc:212
std::vector< bool > * t_NFTrkqltyFlag
Definition: IsoTrig.cc:245
std::vector< double > * t_PixTrkcandMaxP
Definition: IsoTrig.cc:229
std::vector< bool > * t_NFTrkselTkFlag
Definition: IsoTrig.cc:244
std::vector< double > * t_PixcandP
Definition: IsoTrig.cc:220
std::vector< bool > * t_NFTrkMipFlag
Definition: IsoTrig.cc:251
std::vector< double > * t_NFTrkMinDP1
Definition: IsoTrig.cc:243
std::vector< double > * t_NFTrkcandP
Definition: IsoTrig.cc:237
std::vector< bool > * t_TrkNuIsolFlag
Definition: IsoTrig.cc:218
std::vector< bool > * t_TrkPVFlag
Definition: IsoTrig.cc:217
std::vector< double > * t_ECone
Definition: IsoTrig.cc:252
std::vector< bool > * t_NFTrkChgIsoFlag
Definition: IsoTrig.cc:249
std::vector< double > * t_TrkP
Definition: IsoTrig.cc:213
std::vector< double > * t_NFcandEta
Definition: IsoTrig.cc:234
std::vector< double > * t_timeL2Prod
Definition: IsoTrig.cc:207
std::vector< double > * t_PixcandPt
Definition: IsoTrig.cc:221
std::vector< double > * t_NFcandEmip
Definition: IsoTrig.cc:236
std::vector< bool > * t_NFTrkPropFlag
Definition: IsoTrig.cc:248
std::vector< double > * t_NFTrkcandPhi
Definition: IsoTrig.cc:240
std::vector< bool > * t_TrkMissFlag
Definition: IsoTrig.cc:216
std::vector< int > * t_nPixCand
Definition: IsoTrig.cc:208
std::vector< double > * t_NFTrkcandPt
Definition: IsoTrig.cc:238
std::vector< double > * t_PixTrkcandPt
Definition: IsoTrig.cc:226
std::vector< double > * t_NFcandPt
Definition: IsoTrig.cc:233
std::vector< bool > * t_TrkqltyFlag
Definition: IsoTrig.cc:215
std::vector< std::vector< double > > * t_PixcandMaxP
Definition: IsoTrig.cc:224
std::vector< double > * t_NFTrkcandEmip
Definition: IsoTrig.cc:241
std::vector< double > * t_PixcandEta
Definition: IsoTrig.cc:222
std::vector< bool > * t_NFTrkNeuIsoFlag
Definition: IsoTrig.cc:250
std::vector< double > * t_PixcandPhi
Definition: IsoTrig.cc:223
std::vector< double > * t_PixTrkcandEta
Definition: IsoTrig.cc:227
std::vector< int > * t_nGoodTk
Definition: IsoTrig.cc:210
std::vector< bool > * t_TrkselTkFlag
Definition: IsoTrig.cc:214
std::vector< double > * t_NFcandPhi
Definition: IsoTrig.cc:235

Member Function Documentation

void IsoTrig::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 563 of file IsoTrig.cc.

References barrelRecHitsHandle_, beamSpotH_, SQLiteEnsembleGenerator_cfg::BField, bField_, bfVal_, edm::EventBase::bunchCrossing(), changed_, chgIsolation(), clear(), doChgIsolTree_, doL2L3_, doMipCutTree_, doStudyIsol_, doTiming_, doTrkResTree_, endcapRecHitsHandle_, trigger::TriggerObject::energy(), trigger::TriggerObject::eta(), fastmath::etaphi(), etaPhiTrigger(), edm::EventID::event(), trigger::TriggerEvent::filterKeys(), trigger::TriggerEvent::filterTag(), spr::find(), geo_, edm::LuminosityBlock::getByToken(), edm::Event::getByToken(), edm::EventSetup::getData(), getGoodTracks(), edm::Event::getLuminosityBlock(), trigger::TriggerEvent::getObjects(), h_Filters, h_HLT, h_L1ObjEnergy, h_nHLT, h_nL3Objs, h_Pre, h_PreHLT, h_PreHLTwt, h_PreL1, h_PreL1wt, hbhe_, ValidationMatrix::hlt, HltComparatorCreateWorkflow::hltConfig, HLTPrescaleProvider::hltConfigProvider(), hltPrescaleProvider_, mps_fire::i, trigger::TriggerObject::id(), edm::EventBase::id(), recoMuon::in, MagneticField::inTesla(), edm::HandleBase::isValid(), gpuVertexFinder::iv, LumiDetails::kOCC1, label, edm::InputTag::label(), leadPV_, edm::EventBase::luminosityBlock(), FastTimerService_cff::lumiProducer, PV3DBase< T, PVType, FrameType >::mag(), trigger::TriggerObject::mass(), HLTConfigProvider::moduleLabels(), TrackingSourceConfig_Tier0_Cosmic_cff::modules, dqmiodumpmetadata::n, trigger::TriggerObject::phi(), pixelTrackRefsHB_, pixelTrackRefsHE_, pixelTracksSources_, makeHLTPrescaleTable::prescales, HLTPrescaleProvider::prescaleValues(), edm::Handle< T >::product(), trigger::TriggerObject::pt(), trigger::TriggerObject::px(), trigger::TriggerObject::py(), trigger::TriggerObject::pz(), recVtxs_, edm::EventID::run(), HLTConfigProvider::size(), findQualityFiles::size, trigger::TriggerEvent::sizeFilters(), AlCaHLTBitMon_QueryRunRegistry::string, studyIsolation(), studyMipCut(), studyTiming(), studyTrigger(), StudyTrkEbyP(), tok_bs_, tok_EB_, tok_EE_, tok_genTrack_, tok_geom_, tok_hbhe_, tok_l1cand_, tok_l2cand_, tok_lumi_, tok_magField_, tok_pixtk_, tok_pixtks_, tok_recVtx_, tok_trigEvt_, tok_trigRes_, HLTConfigProvider::triggerIndex(), edm::TriggerNames::triggerNames(), L1TMuonDQMOffline_cfi::triggerNames, edm::Event::triggerNames(), triggerResults, trigList_, trigNames_, trigPreList_, vec_, verbosity_, x, y, and z.

563  {
564  if (verbosity_ % 10 > 0)
565  edm::LogVerbatim("IsoTrack") << "Event starts====================================";
566 
567  int RunNo = iEvent.id().run();
568 
570 
571  bField_ = &iSetup.getData(tok_magField_);
572  geo_ = &iSetup.getData(tok_geom_);
574  bfVal_ = BField.mag();
575 
576  trigger::TriggerEvent triggerEvent;
577  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
578  iEvent.getByToken(tok_trigEvt_, triggerEventHandle);
579  if (!triggerEventHandle.isValid()) {
580  edm::LogWarning("IsoTrack") << "Error! Can't get the product hltTriggerSummaryAOD";
581 
582  } else {
583  triggerEvent = *(triggerEventHandle.product());
584  }
585  const trigger::TriggerObjectCollection &TOC(triggerEvent.getObjects());
588  iEvent.getByToken(tok_trigRes_, triggerResults);
589 
591  iEvent.getByToken(tok_genTrack_, trkCollection);
592 
595 
596  iEvent.getByToken(tok_hbhe_, hbhe_);
597 
599  iEvent.getByToken(tok_bs_, beamSpotH_);
600  if (!recVtxs_->empty() && !((*recVtxs_)[0].isFake())) {
601  leadPV_ = math::XYZPoint((*recVtxs_)[0].x(), (*recVtxs_)[0].y(), (*recVtxs_)[0].z());
602  } else if (beamSpotH_.isValid()) {
603  leadPV_ = beamSpotH_->position();
604  }
605 
606  if ((verbosity_ / 100) % 10 > 0) {
607  edm::LogVerbatim("IsoTrack") << "Primary Vertex " << leadPV_;
608  if (beamSpotH_.isValid())
609  edm::LogVerbatim("IsoTrack") << "Beam Spot " << beamSpotH_->position();
610  }
611  pixelTrackRefsHE_.clear();
612  pixelTrackRefsHB_.clear();
613  for (unsigned int iPix = 0; iPix < pixelTracksSources_.size(); iPix++) {
615  iEvent.getByToken(tok_pixtks_[iPix], iPixCol);
616  if (iPixCol.isValid()) {
617  for (reco::TrackCollection::const_iterator pit = iPixCol->begin(); pit != iPixCol->end(); pit++) {
618  if (iPix == 0)
619  pixelTrackRefsHB_.push_back(reco::TrackRef(iPixCol, pit - iPixCol->begin()));
620  pixelTrackRefsHE_.push_back(reco::TrackRef(iPixCol, pit - iPixCol->begin()));
621  }
622  }
623  }
624  if (doTiming_)
625  getGoodTracks(iEvent, trkCollection);
626 
627  for (unsigned int ifilter = 0; ifilter < triggerEvent.sizeFilters(); ++ifilter) {
628  std::string FilterNames[7] = {"hltL1sL1SingleJet68",
629  "hltIsolPixelTrackL2FilterHE",
630  "ecalIsolPixelTrackFilterHE",
631  "hltIsolPixelTrackL3FilterHE",
632  "hltIsolPixelTrackL2FilterHB",
633  "ecalIsolPixelTrackFilterHB",
634  "hltIsolPixelTrackL3FilterHB"};
635  std::string label = triggerEvent.filterTag(ifilter).label();
636  for (int i = 0; i < 7; i++) {
637  if (label == FilterNames[i])
638  h_Filters->Fill(i);
639  }
640  }
641  edm::InputTag lumiProducer("LumiProducer", "", "RECO");
643  iEvent.getLuminosityBlock().getByToken(tok_lumi_, Lumid);
644  float mybxlumi = -1;
645  if (Lumid.isValid())
646  mybxlumi = Lumid->lumiValue(LumiDetails::kOCC1, iEvent.bunchCrossing()) * 6.37;
647  if (verbosity_ % 10 > 0)
648  edm::LogVerbatim("IsoTrack") << "RunNo " << RunNo << " EvtNo " << iEvent.id().event() << " Lumi "
649  << iEvent.luminosityBlock() << " Bunch " << iEvent.bunchCrossing() << " mybxlumi "
650  << mybxlumi;
651  if (!triggerResults.isValid()) {
652  edm::LogWarning("IsoTrack") << "Error! Can't get the product triggerResults";
653  // std::shared_ptr<cms::Exception> const & error = triggerResults.whyFailed();
654  // edm::LogWarning(error->category()) << error->what();
655  } else {
656  std::vector<std::string> modules;
657  h_nHLT->Fill(triggerResults->size());
658  const edm::TriggerNames &triggerNames = iEvent.triggerNames(*triggerResults);
659 
660  const std::vector<std::string> &triggerNames_ = triggerNames.triggerNames();
661  if (verbosity_ % 10 > 1)
662  edm::LogVerbatim("IsoTrack") << "number of HLTs " << triggerNames_.size();
663  int hlt(-1), preL1(-1), preHLT(-1), prescale(-1);
664  for (unsigned int i = 0; i < triggerResults->size(); i++) {
665  unsigned int triggerindx = hltConfig.triggerIndex(triggerNames_[i]);
666  const std::vector<std::string> &moduleLabels(hltConfig.moduleLabels(triggerindx));
667 
668  for (unsigned int in = 0; in < trigNames_.size(); ++in) {
669  // if (triggerNames_[i].find(trigNames_[in].c_str())!=std::string::npos || triggerNames_[i]==" ") {
670  if (triggerNames_[i].find(trigNames_[in]) != std::string::npos) {
671  if (verbosity_ % 10 > 0)
672  edm::LogVerbatim("IsoTrack") << "trigger that i want " << triggerNames_[i] << " accept "
673  << triggerResults->accept(i);
674  hlt = triggerResults->accept(i);
675  h_HLT->Fill(hlt);
676  // if (hlt>0 || triggerNames_[i]==" ") {
677  if (hlt > 0) {
679  iEvent.getByToken(tok_pixtk_, Pixcands);
681  iEvent.getByToken(tok_l1cand_, L1cands);
682 
683  const std::pair<int, int> prescales(hltPrescaleProvider_.prescaleValues(iEvent, iSetup, triggerNames_[i]));
684  preL1 = prescales.first;
685  preHLT = prescales.second;
686  prescale = preL1 * preHLT;
687  if (verbosity_ % 10 > 0)
688  edm::LogVerbatim("IsoTrack")
689  << triggerNames_[i] << " accept " << hlt << " preL1 " << preL1 << " preHLT " << preHLT;
690  for (int iv = 0; iv < 3; ++iv)
691  vec_[iv].clear();
692  if (trigList_.find(RunNo) != trigList_.end()) {
693  trigList_[RunNo] += 1;
694  } else {
695  trigList_.insert(std::pair<unsigned int, unsigned int>(RunNo, 1));
696  trigPreList_.insert(std::pair<unsigned int, std::pair<int, int>>(RunNo, prescales));
697  }
698  //loop over all trigger filters in event (i.e. filters passed)
699  for (unsigned int ifilter = 0; ifilter < triggerEvent.sizeFilters(); ++ifilter) {
700  std::vector<int> Keys;
701  std::string label = triggerEvent.filterTag(ifilter).label();
702  //loop over keys to objects passing this filter
703  for (unsigned int imodule = 0; imodule < moduleLabels.size(); imodule++) {
704  if (label.find(moduleLabels[imodule]) != std::string::npos) {
705  if (verbosity_ % 10 > 0)
706  edm::LogVerbatim("IsoTrack") << "FILTERNAME " << label;
707  for (unsigned int ifiltrKey = 0; ifiltrKey < triggerEvent.filterKeys(ifilter).size(); ++ifiltrKey) {
708  Keys.push_back(triggerEvent.filterKeys(ifilter)[ifiltrKey]);
709  const trigger::TriggerObject &TO(TOC[Keys[ifiltrKey]]);
710  math::XYZTLorentzVector v4(TO.px(), TO.py(), TO.pz(), TO.energy());
711  if (label.find("L2Filter") != std::string::npos) {
712  vec_[1].push_back(v4);
713  } else if (label.find("L3Filter") != std::string::npos) {
714  vec_[2].push_back(v4);
715  } else {
716  vec_[0].push_back(v4);
717  h_L1ObjEnergy->Fill(TO.energy());
718  }
719  if (verbosity_ % 10 > 0)
720  edm::LogVerbatim("IsoTrack") << "key " << ifiltrKey << " : pt " << TO.pt() << " eta " << TO.eta()
721  << " phi " << TO.phi() << " mass " << TO.mass() << " Id " << TO.id();
722  }
723  }
724  }
725  }
726  std::vector<reco::TrackCollection::const_iterator> goodTks;
727  if (doL2L3_) {
728  h_nL3Objs->Fill(vec_[2].size());
729  studyTrigger(trkCollection, goodTks);
730  } else {
731  if (trkCollection.isValid()) {
732  reco::TrackCollection::const_iterator trkItr;
733  for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); trkItr++)
734  goodTks.push_back(trkItr);
735  }
736  }
737  // Now study isolation etc
738  if (doStudyIsol_)
739  studyIsolation(trkCollection, goodTks);
740  if (doTrkResTree_)
741  StudyTrkEbyP(trkCollection);
742 
743  std::pair<double, double> etaphi = etaPhiTrigger();
745  iEvent.getByToken(tok_l2cand_, L2cands);
746  if (!L2cands.isValid()) {
747  if (verbosity_ % 10 > 0)
748  edm::LogVerbatim("IsoTrack") << " trigCand is not valid ";
749  } else {
750  if (doMipCutTree_)
751  studyMipCut(trkCollection, L2cands);
752  }
753  if (!pixelTracksSources_.empty())
754  if (doChgIsolTree_ && !pixelTrackRefsHE_.empty())
755  chgIsolation(etaphi.first, etaphi.second, trkCollection, iEvent);
756  }
757  break;
758  }
759  }
760  }
761  h_PreL1->Fill(preL1);
762  h_PreHLT->Fill(preHLT);
763  h_Pre->Fill(prescale);
764  h_PreL1wt->Fill(preL1, mybxlumi);
765  h_PreHLTwt->Fill(preHLT, mybxlumi);
766 
767  // check if trigger names in (new) config
768  // edm::LogVerbatim("IsoTrack") << "changed " << changed_;
769  if (changed_) {
770  changed_ = false;
771  if ((verbosity_ / 10) % 10 > 1) {
772  edm::LogVerbatim("IsoTrack") << "New trigger menu found !!!";
773  const unsigned int n(hltConfig.size());
774  for (unsigned itrig = 0; itrig < triggerNames_.size(); itrig++) {
775  unsigned int triggerindx = hltConfig.triggerIndex(triggerNames_[itrig]);
776  if (triggerindx >= n)
777  edm::LogVerbatim("IsoTrack") << triggerNames_[itrig] << " " << triggerindx << " does not exist in"
778  << " the current menu";
779  else
780  edm::LogVerbatim("IsoTrack") << triggerNames_[itrig] << " " << triggerindx << " exists";
781  }
782  }
783  }
784  }
785  if (doTiming_)
786  studyTiming(iEvent);
787 }
RunNumber_t run() const
Definition: EventID.h:38
unsigned int size() const
number of trigger paths in trigger table
std::pair< T, T > etaphi(T x, T y, T z)
Definition: FastMath.h:162
bool changed_
Definition: IsoTrig.cc:203
Log< level::Info, true > LogVerbatim
EventNumber_t event() const
Definition: EventID.h:40
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > tok_l2cand_
Definition: IsoTrig.cc:184
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: IsoTrig.cc:193
int32_t *__restrict__ iv
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
trigger::size_type sizeFilters() const
Definition: TriggerEvent.h:146
void chgIsolation(double &etaTriggered, double &phiTriggered, edm::Handle< reco::TrackCollection > &trkCollection, const edm::Event &theEvent)
Definition: IsoTrig.cc:1829
const bool doChgIsolTree_
Definition: IsoTrig.cc:155
edm::EDGetTokenT< LumiDetails > tok_lumi_
Definition: IsoTrig.cc:168
edm::Handle< HBHERecHitCollection > hbhe_
Definition: IsoTrig.cc:191
std::vector< reco::TrackRef > pixelTrackRefsHB_
Definition: IsoTrig.cc:190
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void studyIsolation(edm::Handle< reco::TrackCollection > &, std::vector< reco::TrackCollection::const_iterator > &)
Definition: IsoTrig.cc:1688
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
activeDets clear()
const int verbosity_
Definition: IsoTrig.cc:156
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
Definition: IsoTrig.cc:175
const Keys & filterKeys(trigger::size_type index) const
Definition: TriggerEvent.h:118
std::map< unsigned int, const std::pair< int, int > > trigPreList_
Definition: IsoTrig.cc:202
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
int bunchCrossing() const
Definition: EventBase.h:64
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:61
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: IsoTrig.cc:192
edm::EDGetTokenT< reco::IsolatedPixelTrackCandidateCollection > tok_pixtk_
Definition: IsoTrig.cc:182
edm::Handle< reco::BeamSpot > beamSpotH_
Definition: IsoTrig.cc:194
std::vector< math::XYZTLorentzVector > vec_[3]
Definition: IsoTrig.cc:267
TH1I * h_HLT
Definition: IsoTrig.cc:256
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::pair< double, double > etaPhiTrigger()
Definition: IsoTrig.cc:2137
Strings const & triggerNames() const
Definition: TriggerNames.cc:48
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt_
Definition: IsoTrig.cc:169
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
Definition: Event.cc:275
unsigned int triggerIndex(const std::string &triggerName) const
slot position of trigger path in trigger table (0 to size-1)
Single trigger physics object (e.g., an isolated muon)
Definition: TriggerObject.h:21
bool getData(T &iHolder) const
Definition: EventSetup.h:122
TH1D * h_L1ObjEnergy
Definition: IsoTrig.cc:258
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
const std::vector< edm::InputTag > pixelTracksSources_
Definition: IsoTrig.cc:153
void studyMipCut(edm::Handle< reco::TrackCollection > &trkCollection, edm::Handle< reco::IsolatedPixelTrackCandidateCollection > &L2cands)
Definition: IsoTrig.cc:1441
char const * label
HLTPrescaleProvider hltPrescaleProvider_
Definition: IsoTrig.cc:150
const bool doMipCutTree_
Definition: IsoTrig.cc:154
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes_
Definition: IsoTrig.cc:170
T mag() const
Definition: PV3DBase.h:64
void studyTrigger(edm::Handle< reco::TrackCollection > &, std::vector< reco::TrackCollection::const_iterator > &)
Definition: IsoTrig.cc:1574
TH1I * h_nHLT
Definition: IsoTrig.cc:256
std::map< unsigned int, unsigned int > trigList_
Definition: IsoTrig.cc:201
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
Definition: IsoTrig.cc:188
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
Definition: IsoTrig.cc:174
const TriggerObjectCollection & getObjects() const
Definition: TriggerEvent.h:101
std::pair< TL1, THLT > prescaleValues(const edm::Event &iEvent, const edm::EventSetup &iSetup, const std::string &trigger)
Combined L1T (pair.first) and HLT (pair.second) prescales per HLT path.
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
Definition: IsoTrig.cc:172
TH1I * h_Pre
Definition: IsoTrig.cc:257
TH1I * h_PreHLT
Definition: IsoTrig.cc:256
std::vector< edm::EDGetTokenT< reco::TrackCollection > > tok_pixtks_
Definition: IsoTrig.cc:185
TH1I * h_Filters
Definition: IsoTrig.cc:257
LuminosityBlock const & getLuminosityBlock() const
Definition: Event.h:100
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
Definition: IsoTrig.cc:176
static std::string const triggerResults
Definition: EdmProvDump.cc:44
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
bool isValid() const
Definition: HandleBase.h:70
TH1D * h_PreL1wt
Definition: IsoTrig.cc:258
void studyTiming(const edm::Event &theEvent)
Definition: IsoTrig.cc:1330
const bool doTrkResTree_
Definition: IsoTrig.cc:155
std::vector< reco::TrackRef > pixelTrackRefsHE_
Definition: IsoTrig.cc:190
const std::vector< std::string > & moduleLabels(unsigned int trigger) const
label(s) of module(s) on a trigger path
TH1I * h_PreL1
Definition: IsoTrig.cc:256
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:75
const edm::InputTag filterTag(trigger::size_type index) const
Definition: TriggerEvent.h:108
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
Definition: IsoTrig.cc:173
void StudyTrkEbyP(edm::Handle< reco::TrackCollection > &trkCollection)
Definition: IsoTrig.cc:1206
T const * product() const
Definition: Handle.h:70
const bool doStudyIsol_
Definition: IsoTrig.cc:155
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::vector< size_type > Keys
edm::Handle< reco::VertexCollection > recVtxs_
Definition: IsoTrig.cc:195
HLTConfigProvider const & hltConfigProvider() const
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_l1cand_
Definition: IsoTrig.cc:183
edm::EventID id() const
Definition: EventBase.h:59
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
Definition: IsoTrig.cc:177
const MagneticField * bField_
Definition: IsoTrig.cc:197
const bool doTiming_
Definition: IsoTrig.cc:154
Log< level::Warning, false > LogWarning
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
TH1I * h_nL3Objs
Definition: IsoTrig.cc:257
void getGoodTracks(const edm::Event &, edm::Handle< reco::TrackCollection > &)
Definition: IsoTrig.cc:1956
const std::vector< std::string > trigNames_
Definition: IsoTrig.cc:151
tuple size
Write out results.
double bfVal_
Definition: IsoTrig.cc:162
TH1D * h_PreHLTwt
Definition: IsoTrig.cc:258
const bool doL2L3_
Definition: IsoTrig.cc:154
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
Definition: IsoTrig.cc:187
void IsoTrig::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 878 of file IsoTrig.cc.

References ChgIsolnTree_, cuts, isotrackNtupler::cuts2, doChgIsolTree_, doL2L3_, doMipCutTree_, doTiming_, doTrkResTree_, fs_, h_dEta, h_dEtaL1, h_dinvPt, h_dP, h_dPhi, h_dPhiL1, h_dPt, h_dRL1, h_eCalo, h_eHcal, h_eMaxNearP, h_eMip, h_eNeutIso, h_EnIn, h_EnOut, h_eta, h_etaCalibTracks, h_etaMipTracks, h_Filters, h_HLT, h_L1ObjEnergy, h_mindR, h_MipEnMatch, h_MipEnNoMatch, h_nHLT, h_nL3Objs, h_p, h_phi, h_Pre, h_PreHLT, h_PreHLTwt, h_PreL1, h_PreL1wt, h_pt, mps_fire::i, jetCorrFactors_cfi::levels, TFileService::make(), MipCutTree_, pLimits_, AlCaHLTBitMon_QueryRunRegistry::string, t_ECone, t_NFcandEmip, t_NFcandEta, t_NFcandP, t_NFcandPhi, t_NFcandPt, t_NFTrkcandEmip, t_NFTrkcandEta, t_NFTrkcandP, t_NFTrkcandPhi, t_NFTrkcandPt, t_NFTrkChgIsoFlag, t_NFTrkMinDP1, t_NFTrkMinDR, t_NFTrkMipFlag, t_NFTrkMissFlag, t_NFTrkNeuIsoFlag, t_NFTrkPropFlag, t_NFTrkPVFlag, t_NFTrkqltyFlag, t_NFTrkselTkFlag, t_nGoodTk, t_nPixCand, t_nPixSeed, t_PixcandEta, t_PixcandMaxP, t_PixcandP, t_PixcandPhi, t_PixcandPt, t_PixTrkcandEta, t_PixTrkcandMaxP, t_PixTrkcandP, t_PixTrkcandPhi, t_PixTrkcandPt, t_PixTrkcandselTk, t_timeL2Prod, t_TrkhCone, t_TrkMissFlag, t_TrkNuIsolFlag, t_TrkP, t_TrkPVFlag, t_TrkqltyFlag, t_TrkselTkFlag, TimingTree_, and TrkResTree_.

878  {
879  char hname[100], htit[100];
880  std::string levels[20] = {"L1", "L2", "L3", "Reco", "RecoMatch", "RecoNoMatch",
881  "L2Match", "L2NoMatch", "L3Match", "L3NoMatch", "HLTTrk", "HLTGoodTrk",
882  "HLTIsoTrk", "HLTMip", "HLTSelect", "nonHLTTrk", "nonHLTGoodTrk", "nonHLTIsoTrk",
883  "nonHLTMip", "nonHLTSelect"};
884  if (doTiming_) {
885  TimingTree_ = fs_->make<TTree>("TimingTree", "TimingTree");
886  t_timeL2Prod = new std::vector<double>();
887  t_nPixCand = new std::vector<int>();
888  t_nPixSeed = new std::vector<int>();
889  t_nGoodTk = new std::vector<int>();
890 
891  TimingTree_->Branch("t_timeL2Prod", "std::vector<double>", &t_timeL2Prod);
892  TimingTree_->Branch("t_nPixCand", "std::vector<int>", &t_nPixCand);
893  TimingTree_->Branch("t_nPixSeed", "std::vector<int>", &t_nPixSeed);
894  TimingTree_->Branch("t_nGoodTk", "std::vector<int>", &t_nGoodTk);
895  }
896  if (doTrkResTree_) {
897  TrkResTree_ = fs_->make<TTree>("TrkRestree", "TrkResTree");
898  t_TrkhCone = new std::vector<double>();
899  t_TrkP = new std::vector<double>();
900  t_TrkselTkFlag = new std::vector<bool>();
901  t_TrkqltyFlag = new std::vector<bool>();
902  t_TrkMissFlag = new std::vector<bool>();
903  t_TrkPVFlag = new std::vector<bool>();
904  t_TrkNuIsolFlag = new std::vector<bool>();
905 
906  TrkResTree_->Branch("t_TrkhCone", "std::vector<double>", &t_TrkhCone);
907  TrkResTree_->Branch("t_TrkP", "std::vector<double>", &t_TrkP);
908  TrkResTree_->Branch("t_TrkselTkFlag", "std::vector<bool>", &t_TrkselTkFlag);
909  TrkResTree_->Branch("t_TrkqltyFlag", "std::vector<bool>", &t_TrkqltyFlag);
910  TrkResTree_->Branch("t_TrkMissFlag", "std::vector<bool>", &t_TrkMissFlag);
911  TrkResTree_->Branch("t_TrkPVFlag", "std::vector<bool>", &t_TrkPVFlag);
912  TrkResTree_->Branch("t_TrkNuIsolFlag", "std::vector<bool>", &t_TrkNuIsolFlag);
913  }
914  if (doChgIsolTree_) {
915  ChgIsolnTree_ = fs_->make<TTree>("ChgIsolnTree", "ChgIsolnTree");
916  t_PixcandP = new std::vector<double>();
917  t_PixcandPt = new std::vector<double>();
918  t_PixcandEta = new std::vector<double>();
919  t_PixcandPhi = new std::vector<double>();
920  t_PixcandMaxP = new std::vector<std::vector<double>>();
921  t_PixTrkcandP = new std::vector<double>();
922  t_PixTrkcandPt = new std::vector<double>();
923  t_PixTrkcandEta = new std::vector<double>();
924  t_PixTrkcandPhi = new std::vector<double>();
925  t_PixTrkcandMaxP = new std::vector<double>();
926  t_PixTrkcandselTk = new std::vector<bool>();
927 
928  ChgIsolnTree_->Branch("t_PixcandP", "std::vector<double>", &t_PixcandP);
929  ChgIsolnTree_->Branch("t_PixcandPt", "std::vector<double>", &t_PixcandPt);
930  ChgIsolnTree_->Branch("t_PixcandEta", "std::vector<double>", &t_PixcandEta);
931  ChgIsolnTree_->Branch("t_PixcandPhi", "std::vector<double>", &t_PixcandPhi);
932  ChgIsolnTree_->Branch("t_PixcandMaxP", "std::vector<std::vector<double> >", &t_PixcandMaxP);
933  ChgIsolnTree_->Branch("t_PixTrkcandP", "std::vector<double>", &t_PixTrkcandP);
934  ChgIsolnTree_->Branch("t_PixTrkcandPt", "std::vector<double>", &t_PixTrkcandPt);
935  ChgIsolnTree_->Branch("t_PixTrkcandEta", "std::vector<double>", &t_PixTrkcandEta);
936  ChgIsolnTree_->Branch("t_PixTrkcandPhi", "std::vector<double>", &t_PixTrkcandPhi);
937  ChgIsolnTree_->Branch("t_PixTrkcandMaxP", "std::vector<double>", &t_PixTrkcandMaxP);
938  ChgIsolnTree_->Branch("t_PixTrkcandselTk", "std::vector<bool>", &t_PixTrkcandselTk);
939  }
940  if (doMipCutTree_) {
941  MipCutTree_ = fs_->make<TTree>("MipCutTree", "MipCutTree");
942  t_NFcandP = new std::vector<double>();
943  t_NFcandPt = new std::vector<double>();
944  t_NFcandEta = new std::vector<double>();
945  t_NFcandPhi = new std::vector<double>();
946  t_NFcandEmip = new std::vector<double>();
947  t_NFTrkcandP = new std::vector<double>();
948  t_NFTrkcandPt = new std::vector<double>();
949  t_NFTrkcandEta = new std::vector<double>();
950  t_NFTrkcandPhi = new std::vector<double>();
951  t_NFTrkcandEmip = new std::vector<double>();
952  t_NFTrkMinDR = new std::vector<double>();
953  t_NFTrkMinDP1 = new std::vector<double>();
954  t_NFTrkselTkFlag = new std::vector<bool>();
955  t_NFTrkqltyFlag = new std::vector<bool>();
956  t_NFTrkMissFlag = new std::vector<bool>();
957  t_NFTrkPVFlag = new std::vector<bool>();
958  t_NFTrkPropFlag = new std::vector<bool>();
959  t_NFTrkChgIsoFlag = new std::vector<bool>();
960  t_NFTrkNeuIsoFlag = new std::vector<bool>();
961  t_NFTrkMipFlag = new std::vector<bool>();
962  t_ECone = new std::vector<double>();
963 
964  MipCutTree_->Branch("t_NFcandP", "std::vector<double>", &t_NFcandP);
965  MipCutTree_->Branch("t_NFcandPt", "std::vector<double>", &t_NFcandPt);
966  MipCutTree_->Branch("t_NFcandEta", "std::vector<double>", &t_NFcandEta);
967  MipCutTree_->Branch("t_NFcandPhi", "std::vector<double>", &t_NFcandPhi);
968  MipCutTree_->Branch("t_NFcandEmip", "std::vector<double>", &t_NFcandEmip);
969  MipCutTree_->Branch("t_NFTrkcandP", "std::vector<double>", &t_NFTrkcandP);
970  MipCutTree_->Branch("t_NFTrkcandPt", "std::vector<double>", &t_NFTrkcandPt);
971  MipCutTree_->Branch("t_NFTrkcandEta", "std::vector<double>", &t_NFTrkcandEta);
972  MipCutTree_->Branch("t_NFTrkcandPhi", "std::vector<double>", &t_NFTrkcandPhi);
973  MipCutTree_->Branch("t_NFTrkcandEmip", "std::vector<double>", &t_NFTrkcandEmip);
974  MipCutTree_->Branch("t_NFTrkMinDR", "std::vector<double>", &t_NFTrkMinDR);
975  MipCutTree_->Branch("t_NFTrkMinDP1", "std::vector<double>", &t_NFTrkMinDP1);
976  MipCutTree_->Branch("t_NFTrkselTkFlag", "std::vector<bool>", &t_NFTrkselTkFlag);
977  MipCutTree_->Branch("t_NFTrkqltyFlag", "std::vector<bool>", &t_NFTrkqltyFlag);
978  MipCutTree_->Branch("t_NFTrkMissFlag", "std::vector<bool>", &t_NFTrkMissFlag);
979  MipCutTree_->Branch("t_NFTrkPVFlag", "std::vector<bool>", &t_NFTrkPVFlag);
980  MipCutTree_->Branch("t_NFTrkPropFlag", "std::vector<bool>", &t_NFTrkPropFlag);
981  MipCutTree_->Branch("t_NFTrkChgIsoFlag", "std::vector<bool>", &t_NFTrkChgIsoFlag);
982  MipCutTree_->Branch("t_NFTrkNeuIsoFlag", "std::vector<bool>", &t_NFTrkNeuIsoFlag);
983  MipCutTree_->Branch("t_NFTrkMipFlag", "std::vector<bool>", &t_NFTrkMipFlag);
984  MipCutTree_->Branch("t_ECone", "std::vector<double>", &t_ECone);
985  }
986  h_Filters = fs_->make<TH1I>("h_Filters", "Filter Accepts", 10, 0, 10);
987  std::string FilterNames[7] = {"hltL1sL1SingleJet68",
988  "hltIsolPixelTrackL2FilterHE",
989  "ecalIsolPixelTrackFilterHE",
990  "hltIsolPixelTrackL3FilterHE",
991  "hltIsolPixelTrackL2FilterHB",
992  "ecalIsolPixelTrackFilterHB",
993  "hltIsolPixelTrackL3FilterHB"};
994  for (int i = 0; i < 7; i++) {
995  h_Filters->GetXaxis()->SetBinLabel(i + 1, FilterNames[i].c_str());
996  }
997 
998  h_nHLT = fs_->make<TH1I>("h_nHLT", "Size of trigger Names", 1000, 1, 1000);
999  h_HLT = fs_->make<TH1I>("h_HLT", "HLT accept", 3, -1, 2);
1000  h_PreL1 = fs_->make<TH1I>("h_PreL1", "L1 Prescale", 500, 0, 500);
1001  h_PreHLT = fs_->make<TH1I>("h_PreHLT", "HLT Prescale", 50, 0, 50);
1002  h_Pre = fs_->make<TH1I>("h_Pre", "Prescale", 3000, 0, 3000);
1003 
1004  h_PreL1wt = fs_->make<TH1D>("h_PreL1wt", "Weighted L1 Prescale", 500, 0, 500);
1005  h_PreHLTwt = fs_->make<TH1D>("h_PreHLTwt", "Weighted HLT Prescale", 500, 0, 100);
1006  h_L1ObjEnergy = fs_->make<TH1D>("h_L1ObjEnergy", "Energy of L1Object", 500, 0.0, 500.0);
1007 
1008  h_EnIn = fs_->make<TH1D>("h_EnInEcal", "EnergyIn Ecal", 200, 0.0, 20.0);
1009  h_EnOut = fs_->make<TH1D>("h_EnOutEcal", "EnergyOut Ecal", 200, 0.0, 20.0);
1010  h_MipEnMatch =
1011  fs_->make<TH2D>("h_MipEnMatch", "MipEn: HLT level vs Reco Level (Matched)", 200, 0.0, 20.0, 200, 0.0, 20.0);
1012  h_MipEnNoMatch = fs_->make<TH2D>(
1013  "h_MipEnNoMatch", "MipEn: HLT level vs Reco Level (No Match Found)", 200, 0.0, 20.0, 200, 0.0, 20.0);
1014 
1015  if (doL2L3_) {
1016  h_nL3Objs = fs_->make<TH1I>("h_nL3Objs", "Number of L3 objects", 10, 0, 10);
1017 
1018  std::string pairs[9] = {"L2L3",
1019  "L2L3Match",
1020  "L2L3NoMatch",
1021  "L3Reco",
1022  "L3RecoMatch",
1023  "L3RecoNoMatch",
1024  "NewFilterReco",
1025  "NewFilterRecoMatch",
1026  "NewFilterRecoNoMatch"};
1027  for (int ipair = 0; ipair < 9; ipair++) {
1028  sprintf(hname, "h_dEta%s", pairs[ipair].c_str());
1029  sprintf(htit, "#Delta#eta for %s", pairs[ipair].c_str());
1030  h_dEta[ipair] = fs_->make<TH1D>(hname, htit, 200, -10.0, 10.0);
1031  h_dEta[ipair]->GetXaxis()->SetTitle("d#eta");
1032 
1033  sprintf(hname, "h_dPhi%s", pairs[ipair].c_str());
1034  sprintf(htit, "#Delta#phi for %s", pairs[ipair].c_str());
1035  h_dPhi[ipair] = fs_->make<TH1D>(hname, htit, 140, -7.0, 7.0);
1036  h_dPhi[ipair]->GetXaxis()->SetTitle("d#phi");
1037 
1038  sprintf(hname, "h_dPt%s", pairs[ipair].c_str());
1039  sprintf(htit, "#Delta dp_{T} for %s objects", pairs[ipair].c_str());
1040  h_dPt[ipair] = fs_->make<TH1D>(hname, htit, 400, -200.0, 200.0);
1041  h_dPt[ipair]->GetXaxis()->SetTitle("dp_{T} (GeV)");
1042 
1043  sprintf(hname, "h_dP%s", pairs[ipair].c_str());
1044  sprintf(htit, "#Delta p for %s objects", pairs[ipair].c_str());
1045  h_dP[ipair] = fs_->make<TH1D>(hname, htit, 400, -200.0, 200.0);
1046  h_dP[ipair]->GetXaxis()->SetTitle("dP (GeV)");
1047 
1048  sprintf(hname, "h_dinvPt%s", pairs[ipair].c_str());
1049  sprintf(htit, "#Delta (1/p_{T}) for %s objects", pairs[ipair].c_str());
1050  h_dinvPt[ipair] = fs_->make<TH1D>(hname, htit, 500, -0.4, 0.1);
1051  h_dinvPt[ipair]->GetXaxis()->SetTitle("d(1/p_{T})");
1052  sprintf(hname, "h_mindR%s", pairs[ipair].c_str());
1053  sprintf(htit, "min(#Delta R) for %s objects", pairs[ipair].c_str());
1054  h_mindR[ipair] = fs_->make<TH1D>(hname, htit, 500, 0.0, 1.0);
1055  h_mindR[ipair]->GetXaxis()->SetTitle("dR");
1056  }
1057 
1058  for (int lvl = 0; lvl < 2; lvl++) {
1059  sprintf(hname, "h_dEtaL1%s", levels[lvl + 1].c_str());
1060  sprintf(htit, "#Delta#eta for L1 and %s objects", levels[lvl + 1].c_str());
1061  h_dEtaL1[lvl] = fs_->make<TH1D>(hname, htit, 400, -10.0, 10.0);
1062 
1063  sprintf(hname, "h_dPhiL1%s", levels[lvl + 1].c_str());
1064  sprintf(htit, "#Delta#phi for L1 and %s objects", levels[lvl + 1].c_str());
1065  h_dPhiL1[lvl] = fs_->make<TH1D>(hname, htit, 280, -7.0, 7.0);
1066 
1067  sprintf(hname, "h_dRL1%s", levels[lvl + 1].c_str());
1068  sprintf(htit, "#Delta R for L1 and %s objects", levels[lvl + 1].c_str());
1069  h_dRL1[lvl] = fs_->make<TH1D>(hname, htit, 100, 0.0, 10.0);
1070  }
1071  }
1072 
1073  int levmin = (doL2L3_ ? 0 : 10);
1074  for (int ilevel = levmin; ilevel < 20; ilevel++) {
1075  sprintf(hname, "h_p%s", levels[ilevel].c_str());
1076  sprintf(htit, "p for %s objects", levels[ilevel].c_str());
1077  h_p[ilevel] = fs_->make<TH1D>(hname, htit, 100, 0.0, 500.0);
1078  h_p[ilevel]->GetXaxis()->SetTitle("p (GeV)");
1079 
1080  sprintf(hname, "h_pt%s", levels[ilevel].c_str());
1081  sprintf(htit, "p_{T} for %s objects", levels[ilevel].c_str());
1082  h_pt[ilevel] = fs_->make<TH1D>(hname, htit, 100, 0.0, 500.0);
1083  h_pt[ilevel]->GetXaxis()->SetTitle("p_{T} (GeV)");
1084 
1085  sprintf(hname, "h_eta%s", levels[ilevel].c_str());
1086  sprintf(htit, "#eta for %s objects", levels[ilevel].c_str());
1087  h_eta[ilevel] = fs_->make<TH1D>(hname, htit, 100, -5.0, 5.0);
1088  h_eta[ilevel]->GetXaxis()->SetTitle("#eta");
1089 
1090  sprintf(hname, "h_phi%s", levels[ilevel].c_str());
1091  sprintf(htit, "#phi for %s objects", levels[ilevel].c_str());
1092  h_phi[ilevel] = fs_->make<TH1D>(hname, htit, 70, -3.5, 3.50);
1093  h_phi[ilevel]->GetXaxis()->SetTitle("#phi");
1094  }
1095 
1096  std::string cuts[2] = {"HLTMatched", "HLTNotMatched"};
1097  std::string cuts2[2] = {"All", "Away from L1"};
1098  for (int icut = 0; icut < 2; icut++) {
1099  sprintf(hname, "h_eMip%s", cuts[icut].c_str());
1100  sprintf(htit, "eMip for %s tracks", cuts[icut].c_str());
1101  h_eMip[icut] = fs_->make<TH1D>(hname, htit, 200, 0.0, 10.0);
1102  h_eMip[icut]->GetXaxis()->SetTitle("E_{Mip} (GeV)");
1103 
1104  sprintf(hname, "h_eMaxNearP%s", cuts[icut].c_str());
1105  sprintf(htit, "eMaxNearP for %s tracks", cuts[icut].c_str());
1106  h_eMaxNearP[icut] = fs_->make<TH1D>(hname, htit, 240, -2.0, 10.0);
1107  h_eMaxNearP[icut]->GetXaxis()->SetTitle("E_{MaxNearP} (GeV)");
1108 
1109  sprintf(hname, "h_eNeutIso%s", cuts[icut].c_str());
1110  sprintf(htit, "eNeutIso for %s ", cuts[icut].c_str());
1111  h_eNeutIso[icut] = fs_->make<TH1D>(hname, htit, 200, 0.0, 10.0);
1112  h_eNeutIso[icut]->GetXaxis()->SetTitle("E_{NeutIso} (GeV)");
1113 
1114  for (int kcut = 0; kcut < 2; ++kcut) {
1115  for (int lim = 0; lim < 5; ++lim) {
1116  sprintf(hname, "h_etaCalibTracks%sCut%dLim%d", cuts[icut].c_str(), kcut, lim);
1117  sprintf(htit,
1118  "#eta for %s isolated MIP tracks (%4.1f < p < %5.1f Gev/c %s)",
1119  cuts[icut].c_str(),
1120  pLimits_[lim],
1121  pLimits_[lim + 1],
1122  cuts2[kcut].c_str());
1123  h_etaCalibTracks[lim][icut][kcut] = fs_->make<TH1D>(hname, htit, 60, -30.0, 30.0);
1124  h_etaCalibTracks[lim][icut][kcut]->GetXaxis()->SetTitle("i#eta");
1125 
1126  sprintf(hname, "h_etaMipTracks%sCut%dLim%d", cuts[icut].c_str(), kcut, lim);
1127  sprintf(htit,
1128  "#eta for %s charge isolated MIP tracks (%4.1f < p < %5.1f Gev/c %s)",
1129  cuts[icut].c_str(),
1130  pLimits_[lim],
1131  pLimits_[lim + 1],
1132  cuts2[kcut].c_str());
1133  h_etaMipTracks[lim][icut][kcut] = fs_->make<TH1D>(hname, htit, 60, -30.0, 30.0);
1134  h_etaMipTracks[lim][icut][kcut]->GetXaxis()->SetTitle("i#eta");
1135  }
1136  }
1137  }
1138 
1139  std::string ecut1[3] = {"all", "HLTMatched", "HLTNotMatched"};
1140  std::string ecut2[2] = {"without", "with"};
1141  int etac[48] = {-1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16,
1142  -17, -18, -19, -20, -21, -22, -23, -24, 1, 2, 3, 4, 5, 6, 7, 8,
1143  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24};
1144  for (int icut = 0; icut < 6; icut++) {
1145  // int i1 = (icut>3 ? 1 : 0);
1146  int i1 = (icut > 2 ? 1 : 0);
1147  int i2 = icut - i1 * 3;
1148  for (int kcut = 0; kcut < 48; kcut++) {
1149  for (int lim = 0; lim < 5; ++lim) {
1150  sprintf(hname, "h_eta%dEnHcal%s%s%d", etac[kcut], ecut1[i2].c_str(), ecut2[i1].c_str(), lim);
1151  sprintf(htit,
1152  "HCAL energy for #eta=%d for %s tracks (p=%4.1f:%5.1f Gev) %s neutral isolation",
1153  etac[kcut],
1154  ecut1[i2].c_str(),
1155  pLimits_[lim],
1156  pLimits_[lim + 1],
1157  ecut2[i1].c_str());
1158  h_eHcal[lim][icut][kcut] = fs_->make<TH1D>(hname, htit, 750, 0.0, 150.0);
1159  h_eHcal[lim][icut][kcut]->GetXaxis()->SetTitle("Energy (GeV)");
1160  sprintf(hname, "h_eta%dEnCalo%s%s%d", etac[kcut], ecut1[i2].c_str(), ecut2[i1].c_str(), lim);
1161  sprintf(htit,
1162  "Calorimter energy for #eta=%d for %s tracks (p=%4.1f:%5.1f Gev) %s neutral isolation",
1163  etac[kcut],
1164  ecut1[i2].c_str(),
1165  pLimits_[lim],
1166  pLimits_[lim + 1],
1167  ecut2[i1].c_str());
1168  h_eCalo[lim][icut][kcut] = fs_->make<TH1D>(hname, htit, 750, 0.0, 150.0);
1169  h_eCalo[lim][icut][kcut]->GetXaxis()->SetTitle("Energy (GeV)");
1170  }
1171  }
1172  }
1173 }
std::vector< bool > * t_NFTrkPVFlag
Definition: IsoTrig.cc:247
std::vector< double > * t_PixTrkcandPhi
Definition: IsoTrig.cc:228
std::vector< double > * t_PixTrkcandP
Definition: IsoTrig.cc:225
edm::Service< TFileService > fs_
Definition: IsoTrig.cc:205
std::vector< double > * t_NFTrkMinDR
Definition: IsoTrig.cc:242
std::vector< bool > * t_NFTrkMissFlag
Definition: IsoTrig.cc:246
const bool doChgIsolTree_
Definition: IsoTrig.cc:155
TH1D * h_phi[20]
Definition: IsoTrig.cc:259
std::vector< bool > * t_PixTrkcandselTk
Definition: IsoTrig.cc:230
TH1D * h_EnIn
Definition: IsoTrig.cc:254
TH1D * h_dEta[9]
Definition: IsoTrig.cc:261
std::vector< double > * t_NFTrkcandEta
Definition: IsoTrig.cc:239
std::vector< double > * t_NFcandP
Definition: IsoTrig.cc:232
TH1D * h_dEtaL1[2]
Definition: IsoTrig.cc:260
tuple cuts2
split ieta &lt; 16
std::vector< int > * t_nPixSeed
Definition: IsoTrig.cc:209
std::vector< double > * t_TrkhCone
Definition: IsoTrig.cc:212
std::vector< bool > * t_NFTrkqltyFlag
Definition: IsoTrig.cc:245
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< double > * t_PixTrkcandMaxP
Definition: IsoTrig.cc:229
std::vector< bool > * t_NFTrkselTkFlag
Definition: IsoTrig.cc:244
TH1I * h_HLT
Definition: IsoTrig.cc:256
std::vector< double > * t_PixcandP
Definition: IsoTrig.cc:220
TH1D * h_dP[9]
Definition: IsoTrig.cc:261
std::vector< bool > * t_NFTrkMipFlag
Definition: IsoTrig.cc:251
std::vector< double > * t_NFTrkMinDP1
Definition: IsoTrig.cc:243
TH1D * h_EnOut
Definition: IsoTrig.cc:254
TH1D * h_dPhiL1[2]
Definition: IsoTrig.cc:260
TH1D * h_L1ObjEnergy
Definition: IsoTrig.cc:258
const bool doMipCutTree_
Definition: IsoTrig.cc:154
TH1D * h_dPhi[9]
Definition: IsoTrig.cc:261
TkSoA const *__restrict__ CAHitNtupletGeneratorKernelsGPU::QualityCuts cuts
std::vector< double > * t_NFTrkcandP
Definition: IsoTrig.cc:237
std::vector< bool > * t_TrkNuIsolFlag
Definition: IsoTrig.cc:218
TH1I * h_nHLT
Definition: IsoTrig.cc:256
std::vector< bool > * t_TrkPVFlag
Definition: IsoTrig.cc:217
std::vector< double > * t_ECone
Definition: IsoTrig.cc:252
TH1I * h_Pre
Definition: IsoTrig.cc:257
TH1I * h_PreHLT
Definition: IsoTrig.cc:256
TH1D * h_dinvPt[9]
Definition: IsoTrig.cc:262
std::vector< bool > * t_NFTrkChgIsoFlag
Definition: IsoTrig.cc:249
std::vector< double > * t_TrkP
Definition: IsoTrig.cc:213
TH1D * h_eta[20]
Definition: IsoTrig.cc:259
TH1I * h_Filters
Definition: IsoTrig.cc:257
std::vector< double > * t_NFcandEta
Definition: IsoTrig.cc:234
std::vector< double > * t_timeL2Prod
Definition: IsoTrig.cc:207
TH1D * h_eHcal[5][6][48]
Definition: IsoTrig.cc:265
std::vector< double > * t_PixcandPt
Definition: IsoTrig.cc:221
TH1D * h_PreL1wt
Definition: IsoTrig.cc:258
std::vector< double > * t_NFcandEmip
Definition: IsoTrig.cc:236
TH1D * h_eMaxNearP[2]
Definition: IsoTrig.cc:263
const bool doTrkResTree_
Definition: IsoTrig.cc:155
std::vector< bool > * t_NFTrkPropFlag
Definition: IsoTrig.cc:248
std::vector< double > * t_NFTrkcandPhi
Definition: IsoTrig.cc:240
TH2D * h_MipEnMatch
Definition: IsoTrig.cc:255
TH1D * h_p[20]
Definition: IsoTrig.cc:259
TH1D * h_eNeutIso[2]
Definition: IsoTrig.cc:263
TH1I * h_PreL1
Definition: IsoTrig.cc:256
std::vector< bool > * t_TrkMissFlag
Definition: IsoTrig.cc:216
TTree * ChgIsolnTree_
Definition: IsoTrig.cc:206
std::vector< int > * t_nPixCand
Definition: IsoTrig.cc:208
std::vector< double > * t_NFTrkcandPt
Definition: IsoTrig.cc:238
TH1D * h_eCalo[5][6][48]
Definition: IsoTrig.cc:265
std::vector< double > * t_PixTrkcandPt
Definition: IsoTrig.cc:226
std::vector< double > * t_NFcandPt
Definition: IsoTrig.cc:233
TH1D * h_pt[20]
Definition: IsoTrig.cc:259
std::vector< bool > * t_TrkqltyFlag
Definition: IsoTrig.cc:215
TH1D * h_etaMipTracks[5][2][2]
Definition: IsoTrig.cc:264
std::vector< std::vector< double > > * t_PixcandMaxP
Definition: IsoTrig.cc:224
std::vector< double > * t_NFTrkcandEmip
Definition: IsoTrig.cc:241
TTree * MipCutTree_
Definition: IsoTrig.cc:206
TH1D * h_mindR[9]
Definition: IsoTrig.cc:262
std::vector< double > * t_PixcandEta
Definition: IsoTrig.cc:222
TTree * TrkResTree_
Definition: IsoTrig.cc:206
TH1D * h_dPt[9]
Definition: IsoTrig.cc:261
TH2D * h_MipEnNoMatch
Definition: IsoTrig.cc:255
std::vector< bool > * t_NFTrkNeuIsoFlag
Definition: IsoTrig.cc:250
std::vector< double > * t_PixcandPhi
Definition: IsoTrig.cc:223
const bool doTiming_
Definition: IsoTrig.cc:154
std::vector< double > * t_PixTrkcandEta
Definition: IsoTrig.cc:227
std::vector< int > * t_nGoodTk
Definition: IsoTrig.cc:210
TH1I * h_nL3Objs
Definition: IsoTrig.cc:257
TH1D * h_dRL1[2]
Definition: IsoTrig.cc:260
double pLimits_[6]
Definition: IsoTrig.cc:204
TH1D * h_etaCalibTracks[5][2][2]
Definition: IsoTrig.cc:264
std::vector< bool > * t_TrkselTkFlag
Definition: IsoTrig.cc:214
TH1D * h_PreHLTwt
Definition: IsoTrig.cc:258
TTree * TimingTree_
Definition: IsoTrig.cc:206
const bool doL2L3_
Definition: IsoTrig.cc:154
TH1D * h_eMip[2]
Definition: IsoTrig.cc:262
std::vector< double > * t_NFcandPhi
Definition: IsoTrig.cc:235
void IsoTrig::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 1201 of file IsoTrig.cc.

References changed_, hltPrescaleProvider_, HLTPrescaleProvider::init(), processName_, and edm::RunBase::run().

1201  {
1202  edm::LogWarning("IsoTrack") << "Run " << iRun.run() << " hltconfig.init "
1203  << hltPrescaleProvider_.init(iRun, iSetup, processName_, changed_);
1204 }
bool changed_
Definition: IsoTrig.cc:203
HLTPrescaleProvider hltPrescaleProvider_
Definition: IsoTrig.cc:150
const std::string processName_
Definition: IsoTrig.cc:161
Log< level::Warning, false > LogWarning
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
void IsoTrig::chgIsolation ( double &  etaTriggered,
double &  phiTriggered,
edm::Handle< reco::TrackCollection > &  trkCollection,
const edm::Event theEvent 
)
private

Definition at line 1829 of file IsoTrig.cc.

References a_charIsoR_, bField_, RecoTauCleanerPlugins::charge, spr::chargeIsolationCone(), ChgIsolnTree_, clearChgIsolnTreeVectors(), HLT_FULL_cff::deltaR, dR(), runTauDisplay::dr, PVValHelper::dxy, PVValHelper::dz, PVValHelper::eta, geo_, getDistInCM(), GetEtaPhiAtEcal(), spr::goodTrack(), mps_fire::i, gpuVertexFinder::iv, dqmiolumiharvest::j, isotrackApplyRegressor::k, cmsLHEtoEOSManager::l, leadPV_, minPTrackValue_, BeamSpotPI::nTracks, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), phi, pixelIsolationConeSizeAtEC_, pixelTrackRefsHE_, position, prelimCone_, spr::propagateCALO(), DiDispStaMuonMonitor_cfi::pt, pushChgIsolnTreeVecs(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), dttmaxenums::R, recVtxs_, edm::second(), selectionParameters_, tauUnbiasCone_, theTrackQuality_, verbosity_, vtxCutIsol_, vtxCutSeed_, and z.

Referenced by analyze().

1832  {
1834  if (verbosity_ % 10 > 0)
1835  edm::LogVerbatim("IsoTrack") << "Inside chgIsolation() with eta/phi Triggered: " << etaTriggered << "/"
1836  << phiTriggered;
1837  std::vector<double> maxP;
1838 
1839  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
1840  std::vector<spr::propagatedTrackDirection> trkCaloDirections1;
1841  spr::propagateCALO(trkCollection, geo_, bField_, theTrackQuality_, trkCaloDirections1, ((verbosity_ / 100) % 10 > 2));
1842  if (verbosity_ % 10 > 0)
1843  edm::LogVerbatim("IsoTrack") << "Propagated TrkCollection";
1844  for (unsigned int k = 0; k < pixelIsolationConeSizeAtEC_.size(); ++k)
1845  maxP.push_back(0);
1846  unsigned i = pixelTrackRefsHE_.size();
1847  std::vector<std::pair<unsigned int, std::pair<double, double>>> VecSeedsatEC;
1848  //loop to select isolated tracks
1849  for (unsigned iS = 0; iS < pixelTrackRefsHE_.size(); iS++) {
1850  if (pixelTrackRefsHE_[iS]->p() > minPTrackValue_) {
1851  bool vtxMatch = false;
1852  //associate to vertex (in Z)
1853  unsigned int ivSel = recVtxs_->size();
1854  double minDZ = 100;
1855  for (unsigned int iv = 0; iv < recVtxs_->size(); ++iv) {
1856  if (fabs(pixelTrackRefsHE_[iS]->dz((*recVtxs_)[iv].position())) < minDZ) {
1857  minDZ = fabs(pixelTrackRefsHE_[iS]->dz((*recVtxs_)[iv].position()));
1858  ivSel = iv;
1859  }
1860  }
1861  //cut on dYX:
1862  if (ivSel == recVtxs_->size()) {
1863  vtxMatch = true;
1864  } else if (fabs(pixelTrackRefsHE_[iS]->dxy((*recVtxs_)[ivSel].position())) < vtxCutSeed_) {
1865  vtxMatch = true;
1866  }
1867  //select tracks not matched to triggered L1 jet
1868  double R = deltaR(etaTriggered, phiTriggered, pixelTrackRefsHE_[iS]->eta(), pixelTrackRefsHE_[iS]->phi());
1869  if (R > tauUnbiasCone_ && vtxMatch) {
1870  //propagate seed track to ECAL surface:
1871  std::pair<double, double> seedCooAtEC;
1872  // in case vertex is found:
1873  if (minDZ != 100)
1874  seedCooAtEC = GetEtaPhiAtEcal(pixelTrackRefsHE_[iS]->eta(),
1875  pixelTrackRefsHE_[iS]->phi(),
1876  pixelTrackRefsHE_[iS]->pt(),
1877  pixelTrackRefsHE_[iS]->charge(),
1878  (*recVtxs_)[ivSel].z());
1879  //in case vertex is not found:
1880  else
1881  seedCooAtEC = GetEtaPhiAtEcal(pixelTrackRefsHE_[iS]->eta(),
1882  pixelTrackRefsHE_[iS]->phi(),
1883  pixelTrackRefsHE_[iS]->pt(),
1884  pixelTrackRefsHE_[iS]->charge(),
1885  0);
1886  VecSeedsatEC.push_back(std::make_pair(iS, seedCooAtEC));
1887  }
1888  }
1889  }
1890  for (unsigned int l = 0; l < VecSeedsatEC.size(); l++) {
1891  unsigned int iSeed = VecSeedsatEC[l].first;
1893  pixelTrackRefsHE_[iSeed]->py(),
1894  pixelTrackRefsHE_[iSeed]->pz(),
1895  pixelTrackRefsHE_[iSeed]->p());
1896 
1897  for (unsigned int j = 0; j < VecSeedsatEC.size(); j++) {
1898  unsigned int iSurr = VecSeedsatEC[j].first;
1899  if (iSeed != iSurr) {
1900  //define preliminary cone around seed track impact point from which tracks will be extrapolated:
1901  // edm::Ref<reco::IsolatedPixelTrackCandidateCollection> cand2ref =
1902  // edm::Ref<reco::IsolatedPixelTrackCandidateCollection>(L2cands, iSurr);
1903  if (deltaR(pixelTrackRefsHE_[iSeed]->eta(),
1904  pixelTrackRefsHE_[iSeed]->phi(),
1905  pixelTrackRefsHE_[iSurr]->eta(),
1906  pixelTrackRefsHE_[iSurr]->phi()) < prelimCone_) {
1907  unsigned int ivSel = recVtxs_->size();
1908  double minDZ2 = 100;
1909  for (unsigned int iv = 0; iv < recVtxs_->size(); ++iv) {
1910  if (fabs(pixelTrackRefsHE_[iSurr]->dz((*recVtxs_)[iv].position())) < minDZ2) {
1911  minDZ2 = fabs(pixelTrackRefsHE_[iSurr]->dz((*recVtxs_)[iv].position()));
1912  ivSel = iv;
1913  }
1914  }
1915  //cut ot dXY:
1916  if (minDZ2 == 100 || fabs(pixelTrackRefsHE_[iSurr]->dxy((*recVtxs_)[ivSel].position())) < vtxCutIsol_) {
1917  //calculate distance at ECAL surface and update isolation:
1918  double dist = getDistInCM(VecSeedsatEC[i].second.first,
1919  VecSeedsatEC[i].second.second,
1920  VecSeedsatEC[j].second.first,
1921  VecSeedsatEC[j].second.second);
1922  for (unsigned int k = 0; k < pixelIsolationConeSizeAtEC_.size(); ++k) {
1923  if (dist < pixelIsolationConeSizeAtEC_[k]) {
1924  if (pixelTrackRefsHE_[iSurr]->p() > maxP[k])
1925  maxP[k] = pixelTrackRefsHE_[iSurr]->p();
1926  }
1927  }
1928  }
1929  }
1930  }
1931  }
1932 
1933  double conehmaxNearP = -1;
1934  bool selectTk = false;
1935  double mindR = 999.9;
1936  int nTracks = 0;
1937  math::XYZTLorentzVector mindRvec;
1938  for (trkDetItr = trkCaloDirections1.begin(); trkDetItr != trkCaloDirections1.end(); trkDetItr++, nTracks++) {
1939  int nNearTRKs = 0;
1940  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1941  math::XYZTLorentzVector v2(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
1942  double dr = dR(v1, v2);
1943  if (dr < mindR) {
1944  selectTk = spr::goodTrack(pTrack, leadPV_, selectionParameters_, ((verbosity_ / 100) % 10 > 1));
1945  conehmaxNearP = spr::chargeIsolationCone(
1946  nTracks, trkCaloDirections1, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 1));
1947  mindR = dr;
1948  mindRvec = v2;
1949  }
1950  }
1951  pushChgIsolnTreeVecs(v1, mindRvec, maxP, conehmaxNearP, selectTk);
1952  }
1953  ChgIsolnTree_->Fill();
1954 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
Log< level::Info, true > LogVerbatim
std::string theTrackQuality_
Definition: IsoTrig.cc:160
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
int32_t *__restrict__ iv
const double a_charIsoR_
Definition: IsoTrig.cc:164
const int verbosity_
Definition: IsoTrig.cc:156
std::pair< double, double > GetEtaPhiAtEcal(double etaIP, double phiIP, double pT, int charge, double vtxZ)
Definition: IsoTrig.cc:2153
const double minPTrackValue_
Definition: IsoTrig.cc:158
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
Definition: TrackBase.h:640
const double tauUnbiasCone_
Definition: IsoTrig.cc:159
U second(std::pair< T, U > const &p)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
const double prelimCone_
Definition: IsoTrig.cc:159
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
void clearChgIsolnTreeVectors()
Definition: IsoTrig.cc:789
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
std::vector< reco::TrackRef > pixelTrackRefsHE_
Definition: IsoTrig.cc:190
double getDistInCM(double eta1, double phi1, double eta2, double phi2)
Definition: IsoTrig.cc:2216
TTree * ChgIsolnTree_
Definition: IsoTrig.cc:206
edm::Handle< reco::VertexCollection > recVtxs_
Definition: IsoTrig.cc:195
const double vtxCutIsol_
Definition: IsoTrig.cc:158
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
static int position[264][3]
Definition: ReadPGInfo.cc:289
const MagneticField * bField_
Definition: IsoTrig.cc:197
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
const std::vector< double > pixelIsolationConeSizeAtEC_
Definition: IsoTrig.cc:157
const double vtxCutSeed_
Definition: IsoTrig.cc:158
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
void pushChgIsolnTreeVecs(math::XYZTLorentzVector &Pixcand, math::XYZTLorentzVector &Trkcand, std::vector< double > &PixMaxP, double &TrkMaxP, bool &selTk)
Definition: IsoTrig.cc:829
void IsoTrig::clearChgIsolnTreeVectors ( )
private

Definition at line 789 of file IsoTrig.cc.

References clear(), mps_fire::i, t_PixcandEta, t_PixcandMaxP, t_PixcandP, t_PixcandPhi, t_PixcandPt, t_PixTrkcandEta, t_PixTrkcandMaxP, t_PixTrkcandP, t_PixTrkcandPhi, t_PixTrkcandPt, and t_PixTrkcandselTk.

Referenced by chgIsolation().

789  {
790  t_PixcandP->clear();
791  t_PixcandPt->clear();
792  t_PixcandEta->clear();
793  t_PixcandPhi->clear();
794  for (unsigned int i = 0; i < t_PixcandMaxP->size(); i++)
795  t_PixcandMaxP[i].clear();
796  t_PixcandMaxP->clear();
797  t_PixTrkcandP->clear();
798  t_PixTrkcandPt->clear();
799  t_PixTrkcandEta->clear();
800  t_PixTrkcandPhi->clear();
801  t_PixTrkcandMaxP->clear();
802  t_PixTrkcandselTk->clear();
803 }
std::vector< double > * t_PixTrkcandPhi
Definition: IsoTrig.cc:228
std::vector< double > * t_PixTrkcandP
Definition: IsoTrig.cc:225
std::vector< bool > * t_PixTrkcandselTk
Definition: IsoTrig.cc:230
activeDets clear()
std::vector< double > * t_PixTrkcandMaxP
Definition: IsoTrig.cc:229
std::vector< double > * t_PixcandP
Definition: IsoTrig.cc:220
std::vector< double > * t_PixcandPt
Definition: IsoTrig.cc:221
std::vector< double > * t_PixTrkcandPt
Definition: IsoTrig.cc:226
std::vector< std::vector< double > > * t_PixcandMaxP
Definition: IsoTrig.cc:224
std::vector< double > * t_PixcandEta
Definition: IsoTrig.cc:222
std::vector< double > * t_PixcandPhi
Definition: IsoTrig.cc:223
std::vector< double > * t_PixTrkcandEta
Definition: IsoTrig.cc:227
void IsoTrig::clearMipCutTreeVectors ( )
private

Definition at line 805 of file IsoTrig.cc.

References t_ECone, t_NFcandEmip, t_NFcandEta, t_NFcandP, t_NFcandPhi, t_NFcandPt, t_NFTrkcandEmip, t_NFTrkcandEta, t_NFTrkcandP, t_NFTrkcandPhi, t_NFTrkcandPt, t_NFTrkChgIsoFlag, t_NFTrkMinDP1, t_NFTrkMinDR, t_NFTrkMipFlag, t_NFTrkMissFlag, t_NFTrkNeuIsoFlag, t_NFTrkPropFlag, t_NFTrkPVFlag, t_NFTrkqltyFlag, and t_NFTrkselTkFlag.

Referenced by studyMipCut().

805  {
806  t_NFcandP->clear();
807  t_NFcandPt->clear();
808  t_NFcandEta->clear();
809  t_NFcandPhi->clear();
810  t_NFcandEmip->clear();
811  t_NFTrkcandP->clear();
812  t_NFTrkcandPt->clear();
813  t_NFTrkcandEta->clear();
814  t_NFTrkcandPhi->clear();
815  t_NFTrkcandEmip->clear();
816  t_NFTrkMinDR->clear();
817  t_NFTrkMinDP1->clear();
818  t_NFTrkselTkFlag->clear();
819  t_NFTrkqltyFlag->clear();
820  t_NFTrkMissFlag->clear();
821  t_NFTrkPVFlag->clear();
822  t_NFTrkPropFlag->clear();
823  t_NFTrkChgIsoFlag->clear();
824  t_NFTrkNeuIsoFlag->clear();
825  t_NFTrkMipFlag->clear();
826  t_ECone->clear();
827 }
std::vector< bool > * t_NFTrkPVFlag
Definition: IsoTrig.cc:247
std::vector< double > * t_NFTrkMinDR
Definition: IsoTrig.cc:242
std::vector< bool > * t_NFTrkMissFlag
Definition: IsoTrig.cc:246
std::vector< double > * t_NFTrkcandEta
Definition: IsoTrig.cc:239
std::vector< double > * t_NFcandP
Definition: IsoTrig.cc:232
std::vector< bool > * t_NFTrkqltyFlag
Definition: IsoTrig.cc:245
std::vector< bool > * t_NFTrkselTkFlag
Definition: IsoTrig.cc:244
std::vector< bool > * t_NFTrkMipFlag
Definition: IsoTrig.cc:251
std::vector< double > * t_NFTrkMinDP1
Definition: IsoTrig.cc:243
std::vector< double > * t_NFTrkcandP
Definition: IsoTrig.cc:237
std::vector< double > * t_ECone
Definition: IsoTrig.cc:252
std::vector< bool > * t_NFTrkChgIsoFlag
Definition: IsoTrig.cc:249
std::vector< double > * t_NFcandEta
Definition: IsoTrig.cc:234
std::vector< double > * t_NFcandEmip
Definition: IsoTrig.cc:236
std::vector< bool > * t_NFTrkPropFlag
Definition: IsoTrig.cc:248
std::vector< double > * t_NFTrkcandPhi
Definition: IsoTrig.cc:240
std::vector< double > * t_NFTrkcandPt
Definition: IsoTrig.cc:238
std::vector< double > * t_NFcandPt
Definition: IsoTrig.cc:233
std::vector< double > * t_NFTrkcandEmip
Definition: IsoTrig.cc:241
std::vector< bool > * t_NFTrkNeuIsoFlag
Definition: IsoTrig.cc:250
std::vector< double > * t_NFcandPhi
Definition: IsoTrig.cc:235
double IsoTrig::dEta ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2104 of file IsoTrig.cc.

Referenced by dR(), fillDifferences(), and studyTrigger().

2104 { return (vec1.eta() - vec2.eta()); }
std::vector< double > vec1
Definition: HCALResponse.h:15
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
double IsoTrig::dinvPt ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2133 of file IsoTrig.cc.

Referenced by fillDifferences().

2133  {
2134  return ((1 / vec1.pt()) - (1 / vec2.pt()));
2135 }
std::vector< double > vec1
Definition: HCALResponse.h:15
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
double IsoTrig::dP ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2129 of file IsoTrig.cc.

References funct::abs().

Referenced by fillDifferences().

2129  {
2130  return (std::abs(vec1.r() - vec2.r()));
2131 }
std::vector< double > vec1
Definition: HCALResponse.h:15
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
double IsoTrig::dPhi ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2106 of file IsoTrig.cc.

References M_PI.

Referenced by dR(), fillDifferences(), and studyTrigger().

2106  {
2107  double phi1 = vec1.phi();
2108  if (phi1 < 0)
2109  phi1 += 2.0 * M_PI;
2110  double phi2 = vec2.phi();
2111  if (phi2 < 0)
2112  phi2 += 2.0 * M_PI;
2113  double dphi = phi1 - phi2;
2114  if (dphi > M_PI)
2115  dphi -= 2. * M_PI;
2116  else if (dphi < -M_PI)
2117  dphi += 2. * M_PI;
2118  return dphi;
2119 }
std::vector< double > vec1
Definition: HCALResponse.h:15
#define M_PI
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
double IsoTrig::dPt ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2127 of file IsoTrig.cc.

Referenced by fillDifferences().

2127 { return (vec1.pt() - vec2.pt()); }
std::vector< double > vec1
Definition: HCALResponse.h:15
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
double IsoTrig::dR ( math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2 
)
private

Definition at line 2121 of file IsoTrig.cc.

References dEta(), dPhi(), and mathSSE::sqrt().

Referenced by chgIsolation(), fillDifferences(), getGoodTracks(), studyIsolation(), studyMipCut(), and studyTrigger().

2121  {
2122  double deta = dEta(vec1, vec2);
2123  double dphi = dPhi(vec1, vec2);
2124  return std::sqrt(deta * deta + dphi * dphi);
2125 }
std::vector< double > vec1
Definition: HCALResponse.h:15
T sqrt(T t)
Definition: SSEVec.h:19
double dPhi(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2106
double dEta(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2104
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
void IsoTrig::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1176 of file IsoTrig.cc.

References first, fs_, g_Accepts, g_Pre, g_PreHLT, g_PreL1, mps_fire::i, TFileService::make(), maxRunNo_, minRunNo_, dqmiodumpmetadata::n, edm::second(), trigList_, trigNames_, and trigPreList_.

Referenced by o2olib.O2ORunMgr::executeJob().

1176  {
1177  unsigned int preL1, preHLT;
1178  std::map<unsigned int, unsigned int>::iterator itr;
1179  std::map<unsigned int, const std::pair<int, int>>::iterator itrPre;
1180  edm::LogWarning("IsoTrack") << trigNames_.size() << "Triggers were run. RunNo vs HLT accepts for";
1181  for (unsigned int i = 0; i < trigNames_.size(); ++i)
1182  edm::LogWarning("IsoTrack") << "[" << i << "]: " << trigNames_[i];
1183  unsigned int n = maxRunNo_ - minRunNo_ + 1;
1184  g_Pre = fs_->make<TH1I>("h_PrevsRN", "PreScale Vs Run Number", n, minRunNo_, maxRunNo_);
1185  g_PreL1 = fs_->make<TH1I>("h_PreL1vsRN", "L1 PreScale Vs Run Number", n, minRunNo_, maxRunNo_);
1186  g_PreHLT = fs_->make<TH1I>("h_PreHLTvsRN", "HLT PreScale Vs Run Number", n, minRunNo_, maxRunNo_);
1187  g_Accepts = fs_->make<TH1I>("h_HLTAcceptsvsRN", "HLT Accepts Vs Run Number", n, minRunNo_, maxRunNo_);
1188 
1189  for (itr = trigList_.begin(), itrPre = trigPreList_.begin(); itr != trigList_.end(); itr++, itrPre++) {
1190  preL1 = (itrPre->second).first;
1191  preHLT = (itrPre->second).second;
1192  edm::LogVerbatim("IsoTrack") << itr->first << " " << itr->second << " " << itrPre->first << " " << preL1 << " "
1193  << preHLT;
1194  g_Accepts->Fill(itr->first, itr->second);
1195  g_PreL1->Fill(itr->first, preL1);
1196  g_PreHLT->Fill(itr->first, preHLT);
1197  g_Pre->Fill(itr->first, preL1 * preHLT);
1198  }
1199 }
Log< level::Info, true > LogVerbatim
edm::Service< TFileService > fs_
Definition: IsoTrig.cc:205
const int maxRunNo_
Definition: IsoTrig.cc:167
TH1I * g_PreHLT
Definition: IsoTrig.cc:266
std::map< unsigned int, const std::pair< int, int > > trigPreList_
Definition: IsoTrig.cc:202
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
U second(std::pair< T, U > const &p)
std::map< unsigned int, unsigned int > trigList_
Definition: IsoTrig.cc:201
TH1I * g_Pre
Definition: IsoTrig.cc:266
const int minRunNo_
Definition: IsoTrig.cc:167
TH1I * g_PreL1
Definition: IsoTrig.cc:266
Log< level::Warning, false > LogWarning
const std::vector< std::string > trigNames_
Definition: IsoTrig.cc:151
TH1I * g_Accepts
Definition: IsoTrig.cc:266
void IsoTrig::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineoverrideprivate

Definition at line 107 of file IsoTrig.cc.

107 {}
std::pair< double, double > IsoTrig::etaPhiTrigger ( )
private

Definition at line 2137 of file IsoTrig.cc.

References PVValHelper::eta, isotrackApplyRegressor::k, phi, DiDispStaMuonMonitor_cfi::pt, and vec_.

Referenced by analyze().

2137  {
2138  double eta(0), phi(0), ptmax(0);
2139  for (unsigned int k = 0; k < vec_[0].size(); ++k) {
2140  if (k == 0) {
2141  eta = vec_[0][k].eta();
2142  phi = vec_[0][k].phi();
2143  ptmax = vec_[0][k].pt();
2144  } else if (vec_[0][k].pt() > ptmax) {
2145  eta = vec_[0][k].eta();
2146  phi = vec_[0][k].phi();
2147  ptmax = vec_[0][k].pt();
2148  }
2149  }
2150  return std::pair<double, double>(eta, phi);
2151 }
std::vector< math::XYZTLorentzVector > vec_[3]
Definition: IsoTrig.cc:267
void IsoTrig::fillCuts ( int  indx,
double  eMipDR,
double  conehmaxNearP,
double  e_inCone,
math::XYZTLorentzVector vec,
int  ieta,
bool  cut 
)
private

Definition at line 2067 of file IsoTrig.cc.

References cutCharge_, cutMip_, cutNeutral_, h_eMaxNearP, h_eMip, h_eNeutIso, h_etaCalibTracks, h_etaMipTracks, and pLimits_.

Referenced by studyIsolation().

2068  {
2069  h_eMip[indx]->Fill(eMipDR);
2070  h_eMaxNearP[indx]->Fill(conehmaxNearP);
2071  h_eNeutIso[indx]->Fill(e_inCone);
2072  if ((conehmaxNearP < cutCharge_) && (eMipDR < cutMip_)) {
2073  for (int lim = 0; lim < 5; ++lim) {
2074  if ((vec.r() > pLimits_[lim]) && (vec.r() <= pLimits_[lim + 1])) {
2075  h_etaMipTracks[lim][indx][0]->Fill((double)(ieta));
2076  if (cut)
2077  h_etaMipTracks[lim][indx][1]->Fill((double)(ieta));
2078  if (e_inCone < cutNeutral_) {
2079  h_etaCalibTracks[lim][indx][0]->Fill((double)(ieta));
2080  if (cut)
2081  h_etaCalibTracks[lim][indx][1]->Fill((double)(ieta));
2082  }
2083  }
2084  }
2085  }
2086 }
TH1D * h_eMaxNearP[2]
Definition: IsoTrig.cc:263
TH1D * h_eNeutIso[2]
Definition: IsoTrig.cc:263
const double cutCharge_
Definition: IsoTrig.cc:166
TH1D * h_etaMipTracks[5][2][2]
Definition: IsoTrig.cc:264
const double cutMip_
Definition: IsoTrig.cc:165
const double cutNeutral_
Definition: IsoTrig.cc:166
double pLimits_[6]
Definition: IsoTrig.cc:204
TH1D * h_etaCalibTracks[5][2][2]
Definition: IsoTrig.cc:264
TH1D * h_eMip[2]
Definition: IsoTrig.cc:262
void IsoTrig::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 515 of file IsoTrig.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, AlCaHLTBitMon_QueryRunRegistry::string, and getPayloadData::tags.

515  {
516  std::vector<std::string> triggers = {"HLT_IsoTrackHB"};
517  std::vector<edm::InputTag> tags = {edm::InputTag("hltHITPixelTracksHB"), edm::InputTag("hltHITPixelTracksHE")};
518  std::vector<double> cones = {35.0, 40.0, 45.0, 50.0, 55.0, 60.0, 63.9, 70.0};
520  desc.addUntracked<std::vector<std::string>>("Triggers", triggers);
521  desc.addUntracked<edm::InputTag>("pixCandTag", edm::InputTag(" "));
522  desc.addUntracked<edm::InputTag>("l1CandTag", edm::InputTag("hltL1sV0SingleJet60"));
523  desc.addUntracked<edm::InputTag>("l2CandTag", edm::InputTag("isolEcalPixelTrackProd"));
524  desc.addUntracked<bool>("doL2L3", false);
525  desc.addUntracked<bool>("doTimingTree", false);
526  desc.addUntracked<bool>("doMipCutTree", false);
527  desc.addUntracked<bool>("doTrkResTree", true);
528  desc.addUntracked<bool>("doChgIsolTree", false);
529  desc.addUntracked<bool>("doStudyIsol", false);
530  desc.addUntracked<int>("verbosity", 0);
531  desc.addUntracked<std::string>("processName", "HLT");
532  desc.addUntracked<std::string>("trackQuality", "highPurity");
533  desc.addUntracked<double>("minTrackPt", 10.0);
534  desc.addUntracked<double>("maxDxyPV", 0.02);
535  desc.addUntracked<double>("maxDzPV", 0.02);
536  desc.addUntracked<double>("maxChi2", 5.0);
537  desc.addUntracked<double>("maxDpOverP", 0.1);
538  desc.addUntracked<int>("minOuterHit", 4);
539  desc.addUntracked<int>("minLayerCrossed", 8);
540  desc.addUntracked<int>("maxInMiss", 0);
541  desc.addUntracked<int>("maxOutMiss", 0);
542  desc.addUntracked<double>("isolationL1", 1.0);
543  desc.addUntracked<double>("coneRadius", 34.98);
544  desc.addUntracked<double>("coneRadiusMIP", 14.0);
545  desc.addUntracked<double>("coneRadiusNeut1", 21.0);
546  desc.addUntracked<double>("coneRadiusNeut2", 29.0);
547  desc.addUntracked<double>("cutMIP", 1.0);
548  desc.addUntracked<double>("chargeIsolation", 2.0);
549  desc.addUntracked<double>("neutralIsolation", 2.0);
550  desc.addUntracked<int>("minRun", 190456);
551  desc.addUntracked<int>("maxRun", 203002);
552  desc.addUntracked<std::vector<edm::InputTag>>("pixelTracksSources", tags);
553  desc.addUntracked<std::vector<double>>("pixelIsolationConeSizeAtEC", cones);
554  desc.addUntracked<double>("minPTrackValue", 0.0);
555  desc.addUntracked<double>("vertexCutSeed", 101.0);
556  desc.addUntracked<double>("vertexCutIsol", 101.0);
557  desc.addUntracked<double>("tauUnbiasCone", 1.2);
558  desc.addUntracked<double>("prelimCone", 1.0);
559  desc.add<unsigned int>("stageL1Trigger", 1);
560  descriptions.add("isoTrigDefault", desc);
561 }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void IsoTrig::fillDifferences ( int  indx,
math::XYZTLorentzVector vec1,
math::XYZTLorentzVector vec2,
bool  debug 
)
private

Definition at line 2049 of file IsoTrig.cc.

References dEta(), dinvPt(), dP(), dPhi(), dPt(), dR(), runTauDisplay::dr, h_dEta, h_dinvPt, h_dP, h_dPhi, h_dPt, and h_mindR.

Referenced by studyMipCut(), and studyTrigger().

2049  {
2050  double dr = dR(vec1, vec2);
2051  double deta = dEta(vec1, vec2);
2052  double dphi = dPhi(vec1, vec2);
2053  double dpt = dPt(vec1, vec2);
2054  double dp = dP(vec1, vec2);
2055  double dinvpt = dinvPt(vec1, vec2);
2056  h_dEta[indx]->Fill(deta);
2057  h_dPhi[indx]->Fill(dphi);
2058  h_dPt[indx]->Fill(dpt);
2059  h_dP[indx]->Fill(dp);
2060  h_dinvPt[indx]->Fill(dinvpt);
2061  h_mindR[indx]->Fill(dr);
2062  if (debug)
2063  edm::LogVerbatim("IsoTrack") << "mindR for index " << indx << " is " << dr << " deta " << deta << " dphi " << dphi
2064  << " dpt " << dpt << " dinvpt " << dinvpt;
2065 }
Log< level::Info, true > LogVerbatim
TH1D * h_dEta[9]
Definition: IsoTrig.cc:261
double dP(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2129
TH1D * h_dP[9]
Definition: IsoTrig.cc:261
double dinvPt(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2133
TH1D * h_dPhi[9]
Definition: IsoTrig.cc:261
std::vector< double > vec1
Definition: HCALResponse.h:15
TH1D * h_dinvPt[9]
Definition: IsoTrig.cc:262
double dPhi(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2106
#define debug
Definition: HDRShower.cc:19
double dEta(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2104
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
TH1D * h_mindR[9]
Definition: IsoTrig.cc:262
TH1D * h_dPt[9]
Definition: IsoTrig.cc:261
double dPt(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2127
std::vector< vec1 > vec2
Definition: HCALResponse.h:16
void IsoTrig::fillEnergy ( int  indx,
int  ieta,
double  hCone,
double  eMipDR,
math::XYZTLorentzVector vec 
)
private

Definition at line 2088 of file IsoTrig.cc.

References h_eCalo, h_eHcal, GetRecoTauVFromDQM_MC_cff::kk, and pLimits_.

Referenced by studyIsolation().

2088  {
2089  int kk(-1);
2090  if (ieta > 0 && ieta < 25)
2091  kk = 23 + ieta;
2092  else if (ieta > -25 && ieta < 0)
2093  kk = -(ieta + 1);
2094  if (kk >= 0 && eMipDR > 0.01 && hCone > 1.0) {
2095  for (int lim = 0; lim < 5; ++lim) {
2096  if ((vec.r() > pLimits_[lim]) && (vec.r() <= pLimits_[lim + 1])) {
2097  h_eHcal[lim][indx][kk]->Fill(hCone);
2098  h_eCalo[lim][indx][kk]->Fill(hCone + eMipDR);
2099  }
2100  }
2101  }
2102 }
TH1D * h_eHcal[5][6][48]
Definition: IsoTrig.cc:265
TH1D * h_eCalo[5][6][48]
Definition: IsoTrig.cc:265
double pLimits_[6]
Definition: IsoTrig.cc:204
void IsoTrig::fillHist ( int  indx,
math::XYZTLorentzVector vec 
)
private

Definition at line 2042 of file IsoTrig.cc.

References h_eta, h_p, h_phi, and h_pt.

Referenced by studyIsolation(), and studyTrigger().

2042  {
2043  h_p[indx]->Fill(vec.r());
2044  h_pt[indx]->Fill(vec.pt());
2045  h_eta[indx]->Fill(vec.eta());
2046  h_phi[indx]->Fill(vec.phi());
2047 }
TH1D * h_phi[20]
Definition: IsoTrig.cc:259
TH1D * h_eta[20]
Definition: IsoTrig.cc:259
TH1D * h_p[20]
Definition: IsoTrig.cc:259
TH1D * h_pt[20]
Definition: IsoTrig.cc:259
double IsoTrig::getDistInCM ( double  eta1,
double  phi1,
double  eta2,
double  phi2 
)
private

Definition at line 2216 of file IsoTrig.cc.

References angle(), funct::cos(), funct::exp(), M_PI, rEB_, funct::sin(), funct::tan(), and zEE_.

Referenced by chgIsolation().

2216  {
2217  double Rec;
2218  double theta1 = 2 * atan(exp(-eta1));
2219  double theta2 = 2 * atan(exp(-eta2));
2220  if (fabs(eta1) < 1.479)
2221  Rec = rEB_; //radius of ECAL barrel
2222  else if (fabs(eta1) > 1.479 && fabs(eta1) < 7.0)
2223  Rec = tan(theta1) * zEE_; //distance from IP to ECAL endcap
2224  else
2225  return 1000;
2226 
2227  //|vect| times tg of acos(scalar product)
2228  double angle =
2229  acos((sin(theta1) * sin(theta2) * (sin(phi1) * sin(phi2) + cos(phi1) * cos(phi2)) + cos(theta1) * cos(theta2)));
2230  if (angle < 0.5 * M_PI)
2231  return fabs((Rec / sin(theta1)) * tan(angle));
2232  else
2233  return 1000;
2234 }
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
double rEB_
Definition: IsoTrig.cc:162
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
double zEE_
Definition: IsoTrig.cc:162
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define M_PI
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
std::pair< double, double > IsoTrig::GetEtaPhiAtEcal ( double  etaIP,
double  phiIP,
double  pT,
int  charge,
double  vtxZ 
)
private

Definition at line 2153 of file IsoTrig.cc.

References alpha, bfVal_, RecoTauCleanerPlugins::charge, srCondWrite_cfg::deltaPhi, funct::exp(), log, M_PI, rEB_, funct::sin(), funct::tan(), theta(), z, and zEE_.

Referenced by chgIsolation().

2153  {
2154  double deltaPhi = 0;
2155  double etaEC = 100;
2156  double phiEC = 100;
2157 
2158  double Rcurv = 9999999;
2159  if (bfVal_ != 0)
2160  Rcurv = pT * 33.3 * 100 / (bfVal_ * 10); //r(m)=pT(GeV)*33.3/B(kG)
2161 
2162  double ecDist = zEE_;
2163  double ecRad = rEB_; //radius of ECAL barrel (cm)
2164  double theta = 2 * atan(exp(-etaIP));
2165  double zNew = 0;
2166  if (theta > 0.5 * M_PI)
2167  theta = M_PI - theta;
2168  if (fabs(etaIP) < 1.479) {
2169  if ((0.5 * ecRad / Rcurv) > 1) {
2170  etaEC = 10000;
2171  deltaPhi = 0;
2172  } else {
2173  deltaPhi = -charge * asin(0.5 * ecRad / Rcurv);
2174  double alpha1 = 2 * asin(0.5 * ecRad / Rcurv);
2175  double z = ecRad / tan(theta);
2176  if (etaIP > 0)
2177  zNew = z * (Rcurv * alpha1) / ecRad + vtxZ; //new z-coordinate of track
2178  else
2179  zNew = -z * (Rcurv * alpha1) / ecRad + vtxZ; //new z-coordinate of track
2180  double zAbs = fabs(zNew);
2181  if (zAbs < ecDist) {
2182  etaEC = -log(tan(0.5 * atan(ecRad / zAbs)));
2183  deltaPhi = -charge * asin(0.5 * ecRad / Rcurv);
2184  }
2185  if (zAbs > ecDist) {
2186  zAbs = (fabs(etaIP) / etaIP) * ecDist;
2187  double Zflight = fabs(zAbs - vtxZ);
2188  double alpha = (Zflight * ecRad) / (z * Rcurv);
2189  double Rec = 2 * Rcurv * sin(alpha / 2);
2190  deltaPhi = -charge * alpha / 2;
2191  etaEC = -log(tan(0.5 * atan(Rec / ecDist)));
2192  }
2193  }
2194  } else {
2195  zNew = (fabs(etaIP) / etaIP) * ecDist;
2196  double Zflight = fabs(zNew - vtxZ);
2197  double Rvirt = fabs(Zflight * tan(theta));
2198  double Rec = 2 * Rcurv * sin(Rvirt / (2 * Rcurv));
2199  deltaPhi = -(charge) * (Rvirt / (2 * Rcurv));
2200  etaEC = -log(tan(0.5 * atan(Rec / ecDist)));
2201  }
2202 
2203  if (zNew < 0)
2204  etaEC = -etaEC;
2205  phiEC = phiIP + deltaPhi;
2206 
2207  if (phiEC < -M_PI)
2208  phiEC += 2 * M_PI;
2209  if (phiEC > M_PI)
2210  phiEC -= 2 * M_PI;
2211 
2212  std::pair<double, double> retVal(etaEC, phiEC);
2213  return retVal;
2214 }
float alpha
Definition: AMPTWrapper.h:105
static std::vector< std::string > checklist log
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Theta< T > theta() const
double rEB_
Definition: IsoTrig.cc:162
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
double zEE_
Definition: IsoTrig.cc:162
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
#define M_PI
double bfVal_
Definition: IsoTrig.cc:162
void IsoTrig::getGoodTracks ( const edm::Event iEvent,
edm::Handle< reco::TrackCollection > &  trkCollection 
)
private

Definition at line 1956 of file IsoTrig.cc.

References a_charIsoR_, a_mipR_, barrelRecHitsHandle_, bField_, spr::chargeIsolationCone(), funct::cos(), dR(), spr::eCone_ecal(), endcapRecHitsHandle_, geo_, edm::Event::getByToken(), spr::goodTrack(), cuy::ii, edm::HandleBase::isValid(), leadPV_, BeamSpotPI::nTracks, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), spr::propagateCALO(), DiDispStaMuonMonitor_cfi::pt, reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), selectionParameters_, funct::sin(), t_nGoodTk, theTrackQuality_, tok_l1cand_, trigger::TriggerL1CenJet, trigger::TriggerL1ForJet, trigger::TriggerL1TauJet, and verbosity_.

Referenced by analyze().

1956  {
1957  t_nGoodTk->clear();
1958  std::vector<int> nGood(4, 0);
1959  if (trkCollection.isValid()) {
1960  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
1962  trkCollection, geo_, bField_, theTrackQuality_, trkCaloDirections, ((verbosity_ / 100) % 10 > 2));
1963 
1964  // get the trigger jet
1966  iEvent.getByToken(tok_l1cand_, l1trigobj);
1967 
1968  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1tauobjref;
1969  l1trigobj->getObjects(trigger::TriggerL1TauJet, l1tauobjref);
1970  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1jetobjref;
1971  l1trigobj->getObjects(trigger::TriggerL1CenJet, l1jetobjref);
1972  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1forjetobjref;
1973  l1trigobj->getObjects(trigger::TriggerL1ForJet, l1forjetobjref);
1974 
1975  double ptTriggered(-10), etaTriggered(-100), phiTriggered(-100);
1976  for (unsigned int p = 0; p < l1tauobjref.size(); p++) {
1977  if (l1tauobjref[p]->pt() > ptTriggered) {
1978  ptTriggered = l1tauobjref[p]->pt();
1979  phiTriggered = l1tauobjref[p]->phi();
1980  etaTriggered = l1tauobjref[p]->eta();
1981  }
1982  }
1983  for (unsigned int p = 0; p < l1jetobjref.size(); p++) {
1984  if (l1jetobjref[p]->pt() > ptTriggered) {
1985  ptTriggered = l1jetobjref[p]->pt();
1986  phiTriggered = l1jetobjref[p]->phi();
1987  etaTriggered = l1jetobjref[p]->eta();
1988  }
1989  }
1990  for (unsigned int p = 0; p < l1forjetobjref.size(); p++) {
1991  if (l1forjetobjref[p]->pt() > ptTriggered) {
1992  ptTriggered = l1forjetobjref[p]->pt();
1993  phiTriggered = l1forjetobjref[p]->phi();
1994  etaTriggered = l1forjetobjref[p]->eta();
1995  }
1996  }
1997  double pTriggered = ptTriggered * cosh(etaTriggered);
1998  math::XYZTLorentzVector pTrigger(
1999  ptTriggered * cos(phiTriggered), ptTriggered * sin(phiTriggered), pTriggered * tanh(etaTriggered), pTriggered);
2000 
2001  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
2002  unsigned int nTracks(0);
2003  for (trkDetItr = trkCaloDirections.begin(); trkDetItr != trkCaloDirections.end(); trkDetItr++, nTracks++) {
2004  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
2005  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
2006  bool selectTk = spr::goodTrack(pTrack, leadPV_, selectionParameters_, ((verbosity_ / 100) % 10 > 1));
2007  double mindR = dR(v4, pTrigger);
2008  if ((verbosity_ / 100) % 10 > 1)
2009  edm::LogVerbatim("IsoTrack") << "Track ECAL " << trkDetItr->okECAL << " HCAL " << trkDetItr->okHCAL << " Flag "
2010  << selectTk;
2011  if (selectTk && trkDetItr->okECAL && trkDetItr->okHCAL && mindR > 1.0) {
2012  int nRH_eMipDR(0), nNearTRKs(0);
2013  double eMipDR = spr::eCone_ecal(geo_,
2016  trkDetItr->pointHCAL,
2017  trkDetItr->pointECAL,
2018  a_mipR_,
2019  trkDetItr->directionECAL,
2020  nRH_eMipDR);
2021  double conehmaxNearP =
2022  spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 1));
2023  if (conehmaxNearP < 2.0 && eMipDR < 1.0) {
2024  if (pTrack->p() >= 20 && pTrack->p() < 30) {
2025  ++nGood[0];
2026  } else if (pTrack->p() >= 30 && pTrack->p() < 40) {
2027  ++nGood[1];
2028  } else if (pTrack->p() >= 40 && pTrack->p() < 60) {
2029  ++nGood[2];
2030  } else if (pTrack->p() >= 60 && pTrack->p() < 100) {
2031  ++nGood[3];
2032  }
2033  }
2034  }
2035  }
2036  }
2037 
2038  for (unsigned int ii = 0; ii < nGood.size(); ++ii)
2039  t_nGoodTk->push_back(nGood[ii]);
2040 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
Log< level::Info, true > LogVerbatim
std::string theTrackQuality_
Definition: IsoTrig.cc:160
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: IsoTrig.cc:193
const double a_charIsoR_
Definition: IsoTrig.cc:164
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
const int verbosity_
Definition: IsoTrig.cc:156
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: IsoTrig.cc:192
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
Definition: TrackBase.h:640
int ii
Definition: cuy.py:589
const double a_mipR_
Definition: IsoTrig.cc:165
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
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)
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
bool isValid() const
Definition: HandleBase.h:70
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_l1cand_
Definition: IsoTrig.cc:183
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
const MagneticField * bField_
Definition: IsoTrig.cc:197
std::vector< int > * t_nGoodTk
Definition: IsoTrig.cc:210
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
void IsoTrig::pushChgIsolnTreeVecs ( math::XYZTLorentzVector Pixcand,
math::XYZTLorentzVector Trkcand,
std::vector< double > &  PixMaxP,
double &  TrkMaxP,
bool &  selTk 
)
private

Definition at line 829 of file IsoTrig.cc.

References t_PixcandEta, t_PixcandMaxP, t_PixcandP, t_PixcandPhi, t_PixcandPt, t_PixTrkcandEta, t_PixTrkcandMaxP, t_PixTrkcandP, t_PixTrkcandPhi, t_PixTrkcandPt, and t_PixTrkcandselTk.

Referenced by chgIsolation().

833  {
834  t_PixcandP->push_back(Pixcand.r());
835  t_PixcandPt->push_back(Pixcand.pt());
836  t_PixcandEta->push_back(Pixcand.eta());
837  t_PixcandPhi->push_back(Pixcand.phi());
838  t_PixcandMaxP->push_back(PixMaxP);
839  t_PixTrkcandP->push_back(Trkcand.r());
840  t_PixTrkcandPt->push_back(Trkcand.pt());
841  t_PixTrkcandEta->push_back(Trkcand.eta());
842  t_PixTrkcandPhi->push_back(Trkcand.phi());
843  t_PixTrkcandMaxP->push_back(TrkMaxP);
844  t_PixTrkcandselTk->push_back(selTk);
845 }
std::vector< double > * t_PixTrkcandPhi
Definition: IsoTrig.cc:228
std::vector< double > * t_PixTrkcandP
Definition: IsoTrig.cc:225
std::vector< bool > * t_PixTrkcandselTk
Definition: IsoTrig.cc:230
std::vector< double > * t_PixTrkcandMaxP
Definition: IsoTrig.cc:229
std::vector< double > * t_PixcandP
Definition: IsoTrig.cc:220
std::vector< double > * t_PixcandPt
Definition: IsoTrig.cc:221
std::vector< double > * t_PixTrkcandPt
Definition: IsoTrig.cc:226
std::vector< std::vector< double > > * t_PixcandMaxP
Definition: IsoTrig.cc:224
std::vector< double > * t_PixcandEta
Definition: IsoTrig.cc:222
std::vector< double > * t_PixcandPhi
Definition: IsoTrig.cc:223
std::vector< double > * t_PixTrkcandEta
Definition: IsoTrig.cc:227
void IsoTrig::pushMipCutTreeVecs ( math::XYZTLorentzVector NFcand,
math::XYZTLorentzVector Trkcand,
double &  EmipNFcand,
double &  EmipTrkcand,
double &  mindR,
double &  mindP1,
std::vector< bool > &  Flags,
double  hCone 
)
private

Definition at line 847 of file IsoTrig.cc.

References t_ECone, t_NFcandEmip, t_NFcandEta, t_NFcandP, t_NFcandPhi, t_NFcandPt, t_NFTrkcandEmip, t_NFTrkcandEta, t_NFTrkcandP, t_NFTrkcandPhi, t_NFTrkcandPt, t_NFTrkChgIsoFlag, t_NFTrkMinDP1, t_NFTrkMinDR, t_NFTrkMipFlag, t_NFTrkMissFlag, t_NFTrkNeuIsoFlag, t_NFTrkPropFlag, t_NFTrkPVFlag, t_NFTrkqltyFlag, and t_NFTrkselTkFlag.

Referenced by studyMipCut().

854  {
855  t_NFcandP->push_back(NFcand.r());
856  t_NFcandPt->push_back(NFcand.pt());
857  t_NFcandEta->push_back(NFcand.eta());
858  t_NFcandPhi->push_back(NFcand.phi());
859  t_NFcandEmip->push_back(EmipNFcand);
860  t_NFTrkcandP->push_back(Trkcand.r());
861  t_NFTrkcandPt->push_back(Trkcand.pt());
862  t_NFTrkcandEta->push_back(Trkcand.eta());
863  t_NFTrkcandPhi->push_back(Trkcand.phi());
864  t_NFTrkcandEmip->push_back(EmipTrkcand);
865  t_NFTrkMinDR->push_back(mindR);
866  t_NFTrkMinDP1->push_back(mindP1);
867  t_NFTrkselTkFlag->push_back(Flags[0]);
868  t_NFTrkqltyFlag->push_back(Flags[1]);
869  t_NFTrkMissFlag->push_back(Flags[2]);
870  t_NFTrkPVFlag->push_back(Flags[3]);
871  t_NFTrkPropFlag->push_back(Flags[4]);
872  t_NFTrkChgIsoFlag->push_back(Flags[5]);
873  t_NFTrkNeuIsoFlag->push_back(Flags[6]);
874  t_NFTrkMipFlag->push_back(Flags[7]);
875  t_ECone->push_back(hCone);
876 }
std::vector< bool > * t_NFTrkPVFlag
Definition: IsoTrig.cc:247
std::vector< double > * t_NFTrkMinDR
Definition: IsoTrig.cc:242
std::vector< bool > * t_NFTrkMissFlag
Definition: IsoTrig.cc:246
std::vector< double > * t_NFTrkcandEta
Definition: IsoTrig.cc:239
std::vector< double > * t_NFcandP
Definition: IsoTrig.cc:232
std::vector< bool > * t_NFTrkqltyFlag
Definition: IsoTrig.cc:245
std::vector< bool > * t_NFTrkselTkFlag
Definition: IsoTrig.cc:244
std::vector< bool > * t_NFTrkMipFlag
Definition: IsoTrig.cc:251
std::vector< double > * t_NFTrkMinDP1
Definition: IsoTrig.cc:243
std::vector< double > * t_NFTrkcandP
Definition: IsoTrig.cc:237
std::vector< double > * t_ECone
Definition: IsoTrig.cc:252
std::vector< bool > * t_NFTrkChgIsoFlag
Definition: IsoTrig.cc:249
std::vector< double > * t_NFcandEta
Definition: IsoTrig.cc:234
std::vector< double > * t_NFcandEmip
Definition: IsoTrig.cc:236
std::vector< bool > * t_NFTrkPropFlag
Definition: IsoTrig.cc:248
std::vector< double > * t_NFTrkcandPhi
Definition: IsoTrig.cc:240
std::vector< double > * t_NFTrkcandPt
Definition: IsoTrig.cc:238
std::vector< double > * t_NFcandPt
Definition: IsoTrig.cc:233
std::vector< double > * t_NFTrkcandEmip
Definition: IsoTrig.cc:241
std::vector< bool > * t_NFTrkNeuIsoFlag
Definition: IsoTrig.cc:250
std::vector< double > * t_NFcandPhi
Definition: IsoTrig.cc:235
void IsoTrig::studyIsolation ( edm::Handle< reco::TrackCollection > &  trkCollection,
std::vector< reco::TrackCollection::const_iterator > &  goodTks 
)
private

Definition at line 1688 of file IsoTrig.cc.

References a_charIsoR_, a_coneR_, a_mipR_, a_neutR1_, a_neutR2_, barrelRecHitsHandle_, bField_, spr::chargeIsolationCone(), cutCharge_, cutMip_, cutNeutral_, HLT_FULL_cff::deltaR, doL2L3_, dR(), dr_L1_, spr::eCone_ecal(), spr::eCone_hcal(), endcapRecHitsHandle_, fillCuts(), fillEnergy(), fillHist(), spr::find(), geo_, spr::goodTrack(), hbhe_, hit::id, HcalDetId::ieta(), edm::HandleBase::isValid(), isotrackApplyRegressor::k, leadPV_, BeamSpotPI::nTracks, reco::TrackBase::p(), spr::propagateCALO(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), selectionParameters_, theTrackQuality_, vec_, and verbosity_.

Referenced by analyze().

1689  {
1690  if (trkCollection.isValid()) {
1691  std::vector<spr::propagatedTrackDirection> trkCaloDirections;
1693  trkCollection, geo_, bField_, theTrackQuality_, trkCaloDirections, ((verbosity_ / 100) % 10 > 2));
1694 
1695  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
1696  if ((verbosity_ / 1000) % 10 > 1) {
1697  edm::LogVerbatim("IsoTrack") << "n of barrelRecHitsHandle " << barrelRecHitsHandle_->size();
1699  ++hit) {
1700  edm::LogVerbatim("IsoTrack") << "hit : detid(ieta,iphi) " << (EBDetId)(hit->id()) << " time " << hit->time()
1701  << " energy " << hit->energy();
1702  }
1703  edm::LogVerbatim("IsoTrack") << "n of endcapRecHitsHandle " << endcapRecHitsHandle_->size();
1705  ++hit) {
1706  edm::LogVerbatim("IsoTrack") << "hit : detid(ieta,iphi) " << (EEDetId)(hit->id()) << " time " << hit->time()
1707  << " energy " << hit->energy();
1708  }
1709  edm::LogVerbatim("IsoTrack") << "n of hbhe " << hbhe_->size();
1710  for (HBHERecHitCollection::const_iterator hit = hbhe_->begin(); hit != hbhe_->end(); ++hit) {
1711  edm::LogVerbatim("IsoTrack") << "hit : detid(ieta,iphi) " << hit->id() << " time " << hit->time() << " energy "
1712  << hit->energy();
1713  }
1714  }
1715  unsigned int nTracks = 0, ngoodTk = 0, nselTk = 0;
1716  int ieta = 999;
1717  for (trkDetItr = trkCaloDirections.begin(); trkDetItr != trkCaloDirections.end(); trkDetItr++, nTracks++) {
1718  bool l3Track = (std::find(goodTks.begin(), goodTks.end(), trkDetItr->trkItr) != goodTks.end());
1719  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1720  math::XYZTLorentzVector v4(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
1721  bool selectTk = spr::goodTrack(pTrack, leadPV_, selectionParameters_, ((verbosity_ / 100) % 10 > 1));
1722  double eMipDR = 9999., e_inCone = 0, conehmaxNearP = 0, mindR = 999.9, hCone = 0;
1723  if (trkDetItr->okHCAL) {
1724  HcalDetId detId = (HcalDetId)(trkDetItr->detIdHCAL);
1725  ieta = detId.ieta();
1726  }
1727  for (unsigned k = 0; k < vec_[0].size(); ++k) {
1728  double deltaR = dR(v4, vec_[0][k]);
1729  if (deltaR < mindR)
1730  mindR = deltaR;
1731  }
1732  if ((verbosity_ / 100) % 10 > 1)
1733  edm::LogVerbatim("IsoTrack") << "Track ECAL " << trkDetItr->okECAL << " HCAL " << trkDetItr->okHCAL << " Flag "
1734  << selectTk;
1735  if (selectTk && trkDetItr->okECAL && trkDetItr->okHCAL) {
1736  ngoodTk++;
1737  int nRH_eMipDR = 0, nNearTRKs = 0;
1738  double e1 = spr::eCone_ecal(geo_,
1741  trkDetItr->pointHCAL,
1742  trkDetItr->pointECAL,
1743  a_neutR1_,
1744  trkDetItr->directionECAL,
1745  nRH_eMipDR);
1746  double e2 = spr::eCone_ecal(geo_,
1749  trkDetItr->pointHCAL,
1750  trkDetItr->pointECAL,
1751  a_neutR2_,
1752  trkDetItr->directionECAL,
1753  nRH_eMipDR);
1754  eMipDR = spr::eCone_ecal(geo_,
1757  trkDetItr->pointHCAL,
1758  trkDetItr->pointECAL,
1759  a_mipR_,
1760  trkDetItr->directionECAL,
1761  nRH_eMipDR);
1762  conehmaxNearP =
1763  spr::chargeIsolationCone(nTracks, trkCaloDirections, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 1));
1764  e_inCone = e2 - e1;
1765  double distFromHotCell = -99.0;
1766  int nRecHitsCone = -99, ietaHotCell = -99, iphiHotCell = -99;
1767  GlobalPoint gposHotCell(0., 0., 0.);
1768  std::vector<DetId> coneRecHitDetIds;
1769  hCone = spr::eCone_hcal(geo_,
1770  hbhe_,
1771  trkDetItr->pointHCAL,
1772  trkDetItr->pointECAL,
1773  a_coneR_,
1774  trkDetItr->directionHCAL,
1775  nRecHitsCone,
1776  coneRecHitDetIds,
1777  distFromHotCell,
1778  ietaHotCell,
1779  iphiHotCell,
1780  gposHotCell,
1781  -1);
1782  if (eMipDR < 1.0)
1783  nselTk++;
1784  }
1785  if (l3Track) {
1786  fillHist(10, v4);
1787  if (selectTk) {
1788  fillHist(11, v4);
1789  fillCuts(0, eMipDR, conehmaxNearP, e_inCone, v4, ieta, (mindR > dr_L1_));
1790  if (conehmaxNearP < cutCharge_) {
1791  fillHist(12, v4);
1792  if (eMipDR < cutMip_) {
1793  fillHist(13, v4);
1794  fillEnergy(1, ieta, hCone, eMipDR, v4);
1795  fillEnergy(0, ieta, hCone, eMipDR, v4);
1796  if (e_inCone < cutNeutral_) {
1797  fillHist(14, v4);
1798  fillEnergy(4, ieta, hCone, eMipDR, v4);
1799  fillEnergy(3, ieta, hCone, eMipDR, v4);
1800  }
1801  }
1802  }
1803  }
1804  } else if (doL2L3_) {
1805  fillHist(15, v4);
1806  if (selectTk) {
1807  fillHist(16, v4);
1808  fillCuts(1, eMipDR, conehmaxNearP, e_inCone, v4, ieta, (mindR > dr_L1_));
1809  if (conehmaxNearP < cutCharge_) {
1810  fillHist(17, v4);
1811  if (eMipDR < cutMip_) {
1812  fillHist(18, v4);
1813  fillEnergy(2, ieta, hCone, eMipDR, v4);
1814  fillEnergy(0, ieta, hCone, eMipDR, v4);
1815  if (e_inCone < cutNeutral_) {
1816  fillHist(19, v4);
1817  fillEnergy(5, ieta, hCone, eMipDR, v4);
1818  fillEnergy(3, ieta, hCone, eMipDR, v4);
1819  }
1820  }
1821  }
1822  }
1823  }
1824  }
1825  // edm::LogVerbatim("IsoTrack") << "Number of tracks selected offline " << nselTk;
1826  }
1827 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
Log< level::Info, true > LogVerbatim
const double a_coneR_
Definition: IsoTrig.cc:164
std::string theTrackQuality_
Definition: IsoTrig.cc:160
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: IsoTrig.cc:193
edm::Handle< HBHERecHitCollection > hbhe_
Definition: IsoTrig.cc:191
const double a_charIsoR_
Definition: IsoTrig.cc:164
const double a_neutR2_
Definition: IsoTrig.cc:165
const int verbosity_
Definition: IsoTrig.cc:156
std::vector< EcalRecHit >::const_iterator const_iterator
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: IsoTrig.cc:192
std::vector< math::XYZTLorentzVector > vec_[3]
Definition: IsoTrig.cc:267
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
Definition: TrackBase.h:640
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const double a_mipR_
Definition: IsoTrig.cc:165
const double dr_L1_
Definition: IsoTrig.cc:164
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
void fillHist(int, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2042
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
const double a_neutR1_
Definition: IsoTrig.cc:165
void fillEnergy(int, int, double, double, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2088
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
constexpr int ieta() const
get the cell ieta
Definition: HcalDetId.h:155
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)
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
bool isValid() const
Definition: HandleBase.h:70
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
unsigned int id
const double cutCharge_
Definition: IsoTrig.cc:166
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
const MagneticField * bField_
Definition: IsoTrig.cc:197
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
const double cutMip_
Definition: IsoTrig.cc:165
const double cutNeutral_
Definition: IsoTrig.cc:166
void fillCuts(int, double, double, double, math::XYZTLorentzVector &, int, bool)
Definition: IsoTrig.cc:2067
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
const bool doL2L3_
Definition: IsoTrig.cc:154
void IsoTrig::studyMipCut ( edm::Handle< reco::TrackCollection > &  trkCollection,
edm::Handle< reco::IsolatedPixelTrackCandidateCollection > &  L2cands 
)
private

Definition at line 1441 of file IsoTrig.cc.

References a_charIsoR_, a_coneR_, a_mipR_, a_neutR1_, a_neutR2_, funct::abs(), barrelRecHitsHandle_, bField_, spr::chargeIsolationCone(), clearMipCutTreeVectors(), cutCharge_, cutMip_, cutNeutral_, dR(), runTauDisplay::dr, spr::eCone_ecal(), spr::eCone_hcal(), endcapRecHitsHandle_, reco::TrackBase::eta(), fillDifferences(), geo_, spr::goodTrack(), h_EnIn, h_EnOut, h_MipEnMatch, h_MipEnNoMatch, hbhe_, mps_fire::i, edm::HandleBase::isValid(), leadPV_, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, MipCutTree_, BeamSpotPI::nTracks, reco::TrackBase::p(), reco::TrackBase::phi(), spr::propagateCALO(), reco::TrackBase::pt(), pushMipCutTreeVecs(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), selectionParameters_, theTrackQuality_, and verbosity_.

Referenced by analyze().

1442  {
1444  if (verbosity_ % 10 > 0)
1445  edm::LogVerbatim("IsoTrack") << "inside studymipcut";
1446  if (!trkCollection.isValid()) {
1447  edm::LogWarning("IsoTrack") << "trkCollection.isValid is false";
1448  } else {
1449  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
1450  std::vector<spr::propagatedTrackDirection> trkCaloDirections1;
1452  trkCollection, geo_, bField_, theTrackQuality_, trkCaloDirections1, ((verbosity_ / 100) % 10 > 2));
1453  if (verbosity_ % 10 > 0)
1454  edm::LogVerbatim("IsoTrack") << "Number of L2cands:" << L2cands->size() << " to be matched to something out of "
1455  << trkCaloDirections1.size() << " reco tracks";
1456  for (unsigned int i = 0; i < L2cands->size(); i++) {
1459  double enIn = candref->energyIn();
1460  h_EnIn->Fill(candref->energyIn());
1461  h_EnOut->Fill(candref->energyOut());
1463  candref->track()->px(), candref->track()->py(), candref->track()->pz(), candref->track()->p());
1464  if (verbosity_ % 10 > 1)
1465  edm::LogVerbatim("IsoTrack") << "HLT Level Candidate eta/phi/pt/enIn:" << candref->track()->eta() << "/"
1466  << candref->track()->phi() << "/" << candref->track()->pt() << "/"
1467  << candref->energyIn();
1468  math::XYZTLorentzVector mindRvec;
1469  double mindR = 999.9, mindP1 = 999.9, eMipDR = 0.0;
1470  std::vector<bool> selFlags;
1471  unsigned int nTracks = 0;
1472  double conehmaxNearP = 0, hCone = 0;
1473  for (trkDetItr = trkCaloDirections1.begin(); trkDetItr != trkCaloDirections1.end(); trkDetItr++, nTracks++) {
1474  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1475  math::XYZTLorentzVector v2(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
1476  double dr = dR(v1, v2);
1477  double dp1 = std::abs(1. / v1.r() - 1. / v2.r());
1478  if (verbosity_ % 1000 > 0)
1479  edm::LogVerbatim("IsoTrack") << "This recotrack(eta/phi/pt) " << pTrack->eta() << "/" << pTrack->phi() << "/"
1480  << pTrack->pt() << " has dr/dp= " << dr << "/" << dp1;
1481  if (dr < mindR) {
1482  mindR = dr;
1483  mindP1 = dp1;
1484  mindRvec = v2;
1485  int nRH_eMipDR = 0, nNearTRKs = 0;
1486  eMipDR = spr::eCone_ecal(geo_,
1489  trkDetItr->pointHCAL,
1490  trkDetItr->pointECAL,
1491  a_mipR_,
1492  trkDetItr->directionECAL,
1493  nRH_eMipDR);
1494  bool selectTk = spr::goodTrack(pTrack, leadPV_, selectionParameters_, ((verbosity_ / 100) % 10 > 1));
1496  oneCutParameters.maxDxyPV = 10;
1497  oneCutParameters.maxDzPV = 100;
1498  oneCutParameters.maxInMiss = 2;
1499  oneCutParameters.maxOutMiss = 2;
1500  bool qltyFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1501  oneCutParameters = selectionParameters_;
1502  oneCutParameters.maxDxyPV = 10;
1503  oneCutParameters.maxDzPV = 100;
1504  bool qltyMissFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1505  oneCutParameters = selectionParameters_;
1506  oneCutParameters.maxInMiss = 2;
1507  oneCutParameters.maxOutMiss = 2;
1508  bool qltyPVFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1509  conehmaxNearP = spr::chargeIsolationCone(
1510  nTracks, trkCaloDirections1, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 1));
1511  double e1 = spr::eCone_ecal(geo_,
1514  trkDetItr->pointHCAL,
1515  trkDetItr->pointECAL,
1516  a_neutR1_,
1517  trkDetItr->directionECAL,
1518  nRH_eMipDR);
1519  double e2 = spr::eCone_ecal(geo_,
1522  trkDetItr->pointHCAL,
1523  trkDetItr->pointECAL,
1524  a_neutR2_,
1525  trkDetItr->directionECAL,
1526  nRH_eMipDR);
1527  double e_inCone = e2 - e1;
1528  bool chgIsolFlag = (conehmaxNearP < cutCharge_);
1529  bool mipFlag = (eMipDR < cutMip_);
1530  bool neuIsolFlag = (e_inCone < cutNeutral_);
1531  bool trkpropFlag = ((trkDetItr->okECAL) && (trkDetItr->okHCAL));
1532  selFlags.clear();
1533  selFlags.push_back(selectTk);
1534  selFlags.push_back(qltyFlag);
1535  selFlags.push_back(qltyMissFlag);
1536  selFlags.push_back(qltyPVFlag);
1537  selFlags.push_back(trkpropFlag);
1538  selFlags.push_back(chgIsolFlag);
1539  selFlags.push_back(neuIsolFlag);
1540  selFlags.push_back(mipFlag);
1541  double distFromHotCell = -99.0;
1542  int nRecHitsCone = -99, ietaHotCell = -99, iphiHotCell = -99;
1543  GlobalPoint gposHotCell(0., 0., 0.);
1544  std::vector<DetId> coneRecHitDetIds;
1545  hCone = spr::eCone_hcal(geo_,
1546  hbhe_,
1547  trkDetItr->pointHCAL,
1548  trkDetItr->pointECAL,
1549  a_coneR_,
1550  trkDetItr->directionHCAL,
1551  nRecHitsCone,
1552  coneRecHitDetIds,
1553  distFromHotCell,
1554  ietaHotCell,
1555  iphiHotCell,
1556  gposHotCell,
1557  -1);
1558  }
1559  }
1560  pushMipCutTreeVecs(v1, mindRvec, enIn, eMipDR, mindR, mindP1, selFlags, hCone);
1561  fillDifferences(6, v1, mindRvec, (verbosity_ % 10 > 0));
1562  if (mindR >= 0.05) {
1563  fillDifferences(8, v1, mindRvec, (verbosity_ % 10 > 0));
1564  h_MipEnNoMatch->Fill(candref->energyIn(), eMipDR);
1565  } else {
1566  fillDifferences(7, v1, mindRvec, (verbosity_ % 10 > 0));
1567  h_MipEnMatch->Fill(candref->energyIn(), eMipDR);
1568  }
1569  }
1570  }
1571  MipCutTree_->Fill();
1572 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
Log< level::Info, true > LogVerbatim
const double a_coneR_
Definition: IsoTrig.cc:164
std::string theTrackQuality_
Definition: IsoTrig.cc:160
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: IsoTrig.cc:193
edm::Handle< HBHERecHitCollection > hbhe_
Definition: IsoTrig.cc:191
TH1D * h_EnIn
Definition: IsoTrig.cc:254
const double a_charIsoR_
Definition: IsoTrig.cc:164
const double a_neutR2_
Definition: IsoTrig.cc:165
const int verbosity_
Definition: IsoTrig.cc:156
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: IsoTrig.cc:192
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
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
Definition: TrackBase.h:640
const double a_mipR_
Definition: IsoTrig.cc:165
void pushMipCutTreeVecs(math::XYZTLorentzVector &NFcand, math::XYZTLorentzVector &Trkcand, double &EmipNFcand, double &EmipTrkcand, double &mindR, double &mindP1, std::vector< bool > &Flags, double hCone)
Definition: IsoTrig.cc:847
TH1D * h_EnOut
Definition: IsoTrig.cc:254
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
const double a_neutR1_
Definition: IsoTrig.cc:165
double pt() const
track transverse momentum
Definition: TrackBase.h:637
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
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)
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
bool isValid() const
Definition: HandleBase.h:70
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
TH2D * h_MipEnMatch
Definition: IsoTrig.cc:255
const double cutCharge_
Definition: IsoTrig.cc:166
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
TTree * MipCutTree_
Definition: IsoTrig.cc:206
void clearMipCutTreeVectors()
Definition: IsoTrig.cc:805
void fillDifferences(int, math::XYZTLorentzVector &, math::XYZTLorentzVector &, bool)
Definition: IsoTrig.cc:2049
const MagneticField * bField_
Definition: IsoTrig.cc:197
TH2D * h_MipEnNoMatch
Definition: IsoTrig.cc:255
Log< level::Warning, false > LogWarning
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
const double cutMip_
Definition: IsoTrig.cc:165
const double cutNeutral_
Definition: IsoTrig.cc:166
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643
void IsoTrig::studyTiming ( const edm::Event theEvent)
private

Definition at line 1330 of file IsoTrig.cc.

References HLT_FULL_cff::deltaR, PVValHelper::dxy, PVValHelper::dz, PVValHelper::eta, edm::Event::getByToken(), AlCaHLTBitMon_ParallelJobs::p, phi, pixelTrackRefsHB_, pixelTrackRefsHE_, edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, dttmaxenums::R, HI_PhotonSkim_cff::rechits, SeedingLayerSetsHits::size(), edmNew::DetSetVector< T >::size(), t_nPixCand, t_nPixSeed, t_timeL2Prod, tauUnbiasCone_, TimingTree_, tok_l1cand_, tok_SeedingLayerHB_, tok_SeedingLayerHE_, tok_SiPixelRecHits_, tok_verthb_, tok_verthe_, trigger::TriggerL1CenJet, trigger::TriggerL1ForJet, trigger::TriggerL1TauJet, verbosity_, and vtxCutSeed_.

Referenced by analyze().

1330  {
1331  t_timeL2Prod->clear();
1332  t_nPixCand->clear();
1333  t_nPixSeed->clear();
1334 
1335  if (verbosity_ % 10 > 0) {
1336  edm::Handle<SeedingLayerSetsHits> hblayers, helayers;
1337  theEvent.getByToken(tok_SeedingLayerHB_, hblayers);
1338  theEvent.getByToken(tok_SeedingLayerHE_, helayers);
1339  const SeedingLayerSetsHits *layershb = hblayers.product();
1340  const SeedingLayerSetsHits *layershe = helayers.product();
1341  edm::LogVerbatim("IsoTrack") << "size of Seeding TripletLayers hb/he " << layershb->size() << "/"
1342  << layershe->size();
1344  theEvent.getByToken(tok_SiPixelRecHits_, rchts);
1345  const SiPixelRecHitCollection *rechits = rchts.product();
1346  edm::LogVerbatim("IsoTrack") << "size of SiPixelRechits " << rechits->size();
1347  }
1348  int nCandHB = pixelTrackRefsHB_.size(), nCandHE = pixelTrackRefsHE_.size();
1349  int nSeedHB = 0, nSeedHE = 0;
1350 
1351  if (nCandHE > 0) {
1352  edm::Handle<reco::VertexCollection> pVertHB, pVertHE;
1353  theEvent.getByToken(tok_verthb_, pVertHB);
1354  theEvent.getByToken(tok_verthe_, pVertHE);
1356  theEvent.getByToken(tok_l1cand_, l1trigobj);
1357 
1358  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1tauobjref;
1359  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1jetobjref;
1360  std::vector<edm::Ref<l1extra::L1JetParticleCollection>> l1forjetobjref;
1361 
1362  l1trigobj->getObjects(trigger::TriggerL1TauJet, l1tauobjref);
1363  l1trigobj->getObjects(trigger::TriggerL1CenJet, l1jetobjref);
1364  l1trigobj->getObjects(trigger::TriggerL1ForJet, l1forjetobjref);
1365 
1366  double ptTriggered = -10;
1367  double etaTriggered = -100;
1368  double phiTriggered = -100;
1369  for (unsigned int p = 0; p < l1tauobjref.size(); p++) {
1370  if (l1tauobjref[p]->pt() > ptTriggered) {
1371  ptTriggered = l1tauobjref[p]->pt();
1372  phiTriggered = l1tauobjref[p]->phi();
1373  etaTriggered = l1tauobjref[p]->eta();
1374  }
1375  }
1376  for (unsigned int p = 0; p < l1jetobjref.size(); p++) {
1377  if (l1jetobjref[p]->pt() > ptTriggered) {
1378  ptTriggered = l1jetobjref[p]->pt();
1379  phiTriggered = l1jetobjref[p]->phi();
1380  etaTriggered = l1jetobjref[p]->eta();
1381  }
1382  }
1383  for (unsigned int p = 0; p < l1forjetobjref.size(); p++) {
1384  if (l1forjetobjref[p]->pt() > ptTriggered) {
1385  ptTriggered = l1forjetobjref[p]->pt();
1386  phiTriggered = l1forjetobjref[p]->phi();
1387  etaTriggered = l1forjetobjref[p]->eta();
1388  }
1389  }
1390  for (unsigned iS = 0; iS < pixelTrackRefsHE_.size(); iS++) {
1391  reco::VertexCollection::const_iterator vitSel;
1392  double minDZ = 100;
1393  bool vtxMatch;
1394  for (reco::VertexCollection::const_iterator vit = pVertHE->begin(); vit != pVertHE->end(); vit++) {
1395  if (fabs(pixelTrackRefsHE_[iS]->dz(vit->position())) < minDZ) {
1396  minDZ = fabs(pixelTrackRefsHE_[iS]->dz(vit->position()));
1397  vitSel = vit;
1398  }
1399  }
1400  //cut on dYX:
1401  if ((fabs(pixelTrackRefsHE_[iS]->dxy(vitSel->position())) < vtxCutSeed_) || (minDZ == 100))
1402  vtxMatch = true;
1403 
1404  //select tracks not matched to triggered L1 jet
1405  double R = deltaR(etaTriggered, phiTriggered, pixelTrackRefsHE_[iS]->eta(), pixelTrackRefsHE_[iS]->phi());
1406  if (R > tauUnbiasCone_ && vtxMatch)
1407  nSeedHE++;
1408  }
1409  for (unsigned iS = 0; iS < pixelTrackRefsHB_.size(); iS++) {
1410  reco::VertexCollection::const_iterator vitSel;
1411  double minDZ = 100;
1412  bool vtxMatch(false);
1413  for (reco::VertexCollection::const_iterator vit = pVertHB->begin(); vit != pVertHB->end(); vit++) {
1414  if (fabs(pixelTrackRefsHB_[iS]->dz(vit->position())) < minDZ) {
1415  minDZ = fabs(pixelTrackRefsHB_[iS]->dz(vit->position()));
1416  vitSel = vit;
1417  }
1418  }
1419  //cut on dYX:
1420  if ((fabs(pixelTrackRefsHB_[iS]->dxy(vitSel->position())) < 101.0) || (minDZ == 100))
1421  vtxMatch = true;
1422 
1423  //select tracks not matched to triggered L1 jet
1424  double R = deltaR(etaTriggered, phiTriggered, pixelTrackRefsHB_[iS]->eta(), pixelTrackRefsHB_[iS]->phi());
1425  if (R > 1.2 && vtxMatch)
1426  nSeedHB++;
1427  }
1428 
1429  if (verbosity_ % 10 > 0) {
1430  edm::LogVerbatim("IsoTrack") << "(HB/HE) nCand: " << nCandHB << "/" << nCandHE << "nSeed: " << nSeedHB << "/"
1431  << nSeedHE;
1432  }
1433  }
1434  t_nPixSeed->push_back(nSeedHB);
1435  t_nPixSeed->push_back(nSeedHE);
1436  t_nPixCand->push_back(nCandHB);
1437  t_nPixCand->push_back(nCandHE);
1438 
1439  TimingTree_->Fill();
1440 }
Log< level::Info, true > LogVerbatim
std::vector< reco::TrackRef > pixelTrackRefsHB_
Definition: IsoTrig.cc:190
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
const int verbosity_
Definition: IsoTrig.cc:156
std::vector< int > * t_nPixSeed
Definition: IsoTrig.cc:209
const double tauUnbiasCone_
Definition: IsoTrig.cc:159
edm::EDGetTokenT< SeedingLayerSetsHits > tok_SeedingLayerHB_
Definition: IsoTrig.cc:179
edm::EDGetTokenT< SeedingLayerSetsHits > tok_SeedingLayerHE_
Definition: IsoTrig.cc:180
std::vector< double > * t_timeL2Prod
Definition: IsoTrig.cc:207
std::vector< reco::TrackRef > pixelTrackRefsHE_
Definition: IsoTrig.cc:190
std::vector< int > * t_nPixCand
Definition: IsoTrig.cc:208
T const * product() const
Definition: Handle.h:70
edm::EDGetTokenT< reco::VertexCollection > tok_verthb_
Definition: IsoTrig.cc:178
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > tok_l1cand_
Definition: IsoTrig.cc:183
size_type size() const
edm::EDGetTokenT< SiPixelRecHitCollection > tok_SiPixelRecHits_
Definition: IsoTrig.cc:181
edm::EDGetTokenT< reco::VertexCollection > tok_verthe_
Definition: IsoTrig.cc:178
unsigned short size() const
Get the number of SeedingLayerSets.
const double vtxCutSeed_
Definition: IsoTrig.cc:158
TTree * TimingTree_
Definition: IsoTrig.cc:206
void IsoTrig::studyTrigger ( edm::Handle< reco::TrackCollection > &  trkCollection,
std::vector< reco::TrackCollection::const_iterator > &  goodTks 
)
private

Definition at line 1574 of file IsoTrig.cc.

References funct::abs(), HLT_FULL_cff::deltaR, dEta(), dPhi(), dR(), runTauDisplay::dr, fillDifferences(), fillHist(), h_dEtaL1, h_dPhiL1, h_dRL1, mps_fire::i, edm::HandleBase::isValid(), dqmiolumiharvest::j, isotrackApplyRegressor::k, mathSSE::sqrt(), vec_, and verbosity_.

Referenced by analyze().

1575  {
1576  if (verbosity_ % 10 > 0)
1577  edm::LogVerbatim("IsoTrack") << "Inside StudyTrigger";
1579  for (int j = 0; j < 3; j++) {
1580  for (unsigned int k = 0; k < vec_[j].size(); k++) {
1581  if (verbosity_ % 10 > 0)
1582  edm::LogVerbatim("IsoTrack") << "vec[" << j << "][" << k << "] pt " << vec_[j][k].pt() << " eta "
1583  << vec_[j][k].eta() << " phi " << vec_[j][k].phi();
1584  fillHist(j, vec_[j][k]);
1585  }
1586  }
1587 
1588  double deta, dphi, dr;
1590  for (int lvl = 1; lvl < 3; lvl++) {
1591  for (unsigned int i = 0; i < vec_[lvl].size(); i++) {
1592  deta = dEta(vec_[0][0], vec_[lvl][i]);
1593  dphi = dPhi(vec_[0][0], vec_[lvl][i]);
1594  dr = dR(vec_[0][0], vec_[lvl][i]);
1595  if (verbosity_ % 10 > 1)
1596  edm::LogVerbatim("IsoTrack") << "lvl " << lvl << " i " << i << " deta " << deta << " dphi " << dphi << " dR "
1597  << dr;
1598  h_dEtaL1[lvl - 1]->Fill(deta);
1599  h_dPhiL1[lvl - 1]->Fill(dphi);
1600  h_dRL1[lvl - 1]->Fill(std::sqrt(dr));
1601  }
1602  }
1603 
1604  math::XYZTLorentzVector mindRvec;
1605  double mindR;
1606  for (unsigned int k = 0; k < vec_[2].size(); ++k) {
1608  mindR = 999.9;
1609  if (verbosity_ % 10 > 1)
1610  edm::LogVerbatim("IsoTrack") << "L3obj: pt " << vec_[2][k].pt() << " eta " << vec_[2][k].eta() << " phi "
1611  << vec_[2][k].phi();
1612  for (unsigned int j = 0; j < vec_[1].size(); j++) {
1613  dr = dR(vec_[2][k], vec_[1][j]);
1614  if (dr < mindR) {
1615  mindR = dr;
1616  mindRvec = vec_[1][j];
1617  }
1618  }
1619  fillDifferences(0, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1620  if (mindR < 0.03) {
1621  fillDifferences(1, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1622  fillHist(6, mindRvec);
1623  fillHist(8, vec_[2][k]);
1624  } else {
1625  fillDifferences(2, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1626  fillHist(7, mindRvec);
1627  fillHist(9, vec_[2][k]);
1628  }
1629 
1631  mindR = 999.9;
1632  if (verbosity_ % 10 > 0)
1633  edm::LogVerbatim("IsoTrack") << "Now Matching L3 track with reco: L3 Track (eta, phi) " << vec_[2][k].eta() << ":"
1634  << vec_[2][k].phi() << " L2 Track " << mindRvec.eta() << ":" << mindRvec.phi()
1635  << " dR " << mindR;
1636  reco::TrackCollection::const_iterator goodTk = trkCollection->end();
1637  if (trkCollection.isValid()) {
1638  double mindP(9999.9);
1639  reco::TrackCollection::const_iterator trkItr;
1640  for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); trkItr++) {
1641  math::XYZTLorentzVector v4(trkItr->px(), trkItr->py(), trkItr->pz(), trkItr->p());
1642  double deltaR = dR(v4, vec_[2][k]);
1643  double dp = std::abs(v4.r() / vec_[2][k].r() - 1.0);
1644  if (deltaR < mindR) {
1645  mindR = deltaR;
1646  mindP = dp;
1647  mindRvec = v4;
1648  goodTk = trkItr;
1649  }
1650  if ((verbosity_ / 10) % 10 > 1 && deltaR < 1.0)
1651  edm::LogVerbatim("IsoTrack") << "reco track: pt " << v4.pt() << " eta " << v4.eta() << " phi " << v4.phi()
1652  << " DR " << deltaR;
1653  }
1654  if (verbosity_ % 10 > 0)
1655  edm::LogVerbatim("IsoTrack") << "Now Matching at Reco level in step 1 DR: " << mindR << ":" << mindP
1656  << " eta:phi " << mindRvec.eta() << ":" << mindRvec.phi();
1657  if (mindR < 0.03 && mindP > 0.1) {
1658  for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); trkItr++) {
1659  math::XYZTLorentzVector v4(trkItr->px(), trkItr->py(), trkItr->pz(), trkItr->p());
1660  double deltaR = dR(v4, vec_[2][k]);
1661  double dp = std::abs(v4.r() / vec_[2][k].r() - 1.0);
1662  if (dp < mindP && deltaR < 0.03) {
1663  mindR = deltaR;
1664  mindP = dp;
1665  mindRvec = v4;
1666  goodTk = trkItr;
1667  }
1668  }
1669  if (verbosity_ % 10 > 0)
1670  edm::LogVerbatim("IsoTrack") << "Now Matching at Reco level in step 2 DR: " << mindR << ":" << mindP
1671  << " eta:phi " << mindRvec.eta() << ":" << mindRvec.phi();
1672  }
1673  fillDifferences(3, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1674  fillHist(3, mindRvec);
1675  if (mindR < 0.03) {
1676  fillDifferences(4, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1677  fillHist(4, mindRvec);
1678  } else {
1679  fillDifferences(5, vec_[2][k], mindRvec, (verbosity_ % 10 > 0));
1680  fillHist(5, mindRvec);
1681  }
1682  if (goodTk != trkCollection->end())
1683  goodTks.push_back(goodTk);
1684  }
1685  }
1686 }
Log< level::Info, true > LogVerbatim
const int verbosity_
Definition: IsoTrig.cc:156
TH1D * h_dEtaL1[2]
Definition: IsoTrig.cc:260
std::vector< math::XYZTLorentzVector > vec_[3]
Definition: IsoTrig.cc:267
TH1D * h_dPhiL1[2]
Definition: IsoTrig.cc:260
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
void fillHist(int, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2042
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isValid() const
Definition: HandleBase.h:70
double dPhi(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2106
double dEta(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2104
double dR(math::XYZTLorentzVector &, math::XYZTLorentzVector &)
Definition: IsoTrig.cc:2121
void fillDifferences(int, math::XYZTLorentzVector &, math::XYZTLorentzVector &, bool)
Definition: IsoTrig.cc:2049
TH1D * h_dRL1[2]
Definition: IsoTrig.cc:260
void IsoTrig::StudyTrkEbyP ( edm::Handle< reco::TrackCollection > &  trkCollection)
private

Definition at line 1206 of file IsoTrig.cc.

References a_charIsoR_, a_coneR_, a_mipR_, a_neutR1_, a_neutR2_, barrelRecHitsHandle_, bField_, spr::chargeIsolationCone(), cutCharge_, cutMip_, cutNeutral_, spr::eCone_ecal(), spr::eCone_hcal(), endcapRecHitsHandle_, geo_, spr::goodTrack(), hbhe_, edm::HandleBase::isValid(), leadPV_, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, BeamSpotPI::nTracks, reco::TrackBase::p(), spr::propagateCALO(), reco::TrackBase::px(), reco::TrackBase::py(), reco::TrackBase::pz(), selectionParameters_, t_TrkhCone, t_TrkMissFlag, t_TrkNuIsolFlag, t_TrkP, t_TrkPVFlag, t_TrkqltyFlag, t_TrkselTkFlag, theTrackQuality_, TrkResTree_, and verbosity_.

Referenced by analyze().

1206  {
1207  t_TrkselTkFlag->clear();
1208  t_TrkqltyFlag->clear();
1209  t_TrkMissFlag->clear();
1210  t_TrkPVFlag->clear();
1211  t_TrkNuIsolFlag->clear();
1212  t_TrkhCone->clear();
1213  t_TrkP->clear();
1214 
1215  if (!trkCollection.isValid()) {
1216  edm::LogVerbatim("IsoTrack") << "trkCollection.isValid is false";
1217  } else {
1218  std::vector<spr::propagatedTrackDirection>::const_iterator trkDetItr;
1219  std::vector<spr::propagatedTrackDirection> trkCaloDirections1;
1221  trkCollection, geo_, bField_, theTrackQuality_, trkCaloDirections1, ((verbosity_ / 100) % 10 > 2));
1222  unsigned int nTracks = 0;
1223  int nRH_eMipDR = 0, nNearTRKs = 0;
1224  std::vector<bool> selFlags;
1225  for (trkDetItr = trkCaloDirections1.begin(); trkDetItr != trkCaloDirections1.end(); trkDetItr++, nTracks++) {
1226  double conehmaxNearP = 0, hCone = 0, eMipDR = 0.0;
1227  const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1228  if (verbosity_ % 10 > 0)
1229  edm::LogVerbatim("IsoTrack") << "track no. " << nTracks << " p(): " << pTrack->p();
1230  if (pTrack->p() > 20) {
1231  math::XYZTLorentzVector v2(pTrack->px(), pTrack->py(), pTrack->pz(), pTrack->p());
1232  eMipDR = spr::eCone_ecal(geo_,
1235  trkDetItr->pointHCAL,
1236  trkDetItr->pointECAL,
1237  a_mipR_,
1238  trkDetItr->directionECAL,
1239  nRH_eMipDR);
1240  bool selectTk = spr::goodTrack(pTrack, leadPV_, selectionParameters_, ((verbosity_ / 100) % 10 > 1));
1242  oneCutParameters.maxDxyPV = 10;
1243  oneCutParameters.maxDzPV = 100;
1244  oneCutParameters.maxInMiss = 2;
1245  oneCutParameters.maxOutMiss = 2;
1246  bool qltyFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1247  oneCutParameters = selectionParameters_;
1248  oneCutParameters.maxDxyPV = 10;
1249  oneCutParameters.maxDzPV = 100;
1250  bool qltyMissFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1251  oneCutParameters = selectionParameters_;
1252  oneCutParameters.maxInMiss = 2;
1253  oneCutParameters.maxOutMiss = 2;
1254  bool qltyPVFlag = spr::goodTrack(pTrack, leadPV_, oneCutParameters, ((verbosity_ / 100) % 10 > 1));
1255  if ((verbosity_ / 1000) % 10 > 1)
1256  edm::LogVerbatim("IsoTrack") << "sel " << selectTk << "ntracks " << nTracks << " a_charIsoR " << a_charIsoR_
1257  << " nNearTRKs " << nNearTRKs;
1258  conehmaxNearP = spr::chargeIsolationCone(
1259  nTracks, trkCaloDirections1, a_charIsoR_, nNearTRKs, ((verbosity_ / 100) % 10 > 1));
1260  if ((verbosity_ / 1000) % 10 > 1)
1261  edm::LogVerbatim("IsoTrack") << "coneh " << conehmaxNearP << "ok " << trkDetItr->okECAL << " "
1262  << trkDetItr->okHCAL;
1263  double e1 = spr::eCone_ecal(geo_,
1266  trkDetItr->pointHCAL,
1267  trkDetItr->pointECAL,
1268  a_neutR1_,
1269  trkDetItr->directionECAL,
1270  nRH_eMipDR);
1271  double e2 = spr::eCone_ecal(geo_,
1274  trkDetItr->pointHCAL,
1275  trkDetItr->pointECAL,
1276  a_neutR2_,
1277  trkDetItr->directionECAL,
1278  nRH_eMipDR);
1279  double e_inCone = e2 - e1;
1280  bool chgIsolFlag = (conehmaxNearP < cutCharge_);
1281  bool mipFlag = (eMipDR < cutMip_);
1282  bool neuIsolFlag = (e_inCone < cutNeutral_);
1283  bool trkpropFlag = ((trkDetItr->okECAL) && (trkDetItr->okHCAL));
1284  selFlags.clear();
1285  selFlags.push_back(selectTk);
1286  selFlags.push_back(qltyFlag);
1287  selFlags.push_back(qltyMissFlag);
1288  selFlags.push_back(qltyPVFlag);
1289  if (verbosity_ % 10 > 0)
1290  edm::LogVerbatim("IsoTrack") << "emip: " << eMipDR << "<" << cutMip_ << "(" << mipFlag << ")"
1291  << " ; ok: " << trkDetItr->okECAL << "/" << trkDetItr->okHCAL
1292  << " ; chgiso: " << conehmaxNearP << "<" << cutCharge_ << "(" << chgIsolFlag
1293  << ")";
1294 
1295  if (chgIsolFlag && mipFlag && trkpropFlag) {
1296  double distFromHotCell = -99.0;
1297  int nRecHitsCone = -99, ietaHotCell = -99, iphiHotCell = -99;
1298  GlobalPoint gposHotCell(0., 0., 0.);
1299  std::vector<DetId> coneRecHitDetIds;
1300  hCone = spr::eCone_hcal(geo_,
1301  hbhe_,
1302  trkDetItr->pointHCAL,
1303  trkDetItr->pointECAL,
1304  a_coneR_,
1305  trkDetItr->directionHCAL,
1306  nRecHitsCone,
1307  coneRecHitDetIds,
1308  distFromHotCell,
1309  ietaHotCell,
1310  iphiHotCell,
1311  gposHotCell,
1312  -1);
1313  // push vectors into the Tree
1314  t_TrkselTkFlag->push_back(selFlags[0]);
1315  t_TrkqltyFlag->push_back(selFlags[1]);
1316  t_TrkMissFlag->push_back(selFlags[2]);
1317  t_TrkPVFlag->push_back(selFlags[3]);
1318  t_TrkNuIsolFlag->push_back(neuIsolFlag);
1319  t_TrkhCone->push_back(hCone);
1320  t_TrkP->push_back(pTrack->p());
1321  }
1322  }
1323  }
1324  if (verbosity_ % 10 > 0)
1325  edm::LogVerbatim("IsoTrack") << "Filling " << t_TrkP->size() << " tracks in TrkRestree out of " << nTracks;
1326  }
1327  TrkResTree_->Fill();
1328 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
Log< level::Info, true > LogVerbatim
const double a_coneR_
Definition: IsoTrig.cc:164
std::string theTrackQuality_
Definition: IsoTrig.cc:160
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
edm::Handle< EcalRecHitCollection > endcapRecHitsHandle_
Definition: IsoTrig.cc:193
edm::Handle< HBHERecHitCollection > hbhe_
Definition: IsoTrig.cc:191
const double a_charIsoR_
Definition: IsoTrig.cc:164
const double a_neutR2_
Definition: IsoTrig.cc:165
const int verbosity_
Definition: IsoTrig.cc:156
edm::Handle< EcalRecHitCollection > barrelRecHitsHandle_
Definition: IsoTrig.cc:192
std::vector< double > * t_TrkhCone
Definition: IsoTrig.cc:212
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
Definition: TrackBase.h:640
const double a_mipR_
Definition: IsoTrig.cc:165
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
std::vector< bool > * t_TrkNuIsolFlag
Definition: IsoTrig.cc:218
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
std::vector< bool > * t_TrkPVFlag
Definition: IsoTrig.cc:217
const double a_neutR1_
Definition: IsoTrig.cc:165
std::vector< double > * t_TrkP
Definition: IsoTrig.cc:213
spr::trackSelectionParameters selectionParameters_
Definition: IsoTrig.cc:163
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)
const CaloGeometry * geo_
Definition: IsoTrig.cc:198
bool isValid() const
Definition: HandleBase.h:70
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:646
const double cutCharge_
Definition: IsoTrig.cc:166
std::vector< bool > * t_TrkMissFlag
Definition: IsoTrig.cc:216
std::vector< bool > * t_TrkqltyFlag
Definition: IsoTrig.cc:215
TTree * TrkResTree_
Definition: IsoTrig.cc:206
const MagneticField * bField_
Definition: IsoTrig.cc:197
math::XYZPoint leadPV_
Definition: IsoTrig.cc:199
const double cutMip_
Definition: IsoTrig.cc:165
const double cutNeutral_
Definition: IsoTrig.cc:166
std::vector< bool > * t_TrkselTkFlag
Definition: IsoTrig.cc:214
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:643

Member Data Documentation

const double IsoTrig::a_charIsoR_
private
const double IsoTrig::a_coneR_
private

Definition at line 164 of file IsoTrig.cc.

Referenced by IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const double IsoTrig::a_mipR_
private

Definition at line 165 of file IsoTrig.cc.

Referenced by getGoodTracks(), IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const double IsoTrig::a_neutIsoR_
private

Definition at line 164 of file IsoTrig.cc.

Referenced by IsoTrig().

const double IsoTrig::a_neutR1_
private

Definition at line 165 of file IsoTrig.cc.

Referenced by IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const double IsoTrig::a_neutR2_
private

Definition at line 165 of file IsoTrig.cc.

Referenced by IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

edm::Handle<EcalRecHitCollection> IsoTrig::barrelRecHitsHandle_
private

Definition at line 192 of file IsoTrig.cc.

Referenced by analyze(), getGoodTracks(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

edm::Handle<reco::BeamSpot> IsoTrig::beamSpotH_
private

Definition at line 194 of file IsoTrig.cc.

Referenced by analyze().

const MagneticField* IsoTrig::bField_
private
double IsoTrig::bfVal_
private

Definition at line 162 of file IsoTrig.cc.

Referenced by analyze(), and GetEtaPhiAtEcal().

bool IsoTrig::changed_
private

Definition at line 203 of file IsoTrig.cc.

Referenced by analyze(), and beginRun().

TTree * IsoTrig::ChgIsolnTree_
private

Definition at line 206 of file IsoTrig.cc.

Referenced by beginJob(), and chgIsolation().

const double IsoTrig::cutCharge_
private

Definition at line 166 of file IsoTrig.cc.

Referenced by fillCuts(), IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const double IsoTrig::cutMip_
private

Definition at line 165 of file IsoTrig.cc.

Referenced by fillCuts(), IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const double IsoTrig::cutNeutral_
private

Definition at line 166 of file IsoTrig.cc.

Referenced by fillCuts(), IsoTrig(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

const bool IsoTrig::doChgIsolTree_
private

Definition at line 155 of file IsoTrig.cc.

Referenced by analyze(), beginJob(), and IsoTrig().

const bool IsoTrig::doL2L3_
private

Definition at line 154 of file IsoTrig.cc.

Referenced by analyze(), beginJob(), and studyIsolation().

const bool IsoTrig::doMipCutTree_
private

Definition at line 154 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

const bool IsoTrig::doStudyIsol_
private

Definition at line 155 of file IsoTrig.cc.

Referenced by analyze().

const bool IsoTrig::doTiming_
private

Definition at line 154 of file IsoTrig.cc.

Referenced by analyze(), beginJob(), and IsoTrig().

const bool IsoTrig::doTrkResTree_
private

Definition at line 155 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

const double IsoTrig::dr_L1_
private

Definition at line 164 of file IsoTrig.cc.

Referenced by studyIsolation().

edm::Handle<EcalRecHitCollection> IsoTrig::endcapRecHitsHandle_
private

Definition at line 193 of file IsoTrig.cc.

Referenced by analyze(), getGoodTracks(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

edm::Service<TFileService> IsoTrig::fs_
private

Definition at line 205 of file IsoTrig.cc.

Referenced by beginJob(), and endJob().

TH1I * IsoTrig::g_Accepts
private

Definition at line 266 of file IsoTrig.cc.

Referenced by endJob().

TH1I* IsoTrig::g_Pre
private

Definition at line 266 of file IsoTrig.cc.

Referenced by endJob().

TH1I * IsoTrig::g_PreHLT
private

Definition at line 266 of file IsoTrig.cc.

Referenced by endJob().

TH1I * IsoTrig::g_PreL1
private

Definition at line 266 of file IsoTrig.cc.

Referenced by endJob().

const CaloGeometry* IsoTrig::geo_
private
TH1D* IsoTrig::h_dEta[9]
private

Definition at line 261 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH1D* IsoTrig::h_dEtaL1[2]
private

Definition at line 260 of file IsoTrig.cc.

Referenced by beginJob(), and studyTrigger().

TH1D* IsoTrig::h_dinvPt[9]
private

Definition at line 262 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH1D * IsoTrig::h_dP[9]
private

Definition at line 261 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH1D * IsoTrig::h_dPhi[9]
private

Definition at line 261 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH1D * IsoTrig::h_dPhiL1[2]
private

Definition at line 260 of file IsoTrig.cc.

Referenced by beginJob(), and studyTrigger().

TH1D * IsoTrig::h_dPt[9]
private

Definition at line 261 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH1D * IsoTrig::h_dRL1[2]
private

Definition at line 260 of file IsoTrig.cc.

Referenced by beginJob(), and studyTrigger().

TH1D * IsoTrig::h_eCalo[5][6][48]
private

Definition at line 265 of file IsoTrig.cc.

Referenced by beginJob(), and fillEnergy().

TH1D* IsoTrig::h_eHcal[5][6][48]
private

Definition at line 265 of file IsoTrig.cc.

Referenced by beginJob(), and fillEnergy().

TH1D* IsoTrig::h_eMaxNearP[2]
private

Definition at line 263 of file IsoTrig.cc.

Referenced by beginJob(), and fillCuts().

TH1D * IsoTrig::h_eMip[2]
private

Definition at line 262 of file IsoTrig.cc.

Referenced by beginJob(), and fillCuts().

TH1D * IsoTrig::h_eNeutIso[2]
private

Definition at line 263 of file IsoTrig.cc.

Referenced by beginJob(), and fillCuts().

TH1D* IsoTrig::h_EnIn
private

Definition at line 254 of file IsoTrig.cc.

Referenced by beginJob(), and studyMipCut().

TH1D * IsoTrig::h_EnOut
private

Definition at line 254 of file IsoTrig.cc.

Referenced by beginJob(), and studyMipCut().

TH1D * IsoTrig::h_eta[20]
private

Definition at line 259 of file IsoTrig.cc.

Referenced by beginJob(), and fillHist().

TH1D* IsoTrig::h_etaCalibTracks[5][2][2]
private

Definition at line 264 of file IsoTrig.cc.

Referenced by beginJob(), and fillCuts().

TH1D * IsoTrig::h_etaMipTracks[5][2][2]
private

Definition at line 264 of file IsoTrig.cc.

Referenced by beginJob(), and fillCuts().

TH1I * IsoTrig::h_Filters
private

Definition at line 257 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1I * IsoTrig::h_HLT
private

Definition at line 256 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D * IsoTrig::h_L1ObjEnergy
private

Definition at line 258 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D * IsoTrig::h_mindR[9]
private

Definition at line 262 of file IsoTrig.cc.

Referenced by beginJob(), and fillDifferences().

TH2D* IsoTrig::h_MipEnMatch
private

Definition at line 255 of file IsoTrig.cc.

Referenced by beginJob(), and studyMipCut().

TH2D * IsoTrig::h_MipEnNoMatch
private

Definition at line 255 of file IsoTrig.cc.

Referenced by beginJob(), and studyMipCut().

TH1I* IsoTrig::h_nHLT
private

Definition at line 256 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1I * IsoTrig::h_nL3Objs
private

Definition at line 257 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D* IsoTrig::h_p[20]
private

Definition at line 259 of file IsoTrig.cc.

Referenced by beginJob(), and fillHist().

TH1D * IsoTrig::h_phi[20]
private

Definition at line 259 of file IsoTrig.cc.

Referenced by beginJob(), and fillHist().

TH1I* IsoTrig::h_Pre
private

Definition at line 257 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1I * IsoTrig::h_PreHLT
private

Definition at line 256 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D * IsoTrig::h_PreHLTwt
private

Definition at line 258 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1I * IsoTrig::h_PreL1
private

Definition at line 256 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D* IsoTrig::h_PreL1wt
private

Definition at line 258 of file IsoTrig.cc.

Referenced by analyze(), and beginJob().

TH1D * IsoTrig::h_pt[20]
private

Definition at line 259 of file IsoTrig.cc.

Referenced by beginJob(), and fillHist().

edm::Handle<HBHERecHitCollection> IsoTrig::hbhe_
private

Definition at line 191 of file IsoTrig.cc.

Referenced by analyze(), studyIsolation(), studyMipCut(), and StudyTrkEbyP().

HLTPrescaleProvider IsoTrig::hltPrescaleProvider_
private

Definition at line 150 of file IsoTrig.cc.

Referenced by analyze(), and beginRun().

const edm::InputTag IsoTrig::l1CandTag_
private

Definition at line 152 of file IsoTrig.cc.

Referenced by IsoTrig().

const edm::InputTag IsoTrig::l2CandTag_
private

Definition at line 152 of file IsoTrig.cc.

Referenced by IsoTrig().

math::XYZPoint IsoTrig::leadPV_
private
const int IsoTrig::maxRunNo_
private

Definition at line 167 of file IsoTrig.cc.

Referenced by endJob().

const double IsoTrig::minPTrackValue_
private

Definition at line 158 of file IsoTrig.cc.

Referenced by chgIsolation(), and IsoTrig().

const int IsoTrig::minRunNo_
private

Definition at line 167 of file IsoTrig.cc.

Referenced by endJob().

TTree* IsoTrig::MipCutTree_
private

Definition at line 206 of file IsoTrig.cc.

Referenced by beginJob(), and studyMipCut().

const edm::InputTag IsoTrig::pixCandTag_
private

Definition at line 152 of file IsoTrig.cc.

Referenced by IsoTrig().

const std::vector<double> IsoTrig::pixelIsolationConeSizeAtEC_
private

Definition at line 157 of file IsoTrig.cc.

Referenced by chgIsolation(), and IsoTrig().

std::vector<reco::TrackRef> IsoTrig::pixelTrackRefsHB_
private

Definition at line 190 of file IsoTrig.cc.

Referenced by analyze(), and studyTiming().

std::vector<reco::TrackRef> IsoTrig::pixelTrackRefsHE_
private

Definition at line 190 of file IsoTrig.cc.

Referenced by analyze(), chgIsolation(), and studyTiming().

const std::vector<edm::InputTag> IsoTrig::pixelTracksSources_
private

Definition at line 153 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

double IsoTrig::pLimits_[6]
private

Definition at line 204 of file IsoTrig.cc.

Referenced by beginJob(), fillCuts(), fillEnergy(), and IsoTrig().

const double IsoTrig::prelimCone_
private

Definition at line 159 of file IsoTrig.cc.

Referenced by chgIsolation(), and IsoTrig().

const std::string IsoTrig::processName_
private

Definition at line 161 of file IsoTrig.cc.

Referenced by beginRun(), and IsoTrig().

double IsoTrig::rEB_
private

Definition at line 162 of file IsoTrig.cc.

Referenced by getDistInCM(), GetEtaPhiAtEcal(), and IsoTrig().

edm::Handle<reco::VertexCollection> IsoTrig::recVtxs_
private

Definition at line 195 of file IsoTrig.cc.

Referenced by analyze(), and chgIsolation().

spr::trackSelectionParameters IsoTrig::selectionParameters_
private
std::vector<double>* IsoTrig::t_ECone
private

Definition at line 252 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFcandEmip
private

Definition at line 236 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFcandEta
private

Definition at line 234 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFcandP
private

Definition at line 232 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFcandPhi
private

Definition at line 235 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFcandPt
private

Definition at line 233 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkcandEmip
private

Definition at line 241 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkcandEta
private

Definition at line 239 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkcandP
private

Definition at line 237 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkcandPhi
private

Definition at line 240 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkcandPt
private

Definition at line 238 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkChgIsoFlag
private

Definition at line 249 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkMinDP1
private

Definition at line 243 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_NFTrkMinDR
private

Definition at line 242 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkMipFlag
private

Definition at line 251 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkMissFlag
private

Definition at line 246 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkNeuIsoFlag
private

Definition at line 250 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkPropFlag
private

Definition at line 248 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkPVFlag
private

Definition at line 247 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkqltyFlag
private

Definition at line 245 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_NFTrkselTkFlag
private

Definition at line 244 of file IsoTrig.cc.

Referenced by beginJob(), clearMipCutTreeVectors(), pushMipCutTreeVecs(), and ~IsoTrig().

std::vector<int>* IsoTrig::t_nGoodTk
private

Definition at line 210 of file IsoTrig.cc.

Referenced by beginJob(), getGoodTracks(), and ~IsoTrig().

std::vector<int>* IsoTrig::t_nPixCand
private

Definition at line 208 of file IsoTrig.cc.

Referenced by beginJob(), studyTiming(), and ~IsoTrig().

std::vector<int>* IsoTrig::t_nPixSeed
private

Definition at line 209 of file IsoTrig.cc.

Referenced by beginJob(), studyTiming(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixcandEta
private

Definition at line 222 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<std::vector<double> >* IsoTrig::t_PixcandMaxP
private

Definition at line 224 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixcandP
private

Definition at line 220 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixcandPhi
private

Definition at line 223 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixcandPt
private

Definition at line 221 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixTrkcandEta
private

Definition at line 227 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixTrkcandMaxP
private

Definition at line 229 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixTrkcandP
private

Definition at line 225 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixTrkcandPhi
private

Definition at line 228 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_PixTrkcandPt
private

Definition at line 226 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_PixTrkcandselTk
private

Definition at line 230 of file IsoTrig.cc.

Referenced by beginJob(), clearChgIsolnTreeVectors(), pushChgIsolnTreeVecs(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_timeL2Prod
private

Definition at line 207 of file IsoTrig.cc.

Referenced by beginJob(), studyTiming(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_TrkhCone
private

Definition at line 212 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_TrkMissFlag
private

Definition at line 216 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_TrkNuIsolFlag
private

Definition at line 218 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<double>* IsoTrig::t_TrkP
private

Definition at line 213 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_TrkPVFlag
private

Definition at line 217 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_TrkqltyFlag
private

Definition at line 215 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

std::vector<bool>* IsoTrig::t_TrkselTkFlag
private

Definition at line 214 of file IsoTrig.cc.

Referenced by beginJob(), StudyTrkEbyP(), and ~IsoTrig().

const double IsoTrig::tauUnbiasCone_
private

Definition at line 159 of file IsoTrig.cc.

Referenced by chgIsolation(), IsoTrig(), and studyTiming().

std::string IsoTrig::theTrackQuality_
private
TTree * IsoTrig::TimingTree_
private

Definition at line 206 of file IsoTrig.cc.

Referenced by beginJob(), and studyTiming().

edm::EDGetTokenT<reco::BeamSpot> IsoTrig::tok_bs_
private

Definition at line 174 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<EcalRecHitCollection> IsoTrig::tok_EB_
private

Definition at line 175 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<EcalRecHitCollection> IsoTrig::tok_EE_
private

Definition at line 176 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<reco::TrackCollection> IsoTrig::tok_genTrack_
private

Definition at line 172 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> IsoTrig::tok_geom_
private

Definition at line 187 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<HBHERecHitCollection> IsoTrig::tok_hbhe_
private

Definition at line 177 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

Definition at line 171 of file IsoTrig.cc.

Referenced by IsoTrig().

Definition at line 183 of file IsoTrig.cc.

Referenced by analyze(), getGoodTracks(), IsoTrig(), and studyTiming().

Definition at line 184 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<LumiDetails> IsoTrig::tok_lumi_
private

Definition at line 168 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> IsoTrig::tok_magField_
private

Definition at line 188 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

Definition at line 182 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

std::vector<edm::EDGetTokenT<reco::TrackCollection> > IsoTrig::tok_pixtks_
private

Definition at line 185 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<reco::VertexCollection> IsoTrig::tok_recVtx_
private

Definition at line 173 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<SeedingLayerSetsHits> IsoTrig::tok_SeedingLayerHB_
private

Definition at line 179 of file IsoTrig.cc.

Referenced by IsoTrig(), and studyTiming().

edm::EDGetTokenT<SeedingLayerSetsHits> IsoTrig::tok_SeedingLayerHE_
private

Definition at line 180 of file IsoTrig.cc.

Referenced by IsoTrig(), and studyTiming().

edm::EDGetTokenT<SiPixelRecHitCollection> IsoTrig::tok_SiPixelRecHits_
private

Definition at line 181 of file IsoTrig.cc.

Referenced by IsoTrig(), and studyTiming().

edm::EDGetTokenT<trigger::TriggerEvent> IsoTrig::tok_trigEvt_
private

Definition at line 169 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<edm::TriggerResults> IsoTrig::tok_trigRes_
private

Definition at line 170 of file IsoTrig.cc.

Referenced by analyze(), and IsoTrig().

edm::EDGetTokenT<reco::VertexCollection> IsoTrig::tok_verthb_
private

Definition at line 178 of file IsoTrig.cc.

Referenced by IsoTrig(), and studyTiming().

edm::EDGetTokenT<reco::VertexCollection> IsoTrig::tok_verthe_
private

Definition at line 178 of file IsoTrig.cc.

Referenced by IsoTrig(), and studyTiming().

std::map<unsigned int, unsigned int> IsoTrig::trigList_
private

Definition at line 201 of file IsoTrig.cc.

Referenced by analyze(), and endJob().

const std::vector<std::string> IsoTrig::trigNames_
private

Definition at line 151 of file IsoTrig.cc.

Referenced by analyze(), and endJob().

std::map<unsigned int, const std::pair<int, int> > IsoTrig::trigPreList_
private

Definition at line 202 of file IsoTrig.cc.

Referenced by analyze(), and endJob().

TTree * IsoTrig::TrkResTree_
private

Definition at line 206 of file IsoTrig.cc.

Referenced by beginJob(), and StudyTrkEbyP().

std::vector<math::XYZTLorentzVector> IsoTrig::vec_[3]
private

Definition at line 267 of file IsoTrig.cc.

Referenced by analyze(), etaPhiTrigger(), studyIsolation(), and studyTrigger().

const int IsoTrig::verbosity_
private
const double IsoTrig::vtxCutIsol_
private

Definition at line 158 of file IsoTrig.cc.

Referenced by chgIsolation(), and IsoTrig().

const double IsoTrig::vtxCutSeed_
private

Definition at line 158 of file IsoTrig.cc.

Referenced by chgIsolation(), IsoTrig(), and studyTiming().

double IsoTrig::zEE_
private

Definition at line 162 of file IsoTrig.cc.

Referenced by getDistInCM(), GetEtaPhiAtEcal(), and IsoTrig().