CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
MtdTracksValidation Class Reference
Inheritance diagram for MtdTracksValidation:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 MtdTracksValidation (const edm::ParameterSet &)
 
 ~MtdTracksValidation () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
const edm::Ref< std::vector< TrackingParticle > > * getMatchedTP (const reco::TrackBaseRef &, const double &)
 
bool isETL (const double eta) const
 
const bool mvaGenRecMatch (const HepMC::GenParticle &, const double &, const reco::TrackBase &, const bool &)
 
const bool mvaGenSel (const HepMC::GenParticle &, const float &)
 
const bool mvaRecSel (const reco::TrackBase &, const reco::Vertex &, const double &, const double &)
 
const bool mvaTPSel (const TrackingParticle &)
 
const bool tpWithMTD (const TrackingParticle &, const std::unordered_set< unsigned long int > &)
 
const unsigned long int uniqueId (const uint32_t x, const EncodedEventId &y)
 

Private Attributes

edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
 
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
 
const std::string folder_
 
edm::EDGetTokenT< reco::TrackCollectionGenRecTrackToken_
 
edm::EDGetTokenT< edm::HepMCProductHepMCProductToken_
 
MonitorElementmeBTLTrackEffEtaMtd_
 
MonitorElementmeBTLTrackEffEtaTot_
 
MonitorElementmeBTLTrackEffPhiMtd_
 
MonitorElementmeBTLTrackEffPhiTot_
 
MonitorElementmeBTLTrackEffPtMtd_
 
MonitorElementmeBTLTrackEffPtTot_
 
MonitorElementmeBTLTrackPtRes_
 
MonitorElementmeBTLTrackRPTime_
 
MonitorElementmeETLTrackEffEta2Mtd_ [2]
 
MonitorElementmeETLTrackEffEtaMtd_ [2]
 
MonitorElementmeETLTrackEffEtaTot_ [2]
 
MonitorElementmeETLTrackEffPhi2Mtd_ [2]
 
MonitorElementmeETLTrackEffPhiMtd_ [2]
 
MonitorElementmeETLTrackEffPhiTot_ [2]
 
MonitorElementmeETLTrackEffPt2Mtd_ [2]
 
MonitorElementmeETLTrackEffPtMtd_ [2]
 
MonitorElementmeETLTrackEffPtTot_ [2]
 
MonitorElementmeETLTrackPtRes_
 
MonitorElementmeETLTrackRPTime_
 
MonitorElementmeMVATrackEffEtaTot_
 
MonitorElementmeMVATrackEffPtTot_
 
MonitorElementmeMVATrackMatchedEffEtaMtd_
 
MonitorElementmeMVATrackMatchedEffEtaTot_
 
MonitorElementmeMVATrackMatchedEffPtMtd_
 
MonitorElementmeMVATrackMatchedEffPtTot_
 
MonitorElementmeMVATrackPullTot_
 
MonitorElementmeMVATrackResTot_
 
MonitorElementmeMVATrackZposResTot_
 
MonitorElementmeNTrackingParticles_
 
MonitorElementmeTrackMatchedTPEffEtaEtl2Mtd_
 
MonitorElementmeTrackMatchedTPEffEtaMtd_
 
MonitorElementmeTrackMatchedTPEffEtaTot_
 
MonitorElementmeTrackMatchedTPEffPtEtl2Mtd_
 
MonitorElementmeTrackMatchedTPEffPtMtd_
 
MonitorElementmeTrackMatchedTPEffPtTot_
 
MonitorElementmeTrackMatchedTPmtdEffEtaMtd_
 
MonitorElementmeTrackMatchedTPmtdEffEtaTot_
 
MonitorElementmeTrackMatchedTPmtdEffPtMtd_
 
MonitorElementmeTrackMatchedTPmtdEffPtTot_
 
MonitorElementmeTrackMVAQual_
 
MonitorElementmeTrackNumHits_
 
MonitorElementmeTrackPathLenghtvsEta_
 
MonitorElementmeTrackSigmat0Pid_
 
MonitorElementmeTrackSigmat0SafePid_
 
MonitorElementmeTrackSigmat0Src_
 
MonitorElementmeTrackt0Pid_
 
MonitorElementmeTrackt0SafePid_
 
MonitorElementmeTrackt0Src_
 
MonitorElementmeTracktmtd_
 
MonitorElementmeUnassCrysEnergy_
 
MonitorElementmeUnassDeposit_
 
MonitorElementmeUnassLgadsEnergy_
 
MonitorElementmeUnassociatedDetId_
 
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecordmtdgeoToken_
 
edm::ESGetToken< MTDTopology, MTDTopologyRcdmtdtopoToken_
 
bool optionalPlots_
 
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecordparticleTableToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
 
const reco::RecoToSimCollectionr2s_
 
edm::EDGetTokenT< reco::RecoToSimCollectionrecoToSimAssociationToken_
 
edm::EDGetTokenT< reco::TrackCollectionRecTrackToken_
 
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
 
const reco::SimToRecoCollections2r_
 
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0PidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > SigmatmtdToken_
 
edm::EDGetTokenT< reco::SimToRecoCollectionsimToRecoAssociationToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
 
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
 
edm::EDGetTokenT< TrackingParticleCollectiontrackingParticleCollectionToken_
 
const float trackMaxBtlEta_
 
const float trackMaxEtlEta_
 
const float trackMinEtlEta_
 
const float trackMinPt_
 
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
 

Static Private Attributes

static constexpr double deltaDRcut_ = 0.03
 
static constexpr double deltaPTcut_ = 0.05
 
static constexpr double deltaZcut_ = 0.1
 
static constexpr double depositBTLthreshold_ = 1
 
static constexpr double depositETLthreshold_ = 0.001
 
static constexpr double etacutGEN_ = 4.
 
static constexpr double etacutREC_ = 3.
 
static constexpr double etaMatchCut_ = 0.05
 
static constexpr double pTcut_ = 0.7
 
static constexpr double rBTL_ = 110.0
 
static constexpr double zETL_ = 290.0
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 60 of file MtdTracksValidation.cc.

Constructor & Destructor Documentation

◆ MtdTracksValidation()

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

Definition at line 204 of file MtdTracksValidation.cc.

References btlSimHitsToken_, etlSimHitsToken_, GenRecTrackToken_, edm::ParameterSet::getParameter(), HepMCProductToken_, mtdgeoToken_, mtdtopoToken_, particleTableToken_, pathLengthToken_, recoToSimAssociationToken_, RecTrackToken_, RecVertexToken_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, simToRecoAssociationToken_, t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, trackAssocToken_, trackingParticleCollectionToken_, and trackMVAQualToken_.

205  : folder_(iConfig.getParameter<std::string>("folder")),
206  trackMinPt_(iConfig.getParameter<double>("trackMinimumPt")),
207  trackMaxBtlEta_(iConfig.getParameter<double>("trackMaximumBtlEta")),
208  trackMinEtlEta_(iConfig.getParameter<double>("trackMinimumEtlEta")),
209  trackMaxEtlEta_(iConfig.getParameter<double>("trackMaximumEtlEta")),
210  optionalPlots_(iConfig.getUntrackedParameter<bool>("optionalPlots")) {
211  GenRecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagG"));
212  RecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagT"));
213  RecVertexToken_ = consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("inputTagV"));
214  HepMCProductToken_ = consumes<edm::HepMCProduct>(iConfig.getParameter<edm::InputTag>("inputTagH"));
216  consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
218  consumes<reco::SimToRecoCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
220  consumes<reco::RecoToSimCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
221  btlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("btlSimHits"));
222  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("etlSimHits"));
223  trackAssocToken_ = consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("trackAssocSrc"));
224  pathLengthToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("pathLengthSrc"));
225  tmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tmtd"));
226  SigmatmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmatmtd"));
227  t0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0Src"));
228  Sigmat0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0Src"));
229  t0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0PID"));
230  Sigmat0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0PID"));
231  t0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0SafePID"));
232  Sigmat0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0SafePID"));
233  trackMVAQualToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("trackMVAQual"));
234  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
235  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
236  particleTableToken_ = esConsumes<HepPDT::ParticleDataTable, edm::DefaultRecord>();
237 }
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
const std::string folder_
edm::EDGetTokenT< edm::HepMCProduct > HepMCProductToken_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::TrackCollection > RecTrackToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
edm::EDGetTokenT< edm::ValueMap< float > > SigmatmtdToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleCollectionToken_
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0PidToken_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > particleTableToken_

◆ ~MtdTracksValidation()

MtdTracksValidation::~MtdTracksValidation ( )
override

Definition at line 239 of file MtdTracksValidation.cc.

239 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 242 of file MtdTracksValidation.cc.

References funct::abs(), btlSimHitsToken_, ALCARECOTkAlJpsiMuMu_cff::charge, BTLDetId::column(), angle_units::operators::convertMmToCm(), geant_units::operators::convertUnitsTo(), MTDTopologyMode::crysLayoutFromTopoMode(), TauDecayModes::dec, deltaZcut_, depositBTLthreshold_, depositETLthreshold_, l1ctLayer1_cff::dZ, HCALHighEnergyHPDFilter_cfi::energy, etaMatchCut_, MTDTopologyMode::etlLayoutFromTopoMode(), etlSimHitsToken_, Exception, dqm::impl::MonitorElement::Fill(), GenRecTrackToken_, BTLDetId::geographicalId(), ETLDetId::geographicalId(), totem::nt2::vfat::geoId(), relativeConstraints::geom, edm::EventSetup::getHandle(), getMatchedTP(), MTDTopology::getMTDTopologyMode(), edm::EventSetup::getTransientHandle(), HepMCProductToken_, iEvent, LogDebug, edm::makeValid(), CaloTowersParam_cfi::mc, meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEta2Mtd_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhi2Mtd_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPt2Mtd_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackPtRes_, meETLTrackRPTime_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, meNTrackingParticles_, meTrackMatchedTPEffEtaEtl2Mtd_, meTrackMatchedTPEffEtaMtd_, meTrackMatchedTPEffEtaTot_, meTrackMatchedTPEffPtEtl2Mtd_, meTrackMatchedTPEffPtMtd_, meTrackMatchedTPEffPtTot_, meTrackMatchedTPmtdEffEtaMtd_, meTrackMatchedTPmtdEffEtaTot_, meTrackMatchedTPmtdEffPtMtd_, meTrackMatchedTPmtdEffPtTot_, meTrackMVAQual_, meTrackNumHits_, meTrackPathLenghtvsEta_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, meUnassCrysEnergy_, meUnassDeposit_, meUnassLgadsEnergy_, meUnassociatedDetId_, mtdgeoToken_, mtdtopoToken_, mvaGenRecMatch(), mvaGenSel(), mvaRecSel(), mvaTPSel(), ETLDetId::nDisc(), RectangularMTDTopology::nrows(), optionalPlots_, LHEGenericFilter_cfi::ParticleID, particleTableToken_, pathLengthToken_, RectangularMTDTopology::pixelToModuleLocalPoint(), r2s_, DetId::rawId(), recoToSimAssociationToken_, RecTrackToken_, RecVertexToken_, BTLDetId::row(), s2r_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, rpcPointValidation_cfi::simHit, simToRecoAssociationToken_, ProxyMTDTopology::specificTopology(), t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, GeomDet::toGlobal(), GeomDet::topology(), cmsswSequenceInfo::tp, ETLDetId::tp, tpWithMTD(), HLT_2022v14_cff::track, trackAssocToken_, trackingParticleCollectionToken_, trackMaxBtlEta_, trackMaxEtlEta_, trackMinEtlEta_, trackMinPt_, trackMVAQualToken_, uniqueId(), x, y, z, and MTDDetId::zside().

242  {
243  using namespace edm;
244  using namespace geant_units::operators;
245  using namespace std;
246 
247  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
248  const MTDGeometry* geom = geometryHandle.product();
249  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
250  const MTDTopology* topology = topologyHandle.product();
251 
252  bool topo1Dis = false;
253  bool topo2Dis = false;
255  topo1Dis = true;
256  } else {
257  topo2Dis = true;
258  }
259 
260  auto GenRecTrackHandle = makeValid(iEvent.getHandle(GenRecTrackToken_));
261  auto RecVertexHandle = makeValid(iEvent.getHandle(RecVertexToken_));
262 
263  std::unordered_map<uint32_t, MTDHit> m_btlHits;
264  std::unordered_map<uint32_t, MTDHit> m_etlHits;
265  std::unordered_map<uint32_t, std::set<unsigned long int>> m_btlTrkPerCell;
266  std::unordered_map<uint32_t, std::set<unsigned long int>> m_etlTrkPerCell;
267 
268  const auto& tMtd = iEvent.get(tmtdToken_);
269  const auto& SigmatMtd = iEvent.get(SigmatmtdToken_);
270  const auto& t0Src = iEvent.get(t0SrcToken_);
271  const auto& Sigmat0Src = iEvent.get(Sigmat0SrcToken_);
272  const auto& t0Pid = iEvent.get(t0PidToken_);
273  const auto& Sigmat0Pid = iEvent.get(Sigmat0PidToken_);
274  const auto& t0Safe = iEvent.get(t0SafePidToken_);
275  const auto& Sigmat0Safe = iEvent.get(Sigmat0SafePidToken_);
276  const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_);
277  const auto& trackAssoc = iEvent.get(trackAssocToken_);
278  const auto& pathLength = iEvent.get(pathLengthToken_);
279 
280  const auto& primRecoVtx = *(RecVertexHandle.product()->begin());
281 
282  // generator level information (HepMC format)
283  auto GenEventHandle = makeValid(iEvent.getHandle(HepMCProductToken_));
284  const HepMC::GenEvent* mc = GenEventHandle->GetEvent();
285  double zsim = convertMmToCm((*(mc->vertices_begin()))->position().z());
286  double tsim = (*(mc->vertices_begin()))->position().t() * CLHEP::mm / CLHEP::c_light;
287 
288  auto pdt = iSetup.getHandle(particleTableToken_);
289  const HepPDT::ParticleDataTable* pdTable = pdt.product();
290 
291  auto simToRecoH = makeValid(iEvent.getHandle(simToRecoAssociationToken_));
292  s2r_ = simToRecoH.product();
293 
294  auto recoToSimH = makeValid(iEvent.getHandle(recoToSimAssociationToken_));
295  r2s_ = recoToSimH.product();
296 
297  // find all signal event trackId corresponding to an MTD simHit
298  std::unordered_set<unsigned long int> mtdTrackId;
299 
300  std::unordered_set<unsigned long int> tpTrackId;
301  auto tpHandle = makeValid(iEvent.getHandle(trackingParticleCollectionToken_));
302  TrackingParticleCollection tpColl = *(tpHandle.product());
303  for (const auto& tp : tpColl) {
304  if (tp.eventId().bunchCrossing() == 0 && tp.eventId().event() == 0) {
305  if (!mvaTPSel(tp))
306  continue;
307  if (optionalPlots_) {
308  if (std::abs(tp.eta()) < trackMaxBtlEta_) {
310  } else if ((std::abs(tp.eta()) < trackMaxEtlEta_) && (std::abs(tp.eta()) > trackMinEtlEta_)) {
312  }
313  }
314  for (const auto& simTrk : tp.g4Tracks()) {
315  auto const thisTId = uniqueId(simTrk.trackId(), simTrk.eventId());
316  tpTrackId.insert(thisTId);
317  LogDebug("MtdTracksValidation") << "TP simTrack id : " << thisTId;
318  }
319  }
320  }
321 
322  //Fill maps with simhits accumulated per DetId
323 
324  auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_));
325  MixCollection<PSimHit> btlSimHits(btlSimHitsHandle.product());
326  for (auto const& simHit : btlSimHits) {
327  if (simHit.tof() < 0 || simHit.tof() > 25.)
328  continue;
329  DetId id = simHit.detUnitId();
330  auto const thisHId = uniqueId(simHit.trackId(), simHit.eventId());
331  m_btlTrkPerCell[id.rawId()].insert(thisHId);
332  auto simHitIt = m_btlHits.emplace(id.rawId(), MTDHit()).first;
333  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
334  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
335  }
336 
337  uint32_t hcount(0);
338  for (auto const& cell : m_btlTrkPerCell) {
339  bool foundAssocTP = false;
340  auto detId_key = cell.first;
341  for (auto const& simtrack : cell.second) {
342  if (tpTrackId.find(simtrack) != tpTrackId.end()) {
343  foundAssocTP = true;
344  mtdTrackId.insert(simtrack);
345  }
346  }
347  if (foundAssocTP == false) {
348  meUnassCrysEnergy_->Fill(log10(m_btlHits[detId_key].energy));
349  if (m_btlHits[detId_key].energy > depositBTLthreshold_) {
350  hcount++;
351  }
352  }
353  }
354  meUnassociatedDetId_->Fill(0.5, hcount);
355 
356  auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_));
357  MixCollection<PSimHit> etlSimHits(etlSimHitsHandle.product());
358  for (auto const& simHit : etlSimHits) {
359  if (simHit.tof() < 0 || simHit.tof() > 25.) {
360  continue;
361  }
362  DetId id = simHit.detUnitId();
363  auto const thisHId = uniqueId(simHit.trackId(), simHit.eventId());
364  m_etlTrkPerCell[id.rawId()].insert(thisHId);
365  auto simHitIt = m_etlHits.emplace(id.rawId(), MTDHit()).first;
366  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
367  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
368  }
369 
370  hcount = 0;
371  for (auto const& cell : m_etlTrkPerCell) {
372  bool foundAssocTP = false;
373  auto detId_key = cell.first;
374  for (auto const& simtrack : cell.second) {
375  if (tpTrackId.find(simtrack) != tpTrackId.end()) {
376  foundAssocTP = true;
377  mtdTrackId.insert(simtrack);
378  }
379  }
380  if (foundAssocTP == false) {
381  meUnassLgadsEnergy_->Fill(log10(m_etlHits[detId_key].energy));
382  if (m_etlHits[detId_key].energy > depositETLthreshold_) {
383  hcount++;
384  }
385  }
386  }
387  meUnassociatedDetId_->Fill(1.5, hcount);
388 
389  // Search for TP without associated hits and unassociated DetIds above threshold
390  if (optionalPlots_) {
391  for (const auto& tp : tpColl) {
392  if (tp.eventId().bunchCrossing() == 0 && tp.eventId().event() == 0) {
393  if (!mvaTPSel(tp)) {
394  continue;
395  }
396 
397  // test BTL crystals for association
398 
399  if (std::abs(tp.eta()) < trackMaxBtlEta_) {
400  bool tpIsAssoc = false;
401  bool goodCell = false;
402  for (auto const& cell : m_btlTrkPerCell) {
403  auto detId_key = cell.first;
404  if (m_btlHits[detId_key].energy < depositBTLthreshold_) {
405  continue;
406  }
407 
408  BTLDetId detId(detId_key);
409  DetId geoId = detId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(topology->getMTDTopologyMode()));
410  const MTDGeomDet* thedet = geom->idToDet(geoId);
411  if (thedet == nullptr)
412  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
413  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
414  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
415  const RectangularMTDTopology& topo =
416  static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
417 
418  Local3DPoint local_point(convertMmToCm(m_btlHits[detId_key].x),
419  convertMmToCm(m_btlHits[detId_key].y),
420  convertMmToCm(m_btlHits[detId_key].z));
421 
422  local_point =
423  topo.pixelToModuleLocalPoint(local_point, detId.row(topo.nrows()), detId.column(topo.nrows()));
424  const auto& global_point = thedet->toGlobal(local_point);
425 
426  if (std::abs(tp.eta() - global_point.eta()) > etaMatchCut_) {
427  continue;
428  }
429  goodCell = true;
430  for (auto const& simtrack : cell.second) {
431  for (auto const& TPsimtrack : tp.g4Tracks()) {
432  auto const testId = uniqueId(TPsimtrack.trackId(), TPsimtrack.eventId());
433  if (simtrack == testId) {
434  tpIsAssoc = true;
435  break;
436  }
437  }
438  }
439  } //cell Loop
440  if (!tpIsAssoc && goodCell) {
441  meUnassDeposit_->Fill(0.5);
442  }
443 
444  } else {
445  // test ETL LGADs for association
446  bool tpIsAssoc = false;
447  bool goodCell = false;
448  for (auto const& cell : m_etlTrkPerCell) {
449  auto detId_key = cell.first;
450  if (m_etlHits[detId_key].energy < depositETLthreshold_) {
451  continue;
452  }
453 
454  ETLDetId detId(detId_key);
455  DetId geoId = detId.geographicalId();
456  const MTDGeomDet* thedet = geom->idToDet(geoId);
457  if (thedet == nullptr)
458  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
459  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
460 
461  Local3DPoint local_point(convertMmToCm(m_etlHits[detId_key].x),
462  convertMmToCm(m_etlHits[detId_key].y),
463  convertMmToCm(m_etlHits[detId_key].z));
464  const auto& global_point = thedet->toGlobal(local_point);
465 
466  if (std::abs(tp.eta() - global_point.eta()) > etaMatchCut_) {
467  continue;
468  }
469  goodCell = true;
470  for (auto const& simtrack : cell.second) {
471  for (auto const& TPsimtrack : tp.g4Tracks()) {
472  auto const testId = uniqueId(TPsimtrack.trackId(), TPsimtrack.eventId());
473  if (simtrack == testId) {
474  tpIsAssoc = true;
475  break;
476  }
477  }
478  }
479  } //cell Loop
480  if (!tpIsAssoc && goodCell) {
481  meUnassDeposit_->Fill(1.5);
482  }
483  } // tp BTL/ETL acceptance selection
484  }
485  } //tp Loop
486  } //optionalPlots
487 
488  unsigned int index = 0;
489 
490  // flag to select events with reco vertex close to true simulated primary vertex, or PV fake (particle guns)
491  const bool isGoodVtx = std::abs(primRecoVtx.z() - zsim) < deltaZcut_ || primRecoVtx.isFake();
492 
493  // --- Loop over all RECO tracks ---
494  for (const auto& trackGen : *GenRecTrackHandle) {
495  const reco::TrackRef trackref(iEvent.getHandle(GenRecTrackToken_), index);
496  index++;
497 
498  if (trackAssoc[trackref] == -1) {
499  LogInfo("mtdTracks") << "Extended track not associated";
500  continue;
501  }
502 
503  const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecTrackToken_), trackAssoc[trackref]);
504  const reco::Track track = *mtdTrackref;
505 
506  bool isBTL = false;
507  bool twoETLdiscs = false;
508 
509  if (track.pt() >= trackMinPt_ && std::abs(track.eta()) <= trackMaxEtlEta_) {
510  meTracktmtd_->Fill(tMtd[trackref]);
511  if (std::round(SigmatMtd[trackref] - Sigmat0Pid[trackref]) != 0) {
512  LogWarning("mtdTracks")
513  << "TimeError associated to refitted track is different from TimeError stored in tofPID "
514  "sigmat0 ValueMap: this should not happen";
515  }
516 
517  meTrackt0Src_->Fill(t0Src[trackref]);
518  meTrackSigmat0Src_->Fill(Sigmat0Src[trackref]);
519 
520  meTrackt0Pid_->Fill(t0Pid[trackref]);
521  meTrackSigmat0Pid_->Fill(Sigmat0Pid[trackref]);
522  meTrackt0SafePid_->Fill(t0Safe[trackref]);
523  meTrackSigmat0SafePid_->Fill(Sigmat0Safe[trackref]);
524  meTrackMVAQual_->Fill(mtdQualMVA[trackref]);
525 
526  meTrackPathLenghtvsEta_->Fill(std::abs(track.eta()), pathLength[trackref]);
527 
528  if (std::abs(track.eta()) < trackMaxBtlEta_) {
529  // --- all BTL tracks (with and without hit in MTD) ---
533 
534  bool MTDBtl = false;
535  int numMTDBtlvalidhits = 0;
536  for (const auto hit : track.recHits()) {
537  if (hit->isValid() == false)
538  continue;
539  MTDDetId Hit = hit->geographicalId();
540  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1)) {
541  MTDBtl = true;
542  numMTDBtlvalidhits++;
543  }
544  }
545  meTrackNumHits_->Fill(numMTDBtlvalidhits);
546 
547  // --- keeping only tracks with last hit in MTD ---
548  if (MTDBtl == true) {
549  isBTL = true;
554  meBTLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
555  }
556  } //loop over (geometrical) BTL tracks
557 
558  else {
559  // --- all ETL tracks (with and without hit in MTD) ---
560  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
561  meETLTrackEffEtaTot_[0]->Fill(track.eta());
562  meETLTrackEffPhiTot_[0]->Fill(track.phi());
563  meETLTrackEffPtTot_[0]->Fill(track.pt());
564  }
565 
566  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
567  meETLTrackEffEtaTot_[1]->Fill(track.eta());
568  meETLTrackEffPhiTot_[1]->Fill(track.phi());
569  meETLTrackEffPtTot_[1]->Fill(track.pt());
570  }
571 
572  bool MTDEtlZnegD1 = false;
573  bool MTDEtlZnegD2 = false;
574  bool MTDEtlZposD1 = false;
575  bool MTDEtlZposD2 = false;
576  int numMTDEtlvalidhits = 0;
577  for (const auto hit : track.recHits()) {
578  if (hit->isValid() == false)
579  continue;
580  MTDDetId Hit = hit->geographicalId();
581  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 2)) {
582  ETLDetId ETLHit = hit->geographicalId();
583 
584  if (topo2Dis) {
585  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 1)) {
586  MTDEtlZnegD1 = true;
588  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
589  numMTDEtlvalidhits++;
590  }
591  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 2)) {
592  MTDEtlZnegD2 = true;
594  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
595  numMTDEtlvalidhits++;
596  }
597  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 1)) {
598  MTDEtlZposD1 = true;
600  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
601  numMTDEtlvalidhits++;
602  }
603  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 2)) {
604  MTDEtlZposD2 = true;
606  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
607  numMTDEtlvalidhits++;
608  }
609  }
610 
611  if (topo1Dis) {
612  if (ETLHit.zside() == -1) {
613  MTDEtlZnegD1 = true;
615  numMTDEtlvalidhits++;
616  }
617  if (ETLHit.zside() == 1) {
618  MTDEtlZposD1 = true;
620  numMTDEtlvalidhits++;
621  }
622  }
623  }
624  }
625  meTrackNumHits_->Fill(-numMTDEtlvalidhits);
626 
627  // --- keeping only tracks with last hit in MTD ---
628  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
629  twoETLdiscs = (MTDEtlZnegD1 == true) && (MTDEtlZnegD2 == true);
630  if ((MTDEtlZnegD1 == true) || (MTDEtlZnegD2 == true)) {
631  meETLTrackEffEtaMtd_[0]->Fill(track.eta());
632  meETLTrackEffPhiMtd_[0]->Fill(track.phi());
633  meETLTrackEffPtMtd_[0]->Fill(track.pt());
634  if (twoETLdiscs) {
635  meETLTrackEffEta2Mtd_[0]->Fill(track.eta());
636  meETLTrackEffPhi2Mtd_[0]->Fill(track.phi());
637  meETLTrackEffPt2Mtd_[0]->Fill(track.pt());
638  }
639  }
640  }
641  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
642  twoETLdiscs = (MTDEtlZposD1 == true) && (MTDEtlZposD2 == true);
643  if ((MTDEtlZposD1 == true) || (MTDEtlZposD2 == true)) {
644  meETLTrackEffEtaMtd_[1]->Fill(track.eta());
645  meETLTrackEffPhiMtd_[1]->Fill(track.phi());
646  meETLTrackEffPtMtd_[1]->Fill(track.pt());
647  if (twoETLdiscs) {
648  meETLTrackEffEta2Mtd_[1]->Fill(track.eta());
649  meETLTrackEffPhi2Mtd_[1]->Fill(track.phi());
650  meETLTrackEffPt2Mtd_[1]->Fill(track.pt());
651  }
652  }
653  }
654  }
655  }
656 
657  if (isGoodVtx) {
658  bool noCrack = std::abs(trackGen.eta()) < trackMaxBtlEta_ || std::abs(trackGen.eta()) > trackMinEtlEta_;
659  const bool vtxFake = primRecoVtx.isFake();
660 
661  if (mvaRecSel(trackGen, primRecoVtx, t0Safe[trackref], Sigmat0Safe[trackref])) {
662  // reco-gen matching used for MVA quality flag
663 
664  if (noCrack) {
665  meMVATrackEffPtTot_->Fill(trackGen.pt());
666  }
667  meMVATrackEffEtaTot_->Fill(std::abs(trackGen.eta()));
668 
669  double dZ = trackGen.vz() - zsim;
670  double dT(-9999.);
671  double pullT(-9999.);
672  if (Sigmat0Safe[trackref] != -1.) {
673  dT = t0Safe[trackref] - tsim;
674  pullT = dT / Sigmat0Safe[trackref];
675  }
676  for (const auto& genP : mc->particle_range()) {
677  // select status 1 genParticles and match them to the reconstructed track
678 
679  float charge = pdTable->particle(HepPDT::ParticleID(genP->pdg_id())) != nullptr
680  ? pdTable->particle(HepPDT::ParticleID(genP->pdg_id()))->charge()
681  : 0.f;
682  if (mvaGenSel(*genP, charge)) {
683  if (mvaGenRecMatch(*genP, zsim, trackGen, vtxFake)) {
685  if (noCrack) {
686  meMVATrackMatchedEffPtTot_->Fill(trackGen.pt());
687  }
688  meMVATrackMatchedEffEtaTot_->Fill(std::abs(trackGen.eta()));
689  if (pullT > -9999.) {
690  meMVATrackResTot_->Fill(dT);
691  meMVATrackPullTot_->Fill(pullT);
692  if (noCrack) {
693  meMVATrackMatchedEffPtMtd_->Fill(trackGen.pt());
694  }
695  meMVATrackMatchedEffEtaMtd_->Fill(std::abs(trackGen.eta()));
696  }
697  break;
698  }
699  }
700  }
701 
702  // TrackingParticle based matching
703 
704  const reco::TrackBaseRef trkrefb(trackref);
705  auto tp_info = getMatchedTP(trkrefb, zsim);
706 
707  if (tp_info != nullptr && mvaTPSel(**tp_info)) {
708  const bool withMTD = tpWithMTD(**tp_info, mtdTrackId);
709  if (noCrack) {
710  meTrackMatchedTPEffPtTot_->Fill(trackGen.pt());
711  if (withMTD) {
712  meTrackMatchedTPmtdEffPtTot_->Fill(trackGen.pt());
713  }
714  }
715  meTrackMatchedTPEffEtaTot_->Fill(std::abs(trackGen.eta()));
716  if (withMTD) {
717  meTrackMatchedTPmtdEffEtaTot_->Fill(std::abs(trackGen.eta()));
718  }
719  if (pullT > -9999.) {
720  if (noCrack) {
721  meTrackMatchedTPEffPtMtd_->Fill(trackGen.pt());
722  if (isBTL || twoETLdiscs) {
723  meTrackMatchedTPEffPtEtl2Mtd_->Fill(trackGen.pt());
724  }
725  if (withMTD) {
726  meTrackMatchedTPmtdEffPtMtd_->Fill(trackGen.pt());
727  }
728  }
729  meTrackMatchedTPEffEtaMtd_->Fill(std::abs(trackGen.eta()));
730  if (isBTL || twoETLdiscs) {
731  meTrackMatchedTPEffEtaEtl2Mtd_->Fill(std::abs(trackGen.eta()));
732  }
733  if (withMTD) {
734  meTrackMatchedTPmtdEffEtaMtd_->Fill(std::abs(trackGen.eta()));
735  }
736  }
737  }
738  }
739  } // MC truth matich analysis for good PV
740  } //RECO tracks loop
741 }
MonitorElement * meETLTrackEffEtaTot_[2]
uint8_t geoId(const VFATFrame &frame)
retrieve the GEO information for this channel
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
MonitorElement * meTrackMatchedTPEffEtaMtd_
MonitorElement * meBTLTrackEffPhiMtd_
int getMTDTopologyMode() const
Definition: MTDTopology.h:27
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
MonitorElement * meMVATrackResTot_
MonitorElement * meTrackNumHits_
MonitorElement * meTrackt0Pid_
MonitorElement * meETLTrackRPTime_
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
MonitorElement * meUnassociatedDetId_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
edm::EDGetTokenT< edm::HepMCProduct > HepMCProductToken_
HepPDT::ParticleDataTable ParticleDataTable
MonitorElement * meMVATrackMatchedEffEtaMtd_
const bool mvaRecSel(const reco::TrackBase &, const reco::Vertex &, const double &, const double &)
virtual const Topology & topology() const
Definition: GeomDet.cc:67
virtual const PixelTopology & specificTopology() const
MonitorElement * meNTrackingParticles_
MonitorElement * meBTLTrackPtRes_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
MonitorElement * meETLTrackEffPtTot_[2]
MonitorElement * meBTLTrackEffEtaMtd_
MonitorElement * meETLTrackEffPhi2Mtd_[2]
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
MonitorElement * meMVATrackMatchedEffPtTot_
MonitorElement * meMVATrackEffPtTot_
MonitorElement * meMVATrackEffEtaTot_
const reco::SimToRecoCollection * s2r_
const unsigned long int uniqueId(const uint32_t x, const EncodedEventId &y)
LocalPoint pixelToModuleLocalPoint(const LocalPoint &plp, int row, int col) const
MonitorElement * meTrackMatchedTPmtdEffEtaTot_
const reco::RecoToSimCollection * r2s_
const bool mvaGenSel(const HepMC::GenParticle &, const float &)
const edm::Ref< std::vector< TrackingParticle > > * getMatchedTP(const reco::TrackBaseRef &, const double &)
Detector identifier base class for the MIP Timing Layer.
Definition: MTDDetId.h:21
const bool mvaTPSel(const TrackingParticle &)
constexpr NumType convertUnitsTo(double desiredUnits, NumType val)
Definition: GeantUnits.h:73
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
MonitorElement * meETLTrackEffPhiMtd_[2]
void Fill(long long x)
edm::EDGetTokenT< reco::TrackCollection > RecTrackToken_
MonitorElement * meBTLTrackEffPhiTot_
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meTrackMatchedTPmtdEffEtaMtd_
MonitorElement * meTrackMatchedTPEffEtaTot_
MonitorElement * meBTLTrackRPTime_
MonitorElement * meETLTrackEffEta2Mtd_[2]
static constexpr double depositBTLthreshold_
MonitorElement * meETLTrackPtRes_
MonitorElement * meETLTrackEffPt2Mtd_[2]
MonitorElement * meTrackt0SafePid_
MonitorElement * meBTLTrackEffEtaTot_
static constexpr double deltaZcut_
MonitorElement * meUnassLgadsEnergy_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int nrows() const override
MonitorElement * meMVATrackMatchedEffEtaTot_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meTrackMVAQual_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
MonitorElement * meETLTrackEffPhiTot_[2]
ETLDetId::EtlLayout etlLayoutFromTopoMode(const int &topoMode)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
edm::EDGetTokenT< edm::ValueMap< float > > SigmatmtdToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleCollectionToken_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
constexpr NumType convertMmToCm(NumType millimeters)
Definition: angle_units.h:44
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
static constexpr double etaMatchCut_
static constexpr double depositETLthreshold_
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
MonitorElement * meTrackSigmat0SafePid_
MonitorElement * meETLTrackEffEtaMtd_[2]
int zside() const
Definition: MTDDetId.h:61
MonitorElement * meTrackSigmat0Pid_
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
MonitorElement * meTrackMatchedTPmtdEffPtTot_
MonitorElement * meBTLTrackEffPtMtd_
MonitorElement * meTrackt0Src_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0PidToken_
MonitorElement * meTracktmtd_
MonitorElement * meBTLTrackEffPtTot_
MonitorElement * meTrackPathLenghtvsEta_
MonitorElement * meTrackMatchedTPEffPtTot_
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:15
MonitorElement * meUnassDeposit_
HLT enums.
int nDisc() const
Definition: ETLDetId.h:124
const bool mvaGenRecMatch(const HepMC::GenParticle &, const double &, const reco::TrackBase &, const bool &)
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
Definition: BTLDetId.h:18
MonitorElement * meUnassCrysEnergy_
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:162
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
MonitorElement * meETLTrackEffPtMtd_[2]
BTLDetId::CrysLayout crysLayoutFromTopoMode(const int &topoMode)
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
const bool tpWithMTD(const TrackingParticle &, const std::unordered_set< unsigned long int > &)
std::vector< TrackingParticle > TrackingParticleCollection
MonitorElement * meMVATrackZposResTot_
Log< level::Warning, false > LogWarning
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
MonitorElement * meMVATrackMatchedEffPtMtd_
MonitorElement * meTrackSigmat0Src_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
#define LogDebug(id)
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > particleTableToken_

◆ bookHistograms()

void MtdTracksValidation::bookHistograms ( DQMStore::IBooker ibook,
edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 744 of file MtdTracksValidation.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), folder_, meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEta2Mtd_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhi2Mtd_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPt2Mtd_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackPtRes_, meETLTrackRPTime_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, meNTrackingParticles_, meTrackMatchedTPEffEtaEtl2Mtd_, meTrackMatchedTPEffEtaMtd_, meTrackMatchedTPEffEtaTot_, meTrackMatchedTPEffPtEtl2Mtd_, meTrackMatchedTPEffPtMtd_, meTrackMatchedTPEffPtTot_, meTrackMatchedTPmtdEffEtaMtd_, meTrackMatchedTPmtdEffEtaTot_, meTrackMatchedTPmtdEffPtMtd_, meTrackMatchedTPmtdEffPtTot_, meTrackMVAQual_, meTrackNumHits_, meTrackPathLenghtvsEta_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, meUnassCrysEnergy_, meUnassDeposit_, meUnassLgadsEnergy_, meUnassociatedDetId_, and dqm::implementation::NavigatorBase::setCurrentFolder().

744  {
745  ibook.setCurrentFolder(folder_);
746 
747  // histogram booking
748  meBTLTrackRPTime_ = ibook.book1D("TrackBTLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
749  meBTLTrackEffEtaTot_ = ibook.book1D("TrackBTLEffEtaTot", "Track efficiency vs eta (Tot);#eta_{RECO}", 100, -1.6, 1.6);
751  ibook.book1D("TrackBTLEffPhiTot", "Track efficiency vs phi (Tot);#phi_{RECO} [rad]", 100, -3.2, 3.2);
752  meBTLTrackEffPtTot_ = ibook.book1D("TrackBTLEffPtTot", "Track efficiency vs pt (Tot);pt_{RECO} [GeV]", 50, 0, 10);
753  meBTLTrackEffEtaMtd_ = ibook.book1D("TrackBTLEffEtaMtd", "Track efficiency vs eta (Mtd);#eta_{RECO}", 100, -1.6, 1.6);
755  ibook.book1D("TrackBTLEffPhiMtd", "Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2);
756  meBTLTrackEffPtMtd_ = ibook.book1D("TrackBTLEffPtMtd", "Track efficiency vs pt (Mtd);pt_{RECO} [GeV]", 50, 0, 10);
758  ibook.book1D("TrackBTLPtRes", "Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
759  meETLTrackRPTime_ = ibook.book1D("TrackETLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
761  ibook.book1D("TrackETLEffEtaTotZneg", "Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
763  ibook.book1D("TrackETLEffEtaTotZpos", "Track efficiency vs eta (Tot) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
765  ibook.book1D("TrackETLEffPhiTotZneg", "Track efficiency vs phi (Tot) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
767  ibook.book1D("TrackETLEffPhiTotZpos", "Track efficiency vs phi (Tot) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
769  ibook.book1D("TrackETLEffPtTotZneg", "Track efficiency vs pt (Tot) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
771  ibook.book1D("TrackETLEffPtTotZpos", "Track efficiency vs pt (Tot) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
773  ibook.book1D("TrackETLEffEtaMtdZneg", "Track efficiency vs eta (Mtd) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
775  ibook.book1D("TrackETLEffEtaMtdZpos", "Track efficiency vs eta (Mtd) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
777  ibook.book1D("TrackETLEffPhiMtdZneg", "Track efficiency vs phi (Mtd) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
779  ibook.book1D("TrackETLEffPhiMtdZpos", "Track efficiency vs phi (Mtd) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
781  ibook.book1D("TrackETLEffPtMtdZneg", "Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
783  ibook.book1D("TrackETLEffPtMtdZpos", "Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
785  ibook.book1D("TrackETLEffEta2MtdZneg", "Track efficiency vs eta (Mtd 2 hit) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
787  ibook.book1D("TrackETLEffEta2MtdZpos", "Track efficiency vs eta (Mtd 2 hit) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
788  meETLTrackEffPhi2Mtd_[0] = ibook.book1D(
789  "TrackETLEffPhi2MtdZneg", "Track efficiency vs phi (Mtd 2 hit) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
790  meETLTrackEffPhi2Mtd_[1] = ibook.book1D(
791  "TrackETLEffPhi2MtdZpos", "Track efficiency vs phi (Mtd 2 hit) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
793  ibook.book1D("TrackETLEffPt2MtdZneg", "Track efficiency vs pt (Mtd 2 hit) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
795  ibook.book1D("TrackETLEffPt2MtdZpos", "Track efficiency vs pt (Mtd 2 hit) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
797  ibook.book1D("TrackETLPtRes", "Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
798 
799  meTracktmtd_ = ibook.book1D("Tracktmtd", "Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16);
800  meTrackt0Src_ = ibook.book1D("Trackt0Src", "Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5);
802  ibook.book1D("TrackSigmat0Src", "Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1);
803 
804  meTrackt0Pid_ = ibook.book1D("Trackt0Pid", "Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1);
805  meTrackSigmat0Pid_ = ibook.book1D("TrackSigmat0Pid", "Sigmat0 as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
806  meTrackt0SafePid_ = ibook.book1D("Trackt0SafePID", "Track t0 Safe as stored in TofPid;t0 [ns]", 100, -1, 1);
808  ibook.book1D("TrackSigmat0SafePID", "Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
809  meTrackNumHits_ = ibook.book1D("TrackNumHits", "Number of valid MTD hits per track ; Number of hits", 10, -5, 5);
810  meTrackMVAQual_ = ibook.book1D("TrackMVAQual", "Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1);
812  "TrackPathLenghtvsEta", "MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0, "S");
813 
814  meMVATrackEffPtTot_ = ibook.book1D("MVAEffPtTot", "Pt of tracks associated to LV; track pt [GeV] ", 110, 0., 11.);
816  ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to GEN; track pt [GeV] ", 110, 0., 11.);
818  "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to GEN with time; track pt [GeV] ", 110, 0., 11.);
819 
821  ibook.book1D("MatchedTPEffPtTot", "Pt of tracks associated to LV matched to TP; track pt [GeV] ", 110, 0., 11.);
823  "MatchedTPEffPtMtd", "Pt of tracks associated to LV matched to TP with time; track pt [GeV] ", 110, 0., 11.);
825  ibook.book1D("MatchedTPEffPtEtl2Mtd",
826  "Pt of tracks associated to LV matched to TP with time, 2 ETL hits; track pt [GeV] ",
827  110,
828  0.,
829  11.);
830 
832  "MatchedTPmtdEffPtTot", "Pt of tracks associated to LV matched to TP-mtd hit; track pt [GeV] ", 110, 0., 11.);
834  ibook.book1D("MatchedTPmtdEffPtMtd",
835  "Pt of tracks associated to LV matched to TP-mtd hit with time; track pt [GeV] ",
836  110,
837  0.,
838  11.);
839 
840  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks associated to LV; track eta ", 66, 0., 3.3);
842  ibook.book1D("MVAMatchedEffEtaTot", "Eta of tracks associated to LV matched to GEN; track eta ", 66, 0., 3.3);
844  "MVAMatchedEffEtaMtd", "Eta of tracks associated to LV matched to GEN with time; track eta ", 66, 0., 3.3);
845 
847  ibook.book1D("MatchedTPEffEtaTot", "Eta of tracks associated to LV matched to TP; track eta ", 66, 0., 3.3);
849  "MatchedTPEffEtaMtd", "Eta of tracks associated to LV matched to TP with time; track eta ", 66, 0., 3.3);
851  ibook.book1D("MatchedTPEffEtaEtl2Mtd",
852  "Eta of tracks associated to LV matched to TP with time, 2 ETL hits; track eta ",
853  66,
854  0.,
855  3.3);
856 
858  "MatchedTPmtdEffEtaTot", "Eta of tracks associated to LV matched to TP-mtd hit; track eta ", 66, 0., 3.3);
860  ibook.book1D("MatchedTPmtdEffEtaMtd",
861  "Eta of tracks associated to LV matched to TP-mtd hit with time; track eta ",
862  66,
863  0.,
864  3.3);
865 
866  meMVATrackResTot_ = ibook.book1D(
867  "MVATrackRes", "t_{rec} - t_{sim} for LV associated tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
869  ibook.book1D("MVATrackPull", "Pull for associated tracks; (t_{rec}-t_{sim})/#sigma_{t}", 50, -5., 5.);
871  "MVATrackZposResTot", "Z_{PCA} - Z_{sim} for associated tracks;Z_{PCA} - Z_{sim} [cm] ", 100, -0.1, 0.1);
872 
874  "UnassociatedDetId", "Number of MTD cell not associated to any TP per event", 2, 0., 2., 0., 100000., "S");
875  meNTrackingParticles_ = ibook.book1D("NTrackingParticles", "Total #Tracking particles", 2, 0, 2);
877  ibook.book1D("UnassDeposit",
878  "#Tracking particles with deposit over threshold in MTD cell, but with no cell associated to TP;",
879  2,
880  0,
881  2);
883  ibook.book1D("UnassCrysEnergy",
884  "Energy deposit in BTL crystal with no associated SimTracks;log_{10}(Energy [MeV]) ",
885  100,
886  -3.5,
887  1.5);
888  meUnassLgadsEnergy_ = ibook.book1D("UnassLgadsEnergy",
889  "Energy deposit in ETL LGADs with no associated SimTracks;log_{10}(Energy [MeV]) ",
890  100,
891  -3.5,
892  1.5);
893 }
MonitorElement * meETLTrackEffEtaTot_[2]
MonitorElement * meTrackMatchedTPEffEtaMtd_
MonitorElement * meBTLTrackEffPhiMtd_
MonitorElement * meMVATrackResTot_
MonitorElement * meTrackNumHits_
MonitorElement * meTrackt0Pid_
MonitorElement * meETLTrackRPTime_
MonitorElement * meUnassociatedDetId_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
const std::string folder_
MonitorElement * meMVATrackMatchedEffEtaMtd_
MonitorElement * meNTrackingParticles_
MonitorElement * meBTLTrackPtRes_
MonitorElement * meETLTrackEffPtTot_[2]
MonitorElement * meBTLTrackEffEtaMtd_
MonitorElement * meETLTrackEffPhi2Mtd_[2]
MonitorElement * meMVATrackMatchedEffPtTot_
MonitorElement * meMVATrackEffPtTot_
MonitorElement * meMVATrackEffEtaTot_
MonitorElement * meTrackMatchedTPmtdEffEtaTot_
MonitorElement * meETLTrackEffPhiMtd_[2]
MonitorElement * meBTLTrackEffPhiTot_
MonitorElement * meTrackMatchedTPmtdEffEtaMtd_
MonitorElement * meTrackMatchedTPEffEtaTot_
MonitorElement * meBTLTrackRPTime_
MonitorElement * meETLTrackEffEta2Mtd_[2]
MonitorElement * meETLTrackPtRes_
MonitorElement * meETLTrackEffPt2Mtd_[2]
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
MonitorElement * meTrackt0SafePid_
MonitorElement * meBTLTrackEffEtaTot_
MonitorElement * meUnassLgadsEnergy_
MonitorElement * meMVATrackMatchedEffEtaTot_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meTrackMVAQual_
MonitorElement * meETLTrackEffPhiTot_[2]
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
MonitorElement * meTrackSigmat0SafePid_
MonitorElement * meETLTrackEffEtaMtd_[2]
MonitorElement * meTrackSigmat0Pid_
MonitorElement * meTrackMatchedTPmtdEffPtTot_
MonitorElement * meBTLTrackEffPtMtd_
MonitorElement * meTrackt0Src_
MonitorElement * meTracktmtd_
MonitorElement * meBTLTrackEffPtTot_
MonitorElement * meTrackPathLenghtvsEta_
MonitorElement * meTrackMatchedTPEffPtTot_
MonitorElement * meUnassDeposit_
MonitorElement * meUnassCrysEnergy_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meMVATrackZposResTot_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * meMVATrackMatchedEffPtMtd_
MonitorElement * meTrackSigmat0Src_

◆ fillDescriptions()

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

Definition at line 897 of file MtdTracksValidation.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_2022v14_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

897  {
899 
900  desc.add<std::string>("folder", "MTD/Tracks");
901  desc.add<edm::InputTag>("inputTagG", edm::InputTag("generalTracks"));
902  desc.add<edm::InputTag>("inputTagT", edm::InputTag("trackExtenderWithMTD"));
903  desc.add<edm::InputTag>("inputTagV", edm::InputTag("offlinePrimaryVertices4D"));
904  desc.add<edm::InputTag>("inputTagH", edm::InputTag("generatorSmeared"));
905  desc.add<edm::InputTag>("SimTag", edm::InputTag("mix", "MergedTrackTruth"));
906  desc.add<edm::InputTag>("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation"));
907  desc.add<edm::InputTag>("btlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel"));
908  desc.add<edm::InputTag>("etlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
909  desc.add<edm::InputTag>("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
910  desc.add<edm::InputTag>("sigmatmtd", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd"));
911  desc.add<edm::InputTag>("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0"));
912  desc.add<edm::InputTag>("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0"));
913  desc.add<edm::InputTag>("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))
914  ->setComment("Association between General and MTD Extended tracks");
915  desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength"));
916  desc.add<edm::InputTag>("t0SafePID", edm::InputTag("tofPID:t0safe"));
917  desc.add<edm::InputTag>("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe"));
918  desc.add<edm::InputTag>("sigmat0PID", edm::InputTag("tofPID:sigmat0"));
919  desc.add<edm::InputTag>("t0PID", edm::InputTag("tofPID:t0"));
920  desc.add<edm::InputTag>("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA"));
921  desc.add<double>("trackMinimumPt", 0.7); // [GeV]
922  desc.add<double>("trackMaximumBtlEta", 1.5);
923  desc.add<double>("trackMinimumEtlEta", 1.6);
924  desc.add<double>("trackMaximumEtlEta", 3.);
925  desc.addUntracked<bool>("optionalPlots", true);
926 
927  descriptions.add("mtdTracksValid", desc);
928 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ getMatchedTP()

const edm::Ref< std::vector< TrackingParticle > > * MtdTracksValidation::getMatchedTP ( const reco::TrackBaseRef recoTrack,
const double &  zsim 
)
private

Definition at line 979 of file MtdTracksValidation.cc.

References funct::abs(), deltaZcut_, edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), newFWLiteAna::found, r2s_, and cmsswSequenceInfo::tp.

Referenced by analyze().

980  {
981  auto found = r2s_->find(recoTrack);
982 
983  // reco track not matched to any TP
984  if (found == r2s_->end())
985  return nullptr;
986 
987  //matched TP equal to any TP associated to signal sim vertex
988  for (const auto& tp : found->val) {
989  if (tp.first->eventId().bunchCrossing() == 0 && tp.first->eventId().event() == 0 &&
990  std::abs(tp.first->parentVertex()->position().z() - zsim) < deltaZcut_) {
991  return &tp.first;
992  }
993  }
994 
995  // reco track not matched to any TP from vertex
996  return nullptr;
997 }
const reco::RecoToSimCollection * r2s_
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)
static constexpr double deltaZcut_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ isETL()

bool MtdTracksValidation::isETL ( const double  eta) const
inlineprivate

Definition at line 89 of file MtdTracksValidation.cc.

References funct::abs(), PVValHelper::eta, trackMaxEtlEta_, and trackMinEtlEta_.

89 { return (std::abs(eta) > trackMinEtlEta_) && (std::abs(eta) < trackMaxEtlEta_); }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

◆ mvaGenRecMatch()

const bool MtdTracksValidation::mvaGenRecMatch ( const HepMC::GenParticle &  genP,
const double &  zsim,
const reco::TrackBase trk,
const bool &  vtxFake 
)
private

Definition at line 967 of file MtdTracksValidation.cc.

References funct::abs(), deltaDRcut_, deltaPTcut_, reco::deltaR(), deltaZcut_, HGC3DClusterGenMatchSelector_cfi::dR, match(), reco::TrackBase::momentum(), reco::TrackBase::pt(), and reco::TrackBase::vz().

Referenced by analyze().

970  {
971  bool match = false;
972  double dR = reco::deltaR(genP.momentum(), trk.momentum());
973  double genPT = genP.momentum().perp();
974  match = std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ &&
975  (std::abs(trk.vz() - zsim) < deltaZcut_ || vtxFake);
976  return match;
977 }
static constexpr double deltaPTcut_
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
static constexpr double deltaZcut_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
static constexpr double deltaDRcut_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ mvaGenSel()

const bool MtdTracksValidation::mvaGenSel ( const HepMC::GenParticle &  gp,
const float &  charge 
)
private

Definition at line 930 of file MtdTracksValidation.cc.

References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, etacutGEN_, runTauDisplay::gp, match(), and pTcut_.

Referenced by analyze().

930  {
931  bool match = false;
932  if (gp.status() != 1) {
933  return match;
934  }
935  match = charge != 0.f && gp.momentum().perp() > pTcut_ && std::abs(gp.momentum().eta()) < etacutGEN_;
936  return match;
937 }
static constexpr double etacutGEN_
static constexpr double pTcut_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ mvaRecSel()

const bool MtdTracksValidation::mvaRecSel ( const reco::TrackBase trk,
const reco::Vertex vtx,
const double &  t0,
const double &  st0 
)
private

Definition at line 954 of file MtdTracksValidation.cc.

References funct::abs(), deltaZcut_, reco::TrackBase::eta(), etacutREC_, match(), reco::TrackBase::pt(), pTcut_, FrontierCondition_GT_autoExpress_cfi::t0, extraflags_cff::vtx, and reco::TrackBase::vz().

Referenced by analyze().

957  {
958  bool match = false;
959  match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ &&
960  (std::abs(trk.vz() - vtx.z()) <= deltaZcut_ || vtx.isFake());
961  if (st0 > 0.) {
962  match = match && std::abs(t0 - vtx.t()) < 3. * st0;
963  }
964  return match;
965 }
static constexpr double pTcut_
static constexpr double etacutREC_
double pt() const
track transverse momentum
Definition: TrackBase.h:637
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:661
static constexpr double deltaZcut_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ mvaTPSel()

const bool MtdTracksValidation::mvaTPSel ( const TrackingParticle tp)
private

Definition at line 939 of file MtdTracksValidation.cc.

References funct::abs(), etacutGEN_, match(), pTcut_, rBTL_, mathSSE::sqrt(), cmsswSequenceInfo::tp, and zETL_.

Referenced by analyze().

939  {
940  bool match = false;
941  if (tp.status() != 1) {
942  return match;
943  }
944  auto x_pv = tp.parentVertex()->position().x();
945  auto y_pv = tp.parentVertex()->position().y();
946  auto z_pv = tp.parentVertex()->position().z();
947 
948  auto r_pv = std::sqrt(x_pv * x_pv + y_pv * y_pv);
949 
950  match = tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_ && r_pv < rBTL_ && z_pv < zETL_;
951  return match;
952 }
static constexpr double etacutGEN_
static constexpr double pTcut_
static constexpr double rBTL_
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr double zETL_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ tpWithMTD()

const bool MtdTracksValidation::tpWithMTD ( const TrackingParticle tp,
const std::unordered_set< unsigned long int > &  trkList 
)
private

Definition at line 999 of file MtdTracksValidation.cc.

References cmsswSequenceInfo::tp, and uniqueId().

Referenced by analyze().

1000  {
1001  for (const auto& simTrk : tp.g4Tracks()) {
1002  for (const auto& mtdTrk : trkList) {
1003  if (uniqueId(simTrk.trackId(), simTrk.eventId()) == mtdTrk) {
1004  return true;
1005  }
1006  }
1007  }
1008  return false;
1009 }
const unsigned long int uniqueId(const uint32_t x, const EncodedEventId &y)

◆ uniqueId()

const unsigned long int MtdTracksValidation::uniqueId ( const uint32_t  x,
const EncodedEventId y 
)
inlineprivate

Definition at line 79 of file MtdTracksValidation.cc.

References a, b, x, and y.

Referenced by analyze(), and tpWithMTD().

79  {
80  const uint64_t a = static_cast<uint64_t>(x);
81  const uint64_t b = static_cast<uint64_t>(y.rawId());
82 
83  if (x < y.rawId())
84  return (b << 32) | a;
85  else
86  return (a << 32) | b;
87  }
unsigned long long uint64_t
Definition: Time.h:13
double b
Definition: hdecay.h:118
double a
Definition: hdecay.h:119

Member Data Documentation

◆ btlSimHitsToken_

edm::EDGetTokenT<CrossingFrame<PSimHit> > MtdTracksValidation::btlSimHitsToken_
private

Definition at line 124 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ deltaDRcut_

constexpr double MtdTracksValidation::deltaDRcut_ = 0.03
staticprivate

Definition at line 104 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaPTcut_

constexpr double MtdTracksValidation::deltaPTcut_ = 0.05
staticprivate

Definition at line 103 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaZcut_

constexpr double MtdTracksValidation::deltaZcut_ = 0.1
staticprivate

Definition at line 102 of file MtdTracksValidation.cc.

Referenced by analyze(), getMatchedTP(), mvaGenRecMatch(), and mvaRecSel().

◆ depositBTLthreshold_

constexpr double MtdTracksValidation::depositBTLthreshold_ = 1
staticprivate

Definition at line 105 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ depositETLthreshold_

constexpr double MtdTracksValidation::depositETLthreshold_ = 0.001
staticprivate

Definition at line 106 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ etacutGEN_

constexpr double MtdTracksValidation::etacutGEN_ = 4.
staticprivate

Definition at line 99 of file MtdTracksValidation.cc.

Referenced by mvaGenSel(), and mvaTPSel().

◆ etacutREC_

constexpr double MtdTracksValidation::etacutREC_ = 3.
staticprivate

Definition at line 100 of file MtdTracksValidation.cc.

Referenced by mvaRecSel().

◆ etaMatchCut_

constexpr double MtdTracksValidation::etaMatchCut_ = 0.05
staticprivate

Definition at line 109 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ etlSimHitsToken_

edm::EDGetTokenT<CrossingFrame<PSimHit> > MtdTracksValidation::etlSimHitsToken_
private

Definition at line 125 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ folder_

const std::string MtdTracksValidation::folder_
private

Definition at line 93 of file MtdTracksValidation.cc.

Referenced by bookHistograms().

◆ GenRecTrackToken_

edm::EDGetTokenT<reco::TrackCollection> MtdTracksValidation::GenRecTrackToken_
private

Definition at line 116 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ HepMCProductToken_

edm::EDGetTokenT<edm::HepMCProduct> MtdTracksValidation::HepMCProductToken_
private

Definition at line 120 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ meBTLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaMtd_
private

Definition at line 148 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaTot_
private

Definition at line 145 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiMtd_
private

Definition at line 149 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiTot_
private

Definition at line 146 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtMtd_
private

Definition at line 150 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtTot_
private

Definition at line 147 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackPtRes_

MonitorElement* MtdTracksValidation::meBTLTrackPtRes_
private

Definition at line 151 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackRPTime_

MonitorElement* MtdTracksValidation::meBTLTrackRPTime_
private

Definition at line 144 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEta2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEta2Mtd_[2]
private

Definition at line 160 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaMtd_[2]
private

Definition at line 157 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaTot_[2]
private

Definition at line 154 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhi2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhi2Mtd_[2]
private

Definition at line 161 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiMtd_[2]
private

Definition at line 158 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiTot_[2]
private

Definition at line 155 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPt2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPt2Mtd_[2]
private

Definition at line 162 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPtMtd_[2]
private

Definition at line 159 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPtTot_[2]
private

Definition at line 156 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackPtRes_

MonitorElement* MtdTracksValidation::meETLTrackPtRes_
private

Definition at line 163 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackRPTime_

MonitorElement* MtdTracksValidation::meETLTrackRPTime_
private

Definition at line 153 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackEffEtaTot_
private

Definition at line 184 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackEffPtTot_
private

Definition at line 176 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaMtd_
private

Definition at line 186 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaTot_
private

Definition at line 185 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtMtd_
private

Definition at line 178 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtTot_
private

Definition at line 177 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackPullTot_

MonitorElement* MtdTracksValidation::meMVATrackPullTot_
private

Definition at line 193 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackResTot_

MonitorElement* MtdTracksValidation::meMVATrackResTot_
private

Definition at line 192 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackZposResTot_

MonitorElement* MtdTracksValidation::meMVATrackZposResTot_
private

Definition at line 194 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meNTrackingParticles_

MonitorElement* MtdTracksValidation::meNTrackingParticles_
private

Definition at line 200 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaEtl2Mtd_
private

Definition at line 189 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaMtd_
private

Definition at line 188 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaTot_
private

Definition at line 187 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtEtl2Mtd_
private

Definition at line 181 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtMtd_
private

Definition at line 180 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtTot_
private

Definition at line 179 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaMtd_
private

Definition at line 191 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaTot_
private

Definition at line 190 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtMtd_
private

Definition at line 183 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtTot_
private

Definition at line 182 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMVAQual_

MonitorElement* MtdTracksValidation::meTrackMVAQual_
private

Definition at line 173 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackNumHits_

MonitorElement* MtdTracksValidation::meTrackNumHits_
private

Definition at line 172 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPathLenghtvsEta_

MonitorElement* MtdTracksValidation::meTrackPathLenghtvsEta_
private

Definition at line 174 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Pid_

MonitorElement* MtdTracksValidation::meTrackSigmat0Pid_
private

Definition at line 169 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0SafePid_

MonitorElement* MtdTracksValidation::meTrackSigmat0SafePid_
private

Definition at line 171 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Src_

MonitorElement* MtdTracksValidation::meTrackSigmat0Src_
private

Definition at line 167 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Pid_

MonitorElement* MtdTracksValidation::meTrackt0Pid_
private

Definition at line 168 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0SafePid_

MonitorElement* MtdTracksValidation::meTrackt0SafePid_
private

Definition at line 170 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Src_

MonitorElement* MtdTracksValidation::meTrackt0Src_
private

Definition at line 166 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTracktmtd_

MonitorElement* MtdTracksValidation::meTracktmtd_
private

Definition at line 165 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meUnassCrysEnergy_

MonitorElement* MtdTracksValidation::meUnassCrysEnergy_
private

Definition at line 197 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meUnassDeposit_

MonitorElement* MtdTracksValidation::meUnassDeposit_
private

Definition at line 199 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meUnassLgadsEnergy_

MonitorElement* MtdTracksValidation::meUnassLgadsEnergy_
private

Definition at line 198 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meUnassociatedDetId_

MonitorElement* MtdTracksValidation::meUnassociatedDetId_
private

Definition at line 196 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mtdgeoToken_

edm::ESGetToken<MTDGeometry, MTDDigiGeometryRecord> MtdTracksValidation::mtdgeoToken_
private

Definition at line 140 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ mtdtopoToken_

edm::ESGetToken<MTDTopology, MTDTopologyRcd> MtdTracksValidation::mtdtopoToken_
private

Definition at line 141 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ optionalPlots_

bool MtdTracksValidation::optionalPlots_
private

Definition at line 111 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ particleTableToken_

edm::ESGetToken<HepPDT::ParticleDataTable, edm::DefaultRecord> MtdTracksValidation::particleTableToken_
private

Definition at line 142 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ pathLengthToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::pathLengthToken_
private

Definition at line 128 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ pTcut_

constexpr double MtdTracksValidation::pTcut_ = 0.7
staticprivate

Definition at line 101 of file MtdTracksValidation.cc.

Referenced by mvaGenSel(), mvaRecSel(), and mvaTPSel().

◆ r2s_

const reco::RecoToSimCollection* MtdTracksValidation::r2s_
private

Definition at line 113 of file MtdTracksValidation.cc.

Referenced by analyze(), and getMatchedTP().

◆ rBTL_

constexpr double MtdTracksValidation::rBTL_ = 110.0
staticprivate

Definition at line 107 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().

◆ recoToSimAssociationToken_

edm::EDGetTokenT<reco::RecoToSimCollection> MtdTracksValidation::recoToSimAssociationToken_
private

Definition at line 123 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecTrackToken_

edm::EDGetTokenT<reco::TrackCollection> MtdTracksValidation::RecTrackToken_
private

Definition at line 117 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecVertexToken_

edm::EDGetTokenT<std::vector<reco::Vertex> > MtdTracksValidation::RecVertexToken_
private

Definition at line 118 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ s2r_

const reco::SimToRecoCollection* MtdTracksValidation::s2r_
private

Definition at line 114 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ Sigmat0PidToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::Sigmat0PidToken_
private

Definition at line 135 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SafePidToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::Sigmat0SafePidToken_
private

Definition at line 137 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SrcToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::Sigmat0SrcToken_
private

Definition at line 133 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmatmtdToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::SigmatmtdToken_
private

Definition at line 131 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ simToRecoAssociationToken_

edm::EDGetTokenT<reco::SimToRecoCollection> MtdTracksValidation::simToRecoAssociationToken_
private

Definition at line 122 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0PidToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::t0PidToken_
private

Definition at line 134 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SafePidToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::t0SafePidToken_
private

Definition at line 136 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SrcToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::t0SrcToken_
private

Definition at line 132 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ tmtdToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::tmtdToken_
private

Definition at line 130 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackAssocToken_

edm::EDGetTokenT<edm::ValueMap<int> > MtdTracksValidation::trackAssocToken_
private

Definition at line 127 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackingParticleCollectionToken_

edm::EDGetTokenT<TrackingParticleCollection> MtdTracksValidation::trackingParticleCollectionToken_
private

Definition at line 121 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackMaxBtlEta_

const float MtdTracksValidation::trackMaxBtlEta_
private

Definition at line 95 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMaxEtlEta_

const float MtdTracksValidation::trackMaxEtlEta_
private

Definition at line 97 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinEtlEta_

const float MtdTracksValidation::trackMinEtlEta_
private

Definition at line 96 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinPt_

const float MtdTracksValidation::trackMinPt_
private

Definition at line 94 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMVAQualToken_

edm::EDGetTokenT<edm::ValueMap<float> > MtdTracksValidation::trackMVAQualToken_
private

Definition at line 138 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ zETL_

constexpr double MtdTracksValidation::zETL_ = 290.0
staticprivate

Definition at line 108 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().