CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
MuonTrackAnalyzer Class Reference

#include <MuonTrackAnalyzer.h>

Inheritance diagram for MuonTrackAnalyzer:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

enum  EtaRange { all, barrel, endcap }
 
- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void beginJob () override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
 MuonTrackAnalyzer (const edm::ParameterSet &pset)
 Constructor. More...
 
void seedsAnalysis (const edm::Event &event, const edm::EventSetup &eventSetup, edm::Handle< edm::SimTrackContainer > simTracks)
 
void tracksAnalysis (const edm::Event &event, const edm::EventSetup &eventSetup, edm::Handle< edm::SimTrackContainer > simTracks)
 
 ~MuonTrackAnalyzer () override
 Destructor. More...
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) 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
 
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::vector< ModuleDescription const * > &modules, 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
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

bool checkMuonSimHitPresence (const edm::Event &event, edm::Handle< edm::SimTrackContainer > simTracks)
 
void fillPlots (const edm::Event &event, edm::Handle< edm::SimTrackContainer > &simTracks)
 
void fillPlots (reco::TransientTrack &track, SimTrack &simTrack)
 
void fillPlots (TrajectoryStateOnSurface &recoTSOS, SimTrack &simState, HTrack *, MuonPatternRecoDumper &)
 
void fillPlots (FreeTrajectoryState &recoFTS, SimTrack &simTrack, HTrack *histo, MuonPatternRecoDumper &debug)
 
TrajectoryStateOnSurface getSeedTSOS (const TrajectorySeed &seed)
 
std::pair< SimTrack, double > getSimTrack (TrajectoryStateOnSurface &tsos, edm::Handle< edm::SimTrackContainer > simTracks)
 
bool isInTheAcceptance (double eta)
 

Private Attributes

DQMStoredbe_
 
std::string dirName_
 
bool doSeedsAnalysis
 
bool doTracksAnalysis
 
MonitorElementhChargeVsEta
 
MonitorElementhChargeVsPt
 
MonitorElementhChi2
 
MonitorElementhChi2Norm
 
MonitorElementhChi2NormVsEta
 
MonitorElementhChi2Prob
 
MonitorElementhChi2ProbVsEta
 
MonitorElementhChi2VsEta
 
MonitorElementhDeltaPt_In_Out_VsEta
 
MonitorElementhDeltaPtVsEta
 
MonitorElementhDof
 
MonitorElementhDofVsEta
 
MonitorElementhHitsPerTrack
 
MonitorElementhHitsPerTrackVsEta
 
MonitorElementhNumberOfTracks
 
MonitorElementhNumberOfTracksVsEta
 
MonitorElementhPtRecVsPtGen
 
HTrackhRecoSeedInner
 
HTrackhRecoSeedPCA
 
HTrackhRecoTracksInner
 
HTrackhRecoTracksOuter
 
HTrackhRecoTracksPCA
 
HTrackVariableshSimTracks
 
int numberOfRecTracks
 
int numberOfSimTracks
 
std::string out
 
edm::ParameterSet pset
 
std::string subsystemname_
 
edm::InputTag theCSCSimHitLabel
 
edm::EDGetTokenT< std::vector< PSimHit > > theCSCSimHitToken
 
edm::InputTag theDTSimHitLabel
 
edm::EDGetTokenT< std::vector< PSimHit > > theDTSimHitToken
 
EtaRange theEtaRange
 
edm::InputTag theRPCSimHitLabel
 
edm::EDGetTokenT< std::vector< PSimHit > > theRPCSimHitToken
 
std::string theSeedPropagatorName
 
edm::InputTag theSeedsLabel
 
edm::EDGetTokenT< TrajectorySeedCollectiontheSeedsToken
 
MuonServiceProxytheService
 
edm::InputTag theSimTracksLabel
 
edm::EDGetTokenT< edm::SimTrackContainertheSimTracksToken
 
edm::InputTag theTracksLabel
 
edm::EDGetTokenT< reco::TrackCollectiontheTracksToken
 
MuonUpdatorAtVertextheUpdator
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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<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)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Analyzer of the Muon tracks

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Analyzer of the StandAlone muon tracks

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 51 of file MuonTrackAnalyzer.h.

Member Enumeration Documentation

Enumerator
all 
barrel 
endcap 

Definition at line 53 of file MuonTrackAnalyzer.h.

Constructor & Destructor Documentation

MuonTrackAnalyzer::MuonTrackAnalyzer ( const edm::ParameterSet pset)

Constructor.

Definition at line 40 of file MuonTrackAnalyzer.cc.

References dbe_, MuonAnalyzers_cfi::EtaRange, edm::ParameterSet::getParameter(), HLT_2018_cff::InputTag, MuonServiceProxy_cff::MuonServiceProxy, MuonUpdatorAtVertex_cff::MuonUpdatorAtVertex, Utilities::operator, MillePedeFileConverter_cfg::out, muonDTDigis_cfi::pset, and AlCaHLTBitMon_QueryRunRegistry::string.

40  {
41  // service parameters
42  pset = ps;
43  ParameterSet serviceParameters = pset.getParameter<ParameterSet>("ServiceParameters");
44  // the services
45  theService = new MuonServiceProxy(serviceParameters);
46 
47  theSimTracksLabel = edm::InputTag("g4SimHits");
48  theSimTracksToken = consumes<edm::SimTrackContainer>(theSimTracksLabel);
49 
50  theTracksLabel = pset.getParameter<InputTag>("Tracks");
51  theTracksToken = consumes<reco::TrackCollection>(theTracksLabel);
52  doTracksAnalysis = pset.getUntrackedParameter<bool>("DoTracksAnalysis", true);
53 
54  doSeedsAnalysis = pset.getUntrackedParameter<bool>("DoSeedsAnalysis", false);
55  if (doSeedsAnalysis) {
56  theSeedsLabel = pset.getParameter<InputTag>("MuonSeed");
57  theSeedsToken = consumes<TrajectorySeedCollection>(theSeedsLabel);
58  ParameterSet updatorPar = pset.getParameter<ParameterSet>("MuonUpdatorAtVertexParameters");
59  theSeedPropagatorName = updatorPar.getParameter<string>("Propagator");
60 
61  theUpdator = new MuonUpdatorAtVertex(updatorPar, theService);
62  }
63 
64  theCSCSimHitLabel = pset.getParameter<InputTag>("CSCSimHit");
65  theDTSimHitLabel = pset.getParameter<InputTag>("DTSimHit");
66  theRPCSimHitLabel = pset.getParameter<InputTag>("RPCSimHit");
67  theCSCSimHitToken = consumes<std::vector<PSimHit> >(theCSCSimHitLabel);
68  theDTSimHitToken = consumes<std::vector<PSimHit> >(theDTSimHitLabel);
69  theRPCSimHitToken = consumes<std::vector<PSimHit> >(theRPCSimHitLabel);
70 
71  theEtaRange = (EtaRange)pset.getParameter<int>("EtaRange");
72 
73  // number of sim tracks
75  // number of reco tracks
77 
79  out = pset.getUntrackedParameter<string>("rootFileName");
80  dirName_ = pset.getUntrackedParameter<std::string>("dirName");
81  subsystemname_ = pset.getUntrackedParameter<std::string>("subSystemFolder", "YourSubsystem");
82 }
std::string theSeedPropagatorName
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< TrajectorySeedCollection > theSeedsToken
edm::InputTag theCSCSimHitLabel
edm::EDGetTokenT< std::vector< PSimHit > > theCSCSimHitToken
edm::EDGetTokenT< std::vector< PSimHit > > theDTSimHitToken
edm::InputTag theDTSimHitLabel
edm::InputTag theSeedsLabel
edm::EDGetTokenT< edm::SimTrackContainer > theSimTracksToken
edm::EDGetTokenT< std::vector< PSimHit > > theRPCSimHitToken
MuonUpdatorAtVertex * theUpdator
std::string subsystemname_
edm::EDGetTokenT< reco::TrackCollection > theTracksToken
edm::InputTag theSimTracksLabel
edm::InputTag theRPCSimHitLabel
MuonServiceProxy * theService
edm::InputTag theTracksLabel
MuonTrackAnalyzer::~MuonTrackAnalyzer ( )
override

Destructor.

Definition at line 85 of file MuonTrackAnalyzer.cc.

85  {
86  if (theService)
87  delete theService;
88 }
MuonServiceProxy * theService

Member Function Documentation

void MuonTrackAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
override

Definition at line 172 of file MuonTrackAnalyzer.cc.

References LogDebug, and TrackCandidateProducer_cfi::simTracks.

172  {
173  LogDebug("MuonTrackAnalyzer") << "Run: " << event.id().run() << " Event: " << event.id().event();
174 
175  // Update the services
176  theService->update(eventSetup);
177 
179  event.getByToken(theSimTracksToken, simTracks);
180  fillPlots(event, simTracks);
181 
182  if (doTracksAnalysis)
183  tracksAnalysis(event, eventSetup, simTracks);
184 
185  if (doSeedsAnalysis)
186  seedsAnalysis(event, eventSetup, simTracks);
187 }
#define LogDebug(id)
void seedsAnalysis(const edm::Event &event, const edm::EventSetup &eventSetup, edm::Handle< edm::SimTrackContainer > simTracks)
edm::EDGetTokenT< edm::SimTrackContainer > theSimTracksToken
void tracksAnalysis(const edm::Event &event, const edm::EventSetup &eventSetup, edm::Handle< edm::SimTrackContainer > simTracks)
MuonServiceProxy * theService
void fillPlots(const edm::Event &event, edm::Handle< edm::SimTrackContainer > &simTracks)
void MuonTrackAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 90 of file MuonTrackAnalyzer.cc.

90  {
91  //theFile->cd();
92 }
void MuonTrackAnalyzer::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 93 of file MuonTrackAnalyzer.cc.

References ecalcalib_dqm_sourceclient-live_cfg::algo, dqm::dqmstoreimpl::DQMStore::IBooker::book1D(), dqm::dqmstoreimpl::DQMStore::IBooker::book2D(), dqm::dqmstoreimpl::DQMStore::IBooker::cd(), TrackerOfflineValidation_Dqm_cff::dirName, hChi2, edm::InputTag::instance(), edm::InputTag::label(), edm::InputTag::process(), python.rootplot.root2matplotlib::replace(), dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

95  {
96  ibooker.cd();
97 
99  string dirName = dirName_;
100  if (!algo.process().empty())
101  dirName += algo.process() + "_";
102  if (!algo.label().empty())
103  dirName += algo.label() + "_";
104  if (!algo.instance().empty())
105  dirName += algo.instance() + "";
106  if (dirName.find("Tracks") < dirName.length()) {
107  dirName.replace(dirName.find("Tracks"), 6, "");
108  }
109  std::replace(dirName.begin(), dirName.end(), ':', '_');
110  ibooker.setCurrentFolder(dirName);
111 
112  //ibooker.goUp();
113  std::string simName = dirName;
114  simName += "/SimTracks";
115  hSimTracks = new HTrackVariables(ibooker, simName, "SimTracks");
116 
117  ibooker.cd();
118  ibooker.setCurrentFolder(dirName);
119 
120  // Create the root file
121  //theFile = new TFile(theRootFileName.c_str(), "RECREATE");
122 
123  if (doSeedsAnalysis) {
124  ibooker.cd();
125  ibooker.setCurrentFolder(dirName);
126  hRecoSeedInner = new HTrack(ibooker, dirName, "RecoSeed", "Inner");
127  hRecoSeedPCA = new HTrack(ibooker, dirName, "RecoSeed", "PCA");
128  }
129 
130  if (doTracksAnalysis) {
131  ibooker.cd();
132  ibooker.setCurrentFolder(dirName);
133  hRecoTracksPCA = new HTrack(ibooker, dirName, "RecoTracks", "PCA");
134  hRecoTracksInner = new HTrack(ibooker, dirName, "RecoTracks", "Inner");
135  hRecoTracksOuter = new HTrack(ibooker, dirName, "RecoTracks", "Outer");
136 
137  ibooker.cd();
138  ibooker.setCurrentFolder(dirName);
139 
140  // General Histos
141 
142  hChi2 = ibooker.book1D("chi2", "#chi^2", 200, 0, 200);
143  hChi2VsEta = ibooker.book2D("chi2VsEta", "#chi^2 VS #eta", 120, -3., 3., 200, 0, 200);
144 
145  hChi2Norm = ibooker.book1D("chi2Norm", "Normalized #chi^2", 400, 0, 100);
146  hChi2NormVsEta = ibooker.book2D("chi2NormVsEta", "Normalized #chi^2 VS #eta", 120, -3., 3., 400, 0, 100);
147 
148  hHitsPerTrack = ibooker.book1D("HitsPerTrack", "Number of hits per track", 55, 0, 55);
150  ibooker.book2D("HitsPerTrackVsEta", "Number of hits per track VS #eta", 120, -3., 3., 55, 0, 55);
151 
152  hDof = ibooker.book1D("dof", "Number of Degree of Freedom", 55, 0, 55);
153  hDofVsEta = ibooker.book2D("dofVsEta", "Number of Degree of Freedom VS #eta", 120, -3., 3., 55, 0, 55);
154 
155  hChi2Prob = ibooker.book1D("chi2Prob", "#chi^2 probability", 200, 0, 1);
156  hChi2ProbVsEta = ibooker.book2D("chi2ProbVsEta", "#chi^2 probability VS #eta", 120, -3., 3., 200, 0, 1);
157 
158  hNumberOfTracks = ibooker.book1D("NumberOfTracks", "Number of reconstructed tracks per event", 200, 0, 200);
159  hNumberOfTracksVsEta = ibooker.book2D(
160  "NumberOfTracksVsEta", "Number of reconstructed tracks per event VS #eta", 120, -3., 3., 10, 0, 10);
161 
162  hChargeVsEta = ibooker.book2D("ChargeVsEta", "Charge vs #eta gen", 120, -3., 3., 4, -2., 2.);
163  hChargeVsPt = ibooker.book2D("ChargeVsPt", "Charge vs P_{T} gen", 250, 0, 200, 4, -2., 2.);
164  hPtRecVsPtGen = ibooker.book2D("PtRecVsPtGen", "P_{T} rec vs P_{T} gen", 250, 0, 200, 250, 0, 200);
165 
166  hDeltaPtVsEta = ibooker.book2D("DeltaPtVsEta", "#Delta P_{t} vs #eta gen", 120, -3., 3., 500, -250., 250.);
168  ibooker.book2D("DeltaPt_In_Out_VsEta_", "P^{in}_{t} - P^{out}_{t} vs #eta gen", 120, -3., 3., 500, -250., 250.);
169  }
170 }
MonitorElement * hChi2VsEta
MonitorElement * hChi2ProbVsEta
MonitorElement * hDof
MonitorElement * hDeltaPtVsEta
def replace(string, replacements)
MonitorElement * hChi2
MonitorElement * hChi2Norm
MonitorElement * hDofVsEta
HTrackVariables * hSimTracks
MonitorElement * hPtRecVsPtGen
MonitorElement * hChargeVsEta
MonitorElement * hHitsPerTrack
MonitorElement * hNumberOfTracks
MonitorElement * hHitsPerTrackVsEta
MonitorElement * hChi2NormVsEta
std::string const & label() const
Definition: InputTag.h:36
std::string const & process() const
Definition: InputTag.h:40
MonitorElement * hChargeVsPt
MonitorElement * hNumberOfTracksVsEta
MonitorElement * hChi2Prob
Definition: HTrack.h:12
std::string const & instance() const
Definition: InputTag.h:37
MonitorElement * hDeltaPt_In_Out_VsEta
edm::InputTag theTracksLabel
bool MuonTrackAnalyzer::checkMuonSimHitPresence ( const edm::Event event,
edm::Handle< edm::SimTrackContainer simTracks 
)
private

Definition at line 396 of file MuonTrackAnalyzer.cc.

References funct::abs(), and muonSimHitMatcherPSet::simTrack.

396  {
397  // Get the SimHit collection from the event
398  Handle<PSimHitContainer> dtSimHits;
399  event.getByToken(theDTSimHitToken, dtSimHits);
400 
401  Handle<PSimHitContainer> cscSimHits;
402  event.getByToken(theCSCSimHitToken, cscSimHits);
403 
404  Handle<PSimHitContainer> rpcSimHits;
405  event.getByToken(theRPCSimHitToken, rpcSimHits);
406 
407  map<unsigned int, vector<const PSimHit *> > mapOfMuonSimHits;
408 
409  for (PSimHitContainer::const_iterator simhit = dtSimHits->begin(); simhit != dtSimHits->end(); ++simhit) {
410  if (abs(simhit->particleType()) != 13)
411  continue;
412  mapOfMuonSimHits[simhit->trackId()].push_back(&*simhit);
413  }
414 
415  for (PSimHitContainer::const_iterator simhit = cscSimHits->begin(); simhit != cscSimHits->end(); ++simhit) {
416  if (abs(simhit->particleType()) != 13)
417  continue;
418  mapOfMuonSimHits[simhit->trackId()].push_back(&*simhit);
419  }
420 
421  for (PSimHitContainer::const_iterator simhit = rpcSimHits->begin(); simhit != rpcSimHits->end(); ++simhit) {
422  if (abs(simhit->particleType()) != 13)
423  continue;
424  mapOfMuonSimHits[simhit->trackId()].push_back(&*simhit);
425  }
426 
427  bool presence = false;
428 
429  for (SimTrackContainer::const_iterator simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
430  if (abs(simTrack->type()) != 13)
431  continue;
432 
433  map<unsigned int, vector<const PSimHit *> >::const_iterator mapIterator =
434  mapOfMuonSimHits.find(simTrack->trackId());
435 
436  if (mapIterator != mapOfMuonSimHits.end())
437  presence = true;
438  }
439 
440  return presence;
441 }
edm::EDGetTokenT< std::vector< PSimHit > > theCSCSimHitToken
edm::EDGetTokenT< std::vector< PSimHit > > theDTSimHitToken
edm::EDGetTokenT< std::vector< PSimHit > > theRPCSimHitToken
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
void MuonTrackAnalyzer::fillPlots ( const edm::Event event,
edm::Handle< edm::SimTrackContainer > &  simTracks 
)
private

Definition at line 265 of file MuonTrackAnalyzer.cc.

References funct::abs(), LogTrace, muonSimHitMatcherPSet::simTrack, and mathSSE::sqrt().

265  {
266  if (!checkMuonSimHitPresence(event, simTracks))
267  return;
268 
269  // Loop over the Sim tracks
270  SimTrackContainer::const_iterator simTrack;
271  LogTrace("MuonTrackAnalyzer") << "Simulated tracks: " << simTracks->size() << endl;
272 
273  for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack)
274  if (abs((*simTrack).type()) == 13) {
275  if (!isInTheAcceptance((*simTrack).momentum().eta()))
276  continue; // FIXME!!
277 
279 
280  LogTrace("MuonTrackAnalyzer") << "Simualted muon:" << endl;
281  LogTrace("MuonTrackAnalyzer") << "Sim pT: " << sqrt((*simTrack).momentum().perp2()) << endl;
282  LogTrace("MuonTrackAnalyzer") << "Sim Eta: " << (*simTrack).momentum().eta() << endl; // FIXME
283 
284  hSimTracks->Fill((*simTrack).momentum().mag(),
285  sqrt((*simTrack).momentum().perp2()),
286  (*simTrack).momentum().eta(),
287  (*simTrack).momentum().phi(),
288  -(*simTrack).type() / abs((*simTrack).type())); // Double FIXME
289  LogTrace("MuonTrackAnalyzer") << "hSimTracks filled" << endl;
290  }
291 
292  LogTrace("MuonTrackAnalyzer") << endl;
293 }
bool checkMuonSimHitPresence(const edm::Event &event, edm::Handle< edm::SimTrackContainer > simTracks)
HTrackVariables * hSimTracks
T sqrt(T t)
Definition: SSEVec.h:19
bool isInTheAcceptance(double eta)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
#define LogTrace(id)
void Fill(double p, double pt, double eta, double phi, double charge)
Definition: Histograms.h:72
void MuonTrackAnalyzer::fillPlots ( reco::TransientTrack track,
SimTrack simTrack 
)
private

Definition at line 295 of file MuonTrackAnalyzer.cc.

References reco::TransientTrack::chi2(), ChiSquaredProbability(), hChi2, LogTrace, CoreSimTrack::momentum(), reco::TransientTrack::ndof(), reco::TransientTrack::normalizedChi2(), and reco::TransientTrack::recHitsSize().

295  {
296  LogTrace("MuonTrackAnalyzer") << "Analizer: New track, chi2: " << track.chi2() << " dof: " << track.ndof() << endl;
297  hChi2->Fill(track.chi2());
298  hDof->Fill(track.ndof());
299  hChi2Norm->Fill(track.normalizedChi2());
300  hHitsPerTrack->Fill(track.recHitsSize());
301 
302  hChi2Prob->Fill(ChiSquaredProbability(track.chi2(), track.ndof()));
303 
304  hChi2VsEta->Fill(simTrack.momentum().eta(), track.chi2());
305  hChi2NormVsEta->Fill(simTrack.momentum().eta(), track.normalizedChi2());
306  hChi2ProbVsEta->Fill(simTrack.momentum().eta(), ChiSquaredProbability(track.chi2(), track.ndof()));
307  hHitsPerTrackVsEta->Fill(simTrack.momentum().eta(), track.recHitsSize());
308  hDofVsEta->Fill(simTrack.momentum().eta(), track.ndof());
309 }
MonitorElement * hChi2VsEta
MonitorElement * hChi2ProbVsEta
MonitorElement * hDof
size_t recHitsSize() const
number of RecHits
double chi2() const
chi-squared of the fit
MonitorElement * hChi2
MonitorElement * hChi2Norm
void Fill(long long x)
MonitorElement * hDofVsEta
MonitorElement * hHitsPerTrack
float ChiSquaredProbability(double chiSquared, double nrDOF)
#define LogTrace(id)
MonitorElement * hHitsPerTrackVsEta
double normalizedChi2() const
chi-squared divided by n.d.o.f.
MonitorElement * hChi2NormVsEta
double ndof() const
number of degrees of freedom of the fit
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
MonitorElement * hChi2Prob
void MuonTrackAnalyzer::fillPlots ( TrajectoryStateOnSurface recoTSOS,
SimTrack simState,
HTrack histo,
MuonPatternRecoDumper debug 
)
private

Definition at line 311 of file MuonTrackAnalyzer.cc.

References HTrack::computeResolutionAndPull(), MuonPatternRecoDumper::dumpTSOS(), HTrack::Fill(), HTrack::FillDeltaR(), TrajectoryStateOnSurface::globalMomentum(), LogTrace, CoreSimTrack::momentum(), dt_dqm_sourceclient_common_cff::reco, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

314  {
315  LogTrace("MuonTrackAnalyzer") << debug.dumpTSOS(recoTSOS) << endl;
316  histo->Fill(recoTSOS);
317 
318  GlobalVector tsosVect = recoTSOS.globalMomentum();
319  math::XYZVectorD reco(tsosVect.x(), tsosVect.y(), tsosVect.z());
320  double deltaRVal = deltaR<double>(reco.eta(), reco.phi(), simTrack.momentum().eta(), simTrack.momentum().phi());
321  histo->FillDeltaR(deltaRVal);
322 
323  histo->computeResolutionAndPull(recoTSOS, simTrack);
324 }
void computeResolutionAndPull(TrajectoryStateOnSurface &vtx, SimTrack &simTrack)
Definition: HTrack.cc:117
T y() const
Definition: PV3DBase.h:60
std::string dumpTSOS(const TrajectoryStateOnSurface &tsos) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
T z() const
Definition: PV3DBase.h:61
void Fill(TrajectoryStateOnSurface &)
Definition: HTrack.cc:104
#define LogTrace(id)
fixed size matrix
GlobalVector globalMomentum() const
void FillDeltaR(double)
Definition: HTrack.cc:111
T x() const
Definition: PV3DBase.h:59
void MuonTrackAnalyzer::fillPlots ( FreeTrajectoryState recoFTS,
SimTrack simTrack,
HTrack histo,
MuonPatternRecoDumper debug 
)
private

Definition at line 326 of file MuonTrackAnalyzer.cc.

References HTrack::computeResolutionAndPull(), MuonPatternRecoDumper::dumpFTS(), HTrack::Fill(), HTrack::FillDeltaR(), LogTrace, CoreSimTrack::momentum(), FreeTrajectoryState::momentum(), dt_dqm_sourceclient_common_cff::reco, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

329  {
330  LogTrace("MuonTrackAnalyzer") << debug.dumpFTS(recoFTS) << endl;
331  histo->Fill(recoFTS);
332 
333  GlobalVector ftsVect = recoFTS.momentum();
334  math::XYZVectorD reco(ftsVect.x(), ftsVect.y(), ftsVect.z());
335  double deltaRVal = deltaR<double>(reco.eta(), reco.phi(), simTrack.momentum().eta(), simTrack.momentum().phi());
336  histo->FillDeltaR(deltaRVal);
337 
338  histo->computeResolutionAndPull(recoFTS, simTrack);
339 }
void computeResolutionAndPull(TrajectoryStateOnSurface &vtx, SimTrack &simTrack)
Definition: HTrack.cc:117
T y() const
Definition: PV3DBase.h:60
std::string dumpFTS(const FreeTrajectoryState &fts) const
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
T z() const
Definition: PV3DBase.h:61
void Fill(TrajectoryStateOnSurface &)
Definition: HTrack.cc:104
GlobalVector momentum() const
#define LogTrace(id)
fixed size matrix
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
void FillDeltaR(double)
Definition: HTrack.cc:111
T x() const
Definition: PV3DBase.h:59
TrajectoryStateOnSurface MuonTrackAnalyzer::getSeedTSOS ( const TrajectorySeed seed)
private

Definition at line 443 of file MuonTrackAnalyzer.cc.

References PTrajectoryStateOnDet::detId(), TrajectoryStateOnSurface::freeState(), TrajectoryStateOnSurface::isValid(), oppositeToMomentum, mps_fire::result, TrajectorySeed::startingState(), GeometricSearchDet::surface(), and trajectoryStateTransform::transientState().

443  {
444  // Get the Trajectory State on Det (persistent version of a TSOS) from the seed
445  PTrajectoryStateOnDet pTSOD = seed.startingState();
446 
447  // Transform it in a TrajectoryStateOnSurface
448 
449  DetId seedDetId(pTSOD.detId());
450 
451  const GeomDet *gdet = theService->trackingGeometry()->idToDet(seedDetId);
452 
453  TrajectoryStateOnSurface initialState =
454  trajectoryStateTransform::transientState(pTSOD, &(gdet->surface()), &*theService->magneticField());
455 
456  // Get the layer on which the seed relies
457  const DetLayer *initialLayer = theService->detLayerGeometry()->idToLayer(seedDetId);
458 
460 
461  // ask for compatible layers
462  vector<const DetLayer *> detLayers;
463  detLayers =
464  theService->muonNavigationSchool()->compatibleLayers(*initialLayer, *initialState.freeState(), detLayerOrder);
465 
466  TrajectoryStateOnSurface result = initialState;
467  if (!detLayers.empty()) {
468  const DetLayer *finalLayer = detLayers.back();
469  const TrajectoryStateOnSurface propagatedState =
470  theService->propagator(theSeedPropagatorName)->propagate(initialState, finalLayer->surface());
471  if (propagatedState.isValid())
472  result = propagatedState;
473  }
474 
475  return result;
476 }
std::string theSeedPropagatorName
PropagationDirection
FreeTrajectoryState const * freeState(bool withErrors=true) const
virtual const BoundSurface & surface() const =0
The surface of the GeometricSearchDet.
unsigned int detId() const
Definition: DetId.h:17
PTrajectoryStateOnDet const & startingState() const
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field)
MuonServiceProxy * theService
pair< SimTrack, double > MuonTrackAnalyzer::getSimTrack ( TrajectoryStateOnSurface tsos,
edm::Handle< edm::SimTrackContainer simTracks 
)
private

Definition at line 341 of file MuonTrackAnalyzer.cc.

References funct::abs(), TrajectoryStateOnSurface::globalMomentum(), LogTrace, mps_fire::result, muonSimHitMatcherPSet::simTrack, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

342  {
343  // // Loop over the Sim tracks
344  // SimTrackContainer::const_iterator simTrack;
345 
346  // SimTrack result;
347  // int mu=0;
348  // for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack)
349  // if (abs((*simTrack).type()) == 13) {
350  // result = *simTrack;
351  // ++mu;
352  // }
353 
354  // if(mu != 1) LogTrace("MuonTrackAnalyzer") << "WARNING!! more than 1 simulated muon!!" <<endl;
355  // return result;
356 
357  // Loop over the Sim tracks
358  SimTrackContainer::const_iterator simTrack;
359 
361 
362  double bestDeltaR = 10e5;
363  for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
364  if (abs((*simTrack).type()) != 13)
365  continue;
366 
367  // double newDeltaR = tsos.globalMomentum().basicVector().deltaR(simTrack->momentum().vect());
368  GlobalVector tsosVect = tsos.globalMomentum();
369  math::XYZVectorD vect(tsosVect.x(), tsosVect.y(), tsosVect.z());
370  double newDeltaR = deltaR<double>(vect.eta(), vect.phi(), simTrack->momentum().eta(), simTrack->momentum().phi());
371 
372  if (newDeltaR < bestDeltaR) {
373  LogTrace("MuonTrackAnalyzer") << "Matching Track with DeltaR = " << newDeltaR << endl;
374  bestDeltaR = newDeltaR;
375  result = *simTrack;
376  }
377  }
378  return pair<SimTrack, double>(result, bestDeltaR);
379 }
T y() const
Definition: PV3DBase.h:60
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > XYZVectorD
spatial vector with cartesian internal representation
Definition: Vector3D.h:8
T z() const
Definition: PV3DBase.h:61
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
#define LogTrace(id)
GlobalVector globalMomentum() const
T x() const
Definition: PV3DBase.h:59
bool MuonTrackAnalyzer::isInTheAcceptance ( double  eta)
private

Definition at line 381 of file MuonTrackAnalyzer.cc.

References funct::abs(), Vispa.Plugins.EdmBrowser.EdmDataAccessor::all(), Reference_intrackfit_cff::barrel, makeMuonMisalignmentScenario::endcap, and LogTrace.

381  {
382  switch (theEtaRange) {
383  case all:
384  return (abs(eta) <= 2.4) ? true : false;
385  case barrel:
386  return (abs(eta) < 1.1) ? true : false;
387  case endcap:
388  return (abs(eta) >= 1.1 && abs(eta) <= 2.4) ? true : false;
389  default: {
390  LogTrace("MuonTrackAnalyzer") << "No correct Eta range selected!! " << endl;
391  return false;
392  }
393  }
394 }
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
#define LogTrace(id)
void MuonTrackAnalyzer::seedsAnalysis ( const edm::Event event,
const edm::EventSetup eventSetup,
edm::Handle< edm::SimTrackContainer simTracks 
)

Definition at line 189 of file MuonTrackAnalyzer.cc.

References debug, LogTrace, and SurveyInfoScenario_cff::seed.

191  {
193 
194  // Get the RecTrack collection from the event
196  event.getByToken(theSeedsToken, seeds);
197 
198  LogTrace("MuonTrackAnalyzer") << "Number of reconstructed seeds: " << seeds->size() << endl;
199 
200  for (TrajectorySeedCollection::const_iterator seed = seeds->begin(); seed != seeds->end(); ++seed) {
202  pair<SimTrack, double> sim = getSimTrack(seedTSOS, simTracks);
203  fillPlots(seedTSOS, sim.first, hRecoSeedInner, debug);
204 
205  std::pair<bool, FreeTrajectoryState> propSeed = theUpdator->propagateToNominalLine(seedTSOS);
206  if (propSeed.first)
207  fillPlots(propSeed.second, sim.first, hRecoSeedPCA, debug);
208  else
209  LogTrace("MuonTrackAnalyzer") << "Error in seed propagation" << endl;
210  }
211 }
std::pair< SimTrack, double > getSimTrack(TrajectoryStateOnSurface &tsos, edm::Handle< edm::SimTrackContainer > simTracks)
edm::EDGetTokenT< TrajectorySeedCollection > theSeedsToken
TrajectoryStateOnSurface getSeedTSOS(const TrajectorySeed &seed)
MuonUpdatorAtVertex * theUpdator
#define LogTrace(id)
#define debug
Definition: HDRShower.cc:19
void fillPlots(const edm::Event &event, edm::Handle< edm::SimTrackContainer > &simTracks)
std::pair< bool, FreeTrajectoryState > propagateToNominalLine(const TrajectoryStateOnSurface &tsos) const
Propagate the state to the 2D-PCA (nominal CMS axis)
void MuonTrackAnalyzer::tracksAnalysis ( const edm::Event event,
const edm::EventSetup eventSetup,
edm::Handle< edm::SimTrackContainer simTracks 
)

Definition at line 213 of file MuonTrackAnalyzer.cc.

References TrajectoryStateOnSurface::charge(), debug, TrajectoryStateOnSurface::globalMomentum(), LogTrace, CoreSimTrack::momentum(), PV3DBase< T, PVType, FrameType >::perp(), muonSimHitMatcherPSet::simTrack, mathSSE::sqrt(), OrderedSet::t, HLT_2018_cff::track, and PDWG_EXOHSCP_cff::tracks.

215  {
217 
218  // Get the RecTrack collection from the event
220  event.getByToken(theTracksToken, tracks);
221 
222  LogTrace("MuonTrackAnalyzer") << "Reconstructed tracks: " << tracks->size() << endl;
223  hNumberOfTracks->Fill(tracks->size());
224 
225  if (!tracks->empty())
227 
228  // Loop over the Rec tracks
229  for (reco::TrackCollection::const_iterator t = tracks->begin(); t != tracks->end(); ++t) {
230  reco::TransientTrack track(*t, &*theService->magneticField(), theService->trackingGeometry());
231 
232  TrajectoryStateOnSurface outerTSOS = track.outermostMeasurementState();
233  TrajectoryStateOnSurface innerTSOS = track.innermostMeasurementState();
234  TrajectoryStateOnSurface pcaTSOS = track.impactPointState();
235 
236  pair<SimTrack, double> sim = getSimTrack(pcaTSOS, simTracks);
237  SimTrack simTrack = sim.first;
238  hNumberOfTracksVsEta->Fill(simTrack.momentum().eta(), tracks->size());
239  fillPlots(track, simTrack);
240 
241  LogTrace("MuonTrackAnalyzer") << "State at the outer surface: " << endl;
242  fillPlots(outerTSOS, simTrack, hRecoTracksOuter, debug);
243 
244  LogTrace("MuonTrackAnalyzer") << "State at the inner surface: " << endl;
245  fillPlots(innerTSOS, simTrack, hRecoTracksInner, debug);
246 
247  LogTrace("MuonTrackAnalyzer") << "State at PCA: " << endl;
248  fillPlots(pcaTSOS, simTrack, hRecoTracksPCA, debug);
249 
250  double deltaPt_in_out = innerTSOS.globalMomentum().perp() - outerTSOS.globalMomentum().perp();
251  hDeltaPt_In_Out_VsEta->Fill(simTrack.momentum().eta(), deltaPt_in_out);
252 
253  double deltaPt_pca_sim = pcaTSOS.globalMomentum().perp() - sqrt(simTrack.momentum().Perp2());
254  hDeltaPtVsEta->Fill(simTrack.momentum().eta(), deltaPt_pca_sim);
255 
256  hChargeVsEta->Fill(simTrack.momentum().eta(), pcaTSOS.charge());
257 
258  hChargeVsPt->Fill(sqrt(simTrack.momentum().perp2()), pcaTSOS.charge());
259 
260  hPtRecVsPtGen->Fill(sqrt(simTrack.momentum().perp2()), pcaTSOS.globalMomentum().perp());
261  }
262  LogTrace("MuonTrackAnalyzer") << "--------------------------------------------" << endl;
263 }
T perp() const
Definition: PV3DBase.h:69
std::pair< SimTrack, double > getSimTrack(TrajectoryStateOnSurface &tsos, edm::Handle< edm::SimTrackContainer > simTracks)
MonitorElement * hDeltaPtVsEta
void Fill(long long x)
MonitorElement * hPtRecVsPtGen
MonitorElement * hChargeVsEta
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * hNumberOfTracks
edm::EDGetTokenT< reco::TrackCollection > theTracksToken
#define LogTrace(id)
#define debug
Definition: HDRShower.cc:19
GlobalVector globalMomentum() const
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
MonitorElement * hChargeVsPt
MonitorElement * hNumberOfTracksVsEta
MuonServiceProxy * theService
void fillPlots(const edm::Event &event, edm::Handle< edm::SimTrackContainer > &simTracks)
MonitorElement * hDeltaPt_In_Out_VsEta

Member Data Documentation

DQMStore* MuonTrackAnalyzer::dbe_
private

Definition at line 90 of file MuonTrackAnalyzer.h.

std::string MuonTrackAnalyzer::dirName_
private

Definition at line 91 of file MuonTrackAnalyzer.h.

bool MuonTrackAnalyzer::doSeedsAnalysis
private

Definition at line 115 of file MuonTrackAnalyzer.h.

bool MuonTrackAnalyzer::doTracksAnalysis
private

Definition at line 114 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChargeVsEta
private

Definition at line 130 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChargeVsPt
private

Definition at line 131 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2
private

Definition at line 122 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2Norm
private

Definition at line 123 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2NormVsEta
private

Definition at line 135 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2Prob
private

Definition at line 126 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2ProbVsEta
private

Definition at line 138 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hChi2VsEta
private

Definition at line 134 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hDeltaPt_In_Out_VsEta
private

Definition at line 140 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hDeltaPtVsEta
private

Definition at line 139 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hDof
private

Definition at line 125 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hDofVsEta
private

Definition at line 137 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hHitsPerTrack
private

Definition at line 124 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hHitsPerTrackVsEta
private

Definition at line 136 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hNumberOfTracks
private

Definition at line 128 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hNumberOfTracksVsEta
private

Definition at line 129 of file MuonTrackAnalyzer.h.

MonitorElement* MuonTrackAnalyzer::hPtRecVsPtGen
private

Definition at line 132 of file MuonTrackAnalyzer.h.

HTrack* MuonTrackAnalyzer::hRecoSeedInner
private

Definition at line 144 of file MuonTrackAnalyzer.h.

HTrack* MuonTrackAnalyzer::hRecoSeedPCA
private

Definition at line 145 of file MuonTrackAnalyzer.h.

HTrack* MuonTrackAnalyzer::hRecoTracksInner
private

Definition at line 147 of file MuonTrackAnalyzer.h.

HTrack* MuonTrackAnalyzer::hRecoTracksOuter
private

Definition at line 148 of file MuonTrackAnalyzer.h.

HTrack* MuonTrackAnalyzer::hRecoTracksPCA
private

Definition at line 146 of file MuonTrackAnalyzer.h.

HTrackVariables* MuonTrackAnalyzer::hSimTracks
private

Definition at line 142 of file MuonTrackAnalyzer.h.

int MuonTrackAnalyzer::numberOfRecTracks
private

Definition at line 152 of file MuonTrackAnalyzer.h.

int MuonTrackAnalyzer::numberOfSimTracks
private

Definition at line 151 of file MuonTrackAnalyzer.h.

std::string MuonTrackAnalyzer::out
private

Definition at line 93 of file MuonTrackAnalyzer.h.

edm::ParameterSet MuonTrackAnalyzer::pset
private

Definition at line 95 of file MuonTrackAnalyzer.h.

std::string MuonTrackAnalyzer::subsystemname_
private

Definition at line 94 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theCSCSimHitLabel
private

Definition at line 103 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<std::vector<PSimHit> > MuonTrackAnalyzer::theCSCSimHitToken
private

Definition at line 110 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theDTSimHitLabel
private

Definition at line 104 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<std::vector<PSimHit> > MuonTrackAnalyzer::theDTSimHitToken
private

Definition at line 111 of file MuonTrackAnalyzer.h.

EtaRange MuonTrackAnalyzer::theEtaRange
private

Definition at line 98 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theRPCSimHitLabel
private

Definition at line 105 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<std::vector<PSimHit> > MuonTrackAnalyzer::theRPCSimHitToken
private

Definition at line 112 of file MuonTrackAnalyzer.h.

std::string MuonTrackAnalyzer::theSeedPropagatorName
private

Definition at line 116 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theSeedsLabel
private

Definition at line 101 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<TrajectorySeedCollection> MuonTrackAnalyzer::theSeedsToken
private

Definition at line 108 of file MuonTrackAnalyzer.h.

MuonServiceProxy* MuonTrackAnalyzer::theService
private

Definition at line 118 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theSimTracksLabel
private

Definition at line 100 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<edm::SimTrackContainer> MuonTrackAnalyzer::theSimTracksToken
private

Definition at line 107 of file MuonTrackAnalyzer.h.

edm::InputTag MuonTrackAnalyzer::theTracksLabel
private

Definition at line 102 of file MuonTrackAnalyzer.h.

edm::EDGetTokenT<reco::TrackCollection> MuonTrackAnalyzer::theTracksToken
private

Definition at line 109 of file MuonTrackAnalyzer.h.

MuonUpdatorAtVertex* MuonTrackAnalyzer::theUpdator
private

Definition at line 119 of file MuonTrackAnalyzer.h.