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 std::pair< bool, bool > checkAcceptance (const reco::Track &, const edm::Event &, const edm::EventSetup &, size_t &, float &, float &, float &, float &)
 
const edm::Ref< std::vector< TrackingParticle > > * getMatchedTP (const reco::TrackBaseRef &)
 
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 unsigned long int uniqueId (const uint32_t x, const EncodedEventId &y)
 

Private Attributes

edm::EDGetTokenT< FTLRecHitCollectionbtlRecHitsToken_
 
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordbuilderToken_
 
edm::EDGetTokenT< FTLRecHitCollectionetlRecHitsToken_
 
edm::EDGetTokenT< CrossingFrame< PSimHit > > etlSimHitsToken_
 
const std::string folder_
 
edm::EDGetTokenT< reco::TrackCollectionGenRecTrackToken_
 
edm::EDGetTokenT< edm::HepMCProductHepMCProductToken_
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagfieldToken_
 
MonitorElementmeBTLTrackEffEtaMtd_
 
MonitorElementmeBTLTrackEffEtaTot_
 
MonitorElementmeBTLTrackEffPhiMtd_
 
MonitorElementmeBTLTrackEffPhiTot_
 
MonitorElementmeBTLTrackEffPtMtd_
 
MonitorElementmeBTLTrackEffPtTot_
 
MonitorElementmeBTLTrackMatchedTPDPtvsPtGen_
 
MonitorElementmeBTLTrackMatchedTPDPtvsPtMtd_
 
MonitorElementmeBTLTrackMatchedTPPtRatioGen_
 
MonitorElementmeBTLTrackMatchedTPPtRatioMtd_
 
MonitorElementmeBTLTrackMatchedTPPtResMtd_
 
MonitorElementmeBTLTrackMatchedTPPtResvsPtMtd_
 
MonitorElementmeBTLTrackPtRes_
 
MonitorElementmeBTLTrackRPTime_
 
MonitorElementmeETLTrackEffEta2Mtd_ [2]
 
MonitorElementmeETLTrackEffEtaMtd_ [2]
 
MonitorElementmeETLTrackEffEtaTot_ [2]
 
MonitorElementmeETLTrackEffPhi2Mtd_ [2]
 
MonitorElementmeETLTrackEffPhiMtd_ [2]
 
MonitorElementmeETLTrackEffPhiTot_ [2]
 
MonitorElementmeETLTrackEffPt2Mtd_ [2]
 
MonitorElementmeETLTrackEffPtMtd_ [2]
 
MonitorElementmeETLTrackEffPtTot_ [2]
 
MonitorElementmeETLTrackMatchedTP2DPtvsPtGen_
 
MonitorElementmeETLTrackMatchedTP2DPtvsPtMtd_
 
MonitorElementmeETLTrackMatchedTP2PtRatioGen_
 
MonitorElementmeETLTrackMatchedTP2PtRatioMtd_
 
MonitorElementmeETLTrackMatchedTP2PtResMtd_
 
MonitorElementmeETLTrackMatchedTP2PtResvsPtMtd_
 
MonitorElementmeETLTrackMatchedTPDPtvsPtGen_
 
MonitorElementmeETLTrackMatchedTPDPtvsPtMtd_
 
MonitorElementmeETLTrackMatchedTPPtRatioGen_
 
MonitorElementmeETLTrackMatchedTPPtRatioMtd_
 
MonitorElementmeETLTrackMatchedTPPtResMtd_
 
MonitorElementmeETLTrackMatchedTPPtResvsPtMtd_
 
MonitorElementmeETLTrackPtRes_
 
MonitorElementmeETLTrackRPTime_
 
MonitorElementmeExtraBTLeneInCone_
 
MonitorElementmeExtraEtaEtl2Mtd_
 
MonitorElementmeExtraEtaMtd_
 
MonitorElementmeExtraMTDfailExtenderEta_
 
MonitorElementmeExtraMTDfailExtenderPt_
 
MonitorElementmeExtraPhiAtBTL_
 
MonitorElementmeExtraPhiAtBTLmatched_
 
MonitorElementmeExtraPtEtl2Mtd_
 
MonitorElementmeExtraPtMtd_
 
MonitorElementmeMVATrackEffEtaTot_
 
MonitorElementmeMVATrackEffPtTot_
 
MonitorElementmeMVATrackMatchedEffEtaMtd_
 
MonitorElementmeMVATrackMatchedEffEtaTot_
 
MonitorElementmeMVATrackMatchedEffPtMtd_
 
MonitorElementmeMVATrackMatchedEffPtTot_
 
MonitorElementmeMVATrackPullTot_
 
MonitorElementmeMVATrackResTot_
 
MonitorElementmeMVATrackZposResTot_
 
MonitorElementmeTrackEtaTot_
 
MonitorElementmeTrackMatchedTPEffEtaEtl2Mtd_
 
MonitorElementmeTrackMatchedTPEffEtaMtd_
 
MonitorElementmeTrackMatchedTPEffEtaTot_
 
MonitorElementmeTrackMatchedTPEffPtEtl2Mtd_
 
MonitorElementmeTrackMatchedTPEffPtMtd_
 
MonitorElementmeTrackMatchedTPEffPtTot_
 
MonitorElementmeTrackMatchedTPmtdEffEtaMtd_
 
MonitorElementmeTrackMatchedTPmtdEffEtaTot_
 
MonitorElementmeTrackMatchedTPmtdEffPtMtd_
 
MonitorElementmeTrackMatchedTPmtdEffPtTot_
 
MonitorElementmeTrackMVAQual_
 
MonitorElementmeTrackNumHits_
 
MonitorElementmeTrackNumHitsNT_
 
MonitorElementmeTrackPathLenghtvsEta_
 
MonitorElementmeTrackPtTot_
 
MonitorElementmeTrackSigmat0Pid_
 
MonitorElementmeTrackSigmat0SafePid_
 
MonitorElementmeTrackSigmat0Src_
 
MonitorElementmeTrackt0Pid_
 
MonitorElementmeTrackt0SafePid_
 
MonitorElementmeTrackt0Src_
 
MonitorElementmeTracktmtd_
 
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecordmtdgeoToken_
 
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecordmtdlayerToken_
 
edm::ESGetToken< MTDTopology, MTDTopologyRcdmtdtopoToken_
 
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 cluDRradius_ = 0.05
 
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 76 of file MtdTracksValidation.cc.

Constructor & Destructor Documentation

◆ MtdTracksValidation()

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

Definition at line 253 of file MtdTracksValidation.cc.

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

254  : folder_(iConfig.getParameter<std::string>("folder")),
255  trackMinPt_(iConfig.getParameter<double>("trackMinimumPt")),
256  trackMaxBtlEta_(iConfig.getParameter<double>("trackMaximumBtlEta")),
257  trackMinEtlEta_(iConfig.getParameter<double>("trackMinimumEtlEta")),
258  trackMaxEtlEta_(iConfig.getParameter<double>("trackMaximumEtlEta")) {
259  GenRecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagG"));
260  RecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagT"));
261  RecVertexToken_ = consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("inputTagV"));
262  HepMCProductToken_ = consumes<edm::HepMCProduct>(iConfig.getParameter<edm::InputTag>("inputTagH"));
264  consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
266  consumes<reco::SimToRecoCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
268  consumes<reco::RecoToSimCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
269  btlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("btlSimHits"));
270  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("etlSimHits"));
271  btlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("btlRecHits"));
272  etlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("etlRecHits"));
273  trackAssocToken_ = consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("trackAssocSrc"));
274  pathLengthToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("pathLengthSrc"));
275  tmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tmtd"));
276  SigmatmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmatmtd"));
277  t0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0Src"));
278  Sigmat0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0Src"));
279  t0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0PID"));
280  Sigmat0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0PID"));
281  t0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0SafePID"));
282  Sigmat0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0SafePID"));
283  trackMVAQualToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("trackMVAQual"));
284  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
285  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
286  mtdlayerToken_ = esConsumes<MTDDetLayerGeometry, MTDRecoGeometryRecord>();
287  magfieldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
288  builderToken_ = esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
289  particleTableToken_ = esConsumes<HepPDT::ParticleDataTable, edm::DefaultRecord>();
290 }
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:307
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::ESGetToken< TransientTrackBuilder, TransientTrackRecord > builderToken_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
edm::EDGetTokenT< reco::TrackCollection > RecTrackToken_
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecord > mtdlayerToken_
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
edm::EDGetTokenT< FTLRecHitCollection > btlRecHitsToken_
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::ESGetToken< MagneticField, IdealMagneticFieldRecord > magfieldToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > particleTableToken_

◆ ~MtdTracksValidation()

MtdTracksValidation::~MtdTracksValidation ( )
override

Definition at line 292 of file MtdTracksValidation.cc.

292 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 295 of file MtdTracksValidation.cc.

