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 mvaTPSelAll (const TrackingParticle &)
 
const bool mvaTPSelLV (const TrackingParticle &)
 
const unsigned long int uniqueId (const uint32_t x, const EncodedEventId &y)
 

Private Attributes

edm::EDGetTokenT< FTLRecHitCollectionbtlRecHitsToken_
 
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordbuilderToken_
 
edm::EDGetTokenT< FTLRecHitCollectionetlRecHitsToken_
 
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_
 
MonitorElementmeTrackOutermostHitR_
 
MonitorElementmeTrackOutermostHitZ_
 
MonitorElementmeTrackPathLenghtvsEta_
 
MonitorElementmeTrackPtTot_
 
MonitorElementmeTrackSigmat0Pid_
 
MonitorElementmeTrackSigmat0SafePid_
 
MonitorElementmeTrackSigmat0Src_
 
MonitorElementmeTrackSigmaTof_ [3]
 
MonitorElementmeTrackSigmaTofvsP_ [3]
 
MonitorElementmeTrackt0Pid_
 
MonitorElementmeTrackt0SafePid_
 
MonitorElementmeTrackt0Src_
 
MonitorElementmeTracktmtd_
 
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecordmtdgeoToken_
 
edm::ESGetToken< MTDDetLayerGeometry, MTDRecoGeometryRecordmtdlayerToken_
 
edm::ESGetToken< MTDTopology, MTDTopologyRcdmtdtopoToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > outermostHitPositionToken_
 
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< edm::ValueMap< float > > SigmaTofKToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofPiToken_
 
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofPToken_
 
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< reco::TPToSimCollectionMtdtp2SimAssociationMapToken_
 
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 262 of file MtdTracksValidation.cc.

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

263  : folder_(iConfig.getParameter<std::string>("folder")),
264  trackMinPt_(iConfig.getParameter<double>("trackMinimumPt")),
265  trackMaxBtlEta_(iConfig.getParameter<double>("trackMaximumBtlEta")),
266  trackMinEtlEta_(iConfig.getParameter<double>("trackMinimumEtlEta")),
267  trackMaxEtlEta_(iConfig.getParameter<double>("trackMaximumEtlEta")) {
268  GenRecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagG"));
269  RecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagT"));
270  RecVertexToken_ = consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("inputTagV"));
271  HepMCProductToken_ = consumes<edm::HepMCProduct>(iConfig.getParameter<edm::InputTag>("inputTagH"));
273  consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
275  consumes<reco::SimToRecoCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
277  consumes<reco::RecoToSimCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
279  consumes<reco::TPToSimCollectionMtd>(iConfig.getParameter<edm::InputTag>("tp2SimAssociationMapTag"));
280  btlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("btlRecHits"));
281  etlRecHitsToken_ = consumes<FTLRecHitCollection>(iConfig.getParameter<edm::InputTag>("etlRecHits"));
282  trackAssocToken_ = consumes<edm::ValueMap<int>>(iConfig.getParameter<edm::InputTag>("trackAssocSrc"));
283  pathLengthToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("pathLengthSrc"));
284  tmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("tmtd"));
285  SigmatmtdToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmatmtd"));
286  t0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0Src"));
287  Sigmat0SrcToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0Src"));
288  t0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0PID"));
289  Sigmat0PidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0PID"));
290  t0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("t0SafePID"));
291  Sigmat0SafePidToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmat0SafePID"));
292  SigmaTofPiToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmaTofPi"));
293  SigmaTofKToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmaTofK"));
294  SigmaTofPToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("sigmaTofP"));
295  trackMVAQualToken_ = consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("trackMVAQual"));
297  consumes<edm::ValueMap<float>>(iConfig.getParameter<edm::InputTag>("outermostHitPositionSrc"));
298  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
299  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
300  mtdlayerToken_ = esConsumes<MTDDetLayerGeometry, MTDRecoGeometryRecord>();
301  magfieldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
302  builderToken_ = esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
303  particleTableToken_ = esConsumes<HepPDT::ParticleDataTable, edm::DefaultRecord>();
304 }
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< edm::ValueMap< float > > outermostHitPositionToken_
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
edm::EDGetTokenT< reco::TPToSimCollectionMtd > tp2SimAssociationMapToken_
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofPToken_
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< edm::ValueMap< float > > SigmaTofPiToken_
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofKToken_
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 306 of file MtdTracksValidation.cc.

306 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 309 of file MtdTracksValidation.cc.

References funct::abs(), accept(), ALCARECOTkAlJpsiMuMu_cff::charge, checkAcceptance(), angle_units::operators::convertMmToCm(), angle_units::operators::convertRadToDeg(), deltaZcut_, l1ctLayer1_cff::dZ, SiPixelPhase1Clusters_cfi::e3, 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_, meTrackOutermostHitR_, meTrackOutermostHitZ_, meTrackPathLenghtvsEta_, meTrackPtTot_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackSigmaTof_, meTrackSigmaTofvsP_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, mvaGenRecMatch(), mvaGenSel(), mvaRecSel(), mvaTPSelAll(), mvaTPSelLV(), ETLDetId::nDisc(), outermostHitPositionToken_, LHEGenericFilter_cfi::ParticleID, particleTableToken_, pathLengthToken_, r2s_, recoToSimAssociationToken_, RecTrackToken_, RecVertexToken_, s2r_, Sigmat0PidToken_, Sigmat0SafePidToken_, Sigmat0SrcToken_, SigmatmtdToken_, SigmaTofKToken_, SigmaTofPiToken_, SigmaTofPToken_, simToRecoAssociationToken_, t0PidToken_, t0SafePidToken_, t0SrcToken_, tmtdToken_, tp2SimAssociationMapToken_, HLT_2024v13_cff::track, trackAssocToken_, trackMaxBtlEta_, trackMaxEtlEta_, trackMinEtlEta_, trackMinPt_, trackMVAQualToken_, and MTDDetId::zside().

