CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes
TrackingNtuple Class Reference

#include <NtupleDump/TrackingNtuple/plugins/TrackingNtuple.cc>

Inheritance diagram for TrackingNtuple:
edm::one::EDAnalyzer< edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

class  DetIdCommon
 
class  DetIdOTCommon
 
class  DetIdPhase2OTOnly
 
class  DetIdPixelOnly
 
class  DetIdStripOnly
 
struct  SimHitData
 
struct  TPHitIndex
 

Public Member Functions

 TrackingNtuple (const edm::ParameterSet &)
 
 ~TrackingNtuple () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::SharedResources >
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Types

using DetIdAll = CombineDetId< DetIdCommon, DetIdPixelOnly, DetIdOTCommon, DetIdStripOnly >
 
using DetIdAllPhase2 = CombineDetId< DetIdCommon, DetIdPixelOnly, DetIdOTCommon, DetIdPhase2OTOnly >
 
using DetIdPhase2OT = CombineDetId< DetIdCommon, DetIdOTCommon, DetIdPhase2OTOnly >
 
using DetIdPixel = CombineDetId< DetIdCommon, DetIdPixelOnly >
 
using DetIdStrip = CombineDetId< DetIdCommon, DetIdOTCommon, DetIdStripOnly >
 
enum  HitSimType {
  HitSimType::Signal = 0, HitSimType::ITPileup = 1, HitSimType::OOTPileup = 2, HitSimType::Noise = 3,
  HitSimType::Unknown = 99
}
 
enum  HitType {
  HitType::Pixel = 0, HitType::Strip = 1, HitType::Glued = 2, HitType::Invalid = 3,
  HitType::Phase2OT = 4, HitType::Unknown = 99
}
 
using MVACollection = std::vector< float >
 
using PixelMaskContainer = edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > >
 
using QualityMaskCollection = std::vector< unsigned char >
 
using StripMaskContainer = edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > >
 

Private Member Functions

size_t addStripMatchedHit (const SiStripMatchedRecHit2D &hit, const TrackerGeometry &tracker, const TrackerTopology &tTopo, const std::vector< std::pair< uint64_t, StripMaskContainer const *>> &stripMasks, std::vector< std::pair< int, int >> &monoStereoClusterList)
 
void analyze (const edm::Event &, const edm::EventSetup &) override
 
void clearVariables ()
 
void fillBeamSpot (const reco::BeamSpot &bs)
 
void fillCandidates (const edm::Handle< TrackCandidateCollection > &candsHandle, int algo, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const TrackingParticleRefKeyToCount &tpKeyToClusterCount, const MagneticField &mf, const reco::BeamSpot &bs, const reco::VertexCollection &vertices, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TrackerGeometry &tracker, const TrackerTopology &tTopo, const std::set< edm::ProductID > &hitProductIds, const std::map< edm::ProductID, size_t > &seedToCollIndex)
 
void fillPhase2OTHits (const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackerGeometry &tracker, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
 
void fillPixelHits (const edm::Event &iEvent, const TrackerGeometry &tracker, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
 
void fillSeeds (const edm::Event &iEvent, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const reco::BeamSpot &bs, const TrackerGeometry &tracker, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const MagneticField &theMF, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList, const std::set< edm::ProductID > &hitProductIds, std::map< edm::ProductID, size_t > &seedToCollIndex)
 
void fillSimHits (const TrackerGeometry &tracker, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const TrackerTopology &tTopo, SimHitRefKeyToIndex &simHitRefKeyToIndex, std::vector< TPHitIndex > &tpHitList)
 
void fillStripMatchedHits (const edm::Event &iEvent, const TrackerGeometry &tracker, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList)
 
void fillStripRphiStereoHits (const edm::Event &iEvent, const TrackerGeometry &tracker, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< StripDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
 
void fillTrackingParticles (const edm::Event &iEvent, const edm::EventSetup &iSetup, const edm::RefToBaseVector< reco::Track > &tracks, const reco::BeamSpot &bs, const TrackingParticleRefVector &tpCollection, const TrackingVertexRefKeyToIndex &tvKeyToIndex, const reco::TrackToTrackingParticleAssociator &associatorByHits, const std::vector< TPHitIndex > &tpHitList, const TrackingParticleRefKeyToCount &tpKeyToClusterCount)
 
void fillTrackingParticlesForSeeds (const TrackingParticleRefVector &tpCollection, const reco::SimToRecoCollection &simRecColl, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const unsigned int seedOffset)
 
void fillTrackingVertices (const TrackingVertexRefVector &trackingVertices, const TrackingParticleRefKeyToIndex &tpKeyToIndex)
 
void fillTracks (const edm::RefToBaseVector< reco::Track > &tracks, const TrackerGeometry &tracker, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const TrackingParticleRefKeyToCount &tpKeyToClusterCount, const MagneticField &mf, const reco::BeamSpot &bs, const reco::VertexCollection &vertices, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TrackerTopology &tTopo, const std::set< edm::ProductID > &hitProductIds, const std::map< edm::ProductID, size_t > &seedToCollIndex, const std::vector< const MVACollection *> &mvaColls, const std::vector< const QualityMaskCollection *> &qualColls)
 
void fillVertices (const reco::VertexCollection &vertices, const edm::RefToBaseVector< reco::Track > &tracks)
 
template<typename SimLink >
SimHitData matchCluster (const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TrackingRecHit &hit, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
 

Static Private Member Functions

static bool tpHitIndexListLess (const TPHitIndex &i, const TPHitIndex &j)
 
static bool tpHitIndexListLessSort (const TPHitIndex &i, const TPHitIndex &j)
 

Private Attributes

const bool addSeedCurvCov_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
float bsp_sigmax
 
float bsp_sigmay
 
float bsp_sigmaz
 
float bsp_x
 
float bsp_y
 
float bsp_z
 
std::string builderName_
 
std::vector< edm::EDGetTokenT< TrackCandidateCollection > > candidateTokens_
 
edm::EDGetTokenT< ClusterTPAssociationclusterTPMapToken_
 
edm::EventNumber_t ev_event
 
edm::LuminosityBlockNumber_t ev_lumi
 
edm::RunNumber_t ev_run
 
std::vector< float > glu_bbxi
 
std::vector< float > glu_chargePerCM
 
std::vector< int > glu_clustSizeMono
 
std::vector< int > glu_clustSizeStereo
 
DetIdStrip glu_detId
 
std::vector< short > glu_isBarrel
 
std::vector< int > glu_monoIdx
 
std::vector< float > glu_radL
 
std::vector< std::vector< int > > glu_seeIdx
 
std::vector< int > glu_stereoIdx
 
std::vector< uint64_t > glu_usedMaskMono
 
std::vector< uint64_t > glu_usedMaskStereo
 
std::vector< float > glu_x
 
std::vector< float > glu_xx
 
std::vector< float > glu_xy
 
std::vector< float > glu_y
 
std::vector< float > glu_yy
 
std::vector< float > glu_yz
 
std::vector< float > glu_z
 
std::vector< float > glu_zx
 
std::vector< float > glu_zz
 
const bool includeAllHits_
 
const bool includeMVA_
 
const bool includeOnTrackHitData_
 
const bool includeOOT_
 
bool includePhase2OTHits_
 
const bool includeSeeds_
 
bool includeStripHits_
 
const bool includeTrackCandidates_
 
const bool includeTrackingParticles_
 
DetIdAll inv_detId
 
DetIdAllPhase2 inv_detId_phase2
 
std::vector< short > inv_isBarrel
 
std::vector< unsigned short > inv_type
 
const bool keepEleSimHits_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmfToken_
 
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityCollectionTokens_
 
ParametersDefinerForTP parametersDefiner_
 
std::vector< float > ph2_bbxi
 
DetIdPhase2OT ph2_detId
 
std::vector< short > ph2_isBarrel
 
std::vector< std::vector< float > > ph2_onTrk_x
 
std::vector< std::vector< float > > ph2_onTrk_xx
 
std::vector< std::vector< float > > ph2_onTrk_xy
 
std::vector< std::vector< float > > ph2_onTrk_y
 
std::vector< std::vector< float > > ph2_onTrk_yy
 
std::vector< std::vector< float > > ph2_onTrk_yz
 
std::vector< std::vector< float > > ph2_onTrk_z
 
std::vector< std::vector< float > > ph2_onTrk_zx
 
std::vector< std::vector< float > > ph2_onTrk_zz
 
std::vector< float > ph2_radL
 
std::vector< std::vector< int > > ph2_seeIdx
 
std::vector< std::vector< int > > ph2_simHitIdx
 
std::vector< unsigned short > ph2_simType
 
std::vector< std::vector< int > > ph2_tcandIdx
 
std::vector< std::vector< int > > ph2_trkIdx
 
std::vector< float > ph2_x
 
std::vector< float > ph2_xx
 
std::vector< float > ph2_xy
 
std::vector< std::vector< float > > ph2_xySignificance
 
std::vector< float > ph2_y
 
std::vector< float > ph2_yy
 
std::vector< float > ph2_yz
 
std::vector< float > ph2_z
 
std::vector< float > ph2_zx
 
std::vector< float > ph2_zz
 
edm::EDGetTokenT< Phase2TrackerRecHit1DCollectionNewphase2OTRecHitToken_
 
std::vector< float > pix_bbxi
 
std::vector< std::vector< float > > pix_chargeFraction
 
std::vector< int > pix_clustSizeCol
 
std::vector< int > pix_clustSizeRow
 
DetIdPixel pix_detId
 
std::vector< short > pix_isBarrel
 
std::vector< std::vector< float > > pix_onTrk_x
 
std::vector< std::vector< float > > pix_onTrk_xx
 
std::vector< std::vector< float > > pix_onTrk_xy
 
std::vector< std::vector< float > > pix_onTrk_y
 
std::vector< std::vector< float > > pix_onTrk_yy
 
std::vector< std::vector< float > > pix_onTrk_yz
 
std::vector< std::vector< float > > pix_onTrk_z
 
std::vector< std::vector< float > > pix_onTrk_zx
 
std::vector< std::vector< float > > pix_onTrk_zz
 
std::vector< float > pix_radL
 
std::vector< std::vector< int > > pix_seeIdx
 
std::vector< std::vector< int > > pix_simHitIdx
 
std::vector< unsigned short > pix_simType
 
std::vector< std::vector< int > > pix_tcandIdx
 
std::vector< std::vector< int > > pix_trkIdx
 
std::vector< uint64_t > pix_usedMask
 
std::vector< float > pix_x
 
std::vector< float > pix_xx
 
std::vector< float > pix_xy
 
std::vector< std::vector< float > > pix_xySignificance
 
std::vector< float > pix_y
 
std::vector< float > pix_yy
 
std::vector< float > pix_yz
 
std::vector< float > pix_z
 
std::vector< float > pix_zx
 
std::vector< float > pix_zz
 
edm::EDGetTokenT< SiPixelRecHitCollectionpixelRecHitToken_
 
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > pixelSimLinkToken_
 
std::vector< std::pair< unsigned int, edm::EDGetTokenT< PixelMaskContainer > > > pixelUseMaskTokens_
 
const bool saveSimHitsP3_
 
std::vector< unsigned int > see_algo
 
std::vector< int > see_bestFromFirstHitSimTrkIdx
 
std::vector< float > see_bestFromFirstHitSimTrkShareFrac
 
std::vector< int > see_bestSimTrkIdx
 
std::vector< float > see_bestSimTrkShareFrac
 
std::vector< float > see_chi2
 
std::vector< float > see_dxy
 
std::vector< float > see_dxyErr
 
std::vector< float > see_dz
 
std::vector< float > see_dzErr
 
std::vector< float > see_eta
 
std::vector< float > see_etaErr
 
std::vector< short > see_fitok
 
std::vector< std::vector< int > > see_hitIdx
 
std::vector< std::vector< int > > see_hitType
 
std::vector< short > see_isTrue
 
std::vector< unsigned short > see_nCands
 
std::vector< unsigned int > see_nCluster
 
std::vector< unsigned int > see_nGlued
 
std::vector< unsigned int > see_nPhase2OT
 
std::vector< unsigned int > see_nPixel
 
std::vector< unsigned int > see_nStrip
 
std::vector< unsigned int > see_nValid
 
std::vector< unsigned int > see_offset
 
std::vector< float > see_phi
 
std::vector< float > see_phiErr
 
std::vector< float > see_pt
 
std::vector< float > see_ptErr
 
std::vector< float > see_px
 
std::vector< float > see_py
 
std::vector< float > see_pz
 
std::vector< int > see_q
 
std::vector< std::vector< int > > see_simTrkIdx
 
std::vector< std::vector< float > > see_simTrkShareFrac
 
std::vector< std::vector< float > > see_stateCurvCov
 
std::vector< float > see_statePt
 
std::vector< float > see_stateTrajGlbPx
 
std::vector< float > see_stateTrajGlbPy
 
std::vector< float > see_stateTrajGlbPz
 
std::vector< float > see_stateTrajGlbX
 
std::vector< float > see_stateTrajGlbY
 
std::vector< float > see_stateTrajGlbZ
 
std::vector< float > see_stateTrajPx
 
std::vector< float > see_stateTrajPy
 
std::vector< float > see_stateTrajPz
 
std::vector< float > see_stateTrajX
 
std::vector< float > see_stateTrajY
 
std::vector< unsigned short > see_stopReason
 
std::vector< int > see_tcandIdx
 
std::vector< int > see_trkIdx
 
std::vector< edm::EDGetTokenT< std::vector< SeedStopInfo > > > seedStopInfoTokens_
 
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > seedTokens_
 
std::vector< int > sim_bunchCrossing
 
std::vector< std::vector< int > > sim_decayVtxIdx
 
std::vector< float > sim_eta
 
std::vector< int > sim_event
 
std::vector< std::vector< int > > sim_genPdgIds
 
std::vector< int > sim_isFromBHadron
 
std::vector< unsigned int > sim_n3DLay
 
std::vector< unsigned int > sim_nLay
 
std::vector< unsigned int > sim_nPixel
 
std::vector< unsigned int > sim_nPixelLay
 
std::vector< unsigned int > sim_nRecoClusters
 
std::vector< unsigned int > sim_nStrip
 
std::vector< unsigned int > sim_nTrackerHits
 
std::vector< unsigned int > sim_nValid
 
std::vector< int > sim_parentVtxIdx
 
std::vector< float > sim_pca_cotTheta
 
std::vector< float > sim_pca_dxy
 
std::vector< float > sim_pca_dz
 
std::vector< float > sim_pca_eta
 
std::vector< float > sim_pca_lambda
 
std::vector< float > sim_pca_phi
 
std::vector< float > sim_pca_pt
 
std::vector< int > sim_pdgId
 
std::vector< float > sim_phi
 
std::vector< float > sim_pt
 
std::vector< float > sim_px
 
std::vector< float > sim_py
 
std::vector< float > sim_pz
 
std::vector< int > sim_q
 
std::vector< std::vector< int > > sim_seedIdx
 
std::vector< std::vector< int > > sim_simHitIdx
 
std::vector< std::vector< int > > sim_trkIdx
 
std::vector< std::vector< float > > sim_trkShareFrac
 
DetIdAll simhit_detId
 
DetIdAllPhase2 simhit_detId_phase2
 
std::vector< float > simhit_eloss
 
std::vector< std::vector< int > > simhit_hitIdx
 
std::vector< std::vector< int > > simhit_hitType
 
std::vector< int > simhit_particle
 
std::vector< short > simhit_process
 
std::vector< float > simhit_px
 
std::vector< float > simhit_py
 
std::vector< float > simhit_pz
 
std::vector< int > simhit_simTrkIdx
 
std::vector< float > simhit_tof
 
std::vector< float > simhit_x
 
std::vector< float > simhit_y
 
std::vector< float > simhit_z
 
const bool simHitBySignificance_
 
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationListsimHitTPMapToken_
 
std::vector< int > simpv_idx
 
std::vector< int > simvtx_bunchCrossing
 
std::vector< std::vector< int > > simvtx_daughterSimIdx
 
std::vector< int > simvtx_event
 
std::vector< unsigned int > simvtx_processType
 
std::vector< std::vector< int > > simvtx_sourceSimIdx
 
std::vector< float > simvtx_x
 
std::vector< float > simvtx_y
 
std::vector< float > simvtx_z
 
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
 
std::vector< float > str_bbxi
 
std::vector< std::vector< float > > str_chargeFraction
 
std::vector< float > str_chargePerCM
 
std::vector< int > str_clustSize
 
DetIdStrip str_detId
 
std::vector< short > str_isBarrel
 
std::vector< std::vector< float > > str_onTrk_x
 
std::vector< std::vector< float > > str_onTrk_xx
 
std::vector< std::vector< float > > str_onTrk_xy
 
std::vector< std::vector< float > > str_onTrk_y
 
std::vector< std::vector< float > > str_onTrk_yy
 
std::vector< std::vector< float > > str_onTrk_yz
 
std::vector< std::vector< float > > str_onTrk_z
 
std::vector< std::vector< float > > str_onTrk_zx
 
std::vector< std::vector< float > > str_onTrk_zz
 
std::vector< float > str_radL
 
std::vector< std::vector< int > > str_seeIdx
 
std::vector< std::vector< int > > str_simHitIdx
 
std::vector< unsigned short > str_simType
 
std::vector< std::vector< int > > str_tcandIdx
 
std::vector< std::vector< int > > str_trkIdx
 
std::vector< uint64_t > str_usedMask
 
std::vector< float > str_x
 
std::vector< float > str_xx
 
std::vector< float > str_xy
 
std::vector< std::vector< float > > str_xySignificance
 
std::vector< float > str_y
 
std::vector< float > str_yy
 
std::vector< float > str_yz
 
std::vector< float > str_z
 
std::vector< float > str_zx
 
std::vector< float > str_zz
 
edm::EDGetTokenT< SiStripMatchedRecHit2DCollectionstripMatchedRecHitToken_
 
edm::EDGetTokenT< SiStripRecHit2DCollectionstripRphiRecHitToken_
 
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > stripSimLinkToken_
 
edm::EDGetTokenT< SiStripRecHit2DCollectionstripStereoRecHitToken_
 
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
 
TTree * t
 
std::vector< unsigned int > tcand_algo
 
std::vector< int > tcand_bestFromFirstHitSimTrkIdx
 
std::vector< float > tcand_bestFromFirstHitSimTrkNChi2
 
std::vector< float > tcand_bestFromFirstHitSimTrkShareFrac
 
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom
 
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimDenom
 
std::vector< int > tcand_bestSimTrkIdx
 
std::vector< float > tcand_bestSimTrkNChi2
 
std::vector< float > tcand_bestSimTrkShareFrac
 
std::vector< float > tcand_bestSimTrkShareFracSimClusterDenom
 
std::vector< float > tcand_bestSimTrkShareFracSimDenom
 
std::vector< std::vector< int > > tcand_hitIdx
 
std::vector< std::vector< int > > tcand_hitType
 
std::vector< short > tcand_isTrue
 
std::vector< float > tcand_lambdaErr
 
std::vector< unsigned int > tcand_nCluster
 
std::vector< float > tcand_ndof
 
std::vector< unsigned int > tcand_nPixel
 
std::vector< unsigned int > tcand_nStrip
 
std::vector< unsigned int > tcand_nValid
 
std::vector< float > tcand_pca_dxy
 
std::vector< float > tcand_pca_dxyErr
 
std::vector< float > tcand_pca_dz
 
std::vector< float > tcand_pca_dzErr
 
std::vector< float > tcand_pca_eta
 
std::vector< float > tcand_pca_etaErr
 
std::vector< float > tcand_pca_lambdaErr
 
std::vector< float > tcand_pca_phi
 
std::vector< float > tcand_pca_phiErr
 
std::vector< float > tcand_pca_pt
 
std::vector< float > tcand_pca_ptErr
 
std::vector< float > tcand_pca_px
 
std::vector< float > tcand_pca_py
 
std::vector< float > tcand_pca_pz
 
std::vector< short > tcand_pca_valid
 
std::vector< float > tcand_phiErr
 
std::vector< float > tcand_pt
 
std::vector< float > tcand_px
 
std::vector< float > tcand_py
 
std::vector< float > tcand_pz
 
std::vector< int > tcand_q
 
std::vector< float > tcand_qbpErr
 
std::vector< int > tcand_seedIdx
 
std::vector< std::vector< int > > tcand_simTrkIdx
 
std::vector< std::vector< float > > tcand_simTrkNChi2
 
std::vector< std::vector< float > > tcand_simTrkShareFrac
 
std::vector< unsigned short > tcand_stopReason
 
std::vector< int > tcand_vtxIdx
 
std::vector< float > tcand_x
 
std::vector< float > tcand_xtErr
 
std::vector< float > tcand_y
 
std::vector< float > tcand_ytErr
 
std::vector< float > tcand_z
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtGeomToken_
 
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNLayersToken_
 
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNPixelLayersToken_
 
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNStripStereoLayersToken_
 
HistoryBase tracer_
 
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociatortrackAssociatorToken_
 
edm::EDGetTokenT< TrackingParticleRefVectortrackingParticleRefToken_
 
edm::EDGetTokenT< TrackingParticleCollectiontrackingParticleToken_
 
edm::EDGetTokenT< TrackingVertexCollectiontrackingVertexToken_
 
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
 
std::vector< unsigned int > trk_algo
 
std::vector< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
 
std::vector< int > trk_bestFromFirstHitSimTrkIdx
 
std::vector< float > trk_bestFromFirstHitSimTrkNChi2
 
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
 
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
 
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
 
std::vector< int > trk_bestSimTrkIdx
 
std::vector< float > trk_bestSimTrkNChi2
 
std::vector< float > trk_bestSimTrkShareFrac
 
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
 
std::vector< float > trk_bestSimTrkShareFracSimDenom
 
std::vector< float > trk_cotTheta
 
std::vector< float > trk_dxy
 
std::vector< float > trk_dxyClosestPV
 
std::vector< float > trk_dxyErr
 
std::vector< float > trk_dxyPV
 
std::vector< float > trk_dz
 
std::vector< float > trk_dzClosestPV
 
std::vector< float > trk_dzErr
 
std::vector< float > trk_dzPV
 
std::vector< float > trk_eta
 
std::vector< float > trk_etaErr
 
std::vector< std::vector< int > > trk_hitIdx
 
std::vector< std::vector< int > > trk_hitType
 
std::vector< float > trk_inner_pt
 
std::vector< float > trk_inner_px
 
std::vector< float > trk_inner_py
 
std::vector< float > trk_inner_pz
 
std::vector< short > trk_isHP
 
std::vector< short > trk_isTrue
 
std::vector< float > trk_lambda
 
std::vector< float > trk_lambdaErr
 
std::vector< std::vector< float > > trk_mvas
 
std::vector< unsigned int > trk_n3DLay
 
std::vector< float > trk_nChi2
 
std::vector< float > trk_nChi2_1Dmod
 
std::vector< unsigned int > trk_nCluster
 
std::vector< float > trk_ndof
 
std::vector< unsigned int > trk_nInactive
 
std::vector< unsigned int > trk_nInnerInactive
 
std::vector< unsigned int > trk_nInnerLost
 
std::vector< unsigned int > trk_nLost
 
std::vector< unsigned int > trk_nLostLay
 
std::vector< unsigned int > trk_nOuterInactive
 
std::vector< unsigned int > trk_nOuterLost
 
std::vector< unsigned int > trk_nPixel
 
std::vector< unsigned int > trk_nPixelLay
 
std::vector< unsigned int > trk_nStrip
 
std::vector< unsigned int > trk_nStripLay
 
std::vector< unsigned int > trk_nValid
 
std::vector< unsigned int > trk_originalAlgo
 
std::vector< float > trk_outer_pt
 
std::vector< float > trk_outer_px
 
std::vector< float > trk_outer_py
 
std::vector< float > trk_outer_pz
 
std::vector< float > trk_phi
 
std::vector< float > trk_phiErr
 
std::vector< float > trk_pt
 
std::vector< float > trk_ptErr
 
std::vector< float > trk_px
 
std::vector< float > trk_py
 
std::vector< float > trk_pz
 
std::vector< int > trk_q
 
std::vector< std::vector< unsigned short > > trk_qualityMasks
 
std::vector< float > trk_refpoint_x
 
std::vector< float > trk_refpoint_y
 
std::vector< float > trk_refpoint_z
 
std::vector< int > trk_seedIdx
 
std::vector< std::vector< int > > trk_simTrkIdx
 
std::vector< std::vector< float > > trk_simTrkNChi2
 
std::vector< std::vector< float > > trk_simTrkShareFrac
 
std::vector< unsigned short > trk_stopReason
 
std::vector< int > trk_vtxIdx
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
edm::EDGetTokenT< reco::VertexCollectionvertexToken_
 
std::vector< float > vtx_chi2
 
std::vector< short > vtx_fake
 
std::vector< float > vtx_ndof
 
std::vector< std::vector< int > > vtx_trkIdx
 
std::vector< short > vtx_valid
 
std::vector< float > vtx_x
 
std::vector< float > vtx_xErr
 
std::vector< float > vtx_y
 
std::vector< float > vtx_yErr
 
std::vector< float > vtx_z
 
std::vector< float > vtx_zErr
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 470 of file TrackingNtuple.cc.

Member Typedef Documentation

◆ DetIdAll

Definition at line 979 of file TrackingNtuple.cc.

◆ DetIdAllPhase2

Definition at line 980 of file TrackingNtuple.cc.

◆ DetIdPhase2OT

Definition at line 978 of file TrackingNtuple.cc.

◆ DetIdPixel

using TrackingNtuple::DetIdPixel = CombineDetId<DetIdCommon, DetIdPixelOnly>
private

Definition at line 976 of file TrackingNtuple.cc.

◆ DetIdStrip

Definition at line 977 of file TrackingNtuple.cc.

◆ MVACollection

using TrackingNtuple::MVACollection = std::vector<float>
private

Definition at line 490 of file TrackingNtuple.cc.

◆ PixelMaskContainer

Definition at line 493 of file TrackingNtuple.cc.

◆ QualityMaskCollection

using TrackingNtuple::QualityMaskCollection = std::vector<unsigned char>
private

Definition at line 491 of file TrackingNtuple.cc.

◆ StripMaskContainer

Definition at line 494 of file TrackingNtuple.cc.

Member Enumeration Documentation

◆ HitSimType

enum TrackingNtuple::HitSimType
strongprivate
Enumerator
Signal 
ITPileup 
OOTPileup 
Noise 
Unknown 

Definition at line 488 of file TrackingNtuple.cc.

◆ HitType

enum TrackingNtuple::HitType
strongprivate
Enumerator
Pixel 
Strip 
Glued 
Invalid 
Phase2OT 
Unknown 

Definition at line 482 of file TrackingNtuple.cc.

Constructor & Destructor Documentation

◆ TrackingNtuple()

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

Definition at line 1412 of file TrackingNtuple.cc.

References addSeedCurvCov_, cms::cuda::assert(), bsp_sigmax, bsp_sigmay, bsp_sigmaz, bsp_x, bsp_y, bsp_z, candidateTokens_, HistoryBase::depth(), ev_event, ev_lumi, ev_run, Exception, compareTotals::fs, edm::ParameterSet::getUntrackedParameter(), edm::ParameterSet::getUntrackedParameterSetVector(), glu_bbxi, glu_chargePerCM, glu_clustSizeMono, glu_clustSizeStereo, glu_detId, glu_isBarrel, glu_monoIdx, glu_radL, glu_seeIdx, glu_stereoIdx, glu_usedMaskMono, glu_usedMaskStereo, glu_x, glu_xx, glu_xy, glu_y, glu_yy, glu_yz, glu_z, glu_zx, glu_zz, mps_fire::i, includeAllHits_, includeMVA_, includeOnTrackHitData_, includePhase2OTHits_, includeSeeds_, includeStripHits_, includeTrackCandidates_, includeTrackingParticles_, inv_detId, inv_detId_phase2, inv_isBarrel, inv_type, TFileService::kSharedResource, gpuClustering::pixelStatus::mask, mvaQualityCollectionTokens_, ph2_bbxi, ph2_detId, ph2_isBarrel, ph2_onTrk_x, ph2_onTrk_xx, ph2_onTrk_xy, ph2_onTrk_y, ph2_onTrk_yy, ph2_onTrk_yz, ph2_onTrk_z, ph2_onTrk_zx, ph2_onTrk_zz, ph2_radL, ph2_seeIdx, ph2_simHitIdx, ph2_simType, ph2_tcandIdx, ph2_trkIdx, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, pix_bbxi, pix_chargeFraction, pix_clustSizeCol, pix_clustSizeRow, pix_detId, pix_isBarrel, pix_onTrk_x, pix_onTrk_xx, pix_onTrk_xy, pix_onTrk_y, pix_onTrk_yy, pix_onTrk_yz, pix_onTrk_z, pix_onTrk_zx, pix_onTrk_zz, pix_radL, pix_seeIdx, pix_simHitIdx, pix_simType, pix_tcandIdx, pix_trkIdx, pix_usedMask, pix_x, pix_xx, pix_xy, pix_xySignificance, pix_y, pix_yy, pix_yz, pix_z, pix_zx, pix_zz, pixelUseMaskTokens_, saveSimHitsP3_, see_algo, see_bestFromFirstHitSimTrkIdx, see_bestFromFirstHitSimTrkShareFrac, see_bestSimTrkIdx, see_bestSimTrkShareFrac, see_chi2, see_dxy, see_dxyErr, see_dz, see_dzErr, see_eta, see_etaErr, see_fitok, see_hitIdx, see_hitType, see_isTrue, see_nCands, see_nCluster, see_nGlued, see_nPhase2OT, see_nPixel, see_nStrip, see_nValid, see_offset, see_phi, see_phiErr, see_pt, see_ptErr, see_px, see_py, see_pz, see_q, see_simTrkIdx, see_simTrkShareFrac, see_stateCurvCov, see_statePt, see_stateTrajGlbPx, see_stateTrajGlbPy, see_stateTrajGlbPz, see_stateTrajGlbX, see_stateTrajGlbY, see_stateTrajGlbZ, see_stateTrajPx, see_stateTrajPy, see_stateTrajPz, see_stateTrajX, see_stateTrajY, see_stopReason, see_tcandIdx, see_trkIdx, seedStopInfoTokens_, seedTokens_, sim_bunchCrossing, sim_decayVtxIdx, sim_eta, sim_event, sim_genPdgIds, sim_isFromBHadron, sim_n3DLay, sim_nLay, sim_nPixel, sim_nPixelLay, sim_nRecoClusters, sim_nStrip, sim_nTrackerHits, sim_nValid, sim_parentVtxIdx, sim_pca_cotTheta, sim_pca_dxy, sim_pca_dz, sim_pca_eta, sim_pca_lambda, sim_pca_phi, sim_pca_pt, sim_pdgId, sim_phi, sim_pt, sim_px, sim_py, sim_pz, sim_q, sim_seedIdx, sim_simHitIdx, sim_trkIdx, sim_trkShareFrac, simhit_detId, simhit_detId_phase2, simhit_eloss, simhit_hitIdx, simhit_hitType, simhit_particle, simhit_process, simhit_px, simhit_py, simhit_pz, simhit_simTrkIdx, simhit_tof, simhit_x, simhit_y, simhit_z, simHitBySignificance_, simpv_idx, simvtx_bunchCrossing, simvtx_daughterSimIdx, simvtx_event, simvtx_processType, simvtx_sourceSimIdx, simvtx_x, simvtx_y, simvtx_z, str_bbxi, str_chargeFraction, str_chargePerCM, str_clustSize, str_detId, str_isBarrel, str_onTrk_x, str_onTrk_xx, str_onTrk_xy, str_onTrk_y, str_onTrk_yy, str_onTrk_yz, str_onTrk_z, str_onTrk_zx, str_onTrk_zz, str_radL, str_seeIdx, str_simHitIdx, str_simType, str_tcandIdx, str_trkIdx, str_usedMask, str_x, str_xx, str_xy, str_xySignificance, str_y, str_yy, str_yz, str_z, str_zx, str_zz, AlCaHLTBitMon_QueryRunRegistry::string, stripUseMaskTokens_, t, makeGlobalPositionRcd_cfg::tag, tcand_algo, tcand_bestFromFirstHitSimTrkIdx, tcand_bestFromFirstHitSimTrkNChi2, tcand_bestFromFirstHitSimTrkShareFrac, tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom, tcand_bestFromFirstHitSimTrkShareFracSimDenom, tcand_bestSimTrkIdx, tcand_bestSimTrkNChi2, tcand_bestSimTrkShareFrac, tcand_bestSimTrkShareFracSimClusterDenom, tcand_bestSimTrkShareFracSimDenom, tcand_hitIdx, tcand_hitType, tcand_isTrue, tcand_lambdaErr, tcand_nCluster, tcand_ndof, tcand_nPixel, tcand_nStrip, tcand_nValid, tcand_pca_dxy, tcand_pca_dxyErr, tcand_pca_dz, tcand_pca_dzErr, tcand_pca_eta, tcand_pca_etaErr, tcand_pca_lambdaErr, tcand_pca_phi, tcand_pca_phiErr, tcand_pca_pt, tcand_pca_ptErr, tcand_pca_px, tcand_pca_py, tcand_pca_pz, tcand_pca_valid, tcand_phiErr, tcand_pt, tcand_px, tcand_py, tcand_pz, tcand_q, tcand_qbpErr, tcand_seedIdx, tcand_simTrkIdx, tcand_simTrkNChi2, tcand_simTrkShareFrac, tcand_stopReason, tcand_vtxIdx, tcand_x, tcand_xtErr, tcand_y, tcand_ytErr, tcand_z, cond::impl::to_string(), MuonAssociatorByHits_cfi::tpTag, tracer_, trackingParticleRefToken_, trackingParticleToken_, trk_algo, trk_algoMask, trk_bestFromFirstHitSimTrkIdx, trk_bestFromFirstHitSimTrkNChi2, trk_bestFromFirstHitSimTrkShareFrac, trk_bestFromFirstHitSimTrkShareFracSimClusterDenom, trk_bestFromFirstHitSimTrkShareFracSimDenom, trk_bestSimTrkIdx, trk_bestSimTrkNChi2, trk_bestSimTrkShareFrac, trk_bestSimTrkShareFracSimClusterDenom, trk_bestSimTrkShareFracSimDenom, trk_cotTheta, trk_dxy, trk_dxyClosestPV, trk_dxyErr, trk_dxyPV, trk_dz, trk_dzClosestPV, trk_dzErr, trk_dzPV, trk_eta, trk_etaErr, trk_hitIdx, trk_hitType, trk_inner_pt, trk_inner_px, trk_inner_py, trk_inner_pz, trk_isHP, trk_isTrue, trk_lambda, trk_lambdaErr, trk_mvas, trk_n3DLay, trk_nChi2, trk_nChi2_1Dmod, trk_nCluster, trk_ndof, trk_nInactive, trk_nInnerInactive, trk_nInnerLost, trk_nLost, trk_nLostLay, trk_nOuterInactive, trk_nOuterLost, trk_nPixel, trk_nPixelLay, trk_nStrip, trk_nStripLay, trk_nValid, trk_originalAlgo, trk_outer_pt, trk_outer_px, trk_outer_py, trk_outer_pz, trk_phi, trk_phiErr, trk_pt, trk_ptErr, trk_px, trk_py, trk_pz, trk_q, trk_qualityMasks, trk_refpoint_x, trk_refpoint_y, trk_refpoint_z, trk_seedIdx, trk_simTrkIdx, trk_simTrkNChi2, trk_simTrkShareFrac, trk_stopReason, trk_vtxIdx, edm::vector_transform(), vtx_chi2, vtx_fake, vtx_ndof, vtx_trkIdx, vtx_valid, vtx_x, vtx_xErr, vtx_y, vtx_yErr, vtx_z, and vtx_zErr.

1413  : mfToken_(esConsumes()),
1417  clusterTPMapToken_(consumes<ClusterTPAssociation>(iConfig.getUntrackedParameter<edm::InputTag>("clusterTPMap"))),
1418  simHitTPMapToken_(consumes<SimHitTPAssociationProducer::SimHitTPAssociationList>(
1419  iConfig.getUntrackedParameter<edm::InputTag>("simHitTPMap"))),
1420  trackAssociatorToken_(consumes<reco::TrackToTrackingParticleAssociator>(
1421  iConfig.getUntrackedParameter<edm::InputTag>("trackAssociator"))),
1423  iConfig.getUntrackedParameter<edm::InputTag>("pixelDigiSimLink"))),
1425  iConfig.getUntrackedParameter<edm::InputTag>("stripDigiSimLink"))),
1427  iConfig.getUntrackedParameter<edm::InputTag>("phase2OTSimLink"))),
1428  includeStripHits_(!iConfig.getUntrackedParameter<edm::InputTag>("stripDigiSimLink").label().empty()),
1429  includePhase2OTHits_(!iConfig.getUntrackedParameter<edm::InputTag>("phase2OTSimLink").label().empty()),
1430  beamSpotToken_(consumes<reco::BeamSpot>(iConfig.getUntrackedParameter<edm::InputTag>("beamSpot"))),
1432  consumes<SiPixelRecHitCollection>(iConfig.getUntrackedParameter<edm::InputTag>("pixelRecHits"))),
1434  consumes<SiStripRecHit2DCollection>(iConfig.getUntrackedParameter<edm::InputTag>("stripRphiRecHits"))),
1436  consumes<SiStripRecHit2DCollection>(iConfig.getUntrackedParameter<edm::InputTag>("stripStereoRecHits"))),
1437  stripMatchedRecHitToken_(consumes<SiStripMatchedRecHit2DCollection>(
1438  iConfig.getUntrackedParameter<edm::InputTag>("stripMatchedRecHits"))),
1439  phase2OTRecHitToken_(consumes<Phase2TrackerRecHit1DCollectionNew>(
1440  iConfig.getUntrackedParameter<edm::InputTag>("phase2OTRecHits"))),
1441  vertexToken_(consumes<reco::VertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("vertices"))),
1443  consumes<TrackingVertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("trackingVertices"))),
1445  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNlayers"))),
1447  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNpixellayers"))),
1449  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNstripstereolayers"))),
1450  includeSeeds_(iConfig.getUntrackedParameter<bool>("includeSeeds")),
1451  includeTrackCandidates_(iConfig.getUntrackedParameter<bool>("includeTrackCandidates")),
1452  addSeedCurvCov_(iConfig.getUntrackedParameter<bool>("addSeedCurvCov")),
1453  includeAllHits_(iConfig.getUntrackedParameter<bool>("includeAllHits")),
1454  includeOnTrackHitData_(iConfig.getUntrackedParameter<bool>("includeOnTrackHitData")),
1455  includeMVA_(iConfig.getUntrackedParameter<bool>("includeMVA")),
1456  includeTrackingParticles_(iConfig.getUntrackedParameter<bool>("includeTrackingParticles")),
1457  includeOOT_(iConfig.getUntrackedParameter<bool>("includeOOT")),
1458  keepEleSimHits_(iConfig.getUntrackedParameter<bool>("keepEleSimHits")),
1459  saveSimHitsP3_(iConfig.getUntrackedParameter<bool>("saveSimHitsP3")),
1460  simHitBySignificance_(iConfig.getUntrackedParameter<bool>("simHitBySignificance")),
1462  if (includeSeeds_) {
1463  seedTokens_ =
1464  edm::vector_transform(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("seedTracks"),
1465  [&](const edm::InputTag& tag) { return consumes<edm::View<reco::Track>>(tag); });
1467  edm::vector_transform(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("trackCandidates"),
1468  [&](const edm::InputTag& tag) { return consumes<std::vector<SeedStopInfo>>(tag); });
1469  if (seedTokens_.size() != seedStopInfoTokens_.size()) {
1470  throw cms::Exception("Configuration") << "Got " << seedTokens_.size() << " seed collections, but "
1471  << seedStopInfoTokens_.size() << " track candidate collections";
1472  }
1473  }
1476  edm::vector_transform(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("trackCandidates"),
1477  [&](const edm::InputTag& tag) { return consumes<TrackCandidateCollection>(tag); });
1478 
1479  if (includeAllHits_) {
1481  throw cms::Exception("Configuration")
1482  << "Both stripDigiSimLink and phase2OTSimLink are set, please set only either one (this information is used "
1483  "to infer if you're running phase0/1 or phase2 detector)";
1484  }
1486  throw cms::Exception("Configuration")
1487  << "Neither stripDigiSimLink or phase2OTSimLink are set, please set either one.";
1488  }
1489 
1490  auto const& maskVPset = iConfig.getUntrackedParameterSetVector("clusterMasks");
1491  pixelUseMaskTokens_.reserve(maskVPset.size());
1492  stripUseMaskTokens_.reserve(maskVPset.size());
1493  for (auto const& mask : maskVPset) {
1494  auto index = mask.getUntrackedParameter<unsigned int>("index");
1495  assert(index < 64);
1496  pixelUseMaskTokens_.emplace_back(index,
1497  consumes<PixelMaskContainer>(mask.getUntrackedParameter<edm::InputTag>("src")));
1498  if (includeStripHits_)
1499  stripUseMaskTokens_.emplace_back(
1500  index, consumes<StripMaskContainer>(mask.getUntrackedParameter<edm::InputTag>("src")));
1501  }
1502  }
1503 
1504  const bool tpRef = iConfig.getUntrackedParameter<bool>("trackingParticlesRef");
1505  const auto tpTag = iConfig.getUntrackedParameter<edm::InputTag>("trackingParticles");
1506  if (tpRef) {
1507  trackingParticleRefToken_ = consumes<TrackingParticleRefVector>(tpTag);
1508  } else {
1509  trackingParticleToken_ = consumes<TrackingParticleCollection>(tpTag);
1510  }
1511 
1512  tracer_.depth(-2); // as in SimTracker/TrackHistory/src/TrackClassifier.cc
1513 
1514  if (includeMVA_) {
1516  iConfig.getUntrackedParameter<std::vector<std::string>>("trackMVAs"), [&](const std::string& tag) {
1517  return std::make_tuple(consumes<MVACollection>(edm::InputTag(tag, "MVAValues")),
1518  consumes<QualityMaskCollection>(edm::InputTag(tag, "QualityMasks")));
1519  });
1520  }
1521 
1522  usesResource(TFileService::kSharedResource);
1524  t = fs->make<TTree>("tree", "tree");
1525 
1526  t->Branch("event", &ev_event);
1527  t->Branch("lumi", &ev_lumi);
1528  t->Branch("run", &ev_run);
1529 
1530  //tracks
1531  t->Branch("trk_px", &trk_px);
1532  t->Branch("trk_py", &trk_py);
1533  t->Branch("trk_pz", &trk_pz);
1534  t->Branch("trk_pt", &trk_pt);
1535  t->Branch("trk_inner_px", &trk_inner_px);
1536  t->Branch("trk_inner_py", &trk_inner_py);
1537  t->Branch("trk_inner_pz", &trk_inner_pz);
1538  t->Branch("trk_inner_pt", &trk_inner_pt);
1539  t->Branch("trk_outer_px", &trk_outer_px);
1540  t->Branch("trk_outer_py", &trk_outer_py);
1541  t->Branch("trk_outer_pz", &trk_outer_pz);
1542  t->Branch("trk_outer_pt", &trk_outer_pt);
1543  t->Branch("trk_eta", &trk_eta);
1544  t->Branch("trk_lambda", &trk_lambda);
1545  t->Branch("trk_cotTheta", &trk_cotTheta);
1546  t->Branch("trk_phi", &trk_phi);
1547  t->Branch("trk_dxy", &trk_dxy);
1548  t->Branch("trk_dz", &trk_dz);
1549  t->Branch("trk_dxyPV", &trk_dxyPV);
1550  t->Branch("trk_dzPV", &trk_dzPV);
1551  t->Branch("trk_dxyClosestPV", &trk_dxyClosestPV);
1552  t->Branch("trk_dzClosestPV", &trk_dzClosestPV);
1553  t->Branch("trk_ptErr", &trk_ptErr);
1554  t->Branch("trk_etaErr", &trk_etaErr);
1555  t->Branch("trk_lambdaErr", &trk_lambdaErr);
1556  t->Branch("trk_phiErr", &trk_phiErr);
1557  t->Branch("trk_dxyErr", &trk_dxyErr);
1558  t->Branch("trk_dzErr", &trk_dzErr);
1559  t->Branch("trk_refpoint_x", &trk_refpoint_x);
1560  t->Branch("trk_refpoint_y", &trk_refpoint_y);
1561  t->Branch("trk_refpoint_z", &trk_refpoint_z);
1562  t->Branch("trk_nChi2", &trk_nChi2);
1563  t->Branch("trk_nChi2_1Dmod", &trk_nChi2_1Dmod);
1564  t->Branch("trk_ndof", &trk_ndof);
1565  if (includeMVA_) {
1566  trk_mvas.resize(mvaQualityCollectionTokens_.size());
1568  if (!trk_mvas.empty()) {
1569  t->Branch("trk_mva", &(trk_mvas[0]));
1570  t->Branch("trk_qualityMask", &(trk_qualityMasks[0]));
1571  for (size_t i = 1; i < trk_mvas.size(); ++i) {
1572  t->Branch(("trk_mva" + std::to_string(i + 1)).c_str(), &(trk_mvas[i]));
1573  t->Branch(("trk_qualityMask" + std::to_string(i + 1)).c_str(), &(trk_qualityMasks[i]));
1574  }
1575  }
1576  }
1577  t->Branch("trk_q", &trk_q);
1578  t->Branch("trk_nValid", &trk_nValid);
1579  t->Branch("trk_nLost", &trk_nLost);
1580  t->Branch("trk_nInactive", &trk_nInactive);
1581  t->Branch("trk_nPixel", &trk_nPixel);
1582  t->Branch("trk_nStrip", &trk_nStrip);
1583  t->Branch("trk_nOuterLost", &trk_nOuterLost);
1584  t->Branch("trk_nInnerLost", &trk_nInnerLost);
1585  t->Branch("trk_nOuterInactive", &trk_nOuterInactive);
1586  t->Branch("trk_nInnerInactive", &trk_nInnerInactive);
1587  t->Branch("trk_nPixelLay", &trk_nPixelLay);
1588  t->Branch("trk_nStripLay", &trk_nStripLay);
1589  t->Branch("trk_n3DLay", &trk_n3DLay);
1590  t->Branch("trk_nLostLay", &trk_nLostLay);
1591  t->Branch("trk_nCluster", &trk_nCluster);
1592  t->Branch("trk_algo", &trk_algo);
1593  t->Branch("trk_originalAlgo", &trk_originalAlgo);
1594  t->Branch("trk_algoMask", &trk_algoMask);
1595  t->Branch("trk_stopReason", &trk_stopReason);
1596  t->Branch("trk_isHP", &trk_isHP);
1597  if (includeSeeds_) {
1598  t->Branch("trk_seedIdx", &trk_seedIdx);
1599  }
1600  t->Branch("trk_vtxIdx", &trk_vtxIdx);
1602  t->Branch("trk_simTrkIdx", &trk_simTrkIdx);
1603  t->Branch("trk_simTrkShareFrac", &trk_simTrkShareFrac);
1604  t->Branch("trk_simTrkNChi2", &trk_simTrkNChi2);
1605  t->Branch("trk_bestSimTrkIdx", &trk_bestSimTrkIdx);
1606  t->Branch("trk_bestFromFirstHitSimTrkIdx", &trk_bestFromFirstHitSimTrkIdx);
1607  } else {
1608  t->Branch("trk_isTrue", &trk_isTrue);
1609  }
1610  t->Branch("trk_bestSimTrkShareFrac", &trk_bestSimTrkShareFrac);
1611  t->Branch("trk_bestSimTrkShareFracSimDenom", &trk_bestSimTrkShareFracSimDenom);
1612  t->Branch("trk_bestSimTrkShareFracSimClusterDenom", &trk_bestSimTrkShareFracSimClusterDenom);
1613  t->Branch("trk_bestSimTrkNChi2", &trk_bestSimTrkNChi2);
1614  t->Branch("trk_bestFromFirstHitSimTrkShareFrac", &trk_bestFromFirstHitSimTrkShareFrac);
1615  t->Branch("trk_bestFromFirstHitSimTrkShareFracSimDenom", &trk_bestFromFirstHitSimTrkShareFracSimDenom);
1616  t->Branch("trk_bestFromFirstHitSimTrkShareFracSimClusterDenom", &trk_bestFromFirstHitSimTrkShareFracSimClusterDenom);
1617  t->Branch("trk_bestFromFirstHitSimTrkNChi2", &trk_bestFromFirstHitSimTrkNChi2);
1618  if (includeAllHits_) {
1619  t->Branch("trk_hitIdx", &trk_hitIdx);
1620  t->Branch("trk_hitType", &trk_hitType);
1621  }
1623  t->Branch("tcand_pca_valid", &tcand_pca_valid);
1624  t->Branch("tcand_pca_px", &tcand_pca_px);
1625  t->Branch("tcand_pca_py", &tcand_pca_py);
1626  t->Branch("tcand_pca_pz", &tcand_pca_pz);
1627  t->Branch("tcand_pca_pt", &tcand_pca_pt);
1628  t->Branch("tcand_pca_eta", &tcand_pca_eta);
1629  t->Branch("tcand_pca_phi", &tcand_pca_phi);
1630  t->Branch("tcand_pca_dxy", &tcand_pca_dxy);
1631  t->Branch("tcand_pca_dz", &tcand_pca_dz);
1632  t->Branch("tcand_pca_ptErr", &tcand_pca_ptErr);
1633  t->Branch("tcand_pca_etaErr", &tcand_pca_etaErr);
1634  t->Branch("tcand_pca_lambdaErr", &tcand_pca_lambdaErr);
1635  t->Branch("tcand_pca_phiErr", &tcand_pca_phiErr);
1636  t->Branch("tcand_pca_dxyErr", &tcand_pca_dxyErr);
1637  t->Branch("tcand_pca_dzErr", &tcand_pca_dzErr);
1638  t->Branch("tcand_px", &tcand_px);
1639  t->Branch("tcand_py", &tcand_py);
1640  t->Branch("tcand_pz", &tcand_pz);
1641  t->Branch("tcand_pt", &tcand_pt);
1642  t->Branch("tcand_x", &tcand_x);
1643  t->Branch("tcand_y", &tcand_y);
1644  t->Branch("tcand_z", &tcand_z);
1645  t->Branch("tcand_qbpErr", &tcand_qbpErr);
1646  t->Branch("tcand_lambdaErr", &tcand_lambdaErr);
1647  t->Branch("tcand_phiErr", &tcand_phiErr);
1648  t->Branch("tcand_xtErr", &tcand_xtErr);
1649  t->Branch("tcand_ytErr", &tcand_ytErr);
1650  t->Branch("tcand_q", &tcand_q);
1651  t->Branch("tcand_ndof", &tcand_ndof);
1652  t->Branch("tcand_nValid", &tcand_nValid);
1653  t->Branch("tcand_nPixel", &tcand_nPixel);
1654  t->Branch("tcand_nStrip", &tcand_nStrip);
1655  t->Branch("tcand_nCluster", &tcand_nCluster);
1656  t->Branch("tcand_algo", &tcand_algo);
1657  t->Branch("tcand_stopReason", &tcand_stopReason);
1658  if (includeSeeds_) {
1659  t->Branch("tcand_seedIdx", &tcand_seedIdx);
1660  }
1661  t->Branch("tcand_vtxIdx", &tcand_vtxIdx);
1663  t->Branch("tcand_simTrkIdx", &tcand_simTrkIdx);
1664  t->Branch("tcand_simTrkShareFrac", &tcand_simTrkShareFrac);
1665  t->Branch("tcand_simTrkNChi2", &tcand_simTrkNChi2);
1666  t->Branch("tcand_bestSimTrkIdx", &tcand_bestSimTrkIdx);
1667  t->Branch("tcand_bestFromFirstHitSimTrkIdx", &tcand_bestFromFirstHitSimTrkIdx);
1668  } else {
1669  t->Branch("tcand_isTrue", &tcand_isTrue);
1670  }
1671  t->Branch("tcand_bestSimTrkShareFrac", &tcand_bestSimTrkShareFrac);
1672  t->Branch("tcand_bestSimTrkShareFracSimDenom", &tcand_bestSimTrkShareFracSimDenom);
1673  t->Branch("tcand_bestSimTrkShareFracSimClusterDenom", &tcand_bestSimTrkShareFracSimClusterDenom);
1674  t->Branch("tcand_bestSimTrkNChi2", &tcand_bestSimTrkNChi2);
1675  t->Branch("tcand_bestFromFirstHitSimTrkShareFrac", &tcand_bestFromFirstHitSimTrkShareFrac);
1676  t->Branch("tcand_bestFromFirstHitSimTrkShareFracSimDenom", &tcand_bestFromFirstHitSimTrkShareFracSimDenom);
1677  t->Branch("tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom",
1679  t->Branch("tcand_bestFromFirstHitSimTrkNChi2", &tcand_bestFromFirstHitSimTrkNChi2);
1680  if (includeAllHits_) {
1681  t->Branch("tcand_hitIdx", &tcand_hitIdx);
1682  t->Branch("tcand_hitType", &tcand_hitType);
1683  }
1684  }
1686  //sim tracks
1687  t->Branch("sim_event", &sim_event);
1688  t->Branch("sim_bunchCrossing", &sim_bunchCrossing);
1689  t->Branch("sim_pdgId", &sim_pdgId);
1690  t->Branch("sim_genPdgIds", &sim_genPdgIds);
1691  t->Branch("sim_isFromBHadron", &sim_isFromBHadron);
1692  t->Branch("sim_px", &sim_px);
1693  t->Branch("sim_py", &sim_py);
1694  t->Branch("sim_pz", &sim_pz);
1695  t->Branch("sim_pt", &sim_pt);
1696  t->Branch("sim_eta", &sim_eta);
1697  t->Branch("sim_phi", &sim_phi);
1698  t->Branch("sim_pca_pt", &sim_pca_pt);
1699  t->Branch("sim_pca_eta", &sim_pca_eta);
1700  t->Branch("sim_pca_lambda", &sim_pca_lambda);
1701  t->Branch("sim_pca_cotTheta", &sim_pca_cotTheta);
1702  t->Branch("sim_pca_phi", &sim_pca_phi);
1703  t->Branch("sim_pca_dxy", &sim_pca_dxy);
1704  t->Branch("sim_pca_dz", &sim_pca_dz);
1705  t->Branch("sim_q", &sim_q);
1706  t->Branch("sim_nValid", &sim_nValid);
1707  t->Branch("sim_nPixel", &sim_nPixel);
1708  t->Branch("sim_nStrip", &sim_nStrip);
1709  t->Branch("sim_nLay", &sim_nLay);
1710  t->Branch("sim_nPixelLay", &sim_nPixelLay);
1711  t->Branch("sim_n3DLay", &sim_n3DLay);
1712  t->Branch("sim_nTrackerHits", &sim_nTrackerHits);
1713  t->Branch("sim_nRecoClusters", &sim_nRecoClusters);
1714  t->Branch("sim_trkIdx", &sim_trkIdx);
1715  t->Branch("sim_trkShareFrac", &sim_trkShareFrac);
1716  if (includeSeeds_) {
1717  t->Branch("sim_seedIdx", &sim_seedIdx);
1718  }
1719  t->Branch("sim_parentVtxIdx", &sim_parentVtxIdx);
1720  t->Branch("sim_decayVtxIdx", &sim_decayVtxIdx);
1721  if (includeAllHits_) {
1722  t->Branch("sim_simHitIdx", &sim_simHitIdx);
1723  }
1724  }
1725  if (includeAllHits_) {
1726  //pixels
1727  t->Branch("pix_isBarrel", &pix_isBarrel);
1728  pix_detId.book("pix", t);
1729  t->Branch("pix_trkIdx", &pix_trkIdx);
1730  if (includeOnTrackHitData_) {
1731  t->Branch("pix_onTrk_x", &pix_onTrk_x);
1732  t->Branch("pix_onTrk_y", &pix_onTrk_y);
1733  t->Branch("pix_onTrk_z", &pix_onTrk_z);
1734  t->Branch("pix_onTrk_xx", &pix_onTrk_xx);
1735  t->Branch("pix_onTrk_xy", &pix_onTrk_xy);
1736  t->Branch("pix_onTrk_yy", &pix_onTrk_yy);
1737  t->Branch("pix_onTrk_yz", &pix_onTrk_yz);
1738  t->Branch("pix_onTrk_zz", &pix_onTrk_zz);
1739  t->Branch("pix_onTrk_zx", &pix_onTrk_zx);
1740  }
1742  t->Branch("pix_tcandIdx", &pix_tcandIdx);
1743  if (includeSeeds_) {
1744  t->Branch("pix_seeIdx", &pix_seeIdx);
1745  }
1747  t->Branch("pix_simHitIdx", &pix_simHitIdx);
1748  if (simHitBySignificance_) {
1749  t->Branch("pix_xySignificance", &pix_xySignificance);
1750  }
1751  t->Branch("pix_chargeFraction", &pix_chargeFraction);
1752  t->Branch("pix_simType", &pix_simType);
1753  }
1754  t->Branch("pix_x", &pix_x);
1755  t->Branch("pix_y", &pix_y);
1756  t->Branch("pix_z", &pix_z);
1757  t->Branch("pix_xx", &pix_xx);
1758  t->Branch("pix_xy", &pix_xy);
1759  t->Branch("pix_yy", &pix_yy);
1760  t->Branch("pix_yz", &pix_yz);
1761  t->Branch("pix_zz", &pix_zz);
1762  t->Branch("pix_zx", &pix_zx);
1763  t->Branch("pix_radL", &pix_radL);
1764  t->Branch("pix_bbxi", &pix_bbxi);
1765  t->Branch("pix_clustSizeCol", &pix_clustSizeCol);
1766  t->Branch("pix_clustSizeRow", &pix_clustSizeRow);
1767  t->Branch("pix_usedMask", &pix_usedMask);
1768  //strips
1769  if (includeStripHits_) {
1770  t->Branch("str_isBarrel", &str_isBarrel);
1771  str_detId.book("str", t);
1772  t->Branch("str_trkIdx", &str_trkIdx);
1773  if (includeOnTrackHitData_) {
1774  t->Branch("str_onTrk_x", &str_onTrk_x);
1775  t->Branch("str_onTrk_y", &str_onTrk_y);
1776  t->Branch("str_onTrk_z", &str_onTrk_z);
1777  t->Branch("str_onTrk_xx", &str_onTrk_xx);
1778  t->Branch("str_onTrk_xy", &str_onTrk_xy);
1779  t->Branch("str_onTrk_yy", &str_onTrk_yy);
1780  t->Branch("str_onTrk_yz", &str_onTrk_yz);
1781  t->Branch("str_onTrk_zz", &str_onTrk_zz);
1782  t->Branch("str_onTrk_zx", &str_onTrk_zx);
1783  }
1785  t->Branch("str_tcandIdx", &str_tcandIdx);
1786  if (includeSeeds_) {
1787  t->Branch("str_seeIdx", &str_seeIdx);
1788  }
1790  t->Branch("str_simHitIdx", &str_simHitIdx);
1791  if (simHitBySignificance_) {
1792  t->Branch("str_xySignificance", &str_xySignificance);
1793  }
1794  t->Branch("str_chargeFraction", &str_chargeFraction);
1795  t->Branch("str_simType", &str_simType);
1796  }
1797  t->Branch("str_x", &str_x);
1798  t->Branch("str_y", &str_y);
1799  t->Branch("str_z", &str_z);
1800  t->Branch("str_xx", &str_xx);
1801  t->Branch("str_xy", &str_xy);
1802  t->Branch("str_yy", &str_yy);
1803  t->Branch("str_yz", &str_yz);
1804  t->Branch("str_zz", &str_zz);
1805  t->Branch("str_zx", &str_zx);
1806  t->Branch("str_radL", &str_radL);
1807  t->Branch("str_bbxi", &str_bbxi);
1808  t->Branch("str_chargePerCM", &str_chargePerCM);
1809  t->Branch("str_clustSize", &str_clustSize);
1810  t->Branch("str_usedMask", &str_usedMask);
1811  //matched hits
1812  t->Branch("glu_isBarrel", &glu_isBarrel);
1813  glu_detId.book("glu", t);
1814  t->Branch("glu_monoIdx", &glu_monoIdx);
1815  t->Branch("glu_stereoIdx", &glu_stereoIdx);
1816  if (includeSeeds_) {
1817  t->Branch("glu_seeIdx", &glu_seeIdx);
1818  }
1819  t->Branch("glu_x", &glu_x);
1820  t->Branch("glu_y", &glu_y);
1821  t->Branch("glu_z", &glu_z);
1822  t->Branch("glu_xx", &glu_xx);
1823  t->Branch("glu_xy", &glu_xy);
1824  t->Branch("glu_yy", &glu_yy);
1825  t->Branch("glu_yz", &glu_yz);
1826  t->Branch("glu_zz", &glu_zz);
1827  t->Branch("glu_zx", &glu_zx);
1828  t->Branch("glu_radL", &glu_radL);
1829  t->Branch("glu_bbxi", &glu_bbxi);
1830  t->Branch("glu_chargePerCM", &glu_chargePerCM);
1831  t->Branch("glu_clustSizeMono", &glu_clustSizeMono);
1832  t->Branch("glu_clustSizeStereo", &glu_clustSizeStereo);
1833  t->Branch("glu_usedMaskMono", &glu_usedMaskMono);
1834  t->Branch("glu_usedMaskStereo", &glu_usedMaskStereo);
1835  }
1836  //phase2 OT
1837  if (includePhase2OTHits_) {
1838  t->Branch("ph2_isBarrel", &ph2_isBarrel);
1839  ph2_detId.book("ph2", t);
1840  t->Branch("ph2_trkIdx", &ph2_trkIdx);
1841  if (includeOnTrackHitData_) {
1842  t->Branch("ph2_onTrk_x", &ph2_onTrk_x);
1843  t->Branch("ph2_onTrk_y", &ph2_onTrk_y);
1844  t->Branch("ph2_onTrk_z", &ph2_onTrk_z);
1845  t->Branch("ph2_onTrk_xx", &ph2_onTrk_xx);
1846  t->Branch("ph2_onTrk_xy", &ph2_onTrk_xy);
1847  t->Branch("ph2_onTrk_yy", &ph2_onTrk_yy);
1848  t->Branch("ph2_onTrk_yz", &ph2_onTrk_yz);
1849  t->Branch("ph2_onTrk_zz", &ph2_onTrk_zz);
1850  t->Branch("ph2_onTrk_zx", &ph2_onTrk_zx);
1851  }
1853  t->Branch("ph2_tcandIdx", &ph2_tcandIdx);
1854  if (includeSeeds_) {
1855  t->Branch("ph2_seeIdx", &ph2_seeIdx);
1856  }
1858  t->Branch("ph2_simHitIdx", &ph2_simHitIdx);
1859  if (simHitBySignificance_) {
1860  t->Branch("ph2_xySignificance", &ph2_xySignificance);
1861  }
1862  t->Branch("ph2_simType", &ph2_simType);
1863  }
1864  t->Branch("ph2_x", &ph2_x);
1865  t->Branch("ph2_y", &ph2_y);
1866  t->Branch("ph2_z", &ph2_z);
1867  t->Branch("ph2_xx", &ph2_xx);
1868  t->Branch("ph2_xy", &ph2_xy);
1869  t->Branch("ph2_yy", &ph2_yy);
1870  t->Branch("ph2_yz", &ph2_yz);
1871  t->Branch("ph2_zz", &ph2_zz);
1872  t->Branch("ph2_zx", &ph2_zx);
1873  t->Branch("ph2_radL", &ph2_radL);
1874  t->Branch("ph2_bbxi", &ph2_bbxi);
1875  t->Branch("ph2_bbxi", &ph2_bbxi);
1876  }
1877  //invalid hits
1878  t->Branch("inv_isBarrel", &inv_isBarrel);
1879  if (includeStripHits_)
1880  inv_detId.book("inv", t);
1881  else
1882  inv_detId_phase2.book("inv", t);
1883  t->Branch("inv_type", &inv_type);
1884  //simhits
1886  if (includeStripHits_)
1887  simhit_detId.book("simhit", t);
1888  else
1889  simhit_detId_phase2.book("simhit", t);
1890  t->Branch("simhit_x", &simhit_x);
1891  t->Branch("simhit_y", &simhit_y);
1892  t->Branch("simhit_z", &simhit_z);
1893  if (saveSimHitsP3_) {
1894  t->Branch("simhit_px", &simhit_px);
1895  t->Branch("simhit_py", &simhit_py);
1896  t->Branch("simhit_pz", &simhit_pz);
1897  }
1898  t->Branch("simhit_particle", &simhit_particle);
1899  t->Branch("simhit_process", &simhit_process);
1900  t->Branch("simhit_eloss", &simhit_eloss);
1901  t->Branch("simhit_tof", &simhit_tof);
1902  t->Branch("simhit_simTrkIdx", &simhit_simTrkIdx);
1903  t->Branch("simhit_hitIdx", &simhit_hitIdx);
1904  t->Branch("simhit_hitType", &simhit_hitType);
1905  }
1906  }
1907  //beam spot
1908  t->Branch("bsp_x", &bsp_x, "bsp_x/F");
1909  t->Branch("bsp_y", &bsp_y, "bsp_y/F");
1910  t->Branch("bsp_z", &bsp_z, "bsp_z/F");
1911  t->Branch("bsp_sigmax", &bsp_sigmax, "bsp_sigmax/F");
1912  t->Branch("bsp_sigmay", &bsp_sigmay, "bsp_sigmay/F");
1913  t->Branch("bsp_sigmaz", &bsp_sigmaz, "bsp_sigmaz/F");
1914  if (includeSeeds_) {
1915  //seeds
1916  t->Branch("see_fitok", &see_fitok);
1917  t->Branch("see_px", &see_px);
1918  t->Branch("see_py", &see_py);
1919  t->Branch("see_pz", &see_pz);
1920  t->Branch("see_pt", &see_pt);
1921  t->Branch("see_eta", &see_eta);
1922  t->Branch("see_phi", &see_phi);
1923  t->Branch("see_dxy", &see_dxy);
1924  t->Branch("see_dz", &see_dz);
1925  t->Branch("see_ptErr", &see_ptErr);
1926  t->Branch("see_etaErr", &see_etaErr);
1927  t->Branch("see_phiErr", &see_phiErr);
1928  t->Branch("see_dxyErr", &see_dxyErr);
1929  t->Branch("see_dzErr", &see_dzErr);
1930  t->Branch("see_chi2", &see_chi2);
1931  t->Branch("see_statePt", &see_statePt);
1932  t->Branch("see_stateTrajX", &see_stateTrajX);
1933  t->Branch("see_stateTrajY", &see_stateTrajY);
1934  t->Branch("see_stateTrajPx", &see_stateTrajPx);
1935  t->Branch("see_stateTrajPy", &see_stateTrajPy);
1936  t->Branch("see_stateTrajPz", &see_stateTrajPz);
1937  t->Branch("see_stateTrajGlbX", &see_stateTrajGlbX);
1938  t->Branch("see_stateTrajGlbY", &see_stateTrajGlbY);
1939  t->Branch("see_stateTrajGlbZ", &see_stateTrajGlbZ);
1940  t->Branch("see_stateTrajGlbPx", &see_stateTrajGlbPx);
1941  t->Branch("see_stateTrajGlbPy", &see_stateTrajGlbPy);
1942  t->Branch("see_stateTrajGlbPz", &see_stateTrajGlbPz);
1943  if (addSeedCurvCov_) {
1944  t->Branch("see_stateCurvCov", &see_stateCurvCov);
1945  }
1946  t->Branch("see_q", &see_q);
1947  t->Branch("see_nValid", &see_nValid);
1948  t->Branch("see_nPixel", &see_nPixel);
1949  t->Branch("see_nGlued", &see_nGlued);
1950  t->Branch("see_nStrip", &see_nStrip);
1951  t->Branch("see_nPhase2OT", &see_nPhase2OT);
1952  t->Branch("see_nCluster", &see_nCluster);
1953  t->Branch("see_algo", &see_algo);
1954  t->Branch("see_stopReason", &see_stopReason);
1955  t->Branch("see_nCands", &see_nCands);
1956  t->Branch("see_trkIdx", &see_trkIdx);
1958  t->Branch("see_tcandIdx", &see_tcandIdx);
1960  t->Branch("see_simTrkIdx", &see_simTrkIdx);
1961  t->Branch("see_simTrkShareFrac", &see_simTrkShareFrac);
1962  t->Branch("see_bestSimTrkIdx", &see_bestSimTrkIdx);
1963  t->Branch("see_bestFromFirstHitSimTrkIdx", &see_bestFromFirstHitSimTrkIdx);
1964  } else {
1965  t->Branch("see_isTrue", &see_isTrue);
1966  }
1967  t->Branch("see_bestSimTrkShareFrac", &see_bestSimTrkShareFrac);
1968  t->Branch("see_bestFromFirstHitSimTrkShareFrac", &see_bestFromFirstHitSimTrkShareFrac);
1969  if (includeAllHits_) {
1970  t->Branch("see_hitIdx", &see_hitIdx);
1971  t->Branch("see_hitType", &see_hitType);
1972  }
1973  //seed algo offset
1974  t->Branch("see_offset", &see_offset);
1975  }
1976 
1977  //vertices
1978  t->Branch("vtx_x", &vtx_x);
1979  t->Branch("vtx_y", &vtx_y);
1980  t->Branch("vtx_z", &vtx_z);
1981  t->Branch("vtx_xErr", &vtx_xErr);
1982  t->Branch("vtx_yErr", &vtx_yErr);
1983  t->Branch("vtx_zErr", &vtx_zErr);
1984  t->Branch("vtx_ndof", &vtx_ndof);
1985  t->Branch("vtx_chi2", &vtx_chi2);
1986  t->Branch("vtx_fake", &vtx_fake);
1987  t->Branch("vtx_valid", &vtx_valid);
1988  t->Branch("vtx_trkIdx", &vtx_trkIdx);
1989 
1990  // tracking vertices
1991  t->Branch("simvtx_event", &simvtx_event);
1992  t->Branch("simvtx_bunchCrossing", &simvtx_bunchCrossing);
1993  t->Branch("simvtx_processType", &simvtx_processType);
1994  t->Branch("simvtx_x", &simvtx_x);
1995  t->Branch("simvtx_y", &simvtx_y);
1996  t->Branch("simvtx_z", &simvtx_z);
1997  t->Branch("simvtx_sourceSimIdx", &simvtx_sourceSimIdx);
1998  t->Branch("simvtx_daughterSimIdx", &simvtx_daughterSimIdx);
1999 
2000  t->Branch("simpv_idx", &simpv_idx);
2001 
2002  //t->Branch("" , &);
2003 }
std::vector< unsigned int > sim_nTrackerHits
std::vector< int > trk_bestSimTrkIdx
std::vector< std::vector< float > > ph2_onTrk_yz
std::vector< float > sim_pca_dz
edm::LuminosityBlockNumber_t ev_lumi
std::vector< float > trk_nChi2_1Dmod
static const std::string kSharedResource
Definition: TFileService.h:76
std::vector< unsigned int > simvtx_processType
edm::EDGetTokenT< TrackingParticleRefVector > trackingParticleRefToken_
std::vector< unsigned int > sim_nLay
std::vector< float > ph2_radL
std::vector< float > tcand_pca_phiErr
std::vector< float > trk_dxyPV
std::vector< float > see_bestSimTrkShareFrac
std::vector< std::vector< float > > see_simTrkShareFrac
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > stripMatchedRecHitToken_
std::vector< short > see_fitok
std::vector< short > vtx_fake
std::vector< float > simvtx_z
std::vector< std::vector< float > > trk_simTrkNChi2
std::vector< std::vector< int > > see_hitType
std::vector< float > trk_dzClosestPV
edm::EDGetTokenT< SiStripRecHit2DCollection > stripRphiRecHitToken_
std::vector< short > ph2_isBarrel
DetIdStrip str_detId
std::vector< std::vector< float > > pix_onTrk_x
std::vector< float > trk_phi
std::vector< float > sim_pca_cotTheta
const bool simHitBySignificance_
std::vector< float > sim_pca_dxy
std::vector< float > see_stateTrajX
std::vector< unsigned int > trk_nOuterLost
std::vector< float > glu_xy
std::vector< short > trk_isTrue
std::vector< std::vector< int > > ph2_seeIdx
std::vector< float > glu_radL
std::vector< float > trk_inner_pz
std::vector< float > see_stateTrajPy
std::vector< float > pix_y
std::vector< int > trk_vtxIdx
std::vector< std::vector< int > > str_trkIdx
std::vector< unsigned int > see_nValid
std::vector< float > str_yy
std::vector< float > trk_outer_py
std::vector< float > glu_chargePerCM
std::vector< float > pix_zz
std::vector< float > ph2_bbxi
std::vector< float > tcand_ytErr
std::vector< uint64_t > str_usedMask
std::vector< int > glu_monoIdx
std::vector< float > trk_eta
std::vector< short > glu_isBarrel
const bool includeOOT_
std::vector< std::vector< float > > ph2_onTrk_y
std::vector< std::vector< float > > str_onTrk_yz
std::vector< int > sim_bunchCrossing
std::vector< float > see_phiErr
std::vector< int > trk_bestFromFirstHitSimTrkIdx
std::vector< std::vector< int > > simhit_hitIdx
std::vector< float > tcand_pca_pz
std::vector< float > str_x
std::vector< float > see_dzErr
std::vector< unsigned int > sim_n3DLay
std::vector< float > trk_cotTheta
std::vector< float > trk_bestSimTrkNChi2
std::vector< unsigned int > see_nStrip
std::vector< float > trk_px
std::vector< unsigned short > pix_simType
std::vector< unsigned short > inv_type
std::vector< float > see_stateTrajPz
std::vector< float > pix_zx
std::vector< std::vector< float > > ph2_onTrk_zx
std::vector< float > sim_phi
std::vector< unsigned int > tcand_algo
std::vector< std::vector< int > > trk_simTrkIdx
std::vector< float > trk_dzPV
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > trackAssociatorToken_
edm::EDGetTokenT< SiStripRecHit2DCollection > stripStereoRecHitToken_
std::vector< float > trk_dxyErr
std::vector< float > str_yz
std::vector< float > trk_pt
std::vector< float > glu_x
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_inner_py
std::vector< float > see_px
std::vector< float > see_chi2
std::vector< float > simhit_px
std::vector< float > glu_z
std::vector< float > see_stateTrajY
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
const bool includeOnTrackHitData_
std::vector< unsigned short > see_stopReason
std::vector< float > tcand_pca_ptErr
std::vector< float > trk_outer_px
std::vector< std::vector< int > > trk_hitType
std::vector< unsigned int > trk_nCluster
DetIdPixel pix_detId
std::vector< float > ph2_xx
std::vector< std::vector< float > > pix_onTrk_z
std::vector< std::vector< int > > ph2_trkIdx
edm::EDGetTokenT< Phase2TrackerRecHit1DCollectionNew > phase2OTRecHitToken_
std::vector< unsigned int > see_algo
std::vector< unsigned int > tcand_nStrip
std::string to_string(const V &value)
Definition: OMSAccess.h:77
const bool addSeedCurvCov_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
std::vector< float > tcand_bestSimTrkShareFrac
std::vector< float > trk_inner_pt
std::vector< short > simhit_process
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
std::vector< std::vector< float > > str_onTrk_xx
std::vector< float > tcand_pca_dxy
std::vector< std::vector< int > > str_seeIdx
std::vector< std::vector< int > > see_simTrkIdx
std::vector< int > simvtx_event
std::vector< float > str_radL
std::string const & label() const
Definition: InputTag.h:36
std::vector< int > simhit_simTrkIdx
std::vector< unsigned short > trk_stopReason
std::vector< uint64_t > glu_usedMaskStereo
std::vector< float > tcand_pca_eta
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
std::vector< float > sim_py
assert(be >=bs)
std::vector< float > sim_px
std::vector< float > pix_xx
std::vector< std::vector< int > > sim_decayVtxIdx
std::vector< float > trk_refpoint_x
std::vector< float > pix_radL
std::vector< float > pix_bbxi
std::vector< std::vector< float > > sim_trkShareFrac
std::vector< std::vector< float > > trk_mvas
std::vector< float > ph2_zx
std::vector< float > tcand_pca_dzErr
std::vector< int > simpv_idx
constexpr uint32_t mask
Definition: gpuClustering.h:26
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > pixelSimLinkToken_
std::vector< std::vector< float > > str_xySignificance
std::vector< std::vector< int > > pix_seeIdx
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< unsigned short > str_simType
std::vector< int > sim_q
std::vector< short > see_isTrue
std::vector< short > inv_isBarrel
T getUntrackedParameter(std::string const &, T const &) const
std::vector< float > trk_bestSimTrkShareFracSimDenom
std::vector< float > trk_bestFromFirstHitSimTrkNChi2
std::vector< float > see_etaErr
std::vector< std::vector< float > > trk_simTrkShareFrac
std::vector< float > simhit_z
std::vector< float > tcand_qbpErr
std::vector< float > ph2_z
std::vector< float > ph2_yy
std::vector< float > tcand_pz
std::vector< float > tcand_phiErr
std::vector< unsigned int > tcand_nPixel
std::vector< float > tcand_pca_etaErr
std::vector< float > trk_refpoint_y
std::vector< unsigned int > trk_nLostLay
std::vector< int > sim_event
std::vector< unsigned int > trk_nStrip
std::vector< unsigned int > tcand_nCluster
std::vector< int > see_bestSimTrkIdx
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNStripStereoLayersToken_
std::vector< float > see_stateTrajGlbPz
std::vector< unsigned int > trk_nPixel
std::vector< float > glu_y
VParameterSet getUntrackedParameterSetVector(std::string const &name, VParameterSet const &defaultValue) const
std::vector< std::vector< float > > pix_xySignificance
std::vector< float > trk_pz
std::vector< std::vector< float > > pix_onTrk_yz
std::vector< float > tcand_z
std::vector< float > trk_dzErr
std::vector< unsigned short > tcand_stopReason
std::vector< float > tcand_pca_pt
std::vector< float > trk_lambdaErr
std::vector< std::vector< float > > pix_onTrk_zz
std::vector< std::vector< float > > see_stateCurvCov
std::vector< unsigned int > see_nCluster
edm::EDGetTokenT< SiPixelRecHitCollection > pixelRecHitToken_
std::vector< float > ph2_y
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityCollectionTokens_
std::vector< std::vector< int > > simvtx_sourceSimIdx
std::vector< int > tcand_vtxIdx
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< short > pix_isBarrel
std::vector< std::vector< float > > str_onTrk_z
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
std::vector< float > tcand_xtErr
std::vector< float > glu_yz
std::vector< float > sim_pca_phi
std::vector< int > pix_clustSizeCol
std::vector< unsigned int > trk_algo
std::vector< unsigned int > sim_nRecoClusters
std::vector< int > see_tcandIdx
std::vector< float > tcand_y
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< float > ph2_xy
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< float > vtx_y
std::vector< float > pix_z
std::vector< int > see_bestFromFirstHitSimTrkIdx
std::vector< float > sim_eta
std::vector< unsigned int > trk_originalAlgo
std::vector< unsigned int > trk_nInnerLost
std::vector< float > str_y
std::vector< int > sim_pdgId
std::vector< int > see_q
std::vector< std::vector< float > > pix_onTrk_zx
std::vector< std::vector< int > > simhit_hitType
std::vector< float > trk_refpoint_z
std::vector< unsigned int > trk_nInactive
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > seedTokens_
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList > simHitTPMapToken_
std::vector< unsigned int > trk_nOuterInactive
std::vector< float > pix_yz
std::vector< std::vector< int > > sim_genPdgIds
std::vector< int > trk_seedIdx
std::vector< std::vector< float > > pix_chargeFraction
edm::RunNumber_t ev_run
std::vector< std::vector< int > > tcand_hitType
std::vector< float > vtx_yErr
std::vector< std::vector< int > > pix_trkIdx
std::vector< unsigned int > sim_nValid
std::vector< float > glu_yy
std::vector< float > vtx_ndof
std::vector< std::vector< int > > ph2_simHitIdx
std::vector< float > simvtx_x
std::vector< std::vector< float > > ph2_onTrk_x
std::vector< float > str_zz
std::vector< std::vector< int > > tcand_simTrkIdx
DetIdAllPhase2 inv_detId_phase2
std::vector< float > tcand_pca_lambdaErr
std::vector< std::vector< float > > str_onTrk_y
std::vector< std::vector< float > > pix_onTrk_xx
std::vector< float > sim_pca_pt
DetIdPhase2OT ph2_detId
std::vector< float > see_dxyErr
std::vector< float > tcand_bestFromFirstHitSimTrkShareFrac
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
std::vector< short > tcand_pca_valid
std::vector< float > see_pt
std::vector< unsigned int > see_nPhase2OT
edm::EDGetTokenT< TrackingVertexCollection > trackingVertexToken_
std::vector< float > see_dxy
std::vector< std::vector< int > > glu_seeIdx
std::vector< unsigned int > trk_n3DLay
std::vector< std::vector< int > > sim_trkIdx
std::vector< float > trk_outer_pt
std::vector< float > str_chargePerCM
const bool includeSeeds_
const bool includeTrackingParticles_
std::vector< float > trk_dz
std::vector< float > trk_ptErr
std::vector< unsigned int > trk_nStripLay
std::vector< float > see_phi
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
std::vector< float > vtx_z
std::vector< float > see_pz
std::vector< float > trk_phiErr
std::vector< unsigned int > sim_nPixelLay
std::vector< float > trk_lambda
std::vector< edm::EDGetTokenT< std::vector< SeedStopInfo > > > seedStopInfoTokens_
std::vector< float > glu_zz
std::vector< float > tcand_bestSimTrkNChi2
std::vector< float > sim_pca_lambda
std::vector< float > see_stateTrajPx
std::vector< float > glu_zx
std::vector< std::vector< float > > str_onTrk_zx
std::vector< int > tcand_seedIdx
const bool saveSimHitsP3_
std::vector< std::vector< float > > str_onTrk_x
std::vector< float > vtx_xErr
std::vector< float > tcand_bestSimTrkShareFracSimDenom
std::vector< std::vector< float > > tcand_simTrkShareFrac
std::vector< float > tcand_pt
std::vector< float > sim_pz
std::vector< float > see_stateTrajGlbY
std::vector< std::vector< int > > sim_simHitIdx
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
edm::EventNumber_t ev_event
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< float > ph2_x
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleToken_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
std::vector< uint64_t > pix_usedMask
std::vector< uint64_t > glu_usedMaskMono
std::vector< int > glu_stereoIdx
std::vector< float > trk_py
std::vector< std::vector< int > > pix_simHitIdx
std::vector< float > trk_nChi2
std::vector< std::vector< unsigned short > > trk_qualityMasks
std::vector< unsigned int > see_nGlued
std::vector< float > see_py
std::vector< float > pix_x
std::vector< int > sim_parentVtxIdx
std::vector< float > see_ptErr
const bool includeMVA_
std::vector< float > str_z
std::vector< short > tcand_isTrue
std::vector< float > str_zx
const bool includeTrackCandidates_
std::vector< std::vector< int > > tcand_hitIdx
std::vector< float > tcand_pca_dz
HistoryBase tracer_
std::vector< int > glu_clustSizeStereo
std::vector< float > tcand_bestSimTrkShareFracSimClusterDenom
std::vector< short > trk_isHP
std::vector< float > str_xy
std::vector< std::vector< float > > str_chargeFraction
std::vector< unsigned int > trk_nInnerInactive
std::vector< float > tcand_pca_py
std::vector< float > tcand_pca_dxyErr
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
std::vector< std::vector< float > > ph2_xySignificance
std::vector< std::vector< int > > trk_hitIdx
std::vector< std::vector< int > > str_tcandIdx
std::vector< int > trk_q
std::vector< unsigned int > sim_nPixel
std::vector< std::vector< float > > pix_onTrk_xy
const bool includeAllHits_
std::vector< short > vtx_valid
std::vector< float > see_stateTrajGlbX
edm::EDGetTokenT< ClusterTPAssociation > clusterTPMapToken_
std::vector< std::vector< float > > ph2_onTrk_xy
std::vector< unsigned int > tcand_nValid
std::vector< int > tcand_q
std::vector< std::vector< int > > vtx_trkIdx
std::vector< short > str_isBarrel
void depth(int d)
Set the depth of the history.
Definition: HistoryBase.h:49
std::vector< int > str_clustSize
std::vector< float > glu_bbxi
std::vector< int > simhit_particle
std::vector< float > tcand_ndof
std::vector< float > trk_outer_pz
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNLayersToken_
std::vector< unsigned short > ph2_simType
std::vector< std::pair< unsigned int, edm::EDGetTokenT< PixelMaskContainer > > > pixelUseMaskTokens_
std::vector< std::vector< float > > ph2_onTrk_z
std::vector< float > sim_pca_eta
std::vector< float > ph2_yz
std::vector< int > glu_clustSizeMono
ParametersDefinerForTP parametersDefiner_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
std::vector< float > simhit_y
std::vector< float > trk_dxyClosestPV
std::vector< float > see_stateTrajGlbPx
std::vector< std::vector< int > > str_simHitIdx
std::vector< float > see_statePt
std::vector< float > tcand_lambdaErr
std::vector< float > trk_ndof
std::vector< float > glu_xx
const bool keepEleSimHits_
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNPixelLayersToken_
std::vector< std::vector< float > > pix_onTrk_yy
std::vector< std::vector< int > > ph2_tcandIdx
std::vector< unsigned int > trk_nPixelLay
std::vector< float > see_stateTrajGlbZ
std::vector< std::vector< float > > str_onTrk_xy
std::vector< float > simhit_x
std::vector< float > tcand_pca_px
std::vector< int > tcand_bestFromFirstHitSimTrkIdx
std::vector< float > simvtx_y
std::vector< unsigned short > see_nCands
std::vector< std::vector< int > > simvtx_daughterSimIdx
std::vector< float > str_xx
std::vector< float > trk_bestSimTrkShareFrac
std::vector< float > simhit_py
std::vector< unsigned int > see_offset
std::vector< std::vector< float > > pix_onTrk_y
std::vector< float > ph2_zz
std::vector< float > tcand_bestFromFirstHitSimTrkNChi2
std::vector< int > see_trkIdx
std::vector< int > tcand_bestSimTrkIdx
std::vector< float > tcand_x
std::vector< std::vector< float > > ph2_onTrk_zz
std::vector< std::vector< int > > pix_tcandIdx
std::vector< float > simhit_tof
std::vector< std::vector< int > > sim_seedIdx
std::vector< float > see_stateTrajGlbPy
std::vector< float > pix_xy
std::vector< float > trk_dxy
std::vector< float > sim_pt
std::vector< float > pix_yy
std::vector< float > tcand_pca_phi
std::vector< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
std::vector< std::vector< int > > see_hitIdx
std::vector< std::vector< float > > str_onTrk_zz
std::vector< float > tcand_px
std::vector< float > vtx_x
std::vector< std::vector< float > > str_onTrk_yy
std::vector< float > simhit_pz
std::vector< std::vector< float > > tcand_simTrkNChi2
std::vector< unsigned int > see_nPixel
std::vector< float > see_eta
DetIdAllPhase2 simhit_detId_phase2
std::vector< unsigned int > trk_nValid
std::vector< unsigned int > trk_nLost
std::vector< float > trk_inner_px
DetIdStrip glu_detId
std::vector< float > vtx_zErr
std::vector< float > simhit_eloss
std::vector< float > see_bestFromFirstHitSimTrkShareFrac
std::vector< std::vector< float > > ph2_onTrk_yy
std::vector< int > sim_isFromBHadron
std::vector< std::vector< float > > ph2_onTrk_xx
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > stripSimLinkToken_
std::vector< float > tcand_py
std::vector< int > pix_clustSizeRow
std::vector< edm::EDGetTokenT< TrackCandidateCollection > > candidateTokens_
std::vector< float > vtx_chi2
std::vector< int > simvtx_bunchCrossing
std::vector< float > str_bbxi
std::vector< float > see_dz
std::vector< unsigned int > sim_nStrip

◆ ~TrackingNtuple()

TrackingNtuple::~TrackingNtuple ( )
override

Definition at line 2005 of file TrackingNtuple.cc.

2005  {
2006  // do anything here that needs to be done at desctruction time
2007  // (e.g. close files, deallocate resources etc.)
2008 }

Member Function Documentation

◆ addStripMatchedHit()

size_t TrackingNtuple::addStripMatchedHit ( const SiStripMatchedRecHit2D hit,
const TrackerGeometry tracker,
const TrackerTopology tTopo,
const std::vector< std::pair< uint64_t, StripMaskContainer const *>> &  stripMasks,
std::vector< std::pair< int, int >> &  monoStereoClusterList 
)
private

Definition at line 3243 of file TrackingNtuple.cc.

References siStripClusterTools::chargePerCM(), glu_bbxi, glu_chargePerCM, glu_clustSizeMono, glu_clustSizeStereo, glu_detId, glu_isBarrel, glu_monoIdx, glu_radL, glu_seeIdx, glu_stereoIdx, glu_usedMaskMono, glu_usedMaskStereo, glu_x, glu_xx, glu_xy, glu_y, glu_yy, glu_yz, glu_z, glu_zx, glu_zz, crabWrapper::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, gpuClustering::pixelStatus::mask, StripSubdetector::TIB, StripSubdetector::TOB, PbPb_ZMuSkimMuonDPG_cff::tracker, hit::x, hit::y, and hit::z.

Referenced by fillSeeds(), and fillStripMatchedHits().

3247  {
3248  auto strUsedMask = [&stripMasks](size_t key) {
3249  uint64_t mask = 0;
3250  for (auto const& m : stripMasks) {
3251  if (m.second->mask(key))
3252  mask |= m.first;
3253  }
3254  return mask;
3255  };
3256 
3257  const auto hitId = hit.geographicalId();
3258  const int lay = tTopo.layer(hitId);
3259  monoStereoClusterList.emplace_back(hit.monoHit().cluster().key(), hit.stereoHit().cluster().key());
3260  glu_isBarrel.push_back((hitId.subdetId() == StripSubdetector::TIB || hitId.subdetId() == StripSubdetector::TOB));
3261  glu_detId.push_back(tracker, tTopo, hitId);
3262  glu_monoIdx.push_back(hit.monoHit().cluster().key());
3263  glu_stereoIdx.push_back(hit.stereoHit().cluster().key());
3264  glu_seeIdx.emplace_back(); // filled in fillSeeds
3265  glu_x.push_back(hit.globalPosition().x());
3266  glu_y.push_back(hit.globalPosition().y());
3267  glu_z.push_back(hit.globalPosition().z());
3268  glu_xx.push_back(hit.globalPositionError().cxx());
3269  glu_xy.push_back(hit.globalPositionError().cyx());
3270  glu_yy.push_back(hit.globalPositionError().cyy());
3271  glu_yz.push_back(hit.globalPositionError().czy());
3272  glu_zz.push_back(hit.globalPositionError().czz());
3273  glu_zx.push_back(hit.globalPositionError().czx());
3274  glu_radL.push_back(hit.surface()->mediumProperties().radLen());
3275  glu_bbxi.push_back(hit.surface()->mediumProperties().xi());
3276  glu_chargePerCM.push_back(siStripClusterTools::chargePerCM(hitId, hit.firstClusterRef().stripCluster()));
3277  glu_clustSizeMono.push_back(hit.monoHit().cluster()->amplitudes().size());
3278  glu_clustSizeStereo.push_back(hit.stereoHit().cluster()->amplitudes().size());
3279  glu_usedMaskMono.push_back(strUsedMask(hit.monoHit().cluster().key()));
3280  glu_usedMaskStereo.push_back(strUsedMask(hit.stereoHit().cluster().key()));
3281  LogTrace("TrackingNtuple") << "stripMatchedHit"
3282  << " cluster0=" << hit.stereoHit().cluster().key()
3283  << " cluster1=" << hit.monoHit().cluster().key() << " subdId=" << hitId.subdetId()
3284  << " lay=" << lay << " rawId=" << hitId.rawId() << " pos =" << hit.globalPosition();
3285  return glu_isBarrel.size() - 1;
3286 }
std::vector< float > glu_xy
std::vector< float > glu_radL
std::vector< float > glu_chargePerCM
std::vector< int > glu_monoIdx
std::vector< short > glu_isBarrel
std::vector< float > glu_x
std::vector< float > glu_z
float chargePerCM(DetId detid, Iter a, Iter b)
std::vector< uint64_t > glu_usedMaskStereo
constexpr uint32_t mask
Definition: gpuClustering.h:26
unsigned int layer(const DetId &id) const
#define LogTrace(id)
std::vector< float > glu_y
std::vector< float > glu_yz
std::vector< float > glu_yy
std::vector< std::vector< int > > glu_seeIdx
static constexpr auto TOB
std::vector< float > glu_zz
std::vector< float > glu_zx
std::vector< uint64_t > glu_usedMaskMono
std::vector< int > glu_stereoIdx
static constexpr auto TIB
unsigned long long uint64_t
Definition: Time.h:13
std::vector< int > glu_clustSizeStereo
std::vector< float > glu_bbxi
std::vector< int > glu_clustSizeMono
std::vector< float > glu_xx
DetIdStrip glu_detId

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 2410 of file TrackingNtuple.cc.

References reco::TrackBase::algoByName(), align::BeamSpot, beamSpotToken_, cms::cuda::bs, candidateTokens_, clearVariables(), clusterTPMapToken_, ev_event, ev_lumi, ev_run, Exception, fillBeamSpot(), fillCandidates(), fillPhase2OTHits(), fillPixelHits(), fillSeeds(), fillSimHits(), fillStripMatchedHits(), fillStripRphiStereoHits(), fillTrackingParticles(), fillTrackingVertices(), fillTracks(), fillVertices(), edm::EventSetup::getData(), mps_fire::i, iEvent, includeAllHits_, includeMVA_, includeOOT_, includePhase2OTHits_, includeSeeds_, includeStripHits_, includeTrackCandidates_, includeTrackingParticles_, edm::EDGetTokenT< T >::isUninitialized(), label, SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), LogDebug, mfToken_, mvaQualityCollectionTokens_, pixelSimLinkToken_, edm::Handle< T >::product(), edm::RefToBaseVector< T >::push_back(), edm::RefVector< C, T, F >::push_back(), simHitTPMapToken_, siphase2OTSimLinksToken_, edm::RefVector< C, T, F >::size(), findQualityFiles::size, jetUpdater_cfi::sort, stripSimLinkToken_, t, tGeomToken_, unpackBuffers-CaloStage2::token, tpHitIndexListLessSort(), trackAssociatorToken_, PbPb_ZMuSkimMuonDPG_cff::tracker, trackingParticleRefToken_, trackingParticleToken_, trackingVertexToken_, pwdgSkimBPark_cfi::tracks, trackToken_, tTopoToken_, findQualityFiles::v, vertexToken_, and AlignmentTracksFromVertexSelector_cfi::vertices.

2410  {
2411  using namespace edm;
2412  using namespace reco;
2413  using namespace std;
2414 
2415  const auto& mf = iSetup.getData(mfToken_);
2416  const TrackerTopology& tTopo = iSetup.getData(tTopoToken_);
2417  const TrackerGeometry& tracker = iSetup.getData(tGeomToken_);
2418 
2420  iEvent.getByToken(trackAssociatorToken_, theAssociator);
2421  const reco::TrackToTrackingParticleAssociator& associatorByHits = *theAssociator;
2422 
2423  LogDebug("TrackingNtuple") << "Analyzing new event";
2424 
2425  //initialize tree variables
2426  clearVariables();
2427 
2428  // FIXME: we really need to move to edm::View for reading the
2429  // TrackingParticles... Unfortunately it has non-trivial
2430  // consequences on the associator/association interfaces etc.
2432  const TrackingParticleRefVector* tmpTPptr = nullptr;
2434  edm::Handle<TrackingParticleRefVector> TPCollectionHRefVector;
2435 
2437  iEvent.getByToken(trackingParticleToken_, TPCollectionH);
2438  for (size_t i = 0, size = TPCollectionH->size(); i < size; ++i) {
2439  tmpTP.push_back(TrackingParticleRef(TPCollectionH, i));
2440  }
2441  tmpTPptr = &tmpTP;
2442  } else {
2443  iEvent.getByToken(trackingParticleRefToken_, TPCollectionHRefVector);
2444  tmpTPptr = TPCollectionHRefVector.product();
2445  }
2446  const TrackingParticleRefVector& tpCollection = *tmpTPptr;
2447 
2448  // Fill mapping from Ref::key() to index
2449  TrackingParticleRefKeyToIndex tpKeyToIndex;
2450  for (size_t i = 0; i < tpCollection.size(); ++i) {
2451  tpKeyToIndex[tpCollection[i].key()] = i;
2452  }
2453 
2454  // tracking vertices
2456  iEvent.getByToken(trackingVertexToken_, htv);
2457  const TrackingVertexCollection& tvs = *htv;
2458 
2459  // Fill mapping from Ref::key() to index
2460  TrackingVertexRefVector tvRefs;
2461  TrackingVertexRefKeyToIndex tvKeyToIndex;
2462  for (size_t i = 0; i < tvs.size(); ++i) {
2463  const TrackingVertex& v = tvs[i];
2464  if (!includeOOT_ && v.eventId().bunchCrossing() != 0) // Ignore OOTPU
2465  continue;
2466  tvKeyToIndex[i] = tvRefs.size();
2467  tvRefs.push_back(TrackingVertexRef(htv, i));
2468  }
2469 
2470  //get association maps, etc.
2471  Handle<ClusterTPAssociation> pCluster2TPListH;
2472  iEvent.getByToken(clusterTPMapToken_, pCluster2TPListH);
2473  const ClusterTPAssociation& clusterToTPMap = *pCluster2TPListH;
2475  iEvent.getByToken(simHitTPMapToken_, simHitsTPAssoc);
2476 
2477  // TP -> cluster count
2478  TrackingParticleRefKeyToCount tpKeyToClusterCount;
2479  for (const auto& clusterTP : clusterToTPMap) {
2480  tpKeyToClusterCount[clusterTP.second.key()] += 1;
2481  }
2482 
2483  // SimHit key -> index mapping
2484  SimHitRefKeyToIndex simHitRefKeyToIndex;
2485 
2486  //make a list to link TrackingParticles to its simhits
2487  std::vector<TPHitIndex> tpHitList;
2488 
2489  // Count the number of reco cluster per TP
2490 
2491  std::set<edm::ProductID> hitProductIds;
2492  std::map<edm::ProductID, size_t> seedCollToOffset;
2493 
2494  ev_run = iEvent.id().run();
2495  ev_lumi = iEvent.id().luminosityBlock();
2496  ev_event = iEvent.id().event();
2497 
2498  // Digi->Sim links for pixels and strips
2499  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> pixelDigiSimLinksHandle;
2500  iEvent.getByToken(pixelSimLinkToken_, pixelDigiSimLinksHandle);
2501  const auto& pixelDigiSimLinks = *pixelDigiSimLinksHandle;
2502 
2503  edm::Handle<edm::DetSetVector<StripDigiSimLink>> stripDigiSimLinksHandle;
2504  iEvent.getByToken(stripSimLinkToken_, stripDigiSimLinksHandle);
2505 
2506  // Phase2 OT DigiSimLink
2507  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> siphase2OTSimLinksHandle;
2508  iEvent.getByToken(siphase2OTSimLinksToken_, siphase2OTSimLinksHandle);
2509 
2510  //beamspot
2511  Handle<reco::BeamSpot> recoBeamSpotHandle;
2512  iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle);
2513  BeamSpot const& bs = *recoBeamSpotHandle;
2514  fillBeamSpot(bs);
2515 
2516  //prapare list to link matched hits to collection
2517  vector<pair<int, int>> monoStereoClusterList;
2518  if (includeAllHits_) {
2519  // simhits, only if TPs are saved as well
2521  fillSimHits(tracker, tpKeyToIndex, *simHitsTPAssoc, tTopo, simHitRefKeyToIndex, tpHitList);
2522  }
2523 
2524  //pixel hits
2526  tracker,
2527  clusterToTPMap,
2528  tpKeyToIndex,
2529  *simHitsTPAssoc,
2530  pixelDigiSimLinks,
2531  tTopo,
2532  simHitRefKeyToIndex,
2533  hitProductIds);
2534 
2535  //strip hits
2536  if (includeStripHits_) {
2537  LogDebug("TrackingNtuple") << "foundStripSimLink";
2538  const auto& stripDigiSimLinks = *stripDigiSimLinksHandle;
2540  tracker,
2541  clusterToTPMap,
2542  tpKeyToIndex,
2543  *simHitsTPAssoc,
2544  stripDigiSimLinks,
2545  tTopo,
2546  simHitRefKeyToIndex,
2547  hitProductIds);
2548 
2549  //matched hits
2550  fillStripMatchedHits(iEvent, tracker, tTopo, monoStereoClusterList);
2551  }
2552 
2553  if (includePhase2OTHits_) {
2554  LogDebug("TrackingNtuple") << "foundPhase2OTSimLinks";
2555  const auto& phase2OTSimLinks = *siphase2OTSimLinksHandle;
2557  clusterToTPMap,
2558  tracker,
2559  tpKeyToIndex,
2560  *simHitsTPAssoc,
2561  phase2OTSimLinks,
2562  tTopo,
2563  simHitRefKeyToIndex,
2564  hitProductIds);
2565  }
2566  }
2567 
2568  //seeds
2569  if (includeSeeds_) {
2570  fillSeeds(iEvent,
2571  tpCollection,
2572  tpKeyToIndex,
2573  bs,
2574  tracker,
2575  associatorByHits,
2576  clusterToTPMap,
2577  mf,
2578  tTopo,
2579  monoStereoClusterList,
2580  hitProductIds,
2581  seedCollToOffset);
2582  }
2583 
2584  //tracks
2585  edm::Handle<edm::View<reco::Track>> tracksHandle;
2586  iEvent.getByToken(trackToken_, tracksHandle);
2587  const edm::View<reco::Track>& tracks = *tracksHandle;
2588  // The associator interfaces really need to be fixed...
2590  for (edm::View<Track>::size_type i = 0; i < tracks.size(); ++i) {
2591  trackRefs.push_back(tracks.refAt(i));
2592  }
2593  std::vector<const MVACollection*> mvaColls;
2594  std::vector<const QualityMaskCollection*> qualColls;
2595  if (includeMVA_) {
2598 
2599  for (const auto& tokenTpl : mvaQualityCollectionTokens_) {
2600  iEvent.getByToken(std::get<0>(tokenTpl), hmva);
2601  iEvent.getByToken(std::get<1>(tokenTpl), hqual);
2602 
2603  mvaColls.push_back(hmva.product());
2604  qualColls.push_back(hqual.product());
2605  if (mvaColls.back()->size() != tracks.size()) {
2606  throw cms::Exception("Configuration")
2607  << "Inconsistency in track collection and MVA sizes. Track collection has " << tracks.size()
2608  << " tracks, whereas the MVA " << (mvaColls.size() - 1) << " has " << mvaColls.back()->size()
2609  << " entries. Double-check your configuration.";
2610  }
2611  if (qualColls.back()->size() != tracks.size()) {
2612  throw cms::Exception("Configuration")
2613  << "Inconsistency in track collection and quality mask sizes. Track collection has " << tracks.size()
2614  << " tracks, whereas the quality mask " << (qualColls.size() - 1) << " has " << qualColls.back()->size()
2615  << " entries. Double-check your configuration.";
2616  }
2617  }
2618  }
2619 
2621  iEvent.getByToken(vertexToken_, vertices);
2622 
2623  fillTracks(trackRefs,
2624  tracker,
2625  tpCollection,
2626  tpKeyToIndex,
2627  tpKeyToClusterCount,
2628  mf,
2629  bs,
2630  *vertices,
2631  associatorByHits,
2632  clusterToTPMap,
2633  tTopo,
2634  hitProductIds,
2635  seedCollToOffset,
2636  mvaColls,
2637  qualColls);
2638 
2640  //candidates
2641  for (auto const& token : candidateTokens_) {
2642  auto const tCandsHandle = iEvent.getHandle(token);
2643 
2646  TString label = labels.module;
2647  label.ReplaceAll("TrackCandidates", "");
2648  label.ReplaceAll("muonSeeded", "muonSeededStep");
2649  int algo = reco::TrackBase::algoByName(label.Data());
2650 
2651  fillCandidates(tCandsHandle,
2652  algo,
2653  tpCollection,
2654  tpKeyToIndex,
2655  tpKeyToClusterCount,
2656  mf,
2657  bs,
2658  *vertices,
2659  associatorByHits,
2660  clusterToTPMap,
2661  tracker,
2662  tTopo,
2663  hitProductIds,
2664  seedCollToOffset);
2665  }
2666  }
2667 
2668  //tracking particles
2669  //sort association maps with simHits
2670  std::sort(tpHitList.begin(), tpHitList.end(), tpHitIndexListLessSort);
2672  iEvent, iSetup, trackRefs, bs, tpCollection, tvKeyToIndex, associatorByHits, tpHitList, tpKeyToClusterCount);
2673 
2674  // vertices
2675  fillVertices(*vertices, trackRefs);
2676 
2677  // tracking vertices
2678  fillTrackingVertices(tvRefs, tpKeyToIndex);
2679 
2680  t->Fill();
2681 }
size
Write out results.
edm::LuminosityBlockNumber_t ev_lumi
edm::EDGetTokenT< TrackingParticleRefVector > trackingParticleRefToken_
unsigned int size_type
Definition: View.h:90
void fillTrackingVertices(const TrackingVertexRefVector &trackingVertices, const TrackingParticleRefKeyToIndex &tpKeyToIndex)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
Definition: EventSetup.h:119
void fillPixelHits(const edm::Event &iEvent, const TrackerGeometry &tracker, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
const bool includeOOT_
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > trackAssociatorToken_
void fillStripRphiStereoHits(const edm::Event &iEvent, const TrackerGeometry &tracker, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< StripDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
T const * product() const
Definition: Handle.h:70
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:104
void fillCandidates(const edm::Handle< TrackCandidateCollection > &candsHandle, int algo, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const TrackingParticleRefKeyToCount &tpKeyToClusterCount, const MagneticField &mf, const reco::BeamSpot &bs, const reco::VertexCollection &vertices, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TrackerGeometry &tracker, const TrackerTopology &tTopo, const std::set< edm::ProductID > &hitProductIds, const std::map< edm::ProductID, size_t > &seedToCollIndex)
void fillBeamSpot(const reco::BeamSpot &bs)
void fillTracks(const edm::RefToBaseVector< reco::Track > &tracks, const TrackerGeometry &tracker, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const TrackingParticleRefKeyToCount &tpKeyToClusterCount, const MagneticField &mf, const reco::BeamSpot &bs, const reco::VertexCollection &vertices, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TrackerTopology &tTopo, const std::set< edm::ProductID > &hitProductIds, const std::map< edm::ProductID, size_t > &seedToCollIndex, const std::vector< const MVACollection *> &mvaColls, const std::vector< const QualityMaskCollection *> &qualColls)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
void fillSeeds(const edm::Event &iEvent, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const reco::BeamSpot &bs, const TrackerGeometry &tracker, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const MagneticField &theMF, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList, const std::set< edm::ProductID > &hitProductIds, std::map< edm::ProductID, size_t > &seedToCollIndex)
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > pixelSimLinkToken_
char const * label
int iEvent
Definition: GenABIO.cc:224
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityCollectionTokens_
void fillPhase2OTHits(const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackerGeometry &tracker, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList > simHitTPMapToken_
edm::RunNumber_t ev_run
edm::EDGetTokenT< TrackingVertexCollection > trackingVertexToken_
void fillStripMatchedHits(const edm::Event &iEvent, const TrackerGeometry &tracker, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList)
static bool tpHitIndexListLessSort(const TPHitIndex &i, const TPHitIndex &j)
const bool includeSeeds_
const bool includeTrackingParticles_
void fillSimHits(const TrackerGeometry &tracker, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const TrackerTopology &tTopo, SimHitRefKeyToIndex &simHitRefKeyToIndex, std::vector< TPHitIndex > &tpHitList)
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
void fillTrackingParticles(const edm::Event &iEvent, const edm::EventSetup &iSetup, const edm::RefToBaseVector< reco::Track > &tracks, const reco::BeamSpot &bs, const TrackingParticleRefVector &tpCollection, const TrackingVertexRefKeyToIndex &tvKeyToIndex, const reco::TrackToTrackingParticleAssociator &associatorByHits, const std::vector< TPHitIndex > &tpHitList, const TrackingParticleRefKeyToCount &tpKeyToClusterCount)
edm::Ref< TrackingVertexCollection > TrackingVertexRef
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
edm::EventNumber_t ev_event
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleToken_
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
const bool includeMVA_
const bool includeTrackCandidates_
std::vector< TrackingVertex > TrackingVertexCollection
const bool includeAllHits_
edm::EDGetTokenT< ClusterTPAssociation > clusterTPMapToken_
fixed size matrix
HLT enums.
void push_back(const RefToBase< T > &)
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:137
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:67
void fillVertices(const reco::VertexCollection &vertices, const edm::RefToBaseVector< reco::Track > &tracks)
edm::Ref< TrackingParticleCollection > TrackingParticleRef
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > stripSimLinkToken_
std::vector< edm::EDGetTokenT< TrackCandidateCollection > > candidateTokens_
#define LogDebug(id)

◆ clearVariables()

void TrackingNtuple::clearVariables ( )
private

Definition at line 2013 of file TrackingNtuple.cc.

References bsp_sigmax, bsp_sigmay, bsp_sigmaz, bsp_x, bsp_y, bsp_z, ev_event, ev_lumi, ev_run, glu_bbxi, glu_chargePerCM, glu_clustSizeMono, glu_clustSizeStereo, glu_detId, glu_isBarrel, glu_monoIdx, glu_radL, glu_seeIdx, glu_stereoIdx, glu_usedMaskMono, glu_usedMaskStereo, glu_x, glu_xx, glu_xy, glu_y, glu_yy, glu_yz, glu_z, glu_zx, glu_zz, inv_detId, inv_detId_phase2, inv_isBarrel, inv_type, gpuClustering::pixelStatus::mask, beam_dqm_sourceclient-live_cfg::mva, ph2_bbxi, ph2_detId, ph2_isBarrel, ph2_onTrk_x, ph2_onTrk_xx, ph2_onTrk_xy, ph2_onTrk_y, ph2_onTrk_yy, ph2_onTrk_yz, ph2_onTrk_z, ph2_onTrk_zx, ph2_onTrk_zz, ph2_radL, ph2_seeIdx, ph2_simHitIdx, ph2_simType, ph2_tcandIdx, ph2_trkIdx, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, pix_bbxi, pix_chargeFraction, pix_clustSizeCol, pix_clustSizeRow, pix_detId, pix_isBarrel, pix_onTrk_x, pix_onTrk_xx, pix_onTrk_xy, pix_onTrk_y, pix_onTrk_yy, pix_onTrk_yz, pix_onTrk_z, pix_onTrk_zx, pix_onTrk_zz, pix_radL, pix_seeIdx, pix_simHitIdx, pix_simType, pix_tcandIdx, pix_trkIdx, pix_usedMask, pix_x, pix_xx, pix_xy, pix_xySignificance, pix_y, pix_yy, pix_yz, pix_z, pix_zx, pix_zz, see_algo, see_bestFromFirstHitSimTrkIdx, see_bestFromFirstHitSimTrkShareFrac, see_bestSimTrkIdx, see_bestSimTrkShareFrac, see_chi2, see_dxy, see_dxyErr, see_dz, see_dzErr, see_eta, see_etaErr, see_fitok, see_hitIdx, see_hitType, see_isTrue, see_nCands, see_nCluster, see_nGlued, see_nPhase2OT, see_nPixel, see_nStrip, see_nValid, see_offset, see_phi, see_phiErr, see_pt, see_ptErr, see_px, see_py, see_pz, see_q, see_simTrkIdx, see_simTrkShareFrac, see_stateCurvCov, see_statePt, see_stateTrajGlbPx, see_stateTrajGlbPy, see_stateTrajGlbPz, see_stateTrajGlbX, see_stateTrajGlbY, see_stateTrajGlbZ, see_stateTrajPx, see_stateTrajPy, see_stateTrajPz, see_stateTrajX, see_stateTrajY, see_stopReason, see_tcandIdx, see_trkIdx, sim_bunchCrossing, sim_decayVtxIdx, sim_eta, sim_event, sim_genPdgIds, sim_isFromBHadron, sim_n3DLay, sim_nLay, sim_nPixel, sim_nPixelLay, sim_nRecoClusters, sim_nStrip, sim_nTrackerHits, sim_nValid, sim_parentVtxIdx, sim_pca_cotTheta, sim_pca_dxy, sim_pca_dz, sim_pca_eta, sim_pca_lambda, sim_pca_phi, sim_pca_pt, sim_pdgId, sim_phi, sim_pt, sim_px, sim_py, sim_pz, sim_q, sim_seedIdx, sim_simHitIdx, sim_trkIdx, sim_trkShareFrac, simhit_detId, simhit_detId_phase2, simhit_eloss, simhit_hitIdx, simhit_hitType, simhit_particle, simhit_process, simhit_px, simhit_py, simhit_pz, simhit_simTrkIdx, simhit_tof, simhit_x, simhit_y, simhit_z, simpv_idx, simvtx_bunchCrossing, simvtx_daughterSimIdx, simvtx_event, simvtx_processType, simvtx_sourceSimIdx, simvtx_x, simvtx_y, simvtx_z, str_bbxi, str_chargeFraction, str_chargePerCM, str_clustSize, str_detId, str_isBarrel, str_onTrk_x, str_onTrk_xx, str_onTrk_xy, str_onTrk_y, str_onTrk_yy, str_onTrk_yz, str_onTrk_z, str_onTrk_zx, str_onTrk_zz, str_radL, str_seeIdx, str_simHitIdx, str_simType, str_tcandIdx, str_trkIdx, str_usedMask, str_x, str_xx, str_xy, str_xySignificance, str_y, str_yy, str_yz, str_z, str_zx, str_zz, tcand_algo, tcand_bestFromFirstHitSimTrkIdx, tcand_bestFromFirstHitSimTrkNChi2, tcand_bestFromFirstHitSimTrkShareFrac, tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom, tcand_bestFromFirstHitSimTrkShareFracSimDenom, tcand_bestSimTrkIdx, tcand_bestSimTrkNChi2, tcand_bestSimTrkShareFrac, tcand_bestSimTrkShareFracSimClusterDenom, tcand_bestSimTrkShareFracSimDenom, tcand_hitIdx, tcand_hitType, tcand_isTrue, tcand_lambdaErr, tcand_nCluster, tcand_ndof, tcand_nPixel, tcand_nStrip, tcand_nValid, tcand_pca_dxy, tcand_pca_dxyErr, tcand_pca_dz, tcand_pca_dzErr, tcand_pca_eta, tcand_pca_etaErr, tcand_pca_lambdaErr, tcand_pca_phi, tcand_pca_phiErr, tcand_pca_pt, tcand_pca_ptErr, tcand_pca_px, tcand_pca_py, tcand_pca_pz, tcand_pca_valid, tcand_phiErr, tcand_pt, tcand_px, tcand_py, tcand_pz, tcand_q, tcand_qbpErr, tcand_seedIdx, tcand_simTrkIdx, tcand_simTrkNChi2, tcand_simTrkShareFrac, tcand_stopReason, tcand_vtxIdx, tcand_x, tcand_xtErr, tcand_y, tcand_ytErr, tcand_z, trk_algo, trk_algoMask, trk_bestFromFirstHitSimTrkIdx, trk_bestFromFirstHitSimTrkNChi2, trk_bestFromFirstHitSimTrkShareFrac, trk_bestFromFirstHitSimTrkShareFracSimClusterDenom, trk_bestFromFirstHitSimTrkShareFracSimDenom, trk_bestSimTrkIdx, trk_bestSimTrkNChi2, trk_bestSimTrkShareFrac, trk_bestSimTrkShareFracSimClusterDenom, trk_bestSimTrkShareFracSimDenom, trk_cotTheta, trk_dxy, trk_dxyClosestPV, trk_dxyErr, trk_dxyPV, trk_dz, trk_dzClosestPV, trk_dzErr, trk_dzPV, trk_eta, trk_etaErr, trk_hitIdx, trk_hitType, trk_inner_pt, trk_inner_px, trk_inner_py, trk_inner_pz, trk_isHP, trk_isTrue, trk_lambda, trk_lambdaErr, trk_mvas, trk_n3DLay, trk_nChi2, trk_nChi2_1Dmod, trk_nCluster, trk_ndof, trk_nInactive, trk_nInnerInactive, trk_nInnerLost, trk_nLost, trk_nLostLay, trk_nOuterInactive, trk_nOuterLost, trk_nPixel, trk_nPixelLay, trk_nStrip, trk_nStripLay, trk_nValid, trk_originalAlgo, trk_outer_pt, trk_outer_px, trk_outer_py, trk_outer_pz, trk_phi, trk_phiErr, trk_pt, trk_ptErr, trk_px, trk_py, trk_pz, trk_q, trk_qualityMasks, trk_refpoint_x, trk_refpoint_y, trk_refpoint_z, trk_seedIdx, trk_simTrkIdx, trk_simTrkNChi2, trk_simTrkShareFrac, trk_stopReason, trk_vtxIdx, vtx_chi2, vtx_fake, vtx_ndof, vtx_trkIdx, vtx_valid, vtx_x, vtx_xErr, vtx_y, vtx_yErr, vtx_z, and vtx_zErr.

Referenced by analyze().

2013  {
2014  ev_run = 0;
2015  ev_lumi = 0;
2016  ev_event = 0;
2017 
2018  //tracks
2019  trk_px.clear();
2020  trk_py.clear();
2021  trk_pz.clear();
2022  trk_pt.clear();
2023  trk_inner_px.clear();
2024  trk_inner_py.clear();
2025  trk_inner_pz.clear();
2026  trk_inner_pt.clear();
2027  trk_outer_px.clear();
2028  trk_outer_py.clear();
2029  trk_outer_pz.clear();
2030  trk_outer_pt.clear();
2031  trk_eta.clear();
2032  trk_lambda.clear();
2033  trk_cotTheta.clear();
2034  trk_phi.clear();
2035  trk_dxy.clear();
2036  trk_dz.clear();
2037  trk_dxyPV.clear();
2038  trk_dzPV.clear();
2039  trk_dxyClosestPV.clear();
2040  trk_dzClosestPV.clear();
2041  trk_ptErr.clear();
2042  trk_etaErr.clear();
2043  trk_lambdaErr.clear();
2044  trk_phiErr.clear();
2045  trk_dxyErr.clear();
2046  trk_dzErr.clear();
2047  trk_refpoint_x.clear();
2048  trk_refpoint_y.clear();
2049  trk_refpoint_z.clear();
2050  trk_nChi2.clear();
2051  trk_nChi2_1Dmod.clear();
2052  trk_ndof.clear();
2053  for (auto& mva : trk_mvas) {
2054  mva.clear();
2055  }
2056  for (auto& mask : trk_qualityMasks) {
2057  mask.clear();
2058  }
2059  trk_q.clear();
2060  trk_nValid.clear();
2061  trk_nLost.clear();
2062  trk_nInactive.clear();
2063  trk_nPixel.clear();
2064  trk_nStrip.clear();
2065  trk_nOuterLost.clear();
2066  trk_nInnerLost.clear();
2067  trk_nOuterInactive.clear();
2068  trk_nInnerInactive.clear();
2069  trk_nPixelLay.clear();
2070  trk_nStripLay.clear();
2071  trk_n3DLay.clear();
2072  trk_nLostLay.clear();
2073  trk_nCluster.clear();
2074  trk_algo.clear();
2075  trk_originalAlgo.clear();
2076  trk_algoMask.clear();
2077  trk_stopReason.clear();
2078  trk_isHP.clear();
2079  trk_seedIdx.clear();
2080  trk_vtxIdx.clear();
2081  trk_isTrue.clear();
2082  trk_bestSimTrkIdx.clear();
2083  trk_bestSimTrkShareFrac.clear();
2086  trk_bestSimTrkNChi2.clear();
2092  trk_simTrkIdx.clear();
2093  trk_simTrkShareFrac.clear();
2094  trk_simTrkNChi2.clear();
2095  trk_hitIdx.clear();
2096  trk_hitType.clear();
2097  //track candidates
2098  tcand_pca_valid.clear();
2099  tcand_pca_px.clear();
2100  tcand_pca_py.clear();
2101  tcand_pca_pz.clear();
2102  tcand_pca_pt.clear();
2103  tcand_pca_eta.clear();
2104  tcand_pca_phi.clear();
2105  tcand_pca_dxy.clear();
2106  tcand_pca_dz.clear();
2107  tcand_pca_ptErr.clear();
2108  tcand_pca_etaErr.clear();
2109  tcand_pca_lambdaErr.clear();
2110  tcand_pca_phiErr.clear();
2111  tcand_pca_dxyErr.clear();
2112  tcand_pca_dzErr.clear();
2113  tcand_px.clear();
2114  tcand_py.clear();
2115  tcand_pz.clear();
2116  tcand_pt.clear();
2117  tcand_x.clear();
2118  tcand_y.clear();
2119  tcand_z.clear();
2120  tcand_qbpErr.clear();
2121  tcand_lambdaErr.clear();
2122  tcand_phiErr.clear();
2123  tcand_xtErr.clear();
2124  tcand_ytErr.clear();
2125  tcand_ndof.clear();
2126  tcand_q.clear();
2127  tcand_nValid.clear();
2128  tcand_nPixel.clear();
2129  tcand_nStrip.clear();
2130  tcand_nCluster.clear();
2131  tcand_algo.clear();
2132  tcand_stopReason.clear();
2133  tcand_seedIdx.clear();
2134  tcand_vtxIdx.clear();
2135  tcand_isTrue.clear();
2136  tcand_bestSimTrkIdx.clear();
2137  tcand_bestSimTrkShareFrac.clear();
2140  tcand_bestSimTrkNChi2.clear();
2146  tcand_simTrkShareFrac.clear();
2147  tcand_simTrkNChi2.clear();
2148  tcand_simTrkIdx.clear();
2149  tcand_hitIdx.clear();
2150  tcand_hitType.clear();
2151  //sim tracks
2152  sim_event.clear();
2153  sim_bunchCrossing.clear();
2154  sim_pdgId.clear();
2155  sim_genPdgIds.clear();
2156  sim_isFromBHadron.clear();
2157  sim_px.clear();
2158  sim_py.clear();
2159  sim_pz.clear();
2160  sim_pt.clear();
2161  sim_eta.clear();
2162  sim_phi.clear();
2163  sim_pca_pt.clear();
2164  sim_pca_eta.clear();
2165  sim_pca_lambda.clear();
2166  sim_pca_cotTheta.clear();
2167  sim_pca_phi.clear();
2168  sim_pca_dxy.clear();
2169  sim_pca_dz.clear();
2170  sim_q.clear();
2171  sim_nValid.clear();
2172  sim_nPixel.clear();
2173  sim_nStrip.clear();
2174  sim_nLay.clear();
2175  sim_nPixelLay.clear();
2176  sim_n3DLay.clear();
2177  sim_nTrackerHits.clear();
2178  sim_nRecoClusters.clear();
2179  sim_trkIdx.clear();
2180  sim_seedIdx.clear();
2181  sim_trkShareFrac.clear();
2182  sim_parentVtxIdx.clear();
2183  sim_decayVtxIdx.clear();
2184  sim_simHitIdx.clear();
2185  //pixels
2186  pix_isBarrel.clear();
2187  pix_detId.clear();
2188  pix_trkIdx.clear();
2189  pix_onTrk_x.clear();
2190  pix_onTrk_y.clear();
2191  pix_onTrk_z.clear();
2192  pix_onTrk_xx.clear();
2193  pix_onTrk_xy.clear();
2194  pix_onTrk_yy.clear();
2195  pix_onTrk_yz.clear();
2196  pix_onTrk_zz.clear();
2197  pix_onTrk_zx.clear();
2198  pix_tcandIdx.clear();
2199  pix_seeIdx.clear();
2200  pix_simHitIdx.clear();
2201  pix_xySignificance.clear();
2202  pix_chargeFraction.clear();
2203  pix_simType.clear();
2204  pix_x.clear();
2205  pix_y.clear();
2206  pix_z.clear();
2207  pix_xx.clear();
2208  pix_xy.clear();
2209  pix_yy.clear();
2210  pix_yz.clear();
2211  pix_zz.clear();
2212  pix_zx.clear();
2213  pix_radL.clear();
2214  pix_bbxi.clear();
2215  pix_clustSizeCol.clear();
2216  pix_clustSizeRow.clear();
2217  pix_usedMask.clear();
2218  //strips
2219  str_isBarrel.clear();
2220  str_detId.clear();
2221  str_trkIdx.clear();
2222  str_onTrk_x.clear();
2223  str_onTrk_y.clear();
2224  str_onTrk_z.clear();
2225  str_onTrk_xx.clear();
2226  str_onTrk_xy.clear();
2227  str_onTrk_yy.clear();
2228  str_onTrk_yz.clear();
2229  str_onTrk_zz.clear();
2230  str_onTrk_zx.clear();
2231  str_tcandIdx.clear();
2232  str_seeIdx.clear();
2233  str_simHitIdx.clear();
2234  str_xySignificance.clear();
2235  str_chargeFraction.clear();
2236  str_simType.clear();
2237  str_x.clear();
2238  str_y.clear();
2239  str_z.clear();
2240  str_xx.clear();
2241  str_xy.clear();
2242  str_yy.clear();
2243  str_yz.clear();
2244  str_zz.clear();
2245  str_zx.clear();
2246  str_radL.clear();
2247  str_bbxi.clear();
2248  str_chargePerCM.clear();
2249  str_clustSize.clear();
2250  str_usedMask.clear();
2251  //matched hits
2252  glu_isBarrel.clear();
2253  glu_detId.clear();
2254  glu_monoIdx.clear();
2255  glu_stereoIdx.clear();
2256  glu_seeIdx.clear();
2257  glu_x.clear();
2258  glu_y.clear();
2259  glu_z.clear();
2260  glu_xx.clear();
2261  glu_xy.clear();
2262  glu_yy.clear();
2263  glu_yz.clear();
2264  glu_zz.clear();
2265  glu_zx.clear();
2266  glu_radL.clear();
2267  glu_bbxi.clear();
2268  glu_chargePerCM.clear();
2269  glu_clustSizeMono.clear();
2270  glu_clustSizeStereo.clear();
2271  glu_usedMaskMono.clear();
2272  glu_usedMaskStereo.clear();
2273  //phase2 OT
2274  ph2_isBarrel.clear();
2275  ph2_detId.clear();
2276  ph2_trkIdx.clear();
2277  ph2_onTrk_x.clear();
2278  ph2_onTrk_y.clear();
2279  ph2_onTrk_z.clear();
2280  ph2_onTrk_xx.clear();
2281  ph2_onTrk_xy.clear();
2282  ph2_onTrk_yy.clear();
2283  ph2_onTrk_yz.clear();
2284  ph2_onTrk_zz.clear();
2285  ph2_onTrk_zx.clear();
2286  ph2_tcandIdx.clear();
2287  ph2_seeIdx.clear();
2288  ph2_xySignificance.clear();
2289  ph2_simHitIdx.clear();
2290  ph2_simType.clear();
2291  ph2_x.clear();
2292  ph2_y.clear();
2293  ph2_z.clear();
2294  ph2_xx.clear();
2295  ph2_xy.clear();
2296  ph2_yy.clear();
2297  ph2_yz.clear();
2298  ph2_zz.clear();
2299  ph2_zx.clear();
2300  ph2_radL.clear();
2301  ph2_bbxi.clear();
2302  //invalid hits
2303  inv_isBarrel.clear();
2304  inv_detId.clear();
2305  inv_detId_phase2.clear();
2306  inv_type.clear();
2307  // simhits
2308  simhit_detId.clear();
2309  simhit_detId_phase2.clear();
2310  simhit_x.clear();
2311  simhit_y.clear();
2312  simhit_z.clear();
2313  simhit_px.clear();
2314  simhit_py.clear();
2315  simhit_pz.clear();
2316  simhit_particle.clear();
2317  simhit_process.clear();
2318  simhit_eloss.clear();
2319  simhit_tof.clear();
2320  //simhit_simTrackId.clear();
2321  simhit_simTrkIdx.clear();
2322  simhit_hitIdx.clear();
2323  simhit_hitType.clear();
2324  //beamspot
2325  bsp_x = -9999.;
2326  bsp_y = -9999.;
2327  bsp_z = -9999.;
2328  bsp_sigmax = -9999.;
2329  bsp_sigmay = -9999.;
2330  bsp_sigmaz = -9999.;
2331  //seeds
2332  see_fitok.clear();
2333  see_px.clear();
2334  see_py.clear();
2335  see_pz.clear();
2336  see_pt.clear();
2337  see_eta.clear();
2338  see_phi.clear();
2339  see_dxy.clear();
2340  see_dz.clear();
2341  see_ptErr.clear();
2342  see_etaErr.clear();
2343  see_phiErr.clear();
2344  see_dxyErr.clear();
2345  see_dzErr.clear();
2346  see_chi2.clear();
2347  see_statePt.clear();
2348  see_stateTrajX.clear();
2349  see_stateTrajY.clear();
2350  see_stateTrajPx.clear();
2351  see_stateTrajPy.clear();
2352  see_stateTrajPz.clear();
2353  see_stateTrajGlbX.clear();
2354  see_stateTrajGlbY.clear();
2355  see_stateTrajGlbZ.clear();
2356  see_stateTrajGlbPx.clear();
2357  see_stateTrajGlbPy.clear();
2358  see_stateTrajGlbPz.clear();
2359  see_stateCurvCov.clear();
2360  see_q.clear();
2361  see_nValid.clear();
2362  see_nPixel.clear();
2363  see_nGlued.clear();
2364  see_nStrip.clear();
2365  see_nPhase2OT.clear();
2366  see_nCluster.clear();
2367  see_algo.clear();
2368  see_stopReason.clear();
2369  see_nCands.clear();
2370  see_trkIdx.clear();
2371  see_tcandIdx.clear();
2372  see_isTrue.clear();
2373  see_bestSimTrkIdx.clear();
2374  see_bestSimTrkShareFrac.clear();
2377  see_simTrkIdx.clear();
2378  see_simTrkShareFrac.clear();
2379  see_hitIdx.clear();
2380  see_hitType.clear();
2381  //seed algo offset
2382  see_offset.clear();
2383 
2384  // vertices
2385  vtx_x.clear();
2386  vtx_y.clear();
2387  vtx_z.clear();
2388  vtx_xErr.clear();
2389  vtx_yErr.clear();
2390  vtx_zErr.clear();
2391  vtx_ndof.clear();
2392  vtx_chi2.clear();
2393  vtx_fake.clear();
2394  vtx_valid.clear();
2395  vtx_trkIdx.clear();
2396 
2397  // Tracking vertices
2398  simvtx_event.clear();
2399  simvtx_bunchCrossing.clear();
2400  simvtx_processType.clear();
2401  simvtx_x.clear();
2402  simvtx_y.clear();
2403  simvtx_z.clear();
2404  simvtx_sourceSimIdx.clear();
2405  simvtx_daughterSimIdx.clear();
2406  simpv_idx.clear();
2407 }
std::vector< unsigned int > sim_nTrackerHits
std::vector< int > trk_bestSimTrkIdx
std::vector< std::vector< float > > ph2_onTrk_yz
std::vector< float > sim_pca_dz
edm::LuminosityBlockNumber_t ev_lumi
std::vector< float > trk_nChi2_1Dmod
std::vector< unsigned int > simvtx_processType
std::vector< unsigned int > sim_nLay
std::vector< float > ph2_radL
std::vector< float > tcand_pca_phiErr
std::vector< float > trk_dxyPV
std::vector< float > see_bestSimTrkShareFrac
std::vector< std::vector< float > > see_simTrkShareFrac
std::vector< short > see_fitok
std::vector< short > vtx_fake
std::vector< float > simvtx_z
std::vector< std::vector< float > > trk_simTrkNChi2
std::vector< std::vector< int > > see_hitType
std::vector< float > trk_dzClosestPV
std::vector< short > ph2_isBarrel
DetIdStrip str_detId
std::vector< std::vector< float > > pix_onTrk_x
std::vector< float > trk_phi
std::vector< float > sim_pca_cotTheta
std::vector< float > sim_pca_dxy
std::vector< float > see_stateTrajX
std::vector< unsigned int > trk_nOuterLost
std::vector< float > glu_xy
std::vector< short > trk_isTrue
std::vector< std::vector< int > > ph2_seeIdx
std::vector< float > glu_radL
std::vector< float > trk_inner_pz
std::vector< float > see_stateTrajPy
std::vector< float > pix_y
std::vector< int > trk_vtxIdx
std::vector< std::vector< int > > str_trkIdx
std::vector< unsigned int > see_nValid
std::vector< float > str_yy
std::vector< float > trk_outer_py
std::vector< float > glu_chargePerCM
std::vector< float > pix_zz
std::vector< float > ph2_bbxi
std::vector< float > tcand_ytErr
std::vector< uint64_t > str_usedMask
std::vector< int > glu_monoIdx
std::vector< float > trk_eta
std::vector< short > glu_isBarrel
std::vector< std::vector< float > > ph2_onTrk_y
std::vector< std::vector< float > > str_onTrk_yz
std::vector< int > sim_bunchCrossing
std::vector< float > see_phiErr
std::vector< int > trk_bestFromFirstHitSimTrkIdx
std::vector< std::vector< int > > simhit_hitIdx
std::vector< float > tcand_pca_pz
std::vector< float > str_x
std::vector< float > see_dzErr
std::vector< unsigned int > sim_n3DLay
std::vector< float > trk_cotTheta
std::vector< float > trk_bestSimTrkNChi2
std::vector< unsigned int > see_nStrip
std::vector< float > trk_px
std::vector< unsigned short > pix_simType
std::vector< unsigned short > inv_type
std::vector< float > see_stateTrajPz
std::vector< float > pix_zx
std::vector< std::vector< float > > ph2_onTrk_zx
std::vector< float > sim_phi
std::vector< unsigned int > tcand_algo
std::vector< std::vector< int > > trk_simTrkIdx
std::vector< float > trk_dzPV
std::vector< float > trk_dxyErr
std::vector< float > str_yz
std::vector< float > trk_pt
std::vector< float > glu_x
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_inner_py
std::vector< float > see_px
std::vector< float > see_chi2
std::vector< float > simhit_px
std::vector< float > glu_z
std::vector< float > see_stateTrajY
std::vector< unsigned short > see_stopReason
std::vector< float > tcand_pca_ptErr
std::vector< float > trk_outer_px
std::vector< std::vector< int > > trk_hitType
std::vector< unsigned int > trk_nCluster
DetIdPixel pix_detId
std::vector< float > ph2_xx
std::vector< std::vector< float > > pix_onTrk_z
std::vector< std::vector< int > > ph2_trkIdx
std::vector< unsigned int > see_algo
std::vector< unsigned int > tcand_nStrip
std::vector< float > tcand_bestSimTrkShareFrac
std::vector< float > trk_inner_pt
std::vector< short > simhit_process
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
std::vector< std::vector< float > > str_onTrk_xx
std::vector< float > tcand_pca_dxy
std::vector< std::vector< int > > str_seeIdx
std::vector< std::vector< int > > see_simTrkIdx
std::vector< int > simvtx_event
std::vector< float > str_radL
std::vector< int > simhit_simTrkIdx
std::vector< unsigned short > trk_stopReason
std::vector< uint64_t > glu_usedMaskStereo
std::vector< float > tcand_pca_eta
std::vector< float > sim_py
std::vector< float > sim_px
std::vector< float > pix_xx
std::vector< std::vector< int > > sim_decayVtxIdx
std::vector< float > trk_refpoint_x
std::vector< float > pix_radL
std::vector< float > pix_bbxi
std::vector< std::vector< float > > sim_trkShareFrac
std::vector< std::vector< float > > trk_mvas
std::vector< float > ph2_zx
std::vector< float > tcand_pca_dzErr
std::vector< int > simpv_idx
constexpr uint32_t mask
Definition: gpuClustering.h:26
std::vector< std::vector< float > > str_xySignificance
std::vector< std::vector< int > > pix_seeIdx
std::vector< unsigned short > str_simType
std::vector< int > sim_q
std::vector< short > see_isTrue
std::vector< short > inv_isBarrel
std::vector< float > trk_bestSimTrkShareFracSimDenom
std::vector< float > trk_bestFromFirstHitSimTrkNChi2
std::vector< float > see_etaErr
std::vector< std::vector< float > > trk_simTrkShareFrac
std::vector< float > simhit_z
std::vector< float > tcand_qbpErr
std::vector< float > ph2_z
std::vector< float > ph2_yy
std::vector< float > tcand_pz
std::vector< float > tcand_phiErr
std::vector< unsigned int > tcand_nPixel
std::vector< float > tcand_pca_etaErr
std::vector< float > trk_refpoint_y
std::vector< unsigned int > trk_nLostLay
std::vector< int > sim_event
std::vector< unsigned int > trk_nStrip
std::vector< unsigned int > tcand_nCluster
std::vector< int > see_bestSimTrkIdx
std::vector< float > see_stateTrajGlbPz
std::vector< unsigned int > trk_nPixel
std::vector< float > glu_y
std::vector< std::vector< float > > pix_xySignificance
std::vector< float > trk_pz
std::vector< std::vector< float > > pix_onTrk_yz
std::vector< float > tcand_z
std::vector< float > trk_dzErr
std::vector< unsigned short > tcand_stopReason
std::vector< float > tcand_pca_pt
std::vector< float > trk_lambdaErr
std::vector< std::vector< float > > pix_onTrk_zz
std::vector< std::vector< float > > see_stateCurvCov
std::vector< unsigned int > see_nCluster
std::vector< float > ph2_y
std::vector< std::vector< int > > simvtx_sourceSimIdx
std::vector< int > tcand_vtxIdx
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< short > pix_isBarrel
std::vector< std::vector< float > > str_onTrk_z
std::vector< float > tcand_xtErr
std::vector< float > glu_yz
std::vector< float > sim_pca_phi
std::vector< int > pix_clustSizeCol
std::vector< unsigned int > trk_algo
std::vector< unsigned int > sim_nRecoClusters
std::vector< int > see_tcandIdx
std::vector< float > tcand_y
std::vector< float > ph2_xy
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< float > vtx_y
std::vector< float > pix_z
std::vector< int > see_bestFromFirstHitSimTrkIdx
std::vector< float > sim_eta
std::vector< unsigned int > trk_originalAlgo
std::vector< unsigned int > trk_nInnerLost
std::vector< float > str_y
std::vector< int > sim_pdgId
std::vector< int > see_q
std::vector< std::vector< float > > pix_onTrk_zx
std::vector< std::vector< int > > simhit_hitType
std::vector< float > trk_refpoint_z
std::vector< unsigned int > trk_nInactive
std::vector< unsigned int > trk_nOuterInactive
std::vector< float > pix_yz
std::vector< std::vector< int > > sim_genPdgIds
std::vector< int > trk_seedIdx
std::vector< std::vector< float > > pix_chargeFraction
edm::RunNumber_t ev_run
std::vector< std::vector< int > > tcand_hitType
std::vector< float > vtx_yErr
std::vector< std::vector< int > > pix_trkIdx
std::vector< unsigned int > sim_nValid
std::vector< float > glu_yy
std::vector< float > vtx_ndof
std::vector< std::vector< int > > ph2_simHitIdx
std::vector< float > simvtx_x
std::vector< std::vector< float > > ph2_onTrk_x
std::vector< float > str_zz
std::vector< std::vector< int > > tcand_simTrkIdx
DetIdAllPhase2 inv_detId_phase2
std::vector< float > tcand_pca_lambdaErr
std::vector< std::vector< float > > str_onTrk_y
std::vector< std::vector< float > > pix_onTrk_xx
std::vector< float > sim_pca_pt
DetIdPhase2OT ph2_detId
std::vector< float > see_dxyErr
std::vector< float > tcand_bestFromFirstHitSimTrkShareFrac
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
std::vector< short > tcand_pca_valid
std::vector< float > see_pt
std::vector< unsigned int > see_nPhase2OT
std::vector< float > see_dxy
std::vector< std::vector< int > > glu_seeIdx
std::vector< unsigned int > trk_n3DLay
std::vector< std::vector< int > > sim_trkIdx
std::vector< float > trk_outer_pt
std::vector< float > str_chargePerCM
std::vector< float > trk_dz
std::vector< float > trk_ptErr
std::vector< unsigned int > trk_nStripLay
std::vector< float > see_phi
std::vector< float > vtx_z
std::vector< float > see_pz
std::vector< float > trk_phiErr
std::vector< unsigned int > sim_nPixelLay
std::vector< float > trk_lambda
std::vector< float > glu_zz
std::vector< float > tcand_bestSimTrkNChi2
std::vector< float > sim_pca_lambda
std::vector< float > see_stateTrajPx
std::vector< float > glu_zx
std::vector< std::vector< float > > str_onTrk_zx
std::vector< int > tcand_seedIdx
std::vector< std::vector< float > > str_onTrk_x
std::vector< float > vtx_xErr
std::vector< float > tcand_bestSimTrkShareFracSimDenom
std::vector< std::vector< float > > tcand_simTrkShareFrac
std::vector< float > tcand_pt
std::vector< float > sim_pz
std::vector< float > see_stateTrajGlbY
std::vector< std::vector< int > > sim_simHitIdx
edm::EventNumber_t ev_event
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< float > ph2_x
std::vector< uint64_t > pix_usedMask
std::vector< uint64_t > glu_usedMaskMono
std::vector< int > glu_stereoIdx
std::vector< float > trk_py
std::vector< std::vector< int > > pix_simHitIdx
std::vector< float > trk_nChi2
std::vector< std::vector< unsigned short > > trk_qualityMasks
std::vector< unsigned int > see_nGlued
std::vector< float > see_py
std::vector< float > pix_x
std::vector< int > sim_parentVtxIdx
std::vector< float > see_ptErr
std::vector< float > str_z
std::vector< short > tcand_isTrue
std::vector< float > str_zx
std::vector< std::vector< int > > tcand_hitIdx
std::vector< float > tcand_pca_dz
std::vector< int > glu_clustSizeStereo
std::vector< float > tcand_bestSimTrkShareFracSimClusterDenom
std::vector< short > trk_isHP
std::vector< float > str_xy
std::vector< std::vector< float > > str_chargeFraction
std::vector< unsigned int > trk_nInnerInactive
std::vector< float > tcand_pca_py
std::vector< float > tcand_pca_dxyErr
std::vector< std::vector< float > > ph2_xySignificance
std::vector< std::vector< int > > trk_hitIdx
std::vector< std::vector< int > > str_tcandIdx
std::vector< int > trk_q
std::vector< unsigned int > sim_nPixel
std::vector< std::vector< float > > pix_onTrk_xy
std::vector< short > vtx_valid
std::vector< float > see_stateTrajGlbX
std::vector< std::vector< float > > ph2_onTrk_xy
std::vector< unsigned int > tcand_nValid
std::vector< int > tcand_q
std::vector< std::vector< int > > vtx_trkIdx
std::vector< short > str_isBarrel
std::vector< int > str_clustSize
std::vector< float > glu_bbxi
std::vector< int > simhit_particle
std::vector< float > tcand_ndof
std::vector< float > trk_outer_pz
std::vector< unsigned short > ph2_simType
std::vector< std::vector< float > > ph2_onTrk_z
std::vector< float > sim_pca_eta
std::vector< float > ph2_yz
std::vector< int > glu_clustSizeMono
std::vector< float > simhit_y
std::vector< float > trk_dxyClosestPV
std::vector< float > see_stateTrajGlbPx
std::vector< std::vector< int > > str_simHitIdx
std::vector< float > see_statePt
std::vector< float > tcand_lambdaErr
std::vector< float > trk_ndof
std::vector< float > glu_xx
std::vector< std::vector< float > > pix_onTrk_yy
std::vector< std::vector< int > > ph2_tcandIdx
std::vector< unsigned int > trk_nPixelLay
std::vector< float > see_stateTrajGlbZ
std::vector< std::vector< float > > str_onTrk_xy
std::vector< float > simhit_x
std::vector< float > tcand_pca_px
std::vector< int > tcand_bestFromFirstHitSimTrkIdx
std::vector< float > simvtx_y
std::vector< unsigned short > see_nCands
std::vector< std::vector< int > > simvtx_daughterSimIdx
std::vector< float > str_xx
std::vector< float > trk_bestSimTrkShareFrac
std::vector< float > simhit_py
std::vector< unsigned int > see_offset
std::vector< std::vector< float > > pix_onTrk_y
std::vector< float > ph2_zz
std::vector< float > tcand_bestFromFirstHitSimTrkNChi2
std::vector< int > see_trkIdx
std::vector< int > tcand_bestSimTrkIdx
std::vector< float > tcand_x
std::vector< std::vector< float > > ph2_onTrk_zz
std::vector< std::vector< int > > pix_tcandIdx
std::vector< float > simhit_tof
std::vector< std::vector< int > > sim_seedIdx
std::vector< float > see_stateTrajGlbPy
std::vector< float > pix_xy
std::vector< float > trk_dxy
std::vector< float > sim_pt
std::vector< float > pix_yy
std::vector< float > tcand_pca_phi
std::vector< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
std::vector< std::vector< int > > see_hitIdx
std::vector< std::vector< float > > str_onTrk_zz
std::vector< float > tcand_px
std::vector< float > vtx_x
std::vector< std::vector< float > > str_onTrk_yy
std::vector< float > simhit_pz
std::vector< std::vector< float > > tcand_simTrkNChi2
std::vector< unsigned int > see_nPixel
std::vector< float > see_eta
DetIdAllPhase2 simhit_detId_phase2
std::vector< unsigned int > trk_nValid
std::vector< unsigned int > trk_nLost
std::vector< float > trk_inner_px
DetIdStrip glu_detId
std::vector< float > vtx_zErr
std::vector< float > simhit_eloss
std::vector< float > see_bestFromFirstHitSimTrkShareFrac
std::vector< std::vector< float > > ph2_onTrk_yy
std::vector< int > sim_isFromBHadron
std::vector< std::vector< float > > ph2_onTrk_xx
std::vector< float > tcand_py
std::vector< int > pix_clustSizeRow
std::vector< float > vtx_chi2
std::vector< int > simvtx_bunchCrossing
std::vector< float > str_bbxi
std::vector< float > see_dz
std::vector< unsigned int > sim_nStrip

◆ fillBeamSpot()

void TrackingNtuple::fillBeamSpot ( const reco::BeamSpot bs)
private

Definition at line 2683 of file TrackingNtuple.cc.

References cms::cuda::bs, bsp_sigmax, bsp_sigmay, bsp_sigmaz, bsp_x, bsp_y, and bsp_z.

Referenced by analyze().

2683  {
2684  bsp_x = bs.x0();
2685  bsp_y = bs.y0();
2686  bsp_z = bs.x0();
2687  bsp_sigmax = bs.BeamWidthX();
2688  bsp_sigmay = bs.BeamWidthY();
2689  bsp_sigmaz = bs.sigmaZ();
2690 }

◆ fillCandidates()

void TrackingNtuple::fillCandidates ( const edm::Handle< TrackCandidateCollection > &  candsHandle,
int  algo,
const TrackingParticleRefVector tpCollection,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const TrackingParticleRefKeyToCount &  tpKeyToClusterCount,
const MagneticField mf,
const reco::BeamSpot bs,
const reco::VertexCollection vertices,
const reco::TrackToTrackingParticleAssociator associatorByHits,
const ClusterTPAssociation clusterToTPMap,
const TrackerGeometry tracker,
const TrackerTopology tTopo,
const std::set< edm::ProductID > &  hitProductIds,
const std::map< edm::ProductID, size_t > &  seedToCollIndex 
)
private

Definition at line 4069 of file TrackingNtuple.cc.

References reco::TrackToTrackingParticleAssociator::associateRecoToSim(), edm::RefVector< C, T, F >::at(), cms::cuda::bs, HLT_2023v12_cff::cands, OmniClusterRef::cluster_pixel(), bsc_activity_cfg::clusters, DetId::det(), HLT_2023v12_cff::distance, edm::AssociationMap< Tag >::end(), Exception, edm::AssociationMap< Tag >::find(), BaseTrackerRecHit::firstClusterRef(), track_associator::hitsToClusterRefs(), mps_fire::i, hit::id, includeAllHits_, includeSeeds_, includeTrackingParticles_, TrajectoryStateClosestToBeamLine::isValid(), edm::Ref< C, T, F >::key(), TrackerTopology::layer(), LogTrace, heavyionUCCDQM_cfi::nClusters, ndof, hltrates_dqm_sourceclient-live_cfg::offset, AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::parameters(), ph2_tcandIdx, Phase2OT, pix_tcandIdx, Pixel, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), see_tcandIdx, mathSSE::sqrt(), str_tcandIdx, Strip, DetId::subdetId(), tcand_algo, tcand_bestFromFirstHitSimTrkIdx, tcand_bestFromFirstHitSimTrkNChi2, tcand_bestFromFirstHitSimTrkShareFrac, tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom, tcand_bestFromFirstHitSimTrkShareFracSimDenom, tcand_bestSimTrkIdx, tcand_bestSimTrkNChi2, tcand_bestSimTrkShareFrac, tcand_bestSimTrkShareFracSimClusterDenom, tcand_bestSimTrkShareFracSimDenom, tcand_hitIdx, tcand_hitType, tcand_isTrue, tcand_lambdaErr, tcand_nCluster, tcand_ndof, tcand_nPixel, tcand_nStrip, tcand_nValid, tcand_pca_dxy, tcand_pca_dxyErr, tcand_pca_dz, tcand_pca_dzErr, tcand_pca_eta, tcand_pca_etaErr, tcand_pca_lambdaErr, tcand_pca_phi, tcand_pca_phiErr, tcand_pca_pt, tcand_pca_ptErr, tcand_pca_px, tcand_pca_py, tcand_pca_pz, tcand_pca_valid, tcand_phiErr, tcand_pt, tcand_px, tcand_py, tcand_pz, tcand_q, tcand_qbpErr, tcand_seedIdx, tcand_simTrkIdx, tcand_simTrkNChi2, tcand_simTrkShareFrac, tcand_stopReason, tcand_vtxIdx, tcand_x, tcand_xtErr, tcand_y, tcand_ytErr, tcand_z, track_associator::trackAssociationChi2(), DetId::Tracker, PbPb_ZMuSkimMuonDPG_cff::tracker, TrajectoryStateClosestToBeamLine::trackStateAtPCA(), trajectoryStateTransform::transientState(), V0Monitor_cff::v0, and edm::helpers::KeyVal< K, V >::val.

Referenced by analyze().

4082  {
4083  reco::RecoToSimCollectionTCandidate recSimColl = associatorByHits.associateRecoToSim(candsHandle, tpCollection);
4084 
4085  TSCBLBuilderNoMaterial tscblBuilder;
4086 
4087  auto const& cands = *candsHandle;
4088  for (size_t iCand = 0; iCand < cands.size(); ++iCand) {
4089  const auto& aCand = cands[iCand];
4090  const edm::Ref<TrackCandidateCollection> aCandRef(candsHandle, iCand);
4091 
4092  //get parameters and errors from the candidate state
4093  auto const& pState = aCand.trajectoryStateOnDet();
4095  trajectoryStateTransform::transientState(pState, &(tracker.idToDet(pState.detId())->surface()), &mf);
4096  TrajectoryStateClosestToBeamLine tbStateAtPCA = tscblBuilder(*state.freeState(), bs);
4097  if (!tbStateAtPCA.isValid()) {
4098  edm::LogVerbatim("TrackBuilding") << "TrajectoryStateClosestToBeamLine not valid";
4099  }
4100 
4101  auto const& stateAtPCA = tbStateAtPCA.trackStateAtPCA();
4102  auto v0 = stateAtPCA.position();
4103  auto p = stateAtPCA.momentum();
4104  math::XYZPoint pos(v0.x(), v0.y(), v0.z());
4105  math::XYZVector mom(p.x(), p.y(), p.z());
4106 
4107  //pseduo track for access to easy methods
4108  static const reco::Track::CovarianceMatrix dummyCov = AlgebraicMatrixID();
4109  reco::Track trk(
4110  0, 0, pos, mom, stateAtPCA.charge(), tbStateAtPCA.isValid() ? stateAtPCA.curvilinearError().matrix() : dummyCov);
4111 
4112  const auto& tkParam = trk.parameters();
4113  auto tkCov = trk.covariance();
4114  tkCov.Invert();
4115 
4116  // Standard track-TP matching
4117  int nSimHits = 0;
4118  bool isSimMatched = false;
4119  std::vector<int> tpIdx;
4120  std::vector<float> sharedFraction;
4121  std::vector<float> tpChi2;
4122  auto foundTPs = recSimColl.find(aCandRef);
4123  if (foundTPs != recSimColl.end()) {
4124  if (!foundTPs->val.empty()) {
4125  nSimHits = foundTPs->val[0].first->numberOfTrackerHits();
4126  isSimMatched = true;
4127  }
4128  for (const auto& tpQuality : foundTPs->val) {
4129  tpIdx.push_back(tpKeyToIndex.at(tpQuality.first.key()));
4130  sharedFraction.push_back(tpQuality.second);
4131  tpChi2.push_back(track_associator::trackAssociationChi2(tkParam, tkCov, *(tpCollection[tpIdx.back()]), mf, bs));
4132  }
4133  }
4134 
4135  // Search for a best-matching TrackingParticle for a track
4136  const auto clusters = track_associator::hitsToClusterRefs(aCand.recHits().begin(), aCand.recHits().end());
4137  const int nClusters = clusters.size();
4138 
4139  const auto bestKeyCount = findBestMatchingTrackingParticle(aCand.recHits(), clusterToTPMap, tpKeyToIndex);
4140  const float bestCountF = bestKeyCount.countClusters;
4141  const float bestShareFrac = bestCountF / nClusters;
4142  float bestShareFracSimDenom = 0;
4143  float bestShareFracSimClusterDenom = 0;
4144  float bestChi2 = -1;
4145  if (bestKeyCount.key >= 0) {
4146  bestShareFracSimDenom = bestCountF / tpCollection[tpKeyToIndex.at(bestKeyCount.key)]->numberOfTrackerHits();
4147  bestShareFracSimClusterDenom = bestCountF / tpKeyToClusterCount.at(bestKeyCount.key);
4149  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestKeyCount.key)]), mf, bs);
4150  }
4151  // Another way starting from the first hit of the track
4152  const auto bestFirstHitKeyCount =
4153  findMatchingTrackingParticleFromFirstHit(aCand.recHits(), clusterToTPMap, tpKeyToIndex);
4154  const float bestFirstCountF = bestFirstHitKeyCount.countClusters;
4155  const float bestFirstHitShareFrac = bestFirstCountF / nClusters;
4156  float bestFirstHitShareFracSimDenom = 0;
4157  float bestFirstHitShareFracSimClusterDenom = 0;
4158  float bestFirstHitChi2 = -1;
4159  if (bestFirstHitKeyCount.key >= 0) {
4160  bestFirstHitShareFracSimDenom =
4161  bestFirstCountF / tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]->numberOfTrackerHits();
4162  bestFirstHitShareFracSimClusterDenom = bestFirstCountF / tpKeyToClusterCount.at(bestFirstHitKeyCount.key);
4163  bestFirstHitChi2 = track_associator::trackAssociationChi2(
4164  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]), mf, bs);
4165  }
4166 
4167  auto iglobCand = tcand_pca_valid.size(); //global cand index
4168  tcand_pca_valid.push_back(tbStateAtPCA.isValid());
4169  tcand_pca_px.push_back(trk.px());
4170  tcand_pca_py.push_back(trk.py());
4171  tcand_pca_pz.push_back(trk.pz());
4172  tcand_pca_pt.push_back(trk.pt());
4173  tcand_pca_eta.push_back(trk.eta());
4174  tcand_pca_phi.push_back(trk.phi());
4175  tcand_pca_dxy.push_back(trk.dxy());
4176  tcand_pca_dz.push_back(trk.dz());
4177  tcand_pca_ptErr.push_back(trk.ptError());
4178  tcand_pca_etaErr.push_back(trk.etaError());
4179  tcand_pca_lambdaErr.push_back(trk.lambdaError());
4180  tcand_pca_phiErr.push_back(trk.phiError());
4181  tcand_pca_dxyErr.push_back(trk.dxyError());
4182  tcand_pca_dzErr.push_back(trk.dzError());
4183  tcand_px.push_back(state.globalMomentum().x());
4184  tcand_py.push_back(state.globalMomentum().y());
4185  tcand_pz.push_back(state.globalMomentum().z());
4186  tcand_pt.push_back(state.globalMomentum().perp());
4187  tcand_x.push_back(state.globalPosition().x());
4188  tcand_y.push_back(state.globalPosition().y());
4189  tcand_z.push_back(state.globalPosition().z());
4190 
4191  auto const& pStateCov = state.curvilinearError().matrix();
4192  tcand_qbpErr.push_back(sqrt(pStateCov(0, 0)));
4193  tcand_lambdaErr.push_back(sqrt(pStateCov(1, 1)));
4194  tcand_phiErr.push_back(sqrt(pStateCov(2, 2)));
4195  tcand_xtErr.push_back(sqrt(pStateCov(3, 3)));
4196  tcand_ytErr.push_back(sqrt(pStateCov(4, 4)));
4197 
4198  int ndof = -5;
4199  int nValid = 0;
4200  int nPixel = 0;
4201  int nStrip = 0;
4202  for (auto const& hit : aCand.recHits()) {
4203  if (hit.isValid()) {
4204  ndof += hit.dimension();
4205  nValid++;
4206 
4207  auto const subdet = hit.geographicalId().subdetId();
4209  nPixel++;
4210  else
4211  nStrip++;
4212  }
4213  }
4214  tcand_ndof.push_back(ndof);
4215  tcand_q.push_back(trk.charge());
4216  tcand_nValid.push_back(nValid);
4217  tcand_nPixel.push_back(nPixel);
4218  tcand_nStrip.push_back(nStrip);
4219  tcand_nCluster.push_back(nClusters);
4220  tcand_algo.push_back(algo);
4221  tcand_stopReason.push_back(aCand.stopReason());
4222  if (includeSeeds_) {
4223  auto offset = seedCollToOffset.find(aCand.seedRef().id());
4224  if (offset == seedCollToOffset.end()) {
4225  throw cms::Exception("Configuration")
4226  << "Track candidate refers to seed collection " << aCand.seedRef().id()
4227  << ", but that seed collection is not given as an input. The following collections were given as an input "
4228  << make_ProductIDMapPrinter(seedCollToOffset);
4229  }
4230 
4231  const auto seedIndex = offset->second + aCand.seedRef().key();
4232  tcand_seedIdx.push_back(seedIndex);
4233  if (see_tcandIdx[seedIndex] != -1) {
4234  throw cms::Exception("LogicError")
4235  << "Track cand index has already been set for seed " << seedIndex << " to " << see_tcandIdx[seedIndex]
4236  << "; was trying to set it to " << iglobCand << " current " << iCand;
4237  }
4238  see_tcandIdx[seedIndex] = iglobCand;
4239  }
4240  tcand_vtxIdx.push_back(-1); // to be set correctly in fillVertices
4242  tcand_simTrkIdx.push_back(tpIdx);
4243  tcand_simTrkShareFrac.push_back(sharedFraction);
4244  tcand_simTrkNChi2.push_back(tpChi2);
4245  tcand_bestSimTrkIdx.push_back(bestKeyCount.key >= 0 ? tpKeyToIndex.at(bestKeyCount.key) : -1);
4247  bestFirstHitKeyCount.key >= 0 ? tpKeyToIndex.at(bestFirstHitKeyCount.key) : -1);
4248  } else {
4249  tcand_isTrue.push_back(!tpIdx.empty());
4250  }
4251  tcand_bestSimTrkShareFrac.push_back(bestShareFrac);
4252  tcand_bestSimTrkShareFracSimDenom.push_back(bestShareFracSimDenom);
4253  tcand_bestSimTrkShareFracSimClusterDenom.push_back(bestShareFracSimClusterDenom);
4254  tcand_bestSimTrkNChi2.push_back(bestChi2);
4255  tcand_bestFromFirstHitSimTrkShareFrac.push_back(bestFirstHitShareFrac);
4256  tcand_bestFromFirstHitSimTrkShareFracSimDenom.push_back(bestFirstHitShareFracSimDenom);
4257  tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom.push_back(bestFirstHitShareFracSimClusterDenom);
4258  tcand_bestFromFirstHitSimTrkNChi2.push_back(bestFirstHitChi2);
4259 
4260  LogTrace("TrackingNtuple") << "Track cand #" << iCand << " glob " << iglobCand << " with q=" << trk.charge()
4261  << ", pT=" << trk.pt() << " GeV, eta: " << trk.eta() << ", phi: " << trk.phi()
4262  << ", nValid=" << nValid << " seed#=" << aCand.seedRef().key()
4263  << " simMatch=" << isSimMatched << " nSimHits=" << nSimHits
4264  << " sharedFraction=" << (sharedFraction.empty() ? -1 : sharedFraction[0])
4265  << " tpIdx=" << (tpIdx.empty() ? -1 : tpIdx[0]);
4266  std::vector<int> hitIdx;
4267  std::vector<int> hitType;
4268 
4269  for (auto i = aCand.recHits().begin(); i != aCand.recHits().end(); i++) {
4270  const TrackingRecHit* hit = &*i;
4271  DetId hitId = hit->geographicalId();
4272  LogTrace("TrackingNtuple") << "hit #" << std::distance(aCand.recHits().begin(), i)
4273  << " subdet=" << hitId.subdetId();
4274  if (hitId.det() != DetId::Tracker)
4275  continue;
4276 
4277  LogTrace("TrackingNtuple") << " " << subdetstring(hitId.subdetId()) << " " << tTopo.layer(hitId);
4278 
4279  if (hit->isValid()) {
4280  //ugly... but works
4281  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&*hit);
4282  const auto& clusterRef = bhit->firstClusterRef();
4283  unsigned int clusterKey;
4284  if (clusterRef.isPixel()) {
4285  clusterKey = clusterRef.cluster_pixel().key();
4286  } else if (clusterRef.isPhase2()) {
4287  clusterKey = clusterRef.cluster_phase2OT().key();
4288  } else {
4289  clusterKey = clusterRef.cluster_strip().key();
4290  }
4291 
4292  LogTrace("TrackingNtuple") << " id: " << hitId.rawId() << " - globalPos =" << hit->globalPosition()
4293  << " cluster=" << clusterKey << " clusterRef ID=" << clusterRef.id()
4294  << " eta,phi: " << hit->globalPosition().eta() << "," << hit->globalPosition().phi();
4295  if (includeAllHits_) {
4296  checkProductID(hitProductIds, clusterRef.id(), "track");
4297  if (clusterRef.isPixel()) {
4298  pix_tcandIdx[clusterKey].push_back(iglobCand);
4299  } else if (clusterRef.isPhase2()) {
4300  ph2_tcandIdx[clusterKey].push_back(iglobCand);
4301  } else {
4302  str_tcandIdx[clusterKey].push_back(iglobCand);
4303  }
4304  }
4305 
4306  hitIdx.push_back(clusterKey);
4307  if (clusterRef.isPixel()) {
4308  hitType.push_back(static_cast<int>(HitType::Pixel));
4309  } else if (clusterRef.isPhase2()) {
4310  hitType.push_back(static_cast<int>(HitType::Phase2OT));
4311  } else {
4312  hitType.push_back(static_cast<int>(HitType::Strip));
4313  }
4314  }
4315  }
4316 
4317  tcand_hitIdx.push_back(hitIdx);
4318  tcand_hitType.push_back(hitType);
4319  }
4320 }
Log< level::Info, true > LogVerbatim
std::vector< float > tcand_pca_phiErr
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::vector< float > tcand_ytErr
std::vector< float > tcand_pca_pz
std::vector< unsigned int > tcand_algo
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > tcand_pca_ptErr
std::vector< OmniClusterRef > hitsToClusterRefs(iter begin, iter end)
std::vector< unsigned int > tcand_nStrip
std::vector< float > tcand_bestSimTrkShareFrac
std::vector< float > tcand_pca_dxy
value_type const at(size_type idx) const
Retrieve an element of the RefVector.
Definition: RefVector.h:83
std::vector< float > tcand_pca_eta
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
key_type key() const
Accessor for product key.
Definition: Ref.h:250
std::vector< float > tcand_pca_dzErr
const_iterator find(const key_type &k) const
find element with specified reference key
unsigned int layer(const DetId &id) const
#define LogTrace(id)
const_iterator end() const
last iterator over the map (read only)
ClusterPixelRef cluster_pixel() const
std::vector< float > tcand_qbpErr
std::vector< float > tcand_pz
std::vector< float > tcand_phiErr
std::vector< unsigned int > tcand_nPixel
std::vector< float > tcand_pca_etaErr
std::vector< unsigned int > tcand_nCluster
std::vector< float > tcand_z
std::vector< unsigned short > tcand_stopReason
std::vector< float > tcand_pca_pt
std::vector< int > tcand_vtxIdx
std::vector< float > tcand_xtErr
std::vector< int > see_tcandIdx
std::vector< float > tcand_y
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< std::vector< int > > tcand_hitType
std::vector< std::vector< int > > tcand_simTrkIdx
std::vector< float > tcand_pca_lambdaErr
std::vector< float > tcand_bestFromFirstHitSimTrkShareFrac
std::vector< short > tcand_pca_valid
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
const bool includeSeeds_
const bool includeTrackingParticles_
std::vector< float > tcand_bestSimTrkNChi2
std::vector< int > tcand_seedIdx
std::vector< float > tcand_bestSimTrkShareFracSimDenom
std::vector< std::vector< float > > tcand_simTrkShareFrac
std::vector< float > tcand_pt
unsigned int id
std::vector< float > tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom
Definition: DetId.h:17
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
std::vector< short > tcand_isTrue
std::vector< std::vector< int > > tcand_hitIdx
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
virtual OmniClusterRef const & firstClusterRef() const =0
std::vector< float > tcand_pca_dz
std::vector< float > tcand_bestSimTrkShareFracSimClusterDenom
std::vector< float > tcand_pca_py
std::vector< float > tcand_pca_dxyErr
std::vector< std::vector< int > > str_tcandIdx
const bool includeAllHits_
std::vector< unsigned int > tcand_nValid
std::vector< int > tcand_q
std::vector< float > tcand_ndof
std::vector< float > tcand_lambdaErr
std::vector< std::vector< int > > ph2_tcandIdx
ParameterVector parameters() const
Track parameters with one-to-one correspondence to the covariance matrix.
Definition: TrackBase.h:711
std::vector< float > tcand_pca_px
std::vector< int > tcand_bestFromFirstHitSimTrkIdx
std::vector< float > tcand_bestFromFirstHitSimTrkNChi2
std::vector< int > tcand_bestSimTrkIdx
std::vector< float > tcand_x
std::vector< std::vector< int > > pix_tcandIdx
double trackAssociationChi2(const reco::TrackBase::ParameterVector &rParameters, const reco::TrackBase::CovarianceMatrix &recoTrackCovMatrix, const reco::TrackBase::ParameterVector &sParameters)
basic method where chi2 is computed
std::vector< float > tcand_pca_phi
std::vector< float > tcand_px
std::vector< std::vector< float > > tcand_simTrkNChi2
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:74
std::vector< float > tcand_py

◆ fillDescriptions()

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

Definition at line 4563 of file TrackingNtuple.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addUntracked(), edm::ParameterSet::addUntrackedParameter(), reco::TrackBase::algoName(), submitPVResolutionJobs::desc, reco::TrackBase::detachedQuadStep, reco::TrackBase::detachedTripletStep, reco::TrackBase::highPtTripletStep, ProducerED_cfi::InputTag, reco::TrackBase::lowPtQuadStep, reco::TrackBase::lowPtTripletStep, reco::TrackBase::mixedTripletStep, reco::TrackBase::pixelLessStep, reco::TrackBase::pixelPairStep, AlCaHLTBitMon_QueryRunRegistry::string, and reco::TrackBase::tobTecStep.

4563  {
4564  //The following says we do not know what parameters are allowed so do no validation
4565  // Please change this to state exactly what you do use, even if it is no parameters
4567  desc.addUntracked<std::vector<edm::InputTag>>(
4568  "seedTracks",
4569  std::vector<edm::InputTag>{edm::InputTag("seedTracksinitialStepSeeds"),
4570  edm::InputTag("seedTracksdetachedTripletStepSeeds"),
4571  edm::InputTag("seedTrackspixelPairStepSeeds"),
4572  edm::InputTag("seedTrackslowPtTripletStepSeeds"),
4573  edm::InputTag("seedTracksmixedTripletStepSeeds"),
4574  edm::InputTag("seedTrackspixelLessStepSeeds"),
4575  edm::InputTag("seedTrackstobTecStepSeeds"),
4576  edm::InputTag("seedTracksjetCoreRegionalStepSeeds"),
4577  edm::InputTag("seedTracksmuonSeededSeedsInOut"),
4578  edm::InputTag("seedTracksmuonSeededSeedsOutIn")});
4579  desc.addUntracked<std::vector<edm::InputTag>>(
4580  "trackCandidates",
4581  std::vector<edm::InputTag>{edm::InputTag("initialStepTrackCandidates"),
4582  edm::InputTag("detachedTripletStepTrackCandidates"),
4583  edm::InputTag("pixelPairStepTrackCandidates"),
4584  edm::InputTag("lowPtTripletStepTrackCandidates"),
4585  edm::InputTag("mixedTripletStepTrackCandidates"),
4586  edm::InputTag("pixelLessStepTrackCandidates"),
4587  edm::InputTag("tobTecStepTrackCandidates"),
4588  edm::InputTag("jetCoreRegionalStepTrackCandidates"),
4589  edm::InputTag("muonSeededTrackCandidatesInOut"),
4590  edm::InputTag("muonSeededTrackCandidatesOutIn")});
4591  desc.addUntracked<edm::InputTag>("tracks", edm::InputTag("generalTracks"));
4592  desc.addUntracked<std::vector<std::string>>("trackMVAs", std::vector<std::string>{{"generalTracks"}});
4593 
4594  edm::ParameterSetDescription cMaskDesc;
4595  cMaskDesc.addUntracked<unsigned int>("index");
4596  cMaskDesc.addUntracked<edm::InputTag>("src");
4597  std::vector<edm::ParameterSet> cMasks;
4598  auto addMask = [&cMasks](reco::Track::TrackAlgorithm algo) {
4599  edm::ParameterSet ps;
4600  ps.addUntrackedParameter<unsigned int>("index", static_cast<unsigned int>(algo));
4601  ps.addUntrackedParameter<edm::InputTag>("src", {reco::Track::algoName(algo) + "Clusters"});
4602  cMasks.push_back(ps);
4603  };
4607  addMask(reco::Track::lowPtQuadStep);
4610  addMask(reco::Track::pixelLessStep);
4611  addMask(reco::Track::pixelPairStep);
4612  addMask(reco::Track::tobTecStep);
4613  desc.addVPSetUntracked("clusterMasks", cMaskDesc, cMasks);
4614 
4615  desc.addUntracked<edm::InputTag>("trackingParticles", edm::InputTag("mix", "MergedTrackTruth"));
4616  desc.addUntracked<bool>("trackingParticlesRef", false);
4617  desc.addUntracked<edm::InputTag>("clusterTPMap", edm::InputTag("tpClusterProducer"));
4618  desc.addUntracked<edm::InputTag>("simHitTPMap", edm::InputTag("simHitTPAssocProducer"));
4619  desc.addUntracked<edm::InputTag>("trackAssociator", edm::InputTag("quickTrackAssociatorByHits"));
4620  desc.addUntracked<edm::InputTag>("pixelDigiSimLink", edm::InputTag("simSiPixelDigis"));
4621  desc.addUntracked<edm::InputTag>("stripDigiSimLink", edm::InputTag("simSiStripDigis"));
4622  desc.addUntracked<edm::InputTag>("phase2OTSimLink", edm::InputTag(""));
4623  desc.addUntracked<edm::InputTag>("beamSpot", edm::InputTag("offlineBeamSpot"));
4624  desc.addUntracked<edm::InputTag>("pixelRecHits", edm::InputTag("siPixelRecHits"));
4625  desc.addUntracked<edm::InputTag>("stripRphiRecHits", edm::InputTag("siStripMatchedRecHits", "rphiRecHit"));
4626  desc.addUntracked<edm::InputTag>("stripStereoRecHits", edm::InputTag("siStripMatchedRecHits", "stereoRecHit"));
4627  desc.addUntracked<edm::InputTag>("stripMatchedRecHits", edm::InputTag("siStripMatchedRecHits", "matchedRecHit"));
4628  desc.addUntracked<edm::InputTag>("phase2OTRecHits", edm::InputTag("siPhase2RecHits"));
4629  desc.addUntracked<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
4630  desc.addUntracked<edm::InputTag>("trackingVertices", edm::InputTag("mix", "MergedTrackTruth"));
4631  desc.addUntracked<edm::InputTag>("trackingParticleNlayers",
4632  edm::InputTag("trackingParticleNumberOfLayersProducer", "trackerLayers"));
4633  desc.addUntracked<edm::InputTag>("trackingParticleNpixellayers",
4634  edm::InputTag("trackingParticleNumberOfLayersProducer", "pixelLayers"));
4635  desc.addUntracked<edm::InputTag>("trackingParticleNstripstereolayers",
4636  edm::InputTag("trackingParticleNumberOfLayersProducer", "stripStereoLayers"));
4637  desc.addUntracked<std::string>("TTRHBuilder", "WithTrackAngle")
4638  ->setComment("currently not used: keep for possible future use");
4639  desc.addUntracked<bool>("includeSeeds", false);
4640  desc.addUntracked<bool>("includeTrackCandidates", false);
4641  desc.addUntracked<bool>("addSeedCurvCov", false);
4642  desc.addUntracked<bool>("includeAllHits", false);
4643  desc.addUntracked<bool>("includeOnTrackHitData", false);
4644  desc.addUntracked<bool>("includeMVA", true);
4645  desc.addUntracked<bool>("includeTrackingParticles", true);
4646  desc.addUntracked<bool>("includeOOT", false);
4647  desc.addUntracked<bool>("keepEleSimHits", false);
4648  desc.addUntracked<bool>("saveSimHitsP3", false);
4649  desc.addUntracked<bool>("simHitBySignificance", false);
4650  descriptions.add("trackingNtuple", desc);
4651 }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
TrackAlgorithm
track algorithm
Definition: TrackBase.h:89
std::string algoName() const
Definition: TrackBase.h:550
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:192
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillPhase2OTHits()

void TrackingNtuple::fillPhase2OTHits ( const edm::Event iEvent,
const ClusterTPAssociation clusterToTPMap,
const TrackerGeometry tracker,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< PixelDigiSimLink > &  digiSimLink,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 3309 of file TrackingNtuple.cc.

References edmNew::DetSetVector< T >::begin(), TrackingNtuple::SimHitData::bunchCrossing, edmNew::DetSetVector< T >::end(), TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, crabWrapper::key, TrackerTopology::layer(), LogTrace, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, ph2_bbxi, ph2_detId, ph2_isBarrel, ph2_onTrk_x, ph2_onTrk_xx, ph2_onTrk_xy, ph2_onTrk_y, ph2_onTrk_yy, ph2_onTrk_yz, ph2_onTrk_z, ph2_onTrk_zx, ph2_onTrk_zz, ph2_radL, ph2_seeIdx, ph2_simHitIdx, ph2_simType, ph2_tcandIdx, ph2_trkIdx, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, Phase2OT, phase2OTRecHitToken_, DetId::rawId(), simhit_eloss, simhit_particle, simhit_process, simhit_x, simhit_y, simhit_z, DetId::subdetId(), PbPb_ZMuSkimMuonDPG_cff::tracker, TrackingNtuple::SimHitData::type, hit::x, TrackingNtuple::SimHitData::xySignificance, hit::y, and hit::z.

Referenced by analyze().

3317  {
3319  iEvent.getByToken(phase2OTRecHitToken_, phase2OTHits);
3320  for (auto it = phase2OTHits->begin(); it != phase2OTHits->end(); it++) {
3321  const DetId hitId = it->detId();
3322  for (auto hit = it->begin(); hit != it->end(); hit++) {
3323  hitProductIds.insert(hit->cluster().id());
3324 
3325  const int key = hit->cluster().key();
3326  const int lay = tTopo.layer(hitId);
3327 
3328  ph2_isBarrel.push_back(hitId.subdetId() == 1);
3329  ph2_detId.push_back(tracker, tTopo, hitId);
3330  ph2_trkIdx.emplace_back(); // filled in fillTracks
3331  ph2_onTrk_x.emplace_back();
3332  ph2_onTrk_y.emplace_back();
3333  ph2_onTrk_z.emplace_back();
3334  ph2_onTrk_xx.emplace_back();
3335  ph2_onTrk_xy.emplace_back();
3336  ph2_onTrk_yy.emplace_back();
3337  ph2_onTrk_yz.emplace_back();
3338  ph2_onTrk_zz.emplace_back();
3339  ph2_onTrk_zx.emplace_back();
3340  ph2_tcandIdx.emplace_back(); // filled in fillCandidates
3341  ph2_seeIdx.emplace_back(); // filled in fillSeeds
3342  ph2_x.push_back(hit->globalPosition().x());
3343  ph2_y.push_back(hit->globalPosition().y());
3344  ph2_z.push_back(hit->globalPosition().z());
3345  ph2_xx.push_back(hit->globalPositionError().cxx());
3346  ph2_xy.push_back(hit->globalPositionError().cyx());
3347  ph2_yy.push_back(hit->globalPositionError().cyy());
3348  ph2_yz.push_back(hit->globalPositionError().czy());
3349  ph2_zz.push_back(hit->globalPositionError().czz());
3350  ph2_zx.push_back(hit->globalPositionError().czx());
3351  ph2_radL.push_back(hit->surface()->mediumProperties().radLen());
3352  ph2_bbxi.push_back(hit->surface()->mediumProperties().xi());
3353 
3354  LogTrace("TrackingNtuple") << "phase2 OT cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3355  << " rawId=" << hitId.rawId() << " pos =" << hit->globalPosition();
3356 
3358  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3359  hitId,
3360  key,
3361  *hit,
3362  clusterToTPMap,
3363  tpKeyToIndex,
3364  simHitsTPAssoc,
3365  digiSimLink,
3366  simHitRefKeyToIndex,
3368  ph2_xySignificance.push_back(simHitData.xySignificance);
3369  ph2_simHitIdx.push_back(simHitData.matchingSimHit);
3370  ph2_simType.push_back(static_cast<int>(simHitData.type));
3371  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3372  if (!simHitData.matchingSimHit.empty()) {
3373  const auto simHitIdx = simHitData.matchingSimHit[0];
3374  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3375  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3376  << " energyLoss=" << simhit_eloss[simHitIdx]
3377  << " particleType=" << simhit_particle[simHitIdx]
3378  << " processType=" << simhit_process[simHitIdx]
3379  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3380  << " event=" << simHitData.event[0];
3381  }
3382  }
3383  }
3384  }
3385 }
std::vector< std::vector< float > > ph2_onTrk_yz
std::vector< float > ph2_radL
std::vector< short > ph2_isBarrel
std::vector< std::vector< int > > ph2_seeIdx
std::vector< float > ph2_bbxi
std::vector< std::vector< float > > ph2_onTrk_y
std::vector< std::vector< float > > ph2_onTrk_zx
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TrackingRecHit &hit, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< float > ph2_xx
std::vector< std::vector< int > > ph2_trkIdx
edm::EDGetTokenT< Phase2TrackerRecHit1DCollectionNew > phase2OTRecHitToken_
std::vector< short > simhit_process
std::vector< float > ph2_zx
unsigned int layer(const DetId &id) const
#define LogTrace(id)
const_iterator end(bool update=false) const
std::vector< float > simhit_z
std::vector< float > ph2_z
std::vector< float > ph2_yy
int iEvent
Definition: GenABIO.cc:224
std::vector< float > ph2_y
std::vector< float > ph2_xy
std::vector< std::vector< int > > ph2_simHitIdx
std::vector< std::vector< float > > ph2_onTrk_x
DetIdPhase2OT ph2_detId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
const bool includeTrackingParticles_
unsigned int id
Definition: DetId.h:17
std::vector< float > ph2_x
const_iterator begin(bool update=false) const
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< std::vector< float > > ph2_xySignificance
std::vector< std::vector< float > > ph2_onTrk_xy
std::vector< int > simhit_particle
std::vector< unsigned short > ph2_simType
std::vector< std::vector< float > > ph2_onTrk_z
std::vector< float > ph2_yz
std::vector< float > simhit_y
std::vector< std::vector< int > > ph2_tcandIdx
std::vector< float > simhit_x
std::vector< float > ph2_zz
std::vector< std::vector< float > > ph2_onTrk_zz
std::vector< float > simhit_eloss
std::vector< std::vector< float > > ph2_onTrk_yy
std::vector< std::vector< float > > ph2_onTrk_xx

◆ fillPixelHits()

void TrackingNtuple::fillPixelHits ( const edm::Event iEvent,
const TrackerGeometry tracker,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< PixelDigiSimLink > &  digiSimLink,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 3017 of file TrackingNtuple.cc.

References TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, crabWrapper::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, gpuClustering::pixelStatus::mask, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, pix_bbxi, pix_chargeFraction, pix_clustSizeCol, pix_clustSizeRow, pix_detId, pix_isBarrel, pix_onTrk_x, pix_onTrk_xx, pix_onTrk_xy, pix_onTrk_y, pix_onTrk_yy, pix_onTrk_yz, pix_onTrk_z, pix_onTrk_zx, pix_onTrk_zz, pix_radL, pix_seeIdx, pix_simHitIdx, pix_simType, pix_tcandIdx, pix_trkIdx, pix_usedMask, pix_x, pix_xx, pix_xy, pix_xySignificance, pix_y, pix_yy, pix_yz, pix_z, pix_zx, pix_zz, Pixel, InitialStepPreSplitting_cff::pixelHits, pixelRecHitToken_, pixelUseMaskTokens_, edm::Handle< T >::product(), DetId::rawId(), simhit_eloss, simhit_particle, simhit_process, simhit_x, simhit_y, simhit_z, DetId::subdetId(), PbPb_ZMuSkimMuonDPG_cff::tracker, TrackingNtuple::SimHitData::type, hit::x, TrackingNtuple::SimHitData::xySignificance, hit::y, and hit::z.

Referenced by analyze().

3025  {
3026  std::vector<std::pair<uint64_t, PixelMaskContainer const*>> pixelMasks;
3027  pixelMasks.reserve(pixelUseMaskTokens_.size());
3028  for (const auto& itoken : pixelUseMaskTokens_) {
3030  iEvent.getByToken(itoken.second, aH);
3031  pixelMasks.emplace_back(1 << itoken.first, aH.product());
3032  }
3033  auto pixUsedMask = [&pixelMasks](size_t key) {
3034  uint64_t mask = 0;
3035  for (auto const& m : pixelMasks) {
3036  if (m.second->mask(key))
3037  mask |= m.first;
3038  }
3039  return mask;
3040  };
3041 
3043  iEvent.getByToken(pixelRecHitToken_, pixelHits);
3044  for (auto it = pixelHits->begin(); it != pixelHits->end(); it++) {
3045  const DetId hitId = it->detId();
3046  for (auto hit = it->begin(); hit != it->end(); hit++) {
3047  hitProductIds.insert(hit->cluster().id());
3048 
3049  const int key = hit->cluster().key();
3050  const int lay = tTopo.layer(hitId);
3051 
3052  pix_isBarrel.push_back(hitId.subdetId() == 1);
3053  pix_detId.push_back(tracker, tTopo, hitId);
3054  pix_trkIdx.emplace_back(); // filled in fillTracks
3055  pix_onTrk_x.emplace_back();
3056  pix_onTrk_y.emplace_back();
3057  pix_onTrk_z.emplace_back();
3058  pix_onTrk_xx.emplace_back();
3059  pix_onTrk_xy.emplace_back();
3060  pix_onTrk_yy.emplace_back();
3061  pix_onTrk_yz.emplace_back();
3062  pix_onTrk_zz.emplace_back();
3063  pix_onTrk_zx.emplace_back();
3064  pix_tcandIdx.emplace_back(); // filled in fillCandidates
3065  pix_seeIdx.emplace_back(); // filled in fillSeeds
3066  pix_x.push_back(hit->globalPosition().x());
3067  pix_y.push_back(hit->globalPosition().y());
3068  pix_z.push_back(hit->globalPosition().z());
3069  pix_xx.push_back(hit->globalPositionError().cxx());
3070  pix_xy.push_back(hit->globalPositionError().cyx());
3071  pix_yy.push_back(hit->globalPositionError().cyy());
3072  pix_yz.push_back(hit->globalPositionError().czy());
3073  pix_zz.push_back(hit->globalPositionError().czz());
3074  pix_zx.push_back(hit->globalPositionError().czx());
3075  pix_radL.push_back(hit->surface()->mediumProperties().radLen());
3076  pix_bbxi.push_back(hit->surface()->mediumProperties().xi());
3077  pix_clustSizeCol.push_back(hit->cluster()->sizeY());
3078  pix_clustSizeRow.push_back(hit->cluster()->sizeX());
3079  pix_usedMask.push_back(pixUsedMask(hit->firstClusterRef().key()));
3080 
3081  LogTrace("TrackingNtuple") << "pixHit cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3082  << " rawId=" << hitId.rawId() << " pos =" << hit->globalPosition();
3084  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3085  hitId,
3086  key,
3087  *hit,
3088  clusterToTPMap,
3089  tpKeyToIndex,
3090  simHitsTPAssoc,
3091  digiSimLink,
3092  simHitRefKeyToIndex,
3093  HitType::Pixel);
3094  pix_simHitIdx.push_back(simHitData.matchingSimHit);
3095  pix_simType.push_back(static_cast<int>(simHitData.type));
3096  pix_xySignificance.push_back(simHitData.xySignificance);
3097  pix_chargeFraction.push_back(simHitData.chargeFraction);
3098  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3099  if (!simHitData.matchingSimHit.empty()) {
3100  const auto simHitIdx = simHitData.matchingSimHit[0];
3101  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3102  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3103  << " energyLoss=" << simhit_eloss[simHitIdx]
3104  << " particleType=" << simhit_particle[simHitIdx]
3105  << " processType=" << simhit_process[simHitIdx]
3106  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3107  << " event=" << simHitData.event[0];
3108  }
3109  }
3110  }
3111  }
3112 }
std::vector< std::vector< float > > pix_onTrk_x
std::vector< float > pix_y
std::vector< float > pix_zz
std::vector< unsigned short > pix_simType
std::vector< float > pix_zx
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TrackingRecHit &hit, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
T const * product() const
Definition: Handle.h:70
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
DetIdPixel pix_detId
std::vector< std::vector< float > > pix_onTrk_z
std::vector< short > simhit_process
std::vector< float > pix_xx
std::vector< float > pix_radL
std::vector< float > pix_bbxi
constexpr uint32_t mask
Definition: gpuClustering.h:26
unsigned int layer(const DetId &id) const
#define LogTrace(id)
std::vector< std::vector< int > > pix_seeIdx
std::vector< float > simhit_z
std::vector< std::vector< float > > pix_xySignificance
std::vector< std::vector< float > > pix_onTrk_yz
int iEvent
Definition: GenABIO.cc:224
std::vector< std::vector< float > > pix_onTrk_zz
edm::EDGetTokenT< SiPixelRecHitCollection > pixelRecHitToken_
std::vector< short > pix_isBarrel
std::vector< int > pix_clustSizeCol
std::vector< float > pix_z
std::vector< std::vector< float > > pix_onTrk_zx
std::vector< float > pix_yz
std::vector< std::vector< float > > pix_chargeFraction
std::vector< std::vector< int > > pix_trkIdx
std::vector< std::vector< float > > pix_onTrk_xx
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
const bool includeTrackingParticles_
unsigned int id
Definition: DetId.h:17
std::vector< uint64_t > pix_usedMask
std::vector< std::vector< int > > pix_simHitIdx
unsigned long long uint64_t
Definition: Time.h:13
std::vector< float > pix_x
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< std::vector< float > > pix_onTrk_xy
std::vector< int > simhit_particle
std::vector< std::pair< unsigned int, edm::EDGetTokenT< PixelMaskContainer > > > pixelUseMaskTokens_
std::vector< float > simhit_y
std::vector< std::vector< float > > pix_onTrk_yy
std::vector< float > simhit_x
std::vector< std::vector< float > > pix_onTrk_y
std::vector< std::vector< int > > pix_tcandIdx
std::vector< float > pix_xy
std::vector< float > pix_yy
std::vector< float > simhit_eloss
std::vector< int > pix_clustSizeRow

◆ fillSeeds()

void TrackingNtuple::fillSeeds ( const edm::Event iEvent,
const TrackingParticleRefVector tpCollection,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const reco::BeamSpot bs,
const TrackerGeometry tracker,
const reco::TrackToTrackingParticleAssociator associatorByHits,
const ClusterTPAssociation clusterToTPMap,
const MagneticField theMF,
const TrackerTopology tTopo,
std::vector< std::pair< int, int >> &  monoStereoClusterList,
const std::set< edm::ProductID > &  hitProductIds,
std::map< edm::ProductID, size_t > &  seedToCollIndex 
)
private

the following is useful for analysis in global coords at seed hit surface

Hmm, the following could make sense instead of plain failing if propagation to beam line fails

Definition at line 3387 of file TrackingNtuple.cc.

References addSeedCurvCov_, addStripMatchedHit(), reco::TrackBase::algoByName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), reco::TrackToTrackingParticleAssociator::associateSimToReco(), cms::cuda::bs, ALCARECOTkAlJpsiMuMu_cff::charge, hltPixelTracks_cff::chi2, RZLine::chi2(), OmniClusterRef::cluster_phase2OT(), OmniClusterRef::cluster_pixel(), bsc_activity_cfg::clusters, submitPVResolutionJobs::count, TrajectoryStateOnSurface::curvilinearError(), declareDynArray, HLT_2023v12_cff::distance, edm::AssociationMap< Tag >::end(), PVValHelper::eta, Exception, fillTrackingParticlesForSeeds(), spr::find(), edm::AssociationMap< Tag >::find(), BaseTrackerRecHit::firstClusterRef(), TrajectoryStateOnSurface::globalParameters(), glu_seeIdx, Glued, runTauDisplay::gp, track_associator::hitsToClusterRefs(), mps_fire::i, l1ctLayer2EG_cff::id, OmniClusterRef::id(), iEvent, includeAllHits_, includeTrackingParticles_, createfilelist::int, trackerHitRTTI::isMatched(), OmniClusterRef::key(), edm::Ref< C, T, F >::key(), label, SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), LogTrace, CurvilinearTrajectoryError::matrix(), edm::ProductLabels::module, SiStripMatchedRecHit2D::monoClusterRef(), eostools::move(), heavyionUCCDQM_cfi::nClusters, nHits, hltrates_dqm_sourceclient-live_cfg::offset, ph2_seeIdx, Phase2OT, phi, pix_seeIdx, Pixel, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, edm::RefToBaseVector< T >::push_back(), see_algo, see_bestFromFirstHitSimTrkIdx, see_bestFromFirstHitSimTrkShareFrac, see_bestSimTrkIdx, see_bestSimTrkShareFrac, see_chi2, see_dxy, see_dxyErr, see_dz, see_dzErr, see_eta, see_etaErr, see_fitok, see_hitIdx, see_hitType, see_isTrue, see_nCands, see_nCluster, see_nGlued, see_nPhase2OT, see_nPixel, see_nStrip, see_nValid, see_offset, see_phi, see_phiErr, see_pt, see_ptErr, see_px, see_py, see_pz, see_q, see_simTrkIdx, see_simTrkShareFrac, see_stateCurvCov, see_statePt, see_stateTrajGlbPx, see_stateTrajGlbPy, see_stateTrajGlbPz, see_stateTrajGlbX, see_stateTrajGlbY, see_stateTrajGlbZ, see_stateTrajPx, see_stateTrajPy, see_stateTrajPz, see_stateTrajX, see_stateTrajY, see_stopReason, see_tcandIdx, see_trkIdx, fileCollector::seed, seedStopInfoTokens_, seedTokens_, trackingNtuple_cff::seedTracks, edm::RefToBaseVector< T >::size(), SiStripMatchedRecHit2D::stereoClusterRef(), str_seeIdx, Strip, stripUseMaskTokens_, TrackingRecHit::surface(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, PbPb_ZMuSkimMuonDPG_cff::tracker, trackFromSeedFitFailed(), trajectoryStateTransform::transientState(), and heppy_batch::val.

Referenced by analyze().

3398  {
3399  TSCBLBuilderNoMaterial tscblBuilder;
3400  for (size_t iColl = 0; iColl < seedTokens_.size(); ++iColl) {
3401  const auto& seedToken = seedTokens_[iColl];
3402 
3403  edm::Handle<edm::View<reco::Track>> seedTracksHandle;
3404  iEvent.getByToken(seedToken, seedTracksHandle);
3405  const auto& seedTracks = *seedTracksHandle;
3406 
3407  if (seedTracks.empty())
3408  continue;
3409 
3411  labelsForToken(seedToken, labels);
3412 
3413  const auto& seedStopInfoToken = seedStopInfoTokens_[iColl];
3414  edm::Handle<std::vector<SeedStopInfo>> seedStopInfoHandle;
3415  iEvent.getByToken(seedStopInfoToken, seedStopInfoHandle);
3416  const auto& seedStopInfos = *seedStopInfoHandle;
3417  if (seedTracks.size() != seedStopInfos.size()) {
3419  labelsForToken(seedStopInfoToken, labels2);
3420 
3421  throw cms::Exception("LogicError") << "Got " << seedTracks.size() << " seeds, but " << seedStopInfos.size()
3422  << " seed stopping infos for collections " << labels.module << ", "
3423  << labels2.module;
3424  }
3425 
3426  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3427  stripMasks.reserve(stripUseMaskTokens_.size());
3428  for (const auto& itoken : stripUseMaskTokens_) {
3430  iEvent.getByToken(itoken.second, aH);
3431  stripMasks.emplace_back(1 << itoken.first, aH.product());
3432  }
3433 
3434  // The associator interfaces really need to be fixed...
3435  edm::RefToBaseVector<reco::Track> seedTrackRefs;
3436  for (edm::View<reco::Track>::size_type i = 0; i < seedTracks.size(); ++i) {
3437  seedTrackRefs.push_back(seedTracks.refAt(i));
3438  }
3439  reco::RecoToSimCollection recSimColl = associatorByHits.associateRecoToSim(seedTrackRefs, tpCollection);
3440  reco::SimToRecoCollection simRecColl = associatorByHits.associateSimToReco(seedTrackRefs, tpCollection);
3441 
3442  TString label = labels.module;
3443  //format label to match algoName
3444  label.ReplaceAll("seedTracks", "");
3445  label.ReplaceAll("Seeds", "");
3446  label.ReplaceAll("muonSeeded", "muonSeededStep");
3447  //for HLT seeds
3448  label.ReplaceAll("FromPixelTracks", "");
3449  label.ReplaceAll("PFLowPixel", "");
3450  label.ReplaceAll("hltDoubletRecovery", "pixelPairStep"); //random choice
3451  int algo = reco::TrackBase::algoByName(label.Data());
3452 
3453  edm::ProductID id = seedTracks[0].seedRef().id();
3454  const auto offset = see_fitok.size();
3455  auto inserted = seedCollToOffset.emplace(id, offset);
3456  if (!inserted.second)
3457  throw cms::Exception("Configuration")
3458  << "Trying to add seeds with ProductID " << id << " for a second time from collection " << labels.module
3459  << ", seed algo " << label << ". Typically this is caused by a configuration problem.";
3460  see_offset.push_back(offset);
3461 
3462  LogTrace("TrackingNtuple") << "NEW SEED LABEL: " << label << " size: " << seedTracks.size() << " algo=" << algo
3463  << " ProductID " << id;
3464 
3465  for (size_t iSeed = 0; iSeed < seedTrackRefs.size(); ++iSeed) {
3466  const auto& seedTrackRef = seedTrackRefs[iSeed];
3467  const auto& seedTrack = *seedTrackRef;
3468  const auto& seedRef = seedTrack.seedRef();
3469  const auto& seed = *seedRef;
3470 
3471  const auto seedStopInfo = seedStopInfos[iSeed];
3472 
3473  if (seedRef.id() != id)
3474  throw cms::Exception("LogicError")
3475  << "All tracks in 'TracksFromSeeds' collection should point to seeds in the same collection. Now the "
3476  "element 0 had ProductID "
3477  << id << " while the element " << seedTrackRef.key() << " had " << seedTrackRef.id()
3478  << ". The source collection is " << labels.module << ".";
3479 
3480  std::vector<int> tpIdx;
3481  std::vector<float> sharedFraction;
3482  auto foundTPs = recSimColl.find(seedTrackRef);
3483  if (foundTPs != recSimColl.end()) {
3484  for (const auto& tpQuality : foundTPs->val) {
3485  tpIdx.push_back(tpKeyToIndex.at(tpQuality.first.key()));
3486  sharedFraction.push_back(tpQuality.second);
3487  }
3488  }
3489 
3490  // Search for a best-matching TrackingParticle for a seed
3491  const int nHits = seedTrack.numberOfValidHits();
3493  seedTrack.recHitsBegin(),
3494  seedTrack.recHitsEnd()); // TODO: this function is called 3 times per track, try to reduce
3495  const int nClusters = clusters.size();
3496  const auto bestKeyCount = findBestMatchingTrackingParticle(seedTrack.recHits(), clusterToTPMap, tpKeyToIndex);
3497  const float bestShareFrac =
3498  nClusters > 0 ? static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(nClusters) : 0;
3499  // Another way starting from the first hit of the seed
3500  const auto bestFirstHitKeyCount =
3501  findMatchingTrackingParticleFromFirstHit(seedTrack.recHits(), clusterToTPMap, tpKeyToIndex);
3502  const float bestFirstHitShareFrac =
3503  nClusters > 0 ? static_cast<float>(bestFirstHitKeyCount.countClusters) / static_cast<float>(nClusters) : 0;
3504 
3505  const bool seedFitOk = !trackFromSeedFitFailed(seedTrack);
3506  const int charge = seedTrack.charge();
3507  const float pt = seedFitOk ? seedTrack.pt() : 0;
3508  const float eta = seedFitOk ? seedTrack.eta() : 0;
3509  const float phi = seedFitOk ? seedTrack.phi() : 0;
3510 
3511  const auto seedIndex = see_fitok.size();
3512 
3513  see_fitok.push_back(seedFitOk);
3514 
3515  see_px.push_back(seedFitOk ? seedTrack.px() : 0);
3516  see_py.push_back(seedFitOk ? seedTrack.py() : 0);
3517  see_pz.push_back(seedFitOk ? seedTrack.pz() : 0);
3518  see_pt.push_back(pt);
3519  see_eta.push_back(eta);
3520  see_phi.push_back(phi);
3521  see_q.push_back(charge);
3522  see_nValid.push_back(nHits);
3523 
3524  see_dxy.push_back(seedFitOk ? seedTrack.dxy(bs.position()) : 0);
3525  see_dz.push_back(seedFitOk ? seedTrack.dz(bs.position()) : 0);
3526  see_ptErr.push_back(seedFitOk ? seedTrack.ptError() : 0);
3527  see_etaErr.push_back(seedFitOk ? seedTrack.etaError() : 0);
3528  see_phiErr.push_back(seedFitOk ? seedTrack.phiError() : 0);
3529  see_dxyErr.push_back(seedFitOk ? seedTrack.dxyError() : 0);
3530  see_dzErr.push_back(seedFitOk ? seedTrack.dzError() : 0);
3531  see_algo.push_back(algo);
3532  see_stopReason.push_back(seedStopInfo.stopReasonUC());
3533  see_nCands.push_back(seedStopInfo.candidatesPerSeed());
3534 
3535  const auto& state = seedTrack.seedRef()->startingState();
3536  const auto& pos = state.parameters().position();
3537  const auto& mom = state.parameters().momentum();
3538  see_statePt.push_back(state.pt());
3539  see_stateTrajX.push_back(pos.x());
3540  see_stateTrajY.push_back(pos.y());
3541  see_stateTrajPx.push_back(mom.x());
3542  see_stateTrajPy.push_back(mom.y());
3543  see_stateTrajPz.push_back(mom.z());
3544 
3546  const TrackingRecHit* lastRecHit = &*(seed.recHits().end() - 1);
3548  trajectoryStateTransform::transientState(seed.startingState(), lastRecHit->surface(), &theMF);
3549  auto const& stateGlobal = tsos.globalParameters();
3550  see_stateTrajGlbX.push_back(stateGlobal.position().x());
3551  see_stateTrajGlbY.push_back(stateGlobal.position().y());
3552  see_stateTrajGlbZ.push_back(stateGlobal.position().z());
3553  see_stateTrajGlbPx.push_back(stateGlobal.momentum().x());
3554  see_stateTrajGlbPy.push_back(stateGlobal.momentum().y());
3555  see_stateTrajGlbPz.push_back(stateGlobal.momentum().z());
3556  if (addSeedCurvCov_) {
3557  auto const& stateCcov = tsos.curvilinearError().matrix();
3558  std::vector<float> cov(15);
3559  auto covP = cov.begin();
3560  for (auto const val : stateCcov)
3561  *(covP++) = val; //row-major
3562  see_stateCurvCov.push_back(std::move(cov));
3563  }
3564 
3565  see_trkIdx.push_back(-1); // to be set correctly in fillTracks
3566  see_tcandIdx.push_back(-1); // to be set correctly in fillCandidates
3568  see_simTrkIdx.push_back(tpIdx);
3569  see_simTrkShareFrac.push_back(sharedFraction);
3570  see_bestSimTrkIdx.push_back(bestKeyCount.key >= 0 ? tpKeyToIndex.at(bestKeyCount.key) : -1);
3572  bestFirstHitKeyCount.key >= 0 ? tpKeyToIndex.at(bestFirstHitKeyCount.key) : -1);
3573  } else {
3574  see_isTrue.push_back(!tpIdx.empty());
3575  }
3576  see_bestSimTrkShareFrac.push_back(bestShareFrac);
3577  see_bestFromFirstHitSimTrkShareFrac.push_back(bestFirstHitShareFrac);
3578 
3580  /*
3581  const TrackingRecHit* lastRecHit = &*(seed.recHits().second-1);
3582  TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( itSeed->startingState(), lastRecHit->surface(), &theMF);
3583  float pt = state.globalParameters().momentum().perp();
3584  float eta = state.globalParameters().momentum().eta();
3585  float phi = state.globalParameters().momentum().phi();
3586  see_px .push_back( state.globalParameters().momentum().x() );
3587  see_py .push_back( state.globalParameters().momentum().y() );
3588  see_pz .push_back( state.globalParameters().momentum().z() );
3589  */
3590 
3591  std::vector<int> hitIdx;
3592  std::vector<int> hitType;
3593 
3594  for (auto const& hit : seed.recHits()) {
3595  int subid = hit.geographicalId().subdetId();
3596  if (subid == (int)PixelSubdetector::PixelBarrel || subid == (int)PixelSubdetector::PixelEndcap) {
3597  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&hit);
3598  const auto& clusterRef = bhit->firstClusterRef();
3599  const auto clusterKey = clusterRef.cluster_pixel().key();
3600  if (includeAllHits_) {
3601  checkProductID(hitProductIds, clusterRef.id(), "seed");
3602  pix_seeIdx[clusterKey].push_back(seedIndex);
3603  }
3604  hitIdx.push_back(clusterKey);
3605  hitType.push_back(static_cast<int>(HitType::Pixel));
3606  } else if (subid == (int)StripSubdetector::TOB || subid == (int)StripSubdetector::TID ||
3607  subid == (int)StripSubdetector::TIB || subid == (int)StripSubdetector::TEC) {
3609  const SiStripMatchedRecHit2D* matchedHit = dynamic_cast<const SiStripMatchedRecHit2D*>(&hit);
3610  if (includeAllHits_) {
3611  checkProductID(hitProductIds, matchedHit->monoClusterRef().id(), "seed");
3612  checkProductID(hitProductIds, matchedHit->stereoClusterRef().id(), "seed");
3613  }
3614  int monoIdx = matchedHit->monoClusterRef().key();
3615  int stereoIdx = matchedHit->stereoClusterRef().key();
3616 
3617  std::vector<std::pair<int, int>>::iterator pos =
3618  find(monoStereoClusterList.begin(), monoStereoClusterList.end(), std::make_pair(monoIdx, stereoIdx));
3619  size_t gluedIndex = -1;
3620  if (pos != monoStereoClusterList.end()) {
3621  gluedIndex = std::distance(monoStereoClusterList.begin(), pos);
3622  } else {
3623  // We can encounter glued hits not in the input
3624  // SiStripMatchedRecHit2DCollection, e.g. via muon
3625  // outside-in seeds (or anything taking hits from
3626  // MeasurementTrackerEvent). So let's add them here.
3627  gluedIndex = addStripMatchedHit(*matchedHit, tracker, tTopo, stripMasks, monoStereoClusterList);
3628  }
3629 
3630  if (includeAllHits_)
3631  glu_seeIdx[gluedIndex].push_back(seedIndex);
3632  hitIdx.push_back(gluedIndex);
3633  hitType.push_back(static_cast<int>(HitType::Glued));
3634  } else {
3635  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&hit);
3636  const auto& clusterRef = bhit->firstClusterRef();
3637  unsigned int clusterKey;
3638  if (clusterRef.isPhase2()) {
3639  clusterKey = clusterRef.cluster_phase2OT().key();
3640  } else {
3641  clusterKey = clusterRef.cluster_strip().key();
3642  }
3643 
3644  if (includeAllHits_) {
3645  checkProductID(hitProductIds, clusterRef.id(), "seed");
3646  if (clusterRef.isPhase2()) {
3647  ph2_seeIdx[clusterKey].push_back(seedIndex);
3648  } else {
3649  str_seeIdx[clusterKey].push_back(seedIndex);
3650  }
3651  }
3652 
3653  hitIdx.push_back(clusterKey);
3654  if (clusterRef.isPhase2()) {
3655  hitType.push_back(static_cast<int>(HitType::Phase2OT));
3656  } else {
3657  hitType.push_back(static_cast<int>(HitType::Strip));
3658  }
3659  }
3660  } else {
3661  LogTrace("TrackingNtuple") << " not pixel and not Strip detector";
3662  }
3663  }
3664  see_hitIdx.push_back(hitIdx);
3665  see_hitType.push_back(hitType);
3666  see_nPixel.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Pixel)));
3667  see_nGlued.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Glued)));
3668  see_nStrip.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Strip)));
3669  see_nPhase2OT.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Phase2OT)));
3670  see_nCluster.push_back(nClusters);
3671  //the part below is not strictly needed
3672  float chi2 = -1;
3673  if (nHits == 2) {
3674  auto const recHit0 = seed.recHits().begin();
3675  auto const recHit1 = seed.recHits().begin() + 1;
3676  std::vector<GlobalPoint> gp(2);
3677  std::vector<GlobalError> ge(2);
3678  gp[0] = recHit0->globalPosition();
3679  ge[0] = recHit0->globalPositionError();
3680  gp[1] = recHit1->globalPosition();
3681  ge[1] = recHit1->globalPositionError();
3682  LogTrace("TrackingNtuple")
3683  << "seed " << seedTrackRef.key() << " pt=" << pt << " eta=" << eta << " phi=" << phi << " q=" << charge
3684  << " - PAIR - ids: " << recHit0->geographicalId().rawId() << " " << recHit1->geographicalId().rawId()
3685  << " hitpos: " << gp[0] << " " << gp[1] << " trans0: "
3686  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[0]->globalPosition()
3687  : GlobalPoint(0, 0, 0))
3688  << " "
3689  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[1]->globalPosition()
3690  : GlobalPoint(0, 0, 0))
3691  << " trans1: "
3692  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[0]->globalPosition()
3693  : GlobalPoint(0, 0, 0))
3694  << " "
3695  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[1]->globalPosition()
3696  : GlobalPoint(0, 0, 0))
3697  << " eta,phi: " << gp[0].eta() << "," << gp[0].phi();
3698  } else if (nHits == 3) {
3699  auto const recHit0 = seed.recHits().begin();
3700  auto const recHit1 = seed.recHits().begin() + 1;
3701  auto const recHit2 = seed.recHits().begin() + 2;
3703  declareDynArray(GlobalError, 4, ge);
3704  declareDynArray(bool, 4, bl);
3705  gp[0] = recHit0->globalPosition();
3706  ge[0] = recHit0->globalPositionError();
3707  int subid0 = recHit0->geographicalId().subdetId();
3708  bl[0] = (subid0 == StripSubdetector::TIB || subid0 == StripSubdetector::TOB ||
3709  subid0 == (int)PixelSubdetector::PixelBarrel);
3710  gp[1] = recHit1->globalPosition();
3711  ge[1] = recHit1->globalPositionError();
3712  int subid1 = recHit1->geographicalId().subdetId();
3713  bl[1] = (subid1 == StripSubdetector::TIB || subid1 == StripSubdetector::TOB ||
3714  subid1 == (int)PixelSubdetector::PixelBarrel);
3715  gp[2] = recHit2->globalPosition();
3716  ge[2] = recHit2->globalPositionError();
3717  int subid2 = recHit2->geographicalId().subdetId();
3718  bl[2] = (subid2 == StripSubdetector::TIB || subid2 == StripSubdetector::TOB ||
3719  subid2 == (int)PixelSubdetector::PixelBarrel);
3720  RZLine rzLine(gp, ge, bl);
3721  float seed_chi2 = rzLine.chi2();
3722  //float seed_pt = state.globalParameters().momentum().perp();
3723  float seed_pt = pt;
3724  LogTrace("TrackingNtuple")
3725  << "seed " << seedTrackRef.key() << " pt=" << pt << " eta=" << eta << " phi=" << phi << " q=" << charge
3726  << " - TRIPLET - ids: " << recHit0->geographicalId().rawId() << " " << recHit1->geographicalId().rawId()
3727  << " " << recHit2->geographicalId().rawId() << " hitpos: " << gp[0] << " " << gp[1] << " " << gp[2]
3728  << " trans0: "
3729  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[0]->globalPosition()
3730  : GlobalPoint(0, 0, 0))
3731  << " "
3732  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[1]->globalPosition()
3733  : GlobalPoint(0, 0, 0))
3734  << " trans1: "
3735  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[0]->globalPosition()
3736  : GlobalPoint(0, 0, 0))
3737  << " "
3738  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[1]->globalPosition()
3739  : GlobalPoint(0, 0, 0))
3740  << " trans2: "
3741  << (recHit2->transientHits().size() > 1 ? recHit2->transientHits()[0]->globalPosition()
3742  : GlobalPoint(0, 0, 0))
3743  << " "
3744  << (recHit2->transientHits().size() > 1 ? recHit2->transientHits()[1]->globalPosition()
3745  : GlobalPoint(0, 0, 0))
3746  << " local: "
3747  << recHit2->localPosition()
3748  //<< " tsos pos, mom: " << state.globalPosition()<<" "<<state.globalMomentum()
3749  << " eta,phi: " << gp[0].eta() << "," << gp[0].phi() << " pt,chi2: " << seed_pt << "," << seed_chi2;
3750  chi2 = seed_chi2;
3751  }
3752  see_chi2.push_back(chi2);
3753  }
3754 
3755  fillTrackingParticlesForSeeds(tpCollection, simRecColl, tpKeyToIndex, offset);
3756  }
3757 }
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
static constexpr auto TEC
unsigned int size_type
Definition: View.h:90
std::vector< float > see_bestSimTrkShareFrac
std::vector< std::vector< float > > see_simTrkShareFrac
std::vector< short > see_fitok
std::vector< std::vector< int > > see_hitType
std::vector< float > see_stateTrajX
std::vector< std::vector< int > > ph2_seeIdx
std::vector< float > see_stateTrajPy
std::vector< unsigned int > see_nValid
bool trackFromSeedFitFailed(const reco::Track &track)
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::vector< float > see_phiErr
std::vector< float > see_dzErr
std::vector< unsigned int > see_nStrip
std::vector< float > see_stateTrajPz
std::vector< float > see_px
std::vector< float > see_chi2
T const * product() const
Definition: Handle.h:70
std::vector< float > see_stateTrajY
const GlobalTrajectoryParameters & globalParameters() const
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< unsigned short > see_stopReason
OmniClusterRef const & stereoClusterRef() const
std::vector< OmniClusterRef > hitsToClusterRefs(iter begin, iter end)
std::vector< unsigned int > see_algo
const bool addSeedCurvCov_
std::vector< std::vector< int > > str_seeIdx
std::vector< std::vector< int > > see_simTrkIdx
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
size_type size() const
OmniClusterRef const & monoClusterRef() const
key_type key() const
Accessor for product key.
Definition: Ref.h:250
const_iterator find(const key_type &k) const
find element with specified reference key
#define LogTrace(id)
edm::ProductID id() const
std::vector< std::vector< int > > pix_seeIdx
std::vector< short > see_isTrue
const_iterator end() const
last iterator over the map (read only)
std::vector< float > see_etaErr
ClusterPixelRef cluster_pixel() const
char const * label
std::vector< int > see_bestSimTrkIdx
std::vector< float > see_stateTrajGlbPz
int iEvent
Definition: GenABIO.cc:224
std::vector< std::vector< float > > see_stateCurvCov
std::vector< unsigned int > see_nCluster
virtual const Surface * surface() const
std::vector< int > see_tcandIdx
void fillTrackingParticlesForSeeds(const TrackingParticleRefVector &tpCollection, const reco::SimToRecoCollection &simRecColl, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const unsigned int seedOffset)
std::vector< int > see_bestFromFirstHitSimTrkIdx
std::vector< int > see_q
std::vector< edm::EDGetTokenT< edm::View< reco::Track > > > seedTokens_
std::vector< float > see_dxyErr
bool isMatched(TrackingRecHit const &hit)
std::vector< float > see_pt
std::vector< unsigned int > see_nPhase2OT
std::vector< std::vector< int > > glu_seeIdx
std::vector< float > see_dxy
const bool includeTrackingParticles_
static constexpr auto TOB
size_t addStripMatchedHit(const SiStripMatchedRecHit2D &hit, const TrackerGeometry &tracker, const TrackerTopology &tTopo, const std::vector< std::pair< uint64_t, StripMaskContainer const *>> &stripMasks, std::vector< std::pair< int, int >> &monoStereoClusterList)
std::vector< float > see_phi
char const * module
Definition: ProductLabels.h:5
std::vector< float > see_pz
std::vector< edm::EDGetTokenT< std::vector< SeedStopInfo > > > seedStopInfoTokens_
std::vector< float > see_stateTrajPx
Definition: RZLine.h:12
std::vector< float > see_stateTrajGlbY
Phase2Cluster1DRef cluster_phase2OT() const
static constexpr auto TIB
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
const CurvilinearTrajectoryError & curvilinearError() const
std::vector< unsigned int > see_nGlued
std::vector< float > see_py
std::vector< float > see_ptErr
virtual OmniClusterRef const & firstClusterRef() const =0
const AlgebraicSymMatrix55 & matrix() const
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
const bool includeAllHits_
std::vector< float > see_stateTrajGlbX
void push_back(const RefToBase< T > &)
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:137
std::vector< float > see_stateTrajGlbPx
std::vector< float > see_statePt
std::vector< float > see_stateTrajGlbZ
std::vector< unsigned short > see_nCands
#define declareDynArray(T, n, x)
Definition: DynArray.h:91
std::vector< unsigned int > see_offset
unsigned int key() const
std::vector< int > see_trkIdx
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
std::vector< float > see_stateTrajGlbPy
static constexpr auto TID
std::vector< std::vector< int > > see_hitIdx
std::vector< unsigned int > see_nPixel
std::vector< float > see_eta
def move(src, dest)
Definition: eostools.py:511
std::vector< float > see_bestFromFirstHitSimTrkShareFrac
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
std::vector< float > see_dz

◆ fillSimHits()

void TrackingNtuple::fillSimHits ( const TrackerGeometry tracker,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const TrackerTopology tTopo,
SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::vector< TPHitIndex > &  tpHitList 
)
private

Definition at line 2899 of file TrackingNtuple.cc.

References funct::abs(), trackingPlots::assoc, DetId::det(), Exception, newFWLiteAna::found, includeStripHits_, keepEleSimHits_, LogTrace, saveSimHitsP3_, simhit_detId, simhit_detId_phase2, simhit_eloss, simhit_hitIdx, simhit_hitType, simhit_particle, simhit_process, simhit_px, simhit_py, simhit_pz, simhit_simTrkIdx, simhit_tof, simhit_x, simhit_y, simhit_z, SimHitTPAssociationProducer::simHitTPAssociationListGreater(), cscDigiValidation_cfi::simTrack, cmsswSequenceInfo::tp, DetId::Tracker, and PbPb_ZMuSkimMuonDPG_cff::tracker.

Referenced by analyze().

2904  {
2905  for (const auto& assoc : simHitsTPAssoc) {
2906  auto tpKey = assoc.first.key();
2907 
2908  // SimHitTPAssociationList can contain more TrackingParticles than
2909  // what are given to this EDAnalyzer, so we can filter those out here.
2910  auto found = tpKeyToIndex.find(tpKey);
2911  if (found == tpKeyToIndex.end())
2912  continue;
2913  const auto tpIndex = found->second;
2914 
2915  // skip non-tracker simhits (mostly muons)
2916  const auto& simhit = *(assoc.second);
2917  auto detId = DetId(simhit.detUnitId());
2918  if (detId.det() != DetId::Tracker)
2919  continue;
2920 
2921  // Skip electron SimHits for non-electron TrackingParticles to
2922  // filter out delta rays. The delta ray hits just confuse. If we
2923  // need them later, let's add them as a separate "collection" of
2924  // hits of a TP
2925  const TrackingParticle& tp = *(assoc.first);
2926  if (!keepEleSimHits_ && std::abs(simhit.particleType()) == 11 && std::abs(tp.pdgId()) != 11)
2927  continue;
2928 
2929  auto simHitKey = std::make_pair(assoc.second.key(), assoc.second.id());
2930 
2931  if (simHitRefKeyToIndex.find(simHitKey) != simHitRefKeyToIndex.end()) {
2932  for (const auto& assoc2 : simHitsTPAssoc) {
2933  if (std::make_pair(assoc2.second.key(), assoc2.second.id()) == simHitKey) {
2934 #ifdef EDM_ML_DEBUG
2935  auto range1 = std::equal_range(simHitsTPAssoc.begin(),
2936  simHitsTPAssoc.end(),
2937  std::make_pair(assoc.first, TrackPSimHitRef()),
2939  auto range2 = std::equal_range(simHitsTPAssoc.begin(),
2940  simHitsTPAssoc.end(),
2941  std::make_pair(assoc2.first, TrackPSimHitRef()),
2943 
2944  LogTrace("TrackingNtuple") << "Earlier TP " << assoc2.first.key() << " SimTrack Ids";
2945  for (const auto& simTrack : assoc2.first->g4Tracks()) {
2946  edm::LogPrint("TrackingNtuple") << " SimTrack " << simTrack.trackId() << " BX:event "
2947  << simTrack.eventId().bunchCrossing() << ":" << simTrack.eventId().event();
2948  }
2949  for (auto iHit = range2.first; iHit != range2.second; ++iHit) {
2950  LogTrace("TrackingNtuple") << " SimHit " << iHit->second.key() << " " << iHit->second.id() << " tof "
2951  << iHit->second->tof() << " trackId " << iHit->second->trackId() << " BX:event "
2952  << iHit->second->eventId().bunchCrossing() << ":"
2953  << iHit->second->eventId().event();
2954  }
2955  LogTrace("TrackingNtuple") << "Current TP " << assoc.first.key() << " SimTrack Ids";
2956  for (const auto& simTrack : assoc.first->g4Tracks()) {
2957  edm::LogPrint("TrackingNtuple") << " SimTrack " << simTrack.trackId() << " BX:event "
2958  << simTrack.eventId().bunchCrossing() << ":" << simTrack.eventId().event();
2959  }
2960  for (auto iHit = range1.first; iHit != range1.second; ++iHit) {
2961  LogTrace("TrackingNtuple") << " SimHit " << iHit->second.key() << " " << iHit->second.id() << " tof "
2962  << iHit->second->tof() << " trackId " << iHit->second->trackId() << " BX:event "
2963  << iHit->second->eventId().bunchCrossing() << ":"
2964  << iHit->second->eventId().event();
2965  }
2966 #endif
2967 
2968  throw cms::Exception("LogicError")
2969  << "Got second time the SimHit " << simHitKey.first << " of " << simHitKey.second
2970  << ", first time with TrackingParticle " << assoc2.first.key() << ", now with " << tpKey;
2971  }
2972  }
2973  throw cms::Exception("LogicError") << "Got second time the SimHit " << simHitKey.first << " of "
2974  << simHitKey.second << ", now with TrackingParticle " << tpKey
2975  << ", but I didn't find the first occurrance!";
2976  }
2977 
2978  auto det = tracker.idToDetUnit(detId);
2979  if (!det)
2980  throw cms::Exception("LogicError") << "Did not find a det unit for DetId " << simhit.detUnitId()
2981  << " from tracker geometry";
2982 
2983  const auto pos = det->surface().toGlobal(simhit.localPosition());
2984  const float tof = simhit.timeOfFlight();
2985 
2986  const auto simHitIndex = simhit_x.size();
2987  simHitRefKeyToIndex[simHitKey] = simHitIndex;
2988 
2989  if (includeStripHits_)
2990  simhit_detId.push_back(tracker, tTopo, detId);
2991  else
2992  simhit_detId_phase2.push_back(tracker, tTopo, detId);
2993  simhit_x.push_back(pos.x());
2994  simhit_y.push_back(pos.y());
2995  simhit_z.push_back(pos.z());
2996  if (saveSimHitsP3_) {
2997  const auto mom = det->surface().toGlobal(simhit.momentumAtEntry());
2998  simhit_px.push_back(mom.x());
2999  simhit_py.push_back(mom.y());
3000  simhit_pz.push_back(mom.z());
3001  }
3002  simhit_particle.push_back(simhit.particleType());
3003  simhit_process.push_back(simhit.processType());
3004  simhit_eloss.push_back(simhit.energyLoss());
3005  simhit_tof.push_back(tof);
3006  //simhit_simTrackId.push_back(simhit.trackId());
3007 
3008  simhit_simTrkIdx.push_back(tpIndex);
3009 
3010  simhit_hitIdx.emplace_back(); // filled in matchCluster
3011  simhit_hitType.emplace_back(); // filled in matchCluster
3012 
3013  tpHitList.emplace_back(tpKey, simHitIndex, tof, simhit.detUnitId());
3014  }
3015 }
std::vector< std::vector< int > > simhit_hitIdx
static bool simHitTPAssociationListGreater(SimHitTPPair i, SimHitTPPair j)
std::vector< float > simhit_px
std::vector< short > simhit_process
std::vector< int > simhit_simTrkIdx
#define LogTrace(id)
std::vector< float > simhit_z
std::vector< std::vector< int > > simhit_hitType
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Log< level::Warning, true > LogPrint
const bool saveSimHitsP3_
Definition: DetId.h:17
std::vector< int > simhit_particle
std::vector< float > simhit_y
Monte Carlo truth information used for tracking validation.
const bool keepEleSimHits_
std::vector< float > simhit_x
std::vector< float > simhit_py
std::vector< float > simhit_tof
std::vector< float > simhit_pz
DetIdAllPhase2 simhit_detId_phase2
std::vector< float > simhit_eloss

◆ fillStripMatchedHits()

void TrackingNtuple::fillStripMatchedHits ( const edm::Event iEvent,
const TrackerGeometry tracker,
const TrackerTopology tTopo,
std::vector< std::pair< int, int >> &  monoStereoClusterList 
)
private

Definition at line 3288 of file TrackingNtuple.cc.

References addStripMatchedHit(), edmNew::DetSetVector< T >::begin(), edmNew::DetSetVector< T >::end(), iEvent, edm::Handle< T >::product(), stripMatchedRecHitToken_, stripUseMaskTokens_, and PbPb_ZMuSkimMuonDPG_cff::tracker.

Referenced by analyze().

3291  {
3292  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3293  stripMasks.reserve(stripUseMaskTokens_.size());
3294  for (const auto& itoken : stripUseMaskTokens_) {
3296  iEvent.getByToken(itoken.second, aH);
3297  stripMasks.emplace_back(1 << itoken.first, aH.product());
3298  }
3299 
3301  iEvent.getByToken(stripMatchedRecHitToken_, matchedHits);
3302  for (auto it = matchedHits->begin(); it != matchedHits->end(); it++) {
3303  for (auto hit = it->begin(); hit != it->end(); hit++) {
3304  addStripMatchedHit(*hit, tracker, tTopo, stripMasks, monoStereoClusterList);
3305  }
3306  }
3307 }
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > stripMatchedRecHitToken_
T const * product() const
Definition: Handle.h:70
const_iterator end(bool update=false) const
int iEvent
Definition: GenABIO.cc:224
size_t addStripMatchedHit(const SiStripMatchedRecHit2D &hit, const TrackerGeometry &tracker, const TrackerTopology &tTopo, const std::vector< std::pair< uint64_t, StripMaskContainer const *>> &stripMasks, std::vector< std::pair< int, int >> &monoStereoClusterList)
const_iterator begin(bool update=false) const
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_

◆ fillStripRphiStereoHits()

void TrackingNtuple::fillStripRphiStereoHits ( const edm::Event iEvent,
const TrackerGeometry tracker,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< StripDigiSimLink > &  digiSimLink,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 3114 of file TrackingNtuple.cc.

References TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, siStripClusterTools::chargePerCM(), edmNew::DetSetVector< T >::dataSize(), TrackingNtuple::SimHitData::event, ntuplemaker::fill, hfClusterShapes_cfi::hits, hit::id, iEvent, includeTrackingParticles_, crabWrapper::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, gpuClustering::pixelStatus::mask, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, Skims_PA_cff::name, edm::Handle< T >::product(), DetId::rawId(), simhit_eloss, simhit_particle, simhit_process, simhit_x, simhit_y, simhit_z, str_bbxi, str_chargeFraction, str_chargePerCM, str_clustSize, str_detId, str_isBarrel, str_onTrk_x, str_onTrk_xx, str_onTrk_xy, str_onTrk_y, str_onTrk_yy, str_onTrk_yz, str_onTrk_z, str_onTrk_zx, str_onTrk_zz, str_radL, str_seeIdx, str_simHitIdx, str_simType, str_tcandIdx, str_trkIdx, str_usedMask, str_x, str_xx, str_xy, str_xySignificance, str_y, str_yy, str_yz, str_z, str_zx, str_zz, Strip, stripRphiRecHitToken_, stripStereoRecHitToken_, stripUseMaskTokens_, DetId::subdetId(), StripSubdetector::TIB, StripSubdetector::TOB, PbPb_ZMuSkimMuonDPG_cff::tracker, TrackingNtuple::SimHitData::type, hit::x, TrackingNtuple::SimHitData::xySignificance, hit::y, and hit::z.

Referenced by analyze().

3122  {
3123  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3124  stripMasks.reserve(stripUseMaskTokens_.size());
3125  for (const auto& itoken : stripUseMaskTokens_) {
3127  iEvent.getByToken(itoken.second, aH);
3128  stripMasks.emplace_back(1 << itoken.first, aH.product());
3129  }
3130  auto strUsedMask = [&stripMasks](size_t key) {
3131  uint64_t mask = 0;
3132  for (auto const& m : stripMasks) {
3133  if (m.second->mask(key))
3134  mask |= m.first;
3135  }
3136  return mask;
3137  };
3138 
3139  //index strip hit branches by cluster index
3141  iEvent.getByToken(stripRphiRecHitToken_, rphiHits);
3143  iEvent.getByToken(stripStereoRecHitToken_, stereoHits);
3144  int totalStripHits = rphiHits->dataSize() + stereoHits->dataSize();
3145  str_isBarrel.resize(totalStripHits);
3146  str_detId.resize(totalStripHits);
3147  str_trkIdx.resize(totalStripHits); // filled in fillTracks
3148  str_onTrk_x.resize(totalStripHits);
3149  str_onTrk_y.resize(totalStripHits);
3150  str_onTrk_z.resize(totalStripHits);
3151  str_onTrk_xx.resize(totalStripHits);
3152  str_onTrk_xy.resize(totalStripHits);
3153  str_onTrk_yy.resize(totalStripHits);
3154  str_onTrk_yz.resize(totalStripHits);
3155  str_onTrk_zz.resize(totalStripHits);
3156  str_onTrk_zx.resize(totalStripHits);
3157  str_tcandIdx.resize(totalStripHits); // filled in fillCandidates
3158  str_seeIdx.resize(totalStripHits); // filled in fillSeeds
3159  str_simHitIdx.resize(totalStripHits);
3160  str_simType.resize(totalStripHits);
3161  str_chargeFraction.resize(totalStripHits);
3162  str_x.resize(totalStripHits);
3163  str_y.resize(totalStripHits);
3164  str_z.resize(totalStripHits);
3165  str_xx.resize(totalStripHits);
3166  str_xy.resize(totalStripHits);
3167  str_yy.resize(totalStripHits);
3168  str_yz.resize(totalStripHits);
3169  str_zz.resize(totalStripHits);
3170  str_zx.resize(totalStripHits);
3171  str_xySignificance.resize(totalStripHits);
3172  str_chargeFraction.resize(totalStripHits);
3173  str_radL.resize(totalStripHits);
3174  str_bbxi.resize(totalStripHits);
3175  str_chargePerCM.resize(totalStripHits);
3176  str_clustSize.resize(totalStripHits);
3177  str_usedMask.resize(totalStripHits);
3178 
3179  auto fill = [&](const SiStripRecHit2DCollection& hits, const char* name) {
3180  for (const auto& detset : hits) {
3181  const DetId hitId = detset.detId();
3182  for (const auto& hit : detset) {
3183  hitProductIds.insert(hit.cluster().id());
3184 
3185  const int key = hit.cluster().key();
3186  const int lay = tTopo.layer(hitId);
3188  str_detId.set(key, tracker, tTopo, hitId);
3189  str_x[key] = hit.globalPosition().x();
3190  str_y[key] = hit.globalPosition().y();
3191  str_z[key] = hit.globalPosition().z();
3192  str_xx[key] = hit.globalPositionError().cxx();
3193  str_xy[key] = hit.globalPositionError().cyx();
3194  str_yy[key] = hit.globalPositionError().cyy();
3195  str_yz[key] = hit.globalPositionError().czy();
3196  str_zz[key] = hit.globalPositionError().czz();
3197  str_zx[key] = hit.globalPositionError().czx();
3198  str_radL[key] = hit.surface()->mediumProperties().radLen();
3199  str_bbxi[key] = hit.surface()->mediumProperties().xi();
3200  str_chargePerCM[key] = siStripClusterTools::chargePerCM(hitId, hit.firstClusterRef().stripCluster());
3201  str_clustSize[key] = hit.cluster()->amplitudes().size();
3202  str_usedMask[key] = strUsedMask(key);
3203  LogTrace("TrackingNtuple") << name << " cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3204  << " rawId=" << hitId.rawId() << " pos =" << hit.globalPosition();
3205 
3207  SimHitData simHitData = matchCluster(hit.firstClusterRef(),
3208  hitId,
3209  key,
3210  hit,
3211  clusterToTPMap,
3212  tpKeyToIndex,
3213  simHitsTPAssoc,
3214  digiSimLink,
3215  simHitRefKeyToIndex,
3216  HitType::Strip);
3217  str_simHitIdx[key] = simHitData.matchingSimHit;
3218  str_simType[key] = static_cast<int>(simHitData.type);
3219  str_xySignificance[key] = simHitData.xySignificance;
3220  str_chargeFraction[key] = simHitData.chargeFraction;
3221  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3222  if (!simHitData.matchingSimHit.empty()) {
3223  const auto simHitIdx = simHitData.matchingSimHit[0];
3224  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3225  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3226  << " simHitPos="
3227  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3228  << " energyLoss=" << simhit_eloss[simHitIdx]
3229  << " particleType=" << simhit_particle[simHitIdx]
3230  << " processType=" << simhit_process[simHitIdx]
3231  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3232  << " event=" << simHitData.event[0];
3233  }
3234  }
3235  }
3236  }
3237  };
3238 
3239  fill(*rphiHits, "stripRPhiHit");
3240  fill(*stereoHits, "stripStereoHit");
3241 }
size_type dataSize() const
edm::EDGetTokenT< SiStripRecHit2DCollection > stripRphiRecHitToken_
DetIdStrip str_detId
std::vector< std::vector< int > > str_trkIdx
std::vector< float > str_yy
std::vector< uint64_t > str_usedMask
std::vector< std::vector< float > > str_onTrk_yz
std::vector< float > str_x
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TrackingRecHit &hit, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
edm::EDGetTokenT< SiStripRecHit2DCollection > stripStereoRecHitToken_
std::vector< float > str_yz
T const * product() const
Definition: Handle.h:70
float chargePerCM(DetId detid, Iter a, Iter b)
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< short > simhit_process
std::vector< std::vector< float > > str_onTrk_xx
std::vector< std::vector< int > > str_seeIdx
std::vector< float > str_radL
constexpr uint32_t mask
Definition: gpuClustering.h:26
unsigned int layer(const DetId &id) const
#define LogTrace(id)
std::vector< std::vector< float > > str_xySignificance
std::vector< unsigned short > str_simType
std::vector< float > simhit_z
int iEvent
Definition: GenABIO.cc:224
std::vector< std::vector< float > > str_onTrk_z
std::vector< float > str_y
std::vector< float > str_zz
std::vector< std::vector< float > > str_onTrk_y
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
std::vector< float > str_chargePerCM
const bool includeTrackingParticles_
static constexpr auto TOB
std::vector< std::vector< float > > str_onTrk_zx
std::vector< std::vector< float > > str_onTrk_x
unsigned int id
Definition: DetId.h:17
static constexpr auto TIB
unsigned long long uint64_t
Definition: Time.h:13
std::vector< float > str_z
std::vector< float > str_zx
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< float > str_xy
std::vector< std::vector< float > > str_chargeFraction
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
std::vector< std::vector< int > > str_tcandIdx
std::vector< short > str_isBarrel
std::vector< int > str_clustSize
std::vector< int > simhit_particle
std::vector< float > simhit_y
std::vector< std::vector< int > > str_simHitIdx
std::vector< std::vector< float > > str_onTrk_xy
std::vector< float > simhit_x
std::vector< float > str_xx
std::vector< std::vector< float > > str_onTrk_zz
std::vector< std::vector< float > > str_onTrk_yy
std::vector< float > simhit_eloss
std::vector< float > str_bbxi

◆ fillTrackingParticles()

void TrackingNtuple::fillTrackingParticles ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const edm::RefToBaseVector< reco::Track > &  tracks,
const reco::BeamSpot bs,
const TrackingParticleRefVector tpCollection,
const TrackingVertexRefKeyToIndex &  tvKeyToIndex,
const reco::TrackToTrackingParticleAssociator associatorByHits,
const std::vector< TPHitIndex > &  tpHitList,
const TrackingParticleRefKeyToCount &  tpKeyToClusterCount 
)
private

Definition at line 4322 of file TrackingNtuple.cc.

References reco::TrackToTrackingParticleAssociator::associateSimToReco(), cms::cuda::bs, TrackingParticleIP::dxy(), TrackingParticleIP::dz(), edm::AssociationMap< Tag >::end(), HistoryBase::evaluate(), Exception, edm::AssociationMap< Tag >::find(), newFWLiteAna::found, iEvent, includeStripHits_, LogTrace, M_PI, ParametersDefinerForTP::momentum(), parametersDefiner_, EgammaObjectsElectrons_cfi::particleID, LHEGenericFilter_cfi::ParticleID, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, HistoryBase::recoGenParticleTrail(), sim_bunchCrossing, sim_decayVtxIdx, sim_eta, sim_event, sim_genPdgIds, sim_isFromBHadron, sim_n3DLay, sim_nLay, sim_nPixel, sim_nPixelLay, sim_nRecoClusters, sim_nStrip, sim_nTrackerHits, sim_nValid, sim_parentVtxIdx, sim_pca_cotTheta, sim_pca_dxy, sim_pca_dz, sim_pca_eta, sim_pca_lambda, sim_pca_phi, sim_pca_pt, sim_pdgId, sim_phi, sim_pt, sim_px, sim_py, sim_pz, sim_q, sim_simHitIdx, sim_trkIdx, sim_trkShareFrac, simhit_detId, simhit_detId_phase2, simhit_hitType, mathSSE::sqrt(), funct::tan(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, cmsswSequenceInfo::tp, tpHitIndexListLess(), tpNLayersToken_, tpNPixelLayersToken_, tpNStripStereoLayersToken_, tracer_, DetId::Tracker, StandaloneTrackMonitor_cfi::trackQuality, pwdgSkimBPark_cfi::tracks, Unknown, findQualityFiles::v, bphysicsOniaDQM_cfi::vertex, and ParametersDefinerForTP::vertex().

Referenced by analyze().

4330  {
4331  // Number of 3D layers for TPs
4333  iEvent.getByToken(tpNLayersToken_, tpNLayersH);
4334  const auto& nLayers_tPCeff = *tpNLayersH;
4335 
4336  iEvent.getByToken(tpNPixelLayersToken_, tpNLayersH);
4337  const auto& nPixelLayers_tPCeff = *tpNLayersH;
4338 
4339  iEvent.getByToken(tpNStripStereoLayersToken_, tpNLayersH);
4340  const auto& nStripMonoAndStereoLayers_tPCeff = *tpNLayersH;
4341 
4342  reco::SimToRecoCollection simRecColl = associatorByHits.associateSimToReco(tracks, tpCollection);
4343 
4344  for (const TrackingParticleRef& tp : tpCollection) {
4345  LogTrace("TrackingNtuple") << "tracking particle pt=" << tp->pt() << " eta=" << tp->eta() << " phi=" << tp->phi();
4346  bool isRecoMatched = false;
4347  std::vector<int> tkIdx;
4348  std::vector<float> sharedFraction;
4349  auto foundTracks = simRecColl.find(tp);
4350  if (foundTracks != simRecColl.end()) {
4351  isRecoMatched = true;
4352  for (const auto& trackQuality : foundTracks->val) {
4353  sharedFraction.push_back(trackQuality.second);
4354  tkIdx.push_back(trackQuality.first.key());
4355  }
4356  }
4357 
4358  sim_genPdgIds.emplace_back();
4359  for (const auto& genRef : tp->genParticles()) {
4360  if (genRef.isNonnull())
4361  sim_genPdgIds.back().push_back(genRef->pdgId());
4362  }
4363 
4364  bool isFromBHadron = false;
4365  // Logic is similar to SimTracker/TrackHistory
4366  if (tracer_.evaluate(tp)) { // ignore TP if history can not be traced
4367  // following is from TrackClassifier::processesAtGenerator()
4368  HistoryBase::RecoGenParticleTrail const& recoGenParticleTrail = tracer_.recoGenParticleTrail();
4369  for (const auto& particle : recoGenParticleTrail) {
4370  HepPDT::ParticleID particleID(particle->pdgId());
4371  if (particleID.hasBottom()) {
4372  isFromBHadron = true;
4373  break;
4374  }
4375  }
4376  }
4377 
4378  LogTrace("TrackingNtuple") << "matched to tracks = " << make_VectorPrinter(tkIdx)
4379  << " isRecoMatched=" << isRecoMatched;
4380  sim_event.push_back(tp->eventId().event());
4381  sim_bunchCrossing.push_back(tp->eventId().bunchCrossing());
4382  sim_pdgId.push_back(tp->pdgId());
4383  sim_isFromBHadron.push_back(isFromBHadron);
4384  sim_px.push_back(tp->px());
4385  sim_py.push_back(tp->py());
4386  sim_pz.push_back(tp->pz());
4387  sim_pt.push_back(tp->pt());
4388  sim_eta.push_back(tp->eta());
4389  sim_phi.push_back(tp->phi());
4390  sim_q.push_back(tp->charge());
4391  sim_trkIdx.push_back(tkIdx);
4392  sim_trkShareFrac.push_back(sharedFraction);
4393  sim_parentVtxIdx.push_back(tvKeyToIndex.at(tp->parentVertex().key()));
4394  std::vector<int> decayIdx;
4395  for (const auto& v : tp->decayVertices())
4396  decayIdx.push_back(tvKeyToIndex.at(v.key()));
4397  sim_decayVtxIdx.push_back(decayIdx);
4398 
4399  //Calcualte the impact parameters w.r.t. PCA
4402  auto dxySim = TrackingParticleIP::dxy(vertex, momentum, bs.position());
4403  auto dzSim = TrackingParticleIP::dz(vertex, momentum, bs.position());
4404  const double lambdaSim = M_PI / 2 - momentum.theta();
4405  sim_pca_pt.push_back(std::sqrt(momentum.perp2()));
4406  sim_pca_eta.push_back(momentum.Eta());
4407  sim_pca_lambda.push_back(lambdaSim);
4408  sim_pca_cotTheta.push_back(1 / tan(M_PI * 0.5 - lambdaSim));
4409  sim_pca_phi.push_back(momentum.phi());
4410  sim_pca_dxy.push_back(dxySim);
4411  sim_pca_dz.push_back(dzSim);
4412 
4413  std::vector<int> hitIdx;
4414  int nPixel = 0, nStrip = 0;
4415  auto rangeHit = std::equal_range(tpHitList.begin(), tpHitList.end(), TPHitIndex(tp.key()), tpHitIndexListLess);
4416  for (auto ip = rangeHit.first; ip != rangeHit.second; ++ip) {
4417  auto type = HitType::Unknown;
4418  if (!simhit_hitType[ip->simHitIdx].empty())
4419  type = static_cast<HitType>(simhit_hitType[ip->simHitIdx][0]);
4420  LogTrace("TrackingNtuple") << "simhit=" << ip->simHitIdx << " type=" << static_cast<int>(type);
4421  hitIdx.push_back(ip->simHitIdx);
4422  const auto detid = DetId(includeStripHits_ ? simhit_detId[ip->simHitIdx] : simhit_detId_phase2[ip->simHitIdx]);
4423  if (detid.det() != DetId::Tracker) {
4424  throw cms::Exception("LogicError") << "Encountered SimHit for TP " << tp.key() << " with DetId "
4425  << detid.rawId() << " whose det() is not Tracker but " << detid.det();
4426  }
4427  const auto subdet = detid.subdetId();
4428  switch (subdet) {
4431  ++nPixel;
4432  break;
4433  case StripSubdetector::TIB:
4434  case StripSubdetector::TID:
4435  case StripSubdetector::TOB:
4436  case StripSubdetector::TEC:
4437  ++nStrip;
4438  break;
4439  default:
4440  throw cms::Exception("LogicError") << "Encountered SimHit for TP " << tp.key() << " with DetId "
4441  << detid.rawId() << " whose subdet is not recognized, is " << subdet;
4442  };
4443  }
4444  sim_nValid.push_back(hitIdx.size());
4445  sim_nPixel.push_back(nPixel);
4446  sim_nStrip.push_back(nStrip);
4447 
4448  const auto nSimLayers = nLayers_tPCeff[tp];
4449  const auto nSimPixelLayers = nPixelLayers_tPCeff[tp];
4450  const auto nSimStripMonoAndStereoLayers = nStripMonoAndStereoLayers_tPCeff[tp];
4451  sim_nLay.push_back(nSimLayers);
4452  sim_nPixelLay.push_back(nSimPixelLayers);
4453  sim_n3DLay.push_back(nSimPixelLayers + nSimStripMonoAndStereoLayers);
4454 
4455  sim_nTrackerHits.push_back(tp->numberOfTrackerHits());
4456  auto found = tpKeyToClusterCount.find(tp.key());
4457  sim_nRecoClusters.push_back(found != cend(tpKeyToClusterCount) ? found->second : 0);
4458 
4459  sim_simHitIdx.push_back(hitIdx);
4460  }
4461 }
std::vector< unsigned int > sim_nTrackerHits
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::vector< float > sim_pca_dz
std::vector< unsigned int > sim_nLay
static constexpr auto TEC
std::vector< float > sim_pca_cotTheta
std::vector< float > sim_pca_dxy
std::vector< int > sim_bunchCrossing
std::vector< unsigned int > sim_n3DLay
std::vector< float > sim_phi
static bool tpHitIndexListLess(const TPHitIndex &i, const TPHitIndex &j)
std::vector< float > sim_py
std::vector< float > sim_px
std::vector< std::vector< int > > sim_decayVtxIdx
std::vector< std::vector< float > > sim_trkShareFrac
const_iterator find(const key_type &k) const
find element with specified reference key
#define LogTrace(id)
std::vector< int > sim_q
const_iterator end() const
last iterator over the map (read only)
math::XYZPointD Point
point in the space
std::vector< int > sim_event
std::vector< const reco::GenParticle * > RecoGenParticleTrail
reco::GenParticle trail type.
Definition: HistoryBase.h:18
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNStripStereoLayersToken_
int iEvent
Definition: GenABIO.cc:224
std::vector< float > sim_pca_phi
auto dz(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
std::vector< unsigned int > sim_nRecoClusters
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< float > sim_eta
std::vector< int > sim_pdgId
std::vector< std::vector< int > > simhit_hitType
std::vector< std::vector< int > > sim_genPdgIds
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< unsigned int > sim_nValid
std::vector< float > sim_pca_pt
std::vector< std::vector< int > > sim_trkIdx
static constexpr auto TOB
std::vector< unsigned int > sim_nPixelLay
std::vector< float > sim_pca_lambda
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
#define M_PI
std::vector< float > sim_pz
std::vector< std::vector< int > > sim_simHitIdx
Definition: DetId.h:17
static constexpr auto TIB
std::vector< int > sim_parentVtxIdx
HistoryBase tracer_
virtual TrackingParticle::Point vertex(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
std::vector< unsigned int > sim_nPixel
bool evaluate(TrackingParticleRef tpr)
Evaluate track history using a TrackingParticleRef.
Definition: HistoryBase.h:96
auto dxy(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNLayersToken_
std::vector< float > sim_pca_eta
ParametersDefinerForTP parametersDefiner_
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNPixelLayersToken_
RecoGenParticleTrail const & recoGenParticleTrail() const
Return all reco::GenParticle in the history.
Definition: HistoryBase.h:64
math::XYZVectorD Vector
point in the space
std::vector< float > sim_pt
static constexpr auto TID
DetIdAllPhase2 simhit_detId_phase2
std::vector< int > sim_isFromBHadron
std::vector< unsigned int > sim_nStrip

◆ fillTrackingParticlesForSeeds()

void TrackingNtuple::fillTrackingParticlesForSeeds ( const TrackingParticleRefVector tpCollection,
const reco::SimToRecoCollection simRecColl,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const unsigned int  seedOffset 
)
private

Definition at line 4464 of file TrackingNtuple.cc.

References newFWLiteAna::found, sim_seedIdx, and edm::RefVector< C, T, F >::size().

Referenced by fillSeeds().

4467  {
4468  if (sim_seedIdx.empty()) // first call
4469  sim_seedIdx.resize(tpCollection.size());
4470 
4471  for (const auto& keyVal : simRecColl) {
4472  const auto& tpRef = keyVal.key;
4473  auto found = tpKeyToIndex.find(tpRef.key());
4474  if (found == tpKeyToIndex.end())
4475  throw cms::Exception("Assert") << __FILE__ << ":" << __LINE__ << " fillTrackingParticlesForSeeds: tpRef.key() "
4476  << tpRef.key() << " not found from tpKeyToIndex. tpKeyToIndex size "
4477  << tpKeyToIndex.size();
4478  const auto tpIndex = found->second;
4479  for (const auto& pair : keyVal.val) {
4480  const auto& seedRef = pair.first->seedRef();
4481  sim_seedIdx[tpIndex].push_back(seedOffset + seedRef.key());
4482  }
4483  }
4484 }
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
std::vector< std::vector< int > > sim_seedIdx

◆ fillTrackingVertices()

void TrackingNtuple::fillTrackingVertices ( const TrackingVertexRefVector trackingVertices,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex 
)
private

Definition at line 4519 of file TrackingNtuple.cc.

References ntuplemaker::fill, newFWLiteAna::found, heavyIonCSV_trainingSettings::idx, SiStripPI::max, simpv_idx, simvtx_bunchCrossing, simvtx_daughterSimIdx, simvtx_event, simvtx_processType, simvtx_sourceSimIdx, simvtx_x, simvtx_y, simvtx_z, and findQualityFiles::v.

Referenced by analyze().

4520  {
4521  int current_event = -1;
4522  for (const auto& ref : trackingVertices) {
4523  const TrackingVertex v = *ref;
4524  if (v.eventId().event() != current_event) {
4525  // next PV
4526  current_event = v.eventId().event();
4527  simpv_idx.push_back(simvtx_x.size());
4528  }
4529 
4530  unsigned int processType = std::numeric_limits<unsigned int>::max();
4531  if (!v.g4Vertices().empty()) {
4532  processType = v.g4Vertices()[0].processType();
4533  }
4534 
4535  simvtx_event.push_back(v.eventId().event());
4536  simvtx_bunchCrossing.push_back(v.eventId().bunchCrossing());
4537  simvtx_processType.push_back(processType);
4538 
4539  simvtx_x.push_back(v.position().x());
4540  simvtx_y.push_back(v.position().y());
4541  simvtx_z.push_back(v.position().z());
4542 
4543  auto fill = [&](const TrackingParticleRefVector& tps, std::vector<int>& idx) {
4544  for (const auto& tpRef : tps) {
4545  auto found = tpKeyToIndex.find(tpRef.key());
4546  if (found != tpKeyToIndex.end()) {
4547  idx.push_back(found->second);
4548  }
4549  }
4550  };
4551 
4552  std::vector<int> sourceIdx;
4553  std::vector<int> daughterIdx;
4554  fill(v.sourceTracks(), sourceIdx);
4555  fill(v.daughterTracks(), daughterIdx);
4556 
4557  simvtx_sourceSimIdx.push_back(sourceIdx);
4558  simvtx_daughterSimIdx.push_back(daughterIdx);
4559  }
4560 }
std::vector< unsigned int > simvtx_processType
std::vector< float > simvtx_z
std::vector< int > simvtx_event
std::vector< int > simpv_idx
std::vector< std::vector< int > > simvtx_sourceSimIdx
std::vector< float > simvtx_x
std::vector< float > simvtx_y
std::vector< std::vector< int > > simvtx_daughterSimIdx
std::vector< int > simvtx_bunchCrossing

◆ fillTracks()

void TrackingNtuple::fillTracks ( const edm::RefToBaseVector< reco::Track > &  tracks,
const TrackerGeometry tracker,
const TrackingParticleRefVector tpCollection,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const TrackingParticleRefKeyToCount &  tpKeyToClusterCount,
const MagneticField mf,
const reco::BeamSpot bs,
const reco::VertexCollection vertices,
const reco::TrackToTrackingParticleAssociator associatorByHits,
const ClusterTPAssociation clusterToTPMap,
const TrackerTopology tTopo,
const std::set< edm::ProductID > &  hitProductIds,
const std::map< edm::ProductID, size_t > &  seedToCollIndex,
const std::vector< const MVACollection *> &  mvaColls,
const std::vector< const QualityMaskCollection *> &  qualColls 
)
private

Definition at line 3759 of file TrackingNtuple.cc.

References reco::TrackBase::algoName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), cms::cuda::bs, ALCARECOTkAlJpsiMuMu_cff::charge, hltPixelTracks_cff::chi2, OmniClusterRef::cluster_pixel(), bsc_activity_cfg::clusters, DetId::det(), HLT_2023v12_cff::distance, edm::AssociationMap< Tag >::end(), PVValHelper::eta, Exception, edm::AssociationMap< Tag >::find(), BaseTrackerRecHit::firstClusterRef(), getBestVertex(), reco::TrackBase::highPurity, track_associator::hitsToClusterRefs(), trackingPlots::hp, mps_fire::i, hit::id, includeAllHits_, includeMVA_, includeSeeds_, includeStripHits_, includeTrackingParticles_, inv_detId, inv_detId_phase2, inv_isBarrel, inv_type, Invalid, edm::Ref< C, T, F >::key(), SummaryClient_cfi::labels, edm::EDConsumerBase::labelsForToken(), TrackerTopology::layer(), LogTrace, M_PI, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, heavyionUCCDQM_cfi::nClusters, ndof, nHits, hltrates_dqm_sourceclient-live_cfg::offset, ph2_onTrk_x, ph2_onTrk_xx, ph2_onTrk_xy, ph2_onTrk_y, ph2_onTrk_yy, ph2_onTrk_yz, ph2_onTrk_z, ph2_onTrk_zx, ph2_onTrk_zz, ph2_trkIdx, Phase2OT, phi, pix_onTrk_x, pix_onTrk_xx, pix_onTrk_xy, pix_onTrk_y, pix_onTrk_yy, pix_onTrk_yz, pix_onTrk_z, pix_onTrk_zx, pix_onTrk_zz, pix_trkIdx, Pixel, DiDispStaMuonMonitor_cfi::pt, DetId::rawId(), see_trkIdx, str_onTrk_x, str_onTrk_xx, str_onTrk_xy, str_onTrk_y, str_onTrk_yy, str_onTrk_yz, str_onTrk_z, str_onTrk_zx, str_onTrk_zz, str_trkIdx, Strip, DetId::subdetId(), funct::tan(), reco::HitPattern::TRACK_HITS, track_associator::trackAssociationChi2(), DetId::Tracker, PbPb_ZMuSkimMuonDPG_cff::tracker, pwdgSkimBPark_cfi::tracks, trackToken_, trk_algo, trk_algoMask, trk_bestFromFirstHitSimTrkIdx, trk_bestFromFirstHitSimTrkNChi2, trk_bestFromFirstHitSimTrkShareFrac, trk_bestFromFirstHitSimTrkShareFracSimClusterDenom, trk_bestFromFirstHitSimTrkShareFracSimDenom, trk_bestSimTrkIdx, trk_bestSimTrkNChi2, trk_bestSimTrkShareFrac, trk_bestSimTrkShareFracSimClusterDenom, trk_bestSimTrkShareFracSimDenom, trk_cotTheta, trk_dxy, trk_dxyClosestPV, trk_dxyErr, trk_dxyPV, trk_dz, trk_dzClosestPV, trk_dzErr, trk_dzPV, trk_eta, trk_etaErr, trk_hitIdx, trk_hitType, trk_inner_pt, trk_inner_px, trk_inner_py, trk_inner_pz, trk_isHP, trk_isTrue, trk_lambda, trk_lambdaErr, trk_mvas, trk_n3DLay, trk_nChi2, trk_nChi2_1Dmod, trk_nCluster, trk_ndof, trk_nInactive, trk_nInnerInactive, trk_nInnerLost, trk_nLost, trk_nLostLay, trk_nOuterInactive, trk_nOuterLost, trk_nPixel, trk_nPixelLay, trk_nStrip, trk_nStripLay, trk_nValid, trk_originalAlgo, trk_outer_pt, trk_outer_px, trk_outer_py, trk_outer_pz, trk_phi, trk_phiErr, trk_pt, trk_ptErr, trk_px, trk_py, trk_pz, trk_q, trk_qualityMasks, trk_refpoint_x, trk_refpoint_y, trk_refpoint_z, trk_seedIdx, trk_simTrkIdx, trk_simTrkNChi2, trk_simTrkShareFrac, trk_stopReason, trk_vtxIdx, edm::helpers::KeyVal< K, V >::val, AlignmentTracksFromVertexSelector_cfi::vertices, hit::x, hit::y, and hit::z.

Referenced by analyze().

3773  {
3774  reco::RecoToSimCollection recSimColl = associatorByHits.associateRecoToSim(tracks, tpCollection);
3777  LogTrace("TrackingNtuple") << "NEW TRACK LABEL: " << labels.module;
3778 
3779  auto pvPosition = vertices[0].position();
3780 
3781  for (size_t iTrack = 0; iTrack < tracks.size(); ++iTrack) {
3782  const auto& itTrack = tracks[iTrack];
3783  int charge = itTrack->charge();
3784  float pt = itTrack->pt();
3785  float eta = itTrack->eta();
3786  const double lambda = itTrack->lambda();
3787  float chi2 = itTrack->normalizedChi2();
3788  float ndof = itTrack->ndof();
3789  float phi = itTrack->phi();
3790  int nHits = itTrack->numberOfValidHits();
3791  const reco::HitPattern& hp = itTrack->hitPattern();
3792 
3793  const auto& tkParam = itTrack->parameters();
3794  auto tkCov = itTrack->covariance();
3795  tkCov.Invert();
3796 
3797  // Standard track-TP matching
3798  int nSimHits = 0;
3799  bool isSimMatched = false;
3800  std::vector<int> tpIdx;
3801  std::vector<float> sharedFraction;
3802  std::vector<float> tpChi2;
3803  auto foundTPs = recSimColl.find(itTrack);
3804  if (foundTPs != recSimColl.end()) {
3805  if (!foundTPs->val.empty()) {
3806  nSimHits = foundTPs->val[0].first->numberOfTrackerHits();
3807  isSimMatched = true;
3808  }
3809  for (const auto& tpQuality : foundTPs->val) {
3810  tpIdx.push_back(tpKeyToIndex.at(tpQuality.first.key()));
3811  sharedFraction.push_back(tpQuality.second);
3812  tpChi2.push_back(track_associator::trackAssociationChi2(tkParam, tkCov, *(tpCollection[tpIdx.back()]), mf, bs));
3813  }
3814  }
3815 
3816  // Search for a best-matching TrackingParticle for a track
3818  itTrack->recHitsBegin(),
3819  itTrack->recHitsEnd()); // TODO: this function is called 3 times per track, try to reduce
3820  const int nClusters = clusters.size();
3821 
3822  const auto bestKeyCount = findBestMatchingTrackingParticle(itTrack->recHits(), clusterToTPMap, tpKeyToIndex);
3823  const float bestShareFrac = static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(nClusters);
3824  float bestShareFracSimDenom = 0;
3825  float bestShareFracSimClusterDenom = 0;
3826  float bestChi2 = -1;
3827  if (bestKeyCount.key >= 0) {
3828  bestShareFracSimDenom =
3829  static_cast<float>(bestKeyCount.countClusters) /
3830  static_cast<float>(tpCollection[tpKeyToIndex.at(bestKeyCount.key)]->numberOfTrackerHits());
3831  bestShareFracSimClusterDenom =
3832  static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(tpKeyToClusterCount.at(bestKeyCount.key));
3834  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestKeyCount.key)]), mf, bs);
3835  }
3836  // Another way starting from the first hit of the track
3837  const auto bestFirstHitKeyCount =
3838  findMatchingTrackingParticleFromFirstHit(itTrack->recHits(), clusterToTPMap, tpKeyToIndex);
3839  const float bestFirstHitShareFrac =
3840  static_cast<float>(bestFirstHitKeyCount.countClusters) / static_cast<float>(nClusters);
3841  float bestFirstHitShareFracSimDenom = 0;
3842  float bestFirstHitShareFracSimClusterDenom = 0;
3843  float bestFirstHitChi2 = -1;
3844  if (bestFirstHitKeyCount.key >= 0) {
3845  bestFirstHitShareFracSimDenom =
3846  static_cast<float>(bestFirstHitKeyCount.countClusters) /
3847  static_cast<float>(tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]->numberOfTrackerHits());
3848  bestFirstHitShareFracSimClusterDenom = static_cast<float>(bestFirstHitKeyCount.countClusters) /
3849  static_cast<float>(tpKeyToClusterCount.at(bestFirstHitKeyCount.key));
3850  bestFirstHitChi2 = track_associator::trackAssociationChi2(
3851  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]), mf, bs);
3852  }
3853 
3854  float chi2_1Dmod = chi2;
3855  int count1dhits = 0;
3856  for (auto iHit = itTrack->recHitsBegin(), iEnd = itTrack->recHitsEnd(); iHit != iEnd; ++iHit) {
3857  const TrackingRecHit& hit = **iHit;
3858  if (hit.isValid() && typeid(hit) == typeid(SiStripRecHit1D))
3859  ++count1dhits;
3860  }
3861  if (count1dhits > 0) {
3862  chi2_1Dmod = (chi2 + count1dhits) / (ndof + count1dhits);
3863  }
3864 
3865  Point bestPV = getBestVertex(*itTrack, vertices);
3866 
3867  trk_px.push_back(itTrack->px());
3868  trk_py.push_back(itTrack->py());
3869  trk_pz.push_back(itTrack->pz());
3870  trk_pt.push_back(pt);
3871  trk_inner_px.push_back(itTrack->innerMomentum().x());
3872  trk_inner_py.push_back(itTrack->innerMomentum().y());
3873  trk_inner_pz.push_back(itTrack->innerMomentum().z());
3874  trk_inner_pt.push_back(itTrack->innerMomentum().rho());
3875  trk_outer_px.push_back(itTrack->outerMomentum().x());
3876  trk_outer_py.push_back(itTrack->outerMomentum().y());
3877  trk_outer_pz.push_back(itTrack->outerMomentum().z());
3878  trk_outer_pt.push_back(itTrack->outerMomentum().rho());
3879  trk_eta.push_back(eta);
3880  trk_lambda.push_back(lambda);
3881  trk_cotTheta.push_back(1 / tan(M_PI * 0.5 - lambda));
3882  trk_phi.push_back(phi);
3883  trk_dxy.push_back(itTrack->dxy(bs.position()));
3884  trk_dz.push_back(itTrack->dz(bs.position()));
3885  trk_dxyPV.push_back(itTrack->dxy(pvPosition));
3886  trk_dzPV.push_back(itTrack->dz(pvPosition));
3887  trk_dxyClosestPV.push_back(itTrack->dxy(bestPV));
3888  trk_dzClosestPV.push_back(itTrack->dz(bestPV));
3889  trk_ptErr.push_back(itTrack->ptError());
3890  trk_etaErr.push_back(itTrack->etaError());
3891  trk_lambdaErr.push_back(itTrack->lambdaError());
3892  trk_phiErr.push_back(itTrack->phiError());
3893  trk_dxyErr.push_back(itTrack->dxyError());
3894  trk_dzErr.push_back(itTrack->dzError());
3895  trk_refpoint_x.push_back(itTrack->vx());
3896  trk_refpoint_y.push_back(itTrack->vy());
3897  trk_refpoint_z.push_back(itTrack->vz());
3898  trk_nChi2.push_back(chi2);
3899  trk_nChi2_1Dmod.push_back(chi2_1Dmod);
3900  trk_ndof.push_back(ndof);
3901  trk_q.push_back(charge);
3902  trk_nValid.push_back(hp.numberOfValidHits());
3903  trk_nLost.push_back(hp.numberOfLostHits(reco::HitPattern::TRACK_HITS));
3904  trk_nInactive.push_back(hp.trackerLayersTotallyOffOrBad(reco::HitPattern::TRACK_HITS));
3905  trk_nPixel.push_back(hp.numberOfValidPixelHits());
3906  trk_nStrip.push_back(hp.numberOfValidStripHits());
3907  trk_nOuterLost.push_back(hp.numberOfLostTrackerHits(reco::HitPattern::MISSING_OUTER_HITS));
3908  trk_nInnerLost.push_back(hp.numberOfLostTrackerHits(reco::HitPattern::MISSING_INNER_HITS));
3909  trk_nOuterInactive.push_back(hp.trackerLayersTotallyOffOrBad(reco::HitPattern::MISSING_OUTER_HITS));
3910  trk_nInnerInactive.push_back(hp.trackerLayersTotallyOffOrBad(reco::HitPattern::MISSING_INNER_HITS));
3911  trk_nPixelLay.push_back(hp.pixelLayersWithMeasurement());
3912  trk_nStripLay.push_back(hp.stripLayersWithMeasurement());
3913  trk_n3DLay.push_back(hp.numberOfValidStripLayersWithMonoAndStereo() + hp.pixelLayersWithMeasurement());
3914  trk_nLostLay.push_back(hp.trackerLayersWithoutMeasurement(reco::HitPattern::TRACK_HITS));
3915  trk_nCluster.push_back(nClusters);
3916  trk_algo.push_back(itTrack->algo());
3917  trk_originalAlgo.push_back(itTrack->originalAlgo());
3918  trk_algoMask.push_back(itTrack->algoMaskUL());
3919  trk_stopReason.push_back(itTrack->stopReason());
3920  trk_isHP.push_back(itTrack->quality(reco::TrackBase::highPurity));
3921  if (includeMVA_) {
3922  for (size_t i = 0; i < trk_mvas.size(); ++i) {
3923  trk_mvas[i].push_back((*(mvaColls[i]))[iTrack]);
3924  trk_qualityMasks[i].push_back((*(qualColls[i]))[iTrack]);
3925  }
3926  }
3927  if (includeSeeds_) {
3928  auto offset = seedCollToOffset.find(itTrack->seedRef().id());
3929  if (offset == seedCollToOffset.end()) {
3930  throw cms::Exception("Configuration")
3931  << "Track algo '" << reco::TrackBase::algoName(itTrack->algo()) << "' originalAlgo '"
3932  << reco::TrackBase::algoName(itTrack->originalAlgo()) << "' refers to seed collection "
3933  << itTrack->seedRef().id()
3934  << ", but that seed collection is not given as an input. The following collections were given as an input "
3935  << make_ProductIDMapPrinter(seedCollToOffset);
3936  }
3937 
3938  const auto seedIndex = offset->second + itTrack->seedRef().key();
3939  trk_seedIdx.push_back(seedIndex);
3940  if (see_trkIdx[seedIndex] != -1) {
3941  throw cms::Exception("LogicError") << "Track index has already been set for seed " << seedIndex << " to "
3942  << see_trkIdx[seedIndex] << "; was trying to set it to " << iTrack;
3943  }
3944  see_trkIdx[seedIndex] = iTrack;
3945  }
3946  trk_vtxIdx.push_back(-1); // to be set correctly in fillVertices
3948  trk_simTrkIdx.push_back(tpIdx);
3949  trk_simTrkShareFrac.push_back(sharedFraction);
3950  trk_simTrkNChi2.push_back(tpChi2);
3951  trk_bestSimTrkIdx.push_back(bestKeyCount.key >= 0 ? tpKeyToIndex.at(bestKeyCount.key) : -1);
3952  trk_bestFromFirstHitSimTrkIdx.push_back(bestFirstHitKeyCount.key >= 0 ? tpKeyToIndex.at(bestFirstHitKeyCount.key)
3953  : -1);
3954  } else {
3955  trk_isTrue.push_back(!tpIdx.empty());
3956  }
3957  trk_bestSimTrkShareFrac.push_back(bestShareFrac);
3958  trk_bestSimTrkShareFracSimDenom.push_back(bestShareFracSimDenom);
3959  trk_bestSimTrkShareFracSimClusterDenom.push_back(bestShareFracSimClusterDenom);
3960  trk_bestSimTrkNChi2.push_back(bestChi2);
3961  trk_bestFromFirstHitSimTrkShareFrac.push_back(bestFirstHitShareFrac);
3962  trk_bestFromFirstHitSimTrkShareFracSimDenom.push_back(bestFirstHitShareFracSimDenom);
3963  trk_bestFromFirstHitSimTrkShareFracSimClusterDenom.push_back(bestFirstHitShareFracSimClusterDenom);
3964  trk_bestFromFirstHitSimTrkNChi2.push_back(bestFirstHitChi2);
3965 
3966  LogTrace("TrackingNtuple") << "Track #" << itTrack.key() << " with q=" << charge << ", pT=" << pt
3967  << " GeV, eta: " << eta << ", phi: " << phi << ", chi2=" << chi2 << ", Nhits=" << nHits
3968  << ", algo=" << itTrack->algoName(itTrack->algo()).c_str()
3969  << " hp=" << itTrack->quality(reco::TrackBase::highPurity)
3970  << " seed#=" << itTrack->seedRef().key() << " simMatch=" << isSimMatched
3971  << " nSimHits=" << nSimHits
3972  << " sharedFraction=" << (sharedFraction.empty() ? -1 : sharedFraction[0])
3973  << " tpIdx=" << (tpIdx.empty() ? -1 : tpIdx[0]);
3974  std::vector<int> hitIdx;
3975  std::vector<int> hitType;
3976 
3977  for (auto i = itTrack->recHitsBegin(); i != itTrack->recHitsEnd(); i++) {
3978  auto hit = *i;
3979  DetId hitId = hit->geographicalId();
3980  LogTrace("TrackingNtuple") << "hit #" << std::distance(itTrack->recHitsBegin(), i)
3981  << " subdet=" << hitId.subdetId();
3982  if (hitId.det() != DetId::Tracker)
3983  continue;
3984 
3985  LogTrace("TrackingNtuple") << " " << subdetstring(hitId.subdetId()) << " " << tTopo.layer(hitId);
3986 
3987  if (hit->isValid()) {
3988  //ugly... but works
3989  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&*hit);
3990  const auto& clusterRef = bhit->firstClusterRef();
3991  unsigned int clusterKey;
3992  if (clusterRef.isPixel()) {
3993  clusterKey = clusterRef.cluster_pixel().key();
3994  } else if (clusterRef.isPhase2()) {
3995  clusterKey = clusterRef.cluster_phase2OT().key();
3996  } else {
3997  clusterKey = clusterRef.cluster_strip().key();
3998  }
3999 
4000  LogTrace("TrackingNtuple") << " id: " << hitId.rawId() << " - globalPos =" << hit->globalPosition()
4001  << " cluster=" << clusterKey << " clusterRef ID=" << clusterRef.id()
4002  << " eta,phi: " << hit->globalPosition().eta() << "," << hit->globalPosition().phi();
4003  if (includeAllHits_) {
4004  checkProductID(hitProductIds, clusterRef.id(), "track");
4005  if (clusterRef.isPixel()) {
4006  pix_trkIdx[clusterKey].push_back(iTrack);
4007  pix_onTrk_x[clusterKey].push_back(hit->globalPosition().x());
4008  pix_onTrk_y[clusterKey].push_back(hit->globalPosition().y());
4009  pix_onTrk_z[clusterKey].push_back(hit->globalPosition().z());
4010  pix_onTrk_xx[clusterKey].push_back(hit->globalPositionError().cxx());
4011  pix_onTrk_xy[clusterKey].push_back(hit->globalPositionError().cyx());
4012  pix_onTrk_yy[clusterKey].push_back(hit->globalPositionError().cyy());
4013  pix_onTrk_yz[clusterKey].push_back(hit->globalPositionError().czy());
4014  pix_onTrk_zz[clusterKey].push_back(hit->globalPositionError().czz());
4015  pix_onTrk_zx[clusterKey].push_back(hit->globalPositionError().czx());
4016  } else if (clusterRef.isPhase2()) {
4017  ph2_trkIdx[clusterKey].push_back(iTrack);
4018  ph2_onTrk_x[clusterKey].push_back(hit->globalPosition().x());
4019  ph2_onTrk_y[clusterKey].push_back(hit->globalPosition().y());
4020  ph2_onTrk_z[clusterKey].push_back(hit->globalPosition().z());
4021  ph2_onTrk_xx[clusterKey].push_back(hit->globalPositionError().cxx());
4022  ph2_onTrk_xy[clusterKey].push_back(hit->globalPositionError().cyx());
4023  ph2_onTrk_yy[clusterKey].push_back(hit->globalPositionError().cyy());
4024  ph2_onTrk_yz[clusterKey].push_back(hit->globalPositionError().czy());
4025  ph2_onTrk_zz[clusterKey].push_back(hit->globalPositionError().czz());
4026  ph2_onTrk_zx[clusterKey].push_back(hit->globalPositionError().czx());
4027  } else {
4028  str_trkIdx[clusterKey].push_back(iTrack);
4029  str_onTrk_x[clusterKey].push_back(hit->globalPosition().x());
4030  str_onTrk_y[clusterKey].push_back(hit->globalPosition().y());
4031  str_onTrk_z[clusterKey].push_back(hit->globalPosition().z());
4032  str_onTrk_xx[clusterKey].push_back(hit->globalPositionError().cxx());
4033  str_onTrk_xy[clusterKey].push_back(hit->globalPositionError().cyx());
4034  str_onTrk_yy[clusterKey].push_back(hit->globalPositionError().cyy());
4035  str_onTrk_yz[clusterKey].push_back(hit->globalPositionError().czy());
4036  str_onTrk_zz[clusterKey].push_back(hit->globalPositionError().czz());
4037  str_onTrk_zx[clusterKey].push_back(hit->globalPositionError().czx());
4038  }
4039  }
4040 
4041  hitIdx.push_back(clusterKey);
4042  if (clusterRef.isPixel()) {
4043  hitType.push_back(static_cast<int>(HitType::Pixel));
4044  } else if (clusterRef.isPhase2()) {
4045  hitType.push_back(static_cast<int>(HitType::Phase2OT));
4046  } else {
4047  hitType.push_back(static_cast<int>(HitType::Strip));
4048  }
4049  } else {
4050  LogTrace("TrackingNtuple") << " - invalid hit";
4051 
4052  hitIdx.push_back(inv_isBarrel.size());
4053  hitType.push_back(static_cast<int>(HitType::Invalid));
4054 
4055  inv_isBarrel.push_back(hitId.subdetId() == 1);
4056  if (includeStripHits_)
4057  inv_detId.push_back(tracker, tTopo, hitId);
4058  else
4059  inv_detId_phase2.push_back(tracker, tTopo, hitId);
4060  inv_type.push_back(hit->getType());
4061  }
4062  }
4063 
4064  trk_hitIdx.push_back(hitIdx);
4065  trk_hitType.push_back(hitType);
4066  }
4067 }
std::vector< int > trk_bestSimTrkIdx
std::vector< std::vector< float > > ph2_onTrk_yz
std::vector< float > trk_nChi2_1Dmod
std::vector< float > trk_dxyPV
std::vector< std::vector< float > > trk_simTrkNChi2
std::vector< float > trk_dzClosestPV
std::vector< std::vector< float > > pix_onTrk_x
std::vector< float > trk_phi
std::vector< unsigned int > trk_nOuterLost
std::vector< short > trk_isTrue
std::vector< float > trk_inner_pz
std::vector< int > trk_vtxIdx
std::vector< std::vector< int > > str_trkIdx
std::vector< float > trk_outer_py
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::vector< float > trk_eta
std::vector< std::vector< float > > ph2_onTrk_y
std::vector< std::vector< float > > str_onTrk_yz
std::vector< int > trk_bestFromFirstHitSimTrkIdx
std::vector< float > trk_cotTheta
std::vector< float > trk_bestSimTrkNChi2
std::vector< float > trk_px
std::vector< unsigned short > inv_type
std::vector< std::vector< float > > ph2_onTrk_zx
std::vector< std::vector< int > > trk_simTrkIdx
std::vector< float > trk_dzPV
std::vector< float > trk_dxyErr
std::vector< float > trk_pt
std::vector< float > trk_inner_py
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
std::vector< float > trk_outer_px
std::vector< std::vector< int > > trk_hitType
std::vector< unsigned int > trk_nCluster
std::vector< std::vector< float > > pix_onTrk_z
std::vector< std::vector< int > > ph2_trkIdx
std::vector< OmniClusterRef > hitsToClusterRefs(iter begin, iter end)
std::vector< float > trk_inner_pt
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
std::vector< std::vector< float > > str_onTrk_xx
std::vector< unsigned short > trk_stopReason
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
std::vector< float > trk_refpoint_x
std::vector< std::vector< float > > trk_mvas
key_type key() const
Accessor for product key.
Definition: Ref.h:250
const_iterator find(const key_type &k) const
find element with specified reference key
unsigned int layer(const DetId &id) const
#define LogTrace(id)
const_iterator end() const
last iterator over the map (read only)
std::vector< short > inv_isBarrel
std::vector< float > trk_bestSimTrkShareFracSimDenom
std::vector< float > trk_bestFromFirstHitSimTrkNChi2
std::vector< std::vector< float > > trk_simTrkShareFrac
ClusterPixelRef cluster_pixel() const
std::vector< float > trk_refpoint_y
std::vector< unsigned int > trk_nLostLay
std::vector< unsigned int > trk_nStrip
std::vector< unsigned int > trk_nPixel
std::vector< float > trk_pz
std::vector< std::vector< float > > pix_onTrk_yz
std::vector< float > trk_dzErr
std::vector< float > trk_lambdaErr
std::vector< std::vector< float > > pix_onTrk_zz
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< std::vector< float > > str_onTrk_z
std::vector< unsigned int > trk_algo
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< unsigned int > trk_originalAlgo
std::vector< unsigned int > trk_nInnerLost
std::vector< std::vector< float > > pix_onTrk_zx
std::vector< float > trk_refpoint_z
std::vector< unsigned int > trk_nInactive
std::vector< unsigned int > trk_nOuterInactive
std::vector< int > trk_seedIdx
std::vector< std::vector< int > > pix_trkIdx
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< std::vector< float > > ph2_onTrk_x
DetIdAllPhase2 inv_detId_phase2
std::vector< std::vector< float > > str_onTrk_y
std::vector< std::vector< float > > pix_onTrk_xx
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
std::vector< unsigned int > trk_n3DLay
std::vector< float > trk_outer_pt
const bool includeSeeds_
const bool includeTrackingParticles_
std::vector< float > trk_dz
std::vector< float > trk_ptErr
std::vector< unsigned int > trk_nStripLay
std::vector< float > trk_phiErr
std::vector< float > trk_lambda
std::vector< std::vector< float > > str_onTrk_zx
std::string algoName() const
Definition: TrackBase.h:550
#define M_PI
std::vector< std::vector< float > > str_onTrk_x
unsigned int id
Definition: DetId.h:17
std::vector< float > trk_py
std::vector< float > trk_nChi2
std::vector< std::vector< unsigned short > > trk_qualityMasks
const bool includeMVA_
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
virtual OmniClusterRef const & firstClusterRef() const =0
std::vector< short > trk_isHP
std::vector< unsigned int > trk_nInnerInactive
std::vector< std::vector< int > > trk_hitIdx
std::vector< int > trk_q
std::vector< std::vector< float > > pix_onTrk_xy
const bool includeAllHits_
std::vector< std::vector< float > > ph2_onTrk_xy
Structure Point Contains parameters of Gaussian fits to DMRs.
std::vector< float > trk_outer_pz
std::vector< std::vector< float > > ph2_onTrk_z
Point getBestVertex(reco::Track const &trk, reco::VertexCollection const &vertices, const size_t minNtracks=2)
Definition: getBestVertex.h:8
std::vector< float > trk_dxyClosestPV
std::vector< float > trk_ndof
std::vector< std::vector< float > > pix_onTrk_yy
std::vector< unsigned int > trk_nPixelLay
std::vector< std::vector< float > > str_onTrk_xy
std::vector< float > trk_bestSimTrkShareFrac
std::vector< std::vector< float > > pix_onTrk_y
std::vector< int > see_trkIdx
TupleMultiplicity< TrackerTraits > const *__restrict__ uint32_t nHits
std::vector< std::vector< float > > ph2_onTrk_zz
std::vector< float > trk_dxy
double trackAssociationChi2(const reco::TrackBase::ParameterVector &rParameters, const reco::TrackBase::CovarianceMatrix &recoTrackCovMatrix, const reco::TrackBase::ParameterVector &sParameters)
basic method where chi2 is computed
std::vector< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
std::vector< std::vector< float > > str_onTrk_zz
std::vector< std::vector< float > > str_onTrk_yy
std::vector< unsigned int > trk_nValid
std::vector< unsigned int > trk_nLost
std::vector< float > trk_inner_px
std::vector< std::vector< float > > ph2_onTrk_yy
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
std::vector< std::vector< float > > ph2_onTrk_xx

◆ fillVertices()

void TrackingNtuple::fillVertices ( const reco::VertexCollection vertices,
const edm::RefToBaseVector< reco::Track > &  tracks 
)
private

Definition at line 4486 of file TrackingNtuple.cc.

References Exception, findQualityFiles::size, pwdgSkimBPark_cfi::tracks, trk_vtxIdx, bphysicsOniaDQM_cfi::vertex, AlignmentTracksFromVertexSelector_cfi::vertices, vtx_chi2, vtx_fake, vtx_ndof, vtx_trkIdx, vtx_valid, vtx_x, vtx_xErr, vtx_y, vtx_yErr, vtx_z, and vtx_zErr.

Referenced by analyze().

4487  {
4488  for (size_t iVertex = 0, size = vertices.size(); iVertex < size; ++iVertex) {
4489  const reco::Vertex& vertex = vertices[iVertex];
4490  vtx_x.push_back(vertex.x());
4491  vtx_y.push_back(vertex.y());
4492  vtx_z.push_back(vertex.z());
4493  vtx_xErr.push_back(vertex.xError());
4494  vtx_yErr.push_back(vertex.yError());
4495  vtx_zErr.push_back(vertex.zError());
4496  vtx_chi2.push_back(vertex.chi2());
4497  vtx_ndof.push_back(vertex.ndof());
4498  vtx_fake.push_back(vertex.isFake());
4499  vtx_valid.push_back(vertex.isValid());
4500 
4501  std::vector<int> trkIdx;
4502  for (auto iTrack = vertex.tracks_begin(); iTrack != vertex.tracks_end(); ++iTrack) {
4503  // Ignore link if vertex was fit from a track collection different from the input
4504  if (iTrack->id() != tracks.id())
4505  continue;
4506 
4507  trkIdx.push_back(iTrack->key());
4508 
4509  if (trk_vtxIdx[iTrack->key()] != -1) {
4510  throw cms::Exception("LogicError") << "Vertex index has already been set for track " << iTrack->key() << " to "
4511  << trk_vtxIdx[iTrack->key()] << "; was trying to set it to " << iVertex;
4512  }
4513  trk_vtxIdx[iTrack->key()] = iVertex;
4514  }
4515  vtx_trkIdx.push_back(trkIdx);
4516  }
4517 }
size
Write out results.
std::vector< short > vtx_fake
std::vector< int > trk_vtxIdx
std::vector< float > vtx_y
std::vector< float > vtx_yErr
std::vector< float > vtx_ndof
std::vector< float > vtx_z
std::vector< float > vtx_xErr
std::vector< short > vtx_valid
std::vector< std::vector< int > > vtx_trkIdx
std::vector< float > vtx_x
std::vector< float > vtx_zErr
std::vector< float > vtx_chi2

◆ matchCluster()

template<typename SimLink >
TrackingNtuple::SimHitData TrackingNtuple::matchCluster ( const OmniClusterRef cluster,
DetId  hitId,
int  clusterKey,
const TrackingRecHit hit,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< SimLink > &  digiSimLinks,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
HitType  hitType 
)
private

Definition at line 2706 of file TrackingNtuple.cc.

References funct::abs(), simKBmtfDigis_cfi::bx, TTClusterAssociation_cfi::digiSimLinks, PVValHelper::dx, PVValHelper::dy, ClusterTPAssociation::equal_range(), Exception, newFWLiteAna::found, edm::Ref< C, T, F >::id(), ITPileup, keepEleSimHits_, edm::Ref< C, T, F >::key(), SiStripPI::min, HLT_2023v12_cff::minSignificance, Noise, OOTPileup, Phase2OT, OmniClusterRef::phase2OTCluster(), FastTimerService_cff::range, DetId::rawId(), runTheMatrix::ret, Signal, simhit_hitIdx, simhit_hitType, simHitBySignificance_, SimHitTPAssociationProducer::simHitTPAssociationListGreater(), fftjetcommon_cfi::sx, fftjetcommon_cfi::sy, hit::x, and hit::y.

Referenced by fillPhase2OTHits(), fillPixelHits(), and fillStripRphiStereoHits().

2716  {
2717  SimHitData ret;
2718 
2719  std::map<unsigned int, double> simTrackIdToChargeFraction;
2720  if (hitType == HitType::Phase2OT)
2721  simTrackIdToChargeFraction = chargeFraction(cluster.phase2OTCluster(), hitId, digiSimLinks);
2722  else
2723  simTrackIdToChargeFraction = chargeFraction(GetCluster<SimLink>::call(cluster), hitId, digiSimLinks);
2724 
2725  float h_x = 0, h_y = 0;
2726  float h_xx = 0, h_xy = 0, h_yy = 0;
2727  if (simHitBySignificance_) {
2728  h_x = hit.localPosition().x();
2729  h_y = hit.localPosition().y();
2730  h_xx = hit.localPositionError().xx();
2731  h_xy = hit.localPositionError().xy();
2732  h_yy = hit.localPositionError().yy();
2733  }
2734 
2735  ret.type = HitSimType::Noise;
2736  auto range = clusterToTPMap.equal_range(cluster);
2737  if (range.first != range.second) {
2738  for (auto ip = range.first; ip != range.second; ++ip) {
2739  const TrackingParticleRef& trackingParticle = ip->second;
2740 
2741  // Find out if the cluster is from signal/ITPU/OOTPU
2742  const auto event = trackingParticle->eventId().event();
2743  const auto bx = trackingParticle->eventId().bunchCrossing();
2745  if (bx == 0) {
2746  type = (event == 0 ? HitSimType::Signal : HitSimType::ITPileup);
2747  } else
2749  ret.type = static_cast<HitSimType>(std::min(static_cast<int>(ret.type), static_cast<int>(type)));
2750 
2751  // Limit to only input TrackingParticles (usually signal+ITPU)
2752  auto tpIndex = tpKeyToIndex.find(trackingParticle.key());
2753  if (tpIndex == tpKeyToIndex.end())
2754  continue;
2755 
2756  //now get the corresponding sim hit
2757  std::pair<TrackingParticleRef, TrackPSimHitRef> simHitTPpairWithDummyTP(trackingParticle, TrackPSimHitRef());
2758  //SimHit is dummy: for simHitTPAssociationListGreater sorting only the TP is needed
2759  auto range = std::equal_range(simHitsTPAssoc.begin(),
2760  simHitsTPAssoc.end(),
2761  simHitTPpairWithDummyTP,
2763  bool foundSimHit = false;
2764  bool foundElectron = false;
2765  int foundElectrons = 0;
2766  int foundNonElectrons = 0;
2767  for (auto ip = range.first; ip != range.second; ++ip) {
2768  TrackPSimHitRef TPhit = ip->second;
2769  DetId dId = DetId(TPhit->detUnitId());
2770  if (dId.rawId() == hitId.rawId()) {
2771  // skip electron SimHits for non-electron TPs also here
2772  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2773  foundElectrons++;
2774  } else {
2775  foundNonElectrons++;
2776  }
2777  }
2778  }
2779 
2780  float minSignificance = 1e12;
2781  if (simHitBySignificance_) { //save the best matching hit
2782 
2783  int simHitKey = -1;
2784  edm::ProductID simHitID;
2785  for (auto ip = range.first; ip != range.second; ++ip) {
2786  TrackPSimHitRef TPhit = ip->second;
2787  DetId dId = DetId(TPhit->detUnitId());
2788  if (dId.rawId() == hitId.rawId()) {
2789  // skip electron SimHits for non-electron TPs also here
2790  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2791  foundElectron = true;
2792  if (!keepEleSimHits_)
2793  continue;
2794  }
2795 
2796  float sx = TPhit->localPosition().x();
2797  float sy = TPhit->localPosition().y();
2798  float dx = sx - h_x;
2799  float dy = sy - h_y;
2800  float sig = (dx * dx * h_yy - 2 * dx * dy * h_xy + dy * dy * h_xx) / (h_xx * h_yy - h_xy * h_xy);
2801 
2802  if (sig < minSignificance) {
2803  minSignificance = sig;
2804  foundSimHit = true;
2805  simHitKey = TPhit.key();
2806  simHitID = TPhit.id();
2807  }
2808  }
2809  } //loop over matching hits
2810 
2811  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2812  ret.matchingSimHit.push_back(simHitIndex);
2813 
2814  double chargeFraction = 0.;
2815  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2816  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2817  if (found != simTrackIdToChargeFraction.end()) {
2818  chargeFraction += found->second;
2819  }
2820  }
2821  ret.xySignificance.push_back(minSignificance);
2822  ret.chargeFraction.push_back(chargeFraction);
2823 
2824  // only for debug prints
2825  ret.bunchCrossing.push_back(bx);
2826  ret.event.push_back(event);
2827 
2828  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2829  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2830 
2831  } else { //save all matching hits
2832  for (auto ip = range.first; ip != range.second; ++ip) {
2833  TrackPSimHitRef TPhit = ip->second;
2834  DetId dId = DetId(TPhit->detUnitId());
2835  if (dId.rawId() == hitId.rawId()) {
2836  // skip electron SimHits for non-electron TPs also here
2837  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2838  foundElectron = true;
2839  if (!keepEleSimHits_)
2840  continue;
2841  if (foundNonElectrons > 0)
2842  continue; //prioritize: skip electrons if non-electrons are present
2843  }
2844 
2845  foundSimHit = true;
2846  auto simHitKey = TPhit.key();
2847  auto simHitID = TPhit.id();
2848 
2849  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2850  ret.matchingSimHit.push_back(simHitIndex);
2851 
2852  double chargeFraction = 0.;
2853  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2854  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2855  if (found != simTrackIdToChargeFraction.end()) {
2856  chargeFraction += found->second;
2857  }
2858  }
2859  ret.xySignificance.push_back(minSignificance);
2860  ret.chargeFraction.push_back(chargeFraction);
2861 
2862  // only for debug prints
2863  ret.bunchCrossing.push_back(bx);
2864  ret.event.push_back(event);
2865 
2866  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2867  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2868  }
2869  }
2870  } //if/else simHitBySignificance_
2871  if (!foundSimHit) {
2872  // In case we didn't find a simhit because of filtered-out
2873  // electron SimHit, just ignore the missing SimHit.
2874  if (foundElectron && !keepEleSimHits_)
2875  continue;
2876 
2877  auto ex = cms::Exception("LogicError")
2878  << "Did not find SimHit for reco hit DetId " << hitId.rawId() << " for TP " << trackingParticle.key()
2879  << " bx:event " << bx << ":" << event << " PDGid " << trackingParticle->pdgId() << " q "
2880  << trackingParticle->charge() << " p4 " << trackingParticle->p4() << " nG4 "
2881  << trackingParticle->g4Tracks().size() << ".\nFound SimHits from detectors ";
2882  for (auto ip = range.first; ip != range.second; ++ip) {
2883  TrackPSimHitRef TPhit = ip->second;
2884  DetId dId = DetId(TPhit->detUnitId());
2885  ex << dId.rawId() << " ";
2886  }
2887  if (trackingParticle->eventId().event() != 0) {
2888  ex << "\nSince this is a TrackingParticle from pileup, check that you're running the pileup mixing in "
2889  "playback mode.";
2890  }
2891  throw ex;
2892  }
2893  }
2894  }
2895 
2896  return ret;
2897 }
const bool simHitBySignificance_
ProductID id() const
Accessor for product ID.
Definition: Ref.h:244
std::vector< std::vector< int > > simhit_hitIdx
static bool simHitTPAssociationListGreater(SimHitTPPair i, SimHitTPPair j)
range equal_range(const OmniClusterRef &key) const
ret
prodAgent to be discontinued
key_type key() const
Accessor for product key.
Definition: Ref.h:250
std::vector< std::vector< int > > simhit_hitType
Phase2TrackerCluster1D const & phase2OTCluster() const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Definition: DetId.h:17
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::Ref< edm::PSimHitContainer > TrackPSimHitRef
const bool keepEleSimHits_
Definition: event.py:1

◆ tpHitIndexListLess()

static bool TrackingNtuple::tpHitIndexListLess ( const TPHitIndex i,
const TPHitIndex j 
)
inlinestaticprivate

Definition at line 504 of file TrackingNtuple.cc.

References mps_fire::i, and dqmiolumiharvest::j.

Referenced by fillTrackingParticles().

504 { return (i.tpKey < j.tpKey); }

◆ tpHitIndexListLessSort()

static bool TrackingNtuple::tpHitIndexListLessSort ( const TPHitIndex i,
const TPHitIndex j 
)
inlinestaticprivate

Definition at line 505 of file TrackingNtuple.cc.

References mps_fire::i, edm::isNotFinite(), and dqmiolumiharvest::j.

Referenced by analyze().

505  {
506  if (i.tpKey == j.tpKey) {
507  if (edm::isNotFinite(i.tof) && edm::isNotFinite(j.tof)) {
508  return i.detId < j.detId;
509  }
510  return i.tof < j.tof; // works as intended if either one is NaN
511  }
512  return i.tpKey < j.tpKey;
513  }
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9

Member Data Documentation

◆ addSeedCurvCov_

const bool TrackingNtuple::addSeedCurvCov_
private

Definition at line 688 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ beamSpotToken_

edm::EDGetTokenT<reco::BeamSpot> TrackingNtuple::beamSpotToken_
private

Definition at line 670 of file TrackingNtuple.cc.

Referenced by analyze().

◆ bsp_sigmax

float TrackingNtuple::bsp_sigmax
private

Definition at line 1322 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ bsp_sigmay

float TrackingNtuple::bsp_sigmay
private

Definition at line 1323 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ bsp_sigmaz

float TrackingNtuple::bsp_sigmaz
private

Definition at line 1324 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ bsp_x

float TrackingNtuple::bsp_x
private

Definition at line 1319 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ bsp_y

float TrackingNtuple::bsp_y
private

Definition at line 1320 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ bsp_z

float TrackingNtuple::bsp_z
private

Definition at line 1321 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillBeamSpot(), and TrackingNtuple().

◆ builderName_

std::string TrackingNtuple::builderName_
private

Definition at line 685 of file TrackingNtuple.cc.

◆ candidateTokens_

std::vector<edm::EDGetTokenT<TrackCandidateCollection> > TrackingNtuple::candidateTokens_
private

Definition at line 657 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ clusterTPMapToken_

edm::EDGetTokenT<ClusterTPAssociation> TrackingNtuple::clusterTPMapToken_
private

Definition at line 663 of file TrackingNtuple.cc.

Referenced by analyze().

◆ ev_event

edm::EventNumber_t TrackingNtuple::ev_event
private

Definition at line 985 of file TrackingNtuple.cc.

Referenced by analyze(), clearVariables(), and TrackingNtuple().

◆ ev_lumi

edm::LuminosityBlockNumber_t TrackingNtuple::ev_lumi
private

Definition at line 984 of file TrackingNtuple.cc.

Referenced by analyze(), clearVariables(), and TrackingNtuple().

◆ ev_run

edm::RunNumber_t TrackingNtuple::ev_run
private

Definition at line 983 of file TrackingNtuple.cc.

Referenced by analyze(), clearVariables(), and TrackingNtuple().

◆ glu_bbxi

std::vector<float> TrackingNtuple::glu_bbxi
private

Definition at line 1251 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_chargePerCM

std::vector<float> TrackingNtuple::glu_chargePerCM
private

Definition at line 1252 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_clustSizeMono

std::vector<int> TrackingNtuple::glu_clustSizeMono
private

Definition at line 1253 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_clustSizeStereo

std::vector<int> TrackingNtuple::glu_clustSizeStereo
private

Definition at line 1254 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_detId

DetIdStrip TrackingNtuple::glu_detId
private

Definition at line 1236 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_isBarrel

std::vector<short> TrackingNtuple::glu_isBarrel
private

Definition at line 1235 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_monoIdx

std::vector<int> TrackingNtuple::glu_monoIdx
private

Definition at line 1237 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_radL

std::vector<float> TrackingNtuple::glu_radL
private

Definition at line 1250 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_seeIdx

std::vector<std::vector<int> > TrackingNtuple::glu_seeIdx
private

Definition at line 1239 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), fillSeeds(), and TrackingNtuple().

◆ glu_stereoIdx

std::vector<int> TrackingNtuple::glu_stereoIdx
private

Definition at line 1238 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_usedMaskMono

std::vector<uint64_t> TrackingNtuple::glu_usedMaskMono
private

Definition at line 1255 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_usedMaskStereo

std::vector<uint64_t> TrackingNtuple::glu_usedMaskStereo
private

Definition at line 1256 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_x

std::vector<float> TrackingNtuple::glu_x
private

Definition at line 1240 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_xx

std::vector<float> TrackingNtuple::glu_xx
private

Definition at line 1243 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_xy

std::vector<float> TrackingNtuple::glu_xy
private

Definition at line 1244 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_y

std::vector<float> TrackingNtuple::glu_y
private

Definition at line 1241 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_yy

std::vector<float> TrackingNtuple::glu_yy
private

Definition at line 1245 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_yz

std::vector<float> TrackingNtuple::glu_yz
private

Definition at line 1246 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_z

std::vector<float> TrackingNtuple::glu_z
private

Definition at line 1242 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_zx

std::vector<float> TrackingNtuple::glu_zx
private

Definition at line 1248 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ glu_zz

std::vector<float> TrackingNtuple::glu_zz
private

Definition at line 1247 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), clearVariables(), and TrackingNtuple().

◆ includeAllHits_

const bool TrackingNtuple::includeAllHits_
private

Definition at line 689 of file TrackingNtuple.cc.

Referenced by analyze(), fillCandidates(), fillSeeds(), fillTracks(), and TrackingNtuple().

◆ includeMVA_

const bool TrackingNtuple::includeMVA_
private

Definition at line 691 of file TrackingNtuple.cc.

Referenced by analyze(), fillTracks(), and TrackingNtuple().

◆ includeOnTrackHitData_

const bool TrackingNtuple::includeOnTrackHitData_
private

Definition at line 690 of file TrackingNtuple.cc.

Referenced by TrackingNtuple().

◆ includeOOT_

const bool TrackingNtuple::includeOOT_
private

Definition at line 693 of file TrackingNtuple.cc.

Referenced by analyze().

◆ includePhase2OTHits_

bool TrackingNtuple::includePhase2OTHits_
private

Definition at line 669 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ includeSeeds_

const bool TrackingNtuple::includeSeeds_
private

Definition at line 686 of file TrackingNtuple.cc.

Referenced by analyze(), fillCandidates(), fillTracks(), and TrackingNtuple().

◆ includeStripHits_

bool TrackingNtuple::includeStripHits_
private

◆ includeTrackCandidates_

const bool TrackingNtuple::includeTrackCandidates_
private

Definition at line 687 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ includeTrackingParticles_

const bool TrackingNtuple::includeTrackingParticles_
private

◆ inv_detId

DetIdAll TrackingNtuple::inv_detId
private

Definition at line 1295 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ inv_detId_phase2

DetIdAllPhase2 TrackingNtuple::inv_detId_phase2
private

Definition at line 1296 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ inv_isBarrel

std::vector<short> TrackingNtuple::inv_isBarrel
private

Definition at line 1294 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ inv_type

std::vector<unsigned short> TrackingNtuple::inv_type
private

Definition at line 1297 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ keepEleSimHits_

const bool TrackingNtuple::keepEleSimHits_
private

Definition at line 694 of file TrackingNtuple.cc.

Referenced by fillSimHits(), and matchCluster().

◆ mfToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TrackingNtuple::mfToken_
private

Definition at line 650 of file TrackingNtuple.cc.

Referenced by analyze().

◆ mvaQualityCollectionTokens_

std::vector<std::tuple<edm::EDGetTokenT<MVACollection>, edm::EDGetTokenT<QualityMaskCollection> > > TrackingNtuple::mvaQualityCollectionTokens_
private

Definition at line 660 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ parametersDefiner_

ParametersDefinerForTP TrackingNtuple::parametersDefiner_
private

Definition at line 699 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ ph2_bbxi

std::vector<float> TrackingNtuple::ph2_bbxi
private

Definition at line 1289 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_detId

DetIdPhase2OT TrackingNtuple::ph2_detId
private

Definition at line 1261 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_isBarrel

std::vector<short> TrackingNtuple::ph2_isBarrel
private

Definition at line 1260 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_onTrk_x

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_x
private

Definition at line 1263 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_xx

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_xx
private

Definition at line 1266 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_xy

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_xy
private

Definition at line 1267 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_y

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_y
private

Definition at line 1264 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_yy

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_yy
private

Definition at line 1268 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_yz

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_yz
private

Definition at line 1269 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_z

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_z
private

Definition at line 1265 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_zx

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_zx
private

Definition at line 1271 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_onTrk_zz

std::vector<std::vector<float> > TrackingNtuple::ph2_onTrk_zz
private

Definition at line 1270 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_radL

std::vector<float> TrackingNtuple::ph2_radL
private

Definition at line 1288 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_seeIdx

std::vector<std::vector<int> > TrackingNtuple::ph2_seeIdx
private

Definition at line 1273 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillSeeds(), and TrackingNtuple().

◆ ph2_simHitIdx

std::vector<std::vector<int> > TrackingNtuple::ph2_simHitIdx
private

Definition at line 1274 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_simType

std::vector<unsigned short> TrackingNtuple::ph2_simType
private

Definition at line 1277 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_tcandIdx

std::vector<std::vector<int> > TrackingNtuple::ph2_tcandIdx
private

◆ ph2_trkIdx

std::vector<std::vector<int> > TrackingNtuple::ph2_trkIdx
private

Definition at line 1262 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), fillTracks(), and TrackingNtuple().

◆ ph2_x

std::vector<float> TrackingNtuple::ph2_x
private

Definition at line 1278 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_xx

std::vector<float> TrackingNtuple::ph2_xx
private

Definition at line 1281 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_xy

std::vector<float> TrackingNtuple::ph2_xy
private

Definition at line 1282 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_xySignificance

std::vector<std::vector<float> > TrackingNtuple::ph2_xySignificance
private

Definition at line 1275 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_y

std::vector<float> TrackingNtuple::ph2_y
private

Definition at line 1279 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_yy

std::vector<float> TrackingNtuple::ph2_yy
private

Definition at line 1283 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_yz

std::vector<float> TrackingNtuple::ph2_yz
private

Definition at line 1284 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_z

std::vector<float> TrackingNtuple::ph2_z
private

Definition at line 1280 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_zx

std::vector<float> TrackingNtuple::ph2_zx
private

Definition at line 1286 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ ph2_zz

std::vector<float> TrackingNtuple::ph2_zz
private

Definition at line 1285 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPhase2OTHits(), and TrackingNtuple().

◆ phase2OTRecHitToken_

edm::EDGetTokenT<Phase2TrackerRecHit1DCollectionNew> TrackingNtuple::phase2OTRecHitToken_
private

Definition at line 675 of file TrackingNtuple.cc.

Referenced by fillPhase2OTHits().

◆ pix_bbxi

std::vector<float> TrackingNtuple::pix_bbxi
private

Definition at line 1192 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_chargeFraction

std::vector<std::vector<float> > TrackingNtuple::pix_chargeFraction
private

Definition at line 1179 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_clustSizeCol

std::vector<int> TrackingNtuple::pix_clustSizeCol
private

Definition at line 1193 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_clustSizeRow

std::vector<int> TrackingNtuple::pix_clustSizeRow
private

Definition at line 1194 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_detId

DetIdPixel TrackingNtuple::pix_detId
private

Definition at line 1164 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_isBarrel

std::vector<short> TrackingNtuple::pix_isBarrel
private

Definition at line 1163 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_onTrk_x

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_x
private

Definition at line 1166 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_xx

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_xx
private

Definition at line 1169 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_xy

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_xy
private

Definition at line 1170 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_y

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_y
private

Definition at line 1167 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_yy

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_yy
private

Definition at line 1171 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_yz

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_yz
private

Definition at line 1172 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_z

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_z
private

Definition at line 1168 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_zx

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_zx
private

Definition at line 1174 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_onTrk_zz

std::vector<std::vector<float> > TrackingNtuple::pix_onTrk_zz
private

Definition at line 1173 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_radL

std::vector<float> TrackingNtuple::pix_radL
private

Definition at line 1191 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_seeIdx

std::vector<std::vector<int> > TrackingNtuple::pix_seeIdx
private

Definition at line 1176 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillSeeds(), and TrackingNtuple().

◆ pix_simHitIdx

std::vector<std::vector<int> > TrackingNtuple::pix_simHitIdx
private

Definition at line 1177 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_simType

std::vector<unsigned short> TrackingNtuple::pix_simType
private

Definition at line 1180 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_tcandIdx

std::vector<std::vector<int> > TrackingNtuple::pix_tcandIdx
private

Definition at line 1175 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), fillPixelHits(), and TrackingNtuple().

◆ pix_trkIdx

std::vector<std::vector<int> > TrackingNtuple::pix_trkIdx
private

Definition at line 1165 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), fillTracks(), and TrackingNtuple().

◆ pix_usedMask

std::vector<uint64_t> TrackingNtuple::pix_usedMask
private

Definition at line 1195 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_x

std::vector<float> TrackingNtuple::pix_x
private

Definition at line 1181 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_xx

std::vector<float> TrackingNtuple::pix_xx
private

Definition at line 1184 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_xy

std::vector<float> TrackingNtuple::pix_xy
private

Definition at line 1185 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_xySignificance

std::vector<std::vector<float> > TrackingNtuple::pix_xySignificance
private

Definition at line 1178 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_y

std::vector<float> TrackingNtuple::pix_y
private

Definition at line 1182 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_yy

std::vector<float> TrackingNtuple::pix_yy
private

Definition at line 1186 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_yz

std::vector<float> TrackingNtuple::pix_yz
private

Definition at line 1187 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_z

std::vector<float> TrackingNtuple::pix_z
private

Definition at line 1183 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_zx

std::vector<float> TrackingNtuple::pix_zx
private

Definition at line 1189 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pix_zz

std::vector<float> TrackingNtuple::pix_zz
private

Definition at line 1188 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillPixelHits(), and TrackingNtuple().

◆ pixelRecHitToken_

edm::EDGetTokenT<SiPixelRecHitCollection> TrackingNtuple::pixelRecHitToken_
private

Definition at line 671 of file TrackingNtuple.cc.

Referenced by fillPixelHits().

◆ pixelSimLinkToken_

edm::EDGetTokenT<edm::DetSetVector<PixelDigiSimLink> > TrackingNtuple::pixelSimLinkToken_
private

Definition at line 666 of file TrackingNtuple.cc.

Referenced by analyze().

◆ pixelUseMaskTokens_

std::vector<std::pair<unsigned int, edm::EDGetTokenT<PixelMaskContainer> > > TrackingNtuple::pixelUseMaskTokens_
private

Definition at line 682 of file TrackingNtuple.cc.

Referenced by fillPixelHits(), and TrackingNtuple().

◆ saveSimHitsP3_

const bool TrackingNtuple::saveSimHitsP3_
private

Definition at line 695 of file TrackingNtuple.cc.

Referenced by fillSimHits(), and TrackingNtuple().

◆ see_algo

std::vector<unsigned int> TrackingNtuple::see_algo
private

Definition at line 1363 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_bestFromFirstHitSimTrkIdx

std::vector<int> TrackingNtuple::see_bestFromFirstHitSimTrkIdx
private

Definition at line 1371 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_bestFromFirstHitSimTrkShareFrac

std::vector<float> TrackingNtuple::see_bestFromFirstHitSimTrkShareFrac
private

Definition at line 1372 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_bestSimTrkIdx

std::vector<int> TrackingNtuple::see_bestSimTrkIdx
private

Definition at line 1369 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_bestSimTrkShareFrac

std::vector<float> TrackingNtuple::see_bestSimTrkShareFrac
private

Definition at line 1370 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_chi2

std::vector<float> TrackingNtuple::see_chi2
private

Definition at line 1342 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_dxy

std::vector<float> TrackingNtuple::see_dxy
private

Definition at line 1335 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_dxyErr

std::vector<float> TrackingNtuple::see_dxyErr
private

Definition at line 1340 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_dz

std::vector<float> TrackingNtuple::see_dz
private

Definition at line 1336 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_dzErr

std::vector<float> TrackingNtuple::see_dzErr
private

Definition at line 1341 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_eta

std::vector<float> TrackingNtuple::see_eta
private

Definition at line 1333 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_etaErr

std::vector<float> TrackingNtuple::see_etaErr
private

Definition at line 1338 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_fitok

std::vector<short> TrackingNtuple::see_fitok
private

Definition at line 1328 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_hitIdx

std::vector<std::vector<int> > TrackingNtuple::see_hitIdx
private

Definition at line 1375 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_hitType

std::vector<std::vector<int> > TrackingNtuple::see_hitType
private

Definition at line 1376 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_isTrue

std::vector<short> TrackingNtuple::see_isTrue
private

Definition at line 1368 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nCands

std::vector<unsigned short> TrackingNtuple::see_nCands
private

Definition at line 1365 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nCluster

std::vector<unsigned int> TrackingNtuple::see_nCluster
private

Definition at line 1362 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nGlued

std::vector<unsigned int> TrackingNtuple::see_nGlued
private

Definition at line 1359 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nPhase2OT

std::vector<unsigned int> TrackingNtuple::see_nPhase2OT
private

Definition at line 1361 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nPixel

std::vector<unsigned int> TrackingNtuple::see_nPixel
private

Definition at line 1358 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nStrip

std::vector<unsigned int> TrackingNtuple::see_nStrip
private

Definition at line 1360 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_nValid

std::vector<unsigned int> TrackingNtuple::see_nValid
private

Definition at line 1357 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_offset

std::vector<unsigned int> TrackingNtuple::see_offset
private

Definition at line 1378 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_phi

std::vector<float> TrackingNtuple::see_phi
private

Definition at line 1334 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_phiErr

std::vector<float> TrackingNtuple::see_phiErr
private

Definition at line 1339 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_pt

std::vector<float> TrackingNtuple::see_pt
private

Definition at line 1332 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_ptErr

std::vector<float> TrackingNtuple::see_ptErr
private

Definition at line 1337 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_px

std::vector<float> TrackingNtuple::see_px
private

Definition at line 1329 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_py

std::vector<float> TrackingNtuple::see_py
private

Definition at line 1330 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_pz

std::vector<float> TrackingNtuple::see_pz
private

Definition at line 1331 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_q

std::vector<int> TrackingNtuple::see_q
private

Definition at line 1356 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_simTrkIdx

std::vector<std::vector<int> > TrackingNtuple::see_simTrkIdx
private

Definition at line 1374 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_simTrkShareFrac

std::vector<std::vector<float> > TrackingNtuple::see_simTrkShareFrac
private

Definition at line 1373 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateCurvCov

std::vector<std::vector<float> > TrackingNtuple::see_stateCurvCov
private

Definition at line 1355 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_statePt

std::vector<float> TrackingNtuple::see_statePt
private

Definition at line 1343 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbPx

std::vector<float> TrackingNtuple::see_stateTrajGlbPx
private

Definition at line 1352 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbPy

std::vector<float> TrackingNtuple::see_stateTrajGlbPy
private

Definition at line 1353 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbPz

std::vector<float> TrackingNtuple::see_stateTrajGlbPz
private

Definition at line 1354 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbX

std::vector<float> TrackingNtuple::see_stateTrajGlbX
private

Definition at line 1349 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbY

std::vector<float> TrackingNtuple::see_stateTrajGlbY
private

Definition at line 1350 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajGlbZ

std::vector<float> TrackingNtuple::see_stateTrajGlbZ
private

Definition at line 1351 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajPx

std::vector<float> TrackingNtuple::see_stateTrajPx
private

Definition at line 1346 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajPy

std::vector<float> TrackingNtuple::see_stateTrajPy
private

Definition at line 1347 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajPz

std::vector<float> TrackingNtuple::see_stateTrajPz
private

Definition at line 1348 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajX

std::vector<float> TrackingNtuple::see_stateTrajX
private

Definition at line 1344 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stateTrajY

std::vector<float> TrackingNtuple::see_stateTrajY
private

Definition at line 1345 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_stopReason

std::vector<unsigned short> TrackingNtuple::see_stopReason
private

Definition at line 1364 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), and TrackingNtuple().

◆ see_tcandIdx

std::vector<int> TrackingNtuple::see_tcandIdx
private

Definition at line 1367 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), fillSeeds(), and TrackingNtuple().

◆ see_trkIdx

std::vector<int> TrackingNtuple::see_trkIdx
private

Definition at line 1366 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSeeds(), fillTracks(), and TrackingNtuple().

◆ seedStopInfoTokens_

std::vector<edm::EDGetTokenT<std::vector<SeedStopInfo> > > TrackingNtuple::seedStopInfoTokens_
private

Definition at line 655 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ seedTokens_

std::vector<edm::EDGetTokenT<edm::View<reco::Track> > > TrackingNtuple::seedTokens_
private

Definition at line 654 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ sim_bunchCrossing

std::vector<int> TrackingNtuple::sim_bunchCrossing
private

Definition at line 1124 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_decayVtxIdx

std::vector<std::vector<int> > TrackingNtuple::sim_decayVtxIdx
private

Definition at line 1158 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_eta

std::vector<float> TrackingNtuple::sim_eta
private

Definition at line 1132 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_event

std::vector<int> TrackingNtuple::sim_event
private

Definition at line 1123 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_genPdgIds

std::vector<std::vector<int> > TrackingNtuple::sim_genPdgIds
private

Definition at line 1126 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_isFromBHadron

std::vector<int> TrackingNtuple::sim_isFromBHadron
private

Definition at line 1127 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_n3DLay

std::vector<unsigned int> TrackingNtuple::sim_n3DLay
private

Definition at line 1148 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nLay

std::vector<unsigned int> TrackingNtuple::sim_nLay
private

Definition at line 1146 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nPixel

std::vector<unsigned int> TrackingNtuple::sim_nPixel
private

Definition at line 1144 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nPixelLay

std::vector<unsigned int> TrackingNtuple::sim_nPixelLay
private

Definition at line 1147 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nRecoClusters

std::vector<unsigned int> TrackingNtuple::sim_nRecoClusters
private

Definition at line 1152 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nStrip

std::vector<unsigned int> TrackingNtuple::sim_nStrip
private

Definition at line 1145 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nTrackerHits

std::vector<unsigned int> TrackingNtuple::sim_nTrackerHits
private

Definition at line 1150 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_nValid

std::vector<unsigned int> TrackingNtuple::sim_nValid
private

Definition at line 1143 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_parentVtxIdx

std::vector<int> TrackingNtuple::sim_parentVtxIdx
private

Definition at line 1157 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_cotTheta

std::vector<float> TrackingNtuple::sim_pca_cotTheta
private

Definition at line 1137 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_dxy

std::vector<float> TrackingNtuple::sim_pca_dxy
private

Definition at line 1139 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_dz

std::vector<float> TrackingNtuple::sim_pca_dz
private

Definition at line 1140 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_eta

std::vector<float> TrackingNtuple::sim_pca_eta
private

Definition at line 1135 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_lambda

std::vector<float> TrackingNtuple::sim_pca_lambda
private

Definition at line 1136 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_phi

std::vector<float> TrackingNtuple::sim_pca_phi
private

Definition at line 1138 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pca_pt

std::vector<float> TrackingNtuple::sim_pca_pt
private

Definition at line 1134 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pdgId

std::vector<int> TrackingNtuple::sim_pdgId
private

Definition at line 1125 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_phi

std::vector<float> TrackingNtuple::sim_phi
private

Definition at line 1133 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pt

std::vector<float> TrackingNtuple::sim_pt
private

Definition at line 1131 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_px

std::vector<float> TrackingNtuple::sim_px
private

Definition at line 1128 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_py

std::vector<float> TrackingNtuple::sim_py
private

Definition at line 1129 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_pz

std::vector<float> TrackingNtuple::sim_pz
private

Definition at line 1130 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_q

std::vector<int> TrackingNtuple::sim_q
private

Definition at line 1141 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_seedIdx

std::vector<std::vector<int> > TrackingNtuple::sim_seedIdx
private

◆ sim_simHitIdx

std::vector<std::vector<int> > TrackingNtuple::sim_simHitIdx
private

Definition at line 1159 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_trkIdx

std::vector<std::vector<int> > TrackingNtuple::sim_trkIdx
private

Definition at line 1154 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ sim_trkShareFrac

std::vector<std::vector<float> > TrackingNtuple::sim_trkShareFrac
private

Definition at line 1155 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingParticles(), and TrackingNtuple().

◆ simhit_detId

DetIdAll TrackingNtuple::simhit_detId
private

◆ simhit_detId_phase2

DetIdAllPhase2 TrackingNtuple::simhit_detId_phase2
private

◆ simhit_eloss

std::vector<float> TrackingNtuple::simhit_eloss
private

◆ simhit_hitIdx

std::vector<std::vector<int> > TrackingNtuple::simhit_hitIdx
private

Definition at line 1315 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), matchCluster(), and TrackingNtuple().

◆ simhit_hitType

std::vector<std::vector<int> > TrackingNtuple::simhit_hitType
private

◆ simhit_particle

std::vector<int> TrackingNtuple::simhit_particle
private

◆ simhit_process

std::vector<short> TrackingNtuple::simhit_process
private

◆ simhit_px

std::vector<float> TrackingNtuple::simhit_px
private

Definition at line 1306 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), and TrackingNtuple().

◆ simhit_py

std::vector<float> TrackingNtuple::simhit_py
private

Definition at line 1307 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), and TrackingNtuple().

◆ simhit_pz

std::vector<float> TrackingNtuple::simhit_pz
private

Definition at line 1308 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), and TrackingNtuple().

◆ simhit_simTrkIdx

std::vector<int> TrackingNtuple::simhit_simTrkIdx
private

Definition at line 1314 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), and TrackingNtuple().

◆ simhit_tof

std::vector<float> TrackingNtuple::simhit_tof
private

Definition at line 1312 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillSimHits(), and TrackingNtuple().

◆ simhit_x

std::vector<float> TrackingNtuple::simhit_x
private

◆ simhit_y

std::vector<float> TrackingNtuple::simhit_y
private

◆ simhit_z

std::vector<float> TrackingNtuple::simhit_z
private

◆ simHitBySignificance_

const bool TrackingNtuple::simHitBySignificance_
private

Definition at line 696 of file TrackingNtuple.cc.

Referenced by matchCluster(), and TrackingNtuple().

◆ simHitTPMapToken_

edm::EDGetTokenT<SimHitTPAssociationProducer::SimHitTPAssociationList> TrackingNtuple::simHitTPMapToken_
private

Definition at line 664 of file TrackingNtuple.cc.

Referenced by analyze().

◆ simpv_idx

std::vector<int> TrackingNtuple::simpv_idx
private

Definition at line 1406 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_bunchCrossing

std::vector<int> TrackingNtuple::simvtx_bunchCrossing
private

Definition at line 1399 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_daughterSimIdx

std::vector<std::vector<int> > TrackingNtuple::simvtx_daughterSimIdx
private

Definition at line 1405 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_event

std::vector<int> TrackingNtuple::simvtx_event
private

Definition at line 1398 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_processType

std::vector<unsigned int> TrackingNtuple::simvtx_processType
private

Definition at line 1400 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_sourceSimIdx

std::vector<std::vector<int> > TrackingNtuple::simvtx_sourceSimIdx
private

Definition at line 1404 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_x

std::vector<float> TrackingNtuple::simvtx_x
private

Definition at line 1401 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_y

std::vector<float> TrackingNtuple::simvtx_y
private

Definition at line 1402 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ simvtx_z

std::vector<float> TrackingNtuple::simvtx_z
private

Definition at line 1403 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTrackingVertices(), and TrackingNtuple().

◆ siphase2OTSimLinksToken_

edm::EDGetTokenT<edm::DetSetVector<PixelDigiSimLink> > TrackingNtuple::siphase2OTSimLinksToken_
private

Definition at line 668 of file TrackingNtuple.cc.

Referenced by analyze().

◆ str_bbxi

std::vector<float> TrackingNtuple::str_bbxi
private

Definition at line 1228 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_chargeFraction

std::vector<std::vector<float> > TrackingNtuple::str_chargeFraction
private

Definition at line 1215 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_chargePerCM

std::vector<float> TrackingNtuple::str_chargePerCM
private

Definition at line 1229 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_clustSize

std::vector<int> TrackingNtuple::str_clustSize
private

Definition at line 1230 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_detId

DetIdStrip TrackingNtuple::str_detId
private

Definition at line 1200 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_isBarrel

std::vector<short> TrackingNtuple::str_isBarrel
private

Definition at line 1199 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_onTrk_x

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_x
private

◆ str_onTrk_xx

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_xx
private

◆ str_onTrk_xy

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_xy
private

◆ str_onTrk_y

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_y
private

◆ str_onTrk_yy

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_yy
private

◆ str_onTrk_yz

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_yz
private

◆ str_onTrk_z

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_z
private

◆ str_onTrk_zx

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_zx
private

◆ str_onTrk_zz

std::vector<std::vector<float> > TrackingNtuple::str_onTrk_zz
private

◆ str_radL

std::vector<float> TrackingNtuple::str_radL
private

Definition at line 1227 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_seeIdx

std::vector<std::vector<int> > TrackingNtuple::str_seeIdx
private

◆ str_simHitIdx

std::vector<std::vector<int> > TrackingNtuple::str_simHitIdx
private

Definition at line 1213 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_simType

std::vector<unsigned short> TrackingNtuple::str_simType
private

Definition at line 1216 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_tcandIdx

std::vector<std::vector<int> > TrackingNtuple::str_tcandIdx
private

◆ str_trkIdx

std::vector<std::vector<int> > TrackingNtuple::str_trkIdx
private

◆ str_usedMask

std::vector<uint64_t> TrackingNtuple::str_usedMask
private

Definition at line 1231 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_x

std::vector<float> TrackingNtuple::str_x
private

Definition at line 1217 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_xx

std::vector<float> TrackingNtuple::str_xx
private

Definition at line 1220 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_xy

std::vector<float> TrackingNtuple::str_xy
private

Definition at line 1221 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_xySignificance

std::vector<std::vector<float> > TrackingNtuple::str_xySignificance
private

Definition at line 1214 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_y

std::vector<float> TrackingNtuple::str_y
private

Definition at line 1218 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_yy

std::vector<float> TrackingNtuple::str_yy
private

Definition at line 1222 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_yz

std::vector<float> TrackingNtuple::str_yz
private

Definition at line 1223 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_z

std::vector<float> TrackingNtuple::str_z
private

Definition at line 1219 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_zx

std::vector<float> TrackingNtuple::str_zx
private

Definition at line 1225 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ str_zz

std::vector<float> TrackingNtuple::str_zz
private

Definition at line 1224 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillStripRphiStereoHits(), and TrackingNtuple().

◆ stripMatchedRecHitToken_

edm::EDGetTokenT<SiStripMatchedRecHit2DCollection> TrackingNtuple::stripMatchedRecHitToken_
private

Definition at line 674 of file TrackingNtuple.cc.

Referenced by fillStripMatchedHits().

◆ stripRphiRecHitToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> TrackingNtuple::stripRphiRecHitToken_
private

Definition at line 672 of file TrackingNtuple.cc.

Referenced by fillStripRphiStereoHits().

◆ stripSimLinkToken_

edm::EDGetTokenT<edm::DetSetVector<StripDigiSimLink> > TrackingNtuple::stripSimLinkToken_
private

Definition at line 667 of file TrackingNtuple.cc.

Referenced by analyze().

◆ stripStereoRecHitToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> TrackingNtuple::stripStereoRecHitToken_
private

Definition at line 673 of file TrackingNtuple.cc.

Referenced by fillStripRphiStereoHits().

◆ stripUseMaskTokens_

std::vector<std::pair<unsigned int, edm::EDGetTokenT<StripMaskContainer> > > TrackingNtuple::stripUseMaskTokens_
private

◆ t

TTree* TrackingNtuple::t
private

Definition at line 701 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ tcand_algo

std::vector<unsigned int> TrackingNtuple::tcand_algo
private

Definition at line 1100 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestFromFirstHitSimTrkIdx

std::vector<int> TrackingNtuple::tcand_bestFromFirstHitSimTrkIdx
private

Definition at line 1110 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestFromFirstHitSimTrkNChi2

std::vector<float> TrackingNtuple::tcand_bestFromFirstHitSimTrkNChi2
private

Definition at line 1114 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestFromFirstHitSimTrkShareFrac

std::vector<float> TrackingNtuple::tcand_bestFromFirstHitSimTrkShareFrac
private

Definition at line 1111 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom

std::vector<float> TrackingNtuple::tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom
private

Definition at line 1113 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestFromFirstHitSimTrkShareFracSimDenom

std::vector<float> TrackingNtuple::tcand_bestFromFirstHitSimTrkShareFracSimDenom
private

Definition at line 1112 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestSimTrkIdx

std::vector<int> TrackingNtuple::tcand_bestSimTrkIdx
private

Definition at line 1105 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestSimTrkNChi2

std::vector<float> TrackingNtuple::tcand_bestSimTrkNChi2
private

Definition at line 1109 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestSimTrkShareFrac

std::vector<float> TrackingNtuple::tcand_bestSimTrkShareFrac
private

Definition at line 1106 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestSimTrkShareFracSimClusterDenom

std::vector<float> TrackingNtuple::tcand_bestSimTrkShareFracSimClusterDenom
private

Definition at line 1108 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_bestSimTrkShareFracSimDenom

std::vector<float> TrackingNtuple::tcand_bestSimTrkShareFracSimDenom
private

Definition at line 1107 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_hitIdx

std::vector<std::vector<int> > TrackingNtuple::tcand_hitIdx
private

Definition at line 1118 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_hitType

std::vector<std::vector<int> > TrackingNtuple::tcand_hitType
private

Definition at line 1119 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_isTrue

std::vector<short> TrackingNtuple::tcand_isTrue
private

Definition at line 1104 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_lambdaErr

std::vector<float> TrackingNtuple::tcand_lambdaErr
private

Definition at line 1090 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_nCluster

std::vector<unsigned int> TrackingNtuple::tcand_nCluster
private

Definition at line 1099 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_ndof

std::vector<float> TrackingNtuple::tcand_ndof
private

Definition at line 1094 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_nPixel

std::vector<unsigned int> TrackingNtuple::tcand_nPixel
private

Definition at line 1097 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_nStrip

std::vector<unsigned int> TrackingNtuple::tcand_nStrip
private

Definition at line 1098 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_nValid

std::vector<unsigned int> TrackingNtuple::tcand_nValid
private

Definition at line 1096 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_dxy

std::vector<float> TrackingNtuple::tcand_pca_dxy
private

Definition at line 1074 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_dxyErr

std::vector<float> TrackingNtuple::tcand_pca_dxyErr
private

Definition at line 1080 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_dz

std::vector<float> TrackingNtuple::tcand_pca_dz
private

Definition at line 1075 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_dzErr

std::vector<float> TrackingNtuple::tcand_pca_dzErr
private

Definition at line 1081 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_eta

std::vector<float> TrackingNtuple::tcand_pca_eta
private

Definition at line 1072 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_etaErr

std::vector<float> TrackingNtuple::tcand_pca_etaErr
private

Definition at line 1077 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_lambdaErr

std::vector<float> TrackingNtuple::tcand_pca_lambdaErr
private

Definition at line 1078 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_phi

std::vector<float> TrackingNtuple::tcand_pca_phi
private

Definition at line 1073 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_phiErr

std::vector<float> TrackingNtuple::tcand_pca_phiErr
private

Definition at line 1079 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_pt

std::vector<float> TrackingNtuple::tcand_pca_pt
private

Definition at line 1071 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_ptErr

std::vector<float> TrackingNtuple::tcand_pca_ptErr
private

Definition at line 1076 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_px

std::vector<float> TrackingNtuple::tcand_pca_px
private

Definition at line 1068 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_py

std::vector<float> TrackingNtuple::tcand_pca_py
private

Definition at line 1069 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_pz

std::vector<float> TrackingNtuple::tcand_pca_pz
private

Definition at line 1070 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pca_valid

std::vector<short> TrackingNtuple::tcand_pca_valid
private

Definition at line 1067 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_phiErr

std::vector<float> TrackingNtuple::tcand_phiErr
private

Definition at line 1091 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pt

std::vector<float> TrackingNtuple::tcand_pt
private

Definition at line 1085 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_px

std::vector<float> TrackingNtuple::tcand_px
private

Definition at line 1082 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_py

std::vector<float> TrackingNtuple::tcand_py
private

Definition at line 1083 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_pz

std::vector<float> TrackingNtuple::tcand_pz
private

Definition at line 1084 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_q

std::vector<int> TrackingNtuple::tcand_q
private

Definition at line 1095 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_qbpErr

std::vector<float> TrackingNtuple::tcand_qbpErr
private

Definition at line 1089 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_seedIdx

std::vector<int> TrackingNtuple::tcand_seedIdx
private

Definition at line 1102 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_simTrkIdx

std::vector<std::vector<int> > TrackingNtuple::tcand_simTrkIdx
private

Definition at line 1117 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_simTrkNChi2

std::vector<std::vector<float> > TrackingNtuple::tcand_simTrkNChi2
private

Definition at line 1116 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_simTrkShareFrac

std::vector<std::vector<float> > TrackingNtuple::tcand_simTrkShareFrac
private

Definition at line 1115 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_stopReason

std::vector<unsigned short> TrackingNtuple::tcand_stopReason
private

Definition at line 1101 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_vtxIdx

std::vector<int> TrackingNtuple::tcand_vtxIdx
private

Definition at line 1103 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_x

std::vector<float> TrackingNtuple::tcand_x
private

Definition at line 1086 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_xtErr

std::vector<float> TrackingNtuple::tcand_xtErr
private

Definition at line 1092 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_y

std::vector<float> TrackingNtuple::tcand_y
private

Definition at line 1087 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_ytErr

std::vector<float> TrackingNtuple::tcand_ytErr
private

Definition at line 1093 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tcand_z

std::vector<float> TrackingNtuple::tcand_z
private

Definition at line 1088 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillCandidates(), and TrackingNtuple().

◆ tGeomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> TrackingNtuple::tGeomToken_
private

Definition at line 652 of file TrackingNtuple.cc.

Referenced by analyze().

◆ tpNLayersToken_

edm::EDGetTokenT<edm::ValueMap<unsigned int> > TrackingNtuple::tpNLayersToken_
private

Definition at line 678 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tpNPixelLayersToken_

edm::EDGetTokenT<edm::ValueMap<unsigned int> > TrackingNtuple::tpNPixelLayersToken_
private

Definition at line 679 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tpNStripStereoLayersToken_

edm::EDGetTokenT<edm::ValueMap<unsigned int> > TrackingNtuple::tpNStripStereoLayersToken_
private

Definition at line 680 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tracer_

HistoryBase TrackingNtuple::tracer_
private

Definition at line 698 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles(), and TrackingNtuple().

◆ trackAssociatorToken_

edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator> TrackingNtuple::trackAssociatorToken_
private

Definition at line 665 of file TrackingNtuple.cc.

Referenced by analyze().

◆ trackingParticleRefToken_

edm::EDGetTokenT<TrackingParticleRefVector> TrackingNtuple::trackingParticleRefToken_
private

Definition at line 662 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ trackingParticleToken_

edm::EDGetTokenT<TrackingParticleCollection> TrackingNtuple::trackingParticleToken_
private

Definition at line 661 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ trackingVertexToken_

edm::EDGetTokenT<TrackingVertexCollection> TrackingNtuple::trackingVertexToken_
private

Definition at line 677 of file TrackingNtuple.cc.

Referenced by analyze().

◆ trackToken_

edm::EDGetTokenT<edm::View<reco::Track> > TrackingNtuple::trackToken_
private

Definition at line 658 of file TrackingNtuple.cc.

Referenced by analyze(), and fillTracks().

◆ trk_algo

std::vector<unsigned int> TrackingNtuple::trk_algo
private

Definition at line 1041 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_algoMask

std::vector<decltype(reco::TrackBase().algoMaskUL())> TrackingNtuple::trk_algoMask
private

Definition at line 1043 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestFromFirstHitSimTrkIdx

std::vector<int> TrackingNtuple::trk_bestFromFirstHitSimTrkIdx
private

Definition at line 1054 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestFromFirstHitSimTrkNChi2

std::vector<float> TrackingNtuple::trk_bestFromFirstHitSimTrkNChi2
private

Definition at line 1058 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestFromFirstHitSimTrkShareFrac

std::vector<float> TrackingNtuple::trk_bestFromFirstHitSimTrkShareFrac
private

Definition at line 1055 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestFromFirstHitSimTrkShareFracSimClusterDenom

std::vector<float> TrackingNtuple::trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
private

Definition at line 1057 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestFromFirstHitSimTrkShareFracSimDenom

std::vector<float> TrackingNtuple::trk_bestFromFirstHitSimTrkShareFracSimDenom
private

Definition at line 1056 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestSimTrkIdx

std::vector<int> TrackingNtuple::trk_bestSimTrkIdx
private

Definition at line 1049 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestSimTrkNChi2

std::vector<float> TrackingNtuple::trk_bestSimTrkNChi2
private

Definition at line 1053 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestSimTrkShareFrac

std::vector<float> TrackingNtuple::trk_bestSimTrkShareFrac
private

Definition at line 1050 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestSimTrkShareFracSimClusterDenom

std::vector<float> TrackingNtuple::trk_bestSimTrkShareFracSimClusterDenom
private

Definition at line 1052 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_bestSimTrkShareFracSimDenom

std::vector<float> TrackingNtuple::trk_bestSimTrkShareFracSimDenom
private

Definition at line 1051 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_cotTheta

std::vector<float> TrackingNtuple::trk_cotTheta
private

Definition at line 1004 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dxy

std::vector<float> TrackingNtuple::trk_dxy
private

Definition at line 1006 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dxyClosestPV

std::vector<float> TrackingNtuple::trk_dxyClosestPV
private

Definition at line 1010 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dxyErr

std::vector<float> TrackingNtuple::trk_dxyErr
private

Definition at line 1016 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dxyPV

std::vector<float> TrackingNtuple::trk_dxyPV
private

Definition at line 1008 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dz

std::vector<float> TrackingNtuple::trk_dz
private

Definition at line 1007 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dzClosestPV

std::vector<float> TrackingNtuple::trk_dzClosestPV
private

Definition at line 1011 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dzErr

std::vector<float> TrackingNtuple::trk_dzErr
private

Definition at line 1017 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_dzPV

std::vector<float> TrackingNtuple::trk_dzPV
private

Definition at line 1009 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_eta

std::vector<float> TrackingNtuple::trk_eta
private

Definition at line 1002 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_etaErr

std::vector<float> TrackingNtuple::trk_etaErr
private

Definition at line 1013 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_hitIdx

std::vector<std::vector<int> > TrackingNtuple::trk_hitIdx
private

Definition at line 1062 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_hitType

std::vector<std::vector<int> > TrackingNtuple::trk_hitType
private

Definition at line 1063 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_inner_pt

std::vector<float> TrackingNtuple::trk_inner_pt
private

Definition at line 997 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_inner_px

std::vector<float> TrackingNtuple::trk_inner_px
private

Definition at line 994 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_inner_py

std::vector<float> TrackingNtuple::trk_inner_py
private

Definition at line 995 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_inner_pz

std::vector<float> TrackingNtuple::trk_inner_pz
private

Definition at line 996 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_isHP

std::vector<short> TrackingNtuple::trk_isHP
private

Definition at line 1045 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_isTrue

std::vector<short> TrackingNtuple::trk_isTrue
private

Definition at line 1048 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_lambda

std::vector<float> TrackingNtuple::trk_lambda
private

Definition at line 1003 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_lambdaErr

std::vector<float> TrackingNtuple::trk_lambdaErr
private

Definition at line 1014 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_mvas

std::vector<std::vector<float> > TrackingNtuple::trk_mvas
private

Definition at line 1024 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_n3DLay

std::vector<unsigned int> TrackingNtuple::trk_n3DLay
private

Definition at line 1038 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nChi2

std::vector<float> TrackingNtuple::trk_nChi2
private

Definition at line 1021 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nChi2_1Dmod

std::vector<float> TrackingNtuple::trk_nChi2_1Dmod
private

Definition at line 1022 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nCluster

std::vector<unsigned int> TrackingNtuple::trk_nCluster
private

Definition at line 1040 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_ndof

std::vector<float> TrackingNtuple::trk_ndof
private

Definition at line 1023 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nInactive

std::vector<unsigned int> TrackingNtuple::trk_nInactive
private

Definition at line 1029 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nInnerInactive

std::vector<unsigned int> TrackingNtuple::trk_nInnerInactive
private

Definition at line 1035 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nInnerLost

std::vector<unsigned int> TrackingNtuple::trk_nInnerLost
private

Definition at line 1033 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nLost

std::vector<unsigned int> TrackingNtuple::trk_nLost
private

Definition at line 1028 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nLostLay

std::vector<unsigned int> TrackingNtuple::trk_nLostLay
private

Definition at line 1039 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nOuterInactive

std::vector<unsigned int> TrackingNtuple::trk_nOuterInactive
private

Definition at line 1034 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nOuterLost

std::vector<unsigned int> TrackingNtuple::trk_nOuterLost
private

Definition at line 1032 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nPixel

std::vector<unsigned int> TrackingNtuple::trk_nPixel
private

Definition at line 1030 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nPixelLay

std::vector<unsigned int> TrackingNtuple::trk_nPixelLay
private

Definition at line 1036 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nStrip

std::vector<unsigned int> TrackingNtuple::trk_nStrip
private

Definition at line 1031 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nStripLay

std::vector<unsigned int> TrackingNtuple::trk_nStripLay
private

Definition at line 1037 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_nValid

std::vector<unsigned int> TrackingNtuple::trk_nValid
private

Definition at line 1027 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_originalAlgo

std::vector<unsigned int> TrackingNtuple::trk_originalAlgo
private

Definition at line 1042 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_outer_pt

std::vector<float> TrackingNtuple::trk_outer_pt
private

Definition at line 1001 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_outer_px

std::vector<float> TrackingNtuple::trk_outer_px
private

Definition at line 998 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_outer_py

std::vector<float> TrackingNtuple::trk_outer_py
private

Definition at line 999 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_outer_pz

std::vector<float> TrackingNtuple::trk_outer_pz
private

Definition at line 1000 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_phi

std::vector<float> TrackingNtuple::trk_phi
private

Definition at line 1005 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_phiErr

std::vector<float> TrackingNtuple::trk_phiErr
private

Definition at line 1015 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_pt

std::vector<float> TrackingNtuple::trk_pt
private

Definition at line 993 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_ptErr

std::vector<float> TrackingNtuple::trk_ptErr
private

Definition at line 1012 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_px

std::vector<float> TrackingNtuple::trk_px
private

Definition at line 990 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_py

std::vector<float> TrackingNtuple::trk_py
private

Definition at line 991 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_pz

std::vector<float> TrackingNtuple::trk_pz
private

Definition at line 992 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_q

std::vector<int> TrackingNtuple::trk_q
private

Definition at line 1026 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_qualityMasks

std::vector<std::vector<unsigned short> > TrackingNtuple::trk_qualityMasks
private

Definition at line 1025 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_refpoint_x

std::vector<float> TrackingNtuple::trk_refpoint_x
private

Definition at line 1018 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_refpoint_y

std::vector<float> TrackingNtuple::trk_refpoint_y
private

Definition at line 1019 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_refpoint_z

std::vector<float> TrackingNtuple::trk_refpoint_z
private

Definition at line 1020 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_seedIdx

std::vector<int> TrackingNtuple::trk_seedIdx
private

Definition at line 1046 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_simTrkIdx

std::vector<std::vector<int> > TrackingNtuple::trk_simTrkIdx
private

Definition at line 1061 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_simTrkNChi2

std::vector<std::vector<float> > TrackingNtuple::trk_simTrkNChi2
private

Definition at line 1060 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_simTrkShareFrac

std::vector<std::vector<float> > TrackingNtuple::trk_simTrkShareFrac
private

Definition at line 1059 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_stopReason

std::vector<unsigned short> TrackingNtuple::trk_stopReason
private

Definition at line 1044 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), and TrackingNtuple().

◆ trk_vtxIdx

std::vector<int> TrackingNtuple::trk_vtxIdx
private

Definition at line 1047 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillTracks(), fillVertices(), and TrackingNtuple().

◆ tTopoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> TrackingNtuple::tTopoToken_
private

Definition at line 651 of file TrackingNtuple.cc.

Referenced by analyze().

◆ vertexToken_

edm::EDGetTokenT<reco::VertexCollection> TrackingNtuple::vertexToken_
private

Definition at line 676 of file TrackingNtuple.cc.

Referenced by analyze().

◆ vtx_chi2

std::vector<float> TrackingNtuple::vtx_chi2
private

Definition at line 1390 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_fake

std::vector<short> TrackingNtuple::vtx_fake
private

Definition at line 1391 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_ndof

std::vector<float> TrackingNtuple::vtx_ndof
private

Definition at line 1389 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_trkIdx

std::vector<std::vector<int> > TrackingNtuple::vtx_trkIdx
private

Definition at line 1393 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_valid

std::vector<short> TrackingNtuple::vtx_valid
private

Definition at line 1392 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_x

std::vector<float> TrackingNtuple::vtx_x
private

Definition at line 1383 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_xErr

std::vector<float> TrackingNtuple::vtx_xErr
private

Definition at line 1386 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_y

std::vector<float> TrackingNtuple::vtx_y
private

Definition at line 1384 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_yErr

std::vector<float> TrackingNtuple::vtx_yErr
private

Definition at line 1387 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_z

std::vector<float> TrackingNtuple::vtx_z
private

Definition at line 1385 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().

◆ vtx_zErr

std::vector<float> TrackingNtuple::vtx_zErr
private

Definition at line 1388 of file TrackingNtuple.cc.

Referenced by clearVariables(), fillVertices(), and TrackingNtuple().