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
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices 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 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, 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
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
static std::string to_string(const XMLCh *ch)
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 3242 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, submitPVResolutionJobs::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().

3246  {
3247  auto strUsedMask = [&stripMasks](size_t key) {
3248  uint64_t mask = 0;
3249  for (auto const& m : stripMasks) {
3250  if (m.second->mask(key))
3251  mask |= m.first;
3252  }
3253  return mask;
3254  };
3255 
3256  const auto hitId = hit.geographicalId();
3257  const int lay = tTopo.layer(hitId);
3258  monoStereoClusterList.emplace_back(hit.monoHit().cluster().key(), hit.stereoHit().cluster().key());
3259  glu_isBarrel.push_back((hitId.subdetId() == StripSubdetector::TIB || hitId.subdetId() == StripSubdetector::TOB));
3260  glu_detId.push_back(tracker, tTopo, hitId);
3261  glu_monoIdx.push_back(hit.monoHit().cluster().key());
3262  glu_stereoIdx.push_back(hit.stereoHit().cluster().key());
3263  glu_seeIdx.emplace_back(); // filled in fillSeeds
3264  glu_x.push_back(hit.globalPosition().x());
3265  glu_y.push_back(hit.globalPosition().y());
3266  glu_z.push_back(hit.globalPosition().z());
3267  glu_xx.push_back(hit.globalPositionError().cxx());
3268  glu_xy.push_back(hit.globalPositionError().cyx());
3269  glu_yy.push_back(hit.globalPositionError().cyy());
3270  glu_yz.push_back(hit.globalPositionError().czy());
3271  glu_zz.push_back(hit.globalPositionError().czz());
3272  glu_zx.push_back(hit.globalPositionError().czx());
3273  glu_radL.push_back(hit.surface()->mediumProperties().radLen());
3274  glu_bbxi.push_back(hit.surface()->mediumProperties().xi());
3275  glu_chargePerCM.push_back(siStripClusterTools::chargePerCM(hitId, hit.firstClusterRef().stripCluster()));
3276  glu_clustSizeMono.push_back(hit.monoHit().cluster()->amplitudes().size());
3277  glu_clustSizeStereo.push_back(hit.stereoHit().cluster()->amplitudes().size());
3278  glu_usedMaskMono.push_back(strUsedMask(hit.monoHit().cluster().key()));
3279  glu_usedMaskStereo.push_back(strUsedMask(hit.stereoHit().cluster().key()));
3280  LogTrace("TrackingNtuple") << "stripMatchedHit"
3281  << " cluster0=" << hit.stereoHit().cluster().key()
3282  << " cluster1=" << hit.monoHit().cluster().key() << " subdId=" << hitId.subdetId()
3283  << " lay=" << lay << " rawId=" << hitId.rawId() << " pos =" << hit.globalPosition();
3284  return glu_isBarrel.size() - 1;
3285 }
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
key
prepare the HTCondor submission files and eventually submit them
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_, DiMuonV_cfg::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:92
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 4068 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().

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

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

References edmNew::DetSetVector< T >::begin(), TrackingNtuple::SimHitData::bunchCrossing, edmNew::DetSetVector< T >::end(), TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, submitPVResolutionJobs::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().

3316  {
3318  iEvent.getByToken(phase2OTRecHitToken_, phase2OTHits);
3319  for (auto it = phase2OTHits->begin(); it != phase2OTHits->end(); it++) {
3320  const DetId hitId = it->detId();
3321  for (auto hit = it->begin(); hit != it->end(); hit++) {
3322  hitProductIds.insert(hit->cluster().id());
3323 
3324  const int key = hit->cluster().key();
3325  const int lay = tTopo.layer(hitId);
3326 
3327  ph2_isBarrel.push_back(hitId.subdetId() == 1);
3328  ph2_detId.push_back(tracker, tTopo, hitId);
3329  ph2_trkIdx.emplace_back(); // filled in fillTracks
3330  ph2_onTrk_x.emplace_back();
3331  ph2_onTrk_y.emplace_back();
3332  ph2_onTrk_z.emplace_back();
3333  ph2_onTrk_xx.emplace_back();
3334  ph2_onTrk_xy.emplace_back();
3335  ph2_onTrk_yy.emplace_back();
3336  ph2_onTrk_yz.emplace_back();
3337  ph2_onTrk_zz.emplace_back();
3338  ph2_onTrk_zx.emplace_back();
3339  ph2_tcandIdx.emplace_back(); // filled in fillCandidates
3340  ph2_seeIdx.emplace_back(); // filled in fillSeeds
3341  ph2_x.push_back(hit->globalPosition().x());
3342  ph2_y.push_back(hit->globalPosition().y());
3343  ph2_z.push_back(hit->globalPosition().z());
3344  ph2_xx.push_back(hit->globalPositionError().cxx());
3345  ph2_xy.push_back(hit->globalPositionError().cyx());
3346  ph2_yy.push_back(hit->globalPositionError().cyy());
3347  ph2_yz.push_back(hit->globalPositionError().czy());
3348  ph2_zz.push_back(hit->globalPositionError().czz());
3349  ph2_zx.push_back(hit->globalPositionError().czx());
3350  ph2_radL.push_back(hit->surface()->mediumProperties().radLen());
3351  ph2_bbxi.push_back(hit->surface()->mediumProperties().xi());
3352 
3353  LogTrace("TrackingNtuple") << "phase2 OT cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3354  << " rawId=" << hitId.rawId() << " pos =" << hit->globalPosition();
3355 
3357  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3358  hitId,
3359  key,
3360  *hit,
3361  clusterToTPMap,
3362  tpKeyToIndex,
3363  simHitsTPAssoc,
3364  digiSimLink,
3365  simHitRefKeyToIndex,
3367  ph2_xySignificance.push_back(simHitData.xySignificance);
3368  ph2_simHitIdx.push_back(simHitData.matchingSimHit);
3369  ph2_simType.push_back(static_cast<int>(simHitData.type));
3370  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3371  if (!simHitData.matchingSimHit.empty()) {
3372  const auto simHitIdx = simHitData.matchingSimHit[0];
3373  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3374  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3375  << " energyLoss=" << simhit_eloss[simHitIdx]
3376  << " particleType=" << simhit_particle[simHitIdx]
3377  << " processType=" << simhit_process[simHitIdx]
3378  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3379  << " event=" << simHitData.event[0];
3380  }
3381  }
3382  }
3383  }
3384 }
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
key
prepare the HTCondor submission files and eventually submit them
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 3016 of file TrackingNtuple.cc.

References TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, submitPVResolutionJobs::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().

3024  {
3025  std::vector<std::pair<uint64_t, PixelMaskContainer const*>> pixelMasks;
3026  pixelMasks.reserve(pixelUseMaskTokens_.size());
3027  for (const auto& itoken : pixelUseMaskTokens_) {
3029  iEvent.getByToken(itoken.second, aH);
3030  pixelMasks.emplace_back(1 << itoken.first, aH.product());
3031  }
3032  auto pixUsedMask = [&pixelMasks](size_t key) {
3033  uint64_t mask = 0;
3034  for (auto const& m : pixelMasks) {
3035  if (m.second->mask(key))
3036  mask |= m.first;
3037  }
3038  return mask;
3039  };
3040 
3042  iEvent.getByToken(pixelRecHitToken_, pixelHits);
3043  for (auto it = pixelHits->begin(); it != pixelHits->end(); it++) {
3044  const DetId hitId = it->detId();
3045  for (auto hit = it->begin(); hit != it->end(); hit++) {
3046  hitProductIds.insert(hit->cluster().id());
3047 
3048  const int key = hit->cluster().key();
3049  const int lay = tTopo.layer(hitId);
3050 
3051  pix_isBarrel.push_back(hitId.subdetId() == 1);
3052  pix_detId.push_back(tracker, tTopo, hitId);
3053  pix_trkIdx.emplace_back(); // filled in fillTracks
3054  pix_onTrk_x.emplace_back();
3055  pix_onTrk_y.emplace_back();
3056  pix_onTrk_z.emplace_back();
3057  pix_onTrk_xx.emplace_back();
3058  pix_onTrk_xy.emplace_back();
3059  pix_onTrk_yy.emplace_back();
3060  pix_onTrk_yz.emplace_back();
3061  pix_onTrk_zz.emplace_back();
3062  pix_onTrk_zx.emplace_back();
3063  pix_tcandIdx.emplace_back(); // filled in fillCandidates
3064  pix_seeIdx.emplace_back(); // filled in fillSeeds
3065  pix_x.push_back(hit->globalPosition().x());
3066  pix_y.push_back(hit->globalPosition().y());
3067  pix_z.push_back(hit->globalPosition().z());
3068  pix_xx.push_back(hit->globalPositionError().cxx());
3069  pix_xy.push_back(hit->globalPositionError().cyx());
3070  pix_yy.push_back(hit->globalPositionError().cyy());
3071  pix_yz.push_back(hit->globalPositionError().czy());
3072  pix_zz.push_back(hit->globalPositionError().czz());
3073  pix_zx.push_back(hit->globalPositionError().czx());
3074  pix_radL.push_back(hit->surface()->mediumProperties().radLen());
3075  pix_bbxi.push_back(hit->surface()->mediumProperties().xi());
3076  pix_clustSizeCol.push_back(hit->cluster()->sizeY());
3077  pix_clustSizeRow.push_back(hit->cluster()->sizeX());
3078  pix_usedMask.push_back(pixUsedMask(hit->firstClusterRef().key()));
3079 
3080  LogTrace("TrackingNtuple") << "pixHit cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3081  << " rawId=" << hitId.rawId() << " pos =" << hit->globalPosition();
3083  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3084  hitId,
3085  key,
3086  *hit,
3087  clusterToTPMap,
3088  tpKeyToIndex,
3089  simHitsTPAssoc,
3090  digiSimLink,
3091  simHitRefKeyToIndex,
3092  HitType::Pixel);
3093  pix_simHitIdx.push_back(simHitData.matchingSimHit);
3094  pix_simType.push_back(static_cast<int>(simHitData.type));
3095  pix_xySignificance.push_back(simHitData.xySignificance);
3096  pix_chargeFraction.push_back(simHitData.chargeFraction);
3097  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3098  if (!simHitData.matchingSimHit.empty()) {
3099  const auto simHitIdx = simHitData.matchingSimHit[0];
3100  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3101  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3102  << " energyLoss=" << simhit_eloss[simHitIdx]
3103  << " particleType=" << simhit_particle[simHitIdx]
3104  << " processType=" << simhit_process[simHitIdx]
3105  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3106  << " event=" << simHitData.event[0];
3107  }
3108  }
3109  }
3110  }
3111 }
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
key
prepare the HTCondor submission files and eventually submit them
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 3386 of file TrackingNtuple.cc.

References addSeedCurvCov_, addStripMatchedHit(), reco::TrackBase::algoByName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), reco::TrackToTrackingParticleAssociator::associateSimToReco(), cms::cuda::bs, ALCARECOTkAlJpsiMuMu_cff::charge, RZLine::chi2(), nano_mu_local_reco_cff::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, OmniClusterRef::id(), l1ctLayer2EG_cff::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().

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

References funct::abs(), trackingPlots::assoc, hcalRecHitTable_cff::detId, 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().

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

3290  {
3291  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3292  stripMasks.reserve(stripUseMaskTokens_.size());
3293  for (const auto& itoken : stripUseMaskTokens_) {
3295  iEvent.getByToken(itoken.second, aH);
3296  stripMasks.emplace_back(1 << itoken.first, aH.product());
3297  }
3298 
3300  iEvent.getByToken(stripMatchedRecHitToken_, matchedHits);
3301  for (auto it = matchedHits->begin(); it != matchedHits->end(); it++) {
3302  for (auto hit = it->begin(); hit != it->end(); hit++) {
3303  addStripMatchedHit(*hit, tracker, tTopo, stripMasks, monoStereoClusterList);
3304  }
3305  }
3306 }
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 3113 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_, submitPVResolutionJobs::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().

3121  {
3122  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3123  stripMasks.reserve(stripUseMaskTokens_.size());
3124  for (const auto& itoken : stripUseMaskTokens_) {
3126  iEvent.getByToken(itoken.second, aH);
3127  stripMasks.emplace_back(1 << itoken.first, aH.product());
3128  }
3129  auto strUsedMask = [&stripMasks](size_t key) {
3130  uint64_t mask = 0;
3131  for (auto const& m : stripMasks) {
3132  if (m.second->mask(key))
3133  mask |= m.first;
3134  }
3135  return mask;
3136  };
3137 
3138  //index strip hit branches by cluster index
3140  iEvent.getByToken(stripRphiRecHitToken_, rphiHits);
3142  iEvent.getByToken(stripStereoRecHitToken_, stereoHits);
3143  int totalStripHits = rphiHits->dataSize() + stereoHits->dataSize();
3144  str_isBarrel.resize(totalStripHits);
3145  str_detId.resize(totalStripHits);
3146  str_trkIdx.resize(totalStripHits); // filled in fillTracks
3147  str_onTrk_x.resize(totalStripHits);
3148  str_onTrk_y.resize(totalStripHits);
3149  str_onTrk_z.resize(totalStripHits);
3150  str_onTrk_xx.resize(totalStripHits);
3151  str_onTrk_xy.resize(totalStripHits);
3152  str_onTrk_yy.resize(totalStripHits);
3153  str_onTrk_yz.resize(totalStripHits);
3154  str_onTrk_zz.resize(totalStripHits);
3155  str_onTrk_zx.resize(totalStripHits);
3156  str_tcandIdx.resize(totalStripHits); // filled in fillCandidates
3157  str_seeIdx.resize(totalStripHits); // filled in fillSeeds
3158  str_simHitIdx.resize(totalStripHits);
3159  str_simType.resize(totalStripHits);
3160  str_chargeFraction.resize(totalStripHits);
3161  str_x.resize(totalStripHits);
3162  str_y.resize(totalStripHits);
3163  str_z.resize(totalStripHits);
3164  str_xx.resize(totalStripHits);
3165  str_xy.resize(totalStripHits);
3166  str_yy.resize(totalStripHits);
3167  str_yz.resize(totalStripHits);
3168  str_zz.resize(totalStripHits);
3169  str_zx.resize(totalStripHits);
3170  str_xySignificance.resize(totalStripHits);
3171  str_chargeFraction.resize(totalStripHits);
3172  str_radL.resize(totalStripHits);
3173  str_bbxi.resize(totalStripHits);
3174  str_chargePerCM.resize(totalStripHits);
3175  str_clustSize.resize(totalStripHits);
3176  str_usedMask.resize(totalStripHits);
3177 
3178  auto fill = [&](const SiStripRecHit2DCollection& hits, const char* name) {
3179  for (const auto& detset : hits) {
3180  const DetId hitId = detset.detId();
3181  for (const auto& hit : detset) {
3182  hitProductIds.insert(hit.cluster().id());
3183 
3184  const int key = hit.cluster().key();
3185  const int lay = tTopo.layer(hitId);
3187  str_detId.set(key, tracker, tTopo, hitId);
3188  str_x[key] = hit.globalPosition().x();
3189  str_y[key] = hit.globalPosition().y();
3190  str_z[key] = hit.globalPosition().z();
3191  str_xx[key] = hit.globalPositionError().cxx();
3192  str_xy[key] = hit.globalPositionError().cyx();
3193  str_yy[key] = hit.globalPositionError().cyy();
3194  str_yz[key] = hit.globalPositionError().czy();
3195  str_zz[key] = hit.globalPositionError().czz();
3196  str_zx[key] = hit.globalPositionError().czx();
3197  str_radL[key] = hit.surface()->mediumProperties().radLen();
3198  str_bbxi[key] = hit.surface()->mediumProperties().xi();
3199  str_chargePerCM[key] = siStripClusterTools::chargePerCM(hitId, hit.firstClusterRef().stripCluster());
3200  str_clustSize[key] = hit.cluster()->amplitudes().size();
3201  str_usedMask[key] = strUsedMask(key);
3202  LogTrace("TrackingNtuple") << name << " cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3203  << " rawId=" << hitId.rawId() << " pos =" << hit.globalPosition();
3204 
3206  SimHitData simHitData = matchCluster(hit.firstClusterRef(),
3207  hitId,
3208  key,
3209  hit,
3210  clusterToTPMap,
3211  tpKeyToIndex,
3212  simHitsTPAssoc,
3213  digiSimLink,
3214  simHitRefKeyToIndex,
3215  HitType::Strip);
3216  str_simHitIdx[key] = simHitData.matchingSimHit;
3217  str_simType[key] = static_cast<int>(simHitData.type);
3218  str_xySignificance[key] = simHitData.xySignificance;
3219  str_chargeFraction[key] = simHitData.chargeFraction;
3220  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3221  if (!simHitData.matchingSimHit.empty()) {
3222  const auto simHitIdx = simHitData.matchingSimHit[0];
3223  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3224  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3225  << " simHitPos="
3226  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3227  << " energyLoss=" << simhit_eloss[simHitIdx]
3228  << " particleType=" << simhit_particle[simHitIdx]
3229  << " processType=" << simhit_process[simHitIdx]
3230  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3231  << " event=" << simHitData.event[0];
3232  }
3233  }
3234  }
3235  }
3236  };
3237 
3238  fill(*rphiHits, "stripRPhiHit");
3239  fill(*stereoHits, "stripStereoHit");
3240 }
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
key
prepare the HTCondor submission files and eventually submit them
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 4321 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, DiMuonV_cfg::tracks, Unknown, findQualityFiles::v, bphysicsOniaDQM_cfi::vertex, and ParametersDefinerForTP::vertex().

Referenced by analyze().

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

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

Referenced by fillSeeds().

4466  {
4467  if (sim_seedIdx.empty()) // first call
4468  sim_seedIdx.resize(tpCollection.size());
4469 
4470  for (const auto& keyVal : simRecColl) {
4471  const auto& tpRef = keyVal.key;
4472  auto found = tpKeyToIndex.find(tpRef.key());
4473  if (found == tpKeyToIndex.end())
4474  throw cms::Exception("Assert") << __FILE__ << ":" << __LINE__ << " fillTrackingParticlesForSeeds: tpRef.key() "
4475  << tpRef.key() << " not found from tpKeyToIndex. tpKeyToIndex size "
4476  << tpKeyToIndex.size();
4477  const auto tpIndex = found->second;
4478  for (const auto& pair : keyVal.val) {
4479  const auto& seedRef = pair.first->seedRef();
4480  sim_seedIdx[tpIndex].push_back(seedOffset + seedRef.key());
4481  }
4482  }
4483 }
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 4518 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().

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

References reco::TrackBase::algoName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), cms::cuda::bs, ALCARECOTkAlJpsiMuMu_cff::charge, nano_mu_local_reco_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, DiMuonV_cfg::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().

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

References Exception, findQualityFiles::size, DiMuonV_cfg::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().

4486  {
4487  for (size_t iVertex = 0, size = vertices.size(); iVertex < size; ++iVertex) {
4488  const reco::Vertex& vertex = vertices[iVertex];
4489  vtx_x.push_back(vertex.x());
4490  vtx_y.push_back(vertex.y());
4491  vtx_z.push_back(vertex.z());
4492  vtx_xErr.push_back(vertex.xError());
4493  vtx_yErr.push_back(vertex.yError());
4494  vtx_zErr.push_back(vertex.zError());
4495  vtx_chi2.push_back(vertex.chi2());
4496  vtx_ndof.push_back(vertex.ndof());
4497  vtx_fake.push_back(vertex.isFake());
4498  vtx_valid.push_back(vertex.isValid());
4499 
4500  std::vector<int> trkIdx;
4501  for (auto iTrack = vertex.tracks_begin(); iTrack != vertex.tracks_end(); ++iTrack) {
4502  // Ignore link if vertex was fit from a track collection different from the input
4503  if (iTrack->id() != tracks.id())
4504  continue;
4505 
4506  trkIdx.push_back(iTrack->key());
4507 
4508  if (trk_vtxIdx[iTrack->key()] != -1) {
4509  throw cms::Exception("LogicError") << "Vertex index has already been set for track " << iTrack->key() << " to "
4510  << trk_vtxIdx[iTrack->key()] << "; was trying to set it to " << iVertex;
4511  }
4512  trk_vtxIdx[iTrack->key()] = iVertex;
4513  }
4514  vtx_trkIdx.push_back(trkIdx);
4515  }
4516 }
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(), nano_mu_digi_cff::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 foundNonElectrons = 0;
2766  for (auto ip = range.first; ip != range.second; ++ip) {
2767  TrackPSimHitRef TPhit = ip->second;
2768  DetId dId = DetId(TPhit->detUnitId());
2769  if (dId.rawId() == hitId.rawId()) {
2770  // skip electron SimHits for non-electron TPs also here
2771  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2772  continue; //electrons found
2773  } else {
2774  foundNonElectrons++;
2775  }
2776  }
2777  }
2778 
2779  float minSignificance = 1e12;
2780  if (simHitBySignificance_) { //save the best matching hit
2781 
2782  int simHitKey = -1;
2783  edm::ProductID simHitID;
2784  for (auto ip = range.first; ip != range.second; ++ip) {
2785  TrackPSimHitRef TPhit = ip->second;
2786  DetId dId = DetId(TPhit->detUnitId());
2787  if (dId.rawId() == hitId.rawId()) {
2788  // skip electron SimHits for non-electron TPs also here
2789  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2790  foundElectron = true;
2791  if (!keepEleSimHits_)
2792  continue;
2793  }
2794 
2795  float sx = TPhit->localPosition().x();
2796  float sy = TPhit->localPosition().y();
2797  float dx = sx - h_x;
2798  float dy = sy - h_y;
2799  float sig = (dx * dx * h_yy - 2 * dx * dy * h_xy + dy * dy * h_xx) / (h_xx * h_yy - h_xy * h_xy);
2800 
2801  if (sig < minSignificance) {
2802  minSignificance = sig;
2803  foundSimHit = true;
2804  simHitKey = TPhit.key();
2805  simHitID = TPhit.id();
2806  }
2807  }
2808  } //loop over matching hits
2809 
2810  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2811  ret.matchingSimHit.push_back(simHitIndex);
2812 
2813  double chargeFraction = 0.;
2814  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2815  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2816  if (found != simTrackIdToChargeFraction.end()) {
2817  chargeFraction += found->second;
2818  }
2819  }
2820  ret.xySignificance.push_back(minSignificance);
2821  ret.chargeFraction.push_back(chargeFraction);
2822 
2823  // only for debug prints
2824  ret.bunchCrossing.push_back(bx);
2825  ret.event.push_back(event);
2826 
2827  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2828  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2829 
2830  } else { //save all matching hits
2831  for (auto ip = range.first; ip != range.second; ++ip) {
2832  TrackPSimHitRef TPhit = ip->second;
2833  DetId dId = DetId(TPhit->detUnitId());
2834  if (dId.rawId() == hitId.rawId()) {
2835  // skip electron SimHits for non-electron TPs also here
2836  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2837  foundElectron = true;
2838  if (!keepEleSimHits_)
2839  continue;
2840  if (foundNonElectrons > 0)
2841  continue; //prioritize: skip electrons if non-electrons are present
2842  }
2843 
2844  foundSimHit = true;
2845  auto simHitKey = TPhit.key();
2846  auto simHitID = TPhit.id();
2847 
2848  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2849  ret.matchingSimHit.push_back(simHitIndex);
2850 
2851  double chargeFraction = 0.;
2852  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2853  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2854  if (found != simTrackIdToChargeFraction.end()) {
2855  chargeFraction += found->second;
2856  }
2857  }
2858  ret.xySignificance.push_back(minSignificance);
2859  ret.chargeFraction.push_back(chargeFraction);
2860 
2861  // only for debug prints
2862  ret.bunchCrossing.push_back(bx);
2863  ret.event.push_back(event);
2864 
2865  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2866  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2867  }
2868  }
2869  } //if/else simHitBySignificance_
2870  if (!foundSimHit) {
2871  // In case we didn't find a simhit because of filtered-out
2872  // electron SimHit, just ignore the missing SimHit.
2873  if (foundElectron && !keepEleSimHits_)
2874  continue;
2875 
2876  auto ex = cms::Exception("LogicError")
2877  << "Did not find SimHit for reco hit DetId " << hitId.rawId() << " for TP " << trackingParticle.key()
2878  << " bx:event " << bx << ":" << event << " PDGid " << trackingParticle->pdgId() << " q "
2879  << trackingParticle->charge() << " p4 " << trackingParticle->p4() << " nG4 "
2880  << trackingParticle->g4Tracks().size() << ".\nFound SimHits from detectors ";
2881  for (auto ip = range.first; ip != range.second; ++ip) {
2882  TrackPSimHitRef TPhit = ip->second;
2883  DetId dId = DetId(TPhit->detUnitId());
2884  ex << dId.rawId() << " ";
2885  }
2886  if (trackingParticle->eventId().event() != 0) {
2887  ex << "\nSince this is a TrackingParticle from pileup, check that you're running the pileup mixing in "
2888  "playback mode.";
2889  }
2890  throw ex;
2891  }
2892  }
2893  }
2894 
2895  return ret;
2896 }
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().