309  {
310  using namespace edm;
311  using namespace geant_units::operators;
312  using namespace std;
313 
314  auto GenRecTrackHandle = makeValid(iEvent.getHandle(GenRecTrackToken_));
315  auto RecVertexHandle = makeValid(iEvent.getHandle(RecVertexToken_));
316 
317  std::unordered_map<uint32_t, MTDHit> m_btlHits;
318  std::unordered_map<uint32_t, MTDHit> m_etlHits;
319  std::unordered_map<uint32_t, std::set<unsigned long int>> m_btlTrkPerCell;
320  std::unordered_map<uint32_t, std::set<unsigned long int>> m_etlTrkPerCell;
321  const auto& tp2SimAssociationMap = iEvent.get(tp2SimAssociationMapToken_);
322 
323  const auto& tMtd = iEvent.get(tmtdToken_);
324  const auto& SigmatMtd = iEvent.get(SigmatmtdToken_);
325  const auto& t0Src = iEvent.get(t0SrcToken_);
326  const auto& Sigmat0Src = iEvent.get(Sigmat0SrcToken_);
327  const auto& t0Pid = iEvent.get(t0PidToken_);
328  const auto& Sigmat0Pid = iEvent.get(Sigmat0PidToken_);
329  const auto& t0Safe = iEvent.get(t0SafePidToken_);
330  const auto& Sigmat0Safe = iEvent.get(Sigmat0SafePidToken_);
331  const auto& SigmaTofPi = iEvent.get(SigmaTofPiToken_);
332  const auto& SigmaTofK = iEvent.get(SigmaTofKToken_);
333  const auto& SigmaTofP = iEvent.get(SigmaTofPToken_);
334  const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_);
335  const auto& trackAssoc = iEvent.get(trackAssocToken_);
336  const auto& pathLength = iEvent.get(pathLengthToken_);
337  const auto& outermostHitPosition = iEvent.get(outermostHitPositionToken_);
338 
339  const auto& primRecoVtx = *(RecVertexHandle.product()->begin());
340 
341  // generator level information (HepMC format)
342  auto GenEventHandle = makeValid(iEvent.getHandle(HepMCProductToken_));
343  const HepMC::GenEvent* mc = GenEventHandle->GetEvent();
344  double zsim = convertMmToCm((*(mc->vertices_begin()))->position().z());
345  double tsim = (*(mc->vertices_begin()))->position().t() * CLHEP::mm / CLHEP::c_light;
346 
347  auto pdt = iSetup.getHandle(particleTableToken_);
348  const HepPDT::ParticleDataTable* pdTable = pdt.product();
349 
350  auto simToRecoH = makeValid(iEvent.getHandle(simToRecoAssociationToken_));
351  s2r_ = simToRecoH.product();
352 
353  auto recoToSimH = makeValid(iEvent.getHandle(recoToSimAssociationToken_));
354  r2s_ = recoToSimH.product();
355 
356  unsigned int index = 0;
357 
358  // flag to select events with reco vertex close to true simulated primary vertex, or PV fake (particle guns)
359  const bool isGoodVtx = std::abs(primRecoVtx.z() - zsim) < deltaZcut_ || primRecoVtx.isFake();
360 
361  // --- Loop over all RECO tracks ---
362  for (const auto& trackGen : *GenRecTrackHandle) {
363  const reco::TrackRef trackref(iEvent.getHandle(GenRecTrackToken_), index);
364  index++;
365 
366  if (trackAssoc[trackref] == -1) {
367  LogInfo("mtdTracks") << "Extended track not associated";
368  continue;
369  }
370 
371  const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecTrackToken_), trackAssoc[trackref]);
372  const reco::Track& track = *mtdTrackref;
373 
374  bool isBTL = false;
375  bool isETL = false;
376  bool twoETLdiscs = false;
377  bool noCrack = std::abs(trackGen.eta()) < trackMaxBtlEta_ || std::abs(trackGen.eta()) > trackMinEtlEta_;
378 
379  if (track.pt() >= trackMinPt_ && std::abs(track.eta()) <= trackMaxEtlEta_) {
380  meTracktmtd_->Fill(tMtd[trackref]);
381  if (std::round(SigmatMtd[trackref] - Sigmat0Pid[trackref]) != 0) {
382  LogWarning("mtdTracks")
383  << "TimeError associated to refitted track is different from TimeError stored in tofPID "
384  "sigmat0 ValueMap: this should not happen";
385  }
386 
387  meTrackt0Src_->Fill(t0Src[trackref]);
388  meTrackSigmat0Src_->Fill(Sigmat0Src[trackref]);
389 
390  meTrackt0Pid_->Fill(t0Pid[trackref]);
391  meTrackSigmat0Pid_->Fill(Sigmat0Pid[trackref]);
392  meTrackt0SafePid_->Fill(t0Safe[trackref]);
393  meTrackSigmat0SafePid_->Fill(Sigmat0Safe[trackref]);
394  meTrackMVAQual_->Fill(mtdQualMVA[trackref]);
395 
396  meTrackSigmaTof_[0]->Fill(SigmaTofPi[trackref] * 1e3); //save as ps
397  meTrackSigmaTof_[1]->Fill(SigmaTofK[trackref] * 1e3);
398  meTrackSigmaTof_[2]->Fill(SigmaTofP[trackref] * 1e3);
399  meTrackSigmaTofvsP_[0]->Fill(track.p(), SigmaTofPi[trackref] * 1e3);
400  meTrackSigmaTofvsP_[1]->Fill(track.p(), SigmaTofK[trackref] * 1e3);
401  meTrackSigmaTofvsP_[2]->Fill(track.p(), SigmaTofP[trackref] * 1e3);
402 
403  meTrackPathLenghtvsEta_->Fill(std::abs(track.eta()), pathLength[trackref]);
404 
405  if (std::abs(track.eta()) < trackMaxBtlEta_) {
406  // --- all BTL tracks (with and without hit in MTD) ---
410 
411  bool MTDBtl = false;
412  int numMTDBtlvalidhits = 0;
413  for (const auto hit : track.recHits()) {
414  if (hit->isValid() == false)
415  continue;
416  MTDDetId Hit = hit->geographicalId();
417  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 1)) {
418  MTDBtl = true;
419  numMTDBtlvalidhits++;
420  }
421  }
422  meTrackNumHits_->Fill(numMTDBtlvalidhits);
423 
424  // --- keeping only tracks with last hit in MTD ---
425  if (MTDBtl == true) {
426  isBTL = true;
431  meBTLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
432  }
433  if (isBTL && Sigmat0Safe[trackref] < 0.) {
434  meTrackNumHitsNT_->Fill(numMTDBtlvalidhits);
435  }
436  } //loop over (geometrical) BTL tracks
437 
438  else {
439  // --- all ETL tracks (with and without hit in MTD) ---
440  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
441  meETLTrackEffEtaTot_[0]->Fill(track.eta());
442  meETLTrackEffPhiTot_[0]->Fill(track.phi());
443  meETLTrackEffPtTot_[0]->Fill(track.pt());
444  }
445 
446  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
447  meETLTrackEffEtaTot_[1]->Fill(track.eta());
448  meETLTrackEffPhiTot_[1]->Fill(track.phi());
449  meETLTrackEffPtTot_[1]->Fill(track.pt());
450  }
451 
452  bool MTDEtlZnegD1 = false;
453  bool MTDEtlZnegD2 = false;
454  bool MTDEtlZposD1 = false;
455  bool MTDEtlZposD2 = false;
456  int numMTDEtlvalidhits = 0;
457  for (const auto hit : track.recHits()) {
458  if (hit->isValid() == false)
459  continue;
460  MTDDetId Hit = hit->geographicalId();
461  if ((Hit.det() == 6) && (Hit.subdetId() == 1) && (Hit.mtdSubDetector() == 2)) {
462  isETL = true;
463  ETLDetId ETLHit = hit->geographicalId();
464 
465  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 1)) {
466  MTDEtlZnegD1 = true;
468  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
469  numMTDEtlvalidhits++;
470  }
471  if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 2)) {
472  MTDEtlZnegD2 = true;
474  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
475  numMTDEtlvalidhits++;
476  }
477  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 1)) {
478  MTDEtlZposD1 = true;
480  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
481  numMTDEtlvalidhits++;
482  }
483  if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 2)) {
484  MTDEtlZposD2 = true;
486  meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt());
487  numMTDEtlvalidhits++;
488  }
489  }
490  }
491  meTrackNumHits_->Fill(-numMTDEtlvalidhits);
492  if (isETL && Sigmat0Safe[trackref] < 0.) {
493  meTrackNumHitsNT_->Fill(-numMTDEtlvalidhits);
494  }
495 
496  // --- keeping only tracks with last hit in MTD ---
497  if ((track.eta() < -trackMinEtlEta_) && (track.eta() > -trackMaxEtlEta_)) {
498  twoETLdiscs = (MTDEtlZnegD1 == true) && (MTDEtlZnegD2 == true);
499  if ((MTDEtlZnegD1 == true) || (MTDEtlZnegD2 == true)) {
500  meETLTrackEffEtaMtd_[0]->Fill(track.eta());
501  meETLTrackEffPhiMtd_[0]->Fill(track.phi());
502  meETLTrackEffPtMtd_[0]->Fill(track.pt());
503  if (twoETLdiscs) {
504  meETLTrackEffEta2Mtd_[0]->Fill(track.eta());
505  meETLTrackEffPhi2Mtd_[0]->Fill(track.phi());
506  meETLTrackEffPt2Mtd_[0]->Fill(track.pt());
507  }
508  }
509  }
510  if ((track.eta() > trackMinEtlEta_) && (track.eta() < trackMaxEtlEta_)) {
511  twoETLdiscs = (MTDEtlZposD1 == true) && (MTDEtlZposD2 == true);
512  if ((MTDEtlZposD1 == true) || (MTDEtlZposD2 == true)) {
513  meETLTrackEffEtaMtd_[1]->Fill(track.eta());
514  meETLTrackEffPhiMtd_[1]->Fill(track.phi());
515  meETLTrackEffPtMtd_[1]->Fill(track.pt());
516  if (twoETLdiscs) {
517  meETLTrackEffEta2Mtd_[1]->Fill(track.eta());
518  meETLTrackEffPhi2Mtd_[1]->Fill(track.phi());
519  meETLTrackEffPt2Mtd_[1]->Fill(track.pt());
520  }
521  }
522  }
523  }
524 
525  if (isBTL)
526  meTrackOutermostHitR_->Fill(outermostHitPosition[trackref]);
527  if (isETL)
528  meTrackOutermostHitZ_->Fill(std::abs(outermostHitPosition[trackref]));
529 
530  LogDebug("MtdTracksValidation") << "Track p/pt = " << track.p() << " " << track.pt() << " eta " << track.eta()
531  << " BTL " << isBTL << " ETL " << isETL << " 2disks " << twoETLdiscs;
532 
533  // TrackingParticle based matching
534 
535  const reco::TrackBaseRef trkrefb(trackref);
536  auto tp_info = getMatchedTP(trkrefb);
537 
538  meTrackPtTot_->Fill(trackGen.pt());
539  meTrackEtaTot_->Fill(std::abs(trackGen.eta()));
540  if (tp_info != nullptr && mvaTPSelAll(**tp_info)) {
541  if (track.pt() < 12.) {
542  if (isBTL) {
543  meBTLTrackMatchedTPPtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
544  std::abs(trackGen.pt() - (*tp_info)->pt()));
545  meBTLTrackMatchedTPPtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
546  meBTLTrackMatchedTPPtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
548  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
549  meBTLTrackMatchedTPDPtvsPtGen_->Fill((*tp_info)->pt(),
550  (trackGen.pt() - (*tp_info)->pt()) / (*tp_info)->pt());
551  meBTLTrackMatchedTPDPtvsPtMtd_->Fill((*tp_info)->pt(), (track.pt() - (*tp_info)->pt()) / (*tp_info)->pt());
552  }
553  if (isETL && !twoETLdiscs) {
554  meETLTrackMatchedTPPtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
555  std::abs(trackGen.pt() - (*tp_info)->pt()));
556  meETLTrackMatchedTPPtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
557  meETLTrackMatchedTPPtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
559  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
560  meETLTrackMatchedTPDPtvsPtGen_->Fill((*tp_info)->pt(),
561  (trackGen.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
562  meETLTrackMatchedTPDPtvsPtMtd_->Fill((*tp_info)->pt(),
563  (track.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
564  }
565  if (isETL && twoETLdiscs) {
566  meETLTrackMatchedTP2PtResMtd_->Fill(std::abs(track.pt() - (*tp_info)->pt()) /
567  std::abs(trackGen.pt() - (*tp_info)->pt()));
568  meETLTrackMatchedTP2PtRatioGen_->Fill(trackGen.pt() / (*tp_info)->pt());
569  meETLTrackMatchedTP2PtRatioMtd_->Fill(track.pt() / (*tp_info)->pt());
571  (*tp_info)->pt(), std::abs(track.pt() - (*tp_info)->pt()) / std::abs(trackGen.pt() - (*tp_info)->pt()));
572  meETLTrackMatchedTP2DPtvsPtGen_->Fill((*tp_info)->pt(),
573  (trackGen.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
574  meETLTrackMatchedTP2DPtvsPtMtd_->Fill((*tp_info)->pt(),
575  (track.pt() - (*tp_info)->pt()) / ((*tp_info)->pt()));
576  }
577  }
578  auto simClustersRefs = tp2SimAssociationMap.find(*tp_info);
579  const bool withMTD = (simClustersRefs != tp2SimAssociationMap.end());
580  if (noCrack) {
581  meTrackMatchedTPEffPtTot_->Fill(trackGen.pt());
582  if (withMTD) {
583  meTrackMatchedTPmtdEffPtTot_->Fill(trackGen.pt());
584  }
585  }
586  meTrackMatchedTPEffEtaTot_->Fill(std::abs(trackGen.eta()));
587  if (withMTD) {
588  meTrackMatchedTPmtdEffEtaTot_->Fill(std::abs(trackGen.eta()));
589  }
590  if (isBTL || isETL) {
591  if (noCrack) {
592  meTrackMatchedTPEffPtMtd_->Fill(trackGen.pt());
593  if (isBTL || twoETLdiscs) {
594  meTrackMatchedTPEffPtEtl2Mtd_->Fill(trackGen.pt());
595  }
596  if (withMTD) {
597  meTrackMatchedTPmtdEffPtMtd_->Fill(trackGen.pt());
598  }
599  }
600  meTrackMatchedTPEffEtaMtd_->Fill(std::abs(trackGen.eta()));
601  if (isBTL || twoETLdiscs) {
602  meTrackMatchedTPEffEtaEtl2Mtd_->Fill(std::abs(trackGen.eta()));
603  }
604  if (withMTD) {
605  meTrackMatchedTPmtdEffEtaMtd_->Fill(std::abs(trackGen.eta()));
606  }
607  }
608 
609  // detailed extrapolation check only on tracks associated to TP from signal event
610  if (!mvaTPSelLV(**tp_info)) {
611  continue;
612  }
613  size_t nlayers(0);
614  float extrho(0.);
615  float exteta(0.);
616  float extphi(0.);
617  float selvar(0.);
618  auto accept = checkAcceptance(trackGen, iEvent, iSetup, nlayers, extrho, exteta, extphi, selvar);
619  if (accept.first && std::abs(exteta) < trackMaxBtlEta_) {
621  meExtraBTLeneInCone_->Fill(selvar);
622  }
623  if (accept.second) {
624  if (std::abs(exteta) < trackMaxBtlEta_) {
626  }
627  if (noCrack) {
628  meExtraPtMtd_->Fill(trackGen.pt());
629  if (nlayers == 2) {
630  meExtraPtEtl2Mtd_->Fill(trackGen.pt());
631  }
632  }
633  meExtraEtaMtd_->Fill(std::abs(trackGen.eta()));
634  if (nlayers == 2) {
635  meExtraEtaEtl2Mtd_->Fill(std::abs(trackGen.eta()));
636  }
637  if (accept.first && accept.second && !(isBTL || isETL)) {
638  edm::LogInfo("MtdTracksValidation")
639  << "MtdTracksValidation: extender fail in " << iEvent.id().run() << " " << iEvent.id().event()
640  << " pt= " << trackGen.pt() << " eta= " << trackGen.eta();
641  meExtraMTDfailExtenderEta_->Fill(std::abs(trackGen.eta()));
642  if (noCrack) {
643  meExtraMTDfailExtenderPt_->Fill(trackGen.pt());
644  }
645  }
646  }
647 
648  } // TP matching
649  }
650 
651  if (isGoodVtx) {
652  const bool vtxFake = primRecoVtx.isFake();
653 
654  if (mvaRecSel(trackGen, primRecoVtx, t0Safe[trackref], Sigmat0Safe[trackref])) {
655  // reco-gen matching used for MVA quality flag
656 
657  if (noCrack) {
658  meMVATrackEffPtTot_->Fill(trackGen.pt());
659  }
660  meMVATrackEffEtaTot_->Fill(std::abs(trackGen.eta()));
661 
662  double dZ = trackGen.vz() - zsim;
663  double dT(-9999.);
664  double pullT(-9999.);
665  if (Sigmat0Safe[trackref] != -1.) {
666  dT = t0Safe[trackref] - tsim;
667  pullT = dT / Sigmat0Safe[trackref];
668  }
669  for (const auto& genP : mc->particle_range()) {
670  // select status 1 genParticles and match them to the reconstructed track
671 
672  float charge = pdTable->particle(HepPDT::ParticleID(genP->pdg_id())) != nullptr
673  ? pdTable->particle(HepPDT::ParticleID(genP->pdg_id()))->charge()
674  : 0.f;
675  if (mvaGenSel(*genP, charge)) {
676  if (mvaGenRecMatch(*genP, zsim, trackGen, vtxFake)) {
678  if (noCrack) {
679  meMVATrackMatchedEffPtTot_->Fill(trackGen.pt());
680  }
681  meMVATrackMatchedEffEtaTot_->Fill(std::abs(trackGen.eta()));
682  if (isBTL || isETL) {
683  meMVATrackResTot_->Fill(dT);
684  meMVATrackPullTot_->Fill(pullT);
685  if (noCrack) {
686  meMVATrackMatchedEffPtMtd_->Fill(trackGen.pt());
687  }
688  meMVATrackMatchedEffEtaMtd_->Fill(std::abs(trackGen.eta()));
689  }
690  break;
691  }
692  }
693  }
694  }
695  } // MC truth matich analysis for good PV
696  } //RECO tracks loop
697 }
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_
const bool mvaTPSelAll(const TrackingParticle &)
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]
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
MonitorElement * meExtraBTLeneInCone_
edm::EDGetTokenT< edm::ValueMap< float > > outermostHitPositionToken_
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
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
MonitorElement * meETLTrackMatchedTP2PtRatioGen_
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
MonitorElement * meETLTrackEffPhiMtd_[2]
edm::EDGetTokenT< reco::TPToSimCollectionMtd > tp2SimAssociationMapToken_
void Fill(long long x)
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofPToken_
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_
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 * meTrackSigmaTof_[3]
MonitorElement * meMVATrackMatchedEffEtaTot_
MonitorElement * meTrackOutermostHitZ_
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_
MonitorElement * meTrackNumHitsNT_
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofPiToken_
Log< level::Info, false > LogInfo
constexpr NumType convertMmToCm(NumType millimeters)
Definition: angle_units.h:44
edm::EDGetTokenT< reco::SimToRecoCollection > simToRecoAssociationToken_
MonitorElement * meTrackOutermostHitR_
MonitorElement * meTrackEtaTot_
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
MonitorElement * meBTLTrackMatchedTPDPtvsPtGen_
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
MonitorElement * meTrackSigmat0SafePid_
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofKToken_
MonitorElement * meETLTrackEffEtaMtd_[2]
int zside() const
Definition: MTDDetId.h:61
MonitorElement * meTrackSigmat0Pid_
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:164
const bool mvaGenRecMatch(const HepMC::GenParticle &, const double &, const reco::TrackBase &, const bool &)
MonitorElement * meETLTrackMatchedTPPtRatioGen_
MonitorElement * meExtraPtMtd_
const bool mvaTPSelLV(const TrackingParticle &)
MonitorElement * meExtraPhiAtBTLmatched_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
MonitorElement * meBTLTrackMatchedTPPtRatioGen_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meExtraPtEtl2Mtd_
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_
MonitorElement * meTrackSigmaTofvsP_[3]
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 887 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_, meTrackOutermostHitR_, meTrackOutermostHitZ_, meTrackPathLenghtvsEta_, meTrackPtTot_, meTrackSigmat0Pid_, meTrackSigmat0SafePid_, meTrackSigmat0Src_, meTrackSigmaTof_, meTrackSigmaTofvsP_, meTrackt0Pid_, meTrackt0SafePid_, meTrackt0Src_, meTracktmtd_, and dqm::implementation::NavigatorBase::setCurrentFolder().

887  {
888  ibook.setCurrentFolder(folder_);
889 
890  // histogram booking
891  meBTLTrackRPTime_ = ibook.book1D("TrackBTLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
892  meBTLTrackEffEtaTot_ = ibook.book1D("TrackBTLEffEtaTot", "Track efficiency vs eta (Tot);#eta_{RECO}", 100, -1.6, 1.6);
894  ibook.book1D("TrackBTLEffPhiTot", "Track efficiency vs phi (Tot);#phi_{RECO} [rad]", 100, -3.2, 3.2);
895  meBTLTrackEffPtTot_ = ibook.book1D("TrackBTLEffPtTot", "Track efficiency vs pt (Tot);pt_{RECO} [GeV]", 50, 0, 10);
896  meBTLTrackEffEtaMtd_ = ibook.book1D("TrackBTLEffEtaMtd", "Track efficiency vs eta (Mtd);#eta_{RECO}", 100, -1.6, 1.6);
898  ibook.book1D("TrackBTLEffPhiMtd", "Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2);
899  meBTLTrackEffPtMtd_ = ibook.book1D("TrackBTLEffPtMtd", "Track efficiency vs pt (Mtd);pt_{RECO} [GeV]", 50, 0, 10);
901  ibook.book1D("TrackBTLPtRes", "Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
902  meETLTrackRPTime_ = ibook.book1D("TrackETLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
904  ibook.book1D("TrackETLEffEtaTotZneg", "Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
906  ibook.book1D("TrackETLEffEtaTotZpos", "Track efficiency vs eta (Tot) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
908  ibook.book1D("TrackETLEffPhiTotZneg", "Track efficiency vs phi (Tot) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
910  ibook.book1D("TrackETLEffPhiTotZpos", "Track efficiency vs phi (Tot) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
912  ibook.book1D("TrackETLEffPtTotZneg", "Track efficiency vs pt (Tot) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
914  ibook.book1D("TrackETLEffPtTotZpos", "Track efficiency vs pt (Tot) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
916  ibook.book1D("TrackETLEffEtaMtdZneg", "Track efficiency vs eta (Mtd) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
918  ibook.book1D("TrackETLEffEtaMtdZpos", "Track efficiency vs eta (Mtd) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
920  ibook.book1D("TrackETLEffPhiMtdZneg", "Track efficiency vs phi (Mtd) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
922  ibook.book1D("TrackETLEffPhiMtdZpos", "Track efficiency vs phi (Mtd) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
924  ibook.book1D("TrackETLEffPtMtdZneg", "Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
926  ibook.book1D("TrackETLEffPtMtdZpos", "Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
928  ibook.book1D("TrackETLEffEta2MtdZneg", "Track efficiency vs eta (Mtd 2 hit) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
930  ibook.book1D("TrackETLEffEta2MtdZpos", "Track efficiency vs eta (Mtd 2 hit) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
931  meETLTrackEffPhi2Mtd_[0] = ibook.book1D(
932  "TrackETLEffPhi2MtdZneg", "Track efficiency vs phi (Mtd 2 hit) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
933  meETLTrackEffPhi2Mtd_[1] = ibook.book1D(
934  "TrackETLEffPhi2MtdZpos", "Track efficiency vs phi (Mtd 2 hit) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
936  ibook.book1D("TrackETLEffPt2MtdZneg", "Track efficiency vs pt (Mtd 2 hit) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
938  ibook.book1D("TrackETLEffPt2MtdZpos", "Track efficiency vs pt (Mtd 2 hit) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
940  ibook.book1D("TrackETLPtRes", "Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
941 
942  meTracktmtd_ = ibook.book1D("Tracktmtd", "Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16);
943  meTrackt0Src_ = ibook.book1D("Trackt0Src", "Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5);
945  ibook.book1D("TrackSigmat0Src", "Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1);
946 
947  meTrackt0Pid_ = ibook.book1D("Trackt0Pid", "Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1);
948  meTrackSigmat0Pid_ = ibook.book1D("TrackSigmat0Pid", "Sigmat0 as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
949  meTrackt0SafePid_ = ibook.book1D("Trackt0SafePID", "Track t0 Safe as stored in TofPid;t0 [ns]", 100, -1, 1);
951  ibook.book1D("TrackSigmat0SafePID", "Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
952  meTrackNumHits_ = ibook.book1D("TrackNumHits", "Number of valid MTD hits per track ; Number of hits", 10, -5, 5);
953  meTrackNumHitsNT_ = ibook.book1D(
954  "TrackNumHitsNT", "Number of valid MTD hits per track no time associated; Number of hits", 10, -5, 5);
955  meTrackMVAQual_ = ibook.book1D("TrackMVAQual", "Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1);
957  "TrackPathLenghtvsEta", "MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0, "S");
958 
959  meTrackOutermostHitR_ = ibook.book1D("TrackOutermostHitR", "Track outermost hit position R; R[cm]", 40, 0, 120.);
960  meTrackOutermostHitZ_ = ibook.book1D("TrackOutermostHitZ", "Track outermost hit position Z; z[cm]", 100, 0, 300.);
961 
962  meTrackSigmaTof_[0] =
963  ibook.book1D("TrackSigmaTof_Pion", "Sigma(TOF) for pion hypothesis; #sigma_{t0} [ps]", 10, 0, 5);
964  meTrackSigmaTof_[1] =
965  ibook.book1D("TrackSigmaTof_Kaon", "Sigma(TOF) for kaon hypothesis; #sigma_{t0} [ps]", 25, 0, 25);
966  meTrackSigmaTof_[2] =
967  ibook.book1D("TrackSigmaTof_Proton", "Sigma(TOF) for proton hypothesis; #sigma_{t0} [ps]", 50, 0, 50);
968 
969  meTrackSigmaTofvsP_[0] = ibook.bookProfile("TrackSigmaTofvsP_Pion",
970  "Sigma(TOF) for pion hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
971  20,
972  0,
973  10.,
974  0,
975  50.,
976  "S");
977  meTrackSigmaTofvsP_[1] = ibook.bookProfile("TrackSigmaTofvsP_Kaon",
978  "Sigma(TOF) for kaon hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
979  20,
980  0,
981  10.,
982  0,
983  50.,
984  "S");
985  meTrackSigmaTofvsP_[2] = ibook.bookProfile("TrackSigmaTofvsP_Proton",
986  "Sigma(TOF) for proton hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
987  20,
988  0,
989  10.,
990  0,
991  50.,
992  "S");
993 
994  meMVATrackEffPtTot_ = ibook.book1D("MVAEffPtTot", "Pt of tracks associated to LV; track pt [GeV] ", 110, 0., 11.);
996  ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to GEN; track pt [GeV] ", 110, 0., 11.);
998  "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to GEN with time; track pt [GeV] ", 110, 0., 11.);
999 
1000  meExtraPtMtd_ = ibook.book1D("ExtraPtMtd", "Pt of tracks extrapolated to hits; track pt [GeV] ", 110, 0., 11.);
1002  ibook.book1D("ExtraPtEtl2Mtd", "Pt of tracks extrapolated to hits, 2 ETL layers; track pt [GeV] ", 110, 0., 11.);
1003 
1004  meTrackPtTot_ = ibook.book1D("TrackPtTot", "Pt of tracks ; track pt [GeV] ", 110, 0., 11.);
1006  ibook.book1D("MatchedTPEffPtTot", "Pt of tracks matched to TP; track pt [GeV] ", 110, 0., 11.);
1008  ibook.book1D("MatchedTPEffPtMtd", "Pt of tracks matched to TP with time; track pt [GeV] ", 110, 0., 11.);
1010  "MatchedTPEffPtEtl2Mtd", "Pt of tracks matched to TP with time, 2 ETL hits; track pt [GeV] ", 110, 0., 11.);
1011 
1013  "TrackMatchedTPBTLPtResMtd",
1014  "Pt resolution of tracks matched to TP-BTL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1015  100,
1016  0.,
1017  4.);
1019  "TrackMatchedTPETLPtResMtd",
1020  "Pt resolution of tracks matched to TP-ETL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1021  100,
1022  0.,
1023  4.);
1025  "TrackMatchedTPETL2PtResMtd",
1026  "Pt resolution of tracks matched to TP-ETL 2hits ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1027  100,
1028  0.,
1029  4.);
1031  "TrackMatchedTPBTLPtRatioGen", "Pt ratio of Gentracks (BTL) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1033  "TrackMatchedTPETLPtRatioGen", "Pt ratio of Gentracks (ETL 1hit) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1035  "TrackMatchedTPETL2PtRatioGen", "Pt ratio of Gentracks (ETL 2hits) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1036  meBTLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPBTLPtRatioMtd",
1037  "Pt ratio of tracks matched to TP-BTL hits ;pT_{MTDtrack}/pT_{truth} ",
1038  100,
1039  0.9,
1040  1.1);
1041  meETLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPETLPtRatioMtd",
1042  "Pt ratio of tracks matched to TP-ETL hits ;pT_{MTDtrack}/pT_{truth} ",
1043  100,
1044  0.9,
1045  1.1);
1047  ibook.book1D("TrackMatchedTPETL2PtRatioMtd",
1048  "Pt ratio of tracks matched to TP-ETL 2hits ;pT_{MTDtrack}/pT_{truth} ",
1049  100,
1050  0.9,
1051  1.1);
1052  meBTLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLPtResvsPtMtd",
1053  "Pt resolution of tracks matched to TP-BTL hit vs Pt;pT_{truth} "
1054  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1055  20,
1056  0.7,
1057  10.,
1058  0.,
1059  4.,
1060  "s");
1061  meETLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLPtResvsPtMtd",
1062  "Pt resolution of tracks matched to TP-ETL hit vs Pt;pT_{truth} "
1063  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1064  20,
1065  0.7,
1066  10.,
1067  0.,
1068  4.,
1069  "s");
1071  ibook.bookProfile("TrackMatchedTPETL2PtResvsPtMtd",
1072  "Pt resolution of tracks matched to TP-ETL 2hits Pt pT;pT_{truth} "
1073  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1074  20,
1075  0.7,
1076  10.,
1077  0.,
1078  4.,
1079  "s");
1081  "TrackMatchedTPBTLDPtvsPtGen",
1082  "Pt relative difference of Gentracks (BTL) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1083  20,
1084  0.7,
1085  10.,
1086  -0.1,
1087  0.1,
1088  "s");
1090  "TrackMatchedTPETLDPtvsPtGen",
1091  "Pt relative difference of Gentracks (ETL 1hit) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1092  20,
1093  0.7,
1094  10.,
1095  -0.1,
1096  0.1,
1097  "s");
1099  "TrackMatchedTPETL2DPtvsPtGen",
1100  "Pt relative difference of Gentracks (ETL 2hits) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1101  20,
1102  0.7,
1103  10.,
1104  -0.1,
1105  0.1,
1106  "s");
1107  meBTLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLDPtvsPtMtd",
1108  "Pt relative difference of tracks matched to TP-BTL hits vs "
1109  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1110  20,
1111  0.7,
1112  10.,
1113  -0.1,
1114  0.1,
1115  "s");
1116  meETLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLDPtvsPtMtd",
1117  "Pt relative difference of tracks matched to TP-ETL hits vs "
1118  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1119  20,
1120  0.7,
1121  10.,
1122  -0.1,
1123  0.1,
1124  "s");
1125  meETLTrackMatchedTP2DPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETL2DPtvsPtMtd",
1126  "Pt relative difference of tracks matched to TP-ETL 2hits vs "
1127  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1128  20,
1129  0.7,
1130  10.,
1131  -0.1,
1132  0.1,
1133  "s");
1134 
1136  ibook.book1D("MatchedTPmtdEffPtTot", "Pt of tracks matched to TP-mtd hit; track pt [GeV] ", 110, 0., 11.);
1138  "MatchedTPmtdEffPtMtd", "Pt of tracks matched to TP-mtd hit with time; track pt [GeV] ", 110, 0., 11.);
1139 
1140  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks associated to LV; track eta ", 66, 0., 3.3);
1142  ibook.book1D("MVAMatchedEffEtaTot", "Eta of tracks associated to LV matched to GEN; track eta ", 66, 0., 3.3);
1144  "MVAMatchedEffEtaMtd", "Eta of tracks associated to LV matched to GEN with time; track eta ", 66, 0., 3.3);
1145 
1146  meExtraEtaMtd_ = ibook.book1D("ExtraEtaMtd", "Eta of tracks extrapolated to hits; track eta ", 66, 0., 3.3);
1148  ibook.book1D("ExtraEtaEtl2Mtd", "Eta of tracks extrapolated to hits, 2 ETL layers; track eta ", 66, 0., 3.3);
1149 
1150  meTrackEtaTot_ = ibook.book1D("TrackEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1152  ibook.book1D("MatchedTPEffEtaTot", "Eta of tracks matched to TP; track eta ", 66, 0., 3.3);
1153  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1155  ibook.book1D("MatchedTPEffEtaMtd", "Eta of tracks matched to TP with time; track eta ", 66, 0., 3.3);
1157  "MatchedTPEffEtaEtl2Mtd", "Eta of tracks matched to TP with time, 2 ETL hits; track eta ", 66, 0., 3.3);
1158 
1160  ibook.book1D("MatchedTPmtdEffEtaTot", "Eta of tracks matched to TP-mtd hit; track eta ", 66, 0., 3.3);
1162  ibook.book1D("MatchedTPmtdEffEtaMtd", "Eta of tracks matched to TP-mtd hit with time; track eta ", 66, 0., 3.3);
1163 
1164  meMVATrackResTot_ = ibook.book1D(
1165  "MVATrackRes", "t_{rec} - t_{sim} for LV associated tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
1167  ibook.book1D("MVATrackPull", "Pull for associated tracks; (t_{rec}-t_{sim})/#sigma_{t}", 50, -5., 5.);
1168  meMVATrackZposResTot_ = ibook.book1D(
1169  "MVATrackZposResTot", "Z_{PCA} - Z_{sim} for associated tracks;Z_{PCA} - Z_{sim} [cm] ", 100, -0.1, 0.1);
1170 
1172  ibook.book1D("ExtraPhiAtBTL", "Phi at BTL surface of extrapolated tracks; phi [deg]", 720, -180., 180.);
1173  meExtraPhiAtBTLmatched_ = ibook.book1D("ExtraPhiAtBTLmatched",
1174  "Phi at BTL surface of extrapolated tracksi matched with BTL hits; phi [deg]",
1175  720,
1176  -180.,
1177  180.);
1178  meExtraBTLeneInCone_ = ibook.book1D(
1179  "ExtraBTLeneInCone", "BTL reconstructed energy in cone arounnd extrapolated track; E [MeV]", 100, 0., 50.);
1181  ibook.book1D("ExtraMTDfailExtenderEta",
1182  "Eta of tracks extrapolated to MTD with no track extender match to hits; track eta",
1183  66,
1184  0.,
1185  3.3);
1186  ;
1188  ibook.book1D("ExtraMTDfailExtenderPt",
1189  "Pt of tracks extrapolated to MTD with no track extender match to hits; track pt [GeV] ",
1190  110,
1191  0.,
1192  11.);
1193 }
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 * meTrackSigmaTof_[3]
MonitorElement * meMVATrackMatchedEffEtaTot_
MonitorElement * meTrackOutermostHitZ_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meETLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMVAQual_
MonitorElement * meETLTrackEffPhiTot_[2]
MonitorElement * meTrackNumHitsNT_
MonitorElement * meTrackOutermostHitR_
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 * meTrackSigmaTofvsP_[3]
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 699 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_, 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().

706  {
707  bool isMatched(false);
708  nlayers = 0;
709  extrho = 0.;
710  exteta = -999.;
711  extphi = -999.;
712  selvar = 0.;
713 
714  auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_);
715  const MTDGeometry* geom = geometryHandle.product();
716  auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_);
717  const MTDTopology* topology = topologyHandle.product();
718 
719  auto layerHandle = iSetup.getTransientHandle(mtdlayerToken_);
720  const MTDDetLayerGeometry* layerGeo = layerHandle.product();
721 
722  auto magfieldHandle = iSetup.getTransientHandle(magfieldToken_);
723  const MagneticField* mfield = magfieldHandle.product();
724 
725  auto ttrackBuilder = iSetup.getTransientHandle(builderToken_);
726 
727  auto tTrack = ttrackBuilder->build(track);
728  TrajectoryStateOnSurface tsos = tTrack.outermostMeasurementState();
729  float theMaxChi2 = 500.;
730  float theNSigma = 10.;
731  std::unique_ptr<MeasurementEstimator> theEstimator =
732  std::make_unique<Chi2MeasurementEstimator>(theMaxChi2, theNSigma);
734 
735  auto btlRecHitsHandle = makeValid(iEvent.getHandle(btlRecHitsToken_));
736  auto etlRecHitsHandle = makeValid(iEvent.getHandle(etlRecHitsToken_));
737 
738  edm::LogVerbatim("MtdTracksValidation")
739  << "MtdTracksValidation: extrapolating track, pt= " << track.pt() << " eta= " << track.eta();
740 
741  //try BTL
742  bool inBTL = false;
743  float eneSum(0.);
744  const std::vector<const DetLayer*>& layersBTL = layerGeo->allBTLLayers();
745  for (const DetLayer* ilay : layersBTL) {
746  std::pair<bool, TrajectoryStateOnSurface> comp = ilay->compatible(tsos, prop, *theEstimator);
747  if (!comp.first)
748  continue;
749  if (!inBTL) {
750  inBTL = true;
751  extrho = comp.second.globalPosition().perp();
752  exteta = comp.second.globalPosition().eta();
753  extphi = comp.second.globalPosition().phi();
754  edm::LogVerbatim("MtdTracksValidation") << "MtdTracksValidation: extrapolation at BTL surface, rho= " << extrho
755  << " eta= " << exteta << " phi= " << extphi;
756  }
757  std::vector<DetLayer::DetWithState> compDets = ilay->compatibleDets(tsos, prop, *theEstimator);
758  for (const auto& detWithState : compDets) {
759  const auto& det = detWithState.first;
760 
761  // loop on compatible rechits and check energy in a fixed size cone around the extrapolation point
762 
763  edm::LogVerbatim("MtdTracksValidation")
764  << "MtdTracksValidation: DetId= " << det->geographicalId().rawId()
765  << " gp= " << detWithState.second.globalPosition().x() << " " << detWithState.second.globalPosition().y()
766  << " " << detWithState.second.globalPosition().z() << " rho= " << detWithState.second.globalPosition().perp()
767  << " eta= " << detWithState.second.globalPosition().eta()
768  << " phi= " << detWithState.second.globalPosition().phi();
769 
770  for (const auto& recHit : *btlRecHitsHandle) {
771  BTLDetId detId = recHit.id();
772  DetId geoId = detId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(topology->getMTDTopologyMode()));
773  const MTDGeomDet* thedet = geom->idToDet(geoId);
774  if (thedet == nullptr)
775  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
776  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
777  if (geoId == det->geographicalId()) {
778  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
779  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
780 
781  Local3DPoint local_point(0., 0., 0.);
782  local_point = topo.pixelToModuleLocalPoint(local_point, detId.row(topo.nrows()), detId.column(topo.nrows()));
783  const auto& global_point = thedet->toGlobal(local_point);
784  edm::LogVerbatim("MtdTracksValidation")
785  << "MtdTracksValidation: Hit id= " << detId.rawId() << " ene= " << recHit.energy()
786  << " dr= " << reco::deltaR(global_point, detWithState.second.globalPosition());
787  if (reco::deltaR(global_point, detWithState.second.globalPosition()) < cluDRradius_) {
788  eneSum += recHit.energy();
789  //extrho = detWithState.second.globalPosition().perp();
790  //exteta = detWithState.second.globalPosition().eta();
791  //extphi = detWithState.second.globalPosition().phi();
792  }
793  }
794  }
795  }
796  if (eneSum > depositBTLthreshold_) {
797  nlayers++;
798  selvar = eneSum;
799  isMatched = true;
800  edm::LogVerbatim("MtdTracksValidation")
801  << "MtdTracksValidation: BTL matched, energy= " << eneSum << " #layers= " << nlayers;
802  }
803  }
804  if (inBTL) {
805  return std::make_pair(inBTL, isMatched);
806  }
807 
808  //try ETL
809  bool inETL = false;
810  const std::vector<const DetLayer*>& layersETL = layerGeo->allETLLayers();
811  for (const DetLayer* ilay : layersETL) {
812  size_t hcount(0);
813  const BoundDisk& disk = static_cast<const MTDSectorForwardDoubleLayer*>(ilay)->specificSurface();
814  const double diskZ = disk.position().z();
815  if (tsos.globalPosition().z() * diskZ < 0)
816  continue; // only propagate to the disk that's on the same side
817  std::pair<bool, TrajectoryStateOnSurface> comp = ilay->compatible(tsos, prop, *theEstimator);
818  if (!comp.first)
819  continue;
820  if (!inETL) {
821  inETL = true;
822  extrho = comp.second.globalPosition().perp();
823  exteta = comp.second.globalPosition().eta();
824  extphi = comp.second.globalPosition().phi();
825  }
826  edm::LogVerbatim("MtdTracksValidation") << "MtdTracksValidation: extrapolation at ETL surface, rho= " << extrho
827  << " eta= " << exteta << " phi= " << extphi;
828  std::vector<DetLayer::DetWithState> compDets = ilay->compatibleDets(tsos, prop, *theEstimator);
829  for (const auto& detWithState : compDets) {
830  const auto& det = detWithState.first;
831 
832  // loop on compatible rechits and check hits in a fixed size cone around the extrapolation point
833 
834  edm::LogVerbatim("MtdTracksValidation")
835  << "MtdTracksValidation: DetId= " << det->geographicalId().rawId()
836  << " gp= " << detWithState.second.globalPosition().x() << " " << detWithState.second.globalPosition().y()
837  << " " << detWithState.second.globalPosition().z() << " rho= " << detWithState.second.globalPosition().perp()
838  << " eta= " << detWithState.second.globalPosition().eta()
839  << " phi= " << detWithState.second.globalPosition().phi();
840 
841  for (const auto& recHit : *etlRecHitsHandle) {
842  ETLDetId detId = recHit.id();
843  DetId geoId = detId.geographicalId();
844  const MTDGeomDet* thedet = geom->idToDet(geoId);
845  if (thedet == nullptr)
846  throw cms::Exception("MtdTracksValidation") << "GeographicalID: " << std::hex << geoId.rawId() << " ("
847  << detId.rawId() << ") is invalid!" << std::dec << std::endl;
848  if (geoId == det->geographicalId()) {
849  const ProxyMTDTopology& topoproxy = static_cast<const ProxyMTDTopology&>(thedet->topology());
850  const RectangularMTDTopology& topo = static_cast<const RectangularMTDTopology&>(topoproxy.specificTopology());
851 
852  Local3DPoint local_point(topo.localX(recHit.row()), topo.localY(recHit.column()), 0.);
853  const auto& global_point = thedet->toGlobal(local_point);
854  edm::LogVerbatim("MtdTracksValidation")
855  << "MtdTracksValidation: Hit id= " << detId.rawId() << " time= " << recHit.time()
856  << " dr= " << reco::deltaR(global_point, detWithState.second.globalPosition());
857  if (reco::deltaR(global_point, detWithState.second.globalPosition()) < cluDRradius_) {
858  hcount++;
859  if (hcount == 1) {
860  //extrho = detWithState.second.globalPosition().perp();
861  //exteta = detWithState.second.globalPosition().eta();
862  //extphi = detWithState.second.globalPosition().phi();
863  }
864  }
865  }
866  }
867  }
868  if (hcount > 0) {
869  nlayers++;
870  selvar = (float)hcount;
871  isMatched = true;
872  edm::LogVerbatim("MtdTracksValidation")
873  << "MtdTracksValidation: ETL matched, counts= " << hcount << " #layers= " << nlayers;
874  }
875  }
876 
877  if (!inBTL && !inETL) {
878  edm::LogVerbatim("MtdTracksValidation")
879  << "MtdTracksValidation: track not extrapolating to MTD: pt= " << track.pt() << " eta= " << track.eta()
880  << " phi= " << track.phi() << " vz= " << track.vz()
881  << " vxy= " << std::sqrt(track.vx() * track.vx() + track.vy() * track.vy());
882  }
883  return std::make_pair(inETL, isMatched);
884 }
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:23
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 1197 of file MtdTracksValidation.cc.

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

1197  {
1199 
1200  desc.add<std::string>("folder", "MTD/Tracks");
1201  desc.add<edm::InputTag>("inputTagG", edm::InputTag("generalTracks"));
1202  desc.add<edm::InputTag>("inputTagT", edm::InputTag("trackExtenderWithMTD"));
1203  desc.add<edm::InputTag>("inputTagV", edm::InputTag("offlinePrimaryVertices4D"));
1204  desc.add<edm::InputTag>("inputTagH", edm::InputTag("generatorSmeared"));
1205  desc.add<edm::InputTag>("SimTag", edm::InputTag("mix", "MergedTrackTruth"));
1206  desc.add<edm::InputTag>("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation"));
1207  desc.add<edm::InputTag>("tp2SimAssociationMapTag", edm::InputTag("mtdSimLayerClusterToTPAssociation"));
1208  desc.add<edm::InputTag>("btlRecHits", edm::InputTag("mtdRecHits", "FTLBarrel"));
1209  desc.add<edm::InputTag>("etlRecHits", edm::InputTag("mtdRecHits", "FTLEndcap"));
1210  desc.add<edm::InputTag>("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
1211  desc.add<edm::InputTag>("sigmatmtd", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd"));
1212  desc.add<edm::InputTag>("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0"));
1213  desc.add<edm::InputTag>("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0"));
1214  desc.add<edm::InputTag>("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))
1215  ->setComment("Association between General and MTD Extended tracks");
1216  desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength"));
1217  desc.add<edm::InputTag>("t0SafePID", edm::InputTag("tofPID:t0safe"));
1218  desc.add<edm::InputTag>("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe"));
1219  desc.add<edm::InputTag>("sigmat0PID", edm::InputTag("tofPID:sigmat0"));
1220  desc.add<edm::InputTag>("t0PID", edm::InputTag("tofPID:t0"));
1221  desc.add<edm::InputTag>("sigmaTofPi", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofPi"));
1222  desc.add<edm::InputTag>("sigmaTofK", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofK"));
1223  desc.add<edm::InputTag>("sigmaTofP", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofP"));
1224  desc.add<edm::InputTag>("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA"));
1225  desc.add<edm::InputTag>("outermostHitPositionSrc",
1226  edm::InputTag("trackExtenderWithMTD:generalTrackOutermostHitPosition"));
1227  desc.add<double>("trackMinimumPt", 0.7); // [GeV]
1228  desc.add<double>("trackMaximumBtlEta", 1.5);
1229  desc.add<double>("trackMinimumEtlEta", 1.6);
1230  desc.add<double>("trackMaximumEtlEta", 3.);
1231  desc.addUntracked<bool>("optionalPlots", true);
1232 
1233  descriptions.add("mtdTracksValid", desc);
1234 }
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 1289 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1289  {
1290  auto found = r2s_->find(recoTrack);
1291 
1292  // reco track not matched to any TP
1293  if (found == r2s_->end())
1294  return nullptr;
1295 
1296  //matched TP equal to any TP associated to in time events
1297  for (const auto& tp : found->val) {
1298  if (tp.first->eventId().bunchCrossing() == 0)
1299  return &tp.first;
1300  }
1301 
1302  // reco track not matched to any TP from vertex
1303  return nullptr;
1304 }
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 108 of file MtdTracksValidation.cc.

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

Referenced by analyze().

108 { 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 1277 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().

1280  {
1281  bool match = false;
1282  double dR = reco::deltaR(genP.momentum(), trk.momentum());
1283  double genPT = genP.momentum().perp();
1284  match = std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ &&
1285  (std::abs(trk.vz() - zsim) < deltaZcut_ || vtxFake);
1286  return match;
1287 }
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 1236 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1236  {
1237  bool match = false;
1238  if (gp.status() != 1) {
1239  return match;
1240  }
1241  match = charge != 0.f && gp.momentum().perp() > pTcut_ && std::abs(gp.momentum().eta()) < etacutGEN_;
1242  return match;
1243 }
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 1264 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().

1267  {
1268  bool match = false;
1269  match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ &&
1270  (std::abs(trk.vz() - vtx.z()) <= deltaZcut_ || vtx.isFake());
1271  if (st0 > 0.) {
1272  match = match && std::abs(t0 - vtx.t()) < 3. * st0;
1273  }
1274  return match;
1275 }
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

◆ mvaTPSelAll()

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

Definition at line 1250 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1250  {
1251  bool match = false;
1252 
1253  auto x_pv = tp.parentVertex()->position().x();
1254  auto y_pv = tp.parentVertex()->position().y();
1255  auto z_pv = tp.parentVertex()->position().z();
1256 
1257  auto r_pv = std::sqrt(x_pv * x_pv + y_pv * y_pv);
1258 
1259  match =
1260  tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_ && r_pv < rBTL_ && std::abs(z_pv) < zETL_;
1261  return match;
1262 }
static constexpr double etacutGEN_
static constexpr double pTcut_
static constexpr double rBTL_
T sqrt(T t)
Definition: SSEVec.h:23
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

◆ mvaTPSelLV()

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

Definition at line 1245 of file MtdTracksValidation.cc.

References match(), and cmsswSequenceInfo::tp.

Referenced by analyze().

1245  {
1246  bool match = (tp.status() != 1) ? false : true;
1247  return match;
1248 }
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 98 of file MtdTracksValidation.cc.

References a, b, x, and y.

98  {
99  const uint64_t a = static_cast<uint64_t>(x);
100  const uint64_t b = static_cast<uint64_t>(y.rawId());
101 
102  if (x < y.rawId())
103  return (b << 32) | a;
104  else
105  return (a << 32) | b;
106  }
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().

◆ builderToken_

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

Definition at line 167 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ cluDRradius_

constexpr double MtdTracksValidation::cluDRradius_ = 0.05
staticprivate

Definition at line 129 of file MtdTracksValidation.cc.

Referenced by checkAcceptance().

◆ deltaDRcut_

constexpr double MtdTracksValidation::deltaDRcut_ = 0.03
staticprivate

Definition at line 123 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaPTcut_

constexpr double MtdTracksValidation::deltaPTcut_ = 0.05
staticprivate

Definition at line 122 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaZcut_

constexpr double MtdTracksValidation::deltaZcut_ = 0.1
staticprivate

Definition at line 121 of file MtdTracksValidation.cc.

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

◆ depositBTLthreshold_

constexpr double MtdTracksValidation::depositBTLthreshold_ = 1
staticprivate

Definition at line 124 of file MtdTracksValidation.cc.

Referenced by checkAcceptance().

◆ depositETLthreshold_

constexpr double MtdTracksValidation::depositETLthreshold_ = 0.001
staticprivate

Definition at line 125 of file MtdTracksValidation.cc.

◆ etacutGEN_

constexpr double MtdTracksValidation::etacutGEN_ = 4.
staticprivate

Definition at line 118 of file MtdTracksValidation.cc.

Referenced by mvaGenSel(), and mvaTPSelAll().

◆ etacutREC_

constexpr double MtdTracksValidation::etacutREC_ = 3.
staticprivate

Definition at line 119 of file MtdTracksValidation.cc.

Referenced by mvaRecSel().

◆ etaMatchCut_

constexpr double MtdTracksValidation::etaMatchCut_ = 0.05
staticprivate

Definition at line 128 of file MtdTracksValidation.cc.

◆ etlRecHitsToken_

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

Definition at line 144 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ folder_

const std::string MtdTracksValidation::folder_
private

Definition at line 112 of file MtdTracksValidation.cc.

Referenced by bookHistograms().

◆ GenRecTrackToken_

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

Definition at line 134 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ HepMCProductToken_

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

Definition at line 138 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ magfieldToken_

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

Definition at line 166 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ meBTLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaMtd_
private

Definition at line 174 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffEtaTot_
private

Definition at line 171 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiMtd_
private

Definition at line 175 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPhiTot_
private

Definition at line 172 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtMtd_
private

Definition at line 176 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meBTLTrackEffPtTot_
private

Definition at line 173 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPDPtvsPtGen_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPDPtvsPtGen_
private

Definition at line 227 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 230 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioGen_
private

Definition at line 218 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioMtd_
private

Definition at line 221 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResMtd_
private

Definition at line 215 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResvsPtMtd_
private

Definition at line 224 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackPtRes_

MonitorElement* MtdTracksValidation::meBTLTrackPtRes_
private

Definition at line 177 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackRPTime_

MonitorElement* MtdTracksValidation::meBTLTrackRPTime_
private

Definition at line 170 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEta2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEta2Mtd_[2]
private

Definition at line 186 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaMtd_[2]
private

Definition at line 183 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffEtaTot_

MonitorElement* MtdTracksValidation::meETLTrackEffEtaTot_[2]
private

Definition at line 180 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhi2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhi2Mtd_[2]
private

Definition at line 187 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiMtd_[2]
private

Definition at line 184 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPhiTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPhiTot_[2]
private

Definition at line 181 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPt2Mtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPt2Mtd_[2]
private

Definition at line 188 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackEffPtMtd_[2]
private

Definition at line 185 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackEffPtTot_

MonitorElement* MtdTracksValidation::meETLTrackEffPtTot_[2]
private

Definition at line 182 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2DPtvsPtGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2DPtvsPtGen_
private

Definition at line 229 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2DPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2DPtvsPtMtd_
private

Definition at line 232 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioGen_
private

Definition at line 220 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioMtd_
private

Definition at line 223 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResMtd_
private

Definition at line 217 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResvsPtMtd_
private

Definition at line 226 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtGen_
private

Definition at line 228 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 231 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioGen_
private

Definition at line 219 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioMtd_
private

Definition at line 222 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResMtd_
private

Definition at line 216 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResvsPtMtd_
private

Definition at line 225 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackPtRes_

MonitorElement* MtdTracksValidation::meETLTrackPtRes_
private

Definition at line 189 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackRPTime_

MonitorElement* MtdTracksValidation::meETLTrackRPTime_
private

Definition at line 179 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraBTLeneInCone_

MonitorElement* MtdTracksValidation::meExtraBTLeneInCone_
private

Definition at line 256 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraEtaEtl2Mtd_
private

Definition at line 244 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaMtd_

MonitorElement* MtdTracksValidation::meExtraEtaMtd_
private

Definition at line 243 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderEta_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderEta_
private

Definition at line 257 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderPt_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderPt_
private

Definition at line 258 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTL_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTL_
private

Definition at line 254 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTLmatched_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTLmatched_
private

Definition at line 255 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraPtEtl2Mtd_
private

Definition at line 213 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtMtd_

MonitorElement* MtdTracksValidation::meExtraPtMtd_
private

Definition at line 212 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackEffEtaTot_
private

Definition at line 240 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackEffPtTot_
private

Definition at line 209 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaMtd_
private

Definition at line 242 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaTot_
private

Definition at line 241 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtMtd_
private

Definition at line 211 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtTot_
private

Definition at line 210 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackPullTot_

MonitorElement* MtdTracksValidation::meMVATrackPullTot_
private

Definition at line 251 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackResTot_

MonitorElement* MtdTracksValidation::meMVATrackResTot_
private

Definition at line 250 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackZposResTot_

MonitorElement* MtdTracksValidation::meMVATrackZposResTot_
private

Definition at line 252 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackEtaTot_

MonitorElement* MtdTracksValidation::meTrackEtaTot_
private

Definition at line 239 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaEtl2Mtd_
private

Definition at line 247 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaMtd_
private

Definition at line 246 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaTot_
private

Definition at line 245 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtEtl2Mtd_
private

Definition at line 236 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtMtd_
private

Definition at line 235 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtTot_
private

Definition at line 234 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaMtd_
private

Definition at line 249 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaTot_
private

Definition at line 248 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtMtd_
private

Definition at line 238 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtTot_
private

Definition at line 237 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMVAQual_

MonitorElement* MtdTracksValidation::meTrackMVAQual_
private

Definition at line 200 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackNumHits_

MonitorElement* MtdTracksValidation::meTrackNumHits_
private

Definition at line 198 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackNumHitsNT_

MonitorElement* MtdTracksValidation::meTrackNumHitsNT_
private

Definition at line 199 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackOutermostHitR_

MonitorElement* MtdTracksValidation::meTrackOutermostHitR_
private

Definition at line 202 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackOutermostHitZ_

MonitorElement* MtdTracksValidation::meTrackOutermostHitZ_
private

Definition at line 203 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPathLenghtvsEta_

MonitorElement* MtdTracksValidation::meTrackPathLenghtvsEta_
private

Definition at line 201 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackPtTot_

MonitorElement* MtdTracksValidation::meTrackPtTot_
private

Definition at line 208 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Pid_

MonitorElement* MtdTracksValidation::meTrackSigmat0Pid_
private

Definition at line 195 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0SafePid_

MonitorElement* MtdTracksValidation::meTrackSigmat0SafePid_
private

Definition at line 197 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmat0Src_

MonitorElement* MtdTracksValidation::meTrackSigmat0Src_
private

Definition at line 193 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmaTof_

MonitorElement* MtdTracksValidation::meTrackSigmaTof_[3]
private

Definition at line 205 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmaTofvsP_

MonitorElement* MtdTracksValidation::meTrackSigmaTofvsP_[3]
private

Definition at line 206 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Pid_

MonitorElement* MtdTracksValidation::meTrackt0Pid_
private

Definition at line 194 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0SafePid_

MonitorElement* MtdTracksValidation::meTrackt0SafePid_
private

Definition at line 196 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackt0Src_

MonitorElement* MtdTracksValidation::meTrackt0Src_
private

Definition at line 192 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTracktmtd_

MonitorElement* MtdTracksValidation::meTracktmtd_
private

Definition at line 191 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ mtdgeoToken_

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

Definition at line 163 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ mtdlayerToken_

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

Definition at line 165 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ mtdtopoToken_

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

Definition at line 164 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ outermostHitPositionToken_

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

Definition at line 161 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ particleTableToken_

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

Definition at line 168 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 120 of file MtdTracksValidation.cc.

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

◆ r2s_

const reco::RecoToSimCollection* MtdTracksValidation::r2s_
private

Definition at line 131 of file MtdTracksValidation.cc.

Referenced by analyze(), and getMatchedTP().

◆ rBTL_

constexpr double MtdTracksValidation::rBTL_ = 110.0
staticprivate

Definition at line 126 of file MtdTracksValidation.cc.

Referenced by mvaTPSelAll().

◆ recoToSimAssociationToken_

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

Definition at line 141 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecTrackToken_

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

Definition at line 135 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecVertexToken_

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

Definition at line 136 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ s2r_

const reco::SimToRecoCollection* MtdTracksValidation::s2r_
private

Definition at line 132 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().

◆ SigmaTofKToken_

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

Definition at line 158 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmaTofPiToken_

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

Definition at line 157 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmaTofPToken_

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

Definition at line 159 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ simToRecoAssociationToken_

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

Definition at line 140 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().

◆ tp2SimAssociationMapToken_

edm::EDGetTokenT<reco::TPToSimCollectionMtd> MtdTracksValidation::tp2SimAssociationMapToken_
private

Definition at line 142 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 139 of file MtdTracksValidation.cc.

Referenced by MtdTracksValidation().

◆ trackMaxBtlEta_

const float MtdTracksValidation::trackMaxBtlEta_
private

Definition at line 114 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMaxEtlEta_

const float MtdTracksValidation::trackMaxEtlEta_
private

Definition at line 116 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinEtlEta_

const float MtdTracksValidation::trackMinEtlEta_
private

Definition at line 115 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinPt_

const float MtdTracksValidation::trackMinPt_
private

Definition at line 113 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMVAQualToken_

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

Definition at line 160 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ zETL_

constexpr double MtdTracksValidation::zETL_ = 290.0
staticprivate

Definition at line 127 of file MtdTracksValidation.cc.

Referenced by mvaTPSelAll().