References funct::abs(), accept(), btlSimHitsToken_, ALCARECOTkAlJpsiMuMu_cff::charge, checkAcceptance(), angle_units::operators::convertMmToCm(), angle_units::operators::convertRadToDeg(), geant_units::operators::convertUnitsTo(), deltaZcut_, depositBTLthreshold_, depositETLthreshold_, l1ctLayer1_cff::dZ, hcalRecHitTable_cff::energy, etlSimHitsToken_, dqm::impl::MonitorElement::Fill(), GenRecTrackToken_, edm::EventSetup::getHandle(), getMatchedTP(), HepMCProductToken_, iEvent, isETL(), LogDebug, edm::makeValid(), CaloTowersParam_cfi::mc, meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackMatchedTPDPtvsPtGen_, meBTLTrackMatchedTPDPtvsPtMtd_, meBTLTrackMatchedTPPtRatioGen_, meBTLTrackMatchedTPPtRatioMtd_, meBTLTrackMatchedTPPtResMtd_, meBTLTrackMatchedTPPtResvsPtMtd_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEta2Mtd_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhi2Mtd_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPt2Mtd_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackMatchedTP2DPtvsPtGen_, meETLTrackMatchedTP2DPtvsPtMtd_, meETLTrackMatchedTP2PtRatioGen_, meETLTrackMatchedTP2PtRatioMtd_, meETLTrackMatchedTP2PtResMtd_, meETLTrackMatchedTP2PtResvsPtMtd_, meETLTrackMatchedTPDPtvsPtGen_, meETLTrackMatchedTPDPtvsPtMtd_, meETLTrackMatchedTPPtRatioGen_, meETLTrackMatchedTPPtRatioMtd_, meETLTrackMatchedTPPtResMtd_, meETLTrackMatchedTPPtResvsPtMtd_, meETLTrackPtRes_, meETLTrackRPTime_, meExtraBTLeneInCone_, meExtraEtaEtl2Mtd_, meExtraEtaMtd_, meExtraMTDfailExtenderEta_, meExtraMTDfailExtenderPt_, meExtraPhiAtBTL_, meExtraPhiAtBTLmatched_, meExtraPtEtl2Mtd_, meExtraPtMtd_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, meTrackEtaTot_, meTrackMatchedTPEffEtaEtl2Mtd_, meTrackMatchedTPEffEtaMtd_, meTrackMatchedTPEffEtaTot_, meTrackMatchedTPEffPtEtl2Mtd_, meTrackMatchedTPEffPtMtd_, meTrackMatchedTPEffPtTot_, meTrackMatchedTPmtdEffEtaMtd_, meTrackMatchedTPmtdEffEtaTot_, meTrackMatchedTPmtdEffPtMtd_, meTrackMatchedTPmtdEffPtTot_, meTrackMVAQual_, meTrackNumHits_, meTrackNumHitsNT_, meTrackPathLenghtvsEta_, meTrackPtTot_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, mvaGenRecMatch(), mvaGenSel(), mvaRecSel(), mvaTPSel(), ETLDetId::nDisc(), nlayers, LHEGenericFilter_cfi::ParticleID, particleTableToken_, pathLengthToken_, r2s_, nano_mu_digi_cff::rawId, recoToSimAssociationToken_, RecTrackToken_, RecVertexToken_, s2r_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, rpcPointValidation_cfi::simHit, simToRecoAssociationToken_, t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, cmsswSequenceInfo::tp, HLT_2024v13_cff::track, trackAssocToken_, trackingParticleCollectionToken_, trackMaxBtlEta_, trackMaxEtlEta_, trackMinEtlEta_, trackMinPt_, trackMVAQualToken_, uniqueId(), and MTDDetId::zside().

295  {
296  using namespace edm;
297  using namespace geant_units::operators;
298  using namespace std;
299 
300  auto GenRecTrackHandle = makeValid(iEvent.getHandle(GenRecTrackToken_));
301  auto RecVertexHandle = makeValid(iEvent.getHandle(RecVertexToken_));
302 
303  std::unordered_map<uint32_t, MTDHit> m_btlHits;
304  std::unordered_map<uint32_t, MTDHit> m_etlHits;
305  std::unordered_map<uint32_t, std::set<unsigned long int>> m_btlTrkPerCell;
306  std::unordered_map<uint32_t, std::set<unsigned long int>> m_etlTrkPerCell;
307  std::map<TrackingParticleRef, std::vector<uint32_t>> m_tp2detid;
308 
309  const auto& tMtd = iEvent.get(tmtdToken_);
310  const auto& SigmatMtd = iEvent.get(SigmatmtdToken_);
311  const auto& t0Src = iEvent.get(t0SrcToken_);
312  const auto& Sigmat0Src = iEvent.get(Sigmat0SrcToken_);
313  const auto& t0Pid = iEvent.get(t0PidToken_);
314  const auto& Sigmat0Pid = iEvent.get(Sigmat0PidToken_);
315  const auto& t0Safe = iEvent.get(t0SafePidToken_);
316  const auto& Sigmat0Safe = iEvent.get(Sigmat0SafePidToken_);
317  const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_);
318  const auto& trackAssoc = iEvent.get(trackAssocToken_);
319  const auto& pathLength = iEvent.get(pathLengthToken_);
320 
321  const auto& primRecoVtx = *(RecVertexHandle.product()->begin());
322 
323  // generator level information (HepMC format)
324  auto GenEventHandle = makeValid(iEvent.getHandle(HepMCProductToken_));
325  const HepMC::GenEvent* mc = GenEventHandle->GetEvent();
326  double zsim = convertMmToCm((*(mc->vertices_begin()))->position().z());
327  double tsim = (*(mc->vertices_begin()))->position().t() * CLHEP::mm / CLHEP::c_light;
328 
329  auto pdt = iSetup.getHandle(particleTableToken_);
330  const HepPDT::ParticleDataTable* pdTable = pdt.product();
331 
332  auto simToRecoH = makeValid(iEvent.getHandle(simToRecoAssociationToken_));
333  s2r_ = simToRecoH.product();
334 
335  auto recoToSimH = makeValid(iEvent.getHandle(recoToSimAssociationToken_));
336  r2s_ = recoToSimH.product();
337 
338  //Fill maps with simhits accumulated per DetId
339 
340  auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_));
341  MixCollection<PSimHit> btlSimHits(btlSimHitsHandle.product());
342  for (auto const& simHit : btlSimHits) {
343  if (simHit.tof() < 0 || simHit.tof() > 25.)
344  continue;
345  DetId id = simHit.detUnitId();
346  auto const thisHId = uniqueId(simHit.trackId(), simHit.eventId());
347  m_btlTrkPerCell[id.rawId()].insert(thisHId);
348  auto simHitIt = m_btlHits.emplace(id.rawId(), MTDHit()).first;
349  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
350  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
351  }
352 
353  auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_));
354  MixCollection<PSimHit> etlSimHits(etlSimHitsHandle.product());
355  for (auto const& simHit : etlSimHits) {
356  if (simHit.tof() < 0 || simHit.tof() > 25.) {
357  continue;
358  }
359  DetId id = simHit.detUnitId();
360  auto const thisHId = uniqueId(simHit.trackId(), simHit.eventId());
361  m_etlTrkPerCell[id.rawId()].insert(thisHId);
362  auto simHitIt = m_etlHits.emplace(id.rawId(), MTDHit()).first;
363  // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell
364  (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss());
365  }
366 
367  //Fill map of DetId per ref to TP
368 
369  auto tpHandle = makeValid(iEvent.getHandle(trackingParticleCollectionToken_));
370  TrackingParticleCollection tpColl = *(tpHandle.product());
371  size_t tpindex(0);
372  for (auto tp = tpColl.begin(); tp != tpColl.end(); tp++, ++tpindex) {
374  if (tp->eventId().bunchCrossing() == 0 && tp->eventId().event() == 0) {
375  if (!mvaTPSel(*tp))
376  continue;
377  for (const auto& simTrk : tp->g4Tracks()) {
378  auto const thisTId = uniqueId(simTrk.trackId(), simTrk.eventId());
379  for (auto const& cell : m_btlTrkPerCell) {
380  if (m_btlHits[cell.first].energy < depositBTLthreshold_) {
381  continue;
382  }
383  for (auto const& simtrack : cell.second) {
384  if (thisTId == simtrack) {
385  m_tp2detid[tpref].emplace_back(cell.first);
386  break;
387  }
388  }
389  }
390  for (auto const& cell : m_etlTrkPerCell) {
391  if (m_etlHits[cell.first].energy < depositETLthreshold_) {
392  continue;
393  }
394  for (auto const& simtrack : cell.second) {
395  if (thisTId == simtrack) {
396  m_tp2detid[tpref].emplace_back(cell.first);
397  break;
398  }
399  }
400  }
401  }
402  }
403  }
404 
405  unsigned int index = 0;
406 
407  // flag to select events with reco vertex close to true simulated primary vertex, or PV fake (particle guns)
408  const bool isGoodVtx = std::abs(primRecoVtx.z() - zsim) < deltaZcut_ || primRecoVtx.isFake();
409 
410  // --- Loop over all RECO tracks ---
411  for (const auto& trackGen : *GenRecTrackHandle) {
412  const reco::TrackRef trackref(iEvent.getHandle(GenRecTrackToken_), index);
413  index++;
414 
415  if (trackAssoc[trackref] == -1) {
416  LogInfo("mtdTracks") << "Extended track not associated";
417  continue;
418  }
419 
420  const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecTrackToken_), trackAssoc[trackref]);
421  const reco::Track& track = *mtdTrackref;
422 
423  bool isBTL = false;
424  bool isETL = false;
425  bool twoETLdiscs = false;
426  bool noCrack = std::abs(trackGen.eta()) < trackMaxBtlEta_ || std::abs(trackGen.eta()) > trackMinEtlEta_;
427 
428  if (track.pt() >= trackMinPt_ && std::abs(track.eta()) <= trackMaxEtlEta_) {
429  meTracktmtd_->Fill(tMtd[trackref]);
430  if (std::round(SigmatMtd[trackref] - Sigmat0Pid[trackref]) != 0) {
431  LogWarning("mtdTracks")
432  << "TimeError associated to refitted track is different from TimeError stored in tofPID "
433  "sigmat0 ValueMap: this should not happen";
434  }
435 
436  meTrackt0Src_->Fill(t0Src[trackref]);
437  meTrackSigmat0Src_->Fill(Sigmat0Src[trackref]);
438 
439  meTrackt0Pid_->Fill(t0Pid[trackref]);
440  meTrackSigmat0Pid_->Fill(Sigmat0Pid[trackref]);
441  meTrackt0SafePid_->Fill(t0Safe[trackref]);
442  meTrackSigmat0SafePid_->Fill(Sigmat0Safe[trackref]);
443  meTrackMVAQual_->Fill(mtdQualMVA[trackref]);
444 
445  meTrackPathLenghtvsEta_->Fill(std::abs(track.eta()), pathLength[trackref]);
446 
447  if (std::abs(track.eta()) < trackMaxBtlEta_) {
448  // --- all BTL tracks (with and without hit in MTD) ---
452 
453  bool MTDBtl = false;
454  int numMTDBtlvalidhits = 0;
455  for (const auto hit : track.recHits()) {
456  if (hit->isValid() == false)
457  continue;
458  MTDDetId Hit = hit->geographicalId();
459  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1)) {
460  MTDBtl = true;
461  numMTDBtlvalidhits++;
462  }
463  }
464  meTrackNumHits_->Fill(numMTDBtlvalidhits);
465 
466  // --- keeping only tracks with last hit in MTD ---
467  if (MTDBtl == true) {
468  isBTL = true;
473  meBTLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
474  }
475  if (isBTL && Sigmat0Safe[trackref] < 0.) {
476  meTrackNumHitsNT_->Fill(numMTDBtlvalidhits);
477  }
478  } //loop over (geometrical) BTL tracks
479 
480  else {
481  // --- all ETL tracks (with and without hit in MTD) ---
482  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
483  meETLTrackEffEtaTot_[0]->Fill(track.eta());
484  meETLTrackEffPhiTot_[0]->Fill(track.phi());
485  meETLTrackEffPtTot_[0]->Fill(track.pt());
486  }
487 
488  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
489  meETLTrackEffEtaTot_[1]->Fill(track.eta());
490  meETLTrackEffPhiTot_[1]->Fill(track.phi());
491  meETLTrackEffPtTot_[1]->Fill(track.pt());
492  }
493 
494  bool MTDEtlZnegD1 = false;
495  bool MTDEtlZnegD2 = false;
496  bool MTDEtlZposD1 = false;
497  bool MTDEtlZposD2 = false;
498  int numMTDEtlvalidhits = 0;
499  for (const auto hit : track.recHits()) {
500  if (hit->isValid() == false)
501  continue;
502  MTDDetId Hit = hit->geographicalId();
503  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 2)) {
504  isETL = true;
505  ETLDetId ETLHit = hit->geographicalId();
506 
507  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 1)) {
508  MTDEtlZnegD1 = true;
510  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
511  numMTDEtlvalidhits++;
512  }
513  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 2)) {
514  MTDEtlZnegD2 = true;
516  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
517  numMTDEtlvalidhits++;
518  }
519  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 1)) {
520  MTDEtlZposD1 = true;
522  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
523  numMTDEtlvalidhits++;
524  }
525  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 2)) {
526  MTDEtlZposD2 = true;
528  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
529  numMTDEtlvalidhits++;
530  }
531  }
532  }
533  meTrackNumHits_->Fill(-numMTDEtlvalidhits);
534  if (isETL && Sigmat0Safe[trackref] < 0.) {
535  meTrackNumHitsNT_->Fill(-numMTDEtlvalidhits);
536  }
537 
538  // --- keeping only tracks with last hit in MTD ---
539  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
540  twoETLdiscs = (MTDEtlZnegD1 == true) && (MTDEtlZnegD2 == true);
541  if ((MTDEtlZnegD1 == true) || (MTDEtlZnegD2 == true)) {
542  meETLTrackEffEtaMtd_[0]->Fill(track.eta());
543  meETLTrackEffPhiMtd_[0]->Fill(track.phi());
544  meETLTrackEffPtMtd_[0]->Fill(track.pt());
545  if (twoETLdiscs) {
546  meETLTrackEffEta2Mtd_[0]->Fill(track.eta());
547  meETLTrackEffPhi2Mtd_[0]->Fill(track.phi());
548  meETLTrackEffPt2Mtd_[0]->Fill(track.pt());
549  }
550  }
551  }
552  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
553  twoETLdiscs = (MTDEtlZposD1 == true) && (MTDEtlZposD2 == true);
554  if ((MTDEtlZposD1 == true) || (MTDEtlZposD2 == true)) {
555  meETLTrackEffEtaMtd_[1]->Fill(track.eta());
556  meETLTrackEffPhiMtd_[1]->Fill(track.phi());
557  meETLTrackEffPtMtd_[1]->Fill(track.pt());
558  if (twoETLdiscs) {
559  meETLTrackEffEta2Mtd_[1]->Fill(track.eta());
560  meETLTrackEffPhi2Mtd_[1]->Fill(track.phi());
561  meETLTrackEffPt2Mtd_[1]->Fill(track.pt());
562  }
563  }
564  }
565  }
566 
567  LogDebug("MtdTracksValidation") << "Track p/pt = " << track.p() << " " << track.pt() << " eta " << track.eta()
568  << " BTL " << isBTL << " ETL " << isETL << " 2disks " << twoETLdiscs;
569 
570  // TrackingParticle based matching
571 
572  const reco::TrackBaseRef trkrefb(trackref);
573  auto tp_info = getMatchedTP(trkrefb);
574 
575  meTrackPtTot_->Fill(trackGen.pt());
576  meTrackEtaTot_->Fill(std::abs(trackGen.eta()));
577  if (tp_info != nullptr && mvaTPSel(**tp_info)) {
578  if (track.pt() < 12.) {
579  if (isBTL) {
580  meBTLTrackMatchedTPPtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
581  std::abs(trackGen.pt() - (*tp_info)->pt()));
582  meBTLTrackMatchedTPPtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
583  meBTLTrackMatchedTPPtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
585  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
586  meBTLTrackMatchedTPDPtvsPtGen_->Fill((*tp_info)->pt(),
587  (trackGen.pt() - (*tp_info)->pt()) / (*tp_info)->pt());
588  meBTLTrackMatchedTPDPtvsPtMtd_->Fill((*tp_info)->pt(), (track.pt() - (*tp_info)->pt()) / (*tp_info)->pt());
589  }
590  if (isETL && !twoETLdiscs) {
591  meETLTrackMatchedTPPtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
592  std::abs(trackGen.pt() - (*tp_info)->pt()));
593  meETLTrackMatchedTPPtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
594  meETLTrackMatchedTPPtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
596  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
597  meETLTrackMatchedTPDPtvsPtGen_->Fill((*tp_info)->pt(),
598  (trackGen.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
599  meETLTrackMatchedTPDPtvsPtMtd_->Fill((*tp_info)->pt(),
600  (track.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
601  }
602  if (isETL && twoETLdiscs) {
603  meETLTrackMatchedTP2PtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
604  std::abs(trackGen.pt() - (*tp_info)->pt()));
605  meETLTrackMatchedTP2PtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
606  meETLTrackMatchedTP2PtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
608  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
609  meETLTrackMatchedTP2DPtvsPtGen_->Fill((*tp_info)->pt(),
610  (trackGen.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
611  meETLTrackMatchedTP2DPtvsPtMtd_->Fill((*tp_info)->pt(),
612  (track.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
613  }
614  }
615  const bool withMTD = (m_tp2detid.find(*tp_info) != m_tp2detid.end());
616  LogDebug("MtdTracksValidation") << "Matched with selected TP, MTD sim hits association: " << withMTD;
617  if (noCrack) {
618  meTrackMatchedTPEffPtTot_->Fill(trackGen.pt());
619  if (withMTD) {
620  meTrackMatchedTPmtdEffPtTot_->Fill(trackGen.pt());
621  }
622  }
623  meTrackMatchedTPEffEtaTot_->Fill(std::abs(trackGen.eta()));
624  if (withMTD) {
625  meTrackMatchedTPmtdEffEtaTot_->Fill(std::abs(trackGen.eta()));
626  }
627  if (isBTL || isETL) {
628  if (noCrack) {
629  meTrackMatchedTPEffPtMtd_->Fill(trackGen.pt());
630  if (isBTL || twoETLdiscs) {
631  meTrackMatchedTPEffPtEtl2Mtd_->Fill(trackGen.pt());
632  }
633  if (withMTD) {
634  meTrackMatchedTPmtdEffPtMtd_->Fill(trackGen.pt());
635  }
636  }
637  meTrackMatchedTPEffEtaMtd_->Fill(std::abs(trackGen.eta()));
638  if (isBTL || twoETLdiscs) {
639  meTrackMatchedTPEffEtaEtl2Mtd_->Fill(std::abs(trackGen.eta()));
640  }
641  if (withMTD) {
642  meTrackMatchedTPmtdEffEtaMtd_->Fill(std::abs(trackGen.eta()));
643  }
644  }
645 
646  size_t nlayers(0);
647  float extrho(0.);
648  float exteta(0.);
649  float extphi(0.);
650  float selvar(0.);
651  auto accept = checkAcceptance(trackGen, iEvent, iSetup, nlayers, extrho, exteta, extphi, selvar);
652  if (accept.first && std::abs(exteta) < trackMaxBtlEta_) {
654  meExtraBTLeneInCone_->Fill(selvar);
655  }
656  if (accept.second) {
657  if (std::abs(exteta) < trackMaxBtlEta_) {
659  }
660  if (noCrack) {
661  meExtraPtMtd_->Fill(trackGen.pt());
662  if (nlayers == 2) {
663  meExtraPtEtl2Mtd_->Fill(trackGen.pt());
664  }
665  }
666  meExtraEtaMtd_->Fill(std::abs(trackGen.eta()));
667  if (nlayers == 2) {
668  meExtraEtaEtl2Mtd_->Fill(std::abs(trackGen.eta()));
669  }
670  if (accept.first && accept.second && !(isBTL || isETL)) {
671  edm::LogInfo("MtdTracksValidation")
672  << "MtdTracksValidation: extender fail in " << iEvent.id().run() << " " << iEvent.id().event()
673  << " pt= " << trackGen.pt() << " eta= " << trackGen.eta();
674  meExtraMTDfailExtenderEta_->Fill(std::abs(trackGen.eta()));
675  if (noCrack) {
676  meExtraMTDfailExtenderPt_->Fill(trackGen.pt());
677  }
678  }
679  }
680 
681  } // TP matching
682  }
683 
684  if (isGoodVtx) {
685  const bool vtxFake = primRecoVtx.isFake();
686 
687  if (mvaRecSel(trackGen, primRecoVtx, t0Safe[trackref], Sigmat0Safe[trackref])) {
688  // reco-gen matching used for MVA quality flag
689 
690  if (noCrack) {
691  meMVATrackEffPtTot_->Fill(trackGen.pt());
692  }
693  meMVATrackEffEtaTot_->Fill(std::abs(trackGen.eta()));
694 
695  double dZ = trackGen.vz() - zsim;
696  double dT(-9999.);
697  double pullT(-9999.);
698  if (Sigmat0Safe[trackref] != -1.) {
699  dT = t0Safe[trackref] - tsim;
700  pullT = dT / Sigmat0Safe[trackref];
701  }
702  for (const auto& genP : mc->particle_range()) {
703  // select status 1 genParticles and match them to the reconstructed track
704 
705  float charge = pdTable->particle(HepPDT::ParticleID(genP->pdg_id())) != nullptr
706  ? pdTable->particle(HepPDT::ParticleID(genP->pdg_id()))->charge()
707  : 0.f;
708  if (mvaGenSel(*genP, charge)) {
709  if (mvaGenRecMatch(*genP, zsim, trackGen, vtxFake)) {
711  if (noCrack) {
712  meMVATrackMatchedEffPtTot_->Fill(trackGen.pt());
713  }
714  meMVATrackMatchedEffEtaTot_->Fill(std::abs(trackGen.eta()));
715  if (isBTL || isETL) {
716  meMVATrackResTot_->Fill(dT);
717  meMVATrackPullTot_->Fill(pullT);
718  if (noCrack) {
719  meMVATrackMatchedEffPtMtd_->Fill(trackGen.pt());
720  }
721  meMVATrackMatchedEffEtaMtd_->Fill(std::abs(trackGen.eta()));
722  }
723  break;
724  }
725  }
726  }
727  }
728  } // MC truth matich analysis for good PV
729  } //RECO tracks loop
730 }
MonitorElement * meETLTrackEffEtaTot_[2]
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
MonitorElement * meBTLTrackMatchedTPPtResMtd_
MonitorElement * meTrackMatchedTPEffEtaMtd_
MonitorElement * meBTLTrackEffPhiMtd_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
MonitorElement * meMVATrackResTot_
MonitorElement * meETLTrackMatchedTPPtResvsPtMtd_
MonitorElement * meTrackNumHits_
MonitorElement * meTrackt0Pid_
MonitorElement * meExtraMTDfailExtenderEta_
const std::pair< bool, bool > checkAcceptance(const reco::Track &, const edm::Event &, const edm::EventSetup &, size_t &, float &, float &, float &, float &)
MonitorElement * meETLTrackMatchedTP2DPtvsPtGen_
MonitorElement * meETLTrackRPTime_
MonitorElement * meETLTrackMatchedTP2PtResMtd_
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
MonitorElement * meETLTrackMatchedTP2PtRatioMtd_
edm::EDGetTokenT< edm::HepMCProduct > HepMCProductToken_
HepPDT::ParticleDataTable ParticleDataTable
MonitorElement * meMVATrackMatchedEffEtaMtd_
const bool mvaRecSel(const reco::TrackBase &, const reco::Vertex &, const double &, const double &)
constexpr NumType convertRadToDeg(NumType radians)
Definition: angle_units.h:21
MonitorElement * meETLTrackMatchedTP2PtResvsPtMtd_
MonitorElement * meBTLTrackPtRes_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
MonitorElement * meETLTrackEffPtTot_[2]
MonitorElement * meBTLTrackEffEtaMtd_
MonitorElement * meETLTrackEffPhi2Mtd_[2]
Definition: MTDHit.h:4
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
MonitorElement * meExtraBTLeneInCone_
MonitorElement * meExtraMTDfailExtenderPt_
MonitorElement * meMVATrackMatchedEffPtTot_
MonitorElement * meMVATrackEffPtTot_
MonitorElement * meExtraEtaMtd_
MonitorElement * meMVATrackEffEtaTot_
const reco::SimToRecoCollection * s2r_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
const unsigned long int uniqueId(const uint32_t x, const EncodedEventId &y)
MonitorElement * meBTLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMatchedTPmtdEffEtaTot_
const reco::RecoToSimCollection * r2s_
const edm::Ref< std::vector< TrackingParticle > > * getMatchedTP(const reco::TrackBaseRef &)
const bool mvaGenSel(const HepMC::GenParticle &, const float &)
Detector identifier base class for the MIP Timing Layer.
Definition: MTDDetId.h:21
const bool mvaTPSel(const TrackingParticle &)
MonitorElement * meETLTrackMatchedTP2PtRatioGen_
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 * meExtraEtaEtl2Mtd_
MonitorElement * meBTLTrackEffPhiTot_
int iEvent
Definition: GenABIO.cc:224
MonitorElement * meTrackMatchedTPmtdEffEtaMtd_
MonitorElement * meTrackMatchedTPEffEtaTot_
MonitorElement * meBTLTrackRPTime_
MonitorElement * meETLTrackEffEta2Mtd_[2]
MonitorElement * meBTLTrackMatchedTPDPtvsPtMtd_
static constexpr double depositBTLthreshold_
MonitorElement * meETLTrackPtRes_
MonitorElement * meETLTrackEffPt2Mtd_[2]
MonitorElement * meETLTrackMatchedTPDPtvsPtGen_
MonitorElement * meTrackt0SafePid_
MonitorElement * meBTLTrackEffEtaTot_
MonitorElement * meETLTrackMatchedTPDPtvsPtMtd_
static constexpr double deltaZcut_
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool isETL(const double eta) const
MonitorElement * meBTLTrackMatchedTPPtResvsPtMtd_
MonitorElement * meMVATrackMatchedEffEtaTot_
edm::EDGetTokenT< edm::ValueMap< float > > t0PidToken_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meETLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMVAQual_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
MonitorElement * meETLTrackEffPhiTot_[2]
edm::EDGetTokenT< edm::ValueMap< float > > SigmatmtdToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleCollectionToken_
MonitorElement * meTrackNumHitsNT_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
constexpr NumType convertMmToCm(NumType millimeters)
Definition: angle_units.h:44
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
MonitorElement * meTrackEtaTot_
static constexpr double depositETLthreshold_
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
MonitorElement * meBTLTrackMatchedTPDPtvsPtGen_
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:16
HLT enums.
MonitorElement * meETLTrackMatchedTPPtResMtd_
int nDisc() const
Definition: ETLDetId.h:155
const bool mvaGenRecMatch(const HepMC::GenParticle &, const double &, const reco::TrackBase &, const bool &)
MonitorElement * meETLTrackMatchedTPPtRatioGen_
MonitorElement * meExtraPtMtd_
MonitorElement * meExtraPhiAtBTLmatched_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
MonitorElement * meBTLTrackMatchedTPPtRatioGen_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meExtraPtEtl2Mtd_
std::vector< TrackingParticle > TrackingParticleCollection
MonitorElement * meTrackPtTot_
MonitorElement * meMVATrackZposResTot_
Log< level::Warning, false > LogWarning
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
MonitorElement * meETLTrackMatchedTP2DPtvsPtMtd_
MonitorElement * meMVATrackMatchedEffPtMtd_
MonitorElement * meTrackSigmat0Src_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
#define LogDebug(id)
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > particleTableToken_
MonitorElement * meExtraPhiAtBTL_

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 920 of file MtdTracksValidation.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::bookProfile(), folder_, meBTLTrackEffEtaMtd_, meBTLTrackEffEtaTot_, meBTLTrackEffPhiMtd_, meBTLTrackEffPhiTot_, meBTLTrackEffPtMtd_, meBTLTrackEffPtTot_, meBTLTrackMatchedTPDPtvsPtGen_, meBTLTrackMatchedTPDPtvsPtMtd_, meBTLTrackMatchedTPPtRatioGen_, meBTLTrackMatchedTPPtRatioMtd_, meBTLTrackMatchedTPPtResMtd_, meBTLTrackMatchedTPPtResvsPtMtd_, meBTLTrackPtRes_, meBTLTrackRPTime_, meETLTrackEffEta2Mtd_, meETLTrackEffEtaMtd_, meETLTrackEffEtaTot_, meETLTrackEffPhi2Mtd_, meETLTrackEffPhiMtd_, meETLTrackEffPhiTot_, meETLTrackEffPt2Mtd_, meETLTrackEffPtMtd_, meETLTrackEffPtTot_, meETLTrackMatchedTP2DPtvsPtGen_, meETLTrackMatchedTP2DPtvsPtMtd_, meETLTrackMatchedTP2PtRatioGen_, meETLTrackMatchedTP2PtRatioMtd_, meETLTrackMatchedTP2PtResMtd_, meETLTrackMatchedTP2PtResvsPtMtd_, meETLTrackMatchedTPDPtvsPtGen_, meETLTrackMatchedTPDPtvsPtMtd_, meETLTrackMatchedTPPtRatioGen_, meETLTrackMatchedTPPtRatioMtd_, meETLTrackMatchedTPPtResMtd_, meETLTrackMatchedTPPtResvsPtMtd_, meETLTrackPtRes_, meETLTrackRPTime_, meExtraBTLeneInCone_, meExtraEtaEtl2Mtd_, meExtraEtaMtd_, meExtraMTDfailExtenderEta_, meExtraMTDfailExtenderPt_, meExtraPhiAtBTL_, meExtraPhiAtBTLmatched_, meExtraPtEtl2Mtd_, meExtraPtMtd_, meMVATrackEffEtaTot_, meMVATrackEffPtTot_, meMVATrackMatchedEffEtaMtd_, meMVATrackMatchedEffEtaTot_, meMVATrackMatchedEffPtMtd_, meMVATrackMatchedEffPtTot_, meMVATrackPullTot_, meMVATrackResTot_, meMVATrackZposResTot_, meTrackEtaTot_, meTrackMatchedTPEffEtaEtl2Mtd_, meTrackMatchedTPEffEtaMtd_, meTrackMatchedTPEffEtaTot_, meTrackMatchedTPEffPtEtl2Mtd_, meTrackMatchedTPEffPtMtd_, meTrackMatchedTPEffPtTot_, meTrackMatchedTPmtdEffEtaMtd_, meTrackMatchedTPmtdEffEtaTot_, meTrackMatchedTPmtdEffPtMtd_, meTrackMatchedTPmtdEffPtTot_, meTrackMVAQual_, meTrackNumHits_, meTrackNumHitsNT_, meTrackPathLenghtvsEta_, meTrackPtTot_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, and dqm::implementation::NavigatorBase::setCurrentFolder().

920  {
921  ibook.setCurrentFolder(folder_);
922 
923  // histogram booking
924  meBTLTrackRPTime_ = ibook.book1D("TrackBTLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
925  meBTLTrackEffEtaTot_ = ibook.book1D("TrackBTLEffEtaTot", "Track efficiency vs eta (Tot);#eta_{RECO}", 100, -1.6, 1.6);
927  ibook.book1D("TrackBTLEffPhiTot", "Track efficiency vs phi (Tot);#phi_{RECO} [rad]", 100, -3.2, 3.2);
928  meBTLTrackEffPtTot_ = ibook.book1D("TrackBTLEffPtTot", "Track efficiency vs pt (Tot);pt_{RECO} [GeV]", 50, 0, 10);
929  meBTLTrackEffEtaMtd_ = ibook.book1D("TrackBTLEffEtaMtd", "Track efficiency vs eta (Mtd);#eta_{RECO}", 100, -1.6, 1.6);
931  ibook.book1D("TrackBTLEffPhiMtd", "Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2);
932  meBTLTrackEffPtMtd_ = ibook.book1D("TrackBTLEffPtMtd", "Track efficiency vs pt (Mtd);pt_{RECO} [GeV]", 50, 0, 10);
934  ibook.book1D("TrackBTLPtRes", "Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
935  meETLTrackRPTime_ = ibook.book1D("TrackETLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
937  ibook.book1D("TrackETLEffEtaTotZneg", "Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
939  ibook.book1D("TrackETLEffEtaTotZpos", "Track efficiency vs eta (Tot) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
941  ibook.book1D("TrackETLEffPhiTotZneg", "Track efficiency vs phi (Tot) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
943  ibook.book1D("TrackETLEffPhiTotZpos", "Track efficiency vs phi (Tot) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
945  ibook.book1D("TrackETLEffPtTotZneg", "Track efficiency vs pt (Tot) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
947  ibook.book1D("TrackETLEffPtTotZpos", "Track efficiency vs pt (Tot) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
949  ibook.book1D("TrackETLEffEtaMtdZneg", "Track efficiency vs eta (Mtd) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
951  ibook.book1D("TrackETLEffEtaMtdZpos", "Track efficiency vs eta (Mtd) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
953  ibook.book1D("TrackETLEffPhiMtdZneg", "Track efficiency vs phi (Mtd) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
955  ibook.book1D("TrackETLEffPhiMtdZpos", "Track efficiency vs phi (Mtd) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
957  ibook.book1D("TrackETLEffPtMtdZneg", "Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
959  ibook.book1D("TrackETLEffPtMtdZpos", "Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
961  ibook.book1D("TrackETLEffEta2MtdZneg", "Track efficiency vs eta (Mtd 2 hit) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
963  ibook.book1D("TrackETLEffEta2MtdZpos", "Track efficiency vs eta (Mtd 2 hit) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
964  meETLTrackEffPhi2Mtd_[0] = ibook.book1D(
965  "TrackETLEffPhi2MtdZneg", "Track efficiency vs phi (Mtd 2 hit) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
966  meETLTrackEffPhi2Mtd_[1] = ibook.book1D(
967  "TrackETLEffPhi2MtdZpos", "Track efficiency vs phi (Mtd 2 hit) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
969  ibook.book1D("TrackETLEffPt2MtdZneg", "Track efficiency vs pt (Mtd 2 hit) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
971  ibook.book1D("TrackETLEffPt2MtdZpos", "Track efficiency vs pt (Mtd 2 hit) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
973  ibook.book1D("TrackETLPtRes", "Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
974 
975  meTracktmtd_ = ibook.book1D("Tracktmtd", "Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16);
976  meTrackt0Src_ = ibook.book1D("Trackt0Src", "Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5);
978  ibook.book1D("TrackSigmat0Src", "Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1);
979 
980  meTrackt0Pid_ = ibook.book1D("Trackt0Pid", "Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1);
981  meTrackSigmat0Pid_ = ibook.book1D("TrackSigmat0Pid", "Sigmat0 as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
982  meTrackt0SafePid_ = ibook.book1D("Trackt0SafePID", "Track t0 Safe as stored in TofPid;t0 [ns]", 100, -1, 1);
984  ibook.book1D("TrackSigmat0SafePID", "Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
985  meTrackNumHits_ = ibook.book1D("TrackNumHits", "Number of valid MTD hits per track ; Number of hits", 10, -5, 5);
986  meTrackNumHitsNT_ = ibook.book1D(
987  "TrackNumHitsNT", "Number of valid MTD hits per track no time associated; Number of hits", 10, -5, 5);
988  meTrackMVAQual_ = ibook.book1D("TrackMVAQual", "Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1);
990  "TrackPathLenghtvsEta", "MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0, "S");
991 
992  meMVATrackEffPtTot_ = ibook.book1D("MVAEffPtTot", "Pt of tracks associated to LV; track pt [GeV] ", 110, 0., 11.);
994  ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to GEN; track pt [GeV] ", 110, 0., 11.);
996  "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to GEN with time; track pt [GeV] ", 110, 0., 11.);
997 
998  meExtraPtMtd_ = ibook.book1D("ExtraPtMtd", "Pt of tracks extrapolated to hits; track pt [GeV] ", 110, 0., 11.);
1000  ibook.book1D("ExtraPtEtl2Mtd", "Pt of tracks extrapolated to hits, 2 ETL layers; track pt [GeV] ", 110, 0., 11.);
1001 
1002  meTrackPtTot_ = ibook.book1D("TrackPtTot", "Pt of tracks ; track pt [GeV] ", 110, 0., 11.);
1004  ibook.book1D("MatchedTPEffPtTot", "Pt of tracks matched to TP; track pt [GeV] ", 110, 0., 11.);
1006  ibook.book1D("MatchedTPEffPtMtd", "Pt of tracks matched to TP with time; track pt [GeV] ", 110, 0., 11.);
1008  "MatchedTPEffPtEtl2Mtd", "Pt of tracks matched to TP with time, 2 ETL hits; track pt [GeV] ", 110, 0., 11.);
1009 
1011  "TrackMatchedTPBTLPtResMtd",
1012  "Pt resolution of tracks matched to TP-BTL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1013  100,
1014  0.,
1015  4.);
1017  "TrackMatchedTPETLPtResMtd",
1018  "Pt resolution of tracks matched to TP-ETL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1019  100,
1020  0.,
1021  4.);
1023  "TrackMatchedTPETL2PtResMtd",
1024  "Pt resolution of tracks matched to TP-ETL 2hits ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1025  100,
1026  0.,
1027  4.);
1029  "TrackMatchedTPBTLPtRatioGen", "Pt ratio of Gentracks (BTL) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1031  "TrackMatchedTPETLPtRatioGen", "Pt ratio of Gentracks (ETL 1hit) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1033  "TrackMatchedTPETL2PtRatioGen", "Pt ratio of Gentracks (ETL 2hits) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1034  meBTLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPBTLPtRatioMtd",
1035  "Pt ratio of tracks matched to TP-BTL hits ;pT_{MTDtrack}/pT_{truth} ",
1036  100,
1037  0.9,
1038  1.1);
1039  meETLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPETLPtRatioMtd",
1040  "Pt ratio of tracks matched to TP-ETL hits ;pT_{MTDtrack}/pT_{truth} ",
1041  100,
1042  0.9,
1043  1.1);
1045  ibook.book1D("TrackMatchedTPETL2PtRatioMtd",
1046  "Pt ratio of tracks matched to TP-ETL 2hits ;pT_{MTDtrack}/pT_{truth} ",
1047  100,
1048  0.9,
1049  1.1);
1050  meBTLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLPtResvsPtMtd",
1051  "Pt resolution of tracks matched to TP-BTL hit vs Pt;pT_{truth} "
1052  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1053  20,
1054  0.7,
1055  10.,
1056  0.,
1057  4.,
1058  "s");
1059  meETLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLPtResvsPtMtd",
1060  "Pt resolution of tracks matched to TP-ETL hit vs Pt;pT_{truth} "
1061  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1062  20,
1063  0.7,
1064  10.,
1065  0.,
1066  4.,
1067  "s");
1069  ibook.bookProfile("TrackMatchedTPETL2PtResvsPtMtd",
1070  "Pt resolution of tracks matched to TP-ETL 2hits Pt pT;pT_{truth} "
1071  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1072  20,
1073  0.7,
1074  10.,
1075  0.,
1076  4.,
1077  "s");
1079  "TrackMatchedTPBTLDPtvsPtGen",
1080  "Pt relative difference of Gentracks (BTL) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1081  20,
1082  0.7,
1083  10.,
1084  -0.1,
1085  0.1,
1086  "s");
1088  "TrackMatchedTPETLDPtvsPtGen",
1089  "Pt relative difference of Gentracks (ETL 1hit) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1090  20,
1091  0.7,
1092  10.,
1093  -0.1,
1094  0.1,
1095  "s");
1097  "TrackMatchedTPETL2DPtvsPtGen",
1098  "Pt relative difference of Gentracks (ETL 2hits) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1099  20,
1100  0.7,
1101  10.,
1102  -0.1,
1103  0.1,
1104  "s");
1105  meBTLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLDPtvsPtMtd",
1106  "Pt relative difference of tracks matched to TP-BTL hits vs "
1107  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1108  20,
1109  0.7,
1110  10.,
1111  -0.1,
1112  0.1,
1113  "s");
1114  meETLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLDPtvsPtMtd",
1115  "Pt relative difference of tracks matched to TP-ETL hits vs "
1116  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1117  20,
1118  0.7,
1119  10.,
1120  -0.1,
1121  0.1,
1122  "s");
1123  meETLTrackMatchedTP2DPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETL2DPtvsPtMtd",
1124  "Pt relative difference of tracks matched to TP-ETL 2hits vs "
1125  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1126  20,
1127  0.7,
1128  10.,
1129  -0.1,
1130  0.1,
1131  "s");
1132 
1134  ibook.book1D("MatchedTPmtdEffPtTot", "Pt of tracks matched to TP-mtd hit; track pt [GeV] ", 110, 0., 11.);
1136  "MatchedTPmtdEffPtMtd", "Pt of tracks matched to TP-mtd hit with time; track pt [GeV] ", 110, 0., 11.);
1137 
1138  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks associated to LV; track eta ", 66, 0., 3.3);
1140  ibook.book1D("MVAMatchedEffEtaTot", "Eta of tracks associated to LV matched to GEN; track eta ", 66, 0., 3.3);
1142  "MVAMatchedEffEtaMtd", "Eta of tracks associated to LV matched to GEN with time; track eta ", 66, 0., 3.3);
1143 
1144  meExtraEtaMtd_ = ibook.book1D("ExtraEtaMtd", "Eta of tracks extrapolated to hits; track eta ", 66, 0., 3.3);
1146  ibook.book1D("ExtraEtaEtl2Mtd", "Eta of tracks extrapolated to hits, 2 ETL layers; track eta ", 66, 0., 3.3);
1147 
1148  meTrackEtaTot_ = ibook.book1D("TrackEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1150  ibook.book1D("MatchedTPEffEtaTot", "Eta of tracks matched to TP; track eta ", 66, 0., 3.3);
1151  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1153  ibook.book1D("MatchedTPEffEtaMtd", "Eta of tracks matched to TP with time; track eta ", 66, 0., 3.3);
1155  "MatchedTPEffEtaEtl2Mtd", "Eta of tracks matched to TP with time, 2 ETL hits; track eta ", 66, 0., 3.3);
1156 
1158  ibook.book1D("MatchedTPmtdEffEtaTot", "Eta of tracks matched to TP-mtd hit; track eta ", 66, 0., 3.3);
1160  ibook.book1D("MatchedTPmtdEffEtaMtd", "Eta of tracks matched to TP-mtd hit with time; track eta ", 66, 0., 3.3);
1161 
1162  meMVATrackResTot_ = ibook.book1D(
1163  "MVATrackRes", "t_{rec} - t_{sim} for LV associated tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
1165  ibook.book1D("MVATrackPull", "Pull for associated tracks; (t_{rec}-t_{sim})/#sigma_{t}", 50, -5., 5.);
1166  meMVATrackZposResTot_ = ibook.book1D(
1167  "MVATrackZposResTot", "Z_{PCA} - Z_{sim} for associated tracks;Z_{PCA} - Z_{sim} [cm] ", 100, -0.1, 0.1);
1168 
1170  ibook.book1D("ExtraPhiAtBTL", "Phi at BTL surface of extrapolated tracks; phi [deg]", 720, -180., 180.);
1171  meExtraPhiAtBTLmatched_ = ibook.book1D("ExtraPhiAtBTLmatched",
1172  "Phi at BTL surface of extrapolated tracksi matched with BTL hits; phi [deg]",
1173  720,
1174  -180.,
1175  180.);
1176  meExtraBTLeneInCone_ = ibook.book1D(
1177  "ExtraBTLeneInCone", "BTL reconstructed energy in cone arounnd extrapolated track; E [MeV]", 100, 0., 50.);
1179  ibook.book1D("ExtraMTDfailExtenderEta",
1180  "Eta of tracks extrapolated to MTD with no track extender match to hits; track eta",
1181  66,
1182  0.,
1183  3.3);
1184  ;
1186  ibook.book1D("ExtraMTDfailExtenderPt",
1187  "Pt of tracks extrapolated to MTD with no track extender match to hits; track pt [GeV] ",
1188  110,
1189  0.,
1190  11.);
1191 }
MonitorElement * meETLTrackEffEtaTot_[2]
MonitorElement * meBTLTrackMatchedTPPtResMtd_
MonitorElement * meTrackMatchedTPEffEtaMtd_
MonitorElement * meBTLTrackEffPhiMtd_
MonitorElement * meMVATrackResTot_
MonitorElement * meETLTrackMatchedTPPtResvsPtMtd_
MonitorElement * meTrackNumHits_
MonitorElement * meTrackt0Pid_
MonitorElement * meExtraMTDfailExtenderEta_
MonitorElement * meETLTrackMatchedTP2DPtvsPtGen_
MonitorElement * meETLTrackRPTime_
MonitorElement * meETLTrackMatchedTP2PtResMtd_
MonitorElement * meETLTrackMatchedTP2PtRatioMtd_
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
const std::string folder_
MonitorElement * meMVATrackMatchedEffEtaMtd_
MonitorElement * meETLTrackMatchedTP2PtResvsPtMtd_
MonitorElement * meBTLTrackPtRes_
MonitorElement * meETLTrackEffPtTot_[2]
MonitorElement * meBTLTrackEffEtaMtd_
MonitorElement * meETLTrackEffPhi2Mtd_[2]
MonitorElement * meExtraBTLeneInCone_
MonitorElement * meExtraMTDfailExtenderPt_
MonitorElement * meMVATrackMatchedEffPtTot_
MonitorElement * meMVATrackEffPtTot_
MonitorElement * meExtraEtaMtd_
MonitorElement * meMVATrackEffEtaTot_
MonitorElement * meBTLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMatchedTPmtdEffEtaTot_
MonitorElement * meETLTrackMatchedTP2PtRatioGen_
MonitorElement * meETLTrackEffPhiMtd_[2]
MonitorElement * meExtraEtaEtl2Mtd_
MonitorElement * meBTLTrackEffPhiTot_
MonitorElement * meTrackMatchedTPmtdEffEtaMtd_
MonitorElement * meTrackMatchedTPEffEtaTot_
MonitorElement * meBTLTrackRPTime_
MonitorElement * meETLTrackEffEta2Mtd_[2]
MonitorElement * meBTLTrackMatchedTPDPtvsPtMtd_
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:408
MonitorElement * meETLTrackMatchedTPDPtvsPtGen_
MonitorElement * meTrackt0SafePid_
MonitorElement * meBTLTrackEffEtaTot_
MonitorElement * meETLTrackMatchedTPDPtvsPtMtd_
MonitorElement * meBTLTrackMatchedTPPtResvsPtMtd_
MonitorElement * meMVATrackMatchedEffEtaTot_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meETLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMVAQual_
MonitorElement * meETLTrackEffPhiTot_[2]
MonitorElement * meTrackNumHitsNT_
MonitorElement * meTrackEtaTot_
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
MonitorElement * meBTLTrackMatchedTPDPtvsPtGen_
MonitorElement * meTrackSigmat0SafePid_
MonitorElement * meETLTrackEffEtaMtd_[2]
MonitorElement * meTrackSigmat0Pid_
MonitorElement * meTrackMatchedTPmtdEffPtTot_
MonitorElement * meBTLTrackEffPtMtd_
MonitorElement * meTrackt0Src_
MonitorElement * meTracktmtd_
MonitorElement * meBTLTrackEffPtTot_
MonitorElement * meTrackPathLenghtvsEta_
MonitorElement * meTrackMatchedTPEffPtTot_
MonitorElement * meETLTrackMatchedTPPtResMtd_
MonitorElement * meETLTrackMatchedTPPtRatioGen_
MonitorElement * meExtraPtMtd_
MonitorElement * meExtraPhiAtBTLmatched_
MonitorElement * meBTLTrackMatchedTPPtRatioGen_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meExtraPtEtl2Mtd_
MonitorElement * meTrackPtTot_
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 * meETLTrackMatchedTP2DPtvsPtMtd_
MonitorElement * meMVATrackMatchedEffPtMtd_
MonitorElement * meTrackSigmat0Src_
MonitorElement * meExtraPhiAtBTL_

◆ checkAcceptance()

const std::pair< bool, bool > MtdTracksValidation::checkAcceptance ( const reco::Track track,
const edm::Event iEvent,
const edm::EventSetup iSetup,
size_t &  nlayers,
float &  extrho,
float &  exteta,
float &  extphi,
float &  selvar 
)
private

Definition at line 732 of file MtdTracksValidation.cc.

References MTDDetLayerGeometry::allBTLLayers(), MTDDetLayerGeometry::allETLLayers(), anyDirection, btlRecHitsToken_, builderToken_, cluDRradius_, AlCaHLTBitMon_QueryRunRegistry::comp, MTDTopologyMode::crysLayoutFromTopoMode(), TauDecayModes::dec, reco::deltaR(), depositBTLthreshold_, hcalRecHitTable_cff::detId, etlRecHitsToken_, Exception, nano_mu_digi_cff::float, relativeConstraints::geom, edm::EventSetup::getTransientHandle(), TrajectoryStateOnSurface::globalPosition(), iEvent, trackerHitRTTI::isMatched(), RectangularMTDTopology::localX(), RectangularMTDTopology::localY(), magfieldToken_, edm::makeValid(), mtdgeoToken_, mtdlayerToken_, mtdtopoToken_, nlayers, RectangularMTDTopology::nrows(), RectangularMTDTopology::pixelToModuleLocalPoint(), DetId::rawId(), rpcPointValidation_cfi::recHit, ProxyMTDTopology::specificTopology(), mathSSE::sqrt(), dtChamberEfficiency_cfi::theMaxChi2, createJobs::theNSigma, GeomDet::toGlobal(), GeomDet::topology(), HLT_2024v13_cff::topology, HLT_2024v13_cff::track, and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

739  {
740  bool isMatched(false);
741  nlayers = 0;
742  extrho = 0.;
743  exteta = -999.;
744  extphi = -999.;
745  selvar = 0.;
746 
747  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
748  const MTDGeometry* geom = geometryHandle.product();
749  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
750  const MTDTopology* topology = topologyHandle.product();
751 
752  auto layerHandle = iSetup.getTransientHandle(mtdlayerToken_);
753  const MTDDetLayerGeometry* layerGeo = layerHandle.product();
754 
755  auto magfieldHandle = iSetup.getTransientHandle(magfieldToken_);
756  const MagneticField* mfield = magfieldHandle.product();
757 
758  auto ttrackBuilder = iSetup.getTransientHandle(builderToken_);
759 
760  auto tTrack = ttrackBuilder->build(track);
761  TrajectoryStateOnSurface tsos = tTrack.outermostMeasurementState();
762  float theMaxChi2 = 500.;
763  float theNSigma = 10.;
764  std::unique_ptr<MeasurementEstimator> theEstimator =
765  std::make_unique<Chi2MeasurementEstimator>(theMaxChi2, theNSigma);
767 
768  auto btlRecHitsHandle = makeValid(iEvent.getHandle(btlRecHitsToken_));
769  auto etlRecHitsHandle = makeValid(iEvent.getHandle(etlRecHitsToken_));
770 
771  edm::LogVerbatim("MtdTracksValidation")
772  << "MtdTracksValidation: extrapolating track, pt= " << track.pt() << " eta= " << track.eta();
773 
774  //try BTL
775  bool inBTL = false;
776  float eneSum(0.);
777  const std::vector<const DetLayer*>& layersBTL = layerGeo->allBTLLayers();
778  for (const DetLayer* ilay : layersBTL) {
779  std::pair<bool, TrajectoryStateOnSurface> comp = ilay->compatible(tsos, prop, *theEstimator);
780  if (!comp.first)
781  continue;
782  if (!inBTL) {
783  inBTL = true;
784  extrho = comp.second.globalPosition().perp();
785  exteta = comp.second.globalPosition().eta();
786  extphi = comp.second.globalPosition().phi();
787  edm::LogVerbatim("MtdTracksValidation") << "MtdTracksValidation: extrapolation at BTL surface, rho= " << extrho
788  << " eta= " << exteta << " phi= " << extphi;
789  }
790  std::vector<DetLayer::DetWithState> compDets = ilay->compatibleDets(tsos, prop, *theEstimator);
791  for (const auto& detWithState : compDets) {
792  const auto& det = detWithState.first;
793 
794  // loop on compatible rechits and check energy in a fixed size cone around the extrapolation point
795 
796  edm::LogVerbatim("MtdTracksValidation")
797  << "MtdTracksValidation: DetId= " << det->geographicalId().rawId()
798  << " gp= " << detWithState.second.globalPosition().x() << " " << detWithState.second.globalPosition().y()
799  << " " << detWithState.second.globalPosition().z() << " rho= " << detWithState.second.globalPosition().perp()
800  << " eta= " << detWithState.second.globalPosition().eta()
801  << " phi= " << detWithState.second.globalPosition().phi();
802 
803  for (const auto& recHit : *btlRecHitsHandle) {
804  BTLDetId detId = recHit.id();
805  DetId geoId = detId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(topology->getMTDTopologyMode()));
806  const MTDGeomDet* thedet = geom->idToDet(geoId);
807  if (thedet == nullptr)
808  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
809  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
810  if (geoId == det->geographicalId()) {
811  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
812  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
813 
814  Local3DPoint local_point(0., 0., 0.);
815  local_point = topo.pixelToModuleLocalPoint(local_point, detId.row(topo.nrows()), detId.column(topo.nrows()));
816  const auto& global_point = thedet->toGlobal(local_point);
817  edm::LogVerbatim("MtdTracksValidation")
818  << "MtdTracksValidation: Hit id= " << detId.rawId() << " ene= " << recHit.energy()
819  << " dr= " << reco::deltaR(global_point, detWithState.second.globalPosition());
820  if (reco::deltaR(global_point, detWithState.second.globalPosition()) < cluDRradius_) {
821  eneSum += recHit.energy();
822  //extrho = detWithState.second.globalPosition().perp();
823  //exteta = detWithState.second.globalPosition().eta();
824  //extphi = detWithState.second.globalPosition().phi();
825  }
826  }
827  }
828  }
829  if (eneSum > depositBTLthreshold_) {
830  nlayers++;
831  selvar = eneSum;
832  isMatched = true;
833  edm::LogVerbatim("MtdTracksValidation")
834  << "MtdTracksValidation: BTL matched, energy= " << eneSum << " #layers= " << nlayers;
835  }
836  }
837  if (inBTL) {
838  return std::make_pair(inBTL, isMatched);
839  }
840 
841  //try ETL
842  bool inETL = false;
843  const std::vector<const DetLayer*>& layersETL = layerGeo->allETLLayers();
844  for (const DetLayer* ilay : layersETL) {
845  size_t hcount(0);
846  const BoundDisk& disk = static_cast<const MTDSectorForwardDoubleLayer*>(ilay)->specificSurface();
847  const double diskZ = disk.position().z();
848  if (tsos.globalPosition().z() * diskZ < 0)
849  continue; // only propagate to the disk that's on the same side
850  std::pair<bool, TrajectoryStateOnSurface> comp = ilay->compatible(tsos, prop, *theEstimator);
851  if (!comp.first)
852  continue;
853  if (!inETL) {
854  inETL = true;
855  extrho = comp.second.globalPosition().perp();
856  exteta = comp.second.globalPosition().eta();
857  extphi = comp.second.globalPosition().phi();
858  }
859  edm::LogVerbatim("MtdTracksValidation") << "MtdTracksValidation: extrapolation at ETL surface, rho= " << extrho
860  << " eta= " << exteta << " phi= " << extphi;
861  std::vector<DetLayer::DetWithState> compDets = ilay->compatibleDets(tsos, prop, *theEstimator);
862  for (const auto& detWithState : compDets) {
863  const auto& det = detWithState.first;
864 
865  // loop on compatible rechits and check hits in a fixed size cone around the extrapolation point
866 
867  edm::LogVerbatim("MtdTracksValidation")
868  << "MtdTracksValidation: DetId= " << det->geographicalId().rawId()
869  << " gp= " << detWithState.second.globalPosition().x() << " " << detWithState.second.globalPosition().y()
870  << " " << detWithState.second.globalPosition().z() << " rho= " << detWithState.second.globalPosition().perp()
871  << " eta= " << detWithState.second.globalPosition().eta()
872  << " phi= " << detWithState.second.globalPosition().phi();
873 
874  for (const auto& recHit : *etlRecHitsHandle) {
875  ETLDetId detId = recHit.id();
876  DetId geoId = detId.geographicalId();
877  const MTDGeomDet* thedet = geom->idToDet(geoId);
878  if (thedet == nullptr)
879  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
880  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
881  if (geoId == det->geographicalId()) {
882  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
883  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
884 
885  Local3DPoint local_point(topo.localX(recHit.row()), topo.localY(recHit.column()), 0.);
886  const auto& global_point = thedet->toGlobal(local_point);
887  edm::LogVerbatim("MtdTracksValidation")
888  << "MtdTracksValidation: Hit id= " << detId.rawId() << " time= " << recHit.time()
889  << " dr= " << reco::deltaR(global_point, detWithState.second.globalPosition());
890  if (reco::deltaR(global_point, detWithState.second.globalPosition()) < cluDRradius_) {
891  hcount++;
892  if (hcount == 1) {
893  //extrho = detWithState.second.globalPosition().perp();
894  //exteta = detWithState.second.globalPosition().eta();
895  //extphi = detWithState.second.globalPosition().phi();
896  }
897  }
898  }
899  }
900  }
901  if (hcount > 0) {
902  nlayers++;
903  selvar = (float)hcount;
904  isMatched = true;
905  edm::LogVerbatim("MtdTracksValidation")
906  << "MtdTracksValidation: ETL matched, counts= " << hcount << " #layers= " << nlayers;
907  }
908  }
909 
910  if (!inBTL && !inETL) {
911  edm::LogVerbatim("MtdTracksValidation")
912  << "MtdTracksValidation: track not extrapolating to MTD: pt= " << track.pt() << " eta= " << track.eta()
913  << " phi= " << track.phi() << " vz= " << track.vz()
914  << " vxy= " << std::sqrt(track.vx() * track.vx() + track.vy() * track.vy());
915  }
916  return std::make_pair(inETL, isMatched);
917 }
Log< level::Info, true > LogVerbatim
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
T z() const
Definition: PV3DBase.h:61
virtual const Topology & topology() const
Definition: GeomDet.cc:67
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > builderToken_
virtual const PixelTopology & specificTopology() const
LocalPoint pixelToModuleLocalPoint(const LocalPoint &plp, int row, int col) const
static constexpr double cluDRradius_
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecord > mtdlayerToken_
int iEvent
Definition: GenABIO.cc:224
GlobalPoint globalPosition() const
float localX(const float mpX) const override
edm::EDGetTokenT< FTLRecHitCollection > etlRecHitsToken_
static constexpr double depositBTLthreshold_
T sqrt(T t)
Definition: SSEVec.h:19
bool isMatched(TrackingRecHit const &hit)
int nrows() const override
edm::EDGetTokenT< FTLRecHitCollection > btlRecHitsToken_
float localY(const float mpY) const override
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
const std::vector< const DetLayer * > & allBTLLayers() const
return the BTL DetLayers (barrel), inside-out
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
Definition: DetId.h:17
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
Detector identifier class for the Endcap Timing Layer.
Definition: ETLDetId.h:16
Detector identifier class for the Barrel Timing Layer. The crystal count must start from 0...
Definition: BTLDetId.h:19
ESTransientHandle< T > getTransientHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:141
BTLDetId::CrysLayout crysLayoutFromTopoMode(const int &topoMode)
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
auto makeValid(const U &iOtherHandleType) noexcept(false)
Definition: ValidHandle.h:52
const std::vector< const DetLayer * > & allETLLayers() const
return the ETL DetLayers (endcap), -Z to +Z
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magfieldToken_

◆ fillDescriptions()

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

Definition at line 1195 of file MtdTracksValidation.cc.

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

1195  {
1197 
1198  desc.add<std::string>("folder", "MTD/Tracks");
1199  desc.add<edm::InputTag>("inputTagG", edm::InputTag("generalTracks"));
1200  desc.add<edm::InputTag>("inputTagT", edm::InputTag("trackExtenderWithMTD"));
1201  desc.add<edm::InputTag>("inputTagV", edm::InputTag("offlinePrimaryVertices4D"));
1202  desc.add<edm::InputTag>("inputTagH", edm::InputTag("generatorSmeared"));
1203  desc.add<edm::InputTag>("SimTag", edm::InputTag("mix", "MergedTrackTruth"));
1204  desc.add<edm::InputTag>("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation"));
1205  desc.add<edm::InputTag>("btlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel"));
1206  desc.add<edm::InputTag>("etlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
1207  desc.add<edm::InputTag>("btlRecHits", edm::InputTag("mtdRecHits", "FTLBarrel"));
1208  desc.add<edm::InputTag>("etlRecHits", edm::InputTag("mtdRecHits", "FTLEndcap"));
1209  desc.add<edm::InputTag>("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
1210  desc.add<edm::InputTag>("sigmatmtd", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd"));
1211  desc.add<edm::InputTag>("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0"));
1212  desc.add<edm::InputTag>("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0"));
1213  desc.add<edm::InputTag>("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))
1214  ->setComment("Association between General and MTD Extended tracks");
1215  desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength"));
1216  desc.add<edm::InputTag>("t0SafePID", edm::InputTag("tofPID:t0safe"));
1217  desc.add<edm::InputTag>("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe"));
1218  desc.add<edm::InputTag>("sigmat0PID", edm::InputTag("tofPID:sigmat0"));
1219  desc.add<edm::InputTag>("t0PID", edm::InputTag("tofPID:t0"));
1220  desc.add<edm::InputTag>("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA"));
1221  desc.add<double>("trackMinimumPt", 0.7); // [GeV]
1222  desc.add<double>("trackMaximumBtlEta", 1.5);
1223  desc.add<double>("trackMinimumEtlEta", 1.6);
1224  desc.add<double>("trackMaximumEtlEta", 3.);
1225  desc.addUntracked<bool>("optionalPlots", true);
1226 
1227  descriptions.add("mtdTracksValid", desc);
1228 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ getMatchedTP()

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

Definition at line 1279 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1279  {
1280  auto found = r2s_->find(recoTrack);
1281 
1282  // reco track not matched to any TP
1283  if (found == r2s_->end())
1284  return nullptr;
1285 
1286  //matched TP equal to any TP associated to in time events
1287  for (const auto& tp : found->val) {
1288  if (tp.first->eventId().bunchCrossing() == 0)
1289  return &tp.first;
1290  }
1291 
1292  // reco track not matched to any TP from vertex
1293  return nullptr;
1294 }
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)

◆ isETL()

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

Definition at line 107 of file MtdTracksValidation.cc.

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

Referenced by analyze().

107 { 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 1267 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().

1270  {
1271  bool match = false;
1272  double dR = reco::deltaR(genP.momentum(), trk.momentum());
1273  double genPT = genP.momentum().perp();
1274  match = std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ &&
1275  (std::abs(trk.vz() - zsim) < deltaZcut_ || vtxFake);
1276  return match;
1277 }
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 1230 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1230  {
1231  bool match = false;
1232  if (gp.status() != 1) {
1233  return match;
1234  }
1235  match = charge != 0.f && gp.momentum().perp() > pTcut_ && std::abs(gp.momentum().eta()) < etacutGEN_;
1236  return match;
1237 }
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 1254 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1257  {
1258  bool match = false;
1259  match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ &&
1260  (std::abs(trk.vz() - vtx.z()) <= deltaZcut_ || vtx.isFake());
1261  if (st0 > 0.) {
1262  match = match && std::abs(t0 - vtx.t()) < 3. * st0;
1263  }
1264  return match;
1265 }
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 1239 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1239  {
1240  bool match = false;
1241  if (tp.status() != 1) {
1242  return match;
1243  }
1244  auto x_pv = tp.parentVertex()->position().x();
1245  auto y_pv = tp.parentVertex()->position().y();
1246  auto z_pv = tp.parentVertex()->position().z();
1247 
1248  auto r_pv = std::sqrt(x_pv * x_pv + y_pv * y_pv);
1249 
1250  match = tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_ && r_pv < rBTL_ && z_pv < zETL_;
1251  return match;
1252 }
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

◆ uniqueId()

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

Definition at line 97 of file MtdTracksValidation.cc.

References a, b, x, and y.

Referenced by analyze().

97  {
98  const uint64_t a = static_cast<uint64_t>(x);
99  const uint64_t b = static_cast<uint64_t>(y.rawId());
100 
101  if (x < y.rawId())
102  return (b << 32) | a;
103  else
104  return (a << 32) | b;
105  }
unsigned long long uint64_t
Definition: Time.h:13
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121

Member Data Documentation

◆ btlRecHitsToken_

edm::EDGetTokenT<FTLRecHitCollection> MtdTracksValidation::btlRecHitsToken_
private

Definition at line 143 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ btlSimHitsToken_

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

Definition at line 141 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ builderToken_

edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> MtdTracksValidation::builderToken_
private

Definition at line 163 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ cluDRradius_

constexpr double MtdTracksValidation::cluDRradius_ = 0.05
staticprivate

Definition at line 128 of file MtdTracksValidation.cc.

Referenced by checkAcceptance().

◆ deltaDRcut_

constexpr double MtdTracksValidation::deltaDRcut_ = 0.03
staticprivate

Definition at line 122 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaPTcut_

constexpr double MtdTracksValidation::deltaPTcut_ = 0.05
staticprivate

Definition at line 121 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaZcut_

constexpr double MtdTracksValidation::deltaZcut_ = 0.1
staticprivate

Definition at line 120 of file MtdTracksValidation.cc.

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

◆ depositBTLthreshold_

constexpr double MtdTracksValidation::depositBTLthreshold_ = 1
staticprivate

Definition at line 123 of file MtdTracksValidation.cc.

Referenced by analyze(), and checkAcceptance().

◆ depositETLthreshold_

constexpr double MtdTracksValidation::depositETLthreshold_ = 0.001
staticprivate

Definition at line 124 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ etacutGEN_

constexpr double MtdTracksValidation::etacutGEN_ = 4.
staticprivate

Definition at line 117 of file MtdTracksValidation.cc.

Referenced by mvaGenSel(), and mvaTPSel().

◆ etacutREC_

constexpr double MtdTracksValidation::etacutREC_ = 3.
staticprivate

Definition at line 118 of file MtdTracksValidation.cc.

Referenced by mvaRecSel().

◆ etaMatchCut_

constexpr double MtdTracksValidation::etaMatchCut_ = 0.05
staticprivate

Definition at line 127 of file MtdTracksValidation.cc.

◆ etlRecHitsToken_

edm::EDGetTokenT<FTLRecHitCollection> MtdTracksValidation::etlRecHitsToken_
private

Definition at line 144 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ etlSimHitsToken_

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

Definition at line 142 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ folder_

const std::string MtdTracksValidation::folder_
private

Definition at line 111 of file MtdTracksValidation.cc.

Referenced by bookHistograms().

◆ GenRecTrackToken_

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

Definition at line 133 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ HepMCProductToken_

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

Definition at line 137 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ magfieldToken_

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> MtdTracksValidation::magfieldToken_
private

Definition at line 162 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ meBTLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaMtd_
private

Definition at line 170 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaTot_
private

Definition at line 167 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiMtd_
private

Definition at line 171 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiTot_
private

Definition at line 168 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtMtd_
private

Definition at line 172 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtTot_
private

Definition at line 169 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPDPtvsPtGen_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPDPtvsPtGen_
private

Definition at line 218 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 221 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioGen_
private

Definition at line 209 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioMtd_
private

Definition at line 212 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResMtd_
private

Definition at line 206 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResvsPtMtd_
private

Definition at line 215 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackPtRes_

MonitorElement* MtdTracksValidation::meBTLTrackPtRes_
private

Definition at line 173 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackRPTime_

MonitorElement* MtdTracksValidation::meBTLTrackRPTime_
private

Definition at line 166 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEta2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEta2Mtd_[2]
private

Definition at line 182 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaMtd_[2]
private

Definition at line 179 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaTot_[2]
private

Definition at line 176 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhi2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhi2Mtd_[2]
private

Definition at line 183 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiMtd_[2]
private

Definition at line 180 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiTot_[2]
private

Definition at line 177 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPt2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPt2Mtd_[2]
private

Definition at line 184 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPtMtd_[2]
private

Definition at line 181 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPtTot_[2]
private

Definition at line 178 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2DPtvsPtGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2DPtvsPtGen_
private

Definition at line 220 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2DPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2DPtvsPtMtd_
private

Definition at line 223 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioGen_
private

Definition at line 211 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioMtd_
private

Definition at line 214 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResMtd_
private

Definition at line 208 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResvsPtMtd_
private

Definition at line 217 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtGen_
private

Definition at line 219 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 222 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioGen_
private

Definition at line 210 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioMtd_
private

Definition at line 213 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResMtd_
private

Definition at line 207 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResvsPtMtd_
private

Definition at line 216 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackPtRes_

MonitorElement* MtdTracksValidation::meETLTrackPtRes_
private

Definition at line 185 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackRPTime_

MonitorElement* MtdTracksValidation::meETLTrackRPTime_
private

Definition at line 175 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraBTLeneInCone_

MonitorElement* MtdTracksValidation::meExtraBTLeneInCone_
private

Definition at line 247 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraEtaEtl2Mtd_
private

Definition at line 235 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaMtd_

MonitorElement* MtdTracksValidation::meExtraEtaMtd_
private

Definition at line 234 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderEta_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderEta_
private

Definition at line 248 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderPt_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderPt_
private

Definition at line 249 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTL_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTL_
private

Definition at line 245 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTLmatched_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTLmatched_
private

Definition at line 246 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraPtEtl2Mtd_
private

Definition at line 204 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtMtd_

MonitorElement* MtdTracksValidation::meExtraPtMtd_
private

Definition at line 203 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackEffEtaTot_
private

Definition at line 231 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackEffPtTot_
private

Definition at line 200 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaMtd_
private

Definition at line 233 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaTot_
private

Definition at line 232 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtMtd_
private

Definition at line 202 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtTot_
private

Definition at line 201 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackPullTot_

MonitorElement* MtdTracksValidation::meMVATrackPullTot_
private

Definition at line 242 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackResTot_

MonitorElement* MtdTracksValidation::meMVATrackResTot_
private

Definition at line 241 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackZposResTot_

MonitorElement* MtdTracksValidation::meMVATrackZposResTot_
private

Definition at line 243 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackEtaTot_

MonitorElement* MtdTracksValidation::meTrackEtaTot_
private

Definition at line 230 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaEtl2Mtd_
private

Definition at line 238 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaMtd_
private

Definition at line 237 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaTot_
private

Definition at line 236 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtEtl2Mtd_
private

Definition at line 227 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtMtd_
private

Definition at line 226 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtTot_
private

Definition at line 225 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaMtd_
private

Definition at line 240 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaTot_
private

Definition at line 239 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtMtd_
private

Definition at line 229 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtTot_
private

Definition at line 228 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMVAQual_

MonitorElement* MtdTracksValidation::meTrackMVAQual_
private

Definition at line 196 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackNumHits_

MonitorElement* MtdTracksValidation::meTrackNumHits_
private

Definition at line 194 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackNumHitsNT_

MonitorElement* MtdTracksValidation::meTrackNumHitsNT_
private

Definition at line 195 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPathLenghtvsEta_

MonitorElement* MtdTracksValidation::meTrackPathLenghtvsEta_
private

Definition at line 197 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPtTot_

MonitorElement* MtdTracksValidation::meTrackPtTot_
private

Definition at line 199 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Pid_

MonitorElement* MtdTracksValidation::meTrackSigmat0Pid_
private

Definition at line 191 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0SafePid_

MonitorElement* MtdTracksValidation::meTrackSigmat0SafePid_
private

Definition at line 193 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Src_

MonitorElement* MtdTracksValidation::meTrackSigmat0Src_
private

Definition at line 189 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Pid_

MonitorElement* MtdTracksValidation::meTrackt0Pid_
private

Definition at line 190 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0SafePid_

MonitorElement* MtdTracksValidation::meTrackt0SafePid_
private

Definition at line 192 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Src_

MonitorElement* MtdTracksValidation::meTrackt0Src_
private

Definition at line 188 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTracktmtd_

MonitorElement* MtdTracksValidation::meTracktmtd_
private

Definition at line 187 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mtdgeoToken_

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

Definition at line 159 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ mtdlayerToken_

edm::ESGetToken<MTDDetLayerGeometry, MTDRecoGeometryRecord> MtdTracksValidation::mtdlayerToken_
private

Definition at line 161 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ mtdtopoToken_

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

Definition at line 160 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ particleTableToken_

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

Definition at line 164 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ pathLengthToken_

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

Definition at line 147 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ pTcut_

constexpr double MtdTracksValidation::pTcut_ = 0.7
staticprivate

Definition at line 119 of file MtdTracksValidation.cc.

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

◆ r2s_

const reco::RecoToSimCollection* MtdTracksValidation::r2s_
private

Definition at line 130 of file MtdTracksValidation.cc.

Referenced by analyze(), and getMatchedTP().

◆ rBTL_

constexpr double MtdTracksValidation::rBTL_ = 110.0
staticprivate

Definition at line 125 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().

◆ recoToSimAssociationToken_

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

Definition at line 140 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecTrackToken_

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

Definition at line 134 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecVertexToken_

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

Definition at line 135 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ s2r_

const reco::SimToRecoCollection* MtdTracksValidation::s2r_
private

Definition at line 131 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ Sigmat0PidToken_

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

Definition at line 154 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SafePidToken_

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

Definition at line 156 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SrcToken_

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

Definition at line 152 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmatmtdToken_

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

Definition at line 150 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ simToRecoAssociationToken_

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

Definition at line 139 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0PidToken_

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

Definition at line 153 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SafePidToken_

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

Definition at line 155 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SrcToken_

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

Definition at line 151 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ tmtdToken_

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

Definition at line 149 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackAssocToken_

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

Definition at line 146 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackingParticleCollectionToken_

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

Definition at line 138 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackMaxBtlEta_

const float MtdTracksValidation::trackMaxBtlEta_
private

Definition at line 113 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMaxEtlEta_

const float MtdTracksValidation::trackMaxEtlEta_
private

Definition at line 115 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinEtlEta_

const float MtdTracksValidation::trackMinEtlEta_
private

Definition at line 114 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinPt_

const float MtdTracksValidation::trackMinPt_
private

Definition at line 112 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMVAQualToken_

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

Definition at line 157 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ zETL_

constexpr double MtdTracksValidation::zETL_ = 290.0
staticprivate

Definition at line 126 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().