CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes
TrackingNtuple Class Reference

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

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

Classes

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

Public Member Functions

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

Static Public Member Functions

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

Private Types

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

Private Member Functions

size_t addStripMatchedHit (const SiStripMatchedRecHit2D &hit, const TransientTrackingRecHitBuilder &theTTRHBuilder, 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 fillPhase2OTHits (const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
 
void fillPixelHits (const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, 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 reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TransientTrackingRecHitBuilder &theTTRHBuilder, 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 TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList)
 
void fillStripRphiStereoHits (const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< StripDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, 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 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 TransientTrackingRecHitBuilder &theTTRHBuilder, 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 TransientTrackingRecHit::RecHitPointer &ttrh, 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_
 
edm::EDGetTokenT
< ClusterTPAssociation
clusterTPMapToken_
 
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 includeOOT_
 
bool includePhase2OTHits_
 
const bool includeSeeds_
 
bool includeStripHits_
 
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,
IdealMagneticFieldRecord
mfToken_
 
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< 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_trkIdx
 
std::vector< float > ph2_x
 
std::vector< float > ph2_xx
 
std::vector< float > ph2_xy
 
std::vector< std::vector< float > > ph2_xySignificance
 
std::vector< float > ph2_y
 
std::vector< float > ph2_yy
 
std::vector< float > ph2_yz
 
std::vector< float > ph2_z
 
std::vector< float > ph2_zx
 
std::vector< float > ph2_zz
 
edm::EDGetTokenT
< Phase2TrackerRecHit1DCollectionNew
phase2OTRecHitToken_
 
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< 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_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
< SiPixelRecHitCollection
pixelRecHitToken_
 
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_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::SimHitTPAssociationList
simHitTPMapToken_
 
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< 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_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
< SiStripMatchedRecHit2DCollection
stripMatchedRecHitToken_
 
edm::EDGetTokenT
< SiStripRecHit2DCollection
stripRphiRecHitToken_
 
edm::EDGetTokenT
< edm::DetSetVector
< StripDigiSimLink > > 
stripSimLinkToken_
 
edm::EDGetTokenT
< SiStripRecHit2DCollection
stripStereoRecHitToken_
 
std::vector< std::pair
< unsigned int,
edm::EDGetTokenT
< StripMaskContainer > > > 
stripUseMaskTokens_
 
TTree * t
 
const edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
tGeomToken_
 
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::TrackToTrackingParticleAssociator
trackAssociatorToken_
 
edm::EDGetTokenT
< TrackingParticleRefVector
trackingParticleRefToken_
 
edm::EDGetTokenT
< TrackingParticleCollection
trackingParticleToken_
 
edm::EDGetTokenT
< TrackingVertexCollection
trackingVertexToken_
 
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,
TrackerTopologyRcd
tTopoToken_
 
const edm::ESGetToken
< TransientTrackingRecHitBuilder,
TransientRecHitRecord
ttrhToken_
 
edm::EDGetTokenT
< reco::VertexCollection
vertexToken_
 
std::vector< float > vtx_chi2
 
std::vector< short > vtx_fake
 
std::vector< float > vtx_ndof
 
std::vector< std::vector< int > > vtx_trkIdx
 
std::vector< short > vtx_valid
 
std::vector< float > vtx_x
 
std::vector< float > vtx_xErr
 
std::vector< float > vtx_y
 
std::vector< float > vtx_yErr
 
std::vector< float > vtx_z
 
std::vector< float > vtx_zErr
 

Additional Inherited Members

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

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 470 of file TrackingNtuple.cc.

Member Typedef Documentation

Definition at line 955 of file TrackingNtuple.cc.

Definition at line 956 of file TrackingNtuple.cc.

Definition at line 954 of file TrackingNtuple.cc.

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

Definition at line 952 of file TrackingNtuple.cc.

Definition at line 953 of file TrackingNtuple.cc.

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

Definition at line 490 of file TrackingNtuple.cc.

Definition at line 493 of file TrackingNtuple.cc.

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

Definition at line 491 of file TrackingNtuple.cc.

Definition at line 494 of file TrackingNtuple.cc.

Member Enumeration Documentation

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

Definition at line 488 of file TrackingNtuple.cc.

488 { Signal = 0, ITPileup = 1, OOTPileup = 2, Noise = 3, Unknown = 99 };
enum TrackingNtuple::HitType
strongprivate
Enumerator
Pixel 
Strip 
Glued 
Invalid 
Phase2OT 
Unknown 

Definition at line 482 of file TrackingNtuple.cc.

Constructor & Destructor Documentation

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

Definition at line 1301 of file TrackingNtuple.cc.

References edm::EDConsumerBase::consumes(), edm::ParameterSet::getUntrackedParameter(), includeSeeds_, seedStopInfoTokens_, seedTokens_, GlobalPosition_Frontier_DevDB_cff::tag, and edm::vector_transform().

1302  : mfToken_(esConsumes()),
1307  clusterTPMapToken_(consumes<ClusterTPAssociation>(iConfig.getUntrackedParameter<edm::InputTag>("clusterTPMap"))),
1308  simHitTPMapToken_(consumes<SimHitTPAssociationProducer::SimHitTPAssociationList>(
1309  iConfig.getUntrackedParameter<edm::InputTag>("simHitTPMap"))),
1310  trackAssociatorToken_(consumes<reco::TrackToTrackingParticleAssociator>(
1311  iConfig.getUntrackedParameter<edm::InputTag>("trackAssociator"))),
1313  iConfig.getUntrackedParameter<edm::InputTag>("pixelDigiSimLink"))),
1315  iConfig.getUntrackedParameter<edm::InputTag>("stripDigiSimLink"))),
1317  iConfig.getUntrackedParameter<edm::InputTag>("phase2OTSimLink"))),
1318  includeStripHits_(!iConfig.getUntrackedParameter<edm::InputTag>("stripDigiSimLink").label().empty()),
1319  includePhase2OTHits_(!iConfig.getUntrackedParameter<edm::InputTag>("phase2OTSimLink").label().empty()),
1320  beamSpotToken_(consumes<reco::BeamSpot>(iConfig.getUntrackedParameter<edm::InputTag>("beamSpot"))),
1322  consumes<SiPixelRecHitCollection>(iConfig.getUntrackedParameter<edm::InputTag>("pixelRecHits"))),
1324  consumes<SiStripRecHit2DCollection>(iConfig.getUntrackedParameter<edm::InputTag>("stripRphiRecHits"))),
1326  consumes<SiStripRecHit2DCollection>(iConfig.getUntrackedParameter<edm::InputTag>("stripStereoRecHits"))),
1327  stripMatchedRecHitToken_(consumes<SiStripMatchedRecHit2DCollection>(
1328  iConfig.getUntrackedParameter<edm::InputTag>("stripMatchedRecHits"))),
1329  phase2OTRecHitToken_(consumes<Phase2TrackerRecHit1DCollectionNew>(
1330  iConfig.getUntrackedParameter<edm::InputTag>("phase2OTRecHits"))),
1331  vertexToken_(consumes<reco::VertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("vertices"))),
1333  consumes<TrackingVertexCollection>(iConfig.getUntrackedParameter<edm::InputTag>("trackingVertices"))),
1335  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNlayers"))),
1337  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNpixellayers"))),
1339  iConfig.getUntrackedParameter<edm::InputTag>("trackingParticleNstripstereolayers"))),
1340  includeSeeds_(iConfig.getUntrackedParameter<bool>("includeSeeds")),
1341  addSeedCurvCov_(iConfig.getUntrackedParameter<bool>("addSeedCurvCov")),
1342  includeAllHits_(iConfig.getUntrackedParameter<bool>("includeAllHits")),
1343  includeMVA_(iConfig.getUntrackedParameter<bool>("includeMVA")),
1344  includeTrackingParticles_(iConfig.getUntrackedParameter<bool>("includeTrackingParticles")),
1345  includeOOT_(iConfig.getUntrackedParameter<bool>("includeOOT")),
1346  keepEleSimHits_(iConfig.getUntrackedParameter<bool>("keepEleSimHits")),
1347  saveSimHitsP3_(iConfig.getUntrackedParameter<bool>("saveSimHitsP3")),
1348  simHitBySignificance_(iConfig.getUntrackedParameter<bool>("simHitBySignificance")),
1350  if (includeSeeds_) {
1351  seedTokens_ =
1352  edm::vector_transform(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("seedTracks"),
1353  [&](const edm::InputTag& tag) { return consumes<edm::View<reco::Track>>(tag); });
1355  edm::vector_transform(iConfig.getUntrackedParameter<std::vector<edm::InputTag>>("trackCandidates"),
1356  [&](const edm::InputTag& tag) { return consumes<std::vector<SeedStopInfo>>(tag); });
1357  if (seedTokens_.size() != seedStopInfoTokens_.size()) {
1358  throw cms::Exception("Configuration") << "Got " << seedTokens_.size() << " seed collections, but "
1359  << seedStopInfoTokens_.size() << " track candidate collections";
1360  }
1361  }
1362 
1363  if (includeAllHits_) {
1365  throw cms::Exception("Configuration")
1366  << "Both stripDigiSimLink and phase2OTSimLink are set, please set only either one (this information is used "
1367  "to infer if you're running phase0/1 or phase2 detector)";
1368  }
1370  throw cms::Exception("Configuration")
1371  << "Neither stripDigiSimLink or phase2OTSimLink are set, please set either one.";
1372  }
1373 
1374  auto const& maskVPset = iConfig.getUntrackedParameterSetVector("clusterMasks");
1375  pixelUseMaskTokens_.reserve(maskVPset.size());
1376  stripUseMaskTokens_.reserve(maskVPset.size());
1377  for (auto const& mask : maskVPset) {
1378  auto index = mask.getUntrackedParameter<unsigned int>("index");
1379  assert(index < 64);
1380  pixelUseMaskTokens_.emplace_back(index,
1381  consumes<PixelMaskContainer>(mask.getUntrackedParameter<edm::InputTag>("src")));
1382  if (includeStripHits_)
1383  stripUseMaskTokens_.emplace_back(
1384  index, consumes<StripMaskContainer>(mask.getUntrackedParameter<edm::InputTag>("src")));
1385  }
1386  }
1387 
1388  const bool tpRef = iConfig.getUntrackedParameter<bool>("trackingParticlesRef");
1389  const auto tpTag = iConfig.getUntrackedParameter<edm::InputTag>("trackingParticles");
1390  if (tpRef) {
1391  trackingParticleRefToken_ = consumes<TrackingParticleRefVector>(tpTag);
1392  } else {
1393  trackingParticleToken_ = consumes<TrackingParticleCollection>(tpTag);
1394  }
1395 
1396  tracer_.depth(-2); // as in SimTracker/TrackHistory/src/TrackClassifier.cc
1397 
1398  if (includeMVA_) {
1400  iConfig.getUntrackedParameter<std::vector<std::string>>("trackMVAs"), [&](const std::string& tag) {
1401  return std::make_tuple(consumes<MVACollection>(edm::InputTag(tag, "MVAValues")),
1402  consumes<QualityMaskCollection>(edm::InputTag(tag, "QualityMasks")));
1403  });
1404  }
1405 
1406  usesResource(TFileService::kSharedResource);
1408  t = fs->make<TTree>("tree", "tree");
1409 
1410  t->Branch("event", &ev_event);
1411  t->Branch("lumi", &ev_lumi);
1412  t->Branch("run", &ev_run);
1413 
1414  //tracks
1415  t->Branch("trk_px", &trk_px);
1416  t->Branch("trk_py", &trk_py);
1417  t->Branch("trk_pz", &trk_pz);
1418  t->Branch("trk_pt", &trk_pt);
1419  t->Branch("trk_inner_px", &trk_inner_px);
1420  t->Branch("trk_inner_py", &trk_inner_py);
1421  t->Branch("trk_inner_pz", &trk_inner_pz);
1422  t->Branch("trk_inner_pt", &trk_inner_pt);
1423  t->Branch("trk_outer_px", &trk_outer_px);
1424  t->Branch("trk_outer_py", &trk_outer_py);
1425  t->Branch("trk_outer_pz", &trk_outer_pz);
1426  t->Branch("trk_outer_pt", &trk_outer_pt);
1427  t->Branch("trk_eta", &trk_eta);
1428  t->Branch("trk_lambda", &trk_lambda);
1429  t->Branch("trk_cotTheta", &trk_cotTheta);
1430  t->Branch("trk_phi", &trk_phi);
1431  t->Branch("trk_dxy", &trk_dxy);
1432  t->Branch("trk_dz", &trk_dz);
1433  t->Branch("trk_dxyPV", &trk_dxyPV);
1434  t->Branch("trk_dzPV", &trk_dzPV);
1435  t->Branch("trk_dxyClosestPV", &trk_dxyClosestPV);
1436  t->Branch("trk_dzClosestPV", &trk_dzClosestPV);
1437  t->Branch("trk_ptErr", &trk_ptErr);
1438  t->Branch("trk_etaErr", &trk_etaErr);
1439  t->Branch("trk_lambdaErr", &trk_lambdaErr);
1440  t->Branch("trk_phiErr", &trk_phiErr);
1441  t->Branch("trk_dxyErr", &trk_dxyErr);
1442  t->Branch("trk_dzErr", &trk_dzErr);
1443  t->Branch("trk_refpoint_x", &trk_refpoint_x);
1444  t->Branch("trk_refpoint_y", &trk_refpoint_y);
1445  t->Branch("trk_refpoint_z", &trk_refpoint_z);
1446  t->Branch("trk_nChi2", &trk_nChi2);
1447  t->Branch("trk_nChi2_1Dmod", &trk_nChi2_1Dmod);
1448  t->Branch("trk_ndof", &trk_ndof);
1449  if (includeMVA_) {
1450  trk_mvas.resize(mvaQualityCollectionTokens_.size());
1452  if (!trk_mvas.empty()) {
1453  t->Branch("trk_mva", &(trk_mvas[0]));
1454  t->Branch("trk_qualityMask", &(trk_qualityMasks[0]));
1455  for (size_t i = 1; i < trk_mvas.size(); ++i) {
1456  t->Branch(("trk_mva" + std::to_string(i + 1)).c_str(), &(trk_mvas[i]));
1457  t->Branch(("trk_qualityMask" + std::to_string(i + 1)).c_str(), &(trk_qualityMasks[i]));
1458  }
1459  }
1460  }
1461  t->Branch("trk_q", &trk_q);
1462  t->Branch("trk_nValid", &trk_nValid);
1463  t->Branch("trk_nLost", &trk_nLost);
1464  t->Branch("trk_nInactive", &trk_nInactive);
1465  t->Branch("trk_nPixel", &trk_nPixel);
1466  t->Branch("trk_nStrip", &trk_nStrip);
1467  t->Branch("trk_nOuterLost", &trk_nOuterLost);
1468  t->Branch("trk_nInnerLost", &trk_nInnerLost);
1469  t->Branch("trk_nOuterInactive", &trk_nOuterInactive);
1470  t->Branch("trk_nInnerInactive", &trk_nInnerInactive);
1471  t->Branch("trk_nPixelLay", &trk_nPixelLay);
1472  t->Branch("trk_nStripLay", &trk_nStripLay);
1473  t->Branch("trk_n3DLay", &trk_n3DLay);
1474  t->Branch("trk_nLostLay", &trk_nLostLay);
1475  t->Branch("trk_nCluster", &trk_nCluster);
1476  t->Branch("trk_algo", &trk_algo);
1477  t->Branch("trk_originalAlgo", &trk_originalAlgo);
1478  t->Branch("trk_algoMask", &trk_algoMask);
1479  t->Branch("trk_stopReason", &trk_stopReason);
1480  t->Branch("trk_isHP", &trk_isHP);
1481  if (includeSeeds_) {
1482  t->Branch("trk_seedIdx", &trk_seedIdx);
1483  }
1484  t->Branch("trk_vtxIdx", &trk_vtxIdx);
1486  t->Branch("trk_simTrkIdx", &trk_simTrkIdx);
1487  t->Branch("trk_simTrkShareFrac", &trk_simTrkShareFrac);
1488  t->Branch("trk_simTrkNChi2", &trk_simTrkNChi2);
1489  t->Branch("trk_bestSimTrkIdx", &trk_bestSimTrkIdx);
1490  t->Branch("trk_bestFromFirstHitSimTrkIdx", &trk_bestFromFirstHitSimTrkIdx);
1491  } else {
1492  t->Branch("trk_isTrue", &trk_isTrue);
1493  }
1494  t->Branch("trk_bestSimTrkShareFrac", &trk_bestSimTrkShareFrac);
1495  t->Branch("trk_bestSimTrkShareFracSimDenom", &trk_bestSimTrkShareFracSimDenom);
1496  t->Branch("trk_bestSimTrkShareFracSimClusterDenom", &trk_bestSimTrkShareFracSimClusterDenom);
1497  t->Branch("trk_bestSimTrkNChi2", &trk_bestSimTrkNChi2);
1498  t->Branch("trk_bestFromFirstHitSimTrkShareFrac", &trk_bestFromFirstHitSimTrkShareFrac);
1499  t->Branch("trk_bestFromFirstHitSimTrkShareFracSimDenom", &trk_bestFromFirstHitSimTrkShareFracSimDenom);
1500  t->Branch("trk_bestFromFirstHitSimTrkShareFracSimClusterDenom", &trk_bestFromFirstHitSimTrkShareFracSimClusterDenom);
1501  t->Branch("trk_bestFromFirstHitSimTrkNChi2", &trk_bestFromFirstHitSimTrkNChi2);
1502  if (includeAllHits_) {
1503  t->Branch("trk_hitIdx", &trk_hitIdx);
1504  t->Branch("trk_hitType", &trk_hitType);
1505  }
1507  //sim tracks
1508  t->Branch("sim_event", &sim_event);
1509  t->Branch("sim_bunchCrossing", &sim_bunchCrossing);
1510  t->Branch("sim_pdgId", &sim_pdgId);
1511  t->Branch("sim_genPdgIds", &sim_genPdgIds);
1512  t->Branch("sim_isFromBHadron", &sim_isFromBHadron);
1513  t->Branch("sim_px", &sim_px);
1514  t->Branch("sim_py", &sim_py);
1515  t->Branch("sim_pz", &sim_pz);
1516  t->Branch("sim_pt", &sim_pt);
1517  t->Branch("sim_eta", &sim_eta);
1518  t->Branch("sim_phi", &sim_phi);
1519  t->Branch("sim_pca_pt", &sim_pca_pt);
1520  t->Branch("sim_pca_eta", &sim_pca_eta);
1521  t->Branch("sim_pca_lambda", &sim_pca_lambda);
1522  t->Branch("sim_pca_cotTheta", &sim_pca_cotTheta);
1523  t->Branch("sim_pca_phi", &sim_pca_phi);
1524  t->Branch("sim_pca_dxy", &sim_pca_dxy);
1525  t->Branch("sim_pca_dz", &sim_pca_dz);
1526  t->Branch("sim_q", &sim_q);
1527  t->Branch("sim_nValid", &sim_nValid);
1528  t->Branch("sim_nPixel", &sim_nPixel);
1529  t->Branch("sim_nStrip", &sim_nStrip);
1530  t->Branch("sim_nLay", &sim_nLay);
1531  t->Branch("sim_nPixelLay", &sim_nPixelLay);
1532  t->Branch("sim_n3DLay", &sim_n3DLay);
1533  t->Branch("sim_nTrackerHits", &sim_nTrackerHits);
1534  t->Branch("sim_nRecoClusters", &sim_nRecoClusters);
1535  t->Branch("sim_trkIdx", &sim_trkIdx);
1536  t->Branch("sim_trkShareFrac", &sim_trkShareFrac);
1537  if (includeSeeds_) {
1538  t->Branch("sim_seedIdx", &sim_seedIdx);
1539  }
1540  t->Branch("sim_parentVtxIdx", &sim_parentVtxIdx);
1541  t->Branch("sim_decayVtxIdx", &sim_decayVtxIdx);
1542  if (includeAllHits_) {
1543  t->Branch("sim_simHitIdx", &sim_simHitIdx);
1544  }
1545  }
1546  if (includeAllHits_) {
1547  //pixels
1548  t->Branch("pix_isBarrel", &pix_isBarrel);
1549  pix_detId.book("pix", t);
1550  t->Branch("pix_trkIdx", &pix_trkIdx);
1551  if (includeSeeds_) {
1552  t->Branch("pix_seeIdx", &pix_seeIdx);
1553  }
1555  t->Branch("pix_simHitIdx", &pix_simHitIdx);
1556  if (simHitBySignificance_) {
1557  t->Branch("pix_xySignificance", &pix_xySignificance);
1558  }
1559  t->Branch("pix_chargeFraction", &pix_chargeFraction);
1560  t->Branch("pix_simType", &pix_simType);
1561  }
1562  t->Branch("pix_x", &pix_x);
1563  t->Branch("pix_y", &pix_y);
1564  t->Branch("pix_z", &pix_z);
1565  t->Branch("pix_xx", &pix_xx);
1566  t->Branch("pix_xy", &pix_xy);
1567  t->Branch("pix_yy", &pix_yy);
1568  t->Branch("pix_yz", &pix_yz);
1569  t->Branch("pix_zz", &pix_zz);
1570  t->Branch("pix_zx", &pix_zx);
1571  t->Branch("pix_radL", &pix_radL);
1572  t->Branch("pix_bbxi", &pix_bbxi);
1573  t->Branch("pix_clustSizeCol", &pix_clustSizeCol);
1574  t->Branch("pix_clustSizeRow", &pix_clustSizeRow);
1575  t->Branch("pix_usedMask", &pix_usedMask);
1576  //strips
1577  if (includeStripHits_) {
1578  t->Branch("str_isBarrel", &str_isBarrel);
1579  str_detId.book("str", t);
1580  t->Branch("str_trkIdx", &str_trkIdx);
1581  if (includeSeeds_) {
1582  t->Branch("str_seeIdx", &str_seeIdx);
1583  }
1585  t->Branch("str_simHitIdx", &str_simHitIdx);
1586  if (simHitBySignificance_) {
1587  t->Branch("str_xySignificance", &str_xySignificance);
1588  }
1589  t->Branch("str_chargeFraction", &str_chargeFraction);
1590  t->Branch("str_simType", &str_simType);
1591  }
1592  t->Branch("str_x", &str_x);
1593  t->Branch("str_y", &str_y);
1594  t->Branch("str_z", &str_z);
1595  t->Branch("str_xx", &str_xx);
1596  t->Branch("str_xy", &str_xy);
1597  t->Branch("str_yy", &str_yy);
1598  t->Branch("str_yz", &str_yz);
1599  t->Branch("str_zz", &str_zz);
1600  t->Branch("str_zx", &str_zx);
1601  t->Branch("str_radL", &str_radL);
1602  t->Branch("str_bbxi", &str_bbxi);
1603  t->Branch("str_chargePerCM", &str_chargePerCM);
1604  t->Branch("str_clustSize", &str_clustSize);
1605  t->Branch("str_usedMask", &str_usedMask);
1606  //matched hits
1607  t->Branch("glu_isBarrel", &glu_isBarrel);
1608  glu_detId.book("glu", t);
1609  t->Branch("glu_monoIdx", &glu_monoIdx);
1610  t->Branch("glu_stereoIdx", &glu_stereoIdx);
1611  if (includeSeeds_) {
1612  t->Branch("glu_seeIdx", &glu_seeIdx);
1613  }
1614  t->Branch("glu_x", &glu_x);
1615  t->Branch("glu_y", &glu_y);
1616  t->Branch("glu_z", &glu_z);
1617  t->Branch("glu_xx", &glu_xx);
1618  t->Branch("glu_xy", &glu_xy);
1619  t->Branch("glu_yy", &glu_yy);
1620  t->Branch("glu_yz", &glu_yz);
1621  t->Branch("glu_zz", &glu_zz);
1622  t->Branch("glu_zx", &glu_zx);
1623  t->Branch("glu_radL", &glu_radL);
1624  t->Branch("glu_bbxi", &glu_bbxi);
1625  t->Branch("glu_chargePerCM", &glu_chargePerCM);
1626  t->Branch("glu_clustSizeMono", &glu_clustSizeMono);
1627  t->Branch("glu_clustSizeStereo", &glu_clustSizeStereo);
1628  t->Branch("glu_usedMaskMono", &glu_usedMaskMono);
1629  t->Branch("glu_usedMaskStereo", &glu_usedMaskStereo);
1630  }
1631  //phase2 OT
1632  if (includePhase2OTHits_) {
1633  t->Branch("ph2_isBarrel", &ph2_isBarrel);
1634  ph2_detId.book("ph2", t);
1635  t->Branch("ph2_trkIdx", &ph2_trkIdx);
1636  if (includeSeeds_) {
1637  t->Branch("ph2_seeIdx", &ph2_seeIdx);
1638  }
1640  t->Branch("ph2_simHitIdx", &ph2_simHitIdx);
1641  if (simHitBySignificance_) {
1642  t->Branch("ph2_xySignificance", &ph2_xySignificance);
1643  }
1644  t->Branch("ph2_simType", &ph2_simType);
1645  }
1646  t->Branch("ph2_x", &ph2_x);
1647  t->Branch("ph2_y", &ph2_y);
1648  t->Branch("ph2_z", &ph2_z);
1649  t->Branch("ph2_xx", &ph2_xx);
1650  t->Branch("ph2_xy", &ph2_xy);
1651  t->Branch("ph2_yy", &ph2_yy);
1652  t->Branch("ph2_yz", &ph2_yz);
1653  t->Branch("ph2_zz", &ph2_zz);
1654  t->Branch("ph2_zx", &ph2_zx);
1655  t->Branch("ph2_radL", &ph2_radL);
1656  t->Branch("ph2_bbxi", &ph2_bbxi);
1657  t->Branch("ph2_bbxi", &ph2_bbxi);
1658  }
1659  //invalid hits
1660  t->Branch("inv_isBarrel", &inv_isBarrel);
1661  if (includeStripHits_)
1662  inv_detId.book("inv", t);
1663  else
1664  inv_detId_phase2.book("inv", t);
1665  t->Branch("inv_type", &inv_type);
1666  //simhits
1668  if (includeStripHits_)
1669  simhit_detId.book("simhit", t);
1670  else
1671  simhit_detId_phase2.book("simhit", t);
1672  t->Branch("simhit_x", &simhit_x);
1673  t->Branch("simhit_y", &simhit_y);
1674  t->Branch("simhit_z", &simhit_z);
1675  if (saveSimHitsP3_) {
1676  t->Branch("simhit_px", &simhit_px);
1677  t->Branch("simhit_py", &simhit_py);
1678  t->Branch("simhit_pz", &simhit_pz);
1679  }
1680  t->Branch("simhit_particle", &simhit_particle);
1681  t->Branch("simhit_process", &simhit_process);
1682  t->Branch("simhit_eloss", &simhit_eloss);
1683  t->Branch("simhit_tof", &simhit_tof);
1684  t->Branch("simhit_simTrkIdx", &simhit_simTrkIdx);
1685  t->Branch("simhit_hitIdx", &simhit_hitIdx);
1686  t->Branch("simhit_hitType", &simhit_hitType);
1687  }
1688  }
1689  //beam spot
1690  t->Branch("bsp_x", &bsp_x, "bsp_x/F");
1691  t->Branch("bsp_y", &bsp_y, "bsp_y/F");
1692  t->Branch("bsp_z", &bsp_z, "bsp_z/F");
1693  t->Branch("bsp_sigmax", &bsp_sigmax, "bsp_sigmax/F");
1694  t->Branch("bsp_sigmay", &bsp_sigmay, "bsp_sigmay/F");
1695  t->Branch("bsp_sigmaz", &bsp_sigmaz, "bsp_sigmaz/F");
1696  if (includeSeeds_) {
1697  //seeds
1698  t->Branch("see_fitok", &see_fitok);
1699  t->Branch("see_px", &see_px);
1700  t->Branch("see_py", &see_py);
1701  t->Branch("see_pz", &see_pz);
1702  t->Branch("see_pt", &see_pt);
1703  t->Branch("see_eta", &see_eta);
1704  t->Branch("see_phi", &see_phi);
1705  t->Branch("see_dxy", &see_dxy);
1706  t->Branch("see_dz", &see_dz);
1707  t->Branch("see_ptErr", &see_ptErr);
1708  t->Branch("see_etaErr", &see_etaErr);
1709  t->Branch("see_phiErr", &see_phiErr);
1710  t->Branch("see_dxyErr", &see_dxyErr);
1711  t->Branch("see_dzErr", &see_dzErr);
1712  t->Branch("see_chi2", &see_chi2);
1713  t->Branch("see_statePt", &see_statePt);
1714  t->Branch("see_stateTrajX", &see_stateTrajX);
1715  t->Branch("see_stateTrajY", &see_stateTrajY);
1716  t->Branch("see_stateTrajPx", &see_stateTrajPx);
1717  t->Branch("see_stateTrajPy", &see_stateTrajPy);
1718  t->Branch("see_stateTrajPz", &see_stateTrajPz);
1719  t->Branch("see_stateTrajGlbX", &see_stateTrajGlbX);
1720  t->Branch("see_stateTrajGlbY", &see_stateTrajGlbY);
1721  t->Branch("see_stateTrajGlbZ", &see_stateTrajGlbZ);
1722  t->Branch("see_stateTrajGlbPx", &see_stateTrajGlbPx);
1723  t->Branch("see_stateTrajGlbPy", &see_stateTrajGlbPy);
1724  t->Branch("see_stateTrajGlbPz", &see_stateTrajGlbPz);
1725  if (addSeedCurvCov_) {
1726  t->Branch("see_stateCurvCov", &see_stateCurvCov);
1727  }
1728  t->Branch("see_q", &see_q);
1729  t->Branch("see_nValid", &see_nValid);
1730  t->Branch("see_nPixel", &see_nPixel);
1731  t->Branch("see_nGlued", &see_nGlued);
1732  t->Branch("see_nStrip", &see_nStrip);
1733  t->Branch("see_nPhase2OT", &see_nPhase2OT);
1734  t->Branch("see_nCluster", &see_nCluster);
1735  t->Branch("see_algo", &see_algo);
1736  t->Branch("see_stopReason", &see_stopReason);
1737  t->Branch("see_nCands", &see_nCands);
1738  t->Branch("see_trkIdx", &see_trkIdx);
1740  t->Branch("see_simTrkIdx", &see_simTrkIdx);
1741  t->Branch("see_simTrkShareFrac", &see_simTrkShareFrac);
1742  t->Branch("see_bestSimTrkIdx", &see_bestSimTrkIdx);
1743  t->Branch("see_bestFromFirstHitSimTrkIdx", &see_bestFromFirstHitSimTrkIdx);
1744  } else {
1745  t->Branch("see_isTrue", &see_isTrue);
1746  }
1747  t->Branch("see_bestSimTrkShareFrac", &see_bestSimTrkShareFrac);
1748  t->Branch("see_bestFromFirstHitSimTrkShareFrac", &see_bestFromFirstHitSimTrkShareFrac);
1749  if (includeAllHits_) {
1750  t->Branch("see_hitIdx", &see_hitIdx);
1751  t->Branch("see_hitType", &see_hitType);
1752  }
1753  //seed algo offset
1754  t->Branch("see_offset", &see_offset);
1755  }
1756 
1757  //vertices
1758  t->Branch("vtx_x", &vtx_x);
1759  t->Branch("vtx_y", &vtx_y);
1760  t->Branch("vtx_z", &vtx_z);
1761  t->Branch("vtx_xErr", &vtx_xErr);
1762  t->Branch("vtx_yErr", &vtx_yErr);
1763  t->Branch("vtx_zErr", &vtx_zErr);
1764  t->Branch("vtx_ndof", &vtx_ndof);
1765  t->Branch("vtx_chi2", &vtx_chi2);
1766  t->Branch("vtx_fake", &vtx_fake);
1767  t->Branch("vtx_valid", &vtx_valid);
1768  t->Branch("vtx_trkIdx", &vtx_trkIdx);
1769 
1770  // tracking vertices
1771  t->Branch("simvtx_event", &simvtx_event);
1772  t->Branch("simvtx_bunchCrossing", &simvtx_bunchCrossing);
1773  t->Branch("simvtx_processType", &simvtx_processType);
1774  t->Branch("simvtx_x", &simvtx_x);
1775  t->Branch("simvtx_y", &simvtx_y);
1776  t->Branch("simvtx_z", &simvtx_z);
1777  t->Branch("simvtx_sourceSimIdx", &simvtx_sourceSimIdx);
1778  t->Branch("simvtx_daughterSimIdx", &simvtx_daughterSimIdx);
1779 
1780  t->Branch("simpv_idx", &simpv_idx);
1781 
1782  //t->Branch("" , &);
1783 }
std::vector< unsigned int > sim_nTrackerHits
std::vector< int > trk_bestSimTrkIdx
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 > trk_dxyPV
std::vector< float > see_bestSimTrkShareFrac
std::vector< std::vector< float > > see_simTrkShareFrac
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > stripMatchedRecHitToken_
T getUntrackedParameter(std::string const &, T const &) const
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< 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< uint64_t > str_usedMask
std::vector< int > glu_monoIdx
std::vector< float > trk_eta
std::vector< short > glu_isBarrel
const bool includeOOT_
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 > 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< float > sim_phi
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 > 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_
std::vector< unsigned short > see_stopReason
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< int > > ph2_trkIdx
edm::EDGetTokenT< Phase2TrackerRecHit1DCollectionNew > phase2OTRecHitToken_
std::vector< unsigned int > see_algo
std::string to_string(const V &value)
Definition: OMSAccess.h:71
const bool addSeedCurvCov_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< float > trk_inner_pt
std::vector< short > simhit_process
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
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
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< int > simpv_idx
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
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 > ph2_z
std::vector< float > ph2_yy
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< 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
std::vector< std::vector< float > > pix_xySignificance
std::vector< float > trk_pz
std::vector< float > trk_dzErr
std::vector< float > trk_lambdaErr
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< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< short > pix_isBarrel
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
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
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< float > ph2_xy
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
std::vector< float > vtx_y
std::vector< float > pix_z
std::vector< int > see_bestFromFirstHitSimTrkIdx
std::vector< float > sim_eta
std::vector< unsigned int > trk_originalAlgo
std::vector< unsigned int > trk_nInnerLost
std::vector< float > str_y
std::vector< int > sim_pdgId
std::vector< int > see_q
std::vector< std::vector< 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< 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< float > str_zz
DetIdAllPhase2 inv_detId_phase2
std::vector< float > sim_pca_pt
DetIdPhase2OT ph2_detId
std::vector< float > see_dxyErr
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
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 > sim_pca_lambda
std::vector< float > see_stateTrajPx
std::vector< float > glu_zx
const bool saveSimHitsP3_
std::vector< float > vtx_xErr
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 > 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< float > str_zx
HistoryBase tracer_
std::vector< int > glu_clustSizeStereo
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< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
std::vector< std::vector< float > > ph2_xySignificance
std::vector< std::vector< int > > trk_hitIdx
std::string const & label() const
Definition: InputTag.h:36
std::vector< int > trk_q
std::vector< unsigned int > sim_nPixel
const bool includeAllHits_
std::vector< short > vtx_valid
std::vector< float > see_stateTrajGlbX
edm::EDGetTokenT< ClusterTPAssociation > clusterTPMapToken_
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 > 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< float > sim_pca_eta
VParameterSet getUntrackedParameterSetVector(std::string const &name, VParameterSet const &defaultValue) const
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 > trk_ndof
std::vector< float > glu_xx
const bool keepEleSimHits_
edm::EDGetTokenT< edm::ValueMap< unsigned int > > tpNPixelLayersToken_
std::vector< unsigned int > trk_nPixelLay
std::vector< float > see_stateTrajGlbZ
std::vector< float > simhit_x
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< float > ph2_zz
std::vector< int > see_trkIdx
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< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
std::vector< std::vector< int > > see_hitIdx
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > ttrhToken_
std::vector< float > vtx_x
std::vector< float > simhit_pz
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< int > sim_isFromBHadron
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > stripSimLinkToken_
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
TrackingNtuple::~TrackingNtuple ( )
override

Definition at line 1785 of file TrackingNtuple.cc.

1785  {
1786  // do anything here that needs to be done at desctruction time
1787  // (e.g. close files, deallocate resources etc.)
1788 }

Member Function Documentation

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

Definition at line 2894 of file TrackingNtuple.cc.

References TransientTrackingRecHitBuilder::build(), siStripClusterTools::chargePerCM(), SiStripRecHit2D::cluster(), SiStripMatchedRecHit2D::firstClusterRef(), TrackingRecHit::geographicalId(), 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, edm::Ref< C, T, F >::key(), submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, SiStripMatchedRecHit2D::monoHit(), SiStripMatchedRecHit2D::stereoHit(), OmniClusterRef::stripCluster(), StripSubdetector::TIB, and StripSubdetector::TOB.

Referenced by fillSeeds(), and fillStripMatchedHits().

2898  {
2899  auto strUsedMask = [&stripMasks](size_t key) {
2900  uint64_t mask = 0;
2901  for (auto const& m : stripMasks) {
2902  if (m.second->mask(key))
2903  mask |= m.first;
2904  }
2905  return mask;
2906  };
2907 
2908  TransientTrackingRecHit::RecHitPointer ttrh = theTTRHBuilder.build(&hit);
2909  const auto hitId = hit.geographicalId();
2910  const int lay = tTopo.layer(hitId);
2911  monoStereoClusterList.emplace_back(hit.monoHit().cluster().key(), hit.stereoHit().cluster().key());
2912  glu_isBarrel.push_back((hitId.subdetId() == StripSubdetector::TIB || hitId.subdetId() == StripSubdetector::TOB));
2913  glu_detId.push_back(tTopo, hitId);
2914  glu_monoIdx.push_back(hit.monoHit().cluster().key());
2915  glu_stereoIdx.push_back(hit.stereoHit().cluster().key());
2916  glu_seeIdx.emplace_back(); // filled in fillSeeds
2917  glu_x.push_back(ttrh->globalPosition().x());
2918  glu_y.push_back(ttrh->globalPosition().y());
2919  glu_z.push_back(ttrh->globalPosition().z());
2920  glu_xx.push_back(ttrh->globalPositionError().cxx());
2921  glu_xy.push_back(ttrh->globalPositionError().cyx());
2922  glu_yy.push_back(ttrh->globalPositionError().cyy());
2923  glu_yz.push_back(ttrh->globalPositionError().czy());
2924  glu_zz.push_back(ttrh->globalPositionError().czz());
2925  glu_zx.push_back(ttrh->globalPositionError().czx());
2926  glu_radL.push_back(ttrh->surface()->mediumProperties().radLen());
2927  glu_bbxi.push_back(ttrh->surface()->mediumProperties().xi());
2929  glu_clustSizeMono.push_back(hit.monoHit().cluster()->amplitudes().size());
2930  glu_clustSizeStereo.push_back(hit.stereoHit().cluster()->amplitudes().size());
2931  glu_usedMaskMono.push_back(strUsedMask(hit.monoHit().cluster().key()));
2932  glu_usedMaskStereo.push_back(strUsedMask(hit.stereoHit().cluster().key()));
2933  LogTrace("TrackingNtuple") << "stripMatchedHit"
2934  << " cluster0=" << hit.stereoHit().cluster().key()
2935  << " cluster1=" << hit.monoHit().cluster().key() << " subdId=" << hitId.subdetId()
2936  << " lay=" << lay << " rawId=" << hitId.rawId() << " pos =" << ttrh->globalPosition();
2937  return glu_isBarrel.size() - 1;
2938 }
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)
key_type key() const
Accessor for product key.
Definition: Ref.h:250
std::vector< uint64_t > glu_usedMaskStereo
OmniClusterRef const & firstClusterRef() const override
#define LogTrace(id)
SiStripCluster const & stripCluster() const
std::vector< float > glu_y
std::vector< float > glu_yz
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
tuple key
prepare the HTCondor submission files and eventually submit them
std::vector< float > glu_yy
ClusterRef cluster() const
std::vector< std::vector< int > > glu_seeIdx
static constexpr auto TOB
std::vector< float > glu_zz
std::vector< float > glu_zx
std::shared_ptr< TrackingRecHit const > RecHitPointer
std::vector< uint64_t > glu_usedMaskMono
std::vector< int > glu_stereoIdx
static constexpr auto TIB
SiStripRecHit2D stereoHit() const
unsigned long long uint64_t
Definition: Time.h:13
std::vector< int > glu_clustSizeStereo
unsigned int layer(const DetId &id) const
SiStripRecHit2D monoHit() const
std::vector< float > glu_bbxi
std::vector< int > glu_clustSizeMono
std::vector< float > glu_xx
DetId geographicalId() const
DetIdStrip glu_detId
void TrackingNtuple::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 2105 of file TrackingNtuple.cc.

References align::BeamSpot, beamSpotToken_, cms::cuda::bs, EncodedEventId::bunchCrossing(), clearVariables(), clusterTPMapToken_, ev_event, ev_lumi, ev_run, edm::EventID::event(), TrackingVertex::eventId(), Exception, fillBeamSpot(), fillPhase2OTHits(), fillPixelHits(), fillSeeds(), fillSimHits(), fillStripMatchedHits(), fillStripRphiStereoHits(), fillTrackingParticles(), fillTrackingVertices(), fillTracks(), fillVertices(), edm::Event::getByToken(), edm::EventSetup::getData(), mps_fire::i, edm::EventBase::id(), includeAllHits_, includeMVA_, includeOOT_, includePhase2OTHits_, includeSeeds_, includeStripHits_, includeTrackingParticles_, edm::EDGetTokenT< T >::isUninitialized(), LogDebug, edm::EventID::luminosityBlock(), mfToken_, mvaQualityCollectionTokens_, pixelSimLinkToken_, edm::Handle< T >::product(), edm::RefToBaseVector< T >::push_back(), dt_dqm_sourceclient_common_cff::reco, edm::EventID::run(), simHitTPMapToken_, siphase2OTSimLinksToken_, findQualityFiles::size, stripSimLinkToken_, t, tGeomToken_, tpHitIndexListLessSort(), trackAssociatorToken_, trackingParticleRefToken_, trackingParticleToken_, trackingVertexToken_, tracks, trackToken_, tTopoToken_, ttrhToken_, findQualityFiles::v, vertexToken_, and beam_dqm_sourceclient-live_cfg::vertices.

2105  {
2106  using namespace edm;
2107  using namespace reco;
2108  using namespace std;
2109 
2110  const auto& mf = iSetup.getData(mfToken_);
2111  const auto& theTTRHBuilder = &iSetup.getData(ttrhToken_);
2112  const TrackerTopology& tTopo = iSetup.getData(tTopoToken_);
2113  const TrackerGeometry& tracker = iSetup.getData(tGeomToken_);
2114 
2116  iEvent.getByToken(trackAssociatorToken_, theAssociator);
2117  const reco::TrackToTrackingParticleAssociator& associatorByHits = *theAssociator;
2118 
2119  LogDebug("TrackingNtuple") << "Analyzing new event";
2120 
2121  //initialize tree variables
2122  clearVariables();
2123 
2124  // FIXME: we really need to move to edm::View for reading the
2125  // TrackingParticles... Unfortunately it has non-trivial
2126  // consequences on the associator/association interfaces etc.
2128  const TrackingParticleRefVector* tmpTPptr = nullptr;
2130  edm::Handle<TrackingParticleRefVector> TPCollectionHRefVector;
2131 
2133  iEvent.getByToken(trackingParticleToken_, TPCollectionH);
2134  for (size_t i = 0, size = TPCollectionH->size(); i < size; ++i) {
2135  tmpTP.push_back(TrackingParticleRef(TPCollectionH, i));
2136  }
2137  tmpTPptr = &tmpTP;
2138  } else {
2139  iEvent.getByToken(trackingParticleRefToken_, TPCollectionHRefVector);
2140  tmpTPptr = TPCollectionHRefVector.product();
2141  }
2142  const TrackingParticleRefVector& tpCollection = *tmpTPptr;
2143 
2144  // Fill mapping from Ref::key() to index
2145  TrackingParticleRefKeyToIndex tpKeyToIndex;
2146  for (size_t i = 0; i < tpCollection.size(); ++i) {
2147  tpKeyToIndex[tpCollection[i].key()] = i;
2148  }
2149 
2150  // tracking vertices
2152  iEvent.getByToken(trackingVertexToken_, htv);
2153  const TrackingVertexCollection& tvs = *htv;
2154 
2155  // Fill mapping from Ref::key() to index
2156  TrackingVertexRefVector tvRefs;
2157  TrackingVertexRefKeyToIndex tvKeyToIndex;
2158  for (size_t i = 0; i < tvs.size(); ++i) {
2159  const TrackingVertex& v = tvs[i];
2160  if (!includeOOT_ && v.eventId().bunchCrossing() != 0) // Ignore OOTPU
2161  continue;
2162  tvKeyToIndex[i] = tvRefs.size();
2163  tvRefs.push_back(TrackingVertexRef(htv, i));
2164  }
2165 
2166  //get association maps, etc.
2167  Handle<ClusterTPAssociation> pCluster2TPListH;
2168  iEvent.getByToken(clusterTPMapToken_, pCluster2TPListH);
2169  const ClusterTPAssociation& clusterToTPMap = *pCluster2TPListH;
2171  iEvent.getByToken(simHitTPMapToken_, simHitsTPAssoc);
2172 
2173  // TP -> cluster count
2174  TrackingParticleRefKeyToCount tpKeyToClusterCount;
2175  for (const auto& clusterTP : clusterToTPMap) {
2176  tpKeyToClusterCount[clusterTP.second.key()] += 1;
2177  }
2178 
2179  // SimHit key -> index mapping
2180  SimHitRefKeyToIndex simHitRefKeyToIndex;
2181 
2182  //make a list to link TrackingParticles to its simhits
2183  std::vector<TPHitIndex> tpHitList;
2184 
2185  // Count the number of reco cluster per TP
2186 
2187  std::set<edm::ProductID> hitProductIds;
2188  std::map<edm::ProductID, size_t> seedCollToOffset;
2189 
2190  ev_run = iEvent.id().run();
2191  ev_lumi = iEvent.id().luminosityBlock();
2192  ev_event = iEvent.id().event();
2193 
2194  // Digi->Sim links for pixels and strips
2195  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> pixelDigiSimLinksHandle;
2196  iEvent.getByToken(pixelSimLinkToken_, pixelDigiSimLinksHandle);
2197  const auto& pixelDigiSimLinks = *pixelDigiSimLinksHandle;
2198 
2199  edm::Handle<edm::DetSetVector<StripDigiSimLink>> stripDigiSimLinksHandle;
2200  iEvent.getByToken(stripSimLinkToken_, stripDigiSimLinksHandle);
2201 
2202  // Phase2 OT DigiSimLink
2203  edm::Handle<edm::DetSetVector<PixelDigiSimLink>> siphase2OTSimLinksHandle;
2204  iEvent.getByToken(siphase2OTSimLinksToken_, siphase2OTSimLinksHandle);
2205 
2206  //beamspot
2207  Handle<reco::BeamSpot> recoBeamSpotHandle;
2208  iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle);
2209  BeamSpot const& bs = *recoBeamSpotHandle;
2210  fillBeamSpot(bs);
2211 
2212  //prapare list to link matched hits to collection
2213  vector<pair<int, int>> monoStereoClusterList;
2214  if (includeAllHits_) {
2215  // simhits, only if TPs are saved as well
2217  fillSimHits(tracker, tpKeyToIndex, *simHitsTPAssoc, tTopo, simHitRefKeyToIndex, tpHitList);
2218  }
2219 
2220  //pixel hits
2221  fillPixelHits(iEvent,
2222  clusterToTPMap,
2223  tpKeyToIndex,
2224  *simHitsTPAssoc,
2225  pixelDigiSimLinks,
2226  *theTTRHBuilder,
2227  tTopo,
2228  simHitRefKeyToIndex,
2229  hitProductIds);
2230 
2231  //strip hits
2232  if (includeStripHits_) {
2233  LogDebug("TrackingNtuple") << "foundStripSimLink";
2234  const auto& stripDigiSimLinks = *stripDigiSimLinksHandle;
2235  fillStripRphiStereoHits(iEvent,
2236  clusterToTPMap,
2237  tpKeyToIndex,
2238  *simHitsTPAssoc,
2239  stripDigiSimLinks,
2240  *theTTRHBuilder,
2241  tTopo,
2242  simHitRefKeyToIndex,
2243  hitProductIds);
2244 
2245  //matched hits
2246  fillStripMatchedHits(iEvent, *theTTRHBuilder, tTopo, monoStereoClusterList);
2247  }
2248 
2249  if (includePhase2OTHits_) {
2250  LogDebug("TrackingNtuple") << "foundPhase2OTSimLinks";
2251  const auto& phase2OTSimLinks = *siphase2OTSimLinksHandle;
2252  fillPhase2OTHits(iEvent,
2253  clusterToTPMap,
2254  tpKeyToIndex,
2255  *simHitsTPAssoc,
2256  phase2OTSimLinks,
2257  *theTTRHBuilder,
2258  tTopo,
2259  simHitRefKeyToIndex,
2260  hitProductIds);
2261  }
2262  }
2263 
2264  //seeds
2265  if (includeSeeds_) {
2266  fillSeeds(iEvent,
2267  tpCollection,
2268  tpKeyToIndex,
2269  bs,
2270  associatorByHits,
2271  clusterToTPMap,
2272  *theTTRHBuilder,
2273  mf,
2274  tTopo,
2275  monoStereoClusterList,
2276  hitProductIds,
2277  seedCollToOffset);
2278  }
2279 
2280  //tracks
2281  edm::Handle<edm::View<reco::Track>> tracksHandle;
2282  iEvent.getByToken(trackToken_, tracksHandle);
2283  const edm::View<reco::Track>& tracks = *tracksHandle;
2284  // The associator interfaces really need to be fixed...
2286  for (edm::View<Track>::size_type i = 0; i < tracks.size(); ++i) {
2287  trackRefs.push_back(tracks.refAt(i));
2288  }
2289  std::vector<const MVACollection*> mvaColls;
2290  std::vector<const QualityMaskCollection*> qualColls;
2291  if (includeMVA_) {
2294 
2295  for (const auto& tokenTpl : mvaQualityCollectionTokens_) {
2296  iEvent.getByToken(std::get<0>(tokenTpl), hmva);
2297  iEvent.getByToken(std::get<1>(tokenTpl), hqual);
2298 
2299  mvaColls.push_back(hmva.product());
2300  qualColls.push_back(hqual.product());
2301  if (mvaColls.back()->size() != tracks.size()) {
2302  throw cms::Exception("Configuration")
2303  << "Inconsistency in track collection and MVA sizes. Track collection has " << tracks.size()
2304  << " tracks, whereas the MVA " << (mvaColls.size() - 1) << " has " << mvaColls.back()->size()
2305  << " entries. Double-check your configuration.";
2306  }
2307  if (qualColls.back()->size() != tracks.size()) {
2308  throw cms::Exception("Configuration")
2309  << "Inconsistency in track collection and quality mask sizes. Track collection has " << tracks.size()
2310  << " tracks, whereas the quality mask " << (qualColls.size() - 1) << " has " << qualColls.back()->size()
2311  << " entries. Double-check your configuration.";
2312  }
2313  }
2314  }
2315 
2317  iEvent.getByToken(vertexToken_, vertices);
2318 
2319  fillTracks(trackRefs,
2320  tpCollection,
2321  tpKeyToIndex,
2322  tpKeyToClusterCount,
2323  mf,
2324  bs,
2325  *vertices,
2326  associatorByHits,
2327  clusterToTPMap,
2328  *theTTRHBuilder,
2329  tTopo,
2330  hitProductIds,
2331  seedCollToOffset,
2332  mvaColls,
2333  qualColls);
2334 
2335  //tracking particles
2336  //sort association maps with simHits
2337  std::sort(tpHitList.begin(), tpHitList.end(), tpHitIndexListLessSort);
2339  iEvent, iSetup, trackRefs, bs, tpCollection, tvKeyToIndex, associatorByHits, tpHitList, tpKeyToClusterCount);
2340 
2341  // vertices
2342  fillVertices(*vertices, trackRefs);
2343 
2344  // tracking vertices
2345  fillTrackingVertices(tvRefs, tpKeyToIndex);
2346 
2347  t->Fill();
2348 }
RunNumber_t run() const
Definition: EventID.h:38
edm::LuminosityBlockNumber_t ev_lumi
edm::EDGetTokenT< TrackingParticleRefVector > trackingParticleRefToken_
EventNumber_t event() const
Definition: EventID.h:40
unsigned int size_type
Definition: View.h:90
void fillTrackingVertices(const TrackingVertexRefVector &trackingVertices, const TrackingParticleRefKeyToIndex &tpKeyToIndex)
const bool includeOOT_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
void fillPixelHits(const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
void fillStripRphiStereoHits(const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< StripDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > trackAssociatorToken_
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
constexpr bool isUninitialized() const noexcept
Definition: EDGetToken.h:99
void fillBeamSpot(const reco::BeamSpot &bs)
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
auto const & tracks
cannot be loose
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
void fillPhase2OTHits(const edm::Event &iEvent, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< PixelDigiSimLink > &digiSimLink, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const SimHitRefKeyToIndex &simHitRefKeyToIndex, std::set< edm::ProductID > &hitProductIds)
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > pixelSimLinkToken_
bool getData(T &iHolder) const
Definition: EventSetup.h:122
std::vector< std::tuple< edm::EDGetTokenT< MVACollection >, edm::EDGetTokenT< QualityMaskCollection > > > mvaQualityCollectionTokens_
edm::EDGetTokenT< edm::DetSetVector< PixelDigiSimLink > > siphase2OTSimLinksToken_
int bunchCrossing() const
get the detector field from this detid
edm::EDGetTokenT< SimHitTPAssociationProducer::SimHitTPAssociationList > simHitTPMapToken_
edm::RunNumber_t ev_run
edm::EDGetTokenT< TrackingVertexCollection > trackingVertexToken_
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)
void fillTracks(const edm::RefToBaseVector< reco::Track > &tracks, 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 TransientTrackingRecHitBuilder &theTTRHBuilder, 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)
edm::Ref< TrackingVertexCollection > TrackingVertexRef
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > mfToken_
edm::EventNumber_t ev_event
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticleToken_
T const * product() const
Definition: Handle.h:70
const bool includeMVA_
std::vector< TrackingVertex > TrackingVertexCollection
void fillSeeds(const edm::Event &iEvent, const TrackingParticleRefVector &tpCollection, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const reco::BeamSpot &bs, const reco::TrackToTrackingParticleAssociator &associatorByHits, const ClusterTPAssociation &clusterToTPMap, const TransientTrackingRecHitBuilder &theTTRHBuilder, 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)
const bool includeAllHits_
edm::EventID id() const
Definition: EventBase.h:59
const EncodedEventId & eventId() const
edm::EDGetTokenT< ClusterTPAssociation > clusterTPMapToken_
void push_back(const RefToBase< T > &)
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
void fillStripMatchedHits(const edm::Event &iEvent, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, std::vector< std::pair< int, int >> &monoStereoClusterList)
void fillVertices(const reco::VertexCollection &vertices, const edm::RefToBaseVector< reco::Track > &tracks)
const edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > ttrhToken_
tuple size
Write out results.
edm::Ref< TrackingParticleCollection > TrackingParticleRef
edm::EDGetTokenT< edm::DetSetVector< StripDigiSimLink > > stripSimLinkToken_
#define LogDebug(id)
void TrackingNtuple::clearVariables ( )
private

Definition at line 1793 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, beam_dqm_sourceclient-live_cfg::mva, ph2_bbxi, ph2_detId, ph2_isBarrel, ph2_radL, ph2_seeIdx, ph2_simHitIdx, ph2_simType, ph2_trkIdx, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, pix_bbxi, pix_chargeFraction, pix_clustSizeCol, pix_clustSizeRow, pix_detId, pix_isBarrel, pix_radL, pix_seeIdx, pix_simHitIdx, pix_simType, 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_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_radL, str_seeIdx, str_simHitIdx, str_simType, str_trkIdx, str_usedMask, str_x, str_xx, str_xy, str_xySignificance, str_y, str_yy, str_yz, str_z, str_zx, str_zz, 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().

1793  {
1794  ev_run = 0;
1795  ev_lumi = 0;
1796  ev_event = 0;
1797 
1798  //tracks
1799  trk_px.clear();
1800  trk_py.clear();
1801  trk_pz.clear();
1802  trk_pt.clear();
1803  trk_inner_px.clear();
1804  trk_inner_py.clear();
1805  trk_inner_pz.clear();
1806  trk_inner_pt.clear();
1807  trk_outer_px.clear();
1808  trk_outer_py.clear();
1809  trk_outer_pz.clear();
1810  trk_outer_pt.clear();
1811  trk_eta.clear();
1812  trk_lambda.clear();
1813  trk_cotTheta.clear();
1814  trk_phi.clear();
1815  trk_dxy.clear();
1816  trk_dz.clear();
1817  trk_dxyPV.clear();
1818  trk_dzPV.clear();
1819  trk_dxyClosestPV.clear();
1820  trk_dzClosestPV.clear();
1821  trk_ptErr.clear();
1822  trk_etaErr.clear();
1823  trk_lambdaErr.clear();
1824  trk_phiErr.clear();
1825  trk_dxyErr.clear();
1826  trk_dzErr.clear();
1827  trk_refpoint_x.clear();
1828  trk_refpoint_y.clear();
1829  trk_refpoint_z.clear();
1830  trk_nChi2.clear();
1831  trk_nChi2_1Dmod.clear();
1832  trk_ndof.clear();
1833  for (auto& mva : trk_mvas) {
1834  mva.clear();
1835  }
1836  for (auto& mask : trk_qualityMasks) {
1837  mask.clear();
1838  }
1839  trk_q.clear();
1840  trk_nValid.clear();
1841  trk_nLost.clear();
1842  trk_nInactive.clear();
1843  trk_nPixel.clear();
1844  trk_nStrip.clear();
1845  trk_nOuterLost.clear();
1846  trk_nInnerLost.clear();
1847  trk_nOuterInactive.clear();
1848  trk_nInnerInactive.clear();
1849  trk_nPixelLay.clear();
1850  trk_nStripLay.clear();
1851  trk_n3DLay.clear();
1852  trk_nLostLay.clear();
1853  trk_nCluster.clear();
1854  trk_algo.clear();
1855  trk_originalAlgo.clear();
1856  trk_algoMask.clear();
1857  trk_stopReason.clear();
1858  trk_isHP.clear();
1859  trk_seedIdx.clear();
1860  trk_vtxIdx.clear();
1861  trk_isTrue.clear();
1862  trk_bestSimTrkIdx.clear();
1863  trk_bestSimTrkShareFrac.clear();
1866  trk_bestSimTrkNChi2.clear();
1872  trk_simTrkIdx.clear();
1873  trk_simTrkShareFrac.clear();
1874  trk_simTrkNChi2.clear();
1875  trk_hitIdx.clear();
1876  trk_hitType.clear();
1877  //sim tracks
1878  sim_event.clear();
1879  sim_bunchCrossing.clear();
1880  sim_pdgId.clear();
1881  sim_genPdgIds.clear();
1882  sim_isFromBHadron.clear();
1883  sim_px.clear();
1884  sim_py.clear();
1885  sim_pz.clear();
1886  sim_pt.clear();
1887  sim_eta.clear();
1888  sim_phi.clear();
1889  sim_pca_pt.clear();
1890  sim_pca_eta.clear();
1891  sim_pca_lambda.clear();
1892  sim_pca_cotTheta.clear();
1893  sim_pca_phi.clear();
1894  sim_pca_dxy.clear();
1895  sim_pca_dz.clear();
1896  sim_q.clear();
1897  sim_nValid.clear();
1898  sim_nPixel.clear();
1899  sim_nStrip.clear();
1900  sim_nLay.clear();
1901  sim_nPixelLay.clear();
1902  sim_n3DLay.clear();
1903  sim_nTrackerHits.clear();
1904  sim_nRecoClusters.clear();
1905  sim_trkIdx.clear();
1906  sim_seedIdx.clear();
1907  sim_trkShareFrac.clear();
1908  sim_parentVtxIdx.clear();
1909  sim_decayVtxIdx.clear();
1910  sim_simHitIdx.clear();
1911  //pixels
1912  pix_isBarrel.clear();
1913  pix_detId.clear();
1914  pix_trkIdx.clear();
1915  pix_seeIdx.clear();
1916  pix_simHitIdx.clear();
1917  pix_xySignificance.clear();
1918  pix_chargeFraction.clear();
1919  pix_simType.clear();
1920  pix_x.clear();
1921  pix_y.clear();
1922  pix_z.clear();
1923  pix_xx.clear();
1924  pix_xy.clear();
1925  pix_yy.clear();
1926  pix_yz.clear();
1927  pix_zz.clear();
1928  pix_zx.clear();
1929  pix_radL.clear();
1930  pix_bbxi.clear();
1931  pix_clustSizeCol.clear();
1932  pix_clustSizeRow.clear();
1933  pix_usedMask.clear();
1934  //strips
1935  str_isBarrel.clear();
1936  str_detId.clear();
1937  str_trkIdx.clear();
1938  str_seeIdx.clear();
1939  str_simHitIdx.clear();
1940  str_xySignificance.clear();
1941  str_chargeFraction.clear();
1942  str_simType.clear();
1943  str_x.clear();
1944  str_y.clear();
1945  str_z.clear();
1946  str_xx.clear();
1947  str_xy.clear();
1948  str_yy.clear();
1949  str_yz.clear();
1950  str_zz.clear();
1951  str_zx.clear();
1952  str_radL.clear();
1953  str_bbxi.clear();
1954  str_chargePerCM.clear();
1955  str_clustSize.clear();
1956  str_usedMask.clear();
1957  //matched hits
1958  glu_isBarrel.clear();
1959  glu_detId.clear();
1960  glu_monoIdx.clear();
1961  glu_stereoIdx.clear();
1962  glu_seeIdx.clear();
1963  glu_x.clear();
1964  glu_y.clear();
1965  glu_z.clear();
1966  glu_xx.clear();
1967  glu_xy.clear();
1968  glu_yy.clear();
1969  glu_yz.clear();
1970  glu_zz.clear();
1971  glu_zx.clear();
1972  glu_radL.clear();
1973  glu_bbxi.clear();
1974  glu_chargePerCM.clear();
1975  glu_clustSizeMono.clear();
1976  glu_clustSizeStereo.clear();
1977  glu_usedMaskMono.clear();
1978  glu_usedMaskStereo.clear();
1979  //phase2 OT
1980  ph2_isBarrel.clear();
1981  ph2_detId.clear();
1982  ph2_trkIdx.clear();
1983  ph2_seeIdx.clear();
1984  ph2_xySignificance.clear();
1985  ph2_simHitIdx.clear();
1986  ph2_simType.clear();
1987  ph2_x.clear();
1988  ph2_y.clear();
1989  ph2_z.clear();
1990  ph2_xx.clear();
1991  ph2_xy.clear();
1992  ph2_yy.clear();
1993  ph2_yz.clear();
1994  ph2_zz.clear();
1995  ph2_zx.clear();
1996  ph2_radL.clear();
1997  ph2_bbxi.clear();
1998  //invalid hits
1999  inv_isBarrel.clear();
2000  inv_detId.clear();
2001  inv_detId_phase2.clear();
2002  inv_type.clear();
2003  // simhits
2004  simhit_detId.clear();
2005  simhit_detId_phase2.clear();
2006  simhit_x.clear();
2007  simhit_y.clear();
2008  simhit_z.clear();
2009  simhit_px.clear();
2010  simhit_py.clear();
2011  simhit_pz.clear();
2012  simhit_particle.clear();
2013  simhit_process.clear();
2014  simhit_eloss.clear();
2015  simhit_tof.clear();
2016  //simhit_simTrackId.clear();
2017  simhit_simTrkIdx.clear();
2018  simhit_hitIdx.clear();
2019  simhit_hitType.clear();
2020  //beamspot
2021  bsp_x = -9999.;
2022  bsp_y = -9999.;
2023  bsp_z = -9999.;
2024  bsp_sigmax = -9999.;
2025  bsp_sigmay = -9999.;
2026  bsp_sigmaz = -9999.;
2027  //seeds
2028  see_fitok.clear();
2029  see_px.clear();
2030  see_py.clear();
2031  see_pz.clear();
2032  see_pt.clear();
2033  see_eta.clear();
2034  see_phi.clear();
2035  see_dxy.clear();
2036  see_dz.clear();
2037  see_ptErr.clear();
2038  see_etaErr.clear();
2039  see_phiErr.clear();
2040  see_dxyErr.clear();
2041  see_dzErr.clear();
2042  see_chi2.clear();
2043  see_statePt.clear();
2044  see_stateTrajX.clear();
2045  see_stateTrajY.clear();
2046  see_stateTrajPx.clear();
2047  see_stateTrajPy.clear();
2048  see_stateTrajPz.clear();
2049  see_stateTrajGlbX.clear();
2050  see_stateTrajGlbY.clear();
2051  see_stateTrajGlbZ.clear();
2052  see_stateTrajGlbPx.clear();
2053  see_stateTrajGlbPy.clear();
2054  see_stateTrajGlbPz.clear();
2055  see_stateCurvCov.clear();
2056  see_q.clear();
2057  see_nValid.clear();
2058  see_nPixel.clear();
2059  see_nGlued.clear();
2060  see_nStrip.clear();
2061  see_nPhase2OT.clear();
2062  see_nCluster.clear();
2063  see_algo.clear();
2064  see_stopReason.clear();
2065  see_nCands.clear();
2066  see_trkIdx.clear();
2067  see_isTrue.clear();
2068  see_bestSimTrkIdx.clear();
2069  see_bestSimTrkShareFrac.clear();
2072  see_simTrkIdx.clear();
2073  see_simTrkShareFrac.clear();
2074  see_hitIdx.clear();
2075  see_hitType.clear();
2076  //seed algo offset
2077  see_offset.clear();
2078 
2079  // vertices
2080  vtx_x.clear();
2081  vtx_y.clear();
2082  vtx_z.clear();
2083  vtx_xErr.clear();
2084  vtx_yErr.clear();
2085  vtx_zErr.clear();
2086  vtx_ndof.clear();
2087  vtx_chi2.clear();
2088  vtx_fake.clear();
2089  vtx_valid.clear();
2090  vtx_trkIdx.clear();
2091 
2092  // Tracking vertices
2093  simvtx_event.clear();
2094  simvtx_bunchCrossing.clear();
2095  simvtx_processType.clear();
2096  simvtx_x.clear();
2097  simvtx_y.clear();
2098  simvtx_z.clear();
2099  simvtx_sourceSimIdx.clear();
2100  simvtx_daughterSimIdx.clear();
2101  simpv_idx.clear();
2102 }
std::vector< unsigned int > sim_nTrackerHits
std::vector< int > trk_bestSimTrkIdx
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 > 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< 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< uint64_t > str_usedMask
std::vector< int > glu_monoIdx
std::vector< float > trk_eta
std::vector< short > glu_isBarrel
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 > 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< float > sim_phi
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 > 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 > 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< int > > ph2_trkIdx
std::vector< unsigned int > see_algo
std::vector< float > trk_inner_pt
std::vector< short > simhit_process
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
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 > 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< 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 > ph2_z
std::vector< float > ph2_yy
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< 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< float > trk_dzErr
std::vector< float > trk_lambdaErr
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< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< short > pix_isBarrel
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< 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< 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< 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< float > str_zz
DetIdAllPhase2 inv_detId_phase2
std::vector< float > sim_pca_pt
DetIdPhase2OT ph2_detId
std::vector< float > see_dxyErr
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
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 > sim_pca_lambda
std::vector< float > see_stateTrajPx
std::vector< float > glu_zx
std::vector< float > vtx_xErr
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 > 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< float > str_zx
std::vector< int > glu_clustSizeStereo
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< std::vector< float > > ph2_xySignificance
std::vector< std::vector< int > > trk_hitIdx
std::vector< int > trk_q
std::vector< unsigned int > sim_nPixel
std::vector< short > vtx_valid
std::vector< float > see_stateTrajGlbX
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 > trk_outer_pz
std::vector< unsigned short > ph2_simType
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 > trk_ndof
std::vector< float > glu_xx
std::vector< unsigned int > trk_nPixelLay
std::vector< float > see_stateTrajGlbZ
std::vector< float > simhit_x
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< float > ph2_zz
std::vector< int > see_trkIdx
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< decltype(reco::TrackBase().algoMaskUL())> trk_algoMask
std::vector< std::vector< int > > see_hitIdx
std::vector< float > vtx_x
std::vector< float > simhit_pz
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< int > sim_isFromBHadron
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
void TrackingNtuple::fillBeamSpot ( const reco::BeamSpot bs)
private

Definition at line 2350 of file TrackingNtuple.cc.

References reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), bsp_sigmax, bsp_sigmay, bsp_sigmaz, bsp_x, bsp_y, bsp_z, reco::BeamSpot::sigmaZ(), reco::BeamSpot::x0(), and reco::BeamSpot::y0().

Referenced by analyze().

2350  {
2351  bsp_x = bs.x0();
2352  bsp_y = bs.y0();
2353  bsp_z = bs.x0();
2354  bsp_sigmax = bs.BeamWidthX();
2355  bsp_sigmay = bs.BeamWidthY();
2356  bsp_sigmaz = bs.sigmaZ();
2357 }
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:82
double sigmaZ() const
sigma z
Definition: BeamSpot.h:76
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:84
double y0() const
y coordinate
Definition: BeamSpot.h:63
double x0() const
x coordinate
Definition: BeamSpot.h:61
void TrackingNtuple::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 3926 of file TrackingNtuple.cc.

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

3926  {
3927  //The following says we do not know what parameters are allowed so do no validation
3928  // Please change this to state exactly what you do use, even if it is no parameters
3930  desc.addUntracked<std::vector<edm::InputTag>>(
3931  "seedTracks",
3932  std::vector<edm::InputTag>{edm::InputTag("seedTracksinitialStepSeeds"),
3933  edm::InputTag("seedTracksdetachedTripletStepSeeds"),
3934  edm::InputTag("seedTrackspixelPairStepSeeds"),
3935  edm::InputTag("seedTrackslowPtTripletStepSeeds"),
3936  edm::InputTag("seedTracksmixedTripletStepSeeds"),
3937  edm::InputTag("seedTrackspixelLessStepSeeds"),
3938  edm::InputTag("seedTrackstobTecStepSeeds"),
3939  edm::InputTag("seedTracksjetCoreRegionalStepSeeds"),
3940  edm::InputTag("seedTracksmuonSeededSeedsInOut"),
3941  edm::InputTag("seedTracksmuonSeededSeedsOutIn")});
3942  desc.addUntracked<std::vector<edm::InputTag>>(
3943  "trackCandidates",
3944  std::vector<edm::InputTag>{edm::InputTag("initialStepTrackCandidates"),
3945  edm::InputTag("detachedTripletStepTrackCandidates"),
3946  edm::InputTag("pixelPairStepTrackCandidates"),
3947  edm::InputTag("lowPtTripletStepTrackCandidates"),
3948  edm::InputTag("mixedTripletStepTrackCandidates"),
3949  edm::InputTag("pixelLessStepTrackCandidates"),
3950  edm::InputTag("tobTecStepTrackCandidates"),
3951  edm::InputTag("jetCoreRegionalStepTrackCandidates"),
3952  edm::InputTag("muonSeededTrackCandidatesInOut"),
3953  edm::InputTag("muonSeededTrackCandidatesOutIn")});
3954  desc.addUntracked<edm::InputTag>("tracks", edm::InputTag("generalTracks"));
3955  desc.addUntracked<std::vector<std::string>>("trackMVAs", std::vector<std::string>{{"generalTracks"}});
3956 
3957  edm::ParameterSetDescription cMaskDesc;
3958  cMaskDesc.addUntracked<unsigned int>("index");
3959  cMaskDesc.addUntracked<edm::InputTag>("src");
3960  std::vector<edm::ParameterSet> cMasks;
3961  auto addMask = [&cMasks](reco::Track::TrackAlgorithm algo) {
3962  edm::ParameterSet ps;
3963  ps.addUntrackedParameter<unsigned int>("index", static_cast<unsigned int>(algo));
3964  ps.addUntrackedParameter<edm::InputTag>("src", {reco::Track::algoName(algo) + "Clusters"});
3965  cMasks.push_back(ps);
3966  };
3970  addMask(reco::Track::lowPtQuadStep);
3973  addMask(reco::Track::pixelLessStep);
3974  addMask(reco::Track::pixelPairStep);
3975  addMask(reco::Track::tobTecStep);
3976  desc.addVPSetUntracked("clusterMasks", cMaskDesc, cMasks);
3977 
3978  desc.addUntracked<edm::InputTag>("trackingParticles", edm::InputTag("mix", "MergedTrackTruth"));
3979  desc.addUntracked<bool>("trackingParticlesRef", false);
3980  desc.addUntracked<edm::InputTag>("clusterTPMap", edm::InputTag("tpClusterProducer"));
3981  desc.addUntracked<edm::InputTag>("simHitTPMap", edm::InputTag("simHitTPAssocProducer"));
3982  desc.addUntracked<edm::InputTag>("trackAssociator", edm::InputTag("quickTrackAssociatorByHits"));
3983  desc.addUntracked<edm::InputTag>("pixelDigiSimLink", edm::InputTag("simSiPixelDigis"));
3984  desc.addUntracked<edm::InputTag>("stripDigiSimLink", edm::InputTag("simSiStripDigis"));
3985  desc.addUntracked<edm::InputTag>("phase2OTSimLink", edm::InputTag(""));
3986  desc.addUntracked<edm::InputTag>("beamSpot", edm::InputTag("offlineBeamSpot"));
3987  desc.addUntracked<edm::InputTag>("pixelRecHits", edm::InputTag("siPixelRecHits"));
3988  desc.addUntracked<edm::InputTag>("stripRphiRecHits", edm::InputTag("siStripMatchedRecHits", "rphiRecHit"));
3989  desc.addUntracked<edm::InputTag>("stripStereoRecHits", edm::InputTag("siStripMatchedRecHits", "stereoRecHit"));
3990  desc.addUntracked<edm::InputTag>("stripMatchedRecHits", edm::InputTag("siStripMatchedRecHits", "matchedRecHit"));
3991  desc.addUntracked<edm::InputTag>("phase2OTRecHits", edm::InputTag("siPhase2RecHits"));
3992  desc.addUntracked<edm::InputTag>("vertices", edm::InputTag("offlinePrimaryVertices"));
3993  desc.addUntracked<edm::InputTag>("trackingVertices", edm::InputTag("mix", "MergedTrackTruth"));
3994  desc.addUntracked<edm::InputTag>("trackingParticleNlayers",
3995  edm::InputTag("trackingParticleNumberOfLayersProducer", "trackerLayers"));
3996  desc.addUntracked<edm::InputTag>("trackingParticleNpixellayers",
3997  edm::InputTag("trackingParticleNumberOfLayersProducer", "pixelLayers"));
3998  desc.addUntracked<edm::InputTag>("trackingParticleNstripstereolayers",
3999  edm::InputTag("trackingParticleNumberOfLayersProducer", "stripStereoLayers"));
4000  desc.addUntracked<std::string>("TTRHBuilder", "WithTrackAngle");
4001  desc.addUntracked<bool>("includeSeeds", false);
4002  desc.addUntracked<bool>("addSeedCurvCov", false);
4003  desc.addUntracked<bool>("includeAllHits", false);
4004  desc.addUntracked<bool>("includeMVA", true);
4005  desc.addUntracked<bool>("includeTrackingParticles", true);
4006  desc.addUntracked<bool>("includeOOT", false);
4007  desc.addUntracked<bool>("keepEleSimHits", false);
4008  desc.addUntracked<bool>("saveSimHitsP3", false);
4009  desc.addUntracked<bool>("simHitBySignificance", false);
4010  descriptions.add("trackingNtuple", desc);
4011 }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
TrackAlgorithm
track algorithm
Definition: TrackBase.h:89
void addUntrackedParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:192
std::string algoName() const
Definition: TrackBase.h:550
void add(std::string const &label, ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * addVPSetUntracked(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
void TrackingNtuple::fillPhase2OTHits ( const edm::Event iEvent,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< PixelDigiSimLink > &  digiSimLink,
const TransientTrackingRecHitBuilder theTTRHBuilder,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 2961 of file TrackingNtuple.cc.

References TransientTrackingRecHitBuilder::build(), TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::event, edm::Event::getByToken(), hit::id, includeTrackingParticles_, submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, ph2_bbxi, ph2_detId, ph2_isBarrel, ph2_radL, ph2_seeIdx, ph2_simHitIdx, ph2_simType, ph2_trkIdx, ph2_x, ph2_xx, ph2_xy, ph2_xySignificance, ph2_y, ph2_yy, ph2_yz, ph2_z, ph2_zx, ph2_zz, Phase2OT, phase2OTRecHitToken_, DetId::rawId(), simhit_eloss, simhit_particle, simhit_process, simhit_x, simhit_y, simhit_z, DetId::subdetId(), TrackingNtuple::SimHitData::type, and TrackingNtuple::SimHitData::xySignificance.

Referenced by analyze().

2969  {
2971  iEvent.getByToken(phase2OTRecHitToken_, phase2OTHits);
2972  for (auto it = phase2OTHits->begin(); it != phase2OTHits->end(); it++) {
2973  const DetId hitId = it->detId();
2974  for (auto hit = it->begin(); hit != it->end(); hit++) {
2975  TransientTrackingRecHit::RecHitPointer ttrh = theTTRHBuilder.build(&*hit);
2976 
2977  hitProductIds.insert(hit->cluster().id());
2978 
2979  const int key = hit->cluster().key();
2980  const int lay = tTopo.layer(hitId);
2981 
2982  ph2_isBarrel.push_back(hitId.subdetId() == 1);
2983  ph2_detId.push_back(tTopo, hitId);
2984  ph2_trkIdx.emplace_back(); // filled in fillTracks
2985  ph2_seeIdx.emplace_back(); // filled in fillSeeds
2986  ph2_x.push_back(ttrh->globalPosition().x());
2987  ph2_y.push_back(ttrh->globalPosition().y());
2988  ph2_z.push_back(ttrh->globalPosition().z());
2989  ph2_xx.push_back(ttrh->globalPositionError().cxx());
2990  ph2_xy.push_back(ttrh->globalPositionError().cyx());
2991  ph2_yy.push_back(ttrh->globalPositionError().cyy());
2992  ph2_yz.push_back(ttrh->globalPositionError().czy());
2993  ph2_zz.push_back(ttrh->globalPositionError().czz());
2994  ph2_zx.push_back(ttrh->globalPositionError().czx());
2995  ph2_radL.push_back(ttrh->surface()->mediumProperties().radLen());
2996  ph2_bbxi.push_back(ttrh->surface()->mediumProperties().xi());
2997 
2998  LogTrace("TrackingNtuple") << "phase2 OT cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
2999  << " rawId=" << hitId.rawId() << " pos =" << ttrh->globalPosition();
3000 
3002  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
3003  hitId,
3004  key,
3005  ttrh,
3006  clusterToTPMap,
3007  tpKeyToIndex,
3008  simHitsTPAssoc,
3009  digiSimLink,
3010  simHitRefKeyToIndex,
3012  ph2_xySignificance.push_back(simHitData.xySignificance);
3013  ph2_simHitIdx.push_back(simHitData.matchingSimHit);
3014  ph2_simType.push_back(static_cast<int>(simHitData.type));
3015  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
3016  if (!simHitData.matchingSimHit.empty()) {
3017  const auto simHitIdx = simHitData.matchingSimHit[0];
3018  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
3019  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
3020  << " energyLoss=" << simhit_eloss[simHitIdx]
3021  << " particleType=" << simhit_particle[simHitIdx]
3022  << " processType=" << simhit_process[simHitIdx]
3023  << " bunchCrossing=" << simHitData.bunchCrossing[0]
3024  << " event=" << simHitData.event[0];
3025  }
3026  }
3027  }
3028  }
3029 }
std::vector< float > ph2_radL
std::vector< short > ph2_isBarrel
std::vector< std::vector< int > > ph2_seeIdx
std::vector< float > ph2_bbxi
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TransientTrackingRecHit::RecHitPointer &ttrh, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
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
#define LogTrace(id)
std::vector< float > simhit_z
std::vector< float > ph2_z
std::vector< float > ph2_yy
std::vector< float > ph2_y
std::vector< float > ph2_xy
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
tuple key
prepare the HTCondor submission files and eventually submit them
std::vector< std::vector< int > > ph2_simHitIdx
DetIdPhase2OT ph2_detId
const bool includeTrackingParticles_
std::shared_ptr< TrackingRecHit const > RecHitPointer
unsigned int id
Definition: DetId.h:17
std::vector< float > ph2_x
std::vector< std::vector< float > > ph2_xySignificance
unsigned int layer(const DetId &id) const
std::vector< int > simhit_particle
std::vector< unsigned short > ph2_simType
std::vector< float > ph2_yz
std::vector< float > simhit_y
std::vector< float > simhit_x
std::vector< float > ph2_zz
std::vector< float > simhit_eloss
void TrackingNtuple::fillPixelHits ( const edm::Event iEvent,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< PixelDigiSimLink > &  digiSimLink,
const TransientTrackingRecHitBuilder theTTRHBuilder,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 2684 of file TrackingNtuple.cc.

References TransientTrackingRecHitBuilder::build(), TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, TrackingNtuple::SimHitData::event, edm::Event::getByToken(), hit::id, includeTrackingParticles_, submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, pix_bbxi, pix_chargeFraction, pix_clustSizeCol, pix_clustSizeRow, pix_detId, pix_isBarrel, pix_radL, pix_seeIdx, pix_simHitIdx, pix_simType, 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, pixelRecHitToken_, pixelUseMaskTokens_, edm::Handle< T >::product(), DetId::rawId(), simhit_eloss, simhit_particle, simhit_process, simhit_x, simhit_y, simhit_z, DetId::subdetId(), TrackingNtuple::SimHitData::type, and TrackingNtuple::SimHitData::xySignificance.

Referenced by analyze().

2692  {
2693  std::vector<std::pair<uint64_t, PixelMaskContainer const*>> pixelMasks;
2694  pixelMasks.reserve(pixelUseMaskTokens_.size());
2695  for (const auto& itoken : pixelUseMaskTokens_) {
2697  iEvent.getByToken(itoken.second, aH);
2698  pixelMasks.emplace_back(1 << itoken.first, aH.product());
2699  }
2700  auto pixUsedMask = [&pixelMasks](size_t key) {
2701  uint64_t mask = 0;
2702  for (auto const& m : pixelMasks) {
2703  if (m.second->mask(key))
2704  mask |= m.first;
2705  }
2706  return mask;
2707  };
2708 
2710  iEvent.getByToken(pixelRecHitToken_, pixelHits);
2711  for (auto it = pixelHits->begin(); it != pixelHits->end(); it++) {
2712  const DetId hitId = it->detId();
2713  for (auto hit = it->begin(); hit != it->end(); hit++) {
2714  TransientTrackingRecHit::RecHitPointer ttrh = theTTRHBuilder.build(&*hit);
2715 
2716  hitProductIds.insert(hit->cluster().id());
2717 
2718  const int key = hit->cluster().key();
2719  const int lay = tTopo.layer(hitId);
2720 
2721  pix_isBarrel.push_back(hitId.subdetId() == 1);
2722  pix_detId.push_back(tTopo, hitId);
2723  pix_trkIdx.emplace_back(); // filled in fillTracks
2724  pix_seeIdx.emplace_back(); // filled in fillSeeds
2725  pix_x.push_back(ttrh->globalPosition().x());
2726  pix_y.push_back(ttrh->globalPosition().y());
2727  pix_z.push_back(ttrh->globalPosition().z());
2728  pix_xx.push_back(ttrh->globalPositionError().cxx());
2729  pix_xy.push_back(ttrh->globalPositionError().cyx());
2730  pix_yy.push_back(ttrh->globalPositionError().cyy());
2731  pix_yz.push_back(ttrh->globalPositionError().czy());
2732  pix_zz.push_back(ttrh->globalPositionError().czz());
2733  pix_zx.push_back(ttrh->globalPositionError().czx());
2734  pix_radL.push_back(ttrh->surface()->mediumProperties().radLen());
2735  pix_bbxi.push_back(ttrh->surface()->mediumProperties().xi());
2736  pix_clustSizeCol.push_back(hit->cluster()->sizeY());
2737  pix_clustSizeRow.push_back(hit->cluster()->sizeX());
2738  pix_usedMask.push_back(pixUsedMask(hit->firstClusterRef().key()));
2739 
2740  LogTrace("TrackingNtuple") << "pixHit cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
2741  << " rawId=" << hitId.rawId() << " pos =" << ttrh->globalPosition();
2743  SimHitData simHitData = matchCluster(hit->firstClusterRef(),
2744  hitId,
2745  key,
2746  ttrh,
2747  clusterToTPMap,
2748  tpKeyToIndex,
2749  simHitsTPAssoc,
2750  digiSimLink,
2751  simHitRefKeyToIndex,
2752  HitType::Pixel);
2753  pix_simHitIdx.push_back(simHitData.matchingSimHit);
2754  pix_simType.push_back(static_cast<int>(simHitData.type));
2755  pix_xySignificance.push_back(simHitData.xySignificance);
2756  pix_chargeFraction.push_back(simHitData.chargeFraction);
2757  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
2758  if (!simHitData.matchingSimHit.empty()) {
2759  const auto simHitIdx = simHitData.matchingSimHit[0];
2760  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
2761  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
2762  << " energyLoss=" << simhit_eloss[simHitIdx]
2763  << " particleType=" << simhit_particle[simHitIdx]
2764  << " processType=" << simhit_process[simHitIdx]
2765  << " bunchCrossing=" << simHitData.bunchCrossing[0]
2766  << " event=" << simHitData.event[0];
2767  }
2768  }
2769  }
2770  }
2771 }
std::vector< float > pix_y
std::vector< float > pix_zz
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TransientTrackingRecHit::RecHitPointer &ttrh, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
std::vector< unsigned short > pix_simType
std::vector< float > pix_zx
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
DetIdPixel pix_detId
std::vector< short > simhit_process
std::vector< float > pix_xx
std::vector< float > pix_radL
std::vector< float > pix_bbxi
#define LogTrace(id)
std::vector< std::vector< int > > pix_seeIdx
std::vector< float > simhit_z
std::vector< std::vector< float > > pix_xySignificance
edm::EDGetTokenT< SiPixelRecHitCollection > pixelRecHitToken_
std::vector< short > pix_isBarrel
std::vector< int > pix_clustSizeCol
std::vector< float > pix_z
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
std::vector< float > pix_yz
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< std::vector< float > > pix_chargeFraction
tuple key
prepare the HTCondor submission files and eventually submit them
std::vector< std::vector< int > > pix_trkIdx
const bool includeTrackingParticles_
std::shared_ptr< TrackingRecHit const > RecHitPointer
unsigned int id
Definition: DetId.h:17
std::vector< uint64_t > pix_usedMask
std::vector< std::vector< int > > pix_simHitIdx
T const * product() const
Definition: Handle.h:70
unsigned long long uint64_t
Definition: Time.h:13
std::vector< float > pix_x
unsigned int layer(const DetId &id) const
std::vector< int > simhit_particle
std::vector< std::pair< unsigned int, edm::EDGetTokenT< PixelMaskContainer > > > pixelUseMaskTokens_
std::vector< float > simhit_y
std::vector< float > simhit_x
std::vector< float > pix_xy
std::vector< float > pix_yy
std::vector< float > simhit_eloss
std::vector< int > pix_clustSizeRow
void TrackingNtuple::fillSeeds ( const edm::Event iEvent,
const TrackingParticleRefVector tpCollection,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const reco::BeamSpot bs,
const reco::TrackToTrackingParticleAssociator associatorByHits,
const ClusterTPAssociation clusterToTPMap,
const TransientTrackingRecHitBuilder theTTRHBuilder,
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 3031 of file TrackingNtuple.cc.

References addSeedCurvCov_, addStripMatchedHit(), reco::TrackBase::algoByName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), reco::TrackToTrackingParticleAssociator::associateSimToReco(), TransientTrackingRecHitBuilder::build(), RecoTauCleanerPlugins::charge, RZLine::chi2(), HLT_FULL_cff::chi2, OmniClusterRef::cluster_phase2OT(), OmniClusterRef::cluster_pixel(), submitPVResolutionJobs::count, TrajectoryStateOnSurface::curvilinearError(), declareDynArray, HLT_FULL_cff::distance, edm::AssociationMap< Tag >::end(), PVValHelper::eta, Exception, fillTrackingParticlesForSeeds(), spr::find(), edm::AssociationMap< Tag >::find(), BaseTrackerRecHit::firstClusterRef(), edm::Event::getByToken(), TrajectoryStateOnSurface::globalParameters(), glu_seeIdx, Glued, runTauDisplay::gp, track_associator::hitsToClusterRefs(), mps_fire::i, gpuClustering::id, edm::ProductID::id(), OmniClusterRef::id(), includeAllHits_, includeTrackingParticles_, trackerHitRTTI::isMatched(), OmniClusterRef::key(), edm::Ref< C, T, F >::key(), label, HLT_FULL_cff::labels, edm::EDConsumerBase::labelsForToken(), LogTrace, CurvilinearTrajectoryError::matrix(), edm::ProductLabels::module, SiStripMatchedRecHit2D::monoClusterRef(), eostools::move(), nHits, hltrates_dqm_sourceclient-live_cfg::offset, ph2_seeIdx, Phase2OT, phi, pix_seeIdx, Pixel, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, reco::BeamSpot::position(), 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_trkIdx, fileCollector::seed, seedStopInfoTokens_, seedTokens_, edm::RefToBaseVector< T >::size(), SiStripMatchedRecHit2D::stereoClusterRef(), str_seeIdx, Strip, stripUseMaskTokens_, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, trackFromSeedFitFailed(), trajectoryStateTransform::transientState(), and hgcalPerformanceValidation::val.

Referenced by analyze().

3042  {
3043  TSCBLBuilderNoMaterial tscblBuilder;
3044  for (size_t iColl = 0; iColl < seedTokens_.size(); ++iColl) {
3045  const auto& seedToken = seedTokens_[iColl];
3046 
3047  edm::Handle<edm::View<reco::Track>> seedTracksHandle;
3048  iEvent.getByToken(seedToken, seedTracksHandle);
3049  const auto& seedTracks = *seedTracksHandle;
3050 
3051  if (seedTracks.empty())
3052  continue;
3053 
3055  labelsForToken(seedToken, labels);
3056 
3057  const auto& seedStopInfoToken = seedStopInfoTokens_[iColl];
3058  edm::Handle<std::vector<SeedStopInfo>> seedStopInfoHandle;
3059  iEvent.getByToken(seedStopInfoToken, seedStopInfoHandle);
3060  const auto& seedStopInfos = *seedStopInfoHandle;
3061  if (seedTracks.size() != seedStopInfos.size()) {
3063  labelsForToken(seedStopInfoToken, labels2);
3064 
3065  throw cms::Exception("LogicError") << "Got " << seedTracks.size() << " seeds, but " << seedStopInfos.size()
3066  << " seed stopping infos for collections " << labels.module << ", "
3067  << labels2.module;
3068  }
3069 
3070  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
3071  stripMasks.reserve(stripUseMaskTokens_.size());
3072  for (const auto& itoken : stripUseMaskTokens_) {
3074  iEvent.getByToken(itoken.second, aH);
3075  stripMasks.emplace_back(1 << itoken.first, aH.product());
3076  }
3077 
3078  // The associator interfaces really need to be fixed...
3079  edm::RefToBaseVector<reco::Track> seedTrackRefs;
3080  for (edm::View<reco::Track>::size_type i = 0; i < seedTracks.size(); ++i) {
3081  seedTrackRefs.push_back(seedTracks.refAt(i));
3082  }
3083  reco::RecoToSimCollection recSimColl = associatorByHits.associateRecoToSim(seedTrackRefs, tpCollection);
3084  reco::SimToRecoCollection simRecColl = associatorByHits.associateSimToReco(seedTrackRefs, tpCollection);
3085 
3086  TString label = labels.module;
3087  //format label to match algoName
3088  label.ReplaceAll("seedTracks", "");
3089  label.ReplaceAll("Seeds", "");
3090  label.ReplaceAll("muonSeeded", "muonSeededStep");
3091  //for HLT seeds
3092  label.ReplaceAll("FromPixelTracks", "");
3093  label.ReplaceAll("PFLowPixel", "");
3094  label.ReplaceAll("hltDoubletRecovery", "pixelPairStep"); //random choice
3095  int algo = reco::TrackBase::algoByName(label.Data());
3096 
3097  edm::ProductID id = seedTracks[0].seedRef().id();
3098  const auto offset = see_fitok.size();
3099  auto inserted = seedCollToOffset.emplace(id, offset);
3100  if (!inserted.second)
3101  throw cms::Exception("Configuration")
3102  << "Trying to add seeds with ProductID " << id << " for a second time from collection " << labels.module
3103  << ", seed algo " << label << ". Typically this is caused by a configuration problem.";
3104  see_offset.push_back(offset);
3105 
3106  LogTrace("TrackingNtuple") << "NEW SEED LABEL: " << label << " size: " << seedTracks.size() << " algo=" << algo
3107  << " ProductID " << id;
3108 
3109  for (size_t iSeed = 0; iSeed < seedTrackRefs.size(); ++iSeed) {
3110  const auto& seedTrackRef = seedTrackRefs[iSeed];
3111  const auto& seedTrack = *seedTrackRef;
3112  const auto& seedRef = seedTrack.seedRef();
3113  const auto& seed = *seedRef;
3114 
3115  const auto seedStopInfo = seedStopInfos[iSeed];
3116 
3117  if (seedRef.id() != id)
3118  throw cms::Exception("LogicError")
3119  << "All tracks in 'TracksFromSeeds' collection should point to seeds in the same collection. Now the "
3120  "element 0 had ProductID "
3121  << id << " while the element " << seedTrackRef.key() << " had " << seedTrackRef.id()
3122  << ". The source collection is " << labels.module << ".";
3123 
3124  std::vector<int> tpIdx;
3125  std::vector<float> sharedFraction;
3126  auto foundTPs = recSimColl.find(seedTrackRef);
3127  if (foundTPs != recSimColl.end()) {
3128  for (const auto& tpQuality : foundTPs->val) {
3129  tpIdx.push_back(tpKeyToIndex.at(tpQuality.first.key()));
3130  sharedFraction.push_back(tpQuality.second);
3131  }
3132  }
3133 
3134  // Search for a best-matching TrackingParticle for a seed
3135  const int nHits = seedTrack.numberOfValidHits();
3137  seedTrack.recHitsBegin(),
3138  seedTrack.recHitsEnd()); // TODO: this function is called 3 times per track, try to reduce
3139  const int nClusters = clusters.size();
3140  const auto bestKeyCount = findBestMatchingTrackingParticle(seedTrack, clusterToTPMap, tpKeyToIndex);
3141  const float bestShareFrac =
3142  nClusters > 0 ? static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(nClusters) : 0;
3143  // Another way starting from the first hit of the seed
3144  const auto bestFirstHitKeyCount =
3145  findMatchingTrackingParticleFromFirstHit(seedTrack, clusterToTPMap, tpKeyToIndex);
3146  const float bestFirstHitShareFrac =
3147  nClusters > 0 ? static_cast<float>(bestFirstHitKeyCount.countClusters) / static_cast<float>(nClusters) : 0;
3148 
3149  const bool seedFitOk = !trackFromSeedFitFailed(seedTrack);
3150  const int charge = seedTrack.charge();
3151  const float pt = seedFitOk ? seedTrack.pt() : 0;
3152  const float eta = seedFitOk ? seedTrack.eta() : 0;
3153  const float phi = seedFitOk ? seedTrack.phi() : 0;
3154 
3155  const auto seedIndex = see_fitok.size();
3156 
3157  see_fitok.push_back(seedFitOk);
3158 
3159  see_px.push_back(seedFitOk ? seedTrack.px() : 0);
3160  see_py.push_back(seedFitOk ? seedTrack.py() : 0);
3161  see_pz.push_back(seedFitOk ? seedTrack.pz() : 0);
3162  see_pt.push_back(pt);
3163  see_eta.push_back(eta);
3164  see_phi.push_back(phi);
3165  see_q.push_back(charge);
3166  see_nValid.push_back(nHits);
3167 
3168  see_dxy.push_back(seedFitOk ? seedTrack.dxy(bs.position()) : 0);
3169  see_dz.push_back(seedFitOk ? seedTrack.dz(bs.position()) : 0);
3170  see_ptErr.push_back(seedFitOk ? seedTrack.ptError() : 0);
3171  see_etaErr.push_back(seedFitOk ? seedTrack.etaError() : 0);
3172  see_phiErr.push_back(seedFitOk ? seedTrack.phiError() : 0);
3173  see_dxyErr.push_back(seedFitOk ? seedTrack.dxyError() : 0);
3174  see_dzErr.push_back(seedFitOk ? seedTrack.dzError() : 0);
3175  see_algo.push_back(algo);
3176  see_stopReason.push_back(seedStopInfo.stopReasonUC());
3177  see_nCands.push_back(seedStopInfo.candidatesPerSeed());
3178 
3179  const auto& state = seedTrack.seedRef()->startingState();
3180  const auto& pos = state.parameters().position();
3181  const auto& mom = state.parameters().momentum();
3182  see_statePt.push_back(state.pt());
3183  see_stateTrajX.push_back(pos.x());
3184  see_stateTrajY.push_back(pos.y());
3185  see_stateTrajPx.push_back(mom.x());
3186  see_stateTrajPy.push_back(mom.y());
3187  see_stateTrajPz.push_back(mom.z());
3188 
3190  TransientTrackingRecHit::RecHitPointer lastRecHit = theTTRHBuilder.build(&*(seed.recHits().end() - 1));
3192  trajectoryStateTransform::transientState(seed.startingState(), lastRecHit->surface(), &theMF);
3193  auto const& stateGlobal = tsos.globalParameters();
3194  see_stateTrajGlbX.push_back(stateGlobal.position().x());
3195  see_stateTrajGlbY.push_back(stateGlobal.position().y());
3196  see_stateTrajGlbZ.push_back(stateGlobal.position().z());
3197  see_stateTrajGlbPx.push_back(stateGlobal.momentum().x());
3198  see_stateTrajGlbPy.push_back(stateGlobal.momentum().y());
3199  see_stateTrajGlbPz.push_back(stateGlobal.momentum().z());
3200  if (addSeedCurvCov_) {
3201  auto const& stateCcov = tsos.curvilinearError().matrix();
3202  std::vector<float> cov(15);
3203  auto covP = cov.begin();
3204  for (auto const val : stateCcov)
3205  *(covP++) = val; //row-major
3206  see_stateCurvCov.push_back(std::move(cov));
3207  }
3208 
3209  see_trkIdx.push_back(-1); // to be set correctly in fillTracks
3211  see_simTrkIdx.push_back(tpIdx);
3212  see_simTrkShareFrac.push_back(sharedFraction);
3213  see_bestSimTrkIdx.push_back(bestKeyCount.key >= 0 ? tpKeyToIndex.at(bestKeyCount.key) : -1);
3215  bestFirstHitKeyCount.key >= 0 ? tpKeyToIndex.at(bestFirstHitKeyCount.key) : -1);
3216  } else {
3217  see_isTrue.push_back(!tpIdx.empty());
3218  }
3219  see_bestSimTrkShareFrac.push_back(bestShareFrac);
3220  see_bestFromFirstHitSimTrkShareFrac.push_back(bestFirstHitShareFrac);
3221 
3223  /*
3224  TransientTrackingRecHit::RecHitPointer lastRecHit = theTTRHBuilder.build(&*(seed.recHits().second-1));
3225  TrajectoryStateOnSurface state = trajectoryStateTransform::transientState( itSeed->startingState(), lastRecHit->surface(), &theMF);
3226  float pt = state.globalParameters().momentum().perp();
3227  float eta = state.globalParameters().momentum().eta();
3228  float phi = state.globalParameters().momentum().phi();
3229  see_px .push_back( state.globalParameters().momentum().x() );
3230  see_py .push_back( state.globalParameters().momentum().y() );
3231  see_pz .push_back( state.globalParameters().momentum().z() );
3232  */
3233 
3234  std::vector<int> hitIdx;
3235  std::vector<int> hitType;
3236 
3237  for (auto const& hit : seed.recHits()) {
3238  TransientTrackingRecHit::RecHitPointer recHit = theTTRHBuilder.build(&hit);
3239  int subid = recHit->geographicalId().subdetId();
3240  if (subid == (int)PixelSubdetector::PixelBarrel || subid == (int)PixelSubdetector::PixelEndcap) {
3241  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&*recHit);
3242  const auto& clusterRef = bhit->firstClusterRef();
3243  const auto clusterKey = clusterRef.cluster_pixel().key();
3244  if (includeAllHits_) {
3245  checkProductID(hitProductIds, clusterRef.id(), "seed");
3246  pix_seeIdx[clusterKey].push_back(seedIndex);
3247  }
3248  hitIdx.push_back(clusterKey);
3249  hitType.push_back(static_cast<int>(HitType::Pixel));
3250  } else if (subid == (int)StripSubdetector::TOB || subid == (int)StripSubdetector::TID ||
3251  subid == (int)StripSubdetector::TIB || subid == (int)StripSubdetector::TEC) {
3252  if (trackerHitRTTI::isMatched(*recHit)) {
3253  const SiStripMatchedRecHit2D* matchedHit = dynamic_cast<const SiStripMatchedRecHit2D*>(&*recHit);
3254  if (includeAllHits_) {
3255  checkProductID(hitProductIds, matchedHit->monoClusterRef().id(), "seed");
3256  checkProductID(hitProductIds, matchedHit->stereoClusterRef().id(), "seed");
3257  }
3258  int monoIdx = matchedHit->monoClusterRef().key();
3259  int stereoIdx = matchedHit->stereoClusterRef().key();
3260 
3261  std::vector<std::pair<int, int>>::iterator pos =
3262  find(monoStereoClusterList.begin(), monoStereoClusterList.end(), std::make_pair(monoIdx, stereoIdx));
3263  size_t gluedIndex = -1;
3264  if (pos != monoStereoClusterList.end()) {
3265  gluedIndex = std::distance(monoStereoClusterList.begin(), pos);
3266  } else {
3267  // We can encounter glued hits not in the input
3268  // SiStripMatchedRecHit2DCollection, e.g. via muon
3269  // outside-in seeds (or anything taking hits from
3270  // MeasurementTrackerEvent). So let's add them here.
3271  gluedIndex = addStripMatchedHit(*matchedHit, theTTRHBuilder, tTopo, stripMasks, monoStereoClusterList);
3272  }
3273 
3274  if (includeAllHits_)
3275  glu_seeIdx[gluedIndex].push_back(seedIndex);
3276  hitIdx.push_back(gluedIndex);
3277  hitType.push_back(static_cast<int>(HitType::Glued));
3278  } else {
3279  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&*recHit);
3280  const auto& clusterRef = bhit->firstClusterRef();
3281  unsigned int clusterKey;
3282  if (clusterRef.isPhase2()) {
3283  clusterKey = clusterRef.cluster_phase2OT().key();
3284  } else {
3285  clusterKey = clusterRef.cluster_strip().key();
3286  }
3287 
3288  if (includeAllHits_) {
3289  checkProductID(hitProductIds, clusterRef.id(), "seed");
3290  if (clusterRef.isPhase2()) {
3291  ph2_seeIdx[clusterKey].push_back(seedIndex);
3292  } else {
3293  str_seeIdx[clusterKey].push_back(seedIndex);
3294  }
3295  }
3296 
3297  hitIdx.push_back(clusterKey);
3298  if (clusterRef.isPhase2()) {
3299  hitType.push_back(static_cast<int>(HitType::Phase2OT));
3300  } else {
3301  hitType.push_back(static_cast<int>(HitType::Strip));
3302  }
3303  }
3304  } else {
3305  LogTrace("TrackingNtuple") << " not pixel and not Strip detector";
3306  }
3307  }
3308  see_hitIdx.push_back(hitIdx);
3309  see_hitType.push_back(hitType);
3310  see_nPixel.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Pixel)));
3311  see_nGlued.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Glued)));
3312  see_nStrip.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Strip)));
3313  see_nPhase2OT.push_back(std::count(hitType.begin(), hitType.end(), static_cast<int>(HitType::Phase2OT)));
3314  see_nCluster.push_back(nClusters);
3315  //the part below is not strictly needed
3316  float chi2 = -1;
3317  if (nHits == 2) {
3318  TransientTrackingRecHit::RecHitPointer recHit0 = theTTRHBuilder.build(&*(seed.recHits().begin()));
3319  TransientTrackingRecHit::RecHitPointer recHit1 = theTTRHBuilder.build(&*(seed.recHits().begin() + 1));
3320  std::vector<GlobalPoint> gp(2);
3321  std::vector<GlobalError> ge(2);
3322  gp[0] = recHit0->globalPosition();
3323  ge[0] = recHit0->globalPositionError();
3324  gp[1] = recHit1->globalPosition();
3325  ge[1] = recHit1->globalPositionError();
3326  LogTrace("TrackingNtuple")
3327  << "seed " << seedTrackRef.key() << " pt=" << pt << " eta=" << eta << " phi=" << phi << " q=" << charge
3328  << " - PAIR - ids: " << recHit0->geographicalId().rawId() << " " << recHit1->geographicalId().rawId()
3329  << " hitpos: " << gp[0] << " " << gp[1] << " trans0: "
3330  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[0]->globalPosition()
3331  : GlobalPoint(0, 0, 0))
3332  << " "
3333  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[1]->globalPosition()
3334  : GlobalPoint(0, 0, 0))
3335  << " trans1: "
3336  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[0]->globalPosition()
3337  : GlobalPoint(0, 0, 0))
3338  << " "
3339  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[1]->globalPosition()
3340  : GlobalPoint(0, 0, 0))
3341  << " eta,phi: " << gp[0].eta() << "," << gp[0].phi();
3342  } else if (nHits == 3) {
3343  TransientTrackingRecHit::RecHitPointer recHit0 = theTTRHBuilder.build(&*(seed.recHits().begin()));
3344  TransientTrackingRecHit::RecHitPointer recHit1 = theTTRHBuilder.build(&*(seed.recHits().begin() + 1));
3345  TransientTrackingRecHit::RecHitPointer recHit2 = theTTRHBuilder.build(&*(seed.recHits().begin() + 2));
3347  declareDynArray(GlobalError, 4, ge);
3348  declareDynArray(bool, 4, bl);
3349  gp[0] = recHit0->globalPosition();
3350  ge[0] = recHit0->globalPositionError();
3351  int subid0 = recHit0->geographicalId().subdetId();
3352  bl[0] = (subid0 == StripSubdetector::TIB || subid0 == StripSubdetector::TOB ||
3353  subid0 == (int)PixelSubdetector::PixelBarrel);
3354  gp[1] = recHit1->globalPosition();
3355  ge[1] = recHit1->globalPositionError();
3356  int subid1 = recHit1->geographicalId().subdetId();
3357  bl[1] = (subid1 == StripSubdetector::TIB || subid1 == StripSubdetector::TOB ||
3358  subid1 == (int)PixelSubdetector::PixelBarrel);
3359  gp[2] = recHit2->globalPosition();
3360  ge[2] = recHit2->globalPositionError();
3361  int subid2 = recHit2->geographicalId().subdetId();
3362  bl[2] = (subid2 == StripSubdetector::TIB || subid2 == StripSubdetector::TOB ||
3363  subid2 == (int)PixelSubdetector::PixelBarrel);
3364  RZLine rzLine(gp, ge, bl);
3365  float seed_chi2 = rzLine.chi2();
3366  //float seed_pt = state.globalParameters().momentum().perp();
3367  float seed_pt = pt;
3368  LogTrace("TrackingNtuple")
3369  << "seed " << seedTrackRef.key() << " pt=" << pt << " eta=" << eta << " phi=" << phi << " q=" << charge
3370  << " - TRIPLET - ids: " << recHit0->geographicalId().rawId() << " " << recHit1->geographicalId().rawId()
3371  << " " << recHit2->geographicalId().rawId() << " hitpos: " << gp[0] << " " << gp[1] << " " << gp[2]
3372  << " trans0: "
3373  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[0]->globalPosition()
3374  : GlobalPoint(0, 0, 0))
3375  << " "
3376  << (recHit0->transientHits().size() > 1 ? recHit0->transientHits()[1]->globalPosition()
3377  : GlobalPoint(0, 0, 0))
3378  << " trans1: "
3379  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[0]->globalPosition()
3380  : GlobalPoint(0, 0, 0))
3381  << " "
3382  << (recHit1->transientHits().size() > 1 ? recHit1->transientHits()[1]->globalPosition()
3383  : GlobalPoint(0, 0, 0))
3384  << " trans2: "
3385  << (recHit2->transientHits().size() > 1 ? recHit2->transientHits()[0]->globalPosition()
3386  : GlobalPoint(0, 0, 0))
3387  << " "
3388  << (recHit2->transientHits().size() > 1 ? recHit2->transientHits()[1]->globalPosition()
3389  : GlobalPoint(0, 0, 0))
3390  << " local: "
3391  << recHit2->localPosition()
3392  //<< " tsos pos, mom: " << state.globalPosition()<<" "<<state.globalMomentum()
3393  << " eta,phi: " << gp[0].eta() << "," << gp[0].phi() << " pt,chi2: " << seed_pt << "," << seed_chi2;
3394  chi2 = seed_chi2;
3395  }
3396  see_chi2.push_back(chi2);
3397  }
3398 
3399  fillTrackingParticlesForSeeds(tpCollection, simRecColl, tpKeyToIndex, offset);
3400  }
3401 }
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
static constexpr auto TEC
unsigned int size_type
Definition: View.h:90
std::vector< float > see_bestSimTrkShareFrac
std::vector< std::vector< float > > see_simTrkShareFrac
std::vector< short > see_fitok
Phase2Cluster1DRef cluster_phase2OT() const
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)
uint16_t *__restrict__ id
std::vector< float > see_phiErr
const_iterator end() const
last iterator over the map (read only)
std::vector< float > see_dzErr
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
std::vector< unsigned int > see_nStrip
std::vector< float > see_stateTrajPz
OmniClusterRef const & stereoClusterRef() const
const CurvilinearTrajectoryError & curvilinearError() const
std::vector< float > see_px
std::vector< float > see_chi2
const_iterator find(const key_type &k) const
find element with specified reference key
std::vector< float > see_stateTrajY
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< unsigned short > see_stopReason
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
key_type key() const
Accessor for product key.
Definition: Ref.h:250
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
#define LogTrace(id)
std::vector< std::vector< int > > pix_seeIdx
ClusterPixelRef cluster_pixel() const
std::vector< short > see_isTrue
std::vector< float > see_etaErr
char const * label
std::vector< int > see_bestSimTrkIdx
std::vector< float > see_stateTrajGlbPz
std::vector< std::vector< float > > see_stateCurvCov
std::vector< unsigned int > see_nCluster
size_t addStripMatchedHit(const SiStripMatchedRecHit2D &hit, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const std::vector< std::pair< uint64_t, StripMaskContainer const * >> &stripMasks, std::vector< std::pair< int, int >> &monoStereoClusterList)
void fillTrackingParticlesForSeeds(const TrackingParticleRefVector &tpCollection, const reco::SimToRecoCollection &simRecColl, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const unsigned int seedOffset)
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
std::vector< int > see_bestFromFirstHitSimTrkIdx
std::vector< int > see_q
def move
Definition: eostools.py:511
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_
size_type size() const
static constexpr auto TOB
std::vector< float > see_phi
OmniClusterRef const & monoClusterRef() const
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
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::shared_ptr< TrackingRecHit const > RecHitPointer
Definition: RZLine.h:12
std::vector< float > see_stateTrajGlbY
static constexpr auto TIB
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
T const * product() const
Definition: Handle.h:70
const GlobalTrajectoryParameters & globalParameters() const
std::vector< unsigned int > see_nGlued
std::vector< float > see_py
std::vector< float > see_ptErr
virtual OmniClusterRef const & firstClusterRef() const =0
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
const bool includeAllHits_
std::vector< float > see_stateTrajGlbX
edm::ProductID id() const
const AlgebraicSymMatrix55 & matrix() const
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
const Point & position() const
position
Definition: BeamSpot.h:59
std::vector< unsigned short > see_nCands
#define declareDynArray(T, n, x)
Definition: DynArray.h:91
std::vector< unsigned int > see_offset
ProductIndex id() const
Definition: ProductID.h:35
std::vector< int > see_trkIdx
std::vector< float > see_stateTrajGlbPy
unsigned int key() const
static constexpr auto TID
std::vector< std::vector< int > > see_hitIdx
std::vector< unsigned int > see_nPixel
std::vector< float > see_eta
std::vector< float > see_bestFromFirstHitSimTrkShareFrac
std::vector< float > see_dz
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 2566 of file TrackingNtuple.cc.

References funct::abs(), DetId::det(), Exception, TrackerGeometry::idToDetUnit(), includeStripHits_, keepEleSimHits_, LogTrace, TrackingParticle::pdgId(), 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, and DetId::Tracker.

Referenced by analyze().

2571  {
2572  for (const auto& assoc : simHitsTPAssoc) {
2573  auto tpKey = assoc.first.key();
2574 
2575  // SimHitTPAssociationList can contain more TrackingParticles than
2576  // what are given to this EDAnalyzer, so we can filter those out here.
2577  auto found = tpKeyToIndex.find(tpKey);
2578  if (found == tpKeyToIndex.end())
2579  continue;
2580  const auto tpIndex = found->second;
2581 
2582  // skip non-tracker simhits (mostly muons)
2583  const auto& simhit = *(assoc.second);
2584  auto detId = DetId(simhit.detUnitId());
2585  if (detId.det() != DetId::Tracker)
2586  continue;
2587 
2588  // Skip electron SimHits for non-electron TrackingParticles to
2589  // filter out delta rays. The delta ray hits just confuse. If we
2590  // need them later, let's add them as a separate "collection" of
2591  // hits of a TP
2592  const TrackingParticle& tp = *(assoc.first);
2593  if (!keepEleSimHits_ && std::abs(simhit.particleType()) == 11 && std::abs(tp.pdgId()) != 11)
2594  continue;
2595 
2596  auto simHitKey = std::make_pair(assoc.second.key(), assoc.second.id());
2597 
2598  if (simHitRefKeyToIndex.find(simHitKey) != simHitRefKeyToIndex.end()) {
2599  for (const auto& assoc2 : simHitsTPAssoc) {
2600  if (std::make_pair(assoc2.second.key(), assoc2.second.id()) == simHitKey) {
2601 #ifdef EDM_ML_DEBUG
2602  auto range1 = std::equal_range(simHitsTPAssoc.begin(),
2603  simHitsTPAssoc.end(),
2604  std::make_pair(assoc.first, TrackPSimHitRef()),
2606  auto range2 = std::equal_range(simHitsTPAssoc.begin(),
2607  simHitsTPAssoc.end(),
2608  std::make_pair(assoc2.first, TrackPSimHitRef()),
2610 
2611  LogTrace("TrackingNtuple") << "Earlier TP " << assoc2.first.key() << " SimTrack Ids";
2612  for (const auto& simTrack : assoc2.first->g4Tracks()) {
2613  edm::LogPrint("TrackingNtuple") << " SimTrack " << simTrack.trackId() << " BX:event "
2614  << simTrack.eventId().bunchCrossing() << ":" << simTrack.eventId().event();
2615  }
2616  for (auto iHit = range2.first; iHit != range2.second; ++iHit) {
2617  LogTrace("TrackingNtuple") << " SimHit " << iHit->second.key() << " " << iHit->second.id() << " tof "
2618  << iHit->second->tof() << " trackId " << iHit->second->trackId() << " BX:event "
2619  << iHit->second->eventId().bunchCrossing() << ":"
2620  << iHit->second->eventId().event();
2621  }
2622  LogTrace("TrackingNtuple") << "Current TP " << assoc.first.key() << " SimTrack Ids";
2623  for (const auto& simTrack : assoc.first->g4Tracks()) {
2624  edm::LogPrint("TrackingNtuple") << " SimTrack " << simTrack.trackId() << " BX:event "
2625  << simTrack.eventId().bunchCrossing() << ":" << simTrack.eventId().event();
2626  }
2627  for (auto iHit = range1.first; iHit != range1.second; ++iHit) {
2628  LogTrace("TrackingNtuple") << " SimHit " << iHit->second.key() << " " << iHit->second.id() << " tof "
2629  << iHit->second->tof() << " trackId " << iHit->second->trackId() << " BX:event "
2630  << iHit->second->eventId().bunchCrossing() << ":"
2631  << iHit->second->eventId().event();
2632  }
2633 #endif
2634 
2635  throw cms::Exception("LogicError")
2636  << "Got second time the SimHit " << simHitKey.first << " of " << simHitKey.second
2637  << ", first time with TrackingParticle " << assoc2.first.key() << ", now with " << tpKey;
2638  }
2639  }
2640  throw cms::Exception("LogicError") << "Got second time the SimHit " << simHitKey.first << " of "
2641  << simHitKey.second << ", now with TrackingParticle " << tpKey
2642  << ", but I didn't find the first occurrance!";
2643  }
2644 
2645  auto det = tracker.idToDetUnit(detId);
2646  if (!det)
2647  throw cms::Exception("LogicError") << "Did not find a det unit for DetId " << simhit.detUnitId()
2648  << " from tracker geometry";
2649 
2650  const auto pos = det->surface().toGlobal(simhit.localPosition());
2651  const float tof = simhit.timeOfFlight();
2652 
2653  const auto simHitIndex = simhit_x.size();
2654  simHitRefKeyToIndex[simHitKey] = simHitIndex;
2655 
2656  if (includeStripHits_)
2657  simhit_detId.push_back(tTopo, detId);
2658  else
2659  simhit_detId_phase2.push_back(tTopo, detId);
2660  simhit_x.push_back(pos.x());
2661  simhit_y.push_back(pos.y());
2662  simhit_z.push_back(pos.z());
2663  if (saveSimHitsP3_) {
2664  const auto mom = det->surface().toGlobal(simhit.momentumAtEntry());
2665  simhit_px.push_back(mom.x());
2666  simhit_py.push_back(mom.y());
2667  simhit_pz.push_back(mom.z());
2668  }
2669  simhit_particle.push_back(simhit.particleType());
2670  simhit_process.push_back(simhit.processType());
2671  simhit_eloss.push_back(simhit.energyLoss());
2672  simhit_tof.push_back(tof);
2673  //simhit_simTrackId.push_back(simhit.trackId());
2674 
2675  simhit_simTrkIdx.push_back(tpIndex);
2676 
2677  simhit_hitIdx.emplace_back(); // filled in matchCluster
2678  simhit_hitType.emplace_back(); // filled in matchCluster
2679 
2680  tpHitList.emplace_back(tpKey, simHitIndex, tof, simhit.detUnitId());
2681  }
2682 }
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
std::vector< std::vector< int > > simhit_hitIdx
static bool simHitTPAssociationListGreater(SimHitTPPair i, SimHitTPPair j)
int pdgId() const
PDG ID.
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
void TrackingNtuple::fillStripMatchedHits ( const edm::Event iEvent,
const TransientTrackingRecHitBuilder theTTRHBuilder,
const TrackerTopology tTopo,
std::vector< std::pair< int, int >> &  monoStereoClusterList 
)
private

Definition at line 2940 of file TrackingNtuple.cc.

References addStripMatchedHit(), edm::Event::getByToken(), edm::Handle< T >::product(), stripMatchedRecHitToken_, and stripUseMaskTokens_.

Referenced by analyze().

2943  {
2944  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
2945  stripMasks.reserve(stripUseMaskTokens_.size());
2946  for (const auto& itoken : stripUseMaskTokens_) {
2948  iEvent.getByToken(itoken.second, aH);
2949  stripMasks.emplace_back(1 << itoken.first, aH.product());
2950  }
2951 
2953  iEvent.getByToken(stripMatchedRecHitToken_, matchedHits);
2954  for (auto it = matchedHits->begin(); it != matchedHits->end(); it++) {
2955  for (auto hit = it->begin(); hit != it->end(); hit++) {
2956  addStripMatchedHit(*hit, theTTRHBuilder, tTopo, stripMasks, monoStereoClusterList);
2957  }
2958  }
2959 }
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > stripMatchedRecHitToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
size_t addStripMatchedHit(const SiStripMatchedRecHit2D &hit, const TransientTrackingRecHitBuilder &theTTRHBuilder, const TrackerTopology &tTopo, const std::vector< std::pair< uint64_t, StripMaskContainer const * >> &stripMasks, std::vector< std::pair< int, int >> &monoStereoClusterList)
T const * product() const
Definition: Handle.h:70
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
void TrackingNtuple::fillStripRphiStereoHits ( const edm::Event iEvent,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< StripDigiSimLink > &  digiSimLink,
const TransientTrackingRecHitBuilder theTTRHBuilder,
const TrackerTopology tTopo,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
std::set< edm::ProductID > &  hitProductIds 
)
private

Definition at line 2773 of file TrackingNtuple.cc.

References TransientTrackingRecHitBuilder::build(), TrackingNtuple::SimHitData::bunchCrossing, TrackingNtuple::SimHitData::chargeFraction, siStripClusterTools::chargePerCM(), TrackingNtuple::SimHitData::event, PVValHelper::fill(), edm::Event::getByToken(), hit::id, includeTrackingParticles_, submitPVResolutionJobs::key, TrackerTopology::layer(), LogTrace, visualization-live-secondInstance_cfg::m, matchCluster(), TrackingNtuple::SimHitData::matchingSimHit, mergeVDriftHistosByStation::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_radL, str_seeIdx, str_simHitIdx, str_simType, 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, TrackingNtuple::SimHitData::type, and TrackingNtuple::SimHitData::xySignificance.

Referenced by analyze().

2781  {
2782  std::vector<std::pair<uint64_t, StripMaskContainer const*>> stripMasks;
2783  stripMasks.reserve(stripUseMaskTokens_.size());
2784  for (const auto& itoken : stripUseMaskTokens_) {
2786  iEvent.getByToken(itoken.second, aH);
2787  stripMasks.emplace_back(1 << itoken.first, aH.product());
2788  }
2789  auto strUsedMask = [&stripMasks](size_t key) {
2790  uint64_t mask = 0;
2791  for (auto const& m : stripMasks) {
2792  if (m.second->mask(key))
2793  mask |= m.first;
2794  }
2795  return mask;
2796  };
2797 
2798  //index strip hit branches by cluster index
2800  iEvent.getByToken(stripRphiRecHitToken_, rphiHits);
2802  iEvent.getByToken(stripStereoRecHitToken_, stereoHits);
2803  int totalStripHits = rphiHits->dataSize() + stereoHits->dataSize();
2804  str_isBarrel.resize(totalStripHits);
2805  str_detId.resize(totalStripHits);
2806  str_trkIdx.resize(totalStripHits); // filled in fillTracks
2807  str_seeIdx.resize(totalStripHits); // filled in fillSeeds
2808  str_simHitIdx.resize(totalStripHits);
2809  str_simType.resize(totalStripHits);
2810  str_chargeFraction.resize(totalStripHits);
2811  str_x.resize(totalStripHits);
2812  str_y.resize(totalStripHits);
2813  str_z.resize(totalStripHits);
2814  str_xx.resize(totalStripHits);
2815  str_xy.resize(totalStripHits);
2816  str_yy.resize(totalStripHits);
2817  str_yz.resize(totalStripHits);
2818  str_zz.resize(totalStripHits);
2819  str_zx.resize(totalStripHits);
2820  str_xySignificance.resize(totalStripHits);
2821  str_chargeFraction.resize(totalStripHits);
2822  str_radL.resize(totalStripHits);
2823  str_bbxi.resize(totalStripHits);
2824  str_chargePerCM.resize(totalStripHits);
2825  str_clustSize.resize(totalStripHits);
2826  str_usedMask.resize(totalStripHits);
2827 
2828  auto fill = [&](const SiStripRecHit2DCollection& hits, const char* name) {
2829  for (const auto& detset : hits) {
2830  const DetId hitId = detset.detId();
2831  for (const auto& hit : detset) {
2832  TransientTrackingRecHit::RecHitPointer ttrh = theTTRHBuilder.build(&hit);
2833 
2834  hitProductIds.insert(hit.cluster().id());
2835 
2836  const int key = hit.cluster().key();
2837  const int lay = tTopo.layer(hitId);
2839  str_detId.set(key, tTopo, hitId);
2840  str_x[key] = ttrh->globalPosition().x();
2841  str_y[key] = ttrh->globalPosition().y();
2842  str_z[key] = ttrh->globalPosition().z();
2843  str_xx[key] = ttrh->globalPositionError().cxx();
2844  str_xy[key] = ttrh->globalPositionError().cyx();
2845  str_yy[key] = ttrh->globalPositionError().cyy();
2846  str_yz[key] = ttrh->globalPositionError().czy();
2847  str_zz[key] = ttrh->globalPositionError().czz();
2848  str_zx[key] = ttrh->globalPositionError().czx();
2849  str_radL[key] = ttrh->surface()->mediumProperties().radLen();
2850  str_bbxi[key] = ttrh->surface()->mediumProperties().xi();
2851  str_chargePerCM[key] = siStripClusterTools::chargePerCM(hitId, hit.firstClusterRef().stripCluster());
2852  str_clustSize[key] = hit.cluster()->amplitudes().size();
2853  str_usedMask[key] = strUsedMask(key);
2854  LogTrace("TrackingNtuple") << name << " cluster=" << key << " subdId=" << hitId.subdetId() << " lay=" << lay
2855  << " rawId=" << hitId.rawId() << " pos =" << ttrh->globalPosition();
2856 
2858  SimHitData simHitData = matchCluster(hit.firstClusterRef(),
2859  hitId,
2860  key,
2861  ttrh,
2862  clusterToTPMap,
2863  tpKeyToIndex,
2864  simHitsTPAssoc,
2865  digiSimLink,
2866  simHitRefKeyToIndex,
2867  HitType::Strip);
2868  str_simHitIdx[key] = simHitData.matchingSimHit;
2869  str_simType[key] = static_cast<int>(simHitData.type);
2870  str_xySignificance[key] = simHitData.xySignificance;
2871  str_chargeFraction[key] = simHitData.chargeFraction;
2872  LogTrace("TrackingNtuple") << " nMatchingSimHit=" << simHitData.matchingSimHit.size();
2873  if (!simHitData.matchingSimHit.empty()) {
2874  const auto simHitIdx = simHitData.matchingSimHit[0];
2875  LogTrace("TrackingNtuple") << " firstMatchingSimHit=" << simHitIdx << " simHitPos="
2876  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
2877  << " simHitPos="
2878  << GlobalPoint(simhit_x[simHitIdx], simhit_y[simHitIdx], simhit_z[simHitIdx])
2879  << " energyLoss=" << simhit_eloss[simHitIdx]
2880  << " particleType=" << simhit_particle[simHitIdx]
2881  << " processType=" << simhit_process[simHitIdx]
2882  << " bunchCrossing=" << simHitData.bunchCrossing[0]
2883  << " event=" << simHitData.event[0];
2884  }
2885  }
2886  }
2887  }
2888  };
2889 
2890  fill(*rphiHits, "stripRPhiHit");
2891  fill(*stereoHits, "stripStereoHit");
2892 }
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
SimHitData matchCluster(const OmniClusterRef &cluster, DetId hitId, int clusterKey, const TransientTrackingRecHit::RecHitPointer &ttrh, const ClusterTPAssociation &clusterToTPMap, const TrackingParticleRefKeyToIndex &tpKeyToIndex, const SimHitTPAssociationProducer::SimHitTPAssociationList &simHitsTPAssoc, const edm::DetSetVector< SimLink > &digiSimLinks, const SimHitRefKeyToIndex &simHitRefKeyToIndex, HitType hitType)
std::vector< float > str_x
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
edm::EDGetTokenT< SiStripRecHit2DCollection > stripStereoRecHitToken_
std::vector< float > str_yz
float chargePerCM(DetId detid, Iter a, Iter b)
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< short > simhit_process
std::vector< std::vector< int > > str_seeIdx
std::vector< float > str_radL
#define LogTrace(id)
std::vector< std::vector< float > > str_xySignificance
std::vector< unsigned short > str_simType
std::vector< float > simhit_z
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
std::vector< float > str_y
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
tuple key
prepare the HTCondor submission files and eventually submit them
std::vector< float > str_zz
std::vector< float > str_chargePerCM
const bool includeTrackingParticles_
static constexpr auto TOB
std::shared_ptr< TrackingRecHit const > RecHitPointer
unsigned int id
Definition: DetId.h:17
static constexpr auto TIB
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
T const * product() const
Definition: Handle.h:70
unsigned long long uint64_t
Definition: Time.h:13
std::vector< float > str_z
std::vector< float > str_zx
std::vector< float > str_xy
std::vector< std::vector< float > > str_chargeFraction
std::vector< std::pair< unsigned int, edm::EDGetTokenT< StripMaskContainer > > > stripUseMaskTokens_
unsigned int layer(const DetId &id) const
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< float > simhit_x
std::vector< float > str_xx
std::vector< float > simhit_eloss
std::vector< float > str_bbxi
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 3685 of file TrackingNtuple.cc.

References reco::TrackToTrackingParticleAssociator::associateSimToReco(), TrackingParticleIP::dxy(), TrackingParticleIP::dz(), edm::AssociationMap< Tag >::end(), HistoryBase::evaluate(), Exception, edm::AssociationMap< Tag >::find(), edm::Event::getByToken(), includeStripHits_, LogTrace, M_PI, ParametersDefinerForTP::momentum(), parametersDefiner_, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, reco::BeamSpot::position(), 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, Reconstruction_hiPF_cff::trackQuality, Unknown, findQualityFiles::v, and ParametersDefinerForTP::vertex().

Referenced by analyze().

3693  {
3694  // Number of 3D layers for TPs
3696  iEvent.getByToken(tpNLayersToken_, tpNLayersH);
3697  const auto& nLayers_tPCeff = *tpNLayersH;
3698 
3699  iEvent.getByToken(tpNPixelLayersToken_, tpNLayersH);
3700  const auto& nPixelLayers_tPCeff = *tpNLayersH;
3701 
3702  iEvent.getByToken(tpNStripStereoLayersToken_, tpNLayersH);
3703  const auto& nStripMonoAndStereoLayers_tPCeff = *tpNLayersH;
3704 
3705  reco::SimToRecoCollection simRecColl = associatorByHits.associateSimToReco(tracks, tpCollection);
3706 
3707  for (const TrackingParticleRef& tp : tpCollection) {
3708  LogTrace("TrackingNtuple") << "tracking particle pt=" << tp->pt() << " eta=" << tp->eta() << " phi=" << tp->phi();
3709  bool isRecoMatched = false;
3710  std::vector<int> tkIdx;
3711  std::vector<float> sharedFraction;
3712  auto foundTracks = simRecColl.find(tp);
3713  if (foundTracks != simRecColl.end()) {
3714  isRecoMatched = true;
3715  for (const auto& trackQuality : foundTracks->val) {
3716  sharedFraction.push_back(trackQuality.second);
3717  tkIdx.push_back(trackQuality.first.key());
3718  }
3719  }
3720 
3721  sim_genPdgIds.emplace_back();
3722  for (const auto& genRef : tp->genParticles()) {
3723  if (genRef.isNonnull())
3724  sim_genPdgIds.back().push_back(genRef->pdgId());
3725  }
3726 
3727  bool isFromBHadron = false;
3728  // Logic is similar to SimTracker/TrackHistory
3729  if (tracer_.evaluate(tp)) { // ignore TP if history can not be traced
3730  // following is from TrackClassifier::processesAtGenerator()
3731  HistoryBase::RecoGenParticleTrail const& recoGenParticleTrail = tracer_.recoGenParticleTrail();
3732  for (const auto& particle : recoGenParticleTrail) {
3733  HepPDT::ParticleID particleID(particle->pdgId());
3734  if (particleID.hasBottom()) {
3735  isFromBHadron = true;
3736  break;
3737  }
3738  }
3739  }
3740 
3741  LogTrace("TrackingNtuple") << "matched to tracks = " << make_VectorPrinter(tkIdx)
3742  << " isRecoMatched=" << isRecoMatched;
3743  sim_event.push_back(tp->eventId().event());
3744  sim_bunchCrossing.push_back(tp->eventId().bunchCrossing());
3745  sim_pdgId.push_back(tp->pdgId());
3746  sim_isFromBHadron.push_back(isFromBHadron);
3747  sim_px.push_back(tp->px());
3748  sim_py.push_back(tp->py());
3749  sim_pz.push_back(tp->pz());
3750  sim_pt.push_back(tp->pt());
3751  sim_eta.push_back(tp->eta());
3752  sim_phi.push_back(tp->phi());
3753  sim_q.push_back(tp->charge());
3754  sim_trkIdx.push_back(tkIdx);
3755  sim_trkShareFrac.push_back(sharedFraction);
3756  sim_parentVtxIdx.push_back(tvKeyToIndex.at(tp->parentVertex().key()));
3757  std::vector<int> decayIdx;
3758  for (const auto& v : tp->decayVertices())
3759  decayIdx.push_back(tvKeyToIndex.at(v.key()));
3760  sim_decayVtxIdx.push_back(decayIdx);
3761 
3762  //Calcualte the impact parameters w.r.t. PCA
3763  TrackingParticle::Vector momentum = parametersDefiner_.momentum(iEvent, iSetup, tp);
3764  TrackingParticle::Point vertex = parametersDefiner_.vertex(iEvent, iSetup, tp);
3765  auto dxySim = TrackingParticleIP::dxy(vertex, momentum, bs.position());
3766  auto dzSim = TrackingParticleIP::dz(vertex, momentum, bs.position());
3767  const double lambdaSim = M_PI / 2 - momentum.theta();
3768  sim_pca_pt.push_back(std::sqrt(momentum.perp2()));
3769  sim_pca_eta.push_back(momentum.Eta());
3770  sim_pca_lambda.push_back(lambdaSim);
3771  sim_pca_cotTheta.push_back(1 / tan(M_PI * 0.5 - lambdaSim));
3772  sim_pca_phi.push_back(momentum.phi());
3773  sim_pca_dxy.push_back(dxySim);
3774  sim_pca_dz.push_back(dzSim);
3775 
3776  std::vector<int> hitIdx;
3777  int nPixel = 0, nStrip = 0;
3778  auto rangeHit = std::equal_range(tpHitList.begin(), tpHitList.end(), TPHitIndex(tp.key()), tpHitIndexListLess);
3779  for (auto ip = rangeHit.first; ip != rangeHit.second; ++ip) {
3780  auto type = HitType::Unknown;
3781  if (!simhit_hitType[ip->simHitIdx].empty())
3782  type = static_cast<HitType>(simhit_hitType[ip->simHitIdx][0]);
3783  LogTrace("TrackingNtuple") << "simhit=" << ip->simHitIdx << " type=" << static_cast<int>(type);
3784  hitIdx.push_back(ip->simHitIdx);
3785  const auto detid = DetId(includeStripHits_ ? simhit_detId[ip->simHitIdx] : simhit_detId_phase2[ip->simHitIdx]);
3786  if (detid.det() != DetId::Tracker) {
3787  throw cms::Exception("LogicError") << "Encountered SimHit for TP " << tp.key() << " with DetId "
3788  << detid.rawId() << " whose det() is not Tracker but " << detid.det();
3789  }
3790  const auto subdet = detid.subdetId();
3791  switch (subdet) {
3794  ++nPixel;
3795  break;
3796  case StripSubdetector::TIB:
3797  case StripSubdetector::TID:
3798  case StripSubdetector::TOB:
3799  case StripSubdetector::TEC:
3800  ++nStrip;
3801  break;
3802  default:
3803  throw cms::Exception("LogicError") << "Encountered SimHit for TP " << tp.key() << " with DetId "
3804  << detid.rawId() << " whose subdet is not recognized, is " << subdet;
3805  };
3806  }
3807  sim_nValid.push_back(hitIdx.size());
3808  sim_nPixel.push_back(nPixel);
3809  sim_nStrip.push_back(nStrip);
3810 
3811  const auto nSimLayers = nLayers_tPCeff[tp];
3812  const auto nSimPixelLayers = nPixelLayers_tPCeff[tp];
3813  const auto nSimStripMonoAndStereoLayers = nStripMonoAndStereoLayers_tPCeff[tp];
3814  sim_nLay.push_back(nSimLayers);
3815  sim_nPixelLay.push_back(nSimPixelLayers);
3816  sim_n3DLay.push_back(nSimPixelLayers + nSimStripMonoAndStereoLayers);
3817 
3818  sim_nTrackerHits.push_back(tp->numberOfTrackerHits());
3819  auto found = tpKeyToClusterCount.find(tp.key());
3820  sim_nRecoClusters.push_back(found != cend(tpKeyToClusterCount) ? found->second : 0);
3821 
3822  sim_simHitIdx.push_back(hitIdx);
3823  }
3824 }
std::vector< unsigned int > sim_nTrackerHits
std::vector< float > sim_pca_dz
std::vector< unsigned int > sim_nLay
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
static constexpr auto TEC
std::vector< float > sim_pca_cotTheta
std::vector< float > sim_pca_dxy
std::vector< int > sim_bunchCrossing
const_iterator end() const
last iterator over the map (read only)
std::vector< unsigned int > sim_n3DLay
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
std::vector< float > sim_phi
const_iterator find(const key_type &k) const
find element with specified reference key
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
#define LogTrace(id)
std::vector< int > sim_q
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_
std::vector< float > sim_pca_phi
auto dz(const T_Vertex &vertex, const T_Momentum &momentum, const T_Point &point)
std::vector< unsigned int > sim_nRecoClusters
T sqrt(T t)
Definition: SSEVec.h:19
std::vector< float > sim_eta
std::vector< int > sim_pdgId
std::vector< std::vector< int > > simhit_hitType
std::vector< std::vector< int > > sim_genPdgIds
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< unsigned int > sim_nValid
virtual TrackingParticle::Vector momentum(const edm::Event &iEvent, const edm::EventSetup &iSetup, const Charge ch, const Point &vtx, const LorentzVector &lv) const
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
#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_
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_
const Point & position() const
position
Definition: BeamSpot.h:59
math::XYZVectorD Vector
point in the space
RecoGenParticleTrail const & recoGenParticleTrail() const
Return all reco::GenParticle in the history.
Definition: HistoryBase.h:64
std::vector< float > sim_pt
static constexpr auto TID
DetIdAllPhase2 simhit_detId_phase2
std::vector< int > sim_isFromBHadron
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_nStrip
void TrackingNtuple::fillTrackingParticlesForSeeds ( const TrackingParticleRefVector tpCollection,
const reco::SimToRecoCollection simRecColl,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const unsigned int  seedOffset 
)
private

Definition at line 3827 of file TrackingNtuple.cc.

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

Referenced by fillSeeds().

3830  {
3831  if (sim_seedIdx.empty()) // first call
3832  sim_seedIdx.resize(tpCollection.size());
3833 
3834  for (const auto& keyVal : simRecColl) {
3835  const auto& tpRef = keyVal.key;
3836  auto found = tpKeyToIndex.find(tpRef.key());
3837  if (found == tpKeyToIndex.end())
3838  throw cms::Exception("Assert") << __FILE__ << ":" << __LINE__ << " fillTrackingParticlesForSeeds: tpRef.key() "
3839  << tpRef.key() << " not found from tpKeyToIndex. tpKeyToIndex size "
3840  << tpKeyToIndex.size();
3841  const auto tpIndex = found->second;
3842  for (const auto& pair : keyVal.val) {
3843  const auto& seedRef = pair.first->seedRef();
3844  sim_seedIdx[tpIndex].push_back(seedOffset + seedRef.key());
3845  }
3846  }
3847 }
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
std::vector< std::vector< int > > sim_seedIdx
void TrackingNtuple::fillTrackingVertices ( const TrackingVertexRefVector trackingVertices,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex 
)
private

Definition at line 3882 of file TrackingNtuple.cc.

References EncodedEventId::bunchCrossing(), TrackingVertex::daughterTracks(), EncodedEventId::event(), TrackingVertex::eventId(), PVValHelper::fill(), TrackingVertex::g4Vertices(), SiStripPI::max, TrackingVertex::position(), simpv_idx, simvtx_bunchCrossing, simvtx_daughterSimIdx, simvtx_event, simvtx_processType, simvtx_sourceSimIdx, simvtx_x, simvtx_y, simvtx_z, TrackingVertex::sourceTracks(), and findQualityFiles::v.

Referenced by analyze().

3883  {
3884  int current_event = -1;
3885  for (const auto& ref : trackingVertices) {
3886  const TrackingVertex v = *ref;
3887  if (v.eventId().event() != current_event) {
3888  // next PV
3889  current_event = v.eventId().event();
3890  simpv_idx.push_back(simvtx_x.size());
3891  }
3892 
3893  unsigned int processType = std::numeric_limits<unsigned int>::max();
3894  if (!v.g4Vertices().empty()) {
3895  processType = v.g4Vertices()[0].processType();
3896  }
3897 
3898  simvtx_event.push_back(v.eventId().event());
3899  simvtx_bunchCrossing.push_back(v.eventId().bunchCrossing());
3900  simvtx_processType.push_back(processType);
3901 
3902  simvtx_x.push_back(v.position().x());
3903  simvtx_y.push_back(v.position().y());
3904  simvtx_z.push_back(v.position().z());
3905 
3906  auto fill = [&](const TrackingParticleRefVector& tps, std::vector<int>& idx) {
3907  for (const auto& tpRef : tps) {
3908  auto found = tpKeyToIndex.find(tpRef.key());
3909  if (found != tpKeyToIndex.end()) {
3910  idx.push_back(found->second);
3911  }
3912  }
3913  };
3914 
3915  std::vector<int> sourceIdx;
3916  std::vector<int> daughterIdx;
3917  fill(v.sourceTracks(), sourceIdx);
3918  fill(v.daughterTracks(), daughterIdx);
3919 
3920  simvtx_sourceSimIdx.push_back(sourceIdx);
3921  simvtx_daughterSimIdx.push_back(daughterIdx);
3922  }
3923 }
std::vector< unsigned int > simvtx_processType
std::vector< float > simvtx_z
const TrackingParticleRefVector & sourceTracks() const
int event() const
get the contents of the subdetector field (should be protected?)
const std::vector< SimVertex > & g4Vertices() const
std::vector< int > simvtx_event
std::vector< int > simpv_idx
std::vector< std::vector< int > > simvtx_sourceSimIdx
int bunchCrossing() const
get the detector field from this detid
std::vector< float > simvtx_x
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
const EncodedEventId & eventId() const
const TrackingParticleRefVector & daughterTracks() const
std::vector< float > simvtx_y
std::vector< std::vector< int > > simvtx_daughterSimIdx
std::vector< int > simvtx_bunchCrossing
const LorentzVector & position() const
void TrackingNtuple::fillTracks ( const edm::RefToBaseVector< reco::Track > &  tracks,
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 TransientTrackingRecHitBuilder theTTRHBuilder,
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 3403 of file TrackingNtuple.cc.

References reco::TrackBase::algoName(), reco::TrackToTrackingParticleAssociator::associateRecoToSim(), TransientTrackingRecHitBuilder::build(), RecoTauCleanerPlugins::charge, HLT_FULL_cff::chi2, OmniClusterRef::cluster_pixel(), DetId::det(), HLT_FULL_cff::distance, edm::AssociationMap< Tag >::end(), PVValHelper::eta, Exception, edm::AssociationMap< Tag >::find(), BaseTrackerRecHit::firstClusterRef(), getBestVertex(), reco::TrackBase::highPurity, reco::HitPattern::hitPattern, track_associator::hitsToClusterRefs(), mps_fire::i, includeAllHits_, includeMVA_, includeSeeds_, includeStripHits_, includeTrackingParticles_, inv_detId, inv_detId_phase2, inv_isBarrel, inv_type, Invalid, TrackingRecHit::isValid(), edm::Ref< C, T, F >::key(), HLT_FULL_cff::labels, edm::EDConsumerBase::labelsForToken(), TrackerTopology::layer(), LogTrace, M_PI, reco::HitPattern::MISSING_INNER_HITS, reco::HitPattern::MISSING_OUTER_HITS, edm::ProductLabels::module, ndof, nHits, reco::HitPattern::numberOfLostHits(), reco::HitPattern::numberOfLostTrackerHits(), reco::HitPattern::numberOfValidHits(), reco::HitPattern::numberOfValidPixelHits(), reco::HitPattern::numberOfValidStripHits(), reco::HitPattern::numberOfValidStripLayersWithMonoAndStereo(), hltrates_dqm_sourceclient-live_cfg::offset, ph2_trkIdx, Phase2OT, phi, pix_trkIdx, Pixel, reco::HitPattern::pixelLayersWithMeasurement(), reco::BeamSpot::position(), DiDispStaMuonMonitor_cfi::pt, DetId::rawId(), see_trkIdx, edm::RefToBaseVector< T >::size(), str_trkIdx, Strip, reco::HitPattern::stripLayersWithMeasurement(), DetId::subdetId(), funct::tan(), reco::HitPattern::TRACK_HITS, track_associator::trackAssociationChi2(), DetId::Tracker, reco::HitPattern::trackerLayersTotallyOffOrBad(), reco::HitPattern::trackerLayersWithoutMeasurement(), 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, and trk_vtxIdx.

Referenced by analyze().

3417  {
3418  reco::RecoToSimCollection recSimColl = associatorByHits.associateRecoToSim(tracks, tpCollection);
3420  labelsForToken(trackToken_, labels);
3421  LogTrace("TrackingNtuple") << "NEW TRACK LABEL: " << labels.module;
3422 
3423  auto pvPosition = vertices[0].position();
3424 
3425  for (size_t iTrack = 0; iTrack < tracks.size(); ++iTrack) {
3426  const auto& itTrack = tracks[iTrack];
3427  int charge = itTrack->charge();
3428  float pt = itTrack->pt();
3429  float eta = itTrack->eta();
3430  const double lambda = itTrack->lambda();
3431  float chi2 = itTrack->normalizedChi2();
3432  float ndof = itTrack->ndof();
3433  float phi = itTrack->phi();
3434  int nHits = itTrack->numberOfValidHits();
3435  const reco::HitPattern& hp = itTrack->hitPattern();
3436 
3437  const auto& tkParam = itTrack->parameters();
3438  auto tkCov = itTrack->covariance();
3439  tkCov.Invert();
3440 
3441  // Standard track-TP matching
3442  int nSimHits = 0;
3443  bool isSimMatched = false;
3444  std::vector<int> tpIdx;
3445  std::vector<float> sharedFraction;
3446  std::vector<float> tpChi2;
3447  auto foundTPs = recSimColl.find(itTrack);
3448  if (foundTPs != recSimColl.end()) {
3449  if (!foundTPs->val.empty()) {
3450  nSimHits = foundTPs->val[0].first->numberOfTrackerHits();
3451  isSimMatched = true;
3452  }
3453  for (const auto& tpQuality : foundTPs->val) {
3454  tpIdx.push_back(tpKeyToIndex.at(tpQuality.first.key()));
3455  sharedFraction.push_back(tpQuality.second);
3456  tpChi2.push_back(track_associator::trackAssociationChi2(tkParam, tkCov, *(tpCollection[tpIdx.back()]), mf, bs));
3457  }
3458  }
3459 
3460  // Search for a best-matching TrackingParticle for a track
3462  itTrack->recHitsBegin(),
3463  itTrack->recHitsEnd()); // TODO: this function is called 3 times per track, try to reduce
3464  const int nClusters = clusters.size();
3465 
3466  const auto bestKeyCount = findBestMatchingTrackingParticle(*itTrack, clusterToTPMap, tpKeyToIndex);
3467  const float bestShareFrac = static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(nClusters);
3468  float bestShareFracSimDenom = 0;
3469  float bestShareFracSimClusterDenom = 0;
3470  float bestChi2 = -1;
3471  if (bestKeyCount.key >= 0) {
3472  bestShareFracSimDenom =
3473  static_cast<float>(bestKeyCount.countClusters) /
3474  static_cast<float>(tpCollection[tpKeyToIndex.at(bestKeyCount.key)]->numberOfTrackerHits());
3475  bestShareFracSimClusterDenom =
3476  static_cast<float>(bestKeyCount.countClusters) / static_cast<float>(tpKeyToClusterCount.at(bestKeyCount.key));
3478  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestKeyCount.key)]), mf, bs);
3479  }
3480  // Another way starting from the first hit of the track
3481  const auto bestFirstHitKeyCount = findMatchingTrackingParticleFromFirstHit(*itTrack, clusterToTPMap, tpKeyToIndex);
3482  const float bestFirstHitShareFrac =
3483  static_cast<float>(bestFirstHitKeyCount.countClusters) / static_cast<float>(nClusters);
3484  float bestFirstHitShareFracSimDenom = 0;
3485  float bestFirstHitShareFracSimClusterDenom = 0;
3486  float bestFirstHitChi2 = -1;
3487  if (bestFirstHitKeyCount.key >= 0) {
3488  bestFirstHitShareFracSimDenom =
3489  static_cast<float>(bestFirstHitKeyCount.countClusters) /
3490  static_cast<float>(tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]->numberOfTrackerHits());
3491  bestFirstHitShareFracSimClusterDenom = static_cast<float>(bestFirstHitKeyCount.countClusters) /
3492  static_cast<float>(tpKeyToClusterCount.at(bestFirstHitKeyCount.key));
3493  bestFirstHitChi2 = track_associator::trackAssociationChi2(
3494  tkParam, tkCov, *(tpCollection[tpKeyToIndex.at(bestFirstHitKeyCount.key)]), mf, bs);
3495  }
3496 
3497  float chi2_1Dmod = chi2;
3498  int count1dhits = 0;
3499  for (auto iHit = itTrack->recHitsBegin(), iEnd = itTrack->recHitsEnd(); iHit != iEnd; ++iHit) {
3500  const TrackingRecHit& hit = **iHit;
3501  if (hit.isValid() && typeid(hit) == typeid(SiStripRecHit1D))
3502  ++count1dhits;
3503  }
3504  if (count1dhits > 0) {
3505  chi2_1Dmod = (chi2 + count1dhits) / (ndof + count1dhits);
3506  }
3507 
3508  Point bestPV = getBestVertex(*itTrack, vertices);
3509 
3510  trk_px.push_back(itTrack->px());
3511  trk_py.push_back(itTrack->py());
3512  trk_pz.push_back(itTrack->pz());
3513  trk_pt.push_back(pt);
3514  trk_inner_px.push_back(itTrack->innerMomentum().x());
3515  trk_inner_py.push_back(itTrack->innerMomentum().y());
3516  trk_inner_pz.push_back(itTrack->innerMomentum().z());
3517  trk_inner_pt.push_back(itTrack->innerMomentum().rho());
3518  trk_outer_px.push_back(itTrack->outerMomentum().x());
3519  trk_outer_py.push_back(itTrack->outerMomentum().y());
3520  trk_outer_pz.push_back(itTrack->outerMomentum().z());
3521  trk_outer_pt.push_back(itTrack->outerMomentum().rho());
3522  trk_eta.push_back(eta);
3523  trk_lambda.push_back(lambda);
3524  trk_cotTheta.push_back(1 / tan(M_PI * 0.5 - lambda));
3525  trk_phi.push_back(phi);
3526  trk_dxy.push_back(itTrack->dxy(bs.position()));
3527  trk_dz.push_back(itTrack->dz(bs.position()));
3528  trk_dxyPV.push_back(itTrack->dxy(pvPosition));
3529  trk_dzPV.push_back(itTrack->dz(pvPosition));
3530  trk_dxyClosestPV.push_back(itTrack->dxy(bestPV));
3531  trk_dzClosestPV.push_back(itTrack->dz(bestPV));
3532  trk_ptErr.push_back(itTrack->ptError());
3533  trk_etaErr.push_back(itTrack->etaError());
3534  trk_lambdaErr.push_back(itTrack->lambdaError());
3535  trk_phiErr.push_back(itTrack->phiError());
3536  trk_dxyErr.push_back(itTrack->dxyError());
3537  trk_dzErr.push_back(itTrack->dzError());
3538  trk_refpoint_x.push_back(itTrack->vx());
3539  trk_refpoint_y.push_back(itTrack->vy());
3540  trk_refpoint_z.push_back(itTrack->vz());
3541  trk_nChi2.push_back(chi2);
3542  trk_nChi2_1Dmod.push_back(chi2_1Dmod);
3543  trk_ndof.push_back(ndof);
3544  trk_q.push_back(charge);
3545  trk_nValid.push_back(hp.numberOfValidHits());
3548  trk_nPixel.push_back(hp.numberOfValidPixelHits());
3549  trk_nStrip.push_back(hp.numberOfValidStripHits());
3554  trk_nPixelLay.push_back(hp.pixelLayersWithMeasurement());
3555  trk_nStripLay.push_back(hp.stripLayersWithMeasurement());
3558  trk_nCluster.push_back(nClusters);
3559  trk_algo.push_back(itTrack->algo());
3560  trk_originalAlgo.push_back(itTrack->originalAlgo());
3561  trk_algoMask.push_back(itTrack->algoMaskUL());
3562  trk_stopReason.push_back(itTrack->stopReason());
3563  trk_isHP.push_back(itTrack->quality(reco::TrackBase::highPurity));
3564  if (includeMVA_) {
3565  for (size_t i = 0; i < trk_mvas.size(); ++i) {
3566  trk_mvas[i].push_back((*(mvaColls[i]))[iTrack]);
3567  trk_qualityMasks[i].push_back((*(qualColls[i]))[iTrack]);
3568  }
3569  }
3570  if (includeSeeds_) {
3571  auto offset = seedCollToOffset.find(itTrack->seedRef().id());
3572  if (offset == seedCollToOffset.end()) {
3573  throw cms::Exception("Configuration")
3574  << "Track algo '" << reco::TrackBase::algoName(itTrack->algo()) << "' originalAlgo '"
3575  << reco::TrackBase::algoName(itTrack->originalAlgo()) << "' refers to seed collection "
3576  << itTrack->seedRef().id()
3577  << ", but that seed collection is not given as an input. The following collections were given as an input "
3578  << make_ProductIDMapPrinter(seedCollToOffset);
3579  }
3580 
3581  const auto seedIndex = offset->second + itTrack->seedRef().key();
3582  trk_seedIdx.push_back(seedIndex);
3583  if (see_trkIdx[seedIndex] != -1) {
3584  throw cms::Exception("LogicError") << "Track index has already been set for seed " << seedIndex << " to "
3585  << see_trkIdx[seedIndex] << "; was trying to set it to " << iTrack;
3586  }
3587  see_trkIdx[seedIndex] = iTrack;
3588  }
3589  trk_vtxIdx.push_back(-1); // to be set correctly in fillVertices
3591  trk_simTrkIdx.push_back(tpIdx);
3592  trk_simTrkShareFrac.push_back(sharedFraction);
3593  trk_simTrkNChi2.push_back(tpChi2);
3594  trk_bestSimTrkIdx.push_back(bestKeyCount.key >= 0 ? tpKeyToIndex.at(bestKeyCount.key) : -1);
3595  trk_bestFromFirstHitSimTrkIdx.push_back(bestFirstHitKeyCount.key >= 0 ? tpKeyToIndex.at(bestFirstHitKeyCount.key)
3596  : -1);
3597  } else {
3598  trk_isTrue.push_back(!tpIdx.empty());
3599  }
3600  trk_bestSimTrkShareFrac.push_back(bestShareFrac);
3601  trk_bestSimTrkShareFracSimDenom.push_back(bestShareFracSimDenom);
3602  trk_bestSimTrkShareFracSimClusterDenom.push_back(bestShareFracSimClusterDenom);
3603  trk_bestSimTrkNChi2.push_back(bestChi2);
3604  trk_bestFromFirstHitSimTrkShareFrac.push_back(bestFirstHitShareFrac);
3605  trk_bestFromFirstHitSimTrkShareFracSimDenom.push_back(bestFirstHitShareFracSimDenom);
3606  trk_bestFromFirstHitSimTrkShareFracSimClusterDenom.push_back(bestFirstHitShareFracSimClusterDenom);
3607  trk_bestFromFirstHitSimTrkNChi2.push_back(bestFirstHitChi2);
3608 
3609  LogTrace("TrackingNtuple") << "Track #" << itTrack.key() << " with q=" << charge << ", pT=" << pt
3610  << " GeV, eta: " << eta << ", phi: " << phi << ", chi2=" << chi2 << ", Nhits=" << nHits
3611  << ", algo=" << itTrack->algoName(itTrack->algo()).c_str()
3612  << " hp=" << itTrack->quality(reco::TrackBase::highPurity)
3613  << " seed#=" << itTrack->seedRef().key() << " simMatch=" << isSimMatched
3614  << " nSimHits=" << nSimHits
3615  << " sharedFraction=" << (sharedFraction.empty() ? -1 : sharedFraction[0])
3616  << " tpIdx=" << (tpIdx.empty() ? -1 : tpIdx[0]);
3617  std::vector<int> hitIdx;
3618  std::vector<int> hitType;
3619 
3620  for (auto i = itTrack->recHitsBegin(); i != itTrack->recHitsEnd(); i++) {
3621  TransientTrackingRecHit::RecHitPointer hit = theTTRHBuilder.build(&**i);
3622  DetId hitId = hit->geographicalId();
3623  LogTrace("TrackingNtuple") << "hit #" << std::distance(itTrack->recHitsBegin(), i)
3624  << " subdet=" << hitId.subdetId();
3625  if (hitId.det() != DetId::Tracker)
3626  continue;
3627 
3628  LogTrace("TrackingNtuple") << " " << subdetstring(hitId.subdetId()) << " " << tTopo.layer(hitId);
3629 
3630  if (hit->isValid()) {
3631  //ugly... but works
3632  const BaseTrackerRecHit* bhit = dynamic_cast<const BaseTrackerRecHit*>(&*hit);
3633  const auto& clusterRef = bhit->firstClusterRef();
3634  unsigned int clusterKey;
3635  if (clusterRef.isPixel()) {
3636  clusterKey = clusterRef.cluster_pixel().key();
3637  } else if (clusterRef.isPhase2()) {
3638  clusterKey = clusterRef.cluster_phase2OT().key();
3639  } else {
3640  clusterKey = clusterRef.cluster_strip().key();
3641  }
3642 
3643  LogTrace("TrackingNtuple") << " id: " << hitId.rawId() << " - globalPos =" << hit->globalPosition()
3644  << " cluster=" << clusterKey << " clusterRef ID=" << clusterRef.id()
3645  << " eta,phi: " << hit->globalPosition().eta() << "," << hit->globalPosition().phi();
3646  if (includeAllHits_) {
3647  checkProductID(hitProductIds, clusterRef.id(), "track");
3648  if (clusterRef.isPixel()) {
3649  pix_trkIdx[clusterKey].push_back(iTrack);
3650  } else if (clusterRef.isPhase2()) {
3651  ph2_trkIdx[clusterKey].push_back(iTrack);
3652  } else {
3653  str_trkIdx[clusterKey].push_back(iTrack);
3654  }
3655  }
3656 
3657  hitIdx.push_back(clusterKey);
3658  if (clusterRef.isPixel()) {
3659  hitType.push_back(static_cast<int>(HitType::Pixel));
3660  } else if (clusterRef.isPhase2()) {
3661  hitType.push_back(static_cast<int>(HitType::Phase2OT));
3662  } else {
3663  hitType.push_back(static_cast<int>(HitType::Strip));
3664  }
3665  } else {
3666  LogTrace("TrackingNtuple") << " - invalid hit";
3667 
3668  hitIdx.push_back(inv_isBarrel.size());
3669  hitType.push_back(static_cast<int>(HitType::Invalid));
3670 
3671  inv_isBarrel.push_back(hitId.subdetId() == 1);
3672  if (includeStripHits_)
3673  inv_detId.push_back(tTopo, hitId);
3674  else
3675  inv_detId_phase2.push_back(tTopo, hitId);
3676  inv_type.push_back(hit->getType());
3677  }
3678  }
3679 
3680  trk_hitIdx.push_back(hitIdx);
3681  trk_hitType.push_back(hitType);
3682  }
3683 }
std::vector< int > trk_bestSimTrkIdx
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< 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
std::vector< float > trk_eta
std::vector< int > trk_bestFromFirstHitSimTrkIdx
const_iterator end() const
last iterator over the map (read only)
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< int > > trk_simTrkIdx
int numberOfValidHits() const
Definition: HitPattern.h:817
std::vector< float > trk_dzPV
std::vector< float > trk_dxyErr
std::vector< float > trk_pt
std::vector< float > trk_inner_py
const_iterator find(const key_type &k) const
find element with specified reference key
edm::EDGetTokenT< edm::View< reco::Track > > trackToken_
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
std::vector< float > trk_outer_px
std::vector< std::vector< int > > trk_hitType
std::vector< unsigned int > trk_nCluster
std::vector< std::vector< int > > ph2_trkIdx
int numberOfValidStripHits() const
Definition: HitPattern.h:843
std::vector< OmniClusterRef > hitsToClusterRefs(iter begin, iter end)
std::vector< float > trk_inner_pt
std::vector< float > trk_bestSimTrkShareFracSimClusterDenom
key_type key() const
Accessor for product key.
Definition: Ref.h:250
std::vector< unsigned short > trk_stopReason
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:513
std::vector< float > trk_refpoint_x
std::vector< std::vector< float > > trk_mvas
#define LogTrace(id)
int numberOfLostTrackerHits(HitCategory category) const
Definition: HitPattern.h:893
ClusterPixelRef cluster_pixel() const
std::vector< short > inv_isBarrel
std::vector< float > trk_bestSimTrkShareFracSimDenom
std::vector< float > trk_bestFromFirstHitSimTrkNChi2
std::vector< std::vector< float > > trk_simTrkShareFrac
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< float > trk_dzErr
std::vector< float > trk_lambdaErr
int numberOfValidStripLayersWithMonoAndStereo(uint16_t stripdet, uint16_t layer) const
Definition: HitPattern.cc:369
uint16_t hitPattern[ARRAY_LENGTH]
Definition: HitPattern.h:496
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimDenom
std::vector< float > trk_etaErr
std::vector< unsigned int > trk_algo
std::vector< float > trk_bestFromFirstHitSimTrkShareFracSimClusterDenom
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
std::vector< unsigned int > trk_originalAlgo
std::vector< unsigned int > trk_nInnerLost
std::vector< float > trk_refpoint_z
std::vector< unsigned int > trk_nInactive
std::vector< unsigned int > trk_nOuterInactive
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< int > trk_seedIdx
std::vector< std::vector< int > > pix_trkIdx
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
DetIdAllPhase2 inv_detId_phase2
std::vector< float > trk_bestFromFirstHitSimTrkShareFrac
std::vector< unsigned int > trk_n3DLay
std::vector< float > trk_outer_pt
const bool includeSeeds_
const bool includeTrackingParticles_
size_type size() const
std::vector< float > trk_dz
std::vector< float > trk_ptErr
std::vector< unsigned int > trk_nStripLay
char const * module
Definition: ProductLabels.h:5
int trackerLayersTotallyOffOrBad(HitCategory category=TRACK_HITS) const
Definition: HitPattern.h:1023
std::vector< float > trk_phiErr
std::vector< float > trk_lambda
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track >> &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
std::shared_ptr< TrackingRecHit const > RecHitPointer
#define M_PI
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_
virtual OmniClusterRef const & firstClusterRef() const =0
std::string algoName() const
Definition: TrackBase.h:550
int stripLayersWithMeasurement() const
Definition: HitPattern.h:1005
std::vector< short > trk_isHP
bool isValid() const
caConstants::TupleMultiplicity const CAHitNtupletGeneratorKernelsGPU::HitToTuple const cms::cuda::AtomicPairCounter GPUCACell const *__restrict__ uint32_t const *__restrict__ gpuPixelDoublets::CellNeighborsVector const gpuPixelDoublets::CellTracksVector const GPUCACell::OuterHitOfCell const int32_t nHits
std::vector< unsigned int > trk_nInnerInactive
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:891
std::vector< std::vector< int > > trk_hitIdx
unsigned int layer(const DetId &id) const
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
std::vector< int > trk_q
const bool includeAllHits_
int trackerLayersWithoutMeasurement(HitCategory category) const
Definition: HitPattern.cc:553
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:57
std::vector< float > trk_outer_pz
Point getBestVertex(reco::Track const &trk, reco::VertexCollection const &vertices, const size_t minNtracks=2)
Definition: getBestVertex.h:8
std::vector< float > trk_dxyClosestPV
int numberOfValidPixelHits() const
Definition: HitPattern.h:831
std::vector< float > trk_ndof
std::vector< unsigned int > trk_nPixelLay
const Point & position() const
position
Definition: BeamSpot.h:59
std::vector< float > trk_bestSimTrkShareFrac
std::vector< int > see_trkIdx
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< unsigned int > trk_nValid
std::vector< unsigned int > trk_nLost
std::vector< float > trk_inner_px
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void TrackingNtuple::fillVertices ( const reco::VertexCollection vertices,
const edm::RefToBaseVector< reco::Track > &  tracks 
)
private

Definition at line 3849 of file TrackingNtuple.cc.

References reco::Vertex::chi2(), Exception, edm::RefToBaseVector< T >::id(), reco::Vertex::isFake(), reco::Vertex::isValid(), reco::Vertex::ndof(), findQualityFiles::size, reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), trk_vtxIdx, vtx_chi2, vtx_fake, vtx_ndof, vtx_trkIdx, vtx_valid, vtx_x, vtx_xErr, vtx_y, vtx_yErr, vtx_z, vtx_zErr, reco::Vertex::x(), reco::Vertex::xError(), reco::Vertex::y(), reco::Vertex::yError(), reco::Vertex::z(), and reco::Vertex::zError().

Referenced by analyze().

3850  {
3851  for (size_t iVertex = 0, size = vertices.size(); iVertex < size; ++iVertex) {
3852  const reco::Vertex& vertex = vertices[iVertex];
3853  vtx_x.push_back(vertex.x());
3854  vtx_y.push_back(vertex.y());
3855  vtx_z.push_back(vertex.z());
3856  vtx_xErr.push_back(vertex.xError());
3857  vtx_yErr.push_back(vertex.yError());
3858  vtx_zErr.push_back(vertex.zError());
3859  vtx_chi2.push_back(vertex.chi2());
3860  vtx_ndof.push_back(vertex.ndof());
3861  vtx_fake.push_back(vertex.isFake());
3862  vtx_valid.push_back(vertex.isValid());
3863 
3864  std::vector<int> trkIdx;
3865  for (auto iTrack = vertex.tracks_begin(); iTrack != vertex.tracks_end(); ++iTrack) {
3866  // Ignore link if vertex was fit from a track collection different from the input
3867  if (iTrack->id() != tracks.id())
3868  continue;
3869 
3870  trkIdx.push_back(iTrack->key());
3871 
3872  if (trk_vtxIdx[iTrack->key()] != -1) {
3873  throw cms::Exception("LogicError") << "Vertex index has already been set for track " << iTrack->key() << " to "
3874  << trk_vtxIdx[iTrack->key()] << "; was trying to set it to " << iVertex;
3875  }
3876  trk_vtxIdx[iTrack->key()] = iVertex;
3877  }
3878  vtx_trkIdx.push_back(trkIdx);
3879  }
3880 }
std::vector< short > vtx_fake
std::vector< int > trk_vtxIdx
double zError() const
error on z
Definition: Vertex.h:141
double y() const
y coordinate
Definition: Vertex.h:131
bool isValid() const
Tells whether the vertex is valid.
Definition: Vertex.h:72
std::vector< float > vtx_y
std::vector< float > vtx_yErr
std::vector< float > vtx_ndof
double chi2() const
chi-squares
Definition: Vertex.h:116
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.h:110
double z() const
z coordinate
Definition: Vertex.h:133
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.h:108
std::vector< float > vtx_z
double ndof() const
Definition: Vertex.h:123
std::vector< float > vtx_xErr
double x() const
x coordinate
Definition: Vertex.h:129
double xError() const
error on x
Definition: Vertex.h:137
bool isFake() const
Definition: Vertex.h:76
std::vector< short > vtx_valid
std::vector< std::vector< int > > vtx_trkIdx
std::vector< float > vtx_x
tuple size
Write out results.
ProductID id() const
double yError() const
error on y
Definition: Vertex.h:139
std::vector< float > vtx_zErr
std::vector< float > vtx_chi2
template<typename SimLink >
TrackingNtuple::SimHitData TrackingNtuple::matchCluster ( const OmniClusterRef cluster,
DetId  hitId,
int  clusterKey,
const TransientTrackingRecHit::RecHitPointer ttrh,
const ClusterTPAssociation clusterToTPMap,
const TrackingParticleRefKeyToIndex &  tpKeyToIndex,
const SimHitTPAssociationProducer::SimHitTPAssociationList simHitsTPAssoc,
const edm::DetSetVector< SimLink > &  digiSimLinks,
const SimHitRefKeyToIndex &  simHitRefKeyToIndex,
HitType  hitType 
)
private

Definition at line 2373 of file TrackingNtuple.cc.

References funct::abs(), TrackingNtuple::SimHitData::bunchCrossing, makePileupJSON::bx, TrackingNtuple::SimHitData::chargeFraction, TTClusterAssociation_cfi::digiSimLinks, PVValHelper::dx, PVValHelper::dy, ClusterTPAssociation::equal_range(), edmPickEvents::event, TrackingNtuple::SimHitData::event, Exception, edm::Ref< C, T, F >::id(), ITPileup, keepEleSimHits_, edm::Ref< C, T, F >::key(), TrackingNtuple::SimHitData::matchingSimHit, SiStripPI::min, HLT_FULL_cff::minSignificance, Noise, OOTPileup, Phase2OT, OmniClusterRef::phase2OTCluster(), sistrip::SpyUtilities::range(), DetId::rawId(), runTheMatrix::ret, Signal, simhit_hitIdx, simhit_hitType, simHitBySignificance_, SimHitTPAssociationProducer::simHitTPAssociationListGreater(), TrackingNtuple::SimHitData::type, and TrackingNtuple::SimHitData::xySignificance.

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

2383  {
2384  SimHitData ret;
2385 
2386  std::map<unsigned int, double> simTrackIdToChargeFraction;
2387  if (hitType == HitType::Phase2OT)
2388  simTrackIdToChargeFraction = chargeFraction(cluster.phase2OTCluster(), hitId, digiSimLinks);
2389  else
2390  simTrackIdToChargeFraction = chargeFraction(GetCluster<SimLink>::call(cluster), hitId, digiSimLinks);
2391 
2392  float h_x = 0, h_y = 0;
2393  float h_xx = 0, h_xy = 0, h_yy = 0;
2394  if (simHitBySignificance_) {
2395  h_x = ttrh->localPosition().x();
2396  h_y = ttrh->localPosition().y();
2397  h_xx = ttrh->localPositionError().xx();
2398  h_xy = ttrh->localPositionError().xy();
2399  h_yy = ttrh->localPositionError().yy();
2400  }
2401 
2402  ret.type = HitSimType::Noise;
2403  auto range = clusterToTPMap.equal_range(cluster);
2404  if (range.first != range.second) {
2405  for (auto ip = range.first; ip != range.second; ++ip) {
2406  const TrackingParticleRef& trackingParticle = ip->second;
2407 
2408  // Find out if the cluster is from signal/ITPU/OOTPU
2409  const auto event = trackingParticle->eventId().event();
2410  const auto bx = trackingParticle->eventId().bunchCrossing();
2412  if (bx == 0) {
2413  type = (event == 0 ? HitSimType::Signal : HitSimType::ITPileup);
2414  } else
2415  type = HitSimType::OOTPileup;
2416  ret.type = static_cast<HitSimType>(std::min(static_cast<int>(ret.type), static_cast<int>(type)));
2417 
2418  // Limit to only input TrackingParticles (usually signal+ITPU)
2419  auto tpIndex = tpKeyToIndex.find(trackingParticle.key());
2420  if (tpIndex == tpKeyToIndex.end())
2421  continue;
2422 
2423  //now get the corresponding sim hit
2424  std::pair<TrackingParticleRef, TrackPSimHitRef> simHitTPpairWithDummyTP(trackingParticle, TrackPSimHitRef());
2425  //SimHit is dummy: for simHitTPAssociationListGreater sorting only the TP is needed
2426  auto range = std::equal_range(simHitsTPAssoc.begin(),
2427  simHitsTPAssoc.end(),
2428  simHitTPpairWithDummyTP,
2430  bool foundSimHit = false;
2431  bool foundElectron = false;
2432  int foundElectrons = 0;
2433  int foundNonElectrons = 0;
2434  for (auto ip = range.first; ip != range.second; ++ip) {
2435  TrackPSimHitRef TPhit = ip->second;
2436  DetId dId = DetId(TPhit->detUnitId());
2437  if (dId.rawId() == hitId.rawId()) {
2438  // skip electron SimHits for non-electron TPs also here
2439  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2440  foundElectrons++;
2441  } else {
2442  foundNonElectrons++;
2443  }
2444  }
2445  }
2446 
2447  float minSignificance = 1e12;
2448  if (simHitBySignificance_) { //save the best matching hit
2449 
2450  int simHitKey = -1;
2451  edm::ProductID simHitID;
2452  for (auto ip = range.first; ip != range.second; ++ip) {
2453  TrackPSimHitRef TPhit = ip->second;
2454  DetId dId = DetId(TPhit->detUnitId());
2455  if (dId.rawId() == hitId.rawId()) {
2456  // skip electron SimHits for non-electron TPs also here
2457  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2458  foundElectron = true;
2459  if (!keepEleSimHits_)
2460  continue;
2461  }
2462 
2463  float sx = TPhit->localPosition().x();
2464  float sy = TPhit->localPosition().y();
2465  float dx = sx - h_x;
2466  float dy = sy - h_y;
2467  float sig = (dx * dx * h_yy - 2 * dx * dy * h_xy + dy * dy * h_xx) / (h_xx * h_yy - h_xy * h_xy);
2468 
2469  if (sig < minSignificance) {
2470  minSignificance = sig;
2471  foundSimHit = true;
2472  simHitKey = TPhit.key();
2473  simHitID = TPhit.id();
2474  }
2475  }
2476  } //loop over matching hits
2477 
2478  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2479  ret.matchingSimHit.push_back(simHitIndex);
2480 
2481  double chargeFraction = 0.;
2482  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2483  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2484  if (found != simTrackIdToChargeFraction.end()) {
2485  chargeFraction += found->second;
2486  }
2487  }
2488  ret.xySignificance.push_back(minSignificance);
2489  ret.chargeFraction.push_back(chargeFraction);
2490 
2491  // only for debug prints
2492  ret.bunchCrossing.push_back(bx);
2493  ret.event.push_back(event);
2494 
2495  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2496  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2497 
2498  } else { //save all matching hits
2499  for (auto ip = range.first; ip != range.second; ++ip) {
2500  TrackPSimHitRef TPhit = ip->second;
2501  DetId dId = DetId(TPhit->detUnitId());
2502  if (dId.rawId() == hitId.rawId()) {
2503  // skip electron SimHits for non-electron TPs also here
2504  if (std::abs(TPhit->particleType()) == 11 && std::abs(trackingParticle->pdgId()) != 11) {
2505  foundElectron = true;
2506  if (!keepEleSimHits_)
2507  continue;
2508  if (foundNonElectrons > 0)
2509  continue; //prioritize: skip electrons if non-electrons are present
2510  }
2511 
2512  foundSimHit = true;
2513  auto simHitKey = TPhit.key();
2514  auto simHitID = TPhit.id();
2515 
2516  auto simHitIndex = simHitRefKeyToIndex.at(std::make_pair(simHitKey, simHitID));
2517  ret.matchingSimHit.push_back(simHitIndex);
2518 
2519  double chargeFraction = 0.;
2520  for (const SimTrack& simtrk : trackingParticle->g4Tracks()) {
2521  auto found = simTrackIdToChargeFraction.find(simtrk.trackId());
2522  if (found != simTrackIdToChargeFraction.end()) {
2523  chargeFraction += found->second;
2524  }
2525  }
2526  ret.xySignificance.push_back(minSignificance);
2527  ret.chargeFraction.push_back(chargeFraction);
2528 
2529  // only for debug prints
2530  ret.bunchCrossing.push_back(bx);
2531  ret.event.push_back(event);
2532 
2533  simhit_hitIdx[simHitIndex].push_back(clusterKey);
2534  simhit_hitType[simHitIndex].push_back(static_cast<int>(hitType));
2535  }
2536  }
2537  } //if/else simHitBySignificance_
2538  if (!foundSimHit) {
2539  // In case we didn't find a simhit because of filtered-out
2540  // electron SimHit, just ignore the missing SimHit.
2541  if (foundElectron && !keepEleSimHits_)
2542  continue;
2543 
2544  auto ex = cms::Exception("LogicError")
2545  << "Did not find SimHit for reco hit DetId " << hitId.rawId() << " for TP " << trackingParticle.key()
2546  << " bx:event " << bx << ":" << event << " PDGid " << trackingParticle->pdgId() << " q "
2547  << trackingParticle->charge() << " p4 " << trackingParticle->p4() << " nG4 "
2548  << trackingParticle->g4Tracks().size() << ".\nFound SimHits from detectors ";
2549  for (auto ip = range.first; ip != range.second; ++ip) {
2550  TrackPSimHitRef TPhit = ip->second;
2551  DetId dId = DetId(TPhit->detUnitId());
2552  ex << dId.rawId() << " ";
2553  }
2554  if (trackingParticle->eventId().event() != 0) {
2555  ex << "\nSince this is a TrackingParticle from pileup, check that you're running the pileup mixing in "
2556  "playback mode.";
2557  }
2558  throw ex;
2559  }
2560  }
2561  }
2562 
2563  return ret;
2564 }
Phase2TrackerCluster1D const & phase2OTCluster() const
tuple ret
prodAgent to be discontinued
const bool simHitBySignificance_
std::vector< std::vector< int > > simhit_hitIdx
static bool simHitTPAssociationListGreater(SimHitTPPair i, SimHitTPPair j)
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
key_type key() const
Accessor for product key.
Definition: Ref.h:250
ProductID id() const
Accessor for product ID.
Definition: Ref.h:244
const uint16_t range(const Frame &aFrame)
tuple minSignificance
std::vector< std::vector< int > > simhit_hitType
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
range equal_range(const OmniClusterRef &key) const
Definition: DetId.h:17
edm::Ref< edm::PSimHitContainer > TrackPSimHitRef
const bool keepEleSimHits_
static bool TrackingNtuple::tpHitIndexListLess ( const TPHitIndex i,
const TPHitIndex j 
)
inlinestaticprivate

Definition at line 504 of file TrackingNtuple.cc.

References TrackingNtuple::TPHitIndex::tpKey.

Referenced by fillTrackingParticles().

504 { return (i.tpKey < j.tpKey); }
static bool TrackingNtuple::tpHitIndexListLessSort ( const TPHitIndex i,
const TPHitIndex j 
)
inlinestaticprivate

Definition at line 505 of file TrackingNtuple.cc.

References TrackingNtuple::TPHitIndex::detId, edm::isNotFinite(), TrackingNtuple::TPHitIndex::tof, and TrackingNtuple::TPHitIndex::tpKey.

Referenced by analyze().

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

Member Data Documentation

const bool TrackingNtuple::addSeedCurvCov_
private

Definition at line 671 of file TrackingNtuple.cc.

Referenced by fillSeeds().

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

Definition at line 654 of file TrackingNtuple.cc.

Referenced by analyze().

float TrackingNtuple::bsp_sigmax
private

Definition at line 1212 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

float TrackingNtuple::bsp_sigmay
private

Definition at line 1213 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

float TrackingNtuple::bsp_sigmaz
private

Definition at line 1214 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

float TrackingNtuple::bsp_x
private

Definition at line 1209 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

float TrackingNtuple::bsp_y
private

Definition at line 1210 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

float TrackingNtuple::bsp_z
private

Definition at line 1211 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillBeamSpot().

std::string TrackingNtuple::builderName_
private

Definition at line 669 of file TrackingNtuple.cc.

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

Definition at line 647 of file TrackingNtuple.cc.

Referenced by analyze().

edm::EventNumber_t TrackingNtuple::ev_event
private

Definition at line 961 of file TrackingNtuple.cc.

Referenced by analyze(), and clearVariables().

edm::LuminosityBlockNumber_t TrackingNtuple::ev_lumi
private

Definition at line 960 of file TrackingNtuple.cc.

Referenced by analyze(), and clearVariables().

edm::RunNumber_t TrackingNtuple::ev_run
private

Definition at line 959 of file TrackingNtuple.cc.

Referenced by analyze(), and clearVariables().

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

Definition at line 1151 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1152 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1153 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1154 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

DetIdStrip TrackingNtuple::glu_detId
private

Definition at line 1136 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1135 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1137 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1150 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1139 of file TrackingNtuple.cc.

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

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

Definition at line 1138 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1155 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1156 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1140 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1143 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1144 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1141 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1145 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1146 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1142 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1148 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

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

Definition at line 1147 of file TrackingNtuple.cc.

Referenced by addStripMatchedHit(), and clearVariables().

const bool TrackingNtuple::includeAllHits_
private

Definition at line 672 of file TrackingNtuple.cc.

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

const bool TrackingNtuple::includeMVA_
private

Definition at line 673 of file TrackingNtuple.cc.

Referenced by analyze(), and fillTracks().

const bool TrackingNtuple::includeOOT_
private

Definition at line 675 of file TrackingNtuple.cc.

Referenced by analyze().

bool TrackingNtuple::includePhase2OTHits_
private

Definition at line 653 of file TrackingNtuple.cc.

Referenced by analyze().

const bool TrackingNtuple::includeSeeds_
private

Definition at line 670 of file TrackingNtuple.cc.

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

bool TrackingNtuple::includeStripHits_
private

Definition at line 653 of file TrackingNtuple.cc.

Referenced by analyze(), fillSimHits(), fillTrackingParticles(), and fillTracks().

const bool TrackingNtuple::includeTrackingParticles_
private
DetIdAll TrackingNtuple::inv_detId
private

Definition at line 1185 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

DetIdAllPhase2 TrackingNtuple::inv_detId_phase2
private

Definition at line 1186 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1184 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1187 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

const bool TrackingNtuple::keepEleSimHits_
private

Definition at line 676 of file TrackingNtuple.cc.

Referenced by fillSimHits(), and matchCluster().

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

Definition at line 635 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 644 of file TrackingNtuple.cc.

Referenced by analyze().

ParametersDefinerForTP TrackingNtuple::parametersDefiner_
private

Definition at line 681 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

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

Definition at line 1179 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

DetIdPhase2OT TrackingNtuple::ph2_detId
private

Definition at line 1161 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1160 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1178 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1163 of file TrackingNtuple.cc.

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

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

Definition at line 1164 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1167 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1162 of file TrackingNtuple.cc.

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

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

Definition at line 1168 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1171 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1172 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1165 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1169 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1173 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1174 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1170 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1176 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 1175 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPhase2OTHits().

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

Definition at line 659 of file TrackingNtuple.cc.

Referenced by fillPhase2OTHits().

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

Definition at line 1102 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1089 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1103 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1104 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

DetIdPixel TrackingNtuple::pix_detId
private

Definition at line 1084 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1083 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1101 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1086 of file TrackingNtuple.cc.

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

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

Definition at line 1087 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1090 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1085 of file TrackingNtuple.cc.

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

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

Definition at line 1105 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1091 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1094 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1095 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1088 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1092 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1096 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1097 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1093 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1099 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 1098 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillPixelHits().

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

Definition at line 655 of file TrackingNtuple.cc.

Referenced by fillPixelHits().

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

Definition at line 650 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 666 of file TrackingNtuple.cc.

Referenced by fillPixelHits().

const bool TrackingNtuple::saveSimHitsP3_
private

Definition at line 677 of file TrackingNtuple.cc.

Referenced by fillSimHits().

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

Definition at line 1253 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1260 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1261 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1258 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1259 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1232 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1225 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1230 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1226 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1231 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1223 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1228 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1218 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1264 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1265 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1257 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1255 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1252 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1249 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1251 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1248 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1250 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1247 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1267 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1224 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1229 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1222 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1227 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1219 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1220 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1221 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1246 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1263 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1262 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1245 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1233 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1242 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1243 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1244 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1239 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1240 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1241 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1236 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1237 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1238 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1234 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1235 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1254 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSeeds().

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

Definition at line 1256 of file TrackingNtuple.cc.

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

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

Definition at line 641 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

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

Definition at line 640 of file TrackingNtuple.cc.

Referenced by fillSeeds(), and TrackingNtuple().

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

Definition at line 1044 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1078 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1052 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1043 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1046 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1047 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1068 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1066 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1064 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1067 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1072 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1065 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1070 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1063 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1077 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1057 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1059 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1060 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1055 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1056 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1058 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1054 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1045 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1053 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1051 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1048 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1049 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1050 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1061 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1076 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticlesForSeeds().

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

Definition at line 1079 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1074 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

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

Definition at line 1075 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingParticles().

DetIdAll TrackingNtuple::simhit_detId
private

Definition at line 1191 of file TrackingNtuple.cc.

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

DetIdAllPhase2 TrackingNtuple::simhit_detId_phase2
private

Definition at line 1192 of file TrackingNtuple.cc.

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

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

Definition at line 1205 of file TrackingNtuple.cc.

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

std::vector<std::vector<int> > TrackingNtuple::simhit_hitType
private
std::vector<int> TrackingNtuple::simhit_particle
private
std::vector<short> TrackingNtuple::simhit_process
private
std::vector<float> TrackingNtuple::simhit_px
private

Definition at line 1196 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSimHits().

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

Definition at line 1197 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSimHits().

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

Definition at line 1198 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSimHits().

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

Definition at line 1204 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSimHits().

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

Definition at line 1202 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillSimHits().

std::vector<float> TrackingNtuple::simhit_x
private
std::vector<float> TrackingNtuple::simhit_y
private
std::vector<float> TrackingNtuple::simhit_z
private
const bool TrackingNtuple::simHitBySignificance_
private

Definition at line 678 of file TrackingNtuple.cc.

Referenced by matchCluster().

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

Definition at line 648 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 1295 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1288 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1294 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1287 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1289 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1293 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1290 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1291 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 1292 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTrackingVertices().

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

Definition at line 652 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 1128 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1115 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1129 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1130 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

DetIdStrip TrackingNtuple::str_detId
private

Definition at line 1110 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1109 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1127 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1112 of file TrackingNtuple.cc.

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

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

Definition at line 1113 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1116 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1111 of file TrackingNtuple.cc.

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

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

Definition at line 1131 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1117 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1120 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1121 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1114 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1118 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1122 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1123 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1119 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1125 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 1124 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillStripRphiStereoHits().

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

Definition at line 658 of file TrackingNtuple.cc.

Referenced by fillStripMatchedHits().

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

Definition at line 656 of file TrackingNtuple.cc.

Referenced by fillStripRphiStereoHits().

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

Definition at line 651 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 657 of file TrackingNtuple.cc.

Referenced by fillStripRphiStereoHits().

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

Definition at line 667 of file TrackingNtuple.cc.

Referenced by fillSeeds(), fillStripMatchedHits(), and fillStripRphiStereoHits().

TTree* TrackingNtuple::t
private

Definition at line 683 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 638 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 662 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

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

Definition at line 663 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

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

Definition at line 664 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

HistoryBase TrackingNtuple::tracer_
private

Definition at line 680 of file TrackingNtuple.cc.

Referenced by fillTrackingParticles().

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

Definition at line 649 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 646 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 645 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 661 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 642 of file TrackingNtuple.cc.

Referenced by analyze(), and fillTracks().

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

Definition at line 1017 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1019 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1030 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1034 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1031 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1033 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1032 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1025 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1029 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1026 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1028 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1027 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 980 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 982 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 986 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 992 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 984 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 983 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 987 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 993 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 985 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 978 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 989 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1038 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1039 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 973 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 970 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 971 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 972 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1021 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1024 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 979 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 990 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1000 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1014 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 997 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 998 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1016 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 999 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1005 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1011 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1009 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1004 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1015 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1010 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1008 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1006 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1012 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1007 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1013 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1003 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1018 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 977 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 974 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 975 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 976 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 981 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 991 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 969 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 988 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 966 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 967 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 968 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1002 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1001 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 994 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 995 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 996 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1022 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1037 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1036 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1035 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1020 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillTracks().

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

Definition at line 1023 of file TrackingNtuple.cc.

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

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

Definition at line 637 of file TrackingNtuple.cc.

Referenced by analyze().

const edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> TrackingNtuple::ttrhToken_
private

Definition at line 636 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 660 of file TrackingNtuple.cc.

Referenced by analyze().

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

Definition at line 1279 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1280 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1278 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1282 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1281 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1272 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1275 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1273 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1276 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1274 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().

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

Definition at line 1277 of file TrackingNtuple.cc.

Referenced by clearVariables(), and fillVertices().