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 noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept 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 noexcept
 
bool wantsStreamRuns () const noexcept
 
 ~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 Phase2OTMaskContainer = edm::ContainerMask< edmNew::DetSetVector< Phase2TrackerCluster1D > >
 
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< uint64_t > ph2_usedMask
 
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
 
std::vector< std::pair< unsigned int, edm::EDGetTokenT< Phase2OTMaskContainer > > > ph2OTUseMaskTokens_
 
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 472 of file TrackingNtuple.cc.

Member Typedef Documentation

◆ DetIdAll

Definition at line 983 of file TrackingNtuple.cc.

◆ DetIdAllPhase2

Definition at line 984 of file TrackingNtuple.cc.

◆ DetIdPhase2OT

Definition at line 982 of file TrackingNtuple.cc.

◆ DetIdPixel

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

Definition at line 980 of file TrackingNtuple.cc.

◆ DetIdStrip

Definition at line 981 of file TrackingNtuple.cc.

◆ MVACollection

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

Definition at line 492 of file TrackingNtuple.cc.

◆ Phase2OTMaskContainer

Definition at line 497 of file TrackingNtuple.cc.

◆ PixelMaskContainer

Definition at line 495 of file TrackingNtuple.cc.

◆ QualityMaskCollection

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

Definition at line 493 of file TrackingNtuple.cc.

◆ StripMaskContainer

Definition at line 496 of file TrackingNtuple.cc.

Member Enumeration Documentation

◆ HitSimType

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

Definition at line 490 of file TrackingNtuple.cc.

◆ HitType

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

Definition at line 484 of file TrackingNtuple.cc.

Constructor & Destructor Documentation

◆ TrackingNtuple()

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

Definition at line 1417 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, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::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_usedMask, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, ph2OTUseMaskTokens_, 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.

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

2014  {
2015  // do anything here that needs to be done at desctruction time
2016  // (e.g. close files, deallocate resources etc.)
2017 }

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 3252 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, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::pixelStatus::mask, StripSubdetector::TIB, StripSubdetector::TOB, PbPb_ZMuSkimMuonDPG_cff::tracker, hit::x, hit::y, and hit::z.

Referenced by fillSeeds(), and fillStripMatchedHits().

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

2420  {
2421  using namespace edm;
2422  using namespace reco;
2423  using namespace std;
2424 
2425  const auto& mf = iSetup.getData(mfToken_);
2426  const TrackerTopology& tTopo = iSetup.getData(tTopoToken_);
2427  const TrackerGeometry& tracker = iSetup.getData(tGeomToken_);
2428 
2430  iEvent.getByToken(trackAssociatorToken_, theAssociator);
2431  const reco::TrackToTrackingParticleAssociator& associatorByHits = *theAssociator;
2432 
2433  LogDebug("TrackingNtuple") << "Analyzing new event";
2434 
2435  //initialize tree variables
2436  clearVariables();
2437 
2438  // FIXME: we really need to move to edm::View for reading the
2439  // TrackingParticles... Unfortunately it has non-trivial
2440  // consequences on the associator/association interfaces etc.
2442  const TrackingParticleRefVector* tmpTPptr = nullptr;
2444  edm::Handle<TrackingParticleRefVector> TPCollectionHRefVector;
2445 
2447  iEvent.getByToken(trackingParticleToken_, TPCollectionH);
2448  for (size_t i = 0, size = TPCollectionH->size(); i < size; ++i) {
2449  tmpTP.push_back(TrackingParticleRef(TPCollectionH, i));
2450  }
2451  tmpTPptr = &tmpTP;
2452  } else {
2453  iEvent.getByToken(trackingParticleRefToken_, TPCollectionHRefVector);
2454  tmpTPptr = TPCollectionHRefVector.product();
2455  }
2456  const TrackingParticleRefVector& tpCollection = *tmpTPptr;
2457 
2458  // Fill mapping from Ref::key() to index
2459  TrackingParticleRefKeyToIndex tpKeyToIndex;
2460  for (size_t i = 0; i < tpCollection.size(); ++i) {
2461  tpKeyToIndex[tpCollection[i].key()] = i;
2462  }
2463 
2464  // tracking vertices
2466  iEvent.getByToken(trackingVertexToken_, htv);
2467  const TrackingVertexCollection& tvs = *htv;
2468 
2469  // Fill mapping from Ref::key() to index
2470  TrackingVertexRefVector tvRefs;
2471  TrackingVertexRefKeyToIndex tvKeyToIndex;
2472  for (size_t i = 0; i < tvs.size(); ++i) {
2473  const TrackingVertex& v = tvs[i];
2474  if (!includeOOT_ && v.eventId().bunchCrossing() != 0) // Ignore OOTPU
2475  continue;
2476  tvKeyToIndex[i] = tvRefs.size();
2477  tvRefs.push_back(TrackingVertexRef(htv, i));
2478  }
2479 
2480  //get association maps, etc.
2481  Handle<ClusterTPAssociation> pCluster2TPListH;
2482  iEvent.getByToken(clusterTPMapToken_, pCluster2TPListH);
2483  const ClusterTPAssociation& clusterToTPMap = *pCluster2TPListH;
2485  iEvent.getByToken(simHitTPMapToken_, simHitsTPAssoc);
2486 
2487  // TP -> cluster count
2488  TrackingParticleRefKeyToCount tpKeyToClusterCount;
2489  for (const auto& clusterTP : clusterToTPMap) {
2490  tpKeyToClusterCount[clusterTP.second.key()] += 1;
2491  }
2492 
2493  // SimHit key -> index mapping
2494  SimHitRefKeyToIndex simHitRefKeyToIndex;
2495 
2496  //make a list to link TrackingParticles to its simhits
2497  std::vector<TPHitIndex> tpHitList;
2498 
2499  // Count the number of reco cluster per TP
2500 
2501  std::set<edm::ProductID> hitProductIds;
2502  std::map<edm::ProductID, size_t> seedCollToOffset;
2503 
2504  ev_run = iEvent.id().run();
2505  ev_lumi = iEvent.id().luminosityBlock();
2506  ev_event = iEvent.id().event();
2507 
2508  // Digi->Sim links for pixels and strips
2509  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> pixelDigiSimLinksHandle;
2510  iEvent.getByToken(pixelSimLinkToken_, pixelDigiSimLinksHandle);
2511  const auto& pixelDigiSimLinks = *pixelDigiSimLinksHandle;
2512 
2513  edm::Handle<edm::DetSetVector<StripDigiSimLink>> stripDigiSimLinksHandle;
2514  iEvent.getByToken(stripSimLinkToken_, stripDigiSimLinksHandle);
2515 
2516  // Phase2 OT DigiSimLink
2517  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> siphase2OTSimLinksHandle;
2518  iEvent.getByToken(siphase2OTSimLinksToken_, siphase2OTSimLinksHandle);
2519 
2520  //beamspot
2521  Handle<reco::BeamSpot> recoBeamSpotHandle;
2522  iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle);
2523  BeamSpot const& bs = *recoBeamSpotHandle;
2524  fillBeamSpot(bs);
2525 
2526  //prapare list to link matched hits to collection
2527  vector<pair<int, int>> monoStereoClusterList;
2528  if (includeAllHits_) {
2529  // simhits, only if TPs are saved as well
2531  fillSimHits(tracker, tpKeyToIndex, *simHitsTPAssoc, tTopo, simHitRefKeyToIndex, tpHitList);
2532  }
2533 
2534  //pixel hits
2536  tracker,
2537  clusterToTPMap,
2538  tpKeyToIndex,
2539  *simHitsTPAssoc,
2540  pixelDigiSimLinks,
2541  tTopo,
2542  simHitRefKeyToIndex,
2543  hitProductIds);
2544 
2545  //strip hits
2546  if (includeStripHits_) {
2547  LogDebug("TrackingNtuple") << "foundStripSimLink";
2548  const auto& stripDigiSimLinks = *stripDigiSimLinksHandle;
2550  tracker,
2551  clusterToTPMap,
2552  tpKeyToIndex,
2553  *simHitsTPAssoc,
2554  stripDigiSimLinks,
2555  tTopo,
2556  simHitRefKeyToIndex,
2557  hitProductIds);
2558 
2559  //matched hits
2560  fillStripMatchedHits(iEvent, tracker, tTopo, monoStereoClusterList);
2561  }
2562 
2563  if (includePhase2OTHits_) {
2564  LogDebug("TrackingNtuple") << "foundPhase2OTSimLinks";
2565  const auto& phase2OTSimLinks = *siphase2OTSimLinksHandle;
2567  clusterToTPMap,
2568  tracker,
2569  tpKeyToIndex,
2570  *simHitsTPAssoc,
2571  phase2OTSimLinks,
2572  tTopo,
2573  simHitRefKeyToIndex,
2574  hitProductIds);
2575  }
2576  }
2577 
2578  //seeds
2579  if (includeSeeds_) {
2580  fillSeeds(iEvent,
2581  tpCollection,
2582  tpKeyToIndex,
2583  bs,
2584  tracker,
2585  associatorByHits,
2586  clusterToTPMap,
2587  mf,
2588  tTopo,
2589  monoStereoClusterList,
2590  hitProductIds,
2591  seedCollToOffset);
2592  }
2593 
2594  //tracks
2595  edm::Handle<edm::View<reco::Track>> tracksHandle;
2596  iEvent.getByToken(trackToken_, tracksHandle);
2597  const edm::View<reco::Track>& tracks = *tracksHandle;
2598  // The associator interfaces really need to be fixed...
2600  for (edm::View<Track>::size_type i = 0; i < tracks.size(); ++i) {
2601  trackRefs.push_back(tracks.refAt(i));
2602  }
2603  std::vector<const MVACollection*> mvaColls;
2604  std::vector<const QualityMaskCollection*> qualColls;
2605  if (includeMVA_) {
2608 
2609  for (const auto& tokenTpl : mvaQualityCollectionTokens_) {
2610  iEvent.getByToken(std::get<0>(tokenTpl), hmva);
2611  iEvent.getByToken(std::get<1>(tokenTpl), hqual);
2612 
2613  mvaColls.push_back(hmva.product());
2614  qualColls.push_back(hqual.product());
2615  if (mvaColls.back()->size() != tracks.size()) {
2616  throw cms::Exception("Configuration")
2617  << "Inconsistency in track collection and MVA sizes. Track collection has " << tracks.size()
2618  << " tracks, whereas the MVA " << (mvaColls.size() - 1) << " has " << mvaColls.back()->size()
2619  << " entries. Double-check your configuration.";
2620  }
2621  if (qualColls.back()->size() != tracks.size()) {
2622  throw cms::Exception("Configuration")
2623  << "Inconsistency in track collection and quality mask sizes. Track collection has " << tracks.size()
2624  << " tracks, whereas the quality mask " << (qualColls.size() - 1) << " has " << qualColls.back()->size()
2625  << " entries. Double-check your configuration.";
2626  }
2627  }
2628  }
2629 
2631  iEvent.getByToken(vertexToken_, vertices);
2632 
2633  fillTracks(trackRefs,
2634  tracker,
2635  tpCollection,
2636  tpKeyToIndex,
2637  tpKeyToClusterCount,
2638  mf,
2639  bs,
2640  *vertices,
2641  associatorByHits,
2642  clusterToTPMap,
2643  tTopo,
2644  hitProductIds,
2645  seedCollToOffset,
2646  mvaColls,
2647  qualColls);
2648 
2650  //candidates
2651  for (auto const& token : candidateTokens_) {
2652  auto const tCandsHandle = iEvent.getHandle(token);
2653 
2656  TString label = labels.module;
2657  label.ReplaceAll("TrackCandidates", "");
2658  label.ReplaceAll("muonSeeded", "muonSeededStep");
2659  int algo = reco::TrackBase::algoByName(label.Data());
2660 
2661  fillCandidates(tCandsHandle,
2662  algo,
2663  tpCollection,
2664  tpKeyToIndex,
2665  tpKeyToClusterCount,
2666  mf,
2667  bs,
2668  *vertices,
2669  associatorByHits,
2670  clusterToTPMap,
2671  tracker,
2672  tTopo,
2673  hitProductIds,
2674  seedCollToOffset);
2675  }
2676  }
2677 
2678  //tracking particles
2679  //sort association maps with simHits
2680  std::sort(tpHitList.begin(), tpHitList.end(), tpHitIndexListLessSort);
2682  iEvent, iSetup, trackRefs, bs, tpCollection, tvKeyToIndex, associatorByHits, tpHitList, tpKeyToClusterCount);
2683 
2684  // vertices
2685  fillVertices(*vertices, trackRefs);
2686 
2687  // tracking vertices
2688  fillTrackingVertices(tvRefs, tpKeyToIndex);
2689 
2690  t->Fill();
2691 }
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:98
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 2022 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, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::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_usedMask, 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().

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

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

Referenced by analyze().

2693  {
2694  bsp_x = bs.x0();
2695  bsp_y = bs.y0();
2696  bsp_z = bs.x0();
2697  bsp_sigmax = bs.BeamWidthX();
2698  bsp_sigmay = bs.BeamWidthY();
2699  bsp_sigmaz = bs.sigmaZ();
2700 }

◆ 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 4095 of file TrackingNtuple.cc.

References reco::TrackToTrackingParticleAssociator::associateRecoToSim(), edm::RefVector< C, T, F >::at(), cms::cuda::bs, HLT_2024v14_cff::cands, OmniClusterRef::cluster_pixel(), bsc_activity_cfg::clusters, DetId::det(), HLT_2024v14_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, PixelVertexMonitor_cff::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().

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

4589  {
4590  //The following says we do not know what parameters are allowed so do no validation
4591  // Please change this to state exactly what you do use, even if it is no parameters
4593  desc.addUntracked<std::vector<edm::InputTag>>(
4594  "seedTracks",
4595  std::vector<edm::InputTag>{edm::InputTag("seedTracksinitialStepSeeds"),
4596  edm::InputTag("seedTracksdetachedTripletStepSeeds"),
4597  edm::InputTag("seedTrackspixelPairStepSeeds"),
4598  edm::InputTag("seedTrackslowPtTripletStepSeeds"),
4599  edm::InputTag("seedTracksmixedTripletStepSeeds"),
4600  edm::InputTag("seedTrackspixelLessStepSeeds"),
4601  edm::InputTag("seedTrackstobTecStepSeeds"),
4602  edm::InputTag("seedTracksjetCoreRegionalStepSeeds"),
4603  edm::InputTag("seedTracksmuonSeededSeedsInOut"),
4604  edm::InputTag("seedTracksmuonSeededSeedsOutIn")});
4605  desc.addUntracked<std::vector<edm::InputTag>>(
4606  "trackCandidates",
4607  std::vector<edm::InputTag>{edm::InputTag("initialStepTrackCandidates"),
4608  edm::InputTag("detachedTripletStepTrackCandidates"),
4609  edm::InputTag("pixelPairStepTrackCandidates"),
4610  edm::InputTag("lowPtTripletStepTrackCandidates"),
4611  edm::InputTag("mixedTripletStepTrackCandidates"),
4612  edm::InputTag("pixelLessStepTrackCandidates"),
4613  edm::InputTag("tobTecStepTrackCandidates"),
4614  edm::InputTag("jetCoreRegionalStepTrackCandidates"),
4615  edm::InputTag("muonSeededTrackCandidatesInOut"),
4616  edm::InputTag("muonSeededTrackCandidatesOutIn")});
4617  desc.addUntracked<edm::InputTag>("tracks", edm::InputTag("generalTracks"));
4618  desc.addUntracked<std::vector<std::string>>("trackMVAs", std::vector<std::string>{{"generalTracks"}});
4619 
4620  edm::ParameterSetDescription cMaskDesc;
4621  cMaskDesc.addUntracked<unsigned int>("index");
4622  cMaskDesc.addUntracked<edm::InputTag>("src");
4623  std::vector<edm::ParameterSet> cMasks;
4624  auto addMask = [&cMasks](reco::Track::TrackAlgorithm algo) {
4625  edm::ParameterSet ps;
4626  ps.addUntrackedParameter<unsigned int>("index", static_cast<unsigned int>(algo));
4627  ps.addUntrackedParameter<edm::InputTag>("src", {reco::Track::algoName(algo) + "Clusters"});
4628  cMasks.push_back(ps);
4629  };
4633  addMask(reco::Track::lowPtQuadStep);
4636  addMask(reco::Track::pixelLessStep);
4637  addMask(reco::Track::pixelPairStep);
4638  addMask(reco::Track::tobTecStep);
4639  desc.addVPSetUntracked("clusterMasks", cMaskDesc, cMasks);
4640 
4641  desc.addUntracked<edm::InputTag>("trackingParticles", edm::InputTag("mix", "MergedTrackTruth"));
4642  desc.addUntracked<bool>("trackingParticlesRef", false);
4643  desc.addUntracked<edm::InputTag>("clusterTPMap", edm::InputTag("tpClusterProducer"));
4644  desc.addUntracked<edm::InputTag>("simHitTPMap", edm::InputTag("simHitTPAssocProducer"));
4645  desc.addUntracked<edm::InputTag>("trackAssociator", edm::InputTag("quickTrackAssociatorByHits"));
4646  desc.addUntracked<edm::InputTag>("pixelDigiSimLink", edm::InputTag("simSiPixelDigis"));
4647  desc.addUntracked<edm::InputTag>("stripDigiSimLink", edm::InputTag("simSiStripDigis"));
4648  desc.addUntracked<edm::InputTag>("phase2OTSimLink", edm::InputTag(""));
4649  desc.addUntracked<edm::InputTag>("beamSpot", edm::InputTag("offlineBeamSpot"));
4650  desc.addUntracked<edm::InputTag>("pixelRecHits", edm::InputTag("siPixelRecHits"));
4651  desc.addUntracked<edm::InputTag>("stripRphiRecHits", edm::InputTag("siStripMatchedRecHits", "rphiRecHit"));
4652  desc.addUntracked<edm::InputTag>("stripStereoRecHits", edm::InputTag("siStripMatchedRecHits", "stereoRecHit"));
4653  desc.addUntracked<edm::InputTag>("stripMatchedRecHits", edm::InputTag("siStripMatchedRecHits", "matchedRecHit"));
4654  desc.addUntracked<edm::InputTag>("phase2OTRecHits", edm::InputTag("siPhase2RecHits"));
4655  desc.addUntracked<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
4656  desc.addUntracked<edm::InputTag>("trackingVertices", edm::InputTag("mix", "MergedTrackTruth"));
4657  desc.addUntracked<edm::InputTag>("trackingParticleNlayers",
4658  edm::InputTag("trackingParticleNumberOfLayersProducer", "trackerLayers"));
4659  desc.addUntracked<edm::InputTag>("trackingParticleNpixellayers",
4660  edm::InputTag("trackingParticleNumberOfLayersProducer", "pixelLayers"));
4661  desc.addUntracked<edm::InputTag>("trackingParticleNstripstereolayers",
4662  edm::InputTag("trackingParticleNumberOfLayersProducer", "stripStereoLayers"));
4663  desc.addUntracked<std::string>("TTRHBuilder", "WithTrackAngle")
4664  ->setComment("currently not used: keep for possible future use");
4665  desc.addUntracked<bool>("includeSeeds", false);
4666  desc.addUntracked<bool>("includeTrackCandidates", false);
4667  desc.addUntracked<bool>("addSeedCurvCov", false);
4668  desc.addUntracked<bool>("includeAllHits", false);
4669  desc.addUntracked<bool>("includeOnTrackHitData", false);
4670  desc.addUntracked<bool>("includeMVA", true);
4671  desc.addUntracked<bool>("includeTrackingParticles", true);
4672  desc.addUntracked<bool>("includeOOT", false);
4673  desc.addUntracked<bool>("keepEleSimHits", false);
4674  desc.addUntracked<bool>("saveSimHitsP3", false);
4675  desc.addUntracked<bool>("simHitBySignificance", false);
4676  descriptions.add("trackingNtuple", desc);
4677 }
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 3318 of file TrackingNtuple.cc.

References edmNew::DetSetVector< T >::begin(), TrackingNtuple::SimHitData::bunchCrossing, edmNew::DetSetVector< T >::end(), TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::pixelStatus::mask, 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_usedMask, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, ph2OTUseMaskTokens_, Phase2OT, phase2OTRecHitToken_, 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().

3326  {
3327  std::vector<std::pair<uint64_t, Phase2OTMaskContainer const*>> phase2OTMasks;
3328  phase2OTMasks.reserve(ph2OTUseMaskTokens_.size());
3329  for (const auto& itoken : ph2OTUseMaskTokens_) {
3331  iEvent.getByToken(itoken.second, aH);
3332  phase2OTMasks.emplace_back(1 << itoken.first, aH.product());
3333  }
3334  auto ph2OTUsedMask = [&phase2OTMasks](size_t key) {
3335  uint64_t mask = 0;
3336  for (auto const& m : phase2OTMasks) {
3337  if (m.second->mask(key))
3338  mask |= m.first;
3339  }
3340  return mask;
3341  };
3342 
3344  iEvent.getByToken(phase2OTRecHitToken_, phase2OTHits);
3345  for (auto it = phase2OTHits->begin(); it != phase2OTHits->end(); it++) {
3346  const DetId hitId = it->detId();
3347  for (auto hit = it->begin(); hit != it->end(); hit++) {
3348  hitProductIds.insert(hit->cluster().id());
3349 
3350  const int key = hit->cluster().key();
3351  const int lay = tTopo.layer(hitId);
3352 
3353  ph2_isBarrel.push_back(hitId.subdetId() == 1);
3354  ph2_detId.push_back(tracker, tTopo, hitId);
3355  ph2_trkIdx.emplace_back(); // filled in fillTracks
3356  ph2_onTrk_x.emplace_back();
3357  ph2_onTrk_y.emplace_back();
3358  ph2_onTrk_z.emplace_back();
3359  ph2_onTrk_xx.emplace_back();
3360  ph2_onTrk_xy.emplace_back();
3361  ph2_onTrk_yy.emplace_back();
3362  ph2_onTrk_yz.emplace_back();
3363  ph2_onTrk_zz.emplace_back();
3364  ph2_onTrk_zx.emplace_back();
3365  ph2_tcandIdx.emplace_back(); // filled in fillCandidates
3366  ph2_seeIdx.emplace_back(); // filled in fillSeeds
3367  ph2_x.push_back(hit->globalPosition().x());
3368  ph2_y.push_back(hit->globalPosition().y());
3369  ph2_z.push_back(hit->globalPosition().z());
3370  ph2_xx.push_back(hit->globalPositionError().cxx());
3371  ph2_xy.push_back(hit->globalPositionError().cyx());
3372  ph2_yy.push_back(hit->globalPositionError().cyy());
3373  ph2_yz.push_back(hit->globalPositionError().czy());
3374  ph2_zz.push_back(hit->globalPositionError().czz());
3375  ph2_zx.push_back(hit->globalPositionError().czx());
3376  ph2_radL.push_back(hit->surface()->mediumProperties().radLen());
3377  ph2_bbxi.push_back(hit->surface()->mediumProperties().xi());
3378  ph2_usedMask.push_back(ph2OTUsedMask(hit->firstClusterRef().key()));
3379 
3380  LogTrace("TrackingNtuple") << "phase2 OT cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
3381  << " rawId=" << hitId.rawId() << " pos =" << hit->globalPosition();
3382 
3384  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3385  hitId,
3386  key,
3387  *hit,
3388  clusterToTPMap,
3389  tpKeyToIndex,
3390  simHitsTPAssoc,
3391  digiSimLink,
3392  simHitRefKeyToIndex,
3394  ph2_xySignificance.push_back(simHitData.xySignificance);
3395  ph2_simHitIdx.push_back(simHitData.matchingSimHit);
3396  ph2_simType.push_back(static_cast<int>(simHitData.type));
3397  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3398  if (!simHitData.matchingSimHit.empty()) {
3399  const auto simHitIdx = simHitData.matchingSimHit[0];
3400  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3401  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3402  << " energyLoss=" << simhit_eloss[simHitIdx]
3403  << " particleType=" << simhit_particle[simHitIdx]
3404  << " processType=" << simhit_process[simHitIdx]
3405  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3406  << " event=" << simHitData.event[0];
3407  }
3408  }
3409  }
3410  }
3411 }
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)
T const * product() const
Definition: Handle.h:70
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::pair< unsigned int, edm::EDGetTokenT< Phase2OTMaskContainer > > > ph2OTUseMaskTokens_
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_
std::vector< uint64_t > ph2_usedMask
unsigned int id
Definition: DetId.h:17
std::vector< float > ph2_x
const_iterator begin(bool update=false) const
unsigned long long uint64_t
Definition: Time.h:13
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 3026 of file TrackingNtuple.cc.

References TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, TrackingNtuple::SimHitData::event, hit::id, iEvent, includeTrackingParticles_, ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::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().

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

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

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

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

Referenced by analyze().

3300  {
3301  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3302  stripMasks.reserve(stripUseMaskTokens_.size());
3303  for (const auto& itoken : stripUseMaskTokens_) {
3305  iEvent.getByToken(itoken.second, aH);
3306  stripMasks.emplace_back(1 << itoken.first, aH.product());
3307  }
3308 
3310  iEvent.getByToken(stripMatchedRecHitToken_, matchedHits);
3311  for (auto it = matchedHits->begin(); it != matchedHits->end(); it++) {
3312  for (auto hit = it->begin(); hit != it->end(); hit++) {
3313  addStripMatchedHit(*hit, tracker, tTopo, stripMasks, monoStereoClusterList);
3314  }
3315  }
3316 }
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 3123 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, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::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().

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

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

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

Referenced by fillSeeds().

4493  {
4494  if (sim_seedIdx.empty()) // first call
4495  sim_seedIdx.resize(tpCollection.size());
4496 
4497  for (const auto& keyVal : simRecColl) {
4498  const auto& tpRef = keyVal.key;
4499  auto found = tpKeyToIndex.find(tpRef.key());
4500  if (found == tpKeyToIndex.end())
4501  throw cms::Exception("Assert") << __FILE__ << ":" << __LINE__ << " fillTrackingParticlesForSeeds: tpRef.key() "
4502  << tpRef.key() << " not found from tpKeyToIndex. tpKeyToIndex size "
4503  << tpKeyToIndex.size();
4504  const auto tpIndex = found->second;
4505  for (const auto& pair : keyVal.val) {
4506  const auto& seedRef = pair.first->seedRef();
4507  sim_seedIdx[tpIndex].push_back(seedOffset + seedRef.key());
4508  }
4509  }
4510 }
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 4545 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().

4546  {
4547  int current_event = -1;
4548  for (const auto& ref : trackingVertices) {
4549  const TrackingVertex v = *ref;
4550  if (v.eventId().event() != current_event) {
4551  // next PV
4552  current_event = v.eventId().event();
4553  simpv_idx.push_back(simvtx_x.size());
4554  }
4555 
4556  unsigned int processType = std::numeric_limits<unsigned int>::max();
4557  if (!v.g4Vertices().empty()) {
4558  processType = v.g4Vertices()[0].processType();
4559  }
4560 
4561  simvtx_event.push_back(v.eventId().event());
4562  simvtx_bunchCrossing.push_back(v.eventId().bunchCrossing());
4563  simvtx_processType.push_back(processType);
4564 
4565  simvtx_x.push_back(v.position().x());
4566  simvtx_y.push_back(v.position().y());
4567  simvtx_z.push_back(v.position().z());
4568 
4569  auto fill = [&](const TrackingParticleRefVector& tps, std::vector<int>& idx) {
4570  for (const auto& tpRef : tps) {
4571  auto found = tpKeyToIndex.find(tpRef.key());
4572  if (found != tpKeyToIndex.end()) {
4573  idx.push_back(found->second);
4574  }
4575  }
4576  };
4577 
4578  std::vector<int> sourceIdx;
4579  std::vector<int> daughterIdx;
4580  fill(v.sourceTracks(), sourceIdx);
4581  fill(v.daughterTracks(), daughterIdx);
4582 
4583  simvtx_sourceSimIdx.push_back(sourceIdx);
4584  simvtx_daughterSimIdx.push_back(daughterIdx);
4585  }
4586 }
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 3785 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_2024v14_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, PixelVertexMonitor_cff::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().

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

4513  {
4514  for (size_t iVertex = 0, size = vertices.size(); iVertex < size; ++iVertex) {
4515  const reco::Vertex& vertex = vertices[iVertex];
4516  vtx_x.push_back(vertex.x());
4517  vtx_y.push_back(vertex.y());
4518  vtx_z.push_back(vertex.z());
4519  vtx_xErr.push_back(vertex.xError());
4520  vtx_yErr.push_back(vertex.yError());
4521  vtx_zErr.push_back(vertex.zError());
4522  vtx_chi2.push_back(vertex.chi2());
4523  vtx_ndof.push_back(vertex.ndof());
4524  vtx_fake.push_back(vertex.isFake());
4525  vtx_valid.push_back(vertex.isValid());
4526 
4527  std::vector<int> trkIdx;
4528  for (auto iTrack = vertex.tracks_begin(); iTrack != vertex.tracks_end(); ++iTrack) {
4529  // Ignore link if vertex was fit from a track collection different from the input
4530  if (iTrack->id() != tracks.id())
4531  continue;
4532 
4533  trkIdx.push_back(iTrack->key());
4534 
4535  if (trk_vtxIdx[iTrack->key()] != -1) {
4536  throw cms::Exception("LogicError") << "Vertex index has already been set for track " << iTrack->key() << " to "
4537  << trk_vtxIdx[iTrack->key()] << "; was trying to set it to " << iVertex;
4538  }
4539  trk_vtxIdx[iTrack->key()] = iVertex;
4540  }
4541  vtx_trkIdx.push_back(trkIdx);
4542  }
4543 }
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 2716 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_2024v14_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().

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

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

Referenced by fillTrackingParticles().

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

◆ tpHitIndexListLessSort()

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

Definition at line 508 of file TrackingNtuple.cc.

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

Referenced by analyze().

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

Member Data Documentation

◆ addSeedCurvCov_

const bool TrackingNtuple::addSeedCurvCov_
private

Definition at line 692 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ beamSpotToken_

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

Definition at line 673 of file TrackingNtuple.cc.

Referenced by analyze().

◆ bsp_sigmax

float TrackingNtuple::bsp_sigmax
private

Definition at line 1327 of file TrackingNtuple.cc.

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

◆ bsp_sigmay

float TrackingNtuple::bsp_sigmay
private

Definition at line 1328 of file TrackingNtuple.cc.

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

◆ bsp_sigmaz

float TrackingNtuple::bsp_sigmaz
private

Definition at line 1329 of file TrackingNtuple.cc.

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

◆ bsp_x

float TrackingNtuple::bsp_x
private

Definition at line 1324 of file TrackingNtuple.cc.

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

◆ bsp_y

float TrackingNtuple::bsp_y
private

Definition at line 1325 of file TrackingNtuple.cc.

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

◆ bsp_z

float TrackingNtuple::bsp_z
private

Definition at line 1326 of file TrackingNtuple.cc.

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

◆ builderName_

std::string TrackingNtuple::builderName_
private

Definition at line 689 of file TrackingNtuple.cc.

◆ candidateTokens_

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

Definition at line 660 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ clusterTPMapToken_

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

Definition at line 666 of file TrackingNtuple.cc.

Referenced by analyze().

◆ ev_event

edm::EventNumber_t TrackingNtuple::ev_event
private

Definition at line 989 of file TrackingNtuple.cc.

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

◆ ev_lumi

edm::LuminosityBlockNumber_t TrackingNtuple::ev_lumi
private

Definition at line 988 of file TrackingNtuple.cc.

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

◆ ev_run

edm::RunNumber_t TrackingNtuple::ev_run
private

Definition at line 987 of file TrackingNtuple.cc.

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

◆ glu_bbxi

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

Definition at line 1255 of file TrackingNtuple.cc.

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

◆ glu_chargePerCM

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

Definition at line 1256 of file TrackingNtuple.cc.

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

◆ glu_clustSizeMono

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

Definition at line 1257 of file TrackingNtuple.cc.

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

◆ glu_clustSizeStereo

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

Definition at line 1258 of file TrackingNtuple.cc.

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

◆ glu_detId

DetIdStrip TrackingNtuple::glu_detId
private

Definition at line 1240 of file TrackingNtuple.cc.

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

◆ glu_isBarrel

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

Definition at line 1239 of file TrackingNtuple.cc.

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

◆ glu_monoIdx

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

Definition at line 1241 of file TrackingNtuple.cc.

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

◆ glu_radL

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

Definition at line 1254 of file TrackingNtuple.cc.

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

◆ glu_seeIdx

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

Definition at line 1243 of file TrackingNtuple.cc.

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

◆ glu_stereoIdx

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

Definition at line 1242 of file TrackingNtuple.cc.

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

◆ glu_usedMaskMono

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

Definition at line 1259 of file TrackingNtuple.cc.

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

◆ glu_usedMaskStereo

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

Definition at line 1260 of file TrackingNtuple.cc.

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

◆ glu_x

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

Definition at line 1244 of file TrackingNtuple.cc.

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

◆ glu_xx

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

Definition at line 1247 of file TrackingNtuple.cc.

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

◆ glu_xy

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

Definition at line 1248 of file TrackingNtuple.cc.

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

◆ glu_y

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

Definition at line 1245 of file TrackingNtuple.cc.

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

◆ glu_yy

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

Definition at line 1249 of file TrackingNtuple.cc.

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

◆ glu_yz

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

Definition at line 1250 of file TrackingNtuple.cc.

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

◆ glu_z

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

Definition at line 1246 of file TrackingNtuple.cc.

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

◆ glu_zx

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

Definition at line 1252 of file TrackingNtuple.cc.

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

◆ glu_zz

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

Definition at line 1251 of file TrackingNtuple.cc.

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

◆ includeAllHits_

const bool TrackingNtuple::includeAllHits_
private

Definition at line 693 of file TrackingNtuple.cc.

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

◆ includeMVA_

const bool TrackingNtuple::includeMVA_
private

Definition at line 695 of file TrackingNtuple.cc.

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

◆ includeOnTrackHitData_

const bool TrackingNtuple::includeOnTrackHitData_
private

Definition at line 694 of file TrackingNtuple.cc.

Referenced by TrackingNtuple().

◆ includeOOT_

const bool TrackingNtuple::includeOOT_
private

Definition at line 697 of file TrackingNtuple.cc.

Referenced by analyze().

◆ includePhase2OTHits_

bool TrackingNtuple::includePhase2OTHits_
private

Definition at line 672 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ includeSeeds_

const bool TrackingNtuple::includeSeeds_
private

Definition at line 690 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 691 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 1300 of file TrackingNtuple.cc.

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

◆ inv_detId_phase2

DetIdAllPhase2 TrackingNtuple::inv_detId_phase2
private

Definition at line 1301 of file TrackingNtuple.cc.

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

◆ inv_isBarrel

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

Definition at line 1299 of file TrackingNtuple.cc.

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

◆ inv_type

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

Definition at line 1302 of file TrackingNtuple.cc.

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

◆ keepEleSimHits_

const bool TrackingNtuple::keepEleSimHits_
private

Definition at line 698 of file TrackingNtuple.cc.

Referenced by fillSimHits(), and matchCluster().

◆ mfToken_

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

Definition at line 653 of file TrackingNtuple.cc.

Referenced by analyze().

◆ mvaQualityCollectionTokens_

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

Definition at line 663 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ parametersDefiner_

ParametersDefinerForTP TrackingNtuple::parametersDefiner_
private

Definition at line 703 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ ph2_bbxi

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

Definition at line 1293 of file TrackingNtuple.cc.

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

◆ ph2_detId

DetIdPhase2OT TrackingNtuple::ph2_detId
private

Definition at line 1265 of file TrackingNtuple.cc.

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

◆ ph2_isBarrel

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

Definition at line 1264 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 1267 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 1270 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 1271 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 1268 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 1272 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 1273 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 1269 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 1275 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 1274 of file TrackingNtuple.cc.

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

◆ ph2_radL

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

Definition at line 1292 of file TrackingNtuple.cc.

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

◆ ph2_seeIdx

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

Definition at line 1277 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 1278 of file TrackingNtuple.cc.

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

◆ ph2_simType

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

Definition at line 1281 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 1266 of file TrackingNtuple.cc.

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

◆ ph2_usedMask

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

Definition at line 1294 of file TrackingNtuple.cc.

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

◆ ph2_x

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

Definition at line 1282 of file TrackingNtuple.cc.

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

◆ ph2_xx

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

Definition at line 1285 of file TrackingNtuple.cc.

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

◆ ph2_xy

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

Definition at line 1286 of file TrackingNtuple.cc.

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

◆ ph2_xySignificance

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

Definition at line 1279 of file TrackingNtuple.cc.

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

◆ ph2_y

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

Definition at line 1283 of file TrackingNtuple.cc.

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

◆ ph2_yy

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

Definition at line 1287 of file TrackingNtuple.cc.

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

◆ ph2_yz

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

Definition at line 1288 of file TrackingNtuple.cc.

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

◆ ph2_z

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

Definition at line 1284 of file TrackingNtuple.cc.

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

◆ ph2_zx

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

Definition at line 1290 of file TrackingNtuple.cc.

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

◆ ph2_zz

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

Definition at line 1289 of file TrackingNtuple.cc.

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

◆ ph2OTUseMaskTokens_

std::vector<std::pair<unsigned int, edm::EDGetTokenT<Phase2OTMaskContainer> > > TrackingNtuple::ph2OTUseMaskTokens_
private

Definition at line 687 of file TrackingNtuple.cc.

Referenced by fillPhase2OTHits(), and TrackingNtuple().

◆ phase2OTRecHitToken_

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

Definition at line 678 of file TrackingNtuple.cc.

Referenced by fillPhase2OTHits().

◆ pix_bbxi

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

Definition at line 1196 of file TrackingNtuple.cc.

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

◆ pix_chargeFraction

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

Definition at line 1183 of file TrackingNtuple.cc.

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

◆ pix_clustSizeCol

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

Definition at line 1197 of file TrackingNtuple.cc.

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

◆ pix_clustSizeRow

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

Definition at line 1198 of file TrackingNtuple.cc.

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

◆ pix_detId

DetIdPixel TrackingNtuple::pix_detId
private

Definition at line 1168 of file TrackingNtuple.cc.

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

◆ pix_isBarrel

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

Definition at line 1167 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 1170 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 1173 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 1174 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 1171 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 1175 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 1176 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 1172 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 1178 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 1177 of file TrackingNtuple.cc.

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

◆ pix_radL

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

Definition at line 1195 of file TrackingNtuple.cc.

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

◆ pix_seeIdx

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

Definition at line 1180 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 1181 of file TrackingNtuple.cc.

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

◆ pix_simType

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

Definition at line 1184 of file TrackingNtuple.cc.

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

◆ pix_tcandIdx

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

Definition at line 1179 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 1169 of file TrackingNtuple.cc.

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

◆ pix_usedMask

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

Definition at line 1199 of file TrackingNtuple.cc.

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

◆ pix_x

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

Definition at line 1185 of file TrackingNtuple.cc.

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

◆ pix_xx

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

Definition at line 1188 of file TrackingNtuple.cc.

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

◆ pix_xy

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

Definition at line 1189 of file TrackingNtuple.cc.

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

◆ pix_xySignificance

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

Definition at line 1182 of file TrackingNtuple.cc.

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

◆ pix_y

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

Definition at line 1186 of file TrackingNtuple.cc.

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

◆ pix_yy

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

Definition at line 1190 of file TrackingNtuple.cc.

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

◆ pix_yz

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

Definition at line 1191 of file TrackingNtuple.cc.

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

◆ pix_z

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

Definition at line 1187 of file TrackingNtuple.cc.

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

◆ pix_zx

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

Definition at line 1193 of file TrackingNtuple.cc.

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

◆ pix_zz

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

Definition at line 1192 of file TrackingNtuple.cc.

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

◆ pixelRecHitToken_

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

Definition at line 674 of file TrackingNtuple.cc.

Referenced by fillPixelHits().

◆ pixelSimLinkToken_

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

Definition at line 669 of file TrackingNtuple.cc.

Referenced by analyze().

◆ pixelUseMaskTokens_

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

Definition at line 685 of file TrackingNtuple.cc.

Referenced by fillPixelHits(), and TrackingNtuple().

◆ saveSimHitsP3_

const bool TrackingNtuple::saveSimHitsP3_
private

Definition at line 699 of file TrackingNtuple.cc.

Referenced by fillSimHits(), and TrackingNtuple().

◆ see_algo

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

Definition at line 1368 of file TrackingNtuple.cc.

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

◆ see_bestFromFirstHitSimTrkIdx

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

Definition at line 1376 of file TrackingNtuple.cc.

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

◆ see_bestFromFirstHitSimTrkShareFrac

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

Definition at line 1377 of file TrackingNtuple.cc.

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

◆ see_bestSimTrkIdx

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

Definition at line 1374 of file TrackingNtuple.cc.

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

◆ see_bestSimTrkShareFrac

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

Definition at line 1375 of file TrackingNtuple.cc.

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

◆ see_chi2

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

Definition at line 1347 of file TrackingNtuple.cc.

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

◆ see_dxy

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

Definition at line 1340 of file TrackingNtuple.cc.

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

◆ see_dxyErr

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

Definition at line 1345 of file TrackingNtuple.cc.

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

◆ see_dz

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

Definition at line 1341 of file TrackingNtuple.cc.

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

◆ see_dzErr

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

Definition at line 1346 of file TrackingNtuple.cc.

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

◆ see_eta

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

Definition at line 1338 of file TrackingNtuple.cc.

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

◆ see_etaErr

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

Definition at line 1343 of file TrackingNtuple.cc.

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

◆ see_fitok

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

Definition at line 1333 of file TrackingNtuple.cc.

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

◆ see_hitIdx

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

Definition at line 1380 of file TrackingNtuple.cc.

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

◆ see_hitType

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

Definition at line 1381 of file TrackingNtuple.cc.

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

◆ see_isTrue

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

Definition at line 1373 of file TrackingNtuple.cc.

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

◆ see_nCands

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

Definition at line 1370 of file TrackingNtuple.cc.

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

◆ see_nCluster

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

Definition at line 1367 of file TrackingNtuple.cc.

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

◆ see_nGlued

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

Definition at line 1364 of file TrackingNtuple.cc.

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

◆ see_nPhase2OT

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

Definition at line 1366 of file TrackingNtuple.cc.

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

◆ see_nPixel

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

Definition at line 1363 of file TrackingNtuple.cc.

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

◆ see_nStrip

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

Definition at line 1365 of file TrackingNtuple.cc.

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

◆ see_nValid

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

Definition at line 1362 of file TrackingNtuple.cc.

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

◆ see_offset

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

Definition at line 1383 of file TrackingNtuple.cc.

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

◆ see_phi

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

Definition at line 1339 of file TrackingNtuple.cc.

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

◆ see_phiErr

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

Definition at line 1344 of file TrackingNtuple.cc.

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

◆ see_pt

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

Definition at line 1337 of file TrackingNtuple.cc.

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

◆ see_ptErr

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

Definition at line 1342 of file TrackingNtuple.cc.

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

◆ see_px

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

Definition at line 1334 of file TrackingNtuple.cc.

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

◆ see_py

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

Definition at line 1335 of file TrackingNtuple.cc.

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

◆ see_pz

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

Definition at line 1336 of file TrackingNtuple.cc.

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

◆ see_q

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

Definition at line 1361 of file TrackingNtuple.cc.

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

◆ see_simTrkIdx

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

Definition at line 1379 of file TrackingNtuple.cc.

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

◆ see_simTrkShareFrac

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

Definition at line 1378 of file TrackingNtuple.cc.

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

◆ see_stateCurvCov

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

Definition at line 1360 of file TrackingNtuple.cc.

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

◆ see_statePt

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

Definition at line 1348 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbPx

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

Definition at line 1357 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbPy

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

Definition at line 1358 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbPz

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

Definition at line 1359 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbX

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

Definition at line 1354 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbY

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

Definition at line 1355 of file TrackingNtuple.cc.

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

◆ see_stateTrajGlbZ

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

Definition at line 1356 of file TrackingNtuple.cc.

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

◆ see_stateTrajPx

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

Definition at line 1351 of file TrackingNtuple.cc.

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

◆ see_stateTrajPy

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

Definition at line 1352 of file TrackingNtuple.cc.

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

◆ see_stateTrajPz

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

Definition at line 1353 of file TrackingNtuple.cc.

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

◆ see_stateTrajX

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

Definition at line 1349 of file TrackingNtuple.cc.

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

◆ see_stateTrajY

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

Definition at line 1350 of file TrackingNtuple.cc.

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

◆ see_stopReason

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

Definition at line 1369 of file TrackingNtuple.cc.

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

◆ see_tcandIdx

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

Definition at line 1372 of file TrackingNtuple.cc.

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

◆ see_trkIdx

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

Definition at line 1371 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 658 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ seedTokens_

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

Definition at line 657 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

◆ sim_bunchCrossing

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

Definition at line 1128 of file TrackingNtuple.cc.

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

◆ sim_decayVtxIdx

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

Definition at line 1162 of file TrackingNtuple.cc.

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

◆ sim_eta

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

Definition at line 1136 of file TrackingNtuple.cc.

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

◆ sim_event

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

Definition at line 1127 of file TrackingNtuple.cc.

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

◆ sim_genPdgIds

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

Definition at line 1130 of file TrackingNtuple.cc.

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

◆ sim_isFromBHadron

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

Definition at line 1131 of file TrackingNtuple.cc.

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

◆ sim_n3DLay

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

Definition at line 1152 of file TrackingNtuple.cc.

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

◆ sim_nLay

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

Definition at line 1150 of file TrackingNtuple.cc.

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

◆ sim_nPixel

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

Definition at line 1148 of file TrackingNtuple.cc.

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

◆ sim_nPixelLay

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

Definition at line 1151 of file TrackingNtuple.cc.

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

◆ sim_nRecoClusters

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

Definition at line 1156 of file TrackingNtuple.cc.

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

◆ sim_nStrip

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

Definition at line 1149 of file TrackingNtuple.cc.

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

◆ sim_nTrackerHits

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

Definition at line 1154 of file TrackingNtuple.cc.

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

◆ sim_nValid

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

Definition at line 1147 of file TrackingNtuple.cc.

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

◆ sim_parentVtxIdx

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

Definition at line 1161 of file TrackingNtuple.cc.

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

◆ sim_pca_cotTheta

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

Definition at line 1141 of file TrackingNtuple.cc.

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

◆ sim_pca_dxy

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

Definition at line 1143 of file TrackingNtuple.cc.

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

◆ sim_pca_dz

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

Definition at line 1144 of file TrackingNtuple.cc.

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

◆ sim_pca_eta

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

Definition at line 1139 of file TrackingNtuple.cc.

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

◆ sim_pca_lambda

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

Definition at line 1140 of file TrackingNtuple.cc.

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

◆ sim_pca_phi

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

Definition at line 1142 of file TrackingNtuple.cc.

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

◆ sim_pca_pt

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

Definition at line 1138 of file TrackingNtuple.cc.

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

◆ sim_pdgId

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

Definition at line 1129 of file TrackingNtuple.cc.

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

◆ sim_phi

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

Definition at line 1137 of file TrackingNtuple.cc.

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

◆ sim_pt

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

Definition at line 1135 of file TrackingNtuple.cc.

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

◆ sim_px

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

Definition at line 1132 of file TrackingNtuple.cc.

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

◆ sim_py

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

Definition at line 1133 of file TrackingNtuple.cc.

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

◆ sim_pz

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

Definition at line 1134 of file TrackingNtuple.cc.

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

◆ sim_q

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

Definition at line 1145 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 1163 of file TrackingNtuple.cc.

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

◆ sim_trkIdx

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

Definition at line 1158 of file TrackingNtuple.cc.

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

◆ sim_trkShareFrac

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

Definition at line 1159 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 1320 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 1311 of file TrackingNtuple.cc.

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

◆ simhit_py

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

Definition at line 1312 of file TrackingNtuple.cc.

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

◆ simhit_pz

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

Definition at line 1313 of file TrackingNtuple.cc.

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

◆ simhit_simTrkIdx

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

Definition at line 1319 of file TrackingNtuple.cc.

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

◆ simhit_tof

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

Definition at line 1317 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 700 of file TrackingNtuple.cc.

Referenced by matchCluster(), and TrackingNtuple().

◆ simHitTPMapToken_

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

Definition at line 667 of file TrackingNtuple.cc.

Referenced by analyze().

◆ simpv_idx

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

Definition at line 1411 of file TrackingNtuple.cc.

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

◆ simvtx_bunchCrossing

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

Definition at line 1404 of file TrackingNtuple.cc.

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

◆ simvtx_daughterSimIdx

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

Definition at line 1410 of file TrackingNtuple.cc.

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

◆ simvtx_event

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

Definition at line 1403 of file TrackingNtuple.cc.

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

◆ simvtx_processType

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

Definition at line 1405 of file TrackingNtuple.cc.

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

◆ simvtx_sourceSimIdx

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

Definition at line 1409 of file TrackingNtuple.cc.

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

◆ simvtx_x

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

Definition at line 1406 of file TrackingNtuple.cc.

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

◆ simvtx_y

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

Definition at line 1407 of file TrackingNtuple.cc.

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

◆ simvtx_z

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

Definition at line 1408 of file TrackingNtuple.cc.

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

◆ siphase2OTSimLinksToken_

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

Definition at line 671 of file TrackingNtuple.cc.

Referenced by analyze().

◆ str_bbxi

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

Definition at line 1232 of file TrackingNtuple.cc.

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

◆ str_chargeFraction

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

Definition at line 1219 of file TrackingNtuple.cc.

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

◆ str_chargePerCM

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

Definition at line 1233 of file TrackingNtuple.cc.

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

◆ str_clustSize

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

Definition at line 1234 of file TrackingNtuple.cc.

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

◆ str_detId

DetIdStrip TrackingNtuple::str_detId
private

Definition at line 1204 of file TrackingNtuple.cc.

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

◆ str_isBarrel

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

Definition at line 1203 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 1231 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 1217 of file TrackingNtuple.cc.

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

◆ str_simType

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

Definition at line 1220 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 1235 of file TrackingNtuple.cc.

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

◆ str_x

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

Definition at line 1221 of file TrackingNtuple.cc.

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

◆ str_xx

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

Definition at line 1224 of file TrackingNtuple.cc.

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

◆ str_xy

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

Definition at line 1225 of file TrackingNtuple.cc.

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

◆ str_xySignificance

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

Definition at line 1218 of file TrackingNtuple.cc.

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

◆ str_y

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

Definition at line 1222 of file TrackingNtuple.cc.

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

◆ str_yy

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

Definition at line 1226 of file TrackingNtuple.cc.

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

◆ str_yz

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

Definition at line 1227 of file TrackingNtuple.cc.

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

◆ str_z

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

Definition at line 1223 of file TrackingNtuple.cc.

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

◆ str_zx

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

Definition at line 1229 of file TrackingNtuple.cc.

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

◆ str_zz

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

Definition at line 1228 of file TrackingNtuple.cc.

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

◆ stripMatchedRecHitToken_

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

Definition at line 677 of file TrackingNtuple.cc.

Referenced by fillStripMatchedHits().

◆ stripRphiRecHitToken_

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

Definition at line 675 of file TrackingNtuple.cc.

Referenced by fillStripRphiStereoHits().

◆ stripSimLinkToken_

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

Definition at line 670 of file TrackingNtuple.cc.

Referenced by analyze().

◆ stripStereoRecHitToken_

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

Definition at line 676 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 705 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ tcand_algo

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

Definition at line 1104 of file TrackingNtuple.cc.

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

◆ tcand_bestFromFirstHitSimTrkIdx

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

Definition at line 1114 of file TrackingNtuple.cc.

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

◆ tcand_bestFromFirstHitSimTrkNChi2

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

Definition at line 1118 of file TrackingNtuple.cc.

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

◆ tcand_bestFromFirstHitSimTrkShareFrac

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

Definition at line 1115 of file TrackingNtuple.cc.

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

◆ tcand_bestFromFirstHitSimTrkShareFracSimClusterDenom

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

Definition at line 1117 of file TrackingNtuple.cc.

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

◆ tcand_bestFromFirstHitSimTrkShareFracSimDenom

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

Definition at line 1116 of file TrackingNtuple.cc.

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

◆ tcand_bestSimTrkIdx

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

Definition at line 1109 of file TrackingNtuple.cc.

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

◆ tcand_bestSimTrkNChi2

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

Definition at line 1113 of file TrackingNtuple.cc.

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

◆ tcand_bestSimTrkShareFrac

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

Definition at line 1110 of file TrackingNtuple.cc.

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

◆ tcand_bestSimTrkShareFracSimClusterDenom

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

Definition at line 1112 of file TrackingNtuple.cc.

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

◆ tcand_bestSimTrkShareFracSimDenom

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

Definition at line 1111 of file TrackingNtuple.cc.

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

◆ tcand_hitIdx

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

Definition at line 1122 of file TrackingNtuple.cc.

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

◆ tcand_hitType

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

Definition at line 1123 of file TrackingNtuple.cc.

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

◆ tcand_isTrue

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

Definition at line 1108 of file TrackingNtuple.cc.

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

◆ tcand_lambdaErr

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

Definition at line 1094 of file TrackingNtuple.cc.

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

◆ tcand_nCluster

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

Definition at line 1103 of file TrackingNtuple.cc.

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

◆ tcand_ndof

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

Definition at line 1098 of file TrackingNtuple.cc.

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

◆ tcand_nPixel

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

Definition at line 1101 of file TrackingNtuple.cc.

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

◆ tcand_nStrip

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

Definition at line 1102 of file TrackingNtuple.cc.

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

◆ tcand_nValid

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

Definition at line 1100 of file TrackingNtuple.cc.

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

◆ tcand_pca_dxy

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

Definition at line 1078 of file TrackingNtuple.cc.

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

◆ tcand_pca_dxyErr

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

Definition at line 1084 of file TrackingNtuple.cc.

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

◆ tcand_pca_dz

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

Definition at line 1079 of file TrackingNtuple.cc.

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

◆ tcand_pca_dzErr

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

Definition at line 1085 of file TrackingNtuple.cc.

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

◆ tcand_pca_eta

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

Definition at line 1076 of file TrackingNtuple.cc.

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

◆ tcand_pca_etaErr

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

Definition at line 1081 of file TrackingNtuple.cc.

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

◆ tcand_pca_lambdaErr

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

Definition at line 1082 of file TrackingNtuple.cc.

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

◆ tcand_pca_phi

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

Definition at line 1077 of file TrackingNtuple.cc.

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

◆ tcand_pca_phiErr

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

Definition at line 1083 of file TrackingNtuple.cc.

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

◆ tcand_pca_pt

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

Definition at line 1075 of file TrackingNtuple.cc.

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

◆ tcand_pca_ptErr

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

Definition at line 1080 of file TrackingNtuple.cc.

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

◆ tcand_pca_px

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

Definition at line 1072 of file TrackingNtuple.cc.

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

◆ tcand_pca_py

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

Definition at line 1073 of file TrackingNtuple.cc.

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

◆ tcand_pca_pz

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

Definition at line 1074 of file TrackingNtuple.cc.

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

◆ tcand_pca_valid

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

Definition at line 1071 of file TrackingNtuple.cc.

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

◆ tcand_phiErr

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

Definition at line 1095 of file TrackingNtuple.cc.

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

◆ tcand_pt

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

Definition at line 1089 of file TrackingNtuple.cc.

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

◆ tcand_px

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

Definition at line 1086 of file TrackingNtuple.cc.

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

◆ tcand_py

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

Definition at line 1087 of file TrackingNtuple.cc.

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

◆ tcand_pz

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

Definition at line 1088 of file TrackingNtuple.cc.

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

◆ tcand_q

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

Definition at line 1099 of file TrackingNtuple.cc.

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

◆ tcand_qbpErr

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

Definition at line 1093 of file TrackingNtuple.cc.

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

◆ tcand_seedIdx

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

Definition at line 1106 of file TrackingNtuple.cc.

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

◆ tcand_simTrkIdx

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

Definition at line 1121 of file TrackingNtuple.cc.

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

◆ tcand_simTrkNChi2

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

Definition at line 1120 of file TrackingNtuple.cc.

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

◆ tcand_simTrkShareFrac

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

Definition at line 1119 of file TrackingNtuple.cc.

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

◆ tcand_stopReason

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

Definition at line 1105 of file TrackingNtuple.cc.

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

◆ tcand_vtxIdx

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

Definition at line 1107 of file TrackingNtuple.cc.

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

◆ tcand_x

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

Definition at line 1090 of file TrackingNtuple.cc.

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

◆ tcand_xtErr

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

Definition at line 1096 of file TrackingNtuple.cc.

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

◆ tcand_y

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

Definition at line 1091 of file TrackingNtuple.cc.

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

◆ tcand_ytErr

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

Definition at line 1097 of file TrackingNtuple.cc.

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

◆ tcand_z

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

Definition at line 1092 of file TrackingNtuple.cc.

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

◆ tGeomToken_

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

Definition at line 655 of file TrackingNtuple.cc.

Referenced by analyze().

◆ tpNLayersToken_

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

Definition at line 681 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tpNPixelLayersToken_

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

Definition at line 682 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tpNStripStereoLayersToken_

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

Definition at line 683 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

◆ tracer_

HistoryBase TrackingNtuple::tracer_
private

Definition at line 702 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles(), and TrackingNtuple().

◆ trackAssociatorToken_

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

Definition at line 668 of file TrackingNtuple.cc.

Referenced by analyze().

◆ trackingParticleRefToken_

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

Definition at line 665 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ trackingParticleToken_

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

Definition at line 664 of file TrackingNtuple.cc.

Referenced by analyze(), and TrackingNtuple().

◆ trackingVertexToken_

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

Definition at line 680 of file TrackingNtuple.cc.

Referenced by analyze().

◆ trackToken_

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

Definition at line 661 of file TrackingNtuple.cc.

Referenced by analyze(), and fillTracks().

◆ trk_algo

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

Definition at line 1045 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 1047 of file TrackingNtuple.cc.

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

◆ trk_bestFromFirstHitSimTrkIdx

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

Definition at line 1058 of file TrackingNtuple.cc.

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

◆ trk_bestFromFirstHitSimTrkNChi2

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

Definition at line 1062 of file TrackingNtuple.cc.

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

◆ trk_bestFromFirstHitSimTrkShareFrac

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

Definition at line 1059 of file TrackingNtuple.cc.

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

◆ trk_bestFromFirstHitSimTrkShareFracSimClusterDenom

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

Definition at line 1061 of file TrackingNtuple.cc.

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

◆ trk_bestFromFirstHitSimTrkShareFracSimDenom

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

Definition at line 1060 of file TrackingNtuple.cc.

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

◆ trk_bestSimTrkIdx

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

Definition at line 1053 of file TrackingNtuple.cc.

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

◆ trk_bestSimTrkNChi2

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

Definition at line 1057 of file TrackingNtuple.cc.

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

◆ trk_bestSimTrkShareFrac

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

Definition at line 1054 of file TrackingNtuple.cc.

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

◆ trk_bestSimTrkShareFracSimClusterDenom

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

Definition at line 1056 of file TrackingNtuple.cc.

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

◆ trk_bestSimTrkShareFracSimDenom

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

Definition at line 1055 of file TrackingNtuple.cc.

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

◆ trk_cotTheta

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

Definition at line 1008 of file TrackingNtuple.cc.

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

◆ trk_dxy

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

Definition at line 1010 of file TrackingNtuple.cc.

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

◆ trk_dxyClosestPV

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

Definition at line 1014 of file TrackingNtuple.cc.

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

◆ trk_dxyErr

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

Definition at line 1020 of file TrackingNtuple.cc.

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

◆ trk_dxyPV

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

Definition at line 1012 of file TrackingNtuple.cc.

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

◆ trk_dz

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

Definition at line 1011 of file TrackingNtuple.cc.

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

◆ trk_dzClosestPV

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

Definition at line 1015 of file TrackingNtuple.cc.

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

◆ trk_dzErr

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

Definition at line 1021 of file TrackingNtuple.cc.

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

◆ trk_dzPV

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

Definition at line 1013 of file TrackingNtuple.cc.

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

◆ trk_eta

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

Definition at line 1006 of file TrackingNtuple.cc.

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

◆ trk_etaErr

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

Definition at line 1017 of file TrackingNtuple.cc.

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

◆ trk_hitIdx

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

Definition at line 1066 of file TrackingNtuple.cc.

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

◆ trk_hitType

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

Definition at line 1067 of file TrackingNtuple.cc.

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

◆ trk_inner_pt

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

Definition at line 1001 of file TrackingNtuple.cc.

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

◆ trk_inner_px

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

Definition at line 998 of file TrackingNtuple.cc.

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

◆ trk_inner_py

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

Definition at line 999 of file TrackingNtuple.cc.

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

◆ trk_inner_pz

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

Definition at line 1000 of file TrackingNtuple.cc.

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

◆ trk_isHP

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

Definition at line 1049 of file TrackingNtuple.cc.

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

◆ trk_isTrue

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

Definition at line 1052 of file TrackingNtuple.cc.

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

◆ trk_lambda

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

Definition at line 1007 of file TrackingNtuple.cc.

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

◆ trk_lambdaErr

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

Definition at line 1018 of file TrackingNtuple.cc.

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

◆ trk_mvas

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

Definition at line 1028 of file TrackingNtuple.cc.

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

◆ trk_n3DLay

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

Definition at line 1042 of file TrackingNtuple.cc.

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

◆ trk_nChi2

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

Definition at line 1025 of file TrackingNtuple.cc.

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

◆ trk_nChi2_1Dmod

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

Definition at line 1026 of file TrackingNtuple.cc.

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

◆ trk_nCluster

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

Definition at line 1044 of file TrackingNtuple.cc.

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

◆ trk_ndof

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

Definition at line 1027 of file TrackingNtuple.cc.

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

◆ trk_nInactive

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

Definition at line 1033 of file TrackingNtuple.cc.

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

◆ trk_nInnerInactive

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

Definition at line 1039 of file TrackingNtuple.cc.

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

◆ trk_nInnerLost

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

Definition at line 1037 of file TrackingNtuple.cc.

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

◆ trk_nLost

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

Definition at line 1032 of file TrackingNtuple.cc.

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

◆ trk_nLostLay

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

Definition at line 1043 of file TrackingNtuple.cc.

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

◆ trk_nOuterInactive

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

Definition at line 1038 of file TrackingNtuple.cc.

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

◆ trk_nOuterLost

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

Definition at line 1036 of file TrackingNtuple.cc.

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

◆ trk_nPixel

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

Definition at line 1034 of file TrackingNtuple.cc.

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

◆ trk_nPixelLay

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

Definition at line 1040 of file TrackingNtuple.cc.

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

◆ trk_nStrip

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

Definition at line 1035 of file TrackingNtuple.cc.

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

◆ trk_nStripLay

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

Definition at line 1041 of file TrackingNtuple.cc.

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

◆ trk_nValid

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

Definition at line 1031 of file TrackingNtuple.cc.

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

◆ trk_originalAlgo

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

Definition at line 1046 of file TrackingNtuple.cc.

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

◆ trk_outer_pt

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

Definition at line 1005 of file TrackingNtuple.cc.

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

◆ trk_outer_px

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

Definition at line 1002 of file TrackingNtuple.cc.

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

◆ trk_outer_py

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

Definition at line 1003 of file TrackingNtuple.cc.

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

◆ trk_outer_pz

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

Definition at line 1004 of file TrackingNtuple.cc.

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

◆ trk_phi

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

Definition at line 1009 of file TrackingNtuple.cc.

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

◆ trk_phiErr

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

Definition at line 1019 of file TrackingNtuple.cc.

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

◆ trk_pt

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

Definition at line 997 of file TrackingNtuple.cc.

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

◆ trk_ptErr

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

Definition at line 1016 of file TrackingNtuple.cc.

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

◆ trk_px

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

Definition at line 994 of file TrackingNtuple.cc.

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

◆ trk_py

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

Definition at line 995 of file TrackingNtuple.cc.

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

◆ trk_pz

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

Definition at line 996 of file TrackingNtuple.cc.

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

◆ trk_q

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

Definition at line 1030 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 1029 of file TrackingNtuple.cc.

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

◆ trk_refpoint_x

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

Definition at line 1022 of file TrackingNtuple.cc.

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

◆ trk_refpoint_y

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

Definition at line 1023 of file TrackingNtuple.cc.

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

◆ trk_refpoint_z

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

Definition at line 1024 of file TrackingNtuple.cc.

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

◆ trk_seedIdx

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

Definition at line 1050 of file TrackingNtuple.cc.

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

◆ trk_simTrkIdx

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

Definition at line 1065 of file TrackingNtuple.cc.

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

◆ trk_simTrkNChi2

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

Definition at line 1064 of file TrackingNtuple.cc.

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

◆ trk_simTrkShareFrac

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

Definition at line 1063 of file TrackingNtuple.cc.

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

◆ trk_stopReason

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

Definition at line 1048 of file TrackingNtuple.cc.

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

◆ trk_vtxIdx

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

Definition at line 1051 of file TrackingNtuple.cc.

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

◆ tTopoToken_

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

Definition at line 654 of file TrackingNtuple.cc.

Referenced by analyze().

◆ vertexToken_

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

Definition at line 679 of file TrackingNtuple.cc.

Referenced by analyze().

◆ vtx_chi2

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

Definition at line 1395 of file TrackingNtuple.cc.

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

◆ vtx_fake

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

Definition at line 1396 of file TrackingNtuple.cc.

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

◆ vtx_ndof

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

Definition at line 1394 of file TrackingNtuple.cc.

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

◆ vtx_trkIdx

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

Definition at line 1398 of file TrackingNtuple.cc.

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

◆ vtx_valid

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

Definition at line 1397 of file TrackingNtuple.cc.

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

◆ vtx_x

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

Definition at line 1388 of file TrackingNtuple.cc.

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

◆ vtx_xErr

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

Definition at line 1391 of file TrackingNtuple.cc.

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

◆ vtx_y

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

Definition at line 1389 of file TrackingNtuple.cc.

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

◆ vtx_yErr

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

Definition at line 1392 of file TrackingNtuple.cc.

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

◆ vtx_z

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

Definition at line 1390 of file TrackingNtuple.cc.

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

◆ vtx_zErr

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

Definition at line 1393 of file TrackingNtuple.cc.

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