CMS 3D CMS Logo

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

Public Member Functions

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

Static Public Member Functions

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

Private Member Functions

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

Private Attributes

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

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

261  : folder_(iConfig.getParameter<std::string>("folder")),
262  trackMinPt_(iConfig.getParameter<double>("trackMinimumPt")),
263  trackMaxBtlEta_(iConfig.getParameter<double>("trackMaximumBtlEta")),
264  trackMinEtlEta_(iConfig.getParameter<double>("trackMinimumEtlEta")),
265  trackMaxEtlEta_(iConfig.getParameter<double>("trackMaximumEtlEta")) {
266  GenRecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagG"));
267  RecTrackToken_ = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("inputTagT"));
268  RecVertexToken_ = consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("inputTagV"));
269  HepMCProductToken_ = consumes<edm::HepMCProduct>(iConfig.getParameter<edm::InputTag>("inputTagH"));
271  consumes<TrackingParticleCollection>(iConfig.getParameter<edm::InputTag>("SimTag"));
273  consumes<reco::SimToRecoCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
275  consumes<reco::RecoToSimCollection>(iConfig.getParameter<edm::InputTag>("TPtoRecoTrackAssoc"));
277  consumes<reco::TPToSimCollectionMtd>(iConfig.getParameter<edm::InputTag>("tp2SimAssociationMapTag"));
278  btlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("btlSimHits"));
279  etlSimHitsToken_ = consumes<CrossingFrame<PSimHit>>(iConfig.getParameter<edm::InputTag>("etlSimHits"));
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"));
296  mtdgeoToken_ = esConsumes<MTDGeometry, MTDDigiGeometryRecord>();
297  mtdtopoToken_ = esConsumes<MTDTopology, MTDTopologyRcd>();
298  mtdlayerToken_ = esConsumes<MTDDetLayerGeometry, MTDRecoGeometryRecord>();
299  magfieldToken_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
300  builderToken_ = esConsumes<TransientTrackBuilder, TransientTrackRecord>(edm::ESInputTag("", "TransientTrackBuilder"));
301  particleTableToken_ = esConsumes<HepPDT::ParticleDataTable, edm::DefaultRecord>();
302 }
edm::EDGetTokenT< edm::ValueMap< int > > trackAssocToken_
edm::EDGetTokenT< edm::ValueMap< float > > trackMVAQualToken_
edm::EDGetTokenT< edm::ValueMap< float > > pathLengthToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< edm::ValueMap< float > > t0SafePidToken_
edm::EDGetTokenT< edm::ValueMap< float > > t0SrcToken_
edm::ESGetToken< MTDTopology, MTDTopologyRcd > mtdtopoToken_
const std::string folder_
edm::EDGetTokenT< edm::HepMCProduct > HepMCProductToken_
edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > builderToken_
edm::EDGetTokenT< std::vector< reco::Vertex > > RecVertexToken_
edm::EDGetTokenT< edm::ValueMap< float > > tmtdToken_
edm::EDGetTokenT< reco::TrackCollection > GenRecTrackToken_
edm::EDGetTokenT< reco::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< CrossingFrame< PSimHit > > etlSimHitsToken_
edm::EDGetTokenT< edm::ValueMap< float > > SigmaTofKToken_
edm::EDGetTokenT< CrossingFrame< PSimHit > > btlSimHitsToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0PidToken_
edm::EDGetTokenT< reco::RecoToSimCollection > recoToSimAssociationToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SrcToken_
edm::ESGetToken< MTDGeometry, MTDDigiGeometryRecord > mtdgeoToken_
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magfieldToken_
edm::EDGetTokenT< edm::ValueMap< float > > Sigmat0SafePidToken_
edm::ESGetToken< HepPDT::ParticleDataTable, edm::DefaultRecord > particleTableToken_

◆ ~MtdTracksValidation()

MtdTracksValidation::~MtdTracksValidation ( )
override

Definition at line 304 of file MtdTracksValidation.cc.

304 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 307 of file MtdTracksValidation.cc.

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

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

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

904  {
905  ibook.setCurrentFolder(folder_);
906 
907  // histogram booking
908  meBTLTrackRPTime_ = ibook.book1D("TrackBTLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
909  meBTLTrackEffEtaTot_ = ibook.book1D("TrackBTLEffEtaTot", "Track efficiency vs eta (Tot);#eta_{RECO}", 100, -1.6, 1.6);
911  ibook.book1D("TrackBTLEffPhiTot", "Track efficiency vs phi (Tot);#phi_{RECO} [rad]", 100, -3.2, 3.2);
912  meBTLTrackEffPtTot_ = ibook.book1D("TrackBTLEffPtTot", "Track efficiency vs pt (Tot);pt_{RECO} [GeV]", 50, 0, 10);
913  meBTLTrackEffEtaMtd_ = ibook.book1D("TrackBTLEffEtaMtd", "Track efficiency vs eta (Mtd);#eta_{RECO}", 100, -1.6, 1.6);
915  ibook.book1D("TrackBTLEffPhiMtd", "Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2);
916  meBTLTrackEffPtMtd_ = ibook.book1D("TrackBTLEffPtMtd", "Track efficiency vs pt (Mtd);pt_{RECO} [GeV]", 50, 0, 10);
918  ibook.book1D("TrackBTLPtRes", "Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
919  meETLTrackRPTime_ = ibook.book1D("TrackETLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3);
921  ibook.book1D("TrackETLEffEtaTotZneg", "Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
923  ibook.book1D("TrackETLEffEtaTotZpos", "Track efficiency vs eta (Tot) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
925  ibook.book1D("TrackETLEffPhiTotZneg", "Track efficiency vs phi (Tot) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
927  ibook.book1D("TrackETLEffPhiTotZpos", "Track efficiency vs phi (Tot) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
929  ibook.book1D("TrackETLEffPtTotZneg", "Track efficiency vs pt (Tot) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
931  ibook.book1D("TrackETLEffPtTotZpos", "Track efficiency vs pt (Tot) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
933  ibook.book1D("TrackETLEffEtaMtdZneg", "Track efficiency vs eta (Mtd) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
935  ibook.book1D("TrackETLEffEtaMtdZpos", "Track efficiency vs eta (Mtd) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
937  ibook.book1D("TrackETLEffPhiMtdZneg", "Track efficiency vs phi (Mtd) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
939  ibook.book1D("TrackETLEffPhiMtdZpos", "Track efficiency vs phi (Mtd) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
941  ibook.book1D("TrackETLEffPtMtdZneg", "Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
943  ibook.book1D("TrackETLEffPtMtdZpos", "Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
945  ibook.book1D("TrackETLEffEta2MtdZneg", "Track efficiency vs eta (Mtd 2 hit) (-Z);#eta_{RECO}", 100, -3.2, -1.4);
947  ibook.book1D("TrackETLEffEta2MtdZpos", "Track efficiency vs eta (Mtd 2 hit) (+Z);#eta_{RECO}", 100, 1.4, 3.2);
948  meETLTrackEffPhi2Mtd_[0] = ibook.book1D(
949  "TrackETLEffPhi2MtdZneg", "Track efficiency vs phi (Mtd 2 hit) (-Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
950  meETLTrackEffPhi2Mtd_[1] = ibook.book1D(
951  "TrackETLEffPhi2MtdZpos", "Track efficiency vs phi (Mtd 2 hit) (+Z);#phi_{RECO} [rad]", 100, -3.2, 3.2);
953  ibook.book1D("TrackETLEffPt2MtdZneg", "Track efficiency vs pt (Mtd 2 hit) (-Z);pt_{RECO} [GeV]", 50, 0, 10);
955  ibook.book1D("TrackETLEffPt2MtdZpos", "Track efficiency vs pt (Mtd 2 hit) (+Z);pt_{RECO} [GeV]", 50, 0, 10);
957  ibook.book1D("TrackETLPtRes", "Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1);
958 
959  meTracktmtd_ = ibook.book1D("Tracktmtd", "Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16);
960  meTrackt0Src_ = ibook.book1D("Trackt0Src", "Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5);
962  ibook.book1D("TrackSigmat0Src", "Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1);
963 
964  meTrackt0Pid_ = ibook.book1D("Trackt0Pid", "Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1);
965  meTrackSigmat0Pid_ = ibook.book1D("TrackSigmat0Pid", "Sigmat0 as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
966  meTrackt0SafePid_ = ibook.book1D("Trackt0SafePID", "Track t0 Safe as stored in TofPid;t0 [ns]", 100, -1, 1);
968  ibook.book1D("TrackSigmat0SafePID", "Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1);
969  meTrackNumHits_ = ibook.book1D("TrackNumHits", "Number of valid MTD hits per track ; Number of hits", 10, -5, 5);
970  meTrackNumHitsNT_ = ibook.book1D(
971  "TrackNumHitsNT", "Number of valid MTD hits per track no time associated; Number of hits", 10, -5, 5);
972  meTrackMVAQual_ = ibook.book1D("TrackMVAQual", "Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1);
974  "TrackPathLenghtvsEta", "MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0, "S");
975 
976  meTrackSigmaTof_[0] =
977  ibook.book1D("TrackSigmaTof_Pion", "Sigma(TOF) for pion hypothesis; #sigma_{t0} [ps]", 10, 0, 5);
978  meTrackSigmaTof_[1] =
979  ibook.book1D("TrackSigmaTof_Kaon", "Sigma(TOF) for kaon hypothesis; #sigma_{t0} [ps]", 25, 0, 25);
980  meTrackSigmaTof_[2] =
981  ibook.book1D("TrackSigmaTof_Proton", "Sigma(TOF) for proton hypothesis; #sigma_{t0} [ps]", 50, 0, 50);
982 
983  meTrackSigmaTofvsP_[0] = ibook.bookProfile("TrackSigmaTofvsP_Pion",
984  "Sigma(TOF) for pion hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
985  20,
986  0,
987  10.,
988  0,
989  50.,
990  "S");
991  meTrackSigmaTofvsP_[1] = ibook.bookProfile("TrackSigmaTofvsP_Kaon",
992  "Sigma(TOF) for kaon hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
993  20,
994  0,
995  10.,
996  0,
997  50.,
998  "S");
999  meTrackSigmaTofvsP_[2] = ibook.bookProfile("TrackSigmaTofvsP_Proton",
1000  "Sigma(TOF) for proton hypothesis vs p; p [GeV]; #sigma_{t0} [ps]",
1001  20,
1002  0,
1003  10.,
1004  0,
1005  50.,
1006  "S");
1007 
1008  meMVATrackEffPtTot_ = ibook.book1D("MVAEffPtTot", "Pt of tracks associated to LV; track pt [GeV] ", 110, 0., 11.);
1010  ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to GEN; track pt [GeV] ", 110, 0., 11.);
1012  "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to GEN with time; track pt [GeV] ", 110, 0., 11.);
1013 
1014  meExtraPtMtd_ = ibook.book1D("ExtraPtMtd", "Pt of tracks extrapolated to hits; track pt [GeV] ", 110, 0., 11.);
1016  ibook.book1D("ExtraPtEtl2Mtd", "Pt of tracks extrapolated to hits, 2 ETL layers; track pt [GeV] ", 110, 0., 11.);
1017 
1018  meTrackPtTot_ = ibook.book1D("TrackPtTot", "Pt of tracks ; track pt [GeV] ", 110, 0., 11.);
1020  ibook.book1D("MatchedTPEffPtTot", "Pt of tracks matched to TP; track pt [GeV] ", 110, 0., 11.);
1022  ibook.book1D("MatchedTPEffPtMtd", "Pt of tracks matched to TP with time; track pt [GeV] ", 110, 0., 11.);
1024  "MatchedTPEffPtEtl2Mtd", "Pt of tracks matched to TP with time, 2 ETL hits; track pt [GeV] ", 110, 0., 11.);
1025 
1027  "TrackMatchedTPBTLPtResMtd",
1028  "Pt resolution of tracks matched to TP-BTL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1029  100,
1030  0.,
1031  4.);
1033  "TrackMatchedTPETLPtResMtd",
1034  "Pt resolution of tracks matched to TP-ETL hit ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1035  100,
1036  0.,
1037  4.);
1039  "TrackMatchedTPETL2PtResMtd",
1040  "Pt resolution of tracks matched to TP-ETL 2hits ;|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1041  100,
1042  0.,
1043  4.);
1045  "TrackMatchedTPBTLPtRatioGen", "Pt ratio of Gentracks (BTL) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1047  "TrackMatchedTPETLPtRatioGen", "Pt ratio of Gentracks (ETL 1hit) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1049  "TrackMatchedTPETL2PtRatioGen", "Pt ratio of Gentracks (ETL 2hits) ;pT_{Gentrack}/pT_{truth} ", 100, 0.9, 1.1);
1050  meBTLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPBTLPtRatioMtd",
1051  "Pt ratio of tracks matched to TP-BTL hits ;pT_{MTDtrack}/pT_{truth} ",
1052  100,
1053  0.9,
1054  1.1);
1055  meETLTrackMatchedTPPtRatioMtd_ = ibook.book1D("TrackMatchedTPETLPtRatioMtd",
1056  "Pt ratio of tracks matched to TP-ETL hits ;pT_{MTDtrack}/pT_{truth} ",
1057  100,
1058  0.9,
1059  1.1);
1061  ibook.book1D("TrackMatchedTPETL2PtRatioMtd",
1062  "Pt ratio of tracks matched to TP-ETL 2hits ;pT_{MTDtrack}/pT_{truth} ",
1063  100,
1064  0.9,
1065  1.1);
1066  meBTLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLPtResvsPtMtd",
1067  "Pt resolution of tracks matched to TP-BTL hit vs Pt;pT_{truth} "
1068  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1069  20,
1070  0.7,
1071  10.,
1072  0.,
1073  4.,
1074  "s");
1075  meETLTrackMatchedTPPtResvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLPtResvsPtMtd",
1076  "Pt resolution of tracks matched to TP-ETL hit vs Pt;pT_{truth} "
1077  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1078  20,
1079  0.7,
1080  10.,
1081  0.,
1082  4.,
1083  "s");
1085  ibook.bookProfile("TrackMatchedTPETL2PtResvsPtMtd",
1086  "Pt resolution of tracks matched to TP-ETL 2hits Pt pT;pT_{truth} "
1087  "[GeV];|pT_{MTDtrack}-pT_{truth}|/|pT_{Gentrack}-pT_{truth}| ",
1088  20,
1089  0.7,
1090  10.,
1091  0.,
1092  4.,
1093  "s");
1095  "TrackMatchedTPBTLDPtvsPtGen",
1096  "Pt relative difference of Gentracks (BTL) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1097  20,
1098  0.7,
1099  10.,
1100  -0.1,
1101  0.1,
1102  "s");
1104  "TrackMatchedTPETLDPtvsPtGen",
1105  "Pt relative difference of Gentracks (ETL 1hit) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1106  20,
1107  0.7,
1108  10.,
1109  -0.1,
1110  0.1,
1111  "s");
1113  "TrackMatchedTPETL2DPtvsPtGen",
1114  "Pt relative difference of Gentracks (ETL 2hits) vs Pt;pT_{truth} [GeV];pT_{Gentrack}-pT_{truth}/pT_{truth} ",
1115  20,
1116  0.7,
1117  10.,
1118  -0.1,
1119  0.1,
1120  "s");
1121  meBTLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPBTLDPtvsPtMtd",
1122  "Pt relative difference of tracks matched to TP-BTL hits vs "
1123  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1124  20,
1125  0.7,
1126  10.,
1127  -0.1,
1128  0.1,
1129  "s");
1130  meETLTrackMatchedTPDPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETLDPtvsPtMtd",
1131  "Pt relative difference of tracks matched to TP-ETL hits vs "
1132  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1133  20,
1134  0.7,
1135  10.,
1136  -0.1,
1137  0.1,
1138  "s");
1139  meETLTrackMatchedTP2DPtvsPtMtd_ = ibook.bookProfile("TrackMatchedTPETL2DPtvsPtMtd",
1140  "Pt relative difference of tracks matched to TP-ETL 2hits vs "
1141  "Pt;pT_{truth} [GeV];pT_{MTDtrack}-pT_{truth}/pT_{truth} ",
1142  20,
1143  0.7,
1144  10.,
1145  -0.1,
1146  0.1,
1147  "s");
1148 
1150  ibook.book1D("MatchedTPmtdEffPtTot", "Pt of tracks matched to TP-mtd hit; track pt [GeV] ", 110, 0., 11.);
1152  "MatchedTPmtdEffPtMtd", "Pt of tracks matched to TP-mtd hit with time; track pt [GeV] ", 110, 0., 11.);
1153 
1154  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks associated to LV; track eta ", 66, 0., 3.3);
1156  ibook.book1D("MVAMatchedEffEtaTot", "Eta of tracks associated to LV matched to GEN; track eta ", 66, 0., 3.3);
1158  "MVAMatchedEffEtaMtd", "Eta of tracks associated to LV matched to GEN with time; track eta ", 66, 0., 3.3);
1159 
1160  meExtraEtaMtd_ = ibook.book1D("ExtraEtaMtd", "Eta of tracks extrapolated to hits; track eta ", 66, 0., 3.3);
1162  ibook.book1D("ExtraEtaEtl2Mtd", "Eta of tracks extrapolated to hits, 2 ETL layers; track eta ", 66, 0., 3.3);
1163 
1164  meTrackEtaTot_ = ibook.book1D("TrackEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1166  ibook.book1D("MatchedTPEffEtaTot", "Eta of tracks matched to TP; track eta ", 66, 0., 3.3);
1167  meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Eta of tracks ; track eta ", 66, 0., 3.3);
1169  ibook.book1D("MatchedTPEffEtaMtd", "Eta of tracks matched to TP with time; track eta ", 66, 0., 3.3);
1171  "MatchedTPEffEtaEtl2Mtd", "Eta of tracks matched to TP with time, 2 ETL hits; track eta ", 66, 0., 3.3);
1172 
1174  ibook.book1D("MatchedTPmtdEffEtaTot", "Eta of tracks matched to TP-mtd hit; track eta ", 66, 0., 3.3);
1176  ibook.book1D("MatchedTPmtdEffEtaMtd", "Eta of tracks matched to TP-mtd hit with time; track eta ", 66, 0., 3.3);
1177 
1178  meMVATrackResTot_ = ibook.book1D(
1179  "MVATrackRes", "t_{rec} - t_{sim} for LV associated tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15);
1181  ibook.book1D("MVATrackPull", "Pull for associated tracks; (t_{rec}-t_{sim})/#sigma_{t}", 50, -5., 5.);
1182  meMVATrackZposResTot_ = ibook.book1D(
1183  "MVATrackZposResTot", "Z_{PCA} - Z_{sim} for associated tracks;Z_{PCA} - Z_{sim} [cm] ", 100, -0.1, 0.1);
1184 
1186  ibook.book1D("ExtraPhiAtBTL", "Phi at BTL surface of extrapolated tracks; phi [deg]", 720, -180., 180.);
1187  meExtraPhiAtBTLmatched_ = ibook.book1D("ExtraPhiAtBTLmatched",
1188  "Phi at BTL surface of extrapolated tracksi matched with BTL hits; phi [deg]",
1189  720,
1190  -180.,
1191  180.);
1192  meExtraBTLeneInCone_ = ibook.book1D(
1193  "ExtraBTLeneInCone", "BTL reconstructed energy in cone arounnd extrapolated track; E [MeV]", 100, 0., 50.);
1195  ibook.book1D("ExtraMTDfailExtenderEta",
1196  "Eta of tracks extrapolated to MTD with no track extender match to hits; track eta",
1197  66,
1198  0.,
1199  3.3);
1200  ;
1202  ibook.book1D("ExtraMTDfailExtenderPt",
1203  "Pt of tracks extrapolated to MTD with no track extender match to hits; track pt [GeV] ",
1204  110,
1205  0.,
1206  11.);
1207 }
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:399
MonitorElement * meETLTrackMatchedTPDPtvsPtGen_
MonitorElement * meTrackt0SafePid_
MonitorElement * meBTLTrackEffEtaTot_
MonitorElement * meETLTrackMatchedTPDPtvsPtMtd_
MonitorElement * meBTLTrackMatchedTPPtResvsPtMtd_
MonitorElement * meTrackSigmaTof_[3]
MonitorElement * meMVATrackMatchedEffEtaTot_
MonitorElement * meTrackMatchedTPEffPtEtl2Mtd_
MonitorElement * meTrackMatchedTPmtdEffPtMtd_
MonitorElement * meETLTrackMatchedTPPtRatioMtd_
MonitorElement * meTrackMVAQual_
MonitorElement * meETLTrackEffPhiTot_[2]
MonitorElement * meTrackNumHitsNT_
MonitorElement * meTrackEtaTot_
MonitorElement * meTrackMatchedTPEffEtaEtl2Mtd_
MonitorElement * meMVATrackPullTot_
MonitorElement * meTrackMatchedTPEffPtMtd_
MonitorElement * meBTLTrackMatchedTPDPtvsPtGen_
MonitorElement * meTrackSigmat0SafePid_
MonitorElement * meETLTrackEffEtaMtd_[2]
MonitorElement * meTrackSigmat0Pid_
MonitorElement * meTrackMatchedTPmtdEffPtTot_
MonitorElement * meBTLTrackEffPtMtd_
MonitorElement * meTrackt0Src_
MonitorElement * meTracktmtd_
MonitorElement * meBTLTrackEffPtTot_
MonitorElement * meTrackPathLenghtvsEta_
MonitorElement * meTrackMatchedTPEffPtTot_
MonitorElement * meETLTrackMatchedTPPtResMtd_
MonitorElement * meETLTrackMatchedTPPtRatioGen_
MonitorElement * meExtraPtMtd_
MonitorElement * meExtraPhiAtBTLmatched_
MonitorElement * meBTLTrackMatchedTPPtRatioGen_
MonitorElement * meETLTrackEffPtMtd_[2]
MonitorElement * meExtraPtEtl2Mtd_
MonitorElement * meTrackPtTot_
MonitorElement * meMVATrackZposResTot_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * meETLTrackMatchedTP2DPtvsPtMtd_
MonitorElement * meMVATrackMatchedEffPtMtd_
MonitorElement * meTrackSigmat0Src_
MonitorElement * 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 716 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_2024v10_cff::topology, HLT_2024v10_cff::track, and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

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

◆ fillDescriptions()

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

Definition at line 1211 of file MtdTracksValidation.cc.

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

1211  {
1213 
1214  desc.add<std::string>("folder", "MTD/Tracks");
1215  desc.add<edm::InputTag>("inputTagG", edm::InputTag("generalTracks"));
1216  desc.add<edm::InputTag>("inputTagT", edm::InputTag("trackExtenderWithMTD"));
1217  desc.add<edm::InputTag>("inputTagV", edm::InputTag("offlinePrimaryVertices4D"));
1218  desc.add<edm::InputTag>("inputTagH", edm::InputTag("generatorSmeared"));
1219  desc.add<edm::InputTag>("SimTag", edm::InputTag("mix", "MergedTrackTruth"));
1220  desc.add<edm::InputTag>("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation"));
1221  desc.add<edm::InputTag>("tp2SimAssociationMapTag", edm::InputTag("mtdSimLayerClusterToTPAssociation"));
1222  desc.add<edm::InputTag>("btlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel"));
1223  desc.add<edm::InputTag>("etlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap"));
1224  desc.add<edm::InputTag>("btlRecHits", edm::InputTag("mtdRecHits", "FTLBarrel"));
1225  desc.add<edm::InputTag>("etlRecHits", edm::InputTag("mtdRecHits", "FTLEndcap"));
1226  desc.add<edm::InputTag>("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd"));
1227  desc.add<edm::InputTag>("sigmatmtd", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd"));
1228  desc.add<edm::InputTag>("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0"));
1229  desc.add<edm::InputTag>("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0"));
1230  desc.add<edm::InputTag>("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc"))
1231  ->setComment("Association between General and MTD Extended tracks");
1232  desc.add<edm::InputTag>("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:generalTrackPathLength"));
1233  desc.add<edm::InputTag>("t0SafePID", edm::InputTag("tofPID:t0safe"));
1234  desc.add<edm::InputTag>("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe"));
1235  desc.add<edm::InputTag>("sigmat0PID", edm::InputTag("tofPID:sigmat0"));
1236  desc.add<edm::InputTag>("t0PID", edm::InputTag("tofPID:t0"));
1237  desc.add<edm::InputTag>("sigmaTofPi", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofPi"));
1238  desc.add<edm::InputTag>("sigmaTofK", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofK"));
1239  desc.add<edm::InputTag>("sigmaTofP", edm::InputTag("trackExtenderWithMTD:generalTrackSigmaTofP"));
1240  desc.add<edm::InputTag>("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA"));
1241  desc.add<double>("trackMinimumPt", 0.7); // [GeV]
1242  desc.add<double>("trackMaximumBtlEta", 1.5);
1243  desc.add<double>("trackMinimumEtlEta", 1.6);
1244  desc.add<double>("trackMaximumEtlEta", 3.);
1245  desc.addUntracked<bool>("optionalPlots", true);
1246 
1247  descriptions.add("mtdTracksValid", desc);
1248 }
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 1299 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1299  {
1300  auto found = r2s_->find(recoTrack);
1301 
1302  // reco track not matched to any TP
1303  if (found == r2s_->end())
1304  return nullptr;
1305 
1306  //matched TP equal to any TP associated to in time events
1307  for (const auto& tp : found->val) {
1308  if (tp.first->eventId().bunchCrossing() == 0)
1309  return &tp.first;
1310  }
1311 
1312  // reco track not matched to any TP from vertex
1313  return nullptr;
1314 }
const reco::RecoToSimCollection * r2s_
const_iterator find(const key_type &k) const
find element with specified reference key
const_iterator end() const
last iterator over the map (read only)

◆ isETL()

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

Definition at line 107 of file MtdTracksValidation.cc.

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

Referenced by analyze().

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

◆ mvaGenRecMatch()

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

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

1290  {
1291  bool match = false;
1292  double dR = reco::deltaR(genP.momentum(), trk.momentum());
1293  double genPT = genP.momentum().perp();
1294  match = std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ &&
1295  (std::abs(trk.vz() - zsim) < deltaZcut_ || vtxFake);
1296  return match;
1297 }
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 1250 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1250  {
1251  bool match = false;
1252  if (gp.status() != 1) {
1253  return match;
1254  }
1255  match = charge != 0.f && gp.momentum().perp() > pTcut_ && std::abs(gp.momentum().eta()) < etacutGEN_;
1256  return match;
1257 }
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 1274 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().

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

◆ mvaTPSel()

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

Definition at line 1259 of file MtdTracksValidation.cc.

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

Referenced by analyze().

1259  {
1260  bool match = false;
1261  if (tp.status() != 1) {
1262  return match;
1263  }
1264  auto x_pv = tp.parentVertex()->position().x();
1265  auto y_pv = tp.parentVertex()->position().y();
1266  auto z_pv = tp.parentVertex()->position().z();
1267 
1268  auto r_pv = std::sqrt(x_pv * x_pv + y_pv * y_pv);
1269 
1270  match = tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_ && r_pv < rBTL_ && z_pv < zETL_;
1271  return match;
1272 }
static constexpr double etacutGEN_
static constexpr double pTcut_
static constexpr double rBTL_
T sqrt(T t)
Definition: SSEVec.h:19
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static constexpr double zETL_
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10

◆ uniqueId()

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

Definition at line 97 of file MtdTracksValidation.cc.

References a, b, x, and y.

Referenced by analyze().

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

Member Data Documentation

◆ btlRecHitsToken_

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

Definition at line 144 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ btlSimHitsToken_

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

Definition at line 142 of file MtdTracksValidation.cc.

Referenced by analyze(), 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 128 of file MtdTracksValidation.cc.

Referenced by checkAcceptance().

◆ deltaDRcut_

constexpr double MtdTracksValidation::deltaDRcut_ = 0.03
staticprivate

Definition at line 122 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaPTcut_

constexpr double MtdTracksValidation::deltaPTcut_ = 0.05
staticprivate

Definition at line 121 of file MtdTracksValidation.cc.

Referenced by mvaGenRecMatch().

◆ deltaZcut_

constexpr double MtdTracksValidation::deltaZcut_ = 0.1
staticprivate

Definition at line 120 of file MtdTracksValidation.cc.

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

◆ depositBTLthreshold_

constexpr double MtdTracksValidation::depositBTLthreshold_ = 1
staticprivate

Definition at line 123 of file MtdTracksValidation.cc.

Referenced by checkAcceptance().

◆ depositETLthreshold_

constexpr double MtdTracksValidation::depositETLthreshold_ = 0.001
staticprivate

Definition at line 124 of file MtdTracksValidation.cc.

◆ etacutGEN_

constexpr double MtdTracksValidation::etacutGEN_ = 4.
staticprivate

Definition at line 117 of file MtdTracksValidation.cc.

Referenced by mvaGenSel(), and mvaTPSel().

◆ etacutREC_

constexpr double MtdTracksValidation::etacutREC_ = 3.
staticprivate

Definition at line 118 of file MtdTracksValidation.cc.

Referenced by mvaRecSel().

◆ etaMatchCut_

constexpr double MtdTracksValidation::etaMatchCut_ = 0.05
staticprivate

Definition at line 127 of file MtdTracksValidation.cc.

◆ etlRecHitsToken_

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

Definition at line 145 of file MtdTracksValidation.cc.

Referenced by checkAcceptance(), and MtdTracksValidation().

◆ etlSimHitsToken_

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

Definition at line 143 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ folder_

const std::string MtdTracksValidation::folder_
private

Definition at line 111 of file MtdTracksValidation.cc.

Referenced by bookHistograms().

◆ GenRecTrackToken_

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

Definition at line 133 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ HepMCProductToken_

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

Definition at line 137 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ magfieldToken_

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

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

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 228 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioGen_
private

Definition at line 216 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtRatioMtd_
private

Definition at line 219 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResMtd_
private

Definition at line 213 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meBTLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meBTLTrackMatchedTPPtResvsPtMtd_
private

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

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2DPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2DPtvsPtMtd_
private

Definition at line 230 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioGen_
private

Definition at line 218 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtRatioMtd_
private

Definition at line 221 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResMtd_
private

Definition at line 215 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTP2PtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTP2PtResvsPtMtd_
private

Definition at line 224 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtGen_
private

Definition at line 226 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPDPtvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPDPtvsPtMtd_
private

Definition at line 229 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioGen_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioGen_
private

Definition at line 217 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtRatioMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtRatioMtd_
private

Definition at line 220 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResMtd_
private

Definition at line 214 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meETLTrackMatchedTPPtResvsPtMtd_

MonitorElement* MtdTracksValidation::meETLTrackMatchedTPPtResvsPtMtd_
private

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

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraEtaEtl2Mtd_
private

Definition at line 242 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraEtaMtd_

MonitorElement* MtdTracksValidation::meExtraEtaMtd_
private

Definition at line 241 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderEta_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderEta_
private

Definition at line 255 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraMTDfailExtenderPt_

MonitorElement* MtdTracksValidation::meExtraMTDfailExtenderPt_
private

Definition at line 256 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTL_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTL_
private

Definition at line 252 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPhiAtBTLmatched_

MonitorElement* MtdTracksValidation::meExtraPhiAtBTLmatched_
private

Definition at line 253 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meExtraPtEtl2Mtd_
private

Definition at line 211 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meExtraPtMtd_

MonitorElement* MtdTracksValidation::meExtraPtMtd_
private

Definition at line 210 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackEffEtaTot_
private

Definition at line 238 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackEffPtTot_
private

Definition at line 207 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaMtd_
private

Definition at line 240 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffEtaTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffEtaTot_
private

Definition at line 239 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtMtd_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtMtd_
private

Definition at line 209 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackMatchedEffPtTot_

MonitorElement* MtdTracksValidation::meMVATrackMatchedEffPtTot_
private

Definition at line 208 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackPullTot_

MonitorElement* MtdTracksValidation::meMVATrackPullTot_
private

Definition at line 249 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackResTot_

MonitorElement* MtdTracksValidation::meMVATrackResTot_
private

Definition at line 248 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meMVATrackZposResTot_

MonitorElement* MtdTracksValidation::meMVATrackZposResTot_
private

Definition at line 250 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackEtaTot_

MonitorElement* MtdTracksValidation::meTrackEtaTot_
private

Definition at line 237 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaEtl2Mtd_
private

Definition at line 245 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaMtd_
private

Definition at line 244 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffEtaTot_
private

Definition at line 243 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtEtl2Mtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtEtl2Mtd_
private

Definition at line 234 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtMtd_
private

Definition at line 233 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPEffPtTot_
private

Definition at line 232 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaMtd_
private

Definition at line 247 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffEtaTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffEtaTot_
private

Definition at line 246 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtMtd_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtMtd_
private

Definition at line 236 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackMatchedTPmtdEffPtTot_

MonitorElement* MtdTracksValidation::meTrackMatchedTPmtdEffPtTot_
private

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

◆ 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 206 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 203 of file MtdTracksValidation.cc.

Referenced by analyze(), and bookHistograms().

◆ meTrackSigmaTofvsP_

MonitorElement* MtdTracksValidation::meTrackSigmaTofvsP_[3]
private

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

◆ 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 148 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ pTcut_

constexpr double MtdTracksValidation::pTcut_ = 0.7
staticprivate

Definition at line 119 of file MtdTracksValidation.cc.

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

◆ r2s_

const reco::RecoToSimCollection* MtdTracksValidation::r2s_
private

Definition at line 130 of file MtdTracksValidation.cc.

Referenced by analyze(), and getMatchedTP().

◆ rBTL_

constexpr double MtdTracksValidation::rBTL_ = 110.0
staticprivate

Definition at line 125 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().

◆ recoToSimAssociationToken_

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

Definition at line 140 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecTrackToken_

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

Definition at line 134 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ RecVertexToken_

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

Definition at line 135 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ s2r_

const reco::SimToRecoCollection* MtdTracksValidation::s2r_
private

Definition at line 131 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ Sigmat0PidToken_

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

Definition at line 155 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SafePidToken_

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

Definition at line 157 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ Sigmat0SrcToken_

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

Definition at line 153 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmatmtdToken_

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

Definition at line 151 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmaTofKToken_

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

Definition at line 159 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmaTofPiToken_

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

Definition at line 158 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ SigmaTofPToken_

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

Definition at line 160 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ simToRecoAssociationToken_

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

Definition at line 139 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0PidToken_

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

Definition at line 154 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SafePidToken_

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

Definition at line 156 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ t0SrcToken_

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

Definition at line 152 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ tmtdToken_

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

Definition at line 150 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ tp2SimAssociationMapToken_

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

Definition at line 141 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackAssocToken_

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

Definition at line 147 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ trackingParticleCollectionToken_

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

Definition at line 138 of file MtdTracksValidation.cc.

Referenced by MtdTracksValidation().

◆ trackMaxBtlEta_

const float MtdTracksValidation::trackMaxBtlEta_
private

Definition at line 113 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMaxEtlEta_

const float MtdTracksValidation::trackMaxEtlEta_
private

Definition at line 115 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinEtlEta_

const float MtdTracksValidation::trackMinEtlEta_
private

Definition at line 114 of file MtdTracksValidation.cc.

Referenced by analyze(), and isETL().

◆ trackMinPt_

const float MtdTracksValidation::trackMinPt_
private

Definition at line 112 of file MtdTracksValidation.cc.

Referenced by analyze().

◆ trackMVAQualToken_

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

Definition at line 161 of file MtdTracksValidation.cc.

Referenced by analyze(), and MtdTracksValidation().

◆ zETL_

constexpr double MtdTracksValidation::zETL_ = 290.0
staticprivate

Definition at line 126 of file MtdTracksValidation.cc.

Referenced by mvaTPSel().