CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
StudyCaloResponse Class Reference

#include <Calibration/IsolatedParticles/plugins/StudyCaloResponse.cc>

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

Public Member Functions

 StudyCaloResponse (const edm::ParameterSet &)
 
 ~StudyCaloResponse () 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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices 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 (edm::Event const &, edm::EventSetup const &) override
 
void beginJob () override
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
void beginRun (edm::Run const &, edm::EventSetup const &) override
 
void clear ()
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
void fillEnergy (int, int, double, double, double, double, double)
 
void fillIsolation (int, double, double, double)
 
void fillTrack (int, double, double, double, double)
 
int trackPID (const reco::Track *, const edm::Handle< reco::GenParticleCollection > &)
 
std::string truncate_str (const std::string &)
 

Private Attributes

bool changed_
 
const double cutEcal_
 
const double cutMuon_
 
const double cutRatio_
 
const bool doTree_
 
int etaBin_ [nEtaBin_+1]
 
const double eThrEB_
 
const double eThrEE_
 
const double eThrHB_
 
const double eThrHE_
 
bool firstEvent_
 
edm::Service< TFileServicefs_
 
TH1D * h_counter [8]
 
TH1D * h_ediff [2]
 
TH1D * h_ene1 [2]
 
TH1D * h_ene2 [2]
 
TH1D * h_energy [nPVBin_+8][nPBin_][nEtaBin_][6]
 
TH1D * h_eta [nGen_+2]
 
TH1I * h_goodPV
 
TH1I * h_goodRun
 
TH1D * h_h_pNew [8]
 
TH1I * h_HLTAccept
 
std::vector< TH1I * > h_HLTAccepts
 
TH1I * h_HLTCorr
 
TH1D * h_maxNearP [2]
 
TH1I * h_nHLT
 
TH2I * h_nHLTvsRN
 
TH1I * h_ntrk [2]
 
TH1I * h_numberPV
 
TH1D * h_p [nGen_+2]
 
TH1D * h_phi [nGen_+2]
 
TH1D * h_pt [nGen_+2]
 
HLTConfigProvider hltConfig_
 
std::vector< std::string > HLTNames_
 
const bool isItAOD_
 
const edm::InputTag labelGenTrack_
 
const edm::InputTag labelMuon_
 
const double maxTrackEta_
 
const double minTrackP_
 
const std::vector< std::string > newNames_
 
int nRun_
 
double pBin_ [nPBin_+1]
 
const std::vector< double > puWeights_
 
int pvBin_ [nPVBin_+1]
 
spr::trackSelectionParameters selectionParameters_
 
const std::string theTrackQuality_
 
const edm::InputTag theTriggerResultsLabel_
 
const double tMaxE_
 
const double tMaxH_
 
const double tMinE_
 
const double tMinH_
 
edm::ESGetToken< CaloTopology, CaloTopologyRecordtok_caloTopology_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EB_
 
edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcdtok_ecalChStatus_
 
edm::EDGetTokenT< EcalRecHitCollectiontok_EE_
 
edm::EDGetTokenT< GenEventInfoProducttok_ew_
 
edm::EDGetTokenT< reco::TrackCollectiontok_genTrack_
 
edm::ESGetToken< CaloGeometry, CaloGeometryRecordtok_geom_
 
edm::EDGetTokenT< HBHERecHitCollectiontok_hbhe_
 
edm::EDGetTokenT< LumiDetailstok_lumi
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtok_magField_
 
edm::EDGetTokenT< reco::MuonCollectiontok_Muon_
 
edm::EDGetTokenT< reco::GenParticleCollectiontok_parts_
 
edm::EDGetTokenT< reco::VertexCollectiontok_recVtx_
 
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcdtok_sevlv_
 
edm::ESGetToken< HcalTopology, HcalRecNumberingRecordtok_topo_
 
edm::EDGetTokenT< trigger::TriggerEventtok_trigEvt
 
edm::EDGetTokenT< edm::TriggerResultstok_trigRes
 
double tr_eventWeight
 
std::vector< double > tr_FE11x11P
 
std::vector< double > tr_FE15x15P
 
std::vector< double > tr_FE7x7P
 
int tr_goodPV
 
int tr_goodRun
 
std::vector< double > tr_H3x3
 
std::vector< double > tr_H5x5
 
std::vector< double > tr_H7x7
 
std::vector< int > tr_iEta
 
std::vector< double > tr_MaxNearHcalP7x7
 
std::vector< double > tr_MaxNearP31X31
 
std::vector< bool > tr_SE11x11P
 
std::vector< bool > tr_SE15x15P
 
std::vector< bool > tr_SE7x7P
 
std::vector< std::string > tr_TrigName
 
std::vector< double > tr_TrkEta
 
std::vector< int > tr_TrkID
 
std::vector< double > tr_TrkP
 
std::vector< double > tr_TrkPhi
 
std::vector< double > tr_TrkPt
 
TTree * tree_
 
const edm::InputTag triggerEvent_
 
const std::vector< std::string > trigNames_
 
const int verbosity_
 
const bool vetoEcal_
 
const bool vetoMuon_
 
const bool vetoTrigger_
 

Static Private Attributes

static const int nEtaBin_ = 4
 
static const int nGen_ = (nPVBin_ + 12)
 
static const int nPBin_ = 15
 
static const int nPVBin_ = 4
 

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 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: Studies single particle response measurements in data/MC

Implementation: <Notes on="" implementation>="">

Definition at line 85 of file StudyCaloResponse.cc.

Constructor & Destructor Documentation

◆ StudyCaloResponse()

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

Definition at line 169 of file StudyCaloResponse.cc.

References changed_, cutEcal_, cutMuon_, cutRatio_, doTree_, etaBin_, HLT_2023v12_cff::etaBins, firstEvent_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), mps_fire::i, ProducerED_cfi::InputTag, isItAOD_, dqmdumpme::k, TFileService::kSharedResource, labelGenTrack_, labelMuon_, spr::trackSelectionParameters::maxChi2, spr::trackSelectionParameters::maxDpOverP, spr::trackSelectionParameters::maxDxyPV, spr::trackSelectionParameters::maxDzPV, spr::trackSelectionParameters::maxInMiss, spr::trackSelectionParameters::maxOutMiss, maxTrackEta_, spr::trackSelectionParameters::minLayerCrossed, spr::trackSelectionParameters::minOuterHit, spr::trackSelectionParameters::minPt, spr::trackSelectionParameters::minQuality, minTrackP_, nEtaBin_, nPBin_, nPVBin_, pBin_, pvBin_, reco::TrackBase::qualityByName(), selectionParameters_, theTrackQuality_, theTriggerResultsLabel_, tMaxE_, tMaxH_, tMinE_, tMinH_, tok_caloTopology_, tok_EB_, tok_ecalChStatus_, tok_EE_, tok_ew_, tok_genTrack_, tok_geom_, tok_hbhe_, tok_lumi, tok_magField_, tok_Muon_, tok_parts_, tok_recVtx_, tok_sevlv_, tok_topo_, tok_trigEvt, tok_trigRes, StandaloneTrackMonitor_cfi::trackQuality, triggerEvent_, trigNames_, verbosity_, vetoEcal_, vetoMuon_, and vetoTrigger_.

170  : verbosity_(iConfig.getUntrackedParameter<int>("verbosity")),
171  trigNames_(iConfig.getUntrackedParameter<std::vector<std::string> >("triggers")),
172  newNames_(iConfig.getUntrackedParameter<std::vector<std::string> >("newNames")),
173  labelMuon_(iConfig.getUntrackedParameter<edm::InputTag>("labelMuon")),
174  labelGenTrack_(iConfig.getUntrackedParameter<edm::InputTag>("labelTrack")),
175  theTrackQuality_(iConfig.getUntrackedParameter<std::string>("trackQuality")),
176  minTrackP_(iConfig.getUntrackedParameter<double>("minTrackP")),
177  maxTrackEta_(iConfig.getUntrackedParameter<double>("maxTrackEta")),
178  tMinE_(iConfig.getUntrackedParameter<double>("timeMinCutECAL")),
179  tMaxE_(iConfig.getUntrackedParameter<double>("timeMaxCutECAL")),
180  tMinH_(iConfig.getUntrackedParameter<double>("timeMinCutHCAL")),
181  tMaxH_(iConfig.getUntrackedParameter<double>("timeMaxCutHCAL")),
182  eThrEB_(iConfig.getUntrackedParameter<double>("thresholdEB")),
183  eThrEE_(iConfig.getUntrackedParameter<double>("thresholdEE")),
184  eThrHB_(iConfig.getUntrackedParameter<double>("thresholdHB")),
185  eThrHE_(iConfig.getUntrackedParameter<double>("thresholdHE")),
186  isItAOD_(iConfig.getUntrackedParameter<bool>("isItAOD")),
187  vetoTrigger_(iConfig.getUntrackedParameter<bool>("vetoTrigger")),
188  doTree_(iConfig.getUntrackedParameter<bool>("doTree")),
189  vetoMuon_(iConfig.getUntrackedParameter<bool>("vetoMuon")),
190  vetoEcal_(iConfig.getUntrackedParameter<bool>("vetoEcal")),
191  cutMuon_(iConfig.getUntrackedParameter<double>("cutMuon")),
192  cutEcal_(iConfig.getUntrackedParameter<double>("cutEcal")),
193  cutRatio_(iConfig.getUntrackedParameter<double>("cutRatio")),
194  puWeights_(iConfig.getUntrackedParameter<std::vector<double> >("puWeights")),
195  triggerEvent_(edm::InputTag("hltTriggerSummaryAOD", "", "HLT")),
196  theTriggerResultsLabel_(edm::InputTag("TriggerResults", "", "HLT")),
197  nRun_(0) {
198  usesResource(TFileService::kSharedResource);
199 
201  selectionParameters_.minPt = iConfig.getUntrackedParameter<double>("minTrackPt");
203  selectionParameters_.maxDxyPV = iConfig.getUntrackedParameter<double>("maxDxyPV");
204  selectionParameters_.maxDzPV = iConfig.getUntrackedParameter<double>("maxDzPV");
205  selectionParameters_.maxChi2 = iConfig.getUntrackedParameter<double>("maxChi2");
206  selectionParameters_.maxDpOverP = iConfig.getUntrackedParameter<double>("maxDpOverP");
207  selectionParameters_.minOuterHit = iConfig.getUntrackedParameter<int>("minOuterHit");
208  selectionParameters_.minLayerCrossed = iConfig.getUntrackedParameter<int>("minLayerCrossed");
209  selectionParameters_.maxInMiss = iConfig.getUntrackedParameter<int>("maxInMiss");
210  selectionParameters_.maxOutMiss = iConfig.getUntrackedParameter<int>("maxOutMiss");
211 
212  // define tokens for access
213  tok_lumi = consumes<LumiDetails, edm::InLumi>(edm::InputTag("lumiProducer"));
214  tok_trigEvt = consumes<trigger::TriggerEvent>(triggerEvent_);
215  tok_trigRes = consumes<edm::TriggerResults>(theTriggerResultsLabel_);
216  tok_Muon_ = consumes<reco::MuonCollection>(labelMuon_);
217  tok_genTrack_ = consumes<reco::TrackCollection>(labelGenTrack_);
218  tok_recVtx_ = consumes<reco::VertexCollection>(edm::InputTag("offlinePrimaryVertices"));
219  tok_parts_ = consumes<reco::GenParticleCollection>(iConfig.getParameter<edm::InputTag>("particleSource"));
220 
221  if (isItAOD_) {
222  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEB"));
223  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("reducedEcalRecHitsEE"));
224  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("reducedHcalRecHits", "hbhereco"));
225  } else {
226  tok_EB_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEB"));
227  tok_EE_ = consumes<EcalRecHitCollection>(edm::InputTag("ecalRecHit", "EcalRecHitsEE"));
228  tok_hbhe_ = consumes<HBHERecHitCollection>(edm::InputTag("hbhereco"));
229  }
230  tok_ew_ = consumes<GenEventInfoProduct>(edm::InputTag("generator"));
231 
232  tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
233  tok_caloTopology_ = esConsumes<CaloTopology, CaloTopologyRecord>();
234  tok_topo_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
235  tok_magField_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
236  tok_ecalChStatus_ = esConsumes<EcalChannelStatus, EcalChannelStatusRcd>();
237  tok_sevlv_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>();
238 
239  edm::LogVerbatim("IsoTrack") << "Verbosity " << verbosity_ << " with " << trigNames_.size() << " triggers:";
240  for (unsigned int k = 0; k < trigNames_.size(); ++k)
241  edm::LogVerbatim("IsoTrack") << " [" << k << "] " << trigNames_[k];
242  edm::LogVerbatim("IsoTrack") << "TrackQuality " << theTrackQuality_ << " Minpt " << selectionParameters_.minPt
243  << " maxDxy " << selectionParameters_.maxDxyPV << " maxDz "
245  << " maxDp/p " << selectionParameters_.maxDpOverP << " minOuterHit "
246  << selectionParameters_.minOuterHit << " minLayerCrossed "
247  << selectionParameters_.minLayerCrossed << " maxInMiss "
249  << " minTrackP " << minTrackP_ << " maxTrackEta " << maxTrackEta_ << " tMinE_ " << tMinE_
250  << " tMaxE " << tMaxE_ << " tMinH_ " << tMinH_ << " tMaxH_ " << tMaxH_ << " isItAOD "
251  << isItAOD_ << " doTree " << doTree_ << " vetoTrigger " << vetoTrigger_ << " vetoMuon "
252  << vetoMuon_ << ":" << cutMuon_ << " vetoEcal " << vetoEcal_ << ":" << cutEcal_ << ":"
253  << cutRatio_;
254 
255  double pBins[nPBin_ + 1] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 9.0, 11.0, 15.0, 20.0, 25.0, 30.0, 40.0, 60.0, 100.0};
256  int etaBins[nEtaBin_ + 1] = {1, 7, 13, 17, 23};
257  int pvBins[nPVBin_ + 1] = {1, 2, 3, 5, 100};
258  for (int i = 0; i <= nPBin_; ++i)
259  pBin_[i] = pBins[i];
260  for (int i = 0; i <= nEtaBin_; ++i)
261  etaBin_[i] = etaBins[i];
262  for (int i = 0; i <= nPVBin_; ++i)
263  pvBin_[i] = pvBins[i];
264 
265  firstEvent_ = true;
266  changed_ = false;
267 }
static const std::string kSharedResource
Definition: TFileService.h:76
Log< level::Info, true > LogVerbatim
const std::vector< std::string > newNames_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
const edm::InputTag theTriggerResultsLabel_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
double pBin_[nPBin_+1]
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
TrackQuality
track quality
Definition: TrackBase.h:150
static const int nPVBin_
spr::trackSelectionParameters selectionParameters_
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt
edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
int etaBin_[nEtaBin_+1]
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes
T getUntrackedParameter(std::string const &, T const &) const
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const std::string theTrackQuality_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
const std::vector< double > puWeights_
const double maxTrackEta_
edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
const edm::InputTag labelGenTrack_
edm::EDGetTokenT< LumiDetails > tok_lumi
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_topo_
const std::vector< std::string > trigNames_
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
edm::EDGetTokenT< reco::GenParticleCollection > tok_parts_
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
int pvBin_[nPVBin_+1]
static const int nEtaBin_
const edm::InputTag labelMuon_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
reco::TrackBase::TrackQuality minQuality
static const int nPBin_
edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
const edm::InputTag triggerEvent_

◆ ~StudyCaloResponse()

StudyCaloResponse::~StudyCaloResponse ( )
inlineoverride

Definition at line 88 of file StudyCaloResponse.cc.

88 {}

Member Function Documentation

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 312 of file StudyCaloResponse.cc.

References funct::abs(), Calorimetry_cff::bField, spr::chargeIsolationEcal(), spr::chargeIsolationHcal(), clear(), cutEcal_, cutMuon_, cutRatio_, reco::deltaR(), HLT_2023v12_cff::dEta, doTree_, HLT_2023v12_cff::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, l1ctLayer1_cff::dr, spr::eECALmatrix(), spr::eHCALmatrix(), reco::TrackBase::eta(), HLT_2023v12_cff::eta1, eThrEB_, eThrEE_, eThrHB_, eThrHE_, fillEnergy(), fillIsolation(), fillTrack(), firstEvent_, genParticles2HepMC_cfi::genEventInfo, AJJGenJetFilter_cfi::genParticles, edm::EventSetup::getData(), h_counter, h_goodPV, h_goodRun, h_h_pNew, h_HLTAccept, h_HLTAccepts, h_HLTCorr, h_nHLT, h_nHLTvsRN, h_ntrk, h_numberPV, photonIsolationHIProducer_cfi::hbhe, ValidationMatrix::hlt, HLTNames_, mps_fire::i, hcalRecHitTable_cff::ieta, iEvent, createfilelist::int, edm::HandleBase::isValid(), edm::InputTag::label(), mix_E10TeV_L13E31_BX432_cfi::Lumi, M_PI, match(), SiStripPI::max, maxTrackEta_, spr::trackSelectionParameters::minQuality, minTrackP_, reco::TrackBase::momentum(), newNames_, nGen_, nPV, nPVBin_, nRun_, convertSQLiteXML::ok, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), LaserDQM_cfg::p1, reco::TrackBase::phi(), edm::Handle< T >::product(), spr::propagateCALO(), reco::TrackBase::pt(), HLT_2023v12_cff::pt1, puWeights_, pvBin_, quality, reco::TrackBase::quality(), muon::segmentCompatibility(), selectionParameters_, mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, theTrackQuality_, tMaxE_, tMaxH_, tMinE_, tMinH_, tok_caloTopology_, tok_EB_, tok_ecalChStatus_, tok_EE_, tok_ew_, tok_genTrack_, tok_geom_, tok_hbhe_, tok_magField_, tok_Muon_, tok_parts_, tok_recVtx_, tok_sevlv_, tok_topo_, tok_trigEvt, tok_trigRes, tr_eventWeight, tr_FE11x11P, tr_FE15x15P, tr_FE7x7P, tr_goodPV, tr_goodRun, tr_H3x3, tr_H5x5, tr_H7x7, tr_iEta, tr_MaxNearHcalP7x7, tr_MaxNearP31X31, tr_SE11x11P, tr_SE15x15P, tr_SE7x7P, tr_TrigName, tr_TrkEta, tr_TrkID, tr_TrkP, tr_TrkPhi, tr_TrkPt, trackPID(), tree_, PDWG_DiPhoton_SD_cff::triggerEvent, triggerEvent_, L1TEGammaOffline_cfi::triggerNames, triggerResults, trigNames_, truncate_str(), verbosity_, vetoEcal_, vetoMuon_, and vetoTrigger_.

312  {
313  clear();
314  int counter0[1000] = {0};
315  int counter1[1000] = {0};
316  int counter2[1000] = {0};
317  int counter3[1000] = {0};
318  int counter4[1000] = {0};
319  int counter5[1000] = {0};
320  int counter6[1000] = {0};
321  int counter7[1000] = {0};
322  if (verbosity_ > 0)
323  edm::LogVerbatim("IsoTrack") << "Event starts====================================";
324  int RunNo = iEvent.id().run();
325  int EvtNo = iEvent.id().event();
326  int Lumi = iEvent.luminosityBlock();
327  int Bunch = iEvent.bunchCrossing();
328 
329  std::vector<int> newAccept(newNames_.size() + 1, 0);
330  if (verbosity_ > 0)
331  edm::LogVerbatim("IsoTrack") << "RunNo " << RunNo << " EvtNo " << EvtNo << " Lumi " << Lumi << " Bunch " << Bunch;
332 
334  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
335  iEvent.getByToken(tok_trigEvt, triggerEventHandle);
336 
337  bool ok(false);
338  std::string triggerUse("None");
339  if (!triggerEventHandle.isValid()) {
340  if (trigNames_.empty()) {
341  ok = true;
342  } else {
343  edm::LogWarning("StudyCaloResponse") << "Error! Can't get the product " << triggerEvent_.label();
344  }
345  } else {
346  triggerEvent = *(triggerEventHandle.product());
347 
350  iEvent.getByToken(tok_trigRes, triggerResults);
351 
352  if (triggerResults.isValid()) {
353  h_nHLT->Fill(triggerResults->size());
354  h_nHLTvsRN->Fill(RunNo, triggerResults->size());
355 
356  const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
357  const std::vector<std::string>& triggerNames_ = triggerNames.triggerNames();
358  for (unsigned int iHLT = 0; iHLT < triggerResults->size(); iHLT++) {
359  int ipos = -1;
360  std::string newtriggerName = truncate_str(triggerNames_[iHLT]);
361  for (unsigned int i = 0; i < HLTNames_.size(); ++i) {
362  if (newtriggerName == HLTNames_[i]) {
363  ipos = i + 1;
364  break;
365  }
366  }
367  if (ipos < 0) {
368  HLTNames_.push_back(newtriggerName);
369  ipos = (int)(HLTNames_.size());
370  if (ipos <= h_HLTAccept->GetNbinsX())
371  h_HLTAccept->GetXaxis()->SetBinLabel(ipos, newtriggerName.c_str());
372  }
373  if ((int)(iHLT + 1) > h_HLTAccepts[nRun_]->GetNbinsX()) {
374  edm::LogVerbatim("IsoTrack") << "Wrong trigger " << RunNo << " Event " << EvtNo << " Hlt " << iHLT;
375  } else {
376  if (firstEvent_)
377  h_HLTAccepts[nRun_]->GetXaxis()->SetBinLabel(iHLT + 1, newtriggerName.c_str());
378  }
379  int hlt = triggerResults->accept(iHLT);
380  if (hlt) {
381  h_HLTAccepts[nRun_]->Fill(iHLT + 1);
382  h_HLTAccept->Fill(ipos);
383  }
384  if (trigNames_.empty()) {
385  ok = true;
386  } else {
387  for (unsigned int i = 0; i < trigNames_.size(); ++i) {
388  if (newtriggerName.find(trigNames_[i]) != std::string::npos) {
389  if (verbosity_ % 10 > 0)
390  edm::LogVerbatim("IsoTrack") << newtriggerName;
391  if (hlt > 0) {
392  if (!ok)
393  triggerUse = newtriggerName;
394  ok = true;
395  tr_TrigName.push_back(newtriggerName);
396  }
397  }
398  }
399  if (vetoTrigger_)
400  ok = !ok;
401  for (unsigned int i = 0; i < newNames_.size(); ++i) {
402  if (newtriggerName.find(newNames_[i]) != std::string::npos) {
403  if (verbosity_ % 10 > 0)
404  edm::LogVerbatim("IsoTrack") << "[" << i << "] " << newNames_[i] << " : " << newtriggerName;
405  if (hlt > 0)
406  newAccept[i] = 1;
407  }
408  }
409  }
410  }
411  int iflg(0), indx(1);
412  for (unsigned int i = 0; i < newNames_.size(); ++i) {
413  iflg += (indx * newAccept[i]);
414  indx *= 2;
415  }
416  h_HLTCorr->Fill(iflg);
417  }
418  }
419  if ((verbosity_ / 10) % 10 > 0)
420  edm::LogVerbatim("IsoTrack") << "Trigger check gives " << ok << " with " << triggerUse;
421 
422  //Look at the tracks
424  iEvent.getByToken(tok_genTrack_, trkCollection);
425 
426  edm::Handle<reco::MuonCollection> muonEventHandle;
427  iEvent.getByToken(tok_Muon_, muonEventHandle);
428 
430  iEvent.getByToken(tok_recVtx_, recVtxs);
431 
432  if ((!trkCollection.isValid()) || (!muonEventHandle.isValid()) || (!recVtxs.isValid())) {
433  edm::LogWarning("StudyCaloResponse") << "Track collection " << trkCollection.isValid() << " Muon collection "
434  << muonEventHandle.isValid() << " Vertex Collecttion " << recVtxs.isValid();
435  ok = false;
436  }
437 
438  if (ok) {
439  h_goodRun->Fill(RunNo);
440  tr_goodRun = RunNo;
441  // get handles to calogeometry and calotopology
442  const CaloGeometry* geo = &iSetup.getData(tok_geom_);
443  const CaloTopology* caloTopology = &iSetup.getData(tok_caloTopology_);
444  const HcalTopology* theHBHETopology = &iSetup.getData(tok_topo_);
445  const MagneticField* bField = &iSetup.getData(tok_magField_);
446  const EcalChannelStatus* theEcalChStatus = &iSetup.getData(tok_ecalChStatus_);
447 
448  int ntrk(0), ngoodPV(0), nPV(-1), nvtxs(0);
449  nvtxs = (int)(recVtxs->size());
450  for (int ind = 0; ind < nvtxs; ind++) {
451  if (!((*recVtxs)[ind].isFake()) && (*recVtxs)[ind].ndof() > 4)
452  ngoodPV++;
453  }
454  for (int i = 0; i < nPVBin_; ++i) {
455  if (ngoodPV >= pvBin_[i] && ngoodPV < pvBin_[i + 1]) {
456  nPV = i;
457  break;
458  }
459  }
460 
461  tr_eventWeight = 1.0;
463  iEvent.getByToken(tok_ew_, genEventInfo);
464  if (genEventInfo.isValid())
465  tr_eventWeight = genEventInfo->weight();
466 
467  if ((verbosity_ / 10) % 10 > 0)
468  edm::LogVerbatim("IsoTrack") << "Number of vertices: " << nvtxs << " Good " << ngoodPV << " Bin " << nPV
469  << " Event weight " << tr_eventWeight;
470  h_numberPV->Fill(nvtxs, tr_eventWeight);
471  h_goodPV->Fill(ngoodPV, tr_eventWeight);
472  tr_goodPV = ngoodPV;
473 
474  if (!puWeights_.empty()) {
475  int npbin = h_goodPV->FindBin(ngoodPV);
476  if (npbin > 0 && npbin <= (int)(puWeights_.size()))
477  tr_eventWeight *= puWeights_[npbin - 1];
478  else
479  tr_eventWeight = 0;
480  }
481 
482  //=== genParticle information
484  iEvent.getByToken(tok_parts_, genParticles);
485  if (genParticles.isValid()) {
486  for (const auto& p : (reco::GenParticleCollection)(*genParticles)) {
487  double pt1 = p.momentum().Rho();
488  double p1 = p.momentum().R();
489  double eta1 = p.momentum().Eta();
490  double phi1 = p.momentum().Phi();
491  fillTrack(nGen_, pt1, p1, eta1, phi1);
492  bool match(false);
493  double phi2(phi1);
494  if (phi2 < 0)
495  phi2 += 2.0 * M_PI;
496  for (const auto& trk : (reco::TrackCollection)(*trkCollection)) {
497  bool quality = trk.quality(selectionParameters_.minQuality);
498  if (quality) {
499  double dEta = trk.eta() - eta1;
500  double phi0 = trk.phi();
501  if (phi0 < 0)
502  phi0 += 2.0 * M_PI;
503  double dPhi = phi0 - phi2;
504  if (dPhi > M_PI)
505  dPhi -= 2. * M_PI;
506  else if (dPhi < -M_PI)
507  dPhi += 2. * M_PI;
508  double dR = sqrt(dEta * dEta + dPhi * dPhi);
509  if (dR < 0.01) {
510  match = true;
511  break;
512  }
513  }
514  }
515  if (match)
516  fillTrack(nGen_ + 1, pt1, p1, eta1, phi1);
517  }
518  }
519 
520  reco::TrackCollection::const_iterator trkItr;
521  for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); ++trkItr, ++ntrk) {
522  const reco::Track* pTrack = &(*trkItr);
523  double pt1 = pTrack->pt();
524  double p1 = pTrack->p();
525  double eta1 = pTrack->momentum().eta();
526  double phi1 = pTrack->momentum().phi();
528  fillTrack(0, pt1, p1, eta1, phi1);
529  if (quality)
530  fillTrack(1, pt1, p1, eta1, phi1);
531  if (p1 < 1000) {
532  h_h_pNew[0]->Fill(p1);
533  ++counter0[(int)(p1)];
534  }
535  }
536  h_ntrk[0]->Fill(ntrk, tr_eventWeight);
537 
538  std::vector<spr::propagatedTrackID> trkCaloDets;
539  spr::propagateCALO(trkCollection, geo, bField, theTrackQuality_, trkCaloDets, ((verbosity_ / 100) % 10 > 0));
540  std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
541  for (trkDetItr = trkCaloDets.begin(), ntrk = 0; trkDetItr != trkCaloDets.end(); trkDetItr++, ntrk++) {
542  const reco::Track* pTrack = &(*(trkDetItr->trkItr));
543  double pt1 = pTrack->pt();
544  double p1 = pTrack->p();
545  double eta1 = pTrack->momentum().eta();
546  double phi1 = pTrack->momentum().phi();
547  if ((verbosity_ / 10) % 10 > 0)
548  edm::LogVerbatim("IsoTrack") << "track: p " << p1 << " pt " << pt1 << " eta " << eta1 << " phi " << phi1
549  << " okEcal " << trkDetItr->okECAL;
550  fillTrack(2, pt1, p1, eta1, phi1);
551 
552  bool vetoMuon(false);
553  double chiGlobal(0), dr(0);
554  bool goodGlob(false);
555  if (vetoMuon_) {
556  if (muonEventHandle.isValid()) {
557  for (reco::MuonCollection::const_iterator recMuon = muonEventHandle->begin();
558  recMuon != muonEventHandle->end();
559  ++recMuon) {
560  if (((recMuon->isPFMuon()) && (recMuon->isGlobalMuon() || recMuon->isTrackerMuon())) &&
561  (recMuon->innerTrack()->validFraction() > 0.49) && (recMuon->innerTrack().isNonnull())) {
562  chiGlobal = ((recMuon->globalTrack().isNonnull()) ? recMuon->globalTrack()->normalizedChi2() : 999);
563  goodGlob = (recMuon->isGlobalMuon() && chiGlobal < 3 &&
564  recMuon->combinedQuality().chi2LocalPosition < 12 && recMuon->combinedQuality().trkKink < 20);
565  if (muon::segmentCompatibility(*recMuon) > (goodGlob ? 0.303 : 0.451)) {
566  const reco::Track* pTrack0 = (recMuon->innerTrack()).get();
567  dr = reco::deltaR(pTrack0->eta(), pTrack0->phi(), pTrack->eta(), pTrack->phi());
568  if (dr < cutMuon_) {
569  vetoMuon = true;
570  break;
571  }
572  }
573  }
574  }
575  }
576  }
577  if ((verbosity_ / 10) % 10 > 0)
578  edm::LogVerbatim("IsoTrack") << "vetoMuon: " << vetoMuon_ << ":" << vetoMuon << " chi:good:dr " << chiGlobal
579  << ":" << goodGlob << ":" << dr;
580  if (pt1 > minTrackP_ && std::abs(eta1) < maxTrackEta_ && trkDetItr->okECAL && (!vetoMuon)) {
581  fillTrack(3, pt1, p1, eta1, phi1);
582  double maxNearP31x31 =
583  spr::chargeIsolationEcal(ntrk, trkCaloDets, geo, caloTopology, 15, 15, ((verbosity_ / 1000) % 10 > 0));
584 
585  const EcalSeverityLevelAlgo* sevlv = &iSetup.getData(tok_sevlv_);
586 
587  edm::Handle<EcalRecHitCollection> barrelRecHitsHandle;
588  edm::Handle<EcalRecHitCollection> endcapRecHitsHandle;
589  iEvent.getByToken(tok_EB_, barrelRecHitsHandle);
590  iEvent.getByToken(tok_EE_, endcapRecHitsHandle);
591  // get ECal Tranverse Profile
592  std::pair<double, bool> e7x7P, e11x11P, e15x15P;
593  const DetId isoCell = trkDetItr->detIdECAL;
594  e7x7P = spr::eECALmatrix(isoCell,
595  barrelRecHitsHandle,
596  endcapRecHitsHandle,
597  *theEcalChStatus,
598  geo,
599  caloTopology,
600  sevlv,
601  3,
602  3,
603  eThrEB_,
604  eThrEE_,
605  tMinE_,
606  tMaxE_,
607  ((verbosity_ / 10000) % 10 > 0));
608  e11x11P = spr::eECALmatrix(isoCell,
609  barrelRecHitsHandle,
610  endcapRecHitsHandle,
611  *theEcalChStatus,
612  geo,
613  caloTopology,
614  sevlv,
615  5,
616  5,
617  eThrEB_,
618  eThrEE_,
619  tMinE_,
620  tMaxE_,
621  ((verbosity_ / 10000) % 10 > 0));
622  e15x15P = spr::eECALmatrix(isoCell,
623  barrelRecHitsHandle,
624  endcapRecHitsHandle,
625  *theEcalChStatus,
626  geo,
627  caloTopology,
628  sevlv,
629  7,
630  7,
631  eThrEB_,
632  eThrEE_,
633  tMinE_,
634  tMaxE_,
635  ((verbosity_ / 10000) % 10 > 0));
636 
637  double maxNearHcalP7x7 =
638  spr::chargeIsolationHcal(ntrk, trkCaloDets, theHBHETopology, 3, 3, ((verbosity_ / 1000) % 10 > 0));
639  int ieta(0);
640  double h3x3(0), h5x5(0), h7x7(0);
641  fillIsolation(0, maxNearP31x31, e11x11P.first, e15x15P.first);
642  if ((verbosity_ / 10) % 10 > 0)
643  edm::LogVerbatim("IsoTrack") << "Accepted Tracks reaching Ecal maxNearP31x31 " << maxNearP31x31 << " e11x11P "
644  << e11x11P.first << " e15x15P " << e15x15P.first << " okHCAL "
645  << trkDetItr->okHCAL;
646 
647  int trackID = trackPID(pTrack, genParticles);
648  if (trkDetItr->okHCAL) {
650  iEvent.getByToken(tok_hbhe_, hbhe);
651  const DetId ClosestCell(trkDetItr->detIdHCAL);
652  ieta = ((HcalDetId)(ClosestCell)).ietaAbs();
653  h3x3 = spr::eHCALmatrix(theHBHETopology,
654  ClosestCell,
655  hbhe,
656  1,
657  1,
658  false,
659  true,
660  eThrHB_,
661  eThrHE_,
662  -100.0,
663  -100.0,
664  tMinH_,
665  tMaxH_,
666  ((verbosity_ / 10000) % 10 > 0));
667  h5x5 = spr::eHCALmatrix(theHBHETopology,
668  ClosestCell,
669  hbhe,
670  2,
671  2,
672  false,
673  true,
674  eThrHB_,
675  eThrHE_,
676  -100.0,
677  -100.0,
678  tMinH_,
679  tMaxH_,
680  ((verbosity_ / 10000) % 10 > 0));
681  h7x7 = spr::eHCALmatrix(theHBHETopology,
682  ClosestCell,
683  hbhe,
684  3,
685  3,
686  false,
687  true,
688  eThrHB_,
689  eThrHE_,
690  -100.0,
691  -100.0,
692  tMinH_,
693  tMaxH_,
694  ((verbosity_ / 10000) % 10 > 0));
695  fillIsolation(1, maxNearHcalP7x7, h5x5, h7x7);
696  double eByh = ((e11x11P.second) ? (e11x11P.first / std::max(h3x3, 0.001)) : 0.0);
697  bool notAnElec = ((vetoEcal_ && e11x11P.second) ? ((e11x11P.first < cutEcal_) || (eByh < cutRatio_)) : true);
698  if ((verbosity_ / 10) % 10 > 0)
699  edm::LogVerbatim("IsoTrack") << "Tracks Reaching Hcal maxNearHcalP7x7/h5x5/h7x7 " << maxNearHcalP7x7 << "/"
700  << h5x5 << "/" << h7x7 << " eByh " << eByh << " notAnElec " << notAnElec;
701  tr_TrkPt.push_back(pt1);
702  tr_TrkP.push_back(p1);
703  tr_TrkEta.push_back(eta1);
704  tr_TrkPhi.push_back(phi1);
705  tr_TrkID.push_back(trackID);
706  tr_MaxNearP31X31.push_back(maxNearP31x31);
707  tr_MaxNearHcalP7x7.push_back(maxNearHcalP7x7);
708  tr_FE7x7P.push_back(e7x7P.first);
709  tr_FE11x11P.push_back(e11x11P.first);
710  tr_FE15x15P.push_back(e15x15P.first);
711  tr_SE7x7P.push_back(e7x7P.second);
712  tr_SE11x11P.push_back(e11x11P.second);
713  tr_SE15x15P.push_back(e15x15P.second);
714  tr_iEta.push_back(ieta);
715  tr_H3x3.push_back(h3x3);
716  tr_H5x5.push_back(h5x5);
717  tr_H7x7.push_back(h7x7);
718 
719  if (maxNearP31x31 < 0 && notAnElec) {
720  fillTrack(4, pt1, p1, eta1, phi1);
721  fillEnergy(0, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
722  if (maxNearHcalP7x7 < 0) {
723  fillTrack(5, pt1, p1, eta1, phi1);
724  fillEnergy(1, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
725  if ((e11x11P.second) && (e15x15P.second) && (e15x15P.first - e11x11P.first) < 2.0) {
726  fillTrack(6, pt1, p1, eta1, phi1);
727  fillEnergy(2, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
728  if (h7x7 - h5x5 < 2.0) {
729  fillTrack(7, pt1, p1, eta1, phi1);
730  fillEnergy(3, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
731  if (nPV >= 0) {
732  fillTrack(nPV + 8, pt1, p1, eta1, phi1);
733  fillEnergy(nPV + 4, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
734  }
735  if (trackID > 0) {
736  fillTrack(nPVBin_ + trackID + 7, pt1, p1, eta1, phi1);
737  fillEnergy(nPVBin_ + trackID + 3, ieta, p1, e7x7P.first, h3x3, e11x11P.first, h5x5);
738  }
739  if (p1 < 1000) {
740  h_h_pNew[7]->Fill(p1);
741  ++counter7[(int)(p1)];
742  }
743  }
744  if (p1 < 1000) {
745  h_h_pNew[6]->Fill(p1);
746  ++counter6[(int)(p1)];
747  }
748  }
749  if (p1 < 1000) {
750  h_h_pNew[5]->Fill(p1);
751  ++counter5[(int)(p1)];
752  }
753  }
754  if (p1 < 1000) {
755  h_h_pNew[4]->Fill(p1);
756  ++counter4[(int)(p1)];
757  }
758  }
759  if (p1 < 1000) {
760  h_h_pNew[3]->Fill(p1);
761  ++counter3[(int)(p1)];
762  }
763  }
764  if (p1 < 1000) {
765  h_h_pNew[2]->Fill(p1);
766  ++counter2[(int)(p1)];
767  }
768  }
769  if (p1 < 1000) {
770  h_h_pNew[1]->Fill(p1);
771  ++counter1[(int)(p1)];
772  }
773  }
774  h_ntrk[1]->Fill(ntrk, tr_eventWeight);
775  if ((!tr_TrkPt.empty()) && doTree_)
776  tree_->Fill();
777  for (int i = 0; i < 1000; ++i) {
778  if (counter0[i])
779  h_counter[0]->Fill(i, counter0[i]);
780  if (counter1[i])
781  h_counter[1]->Fill(i, counter1[i]);
782  if (counter2[i])
783  h_counter[2]->Fill(i, counter2[i]);
784  if (counter3[i])
785  h_counter[3]->Fill(i, counter3[i]);
786  if (counter4[i])
787  h_counter[4]->Fill(i, counter4[i]);
788  if (counter5[i])
789  h_counter[5]->Fill(i, counter5[i]);
790  if (counter6[i])
791  h_counter[6]->Fill(i, counter6[i]);
792  if (counter7[i])
793  h_counter[7]->Fill(i, counter7[i]);
794  }
795  }
796  firstEvent_ = false;
797 }
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:552
std::vector< double > tr_TrkEta
Log< level::Info, true > LogVerbatim
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
const std::vector< std::string > newNames_
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
std::vector< bool > tr_SE11x11P
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
std::vector< double > tr_H5x5
void fillIsolation(int, double, double, double)
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
std::vector< std::string > tr_TrigName
int trackPID(const reco::Track *, const edm::Handle< reco::GenParticleCollection > &)
edm::EDGetTokenT< reco::MuonCollection > tok_Muon_
static const int nPVBin_
spr::trackSelectionParameters selectionParameters_
double p() const
momentum vector magnitude
Definition: TrackBase.h:631
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
std::vector< double > tr_FE7x7P
T const * product() const
Definition: Handle.h:70
std::vector< double > tr_MaxNearP31X31
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
std::vector< double > tr_TrkPhi
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt
edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes
void fillTrack(int, double, double, double, double)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
const std::string theTrackQuality_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
double pt() const
track transverse momentum
Definition: TrackBase.h:637
string quality
std::string truncate_str(const std::string &)
const std::vector< double > puWeights_
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
int iEvent
Definition: GenABIO.cc:224
const double maxTrackEta_
edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
float segmentCompatibility(const reco::Muon &muon, reco::Muon::ArbitrationType arbitrationType=reco::Muon::SegmentAndTrackArbitration)
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
std::vector< int > tr_iEta
static std::string const triggerResults
Definition: EdmProvDump.cc:47
std::vector< double > tr_MaxNearHcalP7x7
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
std::vector< double > tr_FE15x15P
std::vector< double > tr_TrkP
#define M_PI
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
std::vector< double > tr_TrkPt
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_topo_
std::vector< double > tr_H3x3
void fillEnergy(int, int, double, double, double, double, double)
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
Definition: DetId.h:17
const std::vector< std::string > trigNames_
std::vector< std::string > HLTNames_
std::vector< int > tr_TrkID
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
std::vector< bool > tr_SE7x7P
std::vector< double > tr_H7x7
edm::EDGetTokenT< reco::GenParticleCollection > tok_parts_
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
std::vector< TH1I * > h_HLTAccepts
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
bool isValid() const
Definition: HandleBase.h:70
int pvBin_[nPVBin_+1]
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
reco::TrackBase::TrackQuality minQuality
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
std::vector< double > tr_FE11x11P
Log< level::Warning, false > LogWarning
double chargeIsolationHcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)
edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
const edm::InputTag triggerEvent_
static const int nGen_
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
std::vector< bool > tr_SE15x15P

◆ beginJob()

void StudyCaloResponse::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 799 of file StudyCaloResponse.cc.

References doTree_, etaBin_, fs_, h_counter, h_ediff, h_ene1, h_ene2, h_energy, h_eta, h_goodPV, h_goodRun, h_h_pNew, h_HLTAccept, h_HLTCorr, h_maxNearP, h_nHLT, h_nHLTvsRN, h_ntrk, h_numberPV, h_p, h_phi, h_pt, mps_fire::i, dqmiolumiharvest::j, TFileService::make(), nEtaBin_, nGen_, nPBin_, nPVBin_, pBin_, pvBin_, AlCaHLTBitMon_QueryRunRegistry::string, tr_eventWeight, tr_FE11x11P, tr_FE15x15P, tr_FE7x7P, tr_goodPV, tr_goodRun, tr_H3x3, tr_H5x5, tr_H7x7, tr_iEta, tr_MaxNearHcalP7x7, tr_MaxNearP31X31, tr_SE11x11P, tr_SE15x15P, tr_SE7x7P, tr_TrigName, tr_TrkEta, tr_TrkID, tr_TrkP, tr_TrkPhi, tr_TrkPt, and tree_.

799  {
800  // Book histograms
801  h_nHLT = fs_->make<TH1I>("h_nHLT", "size of trigger Names", 1000, 0, 1000);
802  h_HLTAccept = fs_->make<TH1I>("h_HLTAccept", "HLT Accepts for all runs", 500, 0, 500);
803  for (int i = 1; i <= 500; ++i)
804  h_HLTAccept->GetXaxis()->SetBinLabel(i, " ");
805  h_nHLTvsRN = fs_->make<TH2I>("h_nHLTvsRN", "size of trigger Names vs RunNo", 2168, 190949, 193116, 100, 400, 500);
806  h_HLTCorr = fs_->make<TH1I>("h_HLTCorr", "Correlation among different paths", 100, 0, 100);
807  h_numberPV = fs_->make<TH1I>("h_numberPV", "Number of Primary Vertex", 100, 0, 100);
808  h_goodPV = fs_->make<TH1I>("h_goodPV", "Number of good Primary Vertex", 100, 0, 100);
809  h_goodRun = fs_->make<TH1I>("h_goodRun", "Number of accepted events for Run", 4000, 190000, 1940000);
810  char hname[60], htit[200];
811  std::string CollectionNames[2] = {"Reco", "Propagated"};
812  for (unsigned int i = 0; i < 2; i++) {
813  sprintf(hname, "h_nTrk_%s", CollectionNames[i].c_str());
814  sprintf(htit, "Number of %s tracks", CollectionNames[i].c_str());
815  h_ntrk[i] = fs_->make<TH1I>(hname, htit, 500, 0, 500);
816  }
817  std::string TrkNames[8] = {
818  "All", "Quality", "NoIso", "okEcal", "EcalCharIso", "HcalCharIso", "EcalNeutIso", "HcalNeutIso"};
819  std::string particle[4] = {"Electron", "Pion", "Kaon", "Proton"};
820  for (unsigned int i = 0; i <= nGen_ + 1; i++) {
821  if (i < 8) {
822  sprintf(hname, "h_pt_%s", TrkNames[i].c_str());
823  sprintf(htit, "p_{T} of %s tracks", TrkNames[i].c_str());
824  } else if (i < 8 + nPVBin_) {
825  sprintf(hname, "h_pt_%s_%d", TrkNames[7].c_str(), i - 8);
826  sprintf(htit, "p_{T} of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin_[i - 8], pvBin_[i - 7] - 1);
827  } else if (i >= nGen_) {
828  sprintf(hname, "h_pt_%s_%d", TrkNames[0].c_str(), i - nGen_);
829  sprintf(htit, "p_{T} of %s Generator tracks", TrkNames[0].c_str());
830  } else {
831  sprintf(hname, "h_pt_%s_%s", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
832  sprintf(htit, "p_{T} of %s tracks (%s)", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
833  }
834  h_pt[i] = fs_->make<TH1D>(hname, htit, 400, 0, 200.0);
835  h_pt[i]->Sumw2();
836 
837  if (i < 8) {
838  sprintf(hname, "h_p_%s", TrkNames[i].c_str());
839  sprintf(htit, "Momentum of %s tracks", TrkNames[i].c_str());
840  } else if (i < 8 + nPVBin_) {
841  sprintf(hname, "h_p_%s_%d", TrkNames[7].c_str(), i - 8);
842  sprintf(htit, "Momentum of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin_[i - 8], pvBin_[i - 7] - 1);
843  } else if (i >= nGen_) {
844  sprintf(hname, "h_p_%s_%d", TrkNames[0].c_str(), i - nGen_);
845  sprintf(htit, "Momentum of %s Generator tracks", TrkNames[0].c_str());
846  } else {
847  sprintf(hname, "h_p_%s_%s", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
848  sprintf(htit, "Momentum of %s tracks (%s)", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
849  }
850  h_p[i] = fs_->make<TH1D>(hname, htit, 400, 0, 200.0);
851  h_p[i]->Sumw2();
852 
853  if (i < 8) {
854  sprintf(hname, "h_eta_%s", TrkNames[i].c_str());
855  sprintf(htit, "Eta of %s tracks", TrkNames[i].c_str());
856  } else if (i < 8 + nPVBin_) {
857  sprintf(hname, "h_eta_%s_%d", TrkNames[7].c_str(), i - 8);
858  sprintf(htit, "Eta of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin_[i - 8], pvBin_[i - 7] - 1);
859  } else if (i >= nGen_) {
860  sprintf(hname, "h_eta_%s_%d", TrkNames[0].c_str(), i - nGen_);
861  sprintf(htit, "Eta of %s Generator tracks", TrkNames[0].c_str());
862  } else {
863  sprintf(hname, "h_eta_%s_%s", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
864  sprintf(htit, "Eta of %s tracks (%s)", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
865  }
866  h_eta[i] = fs_->make<TH1D>(hname, htit, 60, -3.0, 3.0);
867  h_eta[i]->Sumw2();
868 
869  if (i < 8) {
870  sprintf(hname, "h_phi_%s", TrkNames[i].c_str());
871  sprintf(htit, "Phi of %s tracks", TrkNames[i].c_str());
872  } else if (i < 8 + nPVBin_) {
873  sprintf(hname, "h_phi_%s_%d", TrkNames[7].c_str(), i - 8);
874  sprintf(htit, "Phi of %s tracks (PV=%d:%d)", TrkNames[7].c_str(), pvBin_[i - 8], pvBin_[i - 7] - 1);
875  } else if (i >= nGen_) {
876  sprintf(hname, "h_phi_%s_%d", TrkNames[0].c_str(), i - nGen_);
877  sprintf(htit, "Phi of %s Generator tracks", TrkNames[0].c_str());
878  } else {
879  sprintf(hname, "h_phi_%s_%s", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
880  sprintf(htit, "Phi of %s tracks (%s)", TrkNames[7].c_str(), particle[i - 8 - nPVBin_].c_str());
881  }
882  h_phi[i] = fs_->make<TH1D>(hname, htit, 100, -3.15, 3.15);
883  h_phi[i]->Sumw2();
884  }
885  std::string IsolationNames[2] = {"Ecal", "Hcal"};
886  for (unsigned int i = 0; i < 2; i++) {
887  sprintf(hname, "h_maxNearP_%s", IsolationNames[i].c_str());
888  sprintf(htit, "Energy in ChargeIso region for %s", IsolationNames[i].c_str());
889  h_maxNearP[i] = fs_->make<TH1D>(hname, htit, 120, -1.5, 10.5);
890  h_maxNearP[i]->Sumw2();
891 
892  sprintf(hname, "h_ene1_%s", IsolationNames[i].c_str());
893  sprintf(htit, "Energy in smaller cone for %s", IsolationNames[i].c_str());
894  h_ene1[i] = fs_->make<TH1D>(hname, htit, 400, 0.0, 200.0);
895  h_ene1[i]->Sumw2();
896 
897  sprintf(hname, "h_ene2_%s", IsolationNames[i].c_str());
898  sprintf(htit, "Energy in bigger cone for %s", IsolationNames[i].c_str());
899  h_ene2[i] = fs_->make<TH1D>(hname, htit, 400, 0.0, 200.0);
900  h_ene2[i]->Sumw2();
901 
902  sprintf(hname, "h_ediff_%s", IsolationNames[i].c_str());
903  sprintf(htit, "Energy in NeutralIso region for %s", IsolationNames[i].c_str());
904  h_ediff[i] = fs_->make<TH1D>(hname, htit, 100, -0.5, 19.5);
905  h_ediff[i]->Sumw2();
906  }
907  std::string energyNames[6] = {
908  "E_{7x7}", "H_{3x3}", "(E_{7x7}+H_{3x3})", "E_{11x11}", "H_{5x5}", "{E_{11x11}+H_{5x5})"};
909  for (int i = 0; i < 4 + nPVBin_ + 4; ++i) {
910  for (int ip = 0; ip < nPBin_; ++ip) {
911  for (int ie = 0; ie < nEtaBin_; ++ie) {
912  for (int j = 0; j < 6; ++j) {
913  sprintf(hname, "h_energy_%d_%d_%d_%d", i, ip, ie, j);
914  if (i < 4) {
915  sprintf(htit,
916  "%s/p (p=%4.1f:%4.1f; i#eta=%d:%d) for tracks with %s",
917  energyNames[j].c_str(),
918  pBin_[ip],
919  pBin_[ip + 1],
920  etaBin_[ie],
921  (etaBin_[ie + 1] - 1),
922  TrkNames[i + 4].c_str());
923  } else if (i < 4 + nPVBin_) {
924  sprintf(htit,
925  "%s/p (p=%4.1f:%4.1f, i#eta=%d:%d, PV=%d:%d) for tracks with %s",
926  energyNames[j].c_str(),
927  pBin_[ip],
928  pBin_[ip + 1],
929  etaBin_[ie],
930  (etaBin_[ie + 1] - 1),
931  pvBin_[i - 4],
932  (pvBin_[i - 3] - 1),
933  TrkNames[7].c_str());
934  } else {
935  sprintf(htit,
936  "%s/p (p=%4.1f:%4.1f, i#eta=%d:%d %s) for tracks with %s",
937  energyNames[j].c_str(),
938  pBin_[ip],
939  pBin_[ip + 1],
940  etaBin_[ie],
941  (etaBin_[ie + 1] - 1),
942  particle[i - 4 - nPVBin_].c_str(),
943  TrkNames[7].c_str());
944  }
945  h_energy[i][ip][ie][j] = fs_->make<TH1D>(hname, htit, 5000, -0.1, 49.9);
946  h_energy[i][ip][ie][j]->Sumw2();
947  }
948  }
949  }
950  }
951 
952  for (int i = 0; i < 8; ++i) {
953  sprintf(hname, "counter%d", i);
954  sprintf(htit, "Counter with cut %d", i);
955  h_counter[i] = fs_->make<TH1D>(hname, htit, 1000, 0, 1000);
956  sprintf(hname, "h_pTNew%d", i);
957  sprintf(htit, "Track momentum with cut %d", i);
958  h_h_pNew[i] = fs_->make<TH1D>(hname, htit, 1000, 0, 1000);
959  }
960 
961  // Now the tree
962  if (doTree_) {
963  tree_ = fs_->make<TTree>("testTree", "new HLT Tree");
964  tree_->Branch("tr_goodRun", &tr_goodRun, "tr_goodRun/I");
965  tree_->Branch("tr_goodPV", &tr_goodPV, "tr_goodPV/I");
966  tree_->Branch("tr_eventWeight", &tr_eventWeight, "tr_eventWeight/D");
967  tree_->Branch("tr_tr_TrigName", &tr_TrigName);
968  tree_->Branch("tr_TrkPt", &tr_TrkPt);
969  tree_->Branch("tr_TrkP", &tr_TrkP);
970  tree_->Branch("tr_TrkEta", &tr_TrkEta);
971  tree_->Branch("tr_TrkPhi", &tr_TrkPhi);
972  tree_->Branch("tr_TrkID", &tr_TrkID);
973  tree_->Branch("tr_MaxNearP31X31", &tr_MaxNearP31X31);
974  tree_->Branch("tr_MaxNearHcalP7x7", &tr_MaxNearHcalP7x7);
975  tree_->Branch("tr_FE7x7P", &tr_FE7x7P);
976  tree_->Branch("tr_FE11x11P", &tr_FE11x11P);
977  tree_->Branch("tr_FE15x15P", &tr_FE15x15P);
978  tree_->Branch("tr_SE7x7P", &tr_SE7x7P);
979  tree_->Branch("tr_SE11x11P", &tr_SE11x11P);
980  tree_->Branch("tr_SE15x15P", &tr_SE15x15P);
981  tree_->Branch("tr_H3x3", &tr_H3x3);
982  tree_->Branch("tr_H5x5", &tr_H5x5);
983  tree_->Branch("tr_H7x7", &tr_H7x7);
984  tree_->Branch("tr_iEta", &tr_iEta);
985  }
986 }
std::vector< double > tr_TrkEta
TH1D * h_eta[nGen_+2]
std::vector< bool > tr_SE11x11P
std::vector< double > tr_H5x5
double pBin_[nPBin_+1]
std::vector< std::string > tr_TrigName
static const int nPVBin_
edm::Service< TFileService > fs_
std::vector< double > tr_FE7x7P
std::vector< double > tr_MaxNearP31X31
std::vector< double > tr_TrkPhi
TH1D * h_phi[nGen_+2]
int etaBin_[nEtaBin_+1]
std::vector< int > tr_iEta
std::vector< double > tr_MaxNearHcalP7x7
std::vector< double > tr_FE15x15P
std::vector< double > tr_TrkP
std::vector< double > tr_TrkPt
std::vector< double > tr_H3x3
std::vector< int > tr_TrkID
std::vector< bool > tr_SE7x7P
std::vector< double > tr_H7x7
int pvBin_[nPVBin_+1]
static const int nEtaBin_
TH1D * h_energy[nPVBin_+8][nPBin_][nEtaBin_][6]
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< double > tr_FE11x11P
static const int nPBin_
TH1D * h_p[nGen_+2]
TH1D * h_pt[nGen_+2]
static const int nGen_
std::vector< bool > tr_SE15x15P

◆ beginLuminosityBlock()

virtual void StudyCaloResponse::beginLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 97 of file StudyCaloResponse.cc.

97 {}

◆ beginRun()

void StudyCaloResponse::beginRun ( edm::Run const &  iRun,
edm::EventSetup const &  iSetup 
)
overrideprivate

Definition at line 989 of file StudyCaloResponse.cc.

References changed_, firstEvent_, fs_, h_HLTAccepts, hltConfig_, mps_fire::i, HLTConfigProvider::init(), TFileService::make(), nRun_, and edm::RunBase::run().

989  {
990  char hname[100], htit[400];
991  edm::LogVerbatim("IsoTrack") << "Run[" << nRun_ << "] " << iRun.run() << " hltconfig.init "
992  << hltConfig_.init(iRun, iSetup, "HLT", changed_);
993  sprintf(hname, "h_HLTAccepts_%i", iRun.run());
994  sprintf(htit, "HLT Accepts for Run No %i", iRun.run());
995  TH1I* hnew = fs_->make<TH1I>(hname, htit, 500, 0, 500);
996  for (int i = 1; i <= 500; ++i)
997  hnew->GetXaxis()->SetBinLabel(i, " ");
998  h_HLTAccepts.push_back(hnew);
999  edm::LogVerbatim("IsoTrack") << "beginRun " << iRun.run();
1000  firstEvent_ = true;
1001  changed_ = false;
1002 }
Log< level::Info, true > LogVerbatim
edm::Service< TFileService > fs_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
std::vector< TH1I * > h_HLTAccepts
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
HLTConfigProvider hltConfig_

◆ clear()

void StudyCaloResponse::clear ( void  )
private

Definition at line 1010 of file StudyCaloResponse.cc.

References tr_FE11x11P, tr_FE15x15P, tr_FE7x7P, tr_H3x3, tr_H5x5, tr_H7x7, tr_iEta, tr_MaxNearHcalP7x7, tr_MaxNearP31X31, tr_SE11x11P, tr_SE15x15P, tr_SE7x7P, tr_TrigName, tr_TrkEta, tr_TrkID, tr_TrkP, tr_TrkPhi, and tr_TrkPt.

Referenced by analyze().

1010  {
1011  tr_TrigName.clear();
1012  tr_TrkPt.clear();
1013  tr_TrkP.clear();
1014  tr_TrkEta.clear();
1015  tr_TrkPhi.clear();
1016  tr_TrkID.clear();
1017  tr_MaxNearP31X31.clear();
1018  tr_MaxNearHcalP7x7.clear();
1019  tr_FE7x7P.clear();
1020  tr_FE11x11P.clear();
1021  tr_FE15x15P.clear();
1022  tr_SE7x7P.clear();
1023  tr_SE11x11P.clear();
1024  tr_SE15x15P.clear();
1025  tr_H3x3.clear();
1026  tr_H5x5.clear();
1027  tr_H7x7.clear();
1028  tr_iEta.clear();
1029 }
std::vector< double > tr_TrkEta
std::vector< bool > tr_SE11x11P
std::vector< double > tr_H5x5
std::vector< std::string > tr_TrigName
std::vector< double > tr_FE7x7P
std::vector< double > tr_MaxNearP31X31
std::vector< double > tr_TrkPhi
std::vector< int > tr_iEta
std::vector< double > tr_MaxNearHcalP7x7
std::vector< double > tr_FE15x15P
std::vector< double > tr_TrkP
std::vector< double > tr_TrkPt
std::vector< double > tr_H3x3
std::vector< int > tr_TrkID
std::vector< bool > tr_SE7x7P
std::vector< double > tr_H7x7
std::vector< double > tr_FE11x11P
std::vector< bool > tr_SE15x15P

◆ endLuminosityBlock()

virtual void StudyCaloResponse::endLuminosityBlock ( edm::LuminosityBlock const &  ,
edm::EventSetup const &   
)
inlineprivatevirtual

Definition at line 98 of file StudyCaloResponse.cc.

98 {}

◆ endRun()

void StudyCaloResponse::endRun ( edm::Run const &  iRun,
edm::EventSetup const &   
)
overrideprivate

Definition at line 1005 of file StudyCaloResponse.cc.

References nRun_, and edm::RunBase::run().

1005  {
1006  ++nRun_;
1007  edm::LogVerbatim("IsoTrack") << "endRun[" << nRun_ << "] " << iRun.run();
1008 }
Log< level::Info, true > LogVerbatim

◆ fillDescriptions()

void StudyCaloResponse::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 269 of file StudyCaloResponse.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, AlCaHLTBitMon_QueryRunRegistry::string, ClusterTask_cfi::trig, and hltDeepSecondaryVertexTagInfosPFPuppi_cfi::weights.

269  {
270  std::vector<std::string> trig;
271  std::vector<double> weights;
272  std::vector<std::string> newNames = {"HLT", "PixelTracks_Multiplicity", "HLT_Physics_", "HLT_JetE", "HLT_ZeroBias"};
274  desc.add<edm::InputTag>("particleSource", edm::InputTag("genParticles"));
275  desc.addUntracked<int>("verbosity", 0);
276  desc.addUntracked<std::vector<std::string> >("triggers", trig);
277  desc.addUntracked<std::vector<std::string> >("newNames", newNames);
278  desc.addUntracked<edm::InputTag>("labelMuon", edm::InputTag("muons", "", "RECO"));
279  desc.addUntracked<edm::InputTag>("labelTrack", edm::InputTag("generalTracks", "", "RECO"));
280  desc.addUntracked<std::string>("trackQuality", "highPurity");
281  desc.addUntracked<double>("minTrackPt", 1.0);
282  desc.addUntracked<double>("maxDxyPV", 0.02);
283  desc.addUntracked<double>("maxDzPV", 0.02);
284  desc.addUntracked<double>("maxChi2", 5.0);
285  desc.addUntracked<double>("maxDpOverP", 0.1);
286  desc.addUntracked<int>("minOuterHit", 4);
287  desc.addUntracked<int>("minLayerCrossed", 8);
288  desc.addUntracked<int>("maxInMiss", 0);
289  desc.addUntracked<int>("maxOutMiss", 0);
290  desc.addUntracked<double>("minTrackP", 1.0);
291  desc.addUntracked<double>("maxTrackEta", 2.6);
292  desc.addUntracked<double>("timeMinCutECAL", -500.0);
293  desc.addUntracked<double>("timeMaxCutECAL", 500.0);
294  desc.addUntracked<double>("timeMinCutHCAL", -500.0);
295  desc.addUntracked<double>("timeMaxCutHCAL", 500.0);
296  desc.addUntracked<double>("thresholdEB", 0.030);
297  desc.addUntracked<double>("thresholdEE", 0.150);
298  desc.addUntracked<double>("thresholdHB", 0.7);
299  desc.addUntracked<double>("thresholdHE", 0.8);
300  desc.addUntracked<bool>("isItAOD", false);
301  desc.addUntracked<bool>("vetoTrigger", false);
302  desc.addUntracked<bool>("doTree", false);
303  desc.addUntracked<bool>("vetoMuon", true);
304  desc.addUntracked<double>("cutMuon", 0.1);
305  desc.addUntracked<bool>("vetoEcal", false);
306  desc.addUntracked<double>("cutEcal", 2.0);
307  desc.addUntracked<double>("cutRatio", 0.9);
308  desc.addUntracked<std::vector<double> >("puWeights", weights);
309  descriptions.add("studyCaloResponse", desc);
310 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillEnergy()

void StudyCaloResponse::fillEnergy ( int  flag,
int  ieta,
double  p,
double  enEcal1,
double  enHcal1,
double  enEcal2,
double  enHcal2 
)
private

Definition at line 1045 of file StudyCaloResponse.cc.

References etaBin_, RemoveAddSevLevel::flag, h_energy, mps_fire::i, hcalRecHitTable_cff::ieta, nEtaBin_, nPBin_, AlCaHLTBitMon_ParallelJobs::p, pBin_, and tr_eventWeight.

Referenced by analyze().

1046  {
1047  int ip(-1), ie(-1);
1048  for (int i = 0; i < nPBin_; ++i) {
1049  if (p >= pBin_[i] && p < pBin_[i + 1]) {
1050  ip = i;
1051  break;
1052  }
1053  }
1054  for (int i = 0; i < nEtaBin_; ++i) {
1055  if (ieta >= etaBin_[i] && ieta < etaBin_[i + 1]) {
1056  ie = i;
1057  break;
1058  }
1059  }
1060  if (ip >= 0 && ie >= 0 && enEcal1 > 0.02 && enHcal1 > 0.1) {
1061  h_energy[flag][ip][ie][0]->Fill(enEcal1 / p, tr_eventWeight);
1062  h_energy[flag][ip][ie][1]->Fill(enHcal1 / p, tr_eventWeight);
1063  h_energy[flag][ip][ie][2]->Fill((enEcal1 + enHcal1) / p, tr_eventWeight);
1064  h_energy[flag][ip][ie][3]->Fill(enEcal2 / p, tr_eventWeight);
1065  h_energy[flag][ip][ie][4]->Fill(enHcal2 / p, tr_eventWeight);
1066  h_energy[flag][ip][ie][5]->Fill((enEcal2 + enHcal2) / p, tr_eventWeight);
1067  }
1068 }
double pBin_[nPBin_+1]
int etaBin_[nEtaBin_+1]
static const int nEtaBin_
TH1D * h_energy[nPVBin_+8][nPBin_][nEtaBin_][6]
static const int nPBin_

◆ fillIsolation()

void StudyCaloResponse::fillIsolation ( int  i,
double  emaxnearP,
double  eneutIso1,
double  eneutIso2 
)
private

Definition at line 1038 of file StudyCaloResponse.cc.

References h_ediff, h_ene1, h_ene2, h_maxNearP, mps_fire::i, and tr_eventWeight.

Referenced by analyze().

1038  {
1039  h_maxNearP[i]->Fill(emaxnearP, tr_eventWeight);
1040  h_ene1[i]->Fill(eneutIso1, tr_eventWeight);
1041  h_ene2[i]->Fill(eneutIso2, tr_eventWeight);
1042  h_ediff[i]->Fill(eneutIso2 - eneutIso1, tr_eventWeight);
1043 }

◆ fillTrack()

void StudyCaloResponse::fillTrack ( int  i,
double  pt,
double  p,
double  eta,
double  phi 
)
private

◆ trackPID()

int StudyCaloResponse::trackPID ( const reco::Track pTrack,
const edm::Handle< reco::GenParticleCollection > &  genParticles 
)
private

Definition at line 1082 of file StudyCaloResponse.cc.

References funct::abs(), HLT_2023v12_cff::dEta, HLT_2023v12_cff::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, reco::TrackBase::eta(), AJJGenJetFilter_cfi::genParticles, l1ctLayer2EG_cff::id, heavyIonCSV_trainingSettings::idx, M_PI, AlCaHLTBitMon_ParallelJobs::p, EgammaValidation_cff::pdgId, reco::TrackBase::phi(), and mathSSE::sqrt().

Referenced by analyze().

1083  {
1084  int id(0);
1085  if (genParticles.isValid()) {
1086  unsigned int indx;
1087  reco::GenParticleCollection::const_iterator p;
1088  double mindR(999.9);
1089  for (p = genParticles->begin(), indx = 0; p != genParticles->end(); ++p, ++indx) {
1090  int pdgId = std::abs(p->pdgId());
1091  int idx = (pdgId == 11) ? 1 : ((pdgId == 211) ? 2 : ((pdgId == 321) ? 3 : ((pdgId == 2212) ? 4 : 0)));
1092  if (idx > 0) {
1093  double dEta = pTrack->eta() - p->momentum().Eta();
1094  double phi1 = pTrack->phi();
1095  double phi2 = p->momentum().Phi();
1096  if (phi1 < 0)
1097  phi1 += 2.0 * M_PI;
1098  if (phi2 < 0)
1099  phi2 += 2.0 * M_PI;
1100  double dPhi = phi1 - phi2;
1101  if (dPhi > M_PI)
1102  dPhi -= 2. * M_PI;
1103  else if (dPhi < -M_PI)
1104  dPhi += 2. * M_PI;
1105  double dR = sqrt(dEta * dEta + dPhi * dPhi);
1106  if (dR < mindR) {
1107  mindR = dR;
1108  id = idx;
1109  }
1110  }
1111  }
1112  }
1113  return id;
1114 }
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:649
#define M_PI
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652

◆ truncate_str()

std::string StudyCaloResponse::truncate_str ( const std::string &  str)
private

Definition at line 1070 of file StudyCaloResponse.cc.

References mps_fire::i, str, AlCaHLTBitMon_QueryRunRegistry::string, and z.

Referenced by analyze().

1070  {
1071  std::string truncated_str(str);
1072  int length = str.length();
1073  for (int i = 0; i < length - 2; i++) {
1074  if (str[i] == '_' && str[i + 1] == 'v' && isdigit(str.at(i + 2))) {
1075  int z = i + 1;
1076  truncated_str = str.substr(0, z);
1077  }
1078  }
1079  return (truncated_str);
1080 }
#define str(s)

Member Data Documentation

◆ changed_

bool StudyCaloResponse::changed_
private

Definition at line 125 of file StudyCaloResponse.cc.

Referenced by beginRun(), and StudyCaloResponse().

◆ cutEcal_

const double StudyCaloResponse::cutEcal_
private

Definition at line 120 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ cutMuon_

const double StudyCaloResponse::cutMuon_
private

Definition at line 120 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ cutRatio_

const double StudyCaloResponse::cutRatio_
private

Definition at line 120 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ doTree_

const bool StudyCaloResponse::doTree_
private

Definition at line 119 of file StudyCaloResponse.cc.

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

◆ etaBin_

int StudyCaloResponse::etaBin_[nEtaBin_+1]
private

Definition at line 156 of file StudyCaloResponse.cc.

Referenced by beginJob(), fillEnergy(), and StudyCaloResponse().

◆ eThrEB_

const double StudyCaloResponse::eThrEB_
private

Definition at line 118 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ eThrEE_

const double StudyCaloResponse::eThrEE_
private

Definition at line 118 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ eThrHB_

const double StudyCaloResponse::eThrHB_
private

Definition at line 118 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ eThrHE_

const double StudyCaloResponse::eThrHE_
private

Definition at line 118 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ firstEvent_

bool StudyCaloResponse::firstEvent_
private

Definition at line 125 of file StudyCaloResponse.cc.

Referenced by analyze(), beginRun(), and StudyCaloResponse().

◆ fs_

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

Definition at line 111 of file StudyCaloResponse.cc.

Referenced by beginJob(), and beginRun().

◆ h_counter

TH1D * StudyCaloResponse::h_counter[8]
private

Definition at line 150 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_ediff

TH1D * StudyCaloResponse::h_ediff[2]
private

Definition at line 153 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillIsolation().

◆ h_ene1

TH1D * StudyCaloResponse::h_ene1[2]
private

Definition at line 153 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillIsolation().

◆ h_ene2

TH1D * StudyCaloResponse::h_ene2[2]
private

Definition at line 153 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillIsolation().

◆ h_energy

TH1D* StudyCaloResponse::h_energy[nPVBin_+8][nPBin_][nEtaBin_][6]
private

Definition at line 154 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillEnergy().

◆ h_eta

TH1D* StudyCaloResponse::h_eta[nGen_+2]
private

Definition at line 151 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillTrack().

◆ h_goodPV

TH1I* StudyCaloResponse::h_goodPV
private

Definition at line 147 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_goodRun

TH1I * StudyCaloResponse::h_goodRun
private

Definition at line 147 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_h_pNew

TH1D * StudyCaloResponse::h_h_pNew[8]
private

Definition at line 151 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_HLTAccept

TH1I * StudyCaloResponse::h_HLTAccept
private

Definition at line 146 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_HLTAccepts

std::vector<TH1I*> StudyCaloResponse::h_HLTAccepts
private

Definition at line 149 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginRun().

◆ h_HLTCorr

TH1I * StudyCaloResponse::h_HLTCorr
private

Definition at line 146 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_maxNearP

TH1D* StudyCaloResponse::h_maxNearP[2]
private

Definition at line 153 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillIsolation().

◆ h_nHLT

TH1I* StudyCaloResponse::h_nHLT
private

Definition at line 146 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_nHLTvsRN

TH2I* StudyCaloResponse::h_nHLTvsRN
private

Definition at line 148 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_ntrk

TH1I* StudyCaloResponse::h_ntrk[2]
private

Definition at line 152 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_numberPV

TH1I * StudyCaloResponse::h_numberPV
private

Definition at line 146 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ h_p

TH1D* StudyCaloResponse::h_p[nGen_+2]
private

Definition at line 150 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillTrack().

◆ h_phi

TH1D * StudyCaloResponse::h_phi[nGen_+2]
private

Definition at line 151 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillTrack().

◆ h_pt

TH1D * StudyCaloResponse::h_pt[nGen_+2]
private

Definition at line 150 of file StudyCaloResponse.cc.

Referenced by beginJob(), and fillTrack().

◆ hltConfig_

HLTConfigProvider StudyCaloResponse::hltConfig_
private

Definition at line 110 of file StudyCaloResponse.cc.

Referenced by beginRun().

◆ HLTNames_

std::vector<std::string> StudyCaloResponse::HLTNames_
private

Definition at line 124 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ isItAOD_

const bool StudyCaloResponse::isItAOD_
private

Definition at line 119 of file StudyCaloResponse.cc.

Referenced by StudyCaloResponse().

◆ labelGenTrack_

const edm::InputTag StudyCaloResponse::labelGenTrack_
private

Definition at line 114 of file StudyCaloResponse.cc.

Referenced by StudyCaloResponse().

◆ labelMuon_

const edm::InputTag StudyCaloResponse::labelMuon_
private

Definition at line 114 of file StudyCaloResponse.cc.

Referenced by StudyCaloResponse().

◆ maxTrackEta_

const double StudyCaloResponse::maxTrackEta_
private

Definition at line 116 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ minTrackP_

const double StudyCaloResponse::minTrackP_
private

Definition at line 116 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ nEtaBin_

const int StudyCaloResponse::nEtaBin_ = 4
staticprivate

Definition at line 108 of file StudyCaloResponse.cc.

Referenced by beginJob(), fillEnergy(), and StudyCaloResponse().

◆ newNames_

const std::vector<std::string> StudyCaloResponse::newNames_
private

Definition at line 113 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ nGen_

const int StudyCaloResponse::nGen_ = (nPVBin_ + 12)
staticprivate

Definition at line 109 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ nPBin_

const int StudyCaloResponse::nPBin_ = 15
staticprivate

Definition at line 108 of file StudyCaloResponse.cc.

Referenced by beginJob(), fillEnergy(), and StudyCaloResponse().

◆ nPVBin_

const int StudyCaloResponse::nPVBin_ = 4
staticprivate

Definition at line 108 of file StudyCaloResponse.cc.

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

◆ nRun_

int StudyCaloResponse::nRun_
private

Definition at line 156 of file StudyCaloResponse.cc.

Referenced by analyze(), beginRun(), and endRun().

◆ pBin_

double StudyCaloResponse::pBin_[nPBin_+1]
private

Definition at line 157 of file StudyCaloResponse.cc.

Referenced by beginJob(), fillEnergy(), and StudyCaloResponse().

◆ puWeights_

const std::vector<double> StudyCaloResponse::puWeights_
private

Definition at line 121 of file StudyCaloResponse.cc.

Referenced by analyze().

◆ pvBin_

int StudyCaloResponse::pvBin_[nPVBin_+1]
private

Definition at line 156 of file StudyCaloResponse.cc.

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

◆ selectionParameters_

spr::trackSelectionParameters StudyCaloResponse::selectionParameters_
private

Definition at line 123 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ theTrackQuality_

const std::string StudyCaloResponse::theTrackQuality_
private

Definition at line 115 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ theTriggerResultsLabel_

const edm::InputTag StudyCaloResponse::theTriggerResultsLabel_
private

Definition at line 122 of file StudyCaloResponse.cc.

Referenced by StudyCaloResponse().

◆ tMaxE_

const double StudyCaloResponse::tMaxE_
private

Definition at line 117 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tMaxH_

const double StudyCaloResponse::tMaxH_
private

Definition at line 117 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tMinE_

const double StudyCaloResponse::tMinE_
private

Definition at line 117 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tMinH_

const double StudyCaloResponse::tMinH_
private

Definition at line 117 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_caloTopology_

edm::ESGetToken<CaloTopology, CaloTopologyRecord> StudyCaloResponse::tok_caloTopology_
private

Definition at line 140 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_EB_

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

Definition at line 134 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_ecalChStatus_

edm::ESGetToken<EcalChannelStatus, EcalChannelStatusRcd> StudyCaloResponse::tok_ecalChStatus_
private

Definition at line 143 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_EE_

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

Definition at line 135 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_ew_

edm::EDGetTokenT<GenEventInfoProduct> StudyCaloResponse::tok_ew_
private

Definition at line 137 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_genTrack_

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

Definition at line 132 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_geom_

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

Definition at line 139 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_hbhe_

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

Definition at line 136 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_lumi

edm::EDGetTokenT<LumiDetails> StudyCaloResponse::tok_lumi
private

Definition at line 127 of file StudyCaloResponse.cc.

Referenced by StudyCaloResponse().

◆ tok_magField_

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

Definition at line 142 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_Muon_

edm::EDGetTokenT<reco::MuonCollection> StudyCaloResponse::tok_Muon_
private

Definition at line 131 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_parts_

edm::EDGetTokenT<reco::GenParticleCollection> StudyCaloResponse::tok_parts_
private

Definition at line 130 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_recVtx_

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

Definition at line 133 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_sevlv_

edm::ESGetToken<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd> StudyCaloResponse::tok_sevlv_
private

Definition at line 144 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_topo_

edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> StudyCaloResponse::tok_topo_
private

Definition at line 141 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_trigEvt

edm::EDGetTokenT<trigger::TriggerEvent> StudyCaloResponse::tok_trigEvt
private

Definition at line 128 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tok_trigRes

edm::EDGetTokenT<edm::TriggerResults> StudyCaloResponse::tok_trigRes
private

Definition at line 129 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ tr_eventWeight

double StudyCaloResponse::tr_eventWeight
private

Definition at line 159 of file StudyCaloResponse.cc.

Referenced by analyze(), beginJob(), fillEnergy(), fillIsolation(), and fillTrack().

◆ tr_FE11x11P

std::vector<double> StudyCaloResponse::tr_FE11x11P
private

Definition at line 164 of file StudyCaloResponse.cc.

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

◆ tr_FE15x15P

std::vector<double> StudyCaloResponse::tr_FE15x15P
private

Definition at line 164 of file StudyCaloResponse.cc.

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

◆ tr_FE7x7P

std::vector<double> StudyCaloResponse::tr_FE7x7P
private

Definition at line 164 of file StudyCaloResponse.cc.

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

◆ tr_goodPV

int StudyCaloResponse::tr_goodPV
private

Definition at line 158 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ tr_goodRun

int StudyCaloResponse::tr_goodRun
private

Definition at line 158 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ tr_H3x3

std::vector<double> StudyCaloResponse::tr_H3x3
private

Definition at line 163 of file StudyCaloResponse.cc.

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

◆ tr_H5x5

std::vector<double> StudyCaloResponse::tr_H5x5
private

Definition at line 163 of file StudyCaloResponse.cc.

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

◆ tr_H7x7

std::vector<double> StudyCaloResponse::tr_H7x7
private

Definition at line 163 of file StudyCaloResponse.cc.

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

◆ tr_iEta

std::vector<int> StudyCaloResponse::tr_iEta
private

Definition at line 166 of file StudyCaloResponse.cc.

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

◆ tr_MaxNearHcalP7x7

std::vector<double> StudyCaloResponse::tr_MaxNearHcalP7x7
private

Definition at line 162 of file StudyCaloResponse.cc.

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

◆ tr_MaxNearP31X31

std::vector<double> StudyCaloResponse::tr_MaxNearP31X31
private

Definition at line 162 of file StudyCaloResponse.cc.

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

◆ tr_SE11x11P

std::vector<bool> StudyCaloResponse::tr_SE11x11P
private

Definition at line 165 of file StudyCaloResponse.cc.

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

◆ tr_SE15x15P

std::vector<bool> StudyCaloResponse::tr_SE15x15P
private

Definition at line 165 of file StudyCaloResponse.cc.

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

◆ tr_SE7x7P

std::vector<bool> StudyCaloResponse::tr_SE7x7P
private

Definition at line 165 of file StudyCaloResponse.cc.

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

◆ tr_TrigName

std::vector<std::string> StudyCaloResponse::tr_TrigName
private

Definition at line 160 of file StudyCaloResponse.cc.

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

◆ tr_TrkEta

std::vector<double> StudyCaloResponse::tr_TrkEta
private

Definition at line 161 of file StudyCaloResponse.cc.

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

◆ tr_TrkID

std::vector<int> StudyCaloResponse::tr_TrkID
private

Definition at line 166 of file StudyCaloResponse.cc.

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

◆ tr_TrkP

std::vector<double> StudyCaloResponse::tr_TrkP
private

Definition at line 161 of file StudyCaloResponse.cc.

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

◆ tr_TrkPhi

std::vector<double> StudyCaloResponse::tr_TrkPhi
private

Definition at line 161 of file StudyCaloResponse.cc.

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

◆ tr_TrkPt

std::vector<double> StudyCaloResponse::tr_TrkPt
private

Definition at line 161 of file StudyCaloResponse.cc.

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

◆ tree_

TTree* StudyCaloResponse::tree_
private

Definition at line 155 of file StudyCaloResponse.cc.

Referenced by analyze(), and beginJob().

◆ triggerEvent_

const edm::InputTag StudyCaloResponse::triggerEvent_
private

Definition at line 122 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ trigNames_

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

Definition at line 113 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ verbosity_

const int StudyCaloResponse::verbosity_
private

Definition at line 112 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ vetoEcal_

const bool StudyCaloResponse::vetoEcal_
private

Definition at line 119 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ vetoMuon_

const bool StudyCaloResponse::vetoMuon_
private

Definition at line 119 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().

◆ vetoTrigger_

const bool StudyCaloResponse::vetoTrigger_
private

Definition at line 119 of file StudyCaloResponse.cc.

Referenced by analyze(), and StudyCaloResponse().