CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
GeneralPurposeTrackAnalyzer Class Reference

#include <Alignment/OfflineValidation/plugins/GeneralPurposeTrackAnalyzer.cc>

Inheritance diagram for GeneralPurposeTrackAnalyzer:
edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

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

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 
- 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 Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &setup) override
 
void beginJob () override
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) override
 
void endJob () override
 
void endRun (edm::Run const &, edm::EventSetup const &) override
 
bool isHit2D (const TrackingRecHit &hit)
 

Private Attributes

edm::InputTag BeamSpotTag_
 
edm::EDGetTokenT< reco::BeamSpotbeamspotToken_
 
std::map< int, std::pair< int, float > > conditionsMap_
 
SiPixelCoordinates coord_
 
bool doLatencyAnalysis_
 
float etaMax_
 
TH1D * evtsByTrigger_
 
TH1D * fieldByRun_
 
edm::Service< TFileServicefs
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomTokenBR_
 
TH1F * h_Beamsigmaz
 
TH1F * h_BeamWidthX
 
TH1F * h_BeamWidthY
 
TH1F * h_BSdxdz
 
TH1F * h_BSdydz
 
TH1F * h_BSx0
 
TH1F * h_BSy0
 
TH1F * h_BSz0
 
TH1D * hCharge
 
TH1D * hchi2ndof
 
TH1D * hchi2ndofhp
 
TH1D * hchi2Probhp
 
TH1D * hd0
 
TH1D * hd0BS
 
TH1D * hd0PV
 
TH2D * hd0PVvseta
 
TH2D * hd0PVvsphi
 
TH2D * hd0PVvspt
 
TH2D * hd0vseta
 
TH2D * hd0vsphi
 
TH2D * hd0vspt
 
TH1D * hDeltaEta
 
TH1D * hDeltaPhi
 
TH1D * hDeltaR
 
TH1D * hdxy
 
TH1D * hdxyBS
 
TH1D * hdxyPV
 
TH1D * hdz
 
TH1D * hdzBS
 
TH1D * hdzPV
 
TH1D * hEta
 
TH1D * hEtahp
 
TH1D * hEtaMinus
 
TH1D * hEtaPlus
 
TH1D * hHit
 
TH1D * hHit2D
 
TH1D * hHitComposition
 
TH1D * hHitCountVsPhiBPix
 
TH1D * hHitCountVsPhiFPix
 
TH1D * hHitCountVsThetaBPix
 
TH1D * hHitCountVsThetaFPix
 
TH1D * hHitCountVsXBPix
 
TH1D * hHitCountVsXFPix
 
TH1D * hHitCountVsYBPix
 
TH1D * hHitCountVsYFPix
 
TH1D * hHitCountVsZBPix
 
TH1D * hHitCountVsZFPix
 
TH1D * hHithp
 
TH1D * hHitMinus
 
TH1D * hHitPlus
 
edm::EDGetTokenT< edm::TriggerResultshltresultsToken_
 
TH1D * hlumi
 
TH1D * hMinPt
 
TH1D * hMultCand
 
TH1D * hNhighPurity
 
TH1D * hnhpxb
 
TH1D * hnhpxe
 
TH1D * hnhTEC
 
TH1D * hnhTIB
 
TH1D * hnhTID
 
TH1D * hnhTOB
 
TH1D * hNtrk
 
TH1D * hNtrkZoom
 
TH1D * hP
 
TH1D * hPhi
 
TH1D * hPhiBarrel
 
TH1D * hPhiEndcapMinus
 
TH1D * hPhiEndcapPlus
 
TH1D * hPhihp
 
TH1D * hPhiMinus
 
TH1D * hPhiOverlapMinus
 
TH1D * hPhiOverlapPlus
 
TH1D * hPhiPlus
 
TH1D * hPhp
 
TH1D * hPMinus
 
TH1D * hPPlus
 
TH1D * hPt
 
TH1D * hPthp
 
TH1D * hPtMinus
 
TH1D * hPtPlus
 
TH1D * hQoverP
 
TH1D * hQoverPZoom
 
TH1D * hrun
 
TH1I * htrkAlgo
 
TH1I * htrkOriAlgo
 
TH1I * htrkQuality
 
TH1D * hvx
 
TH1D * hvy
 
TH1D * hvz
 
int ievt
 
bool isCosmics_
 
int itrks
 
edm::ESGetToken< SiStripLatency, SiStripLatencyRcdlatencyToken_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordmagFieldToken_
 
edm::ESHandle< MagneticFieldmagneticField_
 
int mode
 
TH1D * modeByRun_
 
SiPixelPI::phase phase_
 
std::unique_ptr< Phase1PixelMapspixelmap
 
std::unique_ptr< Phase1PixelROCMapspixelrocsmap_
 
std::unique_ptr< TrackerMappmap
 
TProfile * pNBpixHitsVsVx
 
TProfile * pNBpixHitsVsVy
 
TProfile * pNBpixHitsVsVz
 
std::map< int, std::pair< int, int > > runInfoMap_
 
const edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcdsiPixelFedCablingMapTokenBR_
 
edm::EDGetTokenT< reco::TrackCollectiontheTrackCollectionToken_
 
TH1D * tksByTrigger_
 
edm::InputTag TkTag_
 
std::unique_ptr< TrackerMaptmap
 
const TrackerGeometrytrackerGeometry_
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtrackerTopologyTokenBR_
 
std::map< std::string, std::pair< int, int > > triggerMap_
 
edm::InputTag TriggerResultsTag_
 
edm::EDGetTokenT< reco::VertexCollectionvertexToken_
 
edm::InputTag VerticesTag_
 
std::vector< TH1 * > vTrack2DHistos_
 
std::vector< TH1 * > vTrackHistos_
 
std::vector< TH1 * > vTrackProfiles_
 

Additional Inherited Members

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

Detailed Description

Definition at line 89 of file GeneralPurposeTrackAnalyzer.cc.

Constructor & Destructor Documentation

◆ GeneralPurposeTrackAnalyzer()

GeneralPurposeTrackAnalyzer::GeneralPurposeTrackAnalyzer ( const edm::ParameterSet pset)
inline

Definition at line 91 of file GeneralPurposeTrackAnalyzer.cc.

References BeamSpotTag_, beamspotToken_, doLatencyAnalysis_, hltresultsToken_, isCosmics_, TFileService::kSharedResource, latencyToken_, pixelmap, pixelrocsmap_, pmap, muonDTDigis_cfi::pset, theTrackCollectionToken_, TkTag_, tmap, TriggerResultsTag_, vertexToken_, and VerticesTag_.

93  magFieldToken_(esConsumes<edm::Transition::BeginRun>()),
94  geomTokenBR_(esConsumes<edm::Transition::BeginRun>()),
95  trackerTopologyTokenBR_(esConsumes<edm::Transition::BeginRun>()),
96  siPixelFedCablingMapTokenBR_(esConsumes<edm::Transition::BeginRun>()) {
97  doLatencyAnalysis_ = pset.getParameter<bool>("doLatencyAnalysis");
98  if (doLatencyAnalysis_) {
99  latencyToken_ = esConsumes<edm::Transition::BeginRun>();
100  }
101 
102  usesResource(TFileService::kSharedResource);
103 
104  TkTag_ = pset.getParameter<edm::InputTag>("TkTag");
105  theTrackCollectionToken_ = consumes<reco::TrackCollection>(TkTag_);
106 
107  TriggerResultsTag_ = pset.getParameter<edm::InputTag>("TriggerResultsTag");
108  hltresultsToken_ = consumes<edm::TriggerResults>(TriggerResultsTag_);
109 
110  BeamSpotTag_ = pset.getParameter<edm::InputTag>("BeamSpotTag");
111  beamspotToken_ = consumes<reco::BeamSpot>(BeamSpotTag_);
112 
113  VerticesTag_ = pset.getParameter<edm::InputTag>("VerticesTag");
114  vertexToken_ = consumes<reco::VertexCollection>(VerticesTag_);
115 
116  isCosmics_ = pset.getParameter<bool>("isCosmics");
117 
118  pmap = std::make_unique<TrackerMap>("Pixel");
119  pmap->onlyPixel(true);
120  pmap->setTitle("Pixel Hit entries");
121  pmap->setPalette(1);
122 
123  tmap = std::make_unique<TrackerMap>("Strip");
124  tmap->setTitle("Strip Hit entries");
125  tmap->setPalette(1);
126 
127  pixelmap = std::make_unique<Phase1PixelMaps>("COLZ0 L");
128  pixelmap->bookBarrelHistograms("entriesBarrel", "# hits", "# pixel hits");
129  pixelmap->bookForwardHistograms("entriesForward", "# hits", "# pixel hits");
130 
131  pixelrocsmap_ = std::make_unique<Phase1PixelROCMaps>("");
132  }
static const std::string kSharedResource
Definition: TFileService.h:76
edm::EDGetTokenT< edm::TriggerResults > hltresultsToken_
edm::EDGetTokenT< reco::TrackCollection > theTrackCollectionToken_
std::unique_ptr< TrackerMap > tmap
std::unique_ptr< TrackerMap > pmap
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomTokenBR_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyTokenBR_
edm::ESGetToken< SiStripLatency, SiStripLatencyRcd > latencyToken_
std::unique_ptr< Phase1PixelROCMaps > pixelrocsmap_
std::unique_ptr< Phase1PixelMaps > pixelmap
const edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > siPixelFedCablingMapTokenBR_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_

◆ ~GeneralPurposeTrackAnalyzer()

GeneralPurposeTrackAnalyzer::~GeneralPurposeTrackAnalyzer ( )
overridedefault

Member Function Documentation

◆ analyze()

void GeneralPurposeTrackAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup setup 
)
inlineoverrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 322 of file GeneralPurposeTrackAnalyzer.cc.

References funct::abs(), accept(), pwdgSkimBPark_cfi::beamSpot, beamspotToken_, cuy::col, reco::TrackBase::confirmed, coord_, DEBUG, hcalRecHitTable_cff::detId, PVValHelper::dxy, PVValHelper::dz, HcalObjRepresent::Fill(), geomToken_, reco::TrackBase::goodIterative, h_Beamsigmaz, h_BeamWidthX, h_BeamWidthY, h_BSdxdz, h_BSdydz, h_BSx0, h_BSy0, h_BSz0, hCharge, hchi2ndof, hchi2ndofhp, hchi2Probhp, hd0, hd0BS, hd0PV, hd0PVvseta, hd0PVvsphi, hd0PVvspt, hd0vseta, hd0vsphi, hd0vspt, hdxy, hdxyBS, hdxyPV, hdz, hdzBS, hdzPV, hEta, hEtahp, hHit, hHit2D, hHitComposition, hHitCountVsPhiBPix, hHitCountVsPhiFPix, hHitCountVsThetaBPix, hHitCountVsThetaFPix, hHitCountVsXBPix, hHitCountVsXFPix, hHitCountVsYBPix, hHitCountVsYFPix, hHitCountVsZBPix, hHitCountVsZFPix, hHithp, reco::TrackBase::highPurity, HLTBitAnalyser_cfi::hltresults, hltresultsToken_, hlumi, hNhighPurity, hnhpxb, hnhpxe, hnhTEC, hnhTIB, hnhTID, hnhTOB, hNtrk, hNtrkZoom, hP, hPhi, hPhiBarrel, hPhiEndcapMinus, hPhiEndcapPlus, hPhihp, hPhiOverlapMinus, hPhiOverlapPlus, hPhp, hPt, hPthp, hQoverP, hQoverPZoom, hrun, htrkAlgo, htrkOriAlgo, htrkQuality, hvx, hvy, hvz, TrackerGeometry::idToDet(), ievt, index(), MagneticField::inInverseGeV(), isCosmics_, isHit2D(), edm::HandleBase::isValid(), itrks, hgcalLayerClustersEE_cfi::kappa, reco::TrackBase::loose, magneticField_, SiPixelPI::one, phase_, PV3DBase< T, PVType, FrameType >::phi(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, pixelmap, pixelrocsmap_, pmap, pNBpixHitsVsVx, pNBpixHitsVsVy, pNBpixHitsVsVz, point, SiPixelCoordinates::roc(), runInfoMap_, singleTopDQM_cfi::setup, AlCaHLTBitMon_QueryRunRegistry::string, PV3DBase< T, PVType, FrameType >::theta(), theTrackCollectionToken_, reco::TrackBase::tight, tmap, HLT_2023v12_cff::track, JetHT_cfg::trackCollection, triggerMap_, edm::TriggerNames::triggerName(), edm::TriggerNames::triggerNames(), cscTnPEfficiencyTask_cfi::trigName, SiPixelPI::two, reco::TrackBase::undefQuality, vertexToken_, vTrack2DHistos_, vTrackHistos_, vTrackProfiles_, PV3DBase< T, PVType, FrameType >::x(), reco::Vertex::x(), PV3DBase< T, PVType, FrameType >::y(), reco::Vertex::y(), PV3DBase< T, PVType, FrameType >::z(), reco::Vertex::z(), and SiPixelPI::zero.

324  {
325  ievt++;
326 
327  // geometry setup
328  const TrackerGeometry *theGeometry = &setup.getData(geomToken_);
329 
331  const reco::TrackCollection tC = *(trackCollection.product());
332  itrks += tC.size();
333 
334  runInfoMap_[event.run()].first += 1;
335  runInfoMap_[event.run()].second += tC.size();
336 
337  if (DEBUG) {
338  edm::LogInfo("GeneralPurposeTrackAnalyzer") << "Reconstructed " << tC.size() << " tracks" << std::endl;
339  }
340  //int iCounter=0;
341 
343  if (hltresults.isValid()) {
344  const edm::TriggerNames &triggerNames_ = event.triggerNames(*hltresults);
345  int ntrigs = hltresults->size();
346  //const vector<std::string> &triggernames = triggerNames_.triggerNames();
347 
348  for (int itrig = 0; itrig != ntrigs; ++itrig) {
349  const std::string &trigName = triggerNames_.triggerName(itrig);
350  bool accept = hltresults->accept(itrig);
351  if (accept == 1) {
352  if (DEBUG) {
353  edm::LogInfo("GeneralPurposeTrackAnalyzer")
354  << trigName << " " << accept << " ,track size: " << tC.size() << std::endl;
355  }
356  triggerMap_[trigName].first += 1;
357  triggerMap_[trigName].second += tC.size();
358  // triggerInfo.push_back(pair <std::string, int> (trigName, accept));
359  }
360  }
361  }
362 
363  hrun->Fill(event.run());
364  hlumi->Fill(event.luminosityBlock());
365 
366  int nHighPurityTracks = 0;
367 
368  for (auto track = tC.cbegin(); track != tC.cend(); track++) {
369  unsigned int nHit2D = 0;
370  std::bitset<16> rocsToMask;
371  for (auto iHit = track->recHitsBegin(); iHit != track->recHitsEnd(); ++iHit) {
372  if (this->isHit2D(**iHit)) {
373  ++nHit2D;
374  }
375  // rest the ROCs for the map
376  rocsToMask.reset();
377  const DetId &detId = (*iHit)->geographicalId();
378  const GeomDet *geomDet(theGeometry->idToDet(detId));
379 
380  const SiPixelRecHit *pixhit = dynamic_cast<const SiPixelRecHit *>(*iHit);
381 
382  if (pixhit) {
383  if (pixhit->isValid()) {
384  unsigned int subid = detId.subdetId();
385  int detid_db = detId.rawId();
386 
387  // get the cluster
388  auto clustp = pixhit->cluster();
389 
390  if (clustp.isNull())
391  continue;
392  auto const &cluster = *clustp;
393  int row = cluster.x() - 0.5, col = cluster.y() - 0.5;
394  int rocId = coord_.roc(detId, std::make_pair(row, col));
395 
397  pmap->fill(detid_db, 1);
398  } else if (phase_ == SiPixelPI::phase::one) {
399  rocsToMask.set(rocId);
400  pixelrocsmap_->fillSelectedRocs(detid_db, rocsToMask, 1);
401 
402  if (subid == PixelSubdetector::PixelBarrel) {
403  pixelmap->fillBarrelBin("entriesBarrel", detid_db, 1);
404  } else {
405  pixelmap->fillForwardBin("entriesForward", detid_db, 1);
406  }
407  }
408 
409  LocalPoint lp = (*iHit)->localPosition();
410  //LocalError le = (*iHit)->localPositionError();
411 
412  GlobalPoint GP = geomDet->surface().toGlobal(lp);
413 
414  if ((subid == PixelSubdetector::PixelBarrel) || (subid == PixelSubdetector::PixelEndcap)) {
415  // 1 = PXB, 2 = PXF
416  if (subid == PixelSubdetector::PixelBarrel) {
417  hHitCountVsThetaBPix->Fill(GP.theta());
418  hHitCountVsPhiBPix->Fill(GP.phi());
419 
420  hHitCountVsZBPix->Fill(GP.z());
421  hHitCountVsXBPix->Fill(GP.x());
422  hHitCountVsYBPix->Fill(GP.y());
423 
424  } else if (subid == PixelSubdetector::PixelEndcap) {
425  hHitCountVsThetaFPix->Fill(GP.theta());
426  hHitCountVsPhiFPix->Fill(GP.phi());
427 
428  hHitCountVsZFPix->Fill(GP.z());
429  hHitCountVsXFPix->Fill(GP.x());
430  hHitCountVsYFPix->Fill(GP.y());
431  }
432  }
433  }
434  } else {
435  if ((*iHit)->isValid() && phase_ != SiPixelPI::phase::two) {
436  tmap->fill(detId.rawId(), 1);
437  }
438  }
439  }
440 
441  hHit2D->Fill(nHit2D);
442  hHit->Fill(track->numberOfValidHits());
443  hnhpxb->Fill(track->hitPattern().numberOfValidPixelBarrelHits());
444  hnhpxe->Fill(track->hitPattern().numberOfValidPixelEndcapHits());
445  hnhTIB->Fill(track->hitPattern().numberOfValidStripTIBHits());
446  hnhTID->Fill(track->hitPattern().numberOfValidStripTIDHits());
447  hnhTOB->Fill(track->hitPattern().numberOfValidStripTOBHits());
448  hnhTEC->Fill(track->hitPattern().numberOfValidStripTECHits());
449 
450  // fill hit composition histogram
451  if (track->hitPattern().numberOfValidPixelBarrelHits() != 0) {
452  hHitComposition->Fill(0., track->hitPattern().numberOfValidPixelBarrelHits());
453 
454  pNBpixHitsVsVx->Fill(track->vx(), track->hitPattern().numberOfValidPixelBarrelHits());
455  pNBpixHitsVsVy->Fill(track->vy(), track->hitPattern().numberOfValidPixelBarrelHits());
456  pNBpixHitsVsVz->Fill(track->vz(), track->hitPattern().numberOfValidPixelBarrelHits());
457  }
458  if (track->hitPattern().numberOfValidPixelEndcapHits() != 0) {
459  hHitComposition->Fill(1., track->hitPattern().numberOfValidPixelEndcapHits());
460  }
461  if (track->hitPattern().numberOfValidStripTIBHits() != 0) {
462  hHitComposition->Fill(2., track->hitPattern().numberOfValidStripTIBHits());
463  }
464  if (track->hitPattern().numberOfValidStripTIDHits() != 0) {
465  hHitComposition->Fill(3., track->hitPattern().numberOfValidStripTIDHits());
466  }
467  if (track->hitPattern().numberOfValidStripTOBHits() != 0) {
468  hHitComposition->Fill(4., track->hitPattern().numberOfValidStripTOBHits());
469  }
470  if (track->hitPattern().numberOfValidStripTECHits() != 0) {
471  hHitComposition->Fill(5., track->hitPattern().numberOfValidStripTECHits());
472  }
473 
474  hCharge->Fill(track->charge());
475  hQoverP->Fill(track->qoverp());
476  hQoverPZoom->Fill(track->qoverp());
477  hPt->Fill(track->pt());
478  hP->Fill(track->p());
479  hchi2ndof->Fill(track->normalizedChi2());
480  hEta->Fill(track->eta());
481  hPhi->Fill(track->phi());
482 
483  if (fabs(track->eta()) < 0.8) {
484  hPhiBarrel->Fill(track->phi());
485  }
486  if (track->eta() > 0.8 && track->eta() < 1.4) {
487  hPhiOverlapPlus->Fill(track->phi());
488  }
489  if (track->eta() < -0.8 && track->eta() > -1.4) {
490  hPhiOverlapMinus->Fill(track->phi());
491  }
492  if (track->eta() > 1.4) {
493  hPhiEndcapPlus->Fill(track->phi());
494  }
495  if (track->eta() < -1.4) {
496  hPhiEndcapMinus->Fill(track->phi());
497  }
498 
499  hd0->Fill(track->d0());
500  hdz->Fill(track->dz());
501  hdxy->Fill(track->dxy());
502  hvx->Fill(track->vx());
503  hvy->Fill(track->vy());
504  hvz->Fill(track->vz());
505 
506  htrkAlgo->Fill(static_cast<int>(track->algo()));
507  htrkOriAlgo->Fill(static_cast<int>(track->originalAlgo()));
508 
509  int myquality = -99;
510  if (track->quality(reco::TrackBase::undefQuality)) {
511  myquality = -1;
512  htrkQuality->Fill(myquality);
513  }
514  if (track->quality(reco::TrackBase::loose)) {
515  myquality = 0;
516  htrkQuality->Fill(myquality);
517  }
518  if (track->quality(reco::TrackBase::tight)) {
519  myquality = 1;
520  htrkQuality->Fill(myquality);
521  }
522  if (track->quality(reco::TrackBase::highPurity) && (!isCosmics_)) {
523  myquality = 2;
524  htrkQuality->Fill(myquality);
525  hPhp->Fill(track->p());
526  hPthp->Fill(track->pt());
527  hHithp->Fill(track->numberOfValidHits());
528  hEtahp->Fill(track->eta());
529  hPhihp->Fill(track->phi());
530  hchi2ndofhp->Fill(track->normalizedChi2());
531  hchi2Probhp->Fill(TMath::Prob(track->chi2(), track->ndof()));
532  nHighPurityTracks++;
533  }
534  if (track->quality(reco::TrackBase::confirmed)) {
535  myquality = 3;
536  htrkQuality->Fill(myquality);
537  }
538  if (track->quality(reco::TrackBase::goodIterative)) {
539  myquality = 4;
540  htrkQuality->Fill(myquality);
541  }
542 
543  // Fill 1D track histos
544  static const int etaindex = this->index(vTrackHistos_, "h_tracketa");
545  vTrackHistos_[etaindex]->Fill(track->eta());
546  static const int phiindex = this->index(vTrackHistos_, "h_trackphi");
547  vTrackHistos_[phiindex]->Fill(track->phi());
548  static const int numOfValidHitsindex = this->index(vTrackHistos_, "h_trackNumberOfValidHits");
549  vTrackHistos_[numOfValidHitsindex]->Fill(track->numberOfValidHits());
550  static const int numOfLostHitsindex = this->index(vTrackHistos_, "h_trackNumberOfLostHits");
551  vTrackHistos_[numOfLostHitsindex]->Fill(track->numberOfLostHits());
552 
553  GlobalPoint gPoint(track->vx(), track->vy(), track->vz());
554  double theLocalMagFieldInInverseGeV = magneticField_->inInverseGeV(gPoint).z();
555  double kappa = -track->charge() * theLocalMagFieldInInverseGeV / track->pt();
556 
557  static const int kappaindex = this->index(vTrackHistos_, "h_curvature");
558  vTrackHistos_[kappaindex]->Fill(kappa);
559  static const int kappaposindex = this->index(vTrackHistos_, "h_curvature_pos");
560  if (track->charge() > 0)
561  vTrackHistos_[kappaposindex]->Fill(fabs(kappa));
562  static const int kappanegindex = this->index(vTrackHistos_, "h_curvature_neg");
563  if (track->charge() < 0)
564  vTrackHistos_[kappanegindex]->Fill(fabs(kappa));
565 
566  double chi2Prob = TMath::Prob(track->chi2(), track->ndof());
567  double normchi2 = track->normalizedChi2();
568 
569  static const int normchi2index = this->index(vTrackHistos_, "h_normchi2");
570  vTrackHistos_[normchi2index]->Fill(normchi2);
571  static const int chi2index = this->index(vTrackHistos_, "h_chi2");
572  vTrackHistos_[chi2index]->Fill(track->chi2());
573  static const int chi2Probindex = this->index(vTrackHistos_, "h_chi2Prob");
574  vTrackHistos_[chi2Probindex]->Fill(chi2Prob);
575  static const int ptindex = this->index(vTrackHistos_, "h_pt");
576  static const int pt2index = this->index(vTrackHistos_, "h_ptrebin");
577  vTrackHistos_[ptindex]->Fill(track->pt());
578  vTrackHistos_[pt2index]->Fill(track->pt());
579  if (track->ptError() != 0.) {
580  static const int ptResolutionindex = this->index(vTrackHistos_, "h_ptResolution");
581  vTrackHistos_[ptResolutionindex]->Fill(track->ptError() / track->pt());
582  }
583  // Fill track profiles
584  static const int d0phiindex = this->index(vTrackProfiles_, "p_d0_vs_phi");
585  vTrackProfiles_[d0phiindex]->Fill(track->phi(), track->d0());
586  static const int dzphiindex = this->index(vTrackProfiles_, "p_dz_vs_phi");
587  vTrackProfiles_[dzphiindex]->Fill(track->phi(), track->dz());
588  static const int d0etaindex = this->index(vTrackProfiles_, "p_d0_vs_eta");
589  vTrackProfiles_[d0etaindex]->Fill(track->eta(), track->d0());
590  static const int dzetaindex = this->index(vTrackProfiles_, "p_dz_vs_eta");
591  vTrackProfiles_[dzetaindex]->Fill(track->eta(), track->dz());
592  static const int chiProbphiindex = this->index(vTrackProfiles_, "p_chi2Prob_vs_phi");
593  vTrackProfiles_[chiProbphiindex]->Fill(track->phi(), chi2Prob);
594  static const int chiProbabsd0index = this->index(vTrackProfiles_, "p_chi2Prob_vs_d0");
595  vTrackProfiles_[chiProbabsd0index]->Fill(fabs(track->d0()), chi2Prob);
596  static const int chiProbabsdzindex = this->index(vTrackProfiles_, "p_chi2Prob_vs_dz");
597  vTrackProfiles_[chiProbabsdzindex]->Fill(track->dz(), chi2Prob);
598  static const int chiphiindex = this->index(vTrackProfiles_, "p_chi2_vs_phi");
599  vTrackProfiles_[chiphiindex]->Fill(track->phi(), track->chi2());
600  static const int normchiphiindex = this->index(vTrackProfiles_, "p_normchi2_vs_phi");
601  vTrackProfiles_[normchiphiindex]->Fill(track->phi(), normchi2);
602  static const int chietaindex = this->index(vTrackProfiles_, "p_chi2_vs_eta");
603  vTrackProfiles_[chietaindex]->Fill(track->eta(), track->chi2());
604  static const int normchiptindex = this->index(vTrackProfiles_, "p_normchi2_vs_pt");
605  vTrackProfiles_[normchiptindex]->Fill(track->pt(), normchi2);
606  static const int normchipindex = this->index(vTrackProfiles_, "p_normchi2_vs_p");
607  vTrackProfiles_[normchipindex]->Fill(track->p(), normchi2);
608  static const int chiProbetaindex = this->index(vTrackProfiles_, "p_chi2Prob_vs_eta");
609  vTrackProfiles_[chiProbetaindex]->Fill(track->eta(), chi2Prob);
610  static const int normchietaindex = this->index(vTrackProfiles_, "p_normchi2_vs_eta");
611  vTrackProfiles_[normchietaindex]->Fill(track->eta(), normchi2);
612  static const int kappaphiindex = this->index(vTrackProfiles_, "p_kappa_vs_phi");
613  vTrackProfiles_[kappaphiindex]->Fill(track->phi(), kappa);
614  static const int kappaetaindex = this->index(vTrackProfiles_, "p_kappa_vs_eta");
615  vTrackProfiles_[kappaetaindex]->Fill(track->eta(), kappa);
616  static const int ptResphiindex = this->index(vTrackProfiles_, "p_ptResolution_vs_phi");
617  vTrackProfiles_[ptResphiindex]->Fill(track->phi(), track->ptError() / track->pt());
618  static const int ptResetaindex = this->index(vTrackProfiles_, "p_ptResolution_vs_eta");
619  vTrackProfiles_[ptResetaindex]->Fill(track->eta(), track->ptError() / track->pt());
620 
621  // Fill 2D track histos
622  static const int etaphiindex_2d = this->index(vTrack2DHistos_, "h2_phi_vs_eta");
623  vTrack2DHistos_[etaphiindex_2d]->Fill(track->eta(), track->phi());
624  static const int d0phiindex_2d = this->index(vTrack2DHistos_, "h2_d0_vs_phi");
625  vTrack2DHistos_[d0phiindex_2d]->Fill(track->phi(), track->d0());
626  static const int dzphiindex_2d = this->index(vTrack2DHistos_, "h2_dz_vs_phi");
627  vTrack2DHistos_[dzphiindex_2d]->Fill(track->phi(), track->dz());
628  static const int d0etaindex_2d = this->index(vTrack2DHistos_, "h2_d0_vs_eta");
629  vTrack2DHistos_[d0etaindex_2d]->Fill(track->eta(), track->d0());
630  static const int dzetaindex_2d = this->index(vTrack2DHistos_, "h2_dz_vs_eta");
631  vTrack2DHistos_[dzetaindex_2d]->Fill(track->eta(), track->dz());
632  static const int chiphiindex_2d = this->index(vTrack2DHistos_, "h2_chi2_vs_phi");
633  vTrack2DHistos_[chiphiindex_2d]->Fill(track->phi(), track->chi2());
634  static const int chiProbphiindex_2d = this->index(vTrack2DHistos_, "h2_chi2Prob_vs_phi");
635  vTrack2DHistos_[chiProbphiindex_2d]->Fill(track->phi(), chi2Prob);
636  static const int chiProbabsd0index_2d = this->index(vTrack2DHistos_, "h2_chi2Prob_vs_d0");
637  vTrack2DHistos_[chiProbabsd0index_2d]->Fill(fabs(track->d0()), chi2Prob);
638  static const int normchiphiindex_2d = this->index(vTrack2DHistos_, "h2_normchi2_vs_phi");
639  vTrack2DHistos_[normchiphiindex_2d]->Fill(track->phi(), normchi2);
640  static const int chietaindex_2d = this->index(vTrack2DHistos_, "h2_chi2_vs_eta");
641  vTrack2DHistos_[chietaindex_2d]->Fill(track->eta(), track->chi2());
642  static const int chiProbetaindex_2d = this->index(vTrack2DHistos_, "h2_chi2Prob_vs_eta");
643  vTrack2DHistos_[chiProbetaindex_2d]->Fill(track->eta(), chi2Prob);
644  static const int normchietaindex_2d = this->index(vTrack2DHistos_, "h2_normchi2_vs_eta");
645  vTrack2DHistos_[normchietaindex_2d]->Fill(track->eta(), normchi2);
646  static const int kappaphiindex_2d = this->index(vTrack2DHistos_, "h2_kappa_vs_phi");
647  vTrack2DHistos_[kappaphiindex_2d]->Fill(track->phi(), kappa);
648  static const int kappaetaindex_2d = this->index(vTrack2DHistos_, "h2_kappa_vs_eta");
649  vTrack2DHistos_[kappaetaindex_2d]->Fill(track->eta(), kappa);
650  static const int normchi2kappa_2d = this->index(vTrack2DHistos_, "h2_normchi2_vs_kappa");
651  vTrack2DHistos_[normchi2kappa_2d]->Fill(normchi2, kappa);
652 
653  //dxy with respect to the beamspot
655  edm::Handle<reco::BeamSpot> beamSpotHandle = event.getHandle(beamspotToken_);
656  if (beamSpotHandle.isValid()) {
657  beamSpot = *beamSpotHandle;
658 
659  double BSx0 = beamSpot.x0();
660  double BSy0 = beamSpot.y0();
661  double BSz0 = beamSpot.z0();
662  double Beamsigmaz = beamSpot.sigmaZ();
663  double Beamdxdz = beamSpot.dxdz();
664  double Beamdydz = beamSpot.dydz();
665  double BeamWidthX = beamSpot.BeamWidthX();
666  double BeamWidthY = beamSpot.BeamWidthY();
667 
668  math::XYZPoint point(BSx0, BSy0, BSz0);
669  double dxy = track->dxy(point);
670  double dz = track->dz(point);
671  hdxyBS->Fill(dxy);
672  hd0BS->Fill(-dxy);
673  hdzBS->Fill(dz);
674 
675  h_BSx0->Fill(BSx0);
676  h_BSy0->Fill(BSy0);
677  h_BSz0->Fill(BSz0);
678  h_Beamsigmaz->Fill(Beamsigmaz);
679  h_BeamWidthX->Fill(BeamWidthX);
680  h_BeamWidthY->Fill(BeamWidthY);
681  h_BSdxdz->Fill(Beamdxdz);
682  h_BSdydz->Fill(Beamdydz);
683  }
684 
685  //dxy with respect to the primary vertex
686  reco::Vertex pvtx;
687  edm::Handle<reco::VertexCollection> vertexHandle = event.getHandle(vertexToken_);
688  double mindxy = 100.;
689  double dz = 100;
690  if (vertexHandle.isValid() && !isCosmics_) {
691  for (auto pvtx = vertexHandle->cbegin(); pvtx != vertexHandle->cend(); ++pvtx) {
692  math::XYZPoint mypoint(pvtx->x(), pvtx->y(), pvtx->z());
693  if (abs(mindxy) > abs(track->dxy(mypoint))) {
694  mindxy = track->dxy(mypoint);
695  dz = track->dz(mypoint);
696  }
697  }
698 
699  hdxyPV->Fill(mindxy);
700  hd0PV->Fill(-mindxy);
701  hdzPV->Fill(dz);
702 
703  hd0PVvsphi->Fill(track->phi(), -mindxy);
704  hd0PVvseta->Fill(track->eta(), -mindxy);
705  hd0PVvspt->Fill(track->pt(), -mindxy);
706 
707  } else {
708  hdxyPV->Fill(100);
709  hd0PV->Fill(100);
710  hdzPV->Fill(100);
711 
712  hd0vsphi->Fill(track->phi(), -track->dxy());
713  hd0vseta->Fill(track->eta(), -track->dxy());
714  hd0vspt->Fill(track->pt(), -track->dxy());
715  }
716 
717  if (DEBUG) {
718  edm::LogInfo("GeneralPurposeTrackAnalyzer") << "end of track loop" << std::endl;
719  }
720  }
721 
722  hNtrk->Fill(tC.size());
723  hNtrkZoom->Fill(tC.size());
724  hNhighPurity->Fill(nHighPurityTracks);
725 
726  if (DEBUG) {
727  edm::LogInfo("GeneralPurposeTrackAnalyzer") << "end of analysis" << std::endl;
728  }
729  }
double z() const
z coordinate
Definition: Vertex.h:133
edm::EDGetTokenT< edm::TriggerResults > hltresultsToken_
edm::EDGetTokenT< reco::TrackCollection > theTrackCollectionToken_
T z() const
Definition: PV3DBase.h:61
Strings const & triggerNames() const
Definition: TriggerNames.cc:48
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
std::unique_ptr< TrackerMap > tmap
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
Definition: MagneticField.h:36
std::unique_ptr< TrackerMap > pmap
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:31
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
edm::ESHandle< MagneticField > magneticField_
std::map< std::string, std::pair< int, int > > triggerMap_
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
int roc(const DetId &, const std::pair< int, int > &)
std::map< int, std::pair< int, int > > runInfoMap_
double x() const
x coordinate
Definition: Vertex.h:129
trackCollection
Definition: JetHT_cfg.py:51
const TrackerGeomDet * idToDet(DetId) const override
double y() const
y coordinate
Definition: Vertex.h:131
edm::EDGetTokenT< reco::BeamSpot > beamspotToken_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::string const & triggerName(unsigned int index) const
Definition: TriggerNames.cc:50
bool isValid() const
Definition: HandleBase.h:70
std::unique_ptr< Phase1PixelROCMaps > pixelrocsmap_
col
Definition: cuy.py:1009
std::unique_ptr< Phase1PixelMaps > pixelmap
bool isHit2D(const TrackingRecHit &hit)
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
Definition: event.py:1
Geom::Theta< T > theta() const
Definition: PV3DBase.h:72
Our base class.
Definition: SiPixelRecHit.h:23
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
int index(const std::vector< OBJECT_TYPE *> &vec, const TString &name)

◆ beginJob()

void GeneralPurposeTrackAnalyzer::beginJob ( )
inlineoverrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 791 of file GeneralPurposeTrackAnalyzer.cc.

References reco::TrackBase::algoNames, reco::TrackBase::algoSize, DEBUG, etaMax_, h_Beamsigmaz, h_BeamWidthX, h_BeamWidthY, h_BSdxdz, h_BSdydz, h_BSx0, h_BSy0, h_BSz0, hCharge, hchi2ndof, hchi2ndofhp, hchi2Probhp, hd0, hd0BS, hd0PV, hd0PVvseta, hd0PVvsphi, hd0PVvspt, hd0vseta, hd0vsphi, hd0vspt, hdxy, hdxyBS, hdxyPV, hdz, hdzBS, hdzPV, hEta, hEtahp, hHit, hHit2D, hHitComposition, hHitCountVsPhiBPix, hHitCountVsPhiFPix, hHitCountVsThetaBPix, hHitCountVsThetaFPix, hHitCountVsXBPix, hHitCountVsXFPix, hHitCountVsYBPix, hHitCountVsYFPix, hHitCountVsZBPix, hHitCountVsZFPix, hHithp, hlumi, hNhighPurity, hnhpxb, hnhpxe, hnhTEC, hnhTIB, hnhTID, hnhTOB, hNtrk, hNtrkZoom, hP, hPhi, hPhiBarrel, hPhiEndcapMinus, hPhiEndcapPlus, hPhihp, hPhiOverlapMinus, hPhiOverlapPlus, hPhp, hPt, hPthp, hQoverP, hQoverPZoom, hrun, htrkAlgo, htrkOriAlgo, htrkQuality, hvx, hvy, hvz, mps_fire::i, ievt, isCosmics_, itrks, M_PI, pNBpixHitsVsVx, pNBpixHitsVsVy, pNBpixHitsVsVz, qualities, AlCaHLTBitMon_QueryRunRegistry::string, vTrack2DHistos_, vTrackHistos_, vTrackProfiles_, and multiplicitycorr_cfi::xBins.

793  {
794  if (DEBUG) {
795  edm::LogInfo("GeneralPurposeTrackAnalyzer") << __LINE__ << std::endl;
796  }
797 
798  TH1D::SetDefaultSumw2(kTRUE);
799  etaMax_ = 3.0;
800 
801  ievt = 0;
802  itrks = 0;
803 
804  hrun = book<TH1D>("h_run", "run", 100000, 230000, 240000);
805  hlumi = book<TH1D>("h_lumi", "lumi", 1000, 0, 1000);
806 
807  hchi2ndof = book<TH1D>("h_chi2ndof", "chi2/ndf;#chi^{2}/ndf;tracks", 100, 0, 5.);
808  hCharge = book<TH1D>("h_charge", "charge;Charge of the track;tracks", 5, -2.5, 2.5);
809  hNtrk = book<TH1D>("h_Ntrk", "ntracks;Number of Tracks;events", 200, 0., 200.);
810  hNtrkZoom = book<TH1D>("h_NtrkZoom", "Number of tracks; number of tracks;events", 10, 0., 10.);
811  hNhighPurity =
812  book<TH1D>("h_NhighPurity", "n. high purity tracks;Number of high purity tracks;events", 200, 0., 200.);
813 
814  htrkAlgo = book<TH1I>("h_trkAlgo",
815  "tracking step;iterative tracking step;tracks",
817  0.,
818  double(reco::TrackBase::algoSize));
819 
820  htrkOriAlgo = book<TH1I>("h_trkOriAlgo",
821  "original tracking step;original iterative tracking step;tracks",
823  0.,
824  double(reco::TrackBase::algoSize));
825 
826  for (size_t ibin = 0; ibin < reco::TrackBase::algoSize - 1; ibin++) {
827  htrkAlgo->GetXaxis()->SetBinLabel(ibin + 1, (reco::TrackBase::algoNames[ibin]).c_str());
828  htrkOriAlgo->GetXaxis()->SetBinLabel(ibin + 1, (reco::TrackBase::algoNames[ibin]).c_str());
829  }
830 
831  htrkQuality = book<TH1I>("h_trkQuality", "track quality;track quality;tracks", 6, -1, 5);
832  std::string qualities[7] = {"undef", "loose", "tight", "highPurity", "confirmed", "goodIterative"};
833  for (int nbin = 1; nbin <= htrkQuality->GetNbinsX(); nbin++) {
834  htrkQuality->GetXaxis()->SetBinLabel(nbin, (qualities[nbin - 1]).c_str());
835  }
836 
837  hP = book<TH1D>("h_P", "Momentum;track momentum [GeV];tracks", 100, 0., 100.);
838  hQoverP = book<TH1D>("h_qoverp", "Track q/p; track q/p [GeV^{-1}];tracks", 100, -1., 1.);
839  hQoverPZoom = book<TH1D>("h_qoverpZoom", "Track q/p; track q/p [GeV^{-1}];tracks", 100, -0.1, 0.1);
840  hPt = book<TH1D>("h_Pt", "Transverse Momentum;track p_{T} [GeV];tracks", 100, 0., 100.);
841  hHit = book<TH1D>("h_nHits", "Number of hits;track n. hits;tracks", 50, -0.5, 49.5);
842  hHit2D = book<TH1D>("h_nHit2D", "Number of 2D hits; number of 2D hits;tracks", 20, 0, 20);
843 
844  hHitCountVsZBPix = book<TH1D>("h_HitCountVsZBpix", "Number of BPix hits vs z;hit global z;hits", 60, -30, 30);
845  hHitCountVsZFPix = book<TH1D>("h_HitCountVsZFpix", "Number of FPix hits vs z;hit global z;hits", 100, -100, 100);
846 
847  hHitCountVsXBPix = book<TH1D>("h_HitCountVsXBpix", "Number of BPix hits vs x;hit global x;hits", 20, -20, 20);
848  hHitCountVsXFPix = book<TH1D>("h_HitCountVsXFpix", "Number of FPix hits vs x;hit global x;hits", 20, -20, 20);
849 
850  hHitCountVsYBPix = book<TH1D>("h_HitCountVsYBpix", "Number of BPix hits vs y;hit global y;hits", 20, -20, 20);
851  hHitCountVsYFPix = book<TH1D>("h_HitCountVsYFpix", "Number of FPix hits vs y;hit global y;hits", 20, -20, 20);
852 
854  book<TH1D>("h_HitCountVsThetaBpix", "Number of BPix hits vs #theta;hit global #theta;hits", 20, 0., M_PI);
856  book<TH1D>("h_HitCountVsPhiBpix", "Number of BPix hits vs #phi;hit global #phi;hits", 20, -M_PI, M_PI);
857 
859  book<TH1D>("h_HitCountVsThetaFpix", "Number of FPix hits vs #theta;hit global #theta;hits", 40, 0., M_PI);
861  book<TH1D>("h_HitCountVsPhiFpix", "Number of FPix hits vs #phi;hit global #phi;hits", 20, -M_PI, M_PI);
862 
863  hEta = book<TH1D>("h_Eta", "Track pseudorapidity; track #eta;tracks", 100, -etaMax_, etaMax_);
864  hPhi = book<TH1D>("h_Phi", "Track azimuth; track #phi;tracks", 100, -M_PI, M_PI);
865 
866  hPhiBarrel = book<TH1D>("h_PhiBarrel", "hPhiBarrel (0<|#eta|<0.8);track #Phi;tracks", 100, -M_PI, M_PI);
868  book<TH1D>("h_PhiOverlapPlus", "hPhiOverlapPlus (0.8<#eta<1.4);track #phi;tracks", 100, -M_PI, M_PI);
870  book<TH1D>("h_PhiOverlapMinus", "hPhiOverlapMinus (-1.4<#eta<-0.8);track #phi;tracks", 100, -M_PI, M_PI);
871  hPhiEndcapPlus = book<TH1D>("h_PhiEndcapPlus", "hPhiEndcapPlus (#eta>1.4);track #phi;track", 100, -M_PI, M_PI);
872  hPhiEndcapMinus = book<TH1D>("h_PhiEndcapMinus", "hPhiEndcapMinus (#eta<1.4);track #phi;tracks", 100, -M_PI, M_PI);
873 
874  h_BSx0 = book<TH1F>("h_BSx0", "x-coordinate of reco beamspot;x^{BS}_{0};n_{events}", 100, -0.1, 0.1);
875  h_BSy0 = book<TH1F>("h_BSy0", "y-coordinate of reco beamspot;y^{BS}_{0};n_{events}", 100, -0.1, 0.1);
876  h_BSz0 = book<TH1F>("h_BSz0", "z-coordinate of reco beamspot;z^{BS}_{0};n_{events}", 100, -1., 1.);
877  h_Beamsigmaz = book<TH1F>("h_Beamsigmaz", "z-coordinate beam width;#sigma_{Z}^{beam};n_{events}", 100, 0., 1.);
878  h_BeamWidthX = book<TH1F>("h_BeamWidthX", "x-coordinate beam width;#sigma_{X}^{beam};n_{events}", 100, 0., 0.01);
879  h_BeamWidthY = book<TH1F>("h_BeamWidthY", "y-coordinate beam width;#sigma_{Y}^{beam};n_{events}", 100, 0., 0.01);
880  h_BSdxdz = book<TH1F>("h_BSdxdz", "BeamSpot dxdz;beamspot dx/dz;n_{events}", 100, -0.0003, 0.0003);
881  h_BSdydz = book<TH1F>("h_BSdydz", "BeamSpot dydz;beamspot dy/dz;n_{events}", 100, -0.0003, 0.0003);
882 
883  if (!isCosmics_) {
884  hPhp = book<TH1D>("h_P_hp", "Momentum (high purity);track momentum [GeV];tracks", 100, 0., 100.);
885  hPthp = book<TH1D>("h_Pt_hp", "Transverse Momentum (high purity);track p_{T} [GeV];tracks", 100, 0., 100.);
886  hHithp = book<TH1D>("h_nHit_hp", "Number of hits (high purity);track n. hits;tracks", 30, 0, 30);
887  hEtahp = book<TH1D>("h_Eta_hp", "Track pseudorapidity (high purity); track #eta;tracks", 100, -etaMax_, etaMax_);
888  hPhihp = book<TH1D>("h_Phi_hp", "Track azimuth (high purity); track #phi;tracks", 100, -M_PI, M_PI);
889  hchi2ndofhp = book<TH1D>("h_chi2ndof_hp", "chi2/ndf (high purity);#chi^{2}/ndf;tracks", 100, 0, 5.);
890  hchi2Probhp = book<TH1D>(
891  "h_chi2_Prob_hp", "#chi^{2} probability (high purity);#chi^{2}prob_{Track};Number of Tracks", 100, 0.0, 1.);
892 
893  hvx = book<TH1D>("h_vx", "Track v_{x} ; track v_{x} [cm];tracks", 100, -1.5, 1.5);
894  hvy = book<TH1D>("h_vy", "Track v_{y} ; track v_{y} [cm];tracks", 100, -1.5, 1.5);
895  hvz = book<TH1D>("h_vz", "Track v_{z} ; track v_{z} [cm];tracks", 100, -20., 20.);
896  hd0 = book<TH1D>("h_d0", "Track d_{0} ; track d_{0} [cm];tracks", 100, -1., 1.);
897  hdxy = book<TH1D>("h_dxy", "Track d_{xy}; track d_{xy} [cm]; tracks", 100, -0.5, 0.5);
898  hdz = book<TH1D>("h_dz", "Track d_{z} ; track d_{z} [cm]; tracks", 100, -20, 20);
899 
900  hd0PVvsphi =
901  book<TH2D>("h2_d0PVvsphi", "hd0PVvsphi;track #phi;track d_{0}(PV) [cm]", 160, -M_PI, M_PI, 100, -1., 1.);
902  hd0PVvseta =
903  book<TH2D>("h2_d0PVvseta", "hdPV0vseta;track #eta;track d_{0}(PV) [cm]", 160, -2.5, 2.5, 100, -1., 1.);
904  hd0PVvspt = book<TH2D>("h2_d0PVvspt", "hdPV0vspt;track p_{T};d_{0}(PV) [cm]", 50, 0., 100., 100, -1, 1.);
905 
906  hdxyBS = book<TH1D>("h_dxyBS", "hdxyBS; track d_{xy}(BS) [cm];tracks", 100, -0.1, 0.1);
907  hd0BS = book<TH1D>("h_d0BS", "hd0BS ; track d_{0}(BS) [cm];tracks", 100, -0.1, 0.1);
908  hdzBS = book<TH1D>("h_dzBS", "hdzBS ; track d_{z}(BS) [cm];tracks", 100, -12, 12);
909  hdxyPV = book<TH1D>("h_dxyPV", "hdxyPV; track d_{xy}(PV) [cm];tracks", 100, -0.1, 0.1);
910  hd0PV = book<TH1D>("h_d0PV", "hd0PV ; track d_{0}(PV) [cm];tracks", 100, -0.15, 0.15);
911  hdzPV = book<TH1D>("h_dzPV", "hdzPV ; track d_{z}(PV) [cm];tracks", 100, -0.1, 0.1);
912 
913  hnhTIB = book<TH1D>("h_nHitTIB", "nhTIB;# hits in TIB; tracks", 20, 0., 20.);
914  hnhTID = book<TH1D>("h_nHitTID", "nhTID;# hits in TID; tracks", 20, 0., 20.);
915  hnhTOB = book<TH1D>("h_nHitTOB", "nhTOB;# hits in TOB; tracks", 20, 0., 20.);
916  hnhTEC = book<TH1D>("h_nHitTEC", "nhTEC;# hits in TEC; tracks", 20, 0., 20.);
917 
918  } else {
919  hvx = book<TH1D>("h_vx", "Track v_{x};track v_{x} [cm];tracks", 100, -100., 100.);
920  hvy = book<TH1D>("h_vy", "Track v_{y};track v_{y} [cm];tracks", 100, -100., 100.);
921  hvz = book<TH1D>("h_vz", "Track v_{z};track v_{z} [cm];track", 100, -100., 100.);
922  hd0 = book<TH1D>("h_d0", "Track d_{0};track d_{0} [cm];track", 100, -100., 100.);
923  hdxy = book<TH1D>("h_dxy", "Track d_{xy};track d_{xy} [cm];tracks", 100, -100, 100);
924  hdz = book<TH1D>("h_dz", "Track d_{z};track d_{z} [cm];tracks", 100, -200, 200);
925 
926  hd0vsphi = book<TH2D>(
927  "h2_d0vsphi", "Track d_{0} vs #phi; track #phi;track d_{0} [cm]", 160, -3.20, 3.20, 100, -100., 100.);
928  hd0vseta = book<TH2D>(
929  "h2_d0vseta", "Track d_{0} vs #eta; track #eta;track d_{0} [cm]", 160, -3.20, 3.20, 100, -100., 100.);
930  hd0vspt =
931  book<TH2D>("h2_d0vspt", "Track d_{0} vs p_{T};track p_{T};track d_{0} [cm]", 50, 0., 100., 100, -100, 100);
932 
933  hdxyBS = book<TH1D>("h_dxyBS", "Track d_{xy}(BS);d_{xy}(BS) [cm];tracks", 100, -100., 100.);
934  hd0BS = book<TH1D>("h_d0BS", "Track d_{0}(BS);d_{0}(BS) [cm];tracks", 100, -100., 100.);
935  hdzBS = book<TH1D>("h_dzBS", "Track d_{z}(BS);d_{z}(BS) [cm];tracks", 100, -100., 100.);
936  hdxyPV = book<TH1D>("h_dxyPV", "Track d_{xy}(PV); d_{xy}(PV) [cm];tracks", 100, -100., 100.);
937  hd0PV = book<TH1D>("h_d0PV", "Track d_{0}(PV); d_{0}(PV) [cm];tracks", 100, -100., 100.);
938  hdzPV = book<TH1D>("h_dzPV", "Track d_{z}(PV); d_{z}(PV) [cm];tracks", 100, -100., 100.);
939 
940  hnhTIB = book<TH1D>("h_nHitTIB", "nhTIB;# hits in TIB; tracks", 30, 0., 30.);
941  hnhTID = book<TH1D>("h_nHitTID", "nhTID;# hits in TID; tracks", 30, 0., 30.);
942  hnhTOB = book<TH1D>("h_nHitTOB", "nhTOB;# hits in TOB; tracks", 30, 0., 30.);
943  hnhTEC = book<TH1D>("h_nHitTEC", "nhTEC;# hits in TEC; tracks", 30, 0., 30.);
944  }
945 
946  hnhpxb = book<TH1D>("h_nHitPXB", "nhpxb;# hits in Pixel Barrel; tracks", 10, 0., 10.);
947  hnhpxe = book<TH1D>("h_nHitPXE", "nhpxe;# hits in Pixel Endcap; tracks", 10, 0., 10.);
948 
949  hHitComposition = book<TH1D>("h_hitcomposition", "track hit composition;;# hits", 6, -0.5, 5.5);
950 
952  book<TProfile>("p_NpixHits_vs_Vx", "n. Barrel Pixel hits vs. v_{x};v_{x} (cm);n. BPix hits", 20, -20, 20);
953 
955  book<TProfile>("p_NpixHits_vs_Vy", "n. Barrel Pixel hits vs. v_{y};v_{y} (cm);n. BPix hits", 20, -20, 20);
956 
958  book<TProfile>("p_NpixHits_vs_Vz", "n. Barrel Pixel hits vs. v_{z};v_{z} (cm);n. BPix hits", 20, -100, 100);
959 
960  std::string dets[6] = {"PXB", "PXF", "TIB", "TID", "TOB", "TEC"};
961 
962  for (int i = 1; i <= hHitComposition->GetNbinsX(); i++) {
963  hHitComposition->GetXaxis()->SetBinLabel(i, (dets[i - 1]).c_str());
964  }
965 
966  // vector of track histograms
967 
968  // clang-format off
969 
970  vTrackHistos_.push_back(book<TH1F>("h_tracketa", "Track #eta;#eta_{Track};Number of Tracks", 90, -etaMax_, etaMax_));
971  vTrackHistos_.push_back(book<TH1F>("h_trackphi", "Track #phi;#phi_{Track};Number of Tracks", 90, -M_PI, M_PI));
972  vTrackHistos_.push_back(book<TH1F>("h_trackNumberOfValidHits", "Track # of valid hits;# of valid hits _{Track};Number of Tracks", 40, 0., 40.));
973  vTrackHistos_.push_back(book<TH1F>("h_trackNumberOfLostHits", "Track # of lost hits;# of lost hits _{Track};Number of Tracks", 10, 0., 10.));
974  vTrackHistos_.push_back(book<TH1F>("h_curvature", "Curvature #kappa;#kappa_{Track};Number of Tracks", 100, -.05, .05));
975  vTrackHistos_.push_back(book<TH1F>("h_curvature_pos", "Curvature |#kappa| Positive Tracks;|#kappa_{pos Track}|;Number of Tracks", 100, .0, .05));
976  vTrackHistos_.push_back(book<TH1F>("h_curvature_neg", "Curvature |#kappa| Negative Tracks;|#kappa_{neg Track}|;Number of Tracks", 100, .0, .05));
977  vTrackHistos_.push_back(book<TH1F>("h_diff_curvature","Curvature |#kappa| Tracks Difference;|#kappa_{Track}|;# Pos Tracks - # Neg Tracks",100, .0, .05));
978  vTrackHistos_.push_back(book<TH1F>("h_chi2", "Track #chi^{2};#chi^{2}_{Track};Number of Tracks", 500, -0.01, 500.));
979  vTrackHistos_.push_back(book<TH1F>("h_chi2Prob", "#chi^{2} probability;Track Prob(#chi^{2},ndof);Number of Tracks", 100, 0.0, 1.));
980  vTrackHistos_.push_back(book<TH1F>("h_normchi2", "#chi^{2}/ndof;#chi^{2}/ndof;Number of Tracks", 100, -0.01, 10.));
981  //variable binning for chi2/ndof vs. pT
982  double xBins[19] = {0., 0.15, 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 7., 10., 15., 25., 40., 100., 200.};
983  vTrackHistos_.push_back(book<TH1F>("h_pt", "Track p_{T};p_{T}^{track} [GeV];Number of Tracks", 250, 0., 250));
984  vTrackHistos_.push_back(book<TH1F>("h_ptrebin", "Track p_{T};p_{T}^{track} [GeV];Number of Tracks", 18, xBins));
985  vTrackHistos_.push_back(book<TH1F>("h_ptResolution", "#delta_{p_{T}}/p_{T}^{track};#delta_{p_{T}}/p_{T}^{track};Number of Tracks", 100, 0., 0.5));
986 
987  vTrackProfiles_.push_back(book<TProfile>("p_d0_vs_phi", "Transverse Impact Parameter vs. #phi;#phi_{Track};#LT d_{0} #GT [cm]", 100, -M_PI, M_PI));
988  vTrackProfiles_.push_back(book<TProfile>("p_dz_vs_phi", "Longitudinal Impact Parameter vs. #phi;#phi_{Track};#LT d_{z} #GT [cm]", 100, -M_PI, M_PI));
989  vTrackProfiles_.push_back(book<TProfile>("p_d0_vs_eta", "Transverse Impact Parameter vs. #eta;#eta_{Track};#LT d_{0} #GT [cm]", 100, -etaMax_, etaMax_));
990  vTrackProfiles_.push_back(book<TProfile>("p_dz_vs_eta", "Longitudinal Impact Parameter vs. #eta;#eta_{Track};#LT d_{z} #GT [cm]", 100, -etaMax_, etaMax_));
991  vTrackProfiles_.push_back(book<TProfile>("p_chi2_vs_phi", "#chi^{2} vs. #phi;#phi_{Track};#LT #chi^{2} #GT", 100, -M_PI, M_PI));
992  vTrackProfiles_.push_back(book<TProfile>("p_chi2Prob_vs_phi", "#chi^{2} probablility vs. #phi;#phi_{Track};#LT #chi^{2} probability#GT", 100, -M_PI, M_PI));
993  vTrackProfiles_.push_back(book<TProfile>("p_chi2Prob_vs_d0", "#chi^{2} probablility vs. |d_{0}|;|d_{0}|[cm];#LT #chi^{2} probability#GT", 100, 0, 80));
994  vTrackProfiles_.push_back(book<TProfile>("p_chi2Prob_vs_dz", "#chi^{2} probablility vs. dz;d_{z} [cm];#LT #chi^{2} probability#GT", 100, -30, 30));
995  vTrackProfiles_.push_back(book<TProfile>("p_normchi2_vs_phi", "#chi^{2}/ndof vs. #phi;#phi_{Track};#LT #chi^{2}/ndof #GT", 100, -M_PI, M_PI));
996  vTrackProfiles_.push_back(book<TProfile>("p_chi2_vs_eta", "#chi^{2} vs. #eta;#eta_{Track};#LT #chi^{2} #GT", 100, -etaMax_, etaMax_));
997  vTrackProfiles_.push_back(book<TProfile>("p_normchi2_vs_pt", "norm #chi^{2} vs. p_{T}_{Track}; p_{T}_{Track};#LT #chi^{2}/ndof #GT", 18, xBins));
998  vTrackProfiles_.push_back(book<TProfile>("p_normchi2_vs_p", "#chi^{2}/ndof vs. p_{Track};p_{Track};#LT #chi^{2}/ndof #GT", 18, xBins));
999  vTrackProfiles_.push_back(book<TProfile>("p_chi2Prob_vs_eta","#chi^{2} probability vs. #eta;#eta_{Track};#LT #chi^{2} probability #GT",100,-etaMax_,etaMax_));
1000  vTrackProfiles_.push_back(book<TProfile>("p_normchi2_vs_eta", "#chi^{2}/ndof vs. #eta;#eta_{Track};#LT #chi^{2}/ndof #GT", 100, -etaMax_, etaMax_));
1001  vTrackProfiles_.push_back(book<TProfile>("p_kappa_vs_phi", "#kappa vs. #phi;#phi_{Track};#kappa", 100, -M_PI, M_PI));
1002  vTrackProfiles_.push_back(book<TProfile>("p_kappa_vs_eta", "#kappa vs. #eta;#eta_{Track};#kappa", 100, -etaMax_, etaMax_));
1003  vTrackProfiles_.push_back(book<TProfile>("p_ptResolution_vs_phi","#delta_{p_{T}}/p_{T}^{track};#phi^{track};#delta_{p_{T}}/p_{T}^{track}",100,-M_PI,M_PI));
1004  vTrackProfiles_.push_back(book<TProfile>("p_ptResolution_vs_eta","#delta_{p_{T}}/p_{T}^{track};#eta^{track};#delta_{p_{T}}/p_{T}^{track}",100,-etaMax_,etaMax_));
1005 
1006  vTrack2DHistos_.push_back(book<TH2F>("h2_phi_vs_eta", "Track #phi vs. #eta;#eta_{Track};#phi_{Track}",50, -etaMax_, etaMax_, 50, -M_PI, M_PI));
1007  vTrack2DHistos_.push_back(book<TH2F>("h2_d0_vs_phi", "Transverse Impact Parameter vs. #phi;#phi_{Track};d_{0} [cm]", 100, -M_PI, M_PI, 100, -1., 1.));
1008  vTrack2DHistos_.push_back(book<TH2F>("h2_dz_vs_phi", "Longitudinal Impact Parameter vs. #phi;#phi_{Track};d_{z} [cm]",100, -M_PI, M_PI, 100, -100., 100.));
1009  vTrack2DHistos_.push_back(book<TH2F>("h2_d0_vs_eta", "Transverse Impact Parameter vs. #eta;#eta_{Track};d_{0} [cm]", 100, -etaMax_, etaMax_, 100, -1., 1.));
1010  vTrack2DHistos_.push_back(book<TH2F>("h2_dz_vs_eta", "Longitudinal Impact Parameter vs. #eta;#eta_{Track};d_{z} [cm]", 100, -etaMax_, etaMax_, 100, -100., 100.));
1011  vTrack2DHistos_.push_back(book<TH2F>("h2_chi2_vs_phi", "#chi^{2} vs. #phi;#phi_{Track};#chi^{2}", 100, -M_PI, M_PI, 500, 0., 500.));
1012  vTrack2DHistos_.push_back(book<TH2F>("h2_chi2Prob_vs_phi", "#chi^{2} probability vs. #phi;#phi_{Track};#chi^{2} probability", 100, -M_PI, M_PI, 100, 0., 1.));
1013  vTrack2DHistos_.push_back(book<TH2F>("h2_chi2Prob_vs_d0", "#chi^{2} probability vs. |d_{0}|;|d_{0}| [cm];#chi^{2} probability", 100, 0, 80, 100, 0., 1.));
1014  vTrack2DHistos_.push_back(book<TH2F>("h2_normchi2_vs_phi", "#chi^{2}/ndof vs. #phi;#phi_{Track};#chi^{2}/ndof", 100, -M_PI, M_PI, 100, 0., 10.));
1015  vTrack2DHistos_.push_back(book<TH2F>("h2_chi2_vs_eta", "#chi^{2} vs. #eta;#eta_{Track};#chi^{2}", 100, -etaMax_, etaMax_, 500, 0., 500.));
1016  vTrack2DHistos_.push_back(book<TH2F>("h2_chi2Prob_vs_eta", "#chi^{2} probaility vs. #eta;#eta_{Track};#chi^{2} probability", 100, -etaMax_, etaMax_, 100, 0., 1.));
1017  vTrack2DHistos_.push_back(book<TH2F>("h2_normchi2_vs_eta", "#chi^{2}/ndof vs. #eta;#eta_{Track};#chi^{2}/ndof", 100, -etaMax_, etaMax_, 100, 0., 10.));
1018  vTrack2DHistos_.push_back(book<TH2F>("h2_kappa_vs_phi", "#kappa vs. #phi;#phi_{Track};#kappa", 100, -M_PI, M_PI, 100, .0, .05));
1019  vTrack2DHistos_.push_back(book<TH2F>("h2_kappa_vs_eta", "#kappa vs. #eta;#eta_{Track};#kappa", 100, -etaMax_, etaMax_, 100, .0, .05));
1020  vTrack2DHistos_.push_back(book<TH2F>("h2_normchi2_vs_kappa", "#kappa vs. #chi^{2}/ndof;#chi^{2}/ndof;#kappa", 100, 0., 10, 100, -.03, .03));
1021 
1022  // clang-format on
1023 
1024  } //beginJob
const char * qualities[3]
#define M_PI
Log< level::Info, false > LogInfo
static const std::string algoNames[]
Definition: TrackBase.h:147

◆ beginRun()

void GeneralPurposeTrackAnalyzer::beginRun ( edm::Run const &  run,
edm::EventSetup const &  setup 
)
inlineoverrideprivate

Definition at line 732 of file GeneralPurposeTrackAnalyzer.cc.

References conditionsMap_, coord_, DEBUG, doLatencyAnalysis_, geomTokenBR_, SiPixelCoordinates::init(), MagneticField::inTesla(), TrackerGeometry::isThere(), latencyToken_, PV3DBase< T, PVType, FrameType >::mag(), magFieldToken_, magneticField_, mode, SiPixelPI::one, GeomDetEnumerators::P1PXB, GeomDetEnumerators::P1PXEC, GeomDetEnumerators::P2PXB, GeomDetEnumerators::P2PXEC, phase_, edm::ESHandle< T >::product(), writedatasetfile::run, runInfoMap_, singleTopDQM_cfi::setup, SiStripLatency::singleReadOutMode(), siPixelFedCablingMapTokenBR_, trackerTopologyTokenBR_, SiPixelPI::two, and SiPixelPI::zero.

734  {
735  // initialize runInfoMap_
736  runInfoMap_[run.run()].first = 0;
737  runInfoMap_[run.run()].second = 0;
738 
739  // Magnetic Field setup
740  magneticField_ = setup.getHandle(magFieldToken_);
741  float B_ = magneticField_.product()->inTesla(GlobalPoint(0, 0, 0)).mag();
742 
743  if (DEBUG) {
744  edm::LogInfo("GeneralPurposeTrackAnalyzer")
745  << "run number:" << run.run() << " magnetic field: " << B_ << " [T]" << std::endl;
746  }
747 
748  const TrackerGeometry *trackerGeometry = &setup.getData(geomTokenBR_);
749  if (trackerGeometry->isThere(GeomDetEnumerators::P2PXB) || trackerGeometry->isThere(GeomDetEnumerators::P2PXEC)) {
751  } else if (trackerGeometry->isThere(GeomDetEnumerators::P1PXB) ||
752  trackerGeometry->isThere(GeomDetEnumerators::P1PXEC)) {
754  } else {
756  }
757 
758  // if it's a phase-2 geometry there are no phase-1 conditions
759  if (phase_ == SiPixelPI::phase::two) {
760  mode = 0;
761  } else {
762  if (doLatencyAnalysis_) {
763  //SiStrip Latency
764  const SiStripLatency *apvlat = &setup.getData(latencyToken_);
765  if (apvlat->singleReadOutMode() == 1) {
766  mode = 1; // peak mode
767  } else if (apvlat->singleReadOutMode() == 0) {
768  mode = -1; // deco mode
769  }
770  } else {
771  mode = 0;
772  }
773  }
774 
775  conditionsMap_[run.run()].first = mode;
776  conditionsMap_[run.run()].second = B_;
777 
778  // init the sipixel coordinates
779  const TrackerTopology *trackerTopology = &setup.getData(trackerTopologyTokenBR_);
780  const SiPixelFedCablingMap *siPixelFedCablingMap = &setup.getData(siPixelFedCablingMapTokenBR_);
781 
782  // Pixel Phase-1 helper class
783  coord_.init(trackerTopology, trackerGeometry, siPixelFedCablingMap);
784  }
std::map< int, std::pair< int, float > > conditionsMap_
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomTokenBR_
T const * product() const
Definition: ESHandle.h:86
edm::ESHandle< MagneticField > magneticField_
bool isThere(GeomDetEnumerators::SubDetector subdet) const
T mag() const
Definition: PV3DBase.h:64
void init(const TrackerTopology *, const TrackerGeometry *, const SiPixelFedCablingMap *)
std::map< int, std::pair< int, int > > runInfoMap_
Log< level::Info, false > LogInfo
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
int16_t singleReadOutMode() const
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > trackerTopologyTokenBR_
edm::ESGetToken< SiStripLatency, SiStripLatencyRcd > latencyToken_
const edm::ESGetToken< SiPixelFedCablingMap, SiPixelFedCablingMapRcd > siPixelFedCablingMapTokenBR_

◆ book()

template<typename T , typename... Args>
T* GeneralPurposeTrackAnalyzer::book ( const Args &...  args) const
inline

Definition at line 151 of file GeneralPurposeTrackAnalyzer.cc.

References writedatasetfile::args, fs, TFileService::make(), and submitPVValidationJobs::t.

151  {
152  T *t = fs->make<T>(args...);
153  return t;
154  }
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
long double T

◆ endJob()

void GeneralPurposeTrackAnalyzer::endJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 1027 of file GeneralPurposeTrackAnalyzer.cc.

References conditionsMap_, gather_cfg::cout, evtsByTrigger_, fieldByRun_, dqmdumpme::first, alignBH_cfg::fixed, mps_fire::i, ievt, itrks, modeByRun_, phase_, pixelmap, pixelrocsmap_, pmap, runInfoMap_, crab_NZS2018C_1::runRange, edm::second(), jetUpdater_cfi::sort, tksByTrigger_, tmap, to_string(), triggerMap_, SiPixelPI::two, and SiPixelPI::zero.

Referenced by o2olib.O2ORunMgr::executeJob().

1029  {
1030  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "*******************************" << std::endl;
1031  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "Events run in total: " << ievt << std::endl;
1032  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "n. tracks: " << itrks << std::endl;
1033  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "*******************************" << std::endl;
1034 
1035  int nFiringTriggers = !triggerMap_.empty() ? triggerMap_.size() : 1;
1036  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "firing triggers: " << triggerMap_.size() << std::endl;
1037  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "*******************************" << std::endl;
1038 
1039  tksByTrigger_ =
1040  book<TH1D>("tksByTrigger", "tracks by HLT path;;% of # traks", nFiringTriggers, -0.5, nFiringTriggers - 0.5);
1041  evtsByTrigger_ =
1042  book<TH1D>("evtsByTrigger", "events by HLT path;;% of # events", nFiringTriggers, -0.5, nFiringTriggers - 0.5);
1043 
1044  int i = 0;
1045  for (const auto &it : triggerMap_) {
1046  i++;
1047 
1048  double trkpercent = ((it.second).second) * 100. / double(itrks);
1049  double evtpercent = ((it.second).first) * 100. / double(ievt);
1050 
1051  std::cout.precision(4);
1052 
1053  edm::LogPrint("GeneralPurposeTrackAnalyzer")
1054  << "HLT path: " << std::setw(60) << std::left << it.first << " | events firing: " << std::right
1055  << std::setw(8) << (it.second).first << " (" << std::setw(8) << std::fixed << std::setprecision(4)
1056  << evtpercent << "%)"
1057  << " | tracks collected: " << std::setw(10) << (it.second).second << " (" << std::setw(8) << std::fixed
1058  << std::setprecision(4) << trkpercent << "%)";
1059 
1060  tksByTrigger_->SetBinContent(i, trkpercent);
1061  tksByTrigger_->GetXaxis()->SetBinLabel(i, (it.first).c_str());
1062 
1063  evtsByTrigger_->SetBinContent(i, evtpercent);
1064  evtsByTrigger_->GetXaxis()->SetBinLabel(i, (it.first).c_str());
1065  }
1066 
1067  int nRuns = conditionsMap_.size();
1068  if (nRuns < 1) {
1069  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "*******************************"
1070  << "\n"
1071  << " no run was processed! "
1072  << "\n"
1073  << "*******************************";
1074 
1075  return;
1076  }
1077 
1078  std::vector<int> theRuns_;
1079  theRuns_.reserve(conditionsMap_.size());
1080  for (const auto &it : conditionsMap_) {
1081  theRuns_.push_back(it.first);
1082  }
1083 
1084  sort(theRuns_.begin(), theRuns_.end());
1085  int runRange = theRuns_.back() - theRuns_.front() + 1;
1086 
1087  edm::LogPrint("GeneralPurposeTrackAnalyzer") << "*******************************"
1088  << "\n"
1089  << "first run: " << theRuns_.front() << "\n"
1090  << "last run: " << theRuns_.back() << "\n"
1091  << "considered runs: " << nRuns << "\n"
1092  << "*******************************";
1093 
1094  modeByRun_ = book<TH1D>("modeByRun",
1095  "Strip APV mode by run number;;APV mode (-1=deco,+1=peak)",
1096  runRange,
1097  theRuns_.front() - 0.5,
1098  theRuns_.back() + 0.5);
1099 
1100  fieldByRun_ = book<TH1D>("fieldByRun",
1101  "CMS B-field intensity by run number;;B-field intensity [T]",
1102  runRange,
1103  theRuns_.front() - 0.5,
1104  theRuns_.back() + 0.5);
1105 
1106  edm::LogPrint("") << __PRETTY_FUNCTION__ << " line: " << __LINE__ << std::endl;
1107 
1108  for (const auto &the_r : theRuns_) {
1109  if (conditionsMap_.find(the_r)->second.first != 0) {
1110  edm::LogPrint("GeneralPurposeTrackAnalyzer")
1111  << "run:" << the_r << " | isPeak: " << std::setw(4) << conditionsMap_.find(the_r)->second.first
1112  << "| B-field: " << conditionsMap_.find(the_r)->second.second << " [T]"
1113  << "| events: " << std::setw(10) << runInfoMap_.find(the_r)->second.first << ", tracks " << std::setw(10)
1114  << runInfoMap_.find(the_r)->second.second << std::endl;
1115  }
1116 
1117  modeByRun_->SetBinContent((the_r - theRuns_.front()) + 1, conditionsMap_.find(the_r)->second.first);
1118  fieldByRun_->SetBinContent((the_r - theRuns_.front()) + 1, conditionsMap_.find(the_r)->second.second);
1119  modeByRun_->GetXaxis()->SetBinLabel((the_r - theRuns_.front()) + 1, std::to_string(the_r).c_str());
1120  fieldByRun_->GetXaxis()->SetBinLabel((the_r - theRuns_.front()) + 1, std::to_string(the_r).c_str());
1121  }
1122 
1123  if (phase_ < SiPixelPI::phase::two) {
1124  if (phase_ == SiPixelPI::phase::zero) {
1125  pmap->save(true, 0, 0, "PixelHitMap.pdf", 600, 800);
1126  pmap->save(true, 0, 0, "PixelHitMap.png", 500, 750);
1127  }
1128 
1129  tmap->save(true, 0, 0, "StripHitMap.pdf");
1130  tmap->save(true, 0, 0, "StripHitMap.png");
1131 
1132  gStyle->SetPalette(kRainBow);
1133  pixelmap->beautifyAllHistograms();
1134 
1135  TCanvas cB("CanvBarrel", "CanvBarrel", 1200, 1000);
1136  pixelmap->drawBarrelMaps("entriesBarrel", cB);
1137  cB.SaveAs("pixelBarrelEntries.png");
1138 
1139  TCanvas cF("CanvForward", "CanvForward", 1600, 1000);
1140  pixelmap->drawForwardMaps("entriesForward", cF);
1141  cF.SaveAs("pixelForwardEntries.png");
1142 
1143  TCanvas cRocs = TCanvas("cRocs", "cRocs", 1200, 1600);
1144  pixelrocsmap_->drawMaps(cRocs, "Pixel on-track clusters occupancy");
1145  cRocs.SaveAs("Phase1PixelROCMaps_fullROCs.png");
1146  }
1147  }
std::map< int, std::pair< int, float > > conditionsMap_
std::unique_ptr< TrackerMap > tmap
std::unique_ptr< TrackerMap > pmap
static std::string to_string(const XMLCh *ch)
U second(std::pair< T, U > const &p)
std::map< std::string, std::pair< int, int > > triggerMap_
std::map< int, std::pair< int, int > > runInfoMap_
Log< level::Warning, true > LogPrint
std::unique_ptr< Phase1PixelROCMaps > pixelrocsmap_
std::unique_ptr< Phase1PixelMaps > pixelmap

◆ endRun()

void GeneralPurposeTrackAnalyzer::endRun ( edm::Run const &  ,
edm::EventSetup const &   
)
inlineoverrideprivate

Definition at line 787 of file GeneralPurposeTrackAnalyzer.cc.

787 {}

◆ fillDescriptions()

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

Definition at line 1194 of file GeneralPurposeTrackAnalyzer.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.

1196 {
1198  desc.setComment("Generic track analyzer to check ALCARECO sample quantities");
1199  desc.add<edm::InputTag>("TkTag", edm::InputTag("generalTracks"));
1200  desc.add<edm::InputTag>("TriggerResultsTag", edm::InputTag("TriggerResults", "", "HLT"));
1201  desc.add<edm::InputTag>("BeamSpotTag", edm::InputTag("offlineBeamSpot"));
1202  desc.add<edm::InputTag>("VerticesTag", edm::InputTag("offlinePrimaryVertices"));
1203  desc.add<bool>("isCosmics", false);
1204  desc.add<bool>("doLatencyAnalysis", true);
1205  descriptions.addWithDefaultLabel(desc);
1206 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)

◆ index()

template<class OBJECT_TYPE >
int GeneralPurposeTrackAnalyzer::index ( const std::vector< OBJECT_TYPE *> &  vec,
const TString &  name 
)
inline

Definition at line 139 of file GeneralPurposeTrackAnalyzer.cc.

References Skims_PA_cff::name.

Referenced by analyze().

139  {
140  for (const auto &iter : vec | boost::adaptors::indexed(0)) {
141  if (iter.value() && iter.value()->GetName() == name) {
142  return iter.index();
143  }
144  }
145  edm::LogError("GeneralPurposeTrackAnalyzer") << "@SUB=GeneralPurposeTrackAnalyzer::index"
146  << " could not find " << name;
147  return -1;
148  }
Log< level::Error, false > LogError

◆ isHit2D()

bool GeneralPurposeTrackAnalyzer::isHit2D ( const TrackingRecHit hit)
inlineprivate

Definition at line 1150 of file GeneralPurposeTrackAnalyzer.cc.

References hcalRecHitTable_cff::detId, kBPIX, kFPIX, ProjectedSiStripRecHit2D::originalHit(), SiStripDetId::stereo(), and DetId::Tracker.

Referenced by analyze().

1152  {
1153  bool countStereoHitAs2D_ = true;
1154  // we count SiStrip stereo modules as 2D if selected via countStereoHitAs2D_
1155  // (since they provide theta information)
1156  if (!hit.isValid() ||
1157  (hit.dimension() < 2 && !countStereoHitAs2D_ && !dynamic_cast<const SiStripRecHit1D *>(&hit))) {
1158  return false; // real RecHit1D - but SiStripRecHit1D depends on countStereoHitAs2D_
1159  } else {
1160  const DetId detId(hit.geographicalId());
1161  if (detId.det() == DetId::Tracker) {
1162  if (detId.subdetId() == kBPIX || detId.subdetId() == kFPIX) {
1163  return true; // pixel is always 2D
1164  } else { // should be SiStrip now
1165  const SiStripDetId stripId(detId);
1166  if (stripId.stereo())
1167  return countStereoHitAs2D_; // stereo modules
1168  else if (dynamic_cast<const SiStripRecHit1D *>(&hit) || dynamic_cast<const SiStripRecHit2D *>(&hit))
1169  return false; // rphi modules hit
1170  //the following two are not used any more since ages...
1171  else if (dynamic_cast<const SiStripMatchedRecHit2D *>(&hit))
1172  return true; // matched is 2D
1173  else if (dynamic_cast<const ProjectedSiStripRecHit2D *>(&hit)) {
1174  const ProjectedSiStripRecHit2D *pH = static_cast<const ProjectedSiStripRecHit2D *>(&hit);
1175  return (countStereoHitAs2D_ && this->isHit2D(pH->originalHit())); // depends on original...
1176  } else {
1177  edm::LogError("UnknownType") << "@SUB=GeneralPurposeTrackAnalyzer::isHit2D"
1178  << "Tracker hit not in pixel, neither SiStripRecHit[12]D nor "
1179  << "SiStripMatchedRecHit2D nor ProjectedSiStripRecHit2D.";
1180  return false;
1181  }
1182  }
1183  } else { // not tracker??
1184  edm::LogWarning("DetectorMismatch") << "@SUB=GeneralPurposeTrackAnalyzer::isHit2D"
1185  << "Hit not in tracker with 'official' dimension >=2.";
1186  return true; // dimension() >= 2 so accept that...
1187  }
1188  }
1189  // never reached...
1190  }
Log< level::Error, false > LogError
const int kFPIX
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
Definition: DetId.h:17
SiStripRecHit2D originalHit() const
Log< level::Warning, false > LogWarning
const int kBPIX
bool isHit2D(const TrackingRecHit &hit)

Member Data Documentation

◆ BeamSpotTag_

edm::InputTag GeneralPurposeTrackAnalyzer::BeamSpotTag_
private

Definition at line 306 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by GeneralPurposeTrackAnalyzer().

◆ beamspotToken_

edm::EDGetTokenT<reco::BeamSpot> GeneralPurposeTrackAnalyzer::beamspotToken_
private

Definition at line 314 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and GeneralPurposeTrackAnalyzer().

◆ conditionsMap_

std::map<int, std::pair<int, float> > GeneralPurposeTrackAnalyzer::conditionsMap_
private

Definition at line 318 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun(), and endJob().

◆ coord_

SiPixelCoordinates GeneralPurposeTrackAnalyzer::coord_
private

Definition at line 168 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginRun().

◆ doLatencyAnalysis_

bool GeneralPurposeTrackAnalyzer::doLatencyAnalysis_
private

Definition at line 310 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun(), and GeneralPurposeTrackAnalyzer().

◆ etaMax_

float GeneralPurposeTrackAnalyzer::etaMax_
private

Definition at line 299 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginJob().

◆ evtsByTrigger_

TH1D* GeneralPurposeTrackAnalyzer::evtsByTrigger_
private

Definition at line 291 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by endJob().

◆ fieldByRun_

TH1D* GeneralPurposeTrackAnalyzer::fieldByRun_
private

Definition at line 294 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by endJob().

◆ fs

edm::Service<TFileService> GeneralPurposeTrackAnalyzer::fs
private

Definition at line 170 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by book().

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> GeneralPurposeTrackAnalyzer::geomToken_
private

Definition at line 158 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze().

◆ geomTokenBR_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> GeneralPurposeTrackAnalyzer::geomTokenBR_
private

Definition at line 162 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun().

◆ h_Beamsigmaz

TH1F* GeneralPurposeTrackAnalyzer::h_Beamsigmaz
private

Definition at line 280 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BeamWidthX

TH1F* GeneralPurposeTrackAnalyzer::h_BeamWidthX
private

Definition at line 281 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BeamWidthY

TH1F* GeneralPurposeTrackAnalyzer::h_BeamWidthY
private

Definition at line 282 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BSdxdz

TH1F* GeneralPurposeTrackAnalyzer::h_BSdxdz
private

Definition at line 283 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BSdydz

TH1F* GeneralPurposeTrackAnalyzer::h_BSdydz
private

Definition at line 284 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BSx0

TH1F* GeneralPurposeTrackAnalyzer::h_BSx0
private

Definition at line 277 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BSy0

TH1F* GeneralPurposeTrackAnalyzer::h_BSy0
private

Definition at line 278 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ h_BSz0

TH1F* GeneralPurposeTrackAnalyzer::h_BSz0
private

Definition at line 279 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hCharge

TH1D* GeneralPurposeTrackAnalyzer::hCharge
private

Definition at line 219 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hchi2ndof

TH1D* GeneralPurposeTrackAnalyzer::hchi2ndof
private

Definition at line 178 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hchi2ndofhp

TH1D* GeneralPurposeTrackAnalyzer::hchi2ndofhp
private

Definition at line 216 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hchi2Probhp

TH1D* GeneralPurposeTrackAnalyzer::hchi2Probhp
private

Definition at line 217 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0

TH1D* GeneralPurposeTrackAnalyzer::hd0
private

Definition at line 241 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0BS

TH1D* GeneralPurposeTrackAnalyzer::hd0BS
private

Definition at line 269 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0PV

TH1D* GeneralPurposeTrackAnalyzer::hd0PV
private

Definition at line 272 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0PVvseta

TH2D* GeneralPurposeTrackAnalyzer::hd0PVvseta
private

Definition at line 246 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0PVvsphi

TH2D* GeneralPurposeTrackAnalyzer::hd0PVvsphi
private

Definition at line 245 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0PVvspt

TH2D* GeneralPurposeTrackAnalyzer::hd0PVvspt
private

Definition at line 247 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0vseta

TH2D* GeneralPurposeTrackAnalyzer::hd0vseta
private

Definition at line 250 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0vsphi

TH2D* GeneralPurposeTrackAnalyzer::hd0vsphi
private

Definition at line 249 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hd0vspt

TH2D* GeneralPurposeTrackAnalyzer::hd0vspt
private

Definition at line 251 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hDeltaEta

TH1D* GeneralPurposeTrackAnalyzer::hDeltaEta
private

Definition at line 235 of file GeneralPurposeTrackAnalyzer.cc.

◆ hDeltaPhi

TH1D* GeneralPurposeTrackAnalyzer::hDeltaPhi
private

Definition at line 234 of file GeneralPurposeTrackAnalyzer.cc.

◆ hDeltaR

TH1D* GeneralPurposeTrackAnalyzer::hDeltaR
private

Definition at line 236 of file GeneralPurposeTrackAnalyzer.cc.

◆ hdxy

TH1D* GeneralPurposeTrackAnalyzer::hdxy
private

Definition at line 243 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hdxyBS

TH1D* GeneralPurposeTrackAnalyzer::hdxyBS
private

Definition at line 268 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hdxyPV

TH1D* GeneralPurposeTrackAnalyzer::hdxyPV
private

Definition at line 271 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hdz

TH1D* GeneralPurposeTrackAnalyzer::hdz
private

Definition at line 242 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hdzBS

TH1D* GeneralPurposeTrackAnalyzer::hdzBS
private

Definition at line 270 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hdzPV

TH1D* GeneralPurposeTrackAnalyzer::hdzPV
private

Definition at line 273 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hEta

TH1D* GeneralPurposeTrackAnalyzer::hEta
private

Definition at line 222 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hEtahp

TH1D* GeneralPurposeTrackAnalyzer::hEtahp
private

Definition at line 214 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hEtaMinus

TH1D* GeneralPurposeTrackAnalyzer::hEtaMinus
private

Definition at line 224 of file GeneralPurposeTrackAnalyzer.cc.

◆ hEtaPlus

TH1D* GeneralPurposeTrackAnalyzer::hEtaPlus
private

Definition at line 223 of file GeneralPurposeTrackAnalyzer.cc.

◆ hHit

TH1D* GeneralPurposeTrackAnalyzer::hHit
private

Definition at line 192 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHit2D

TH1D* GeneralPurposeTrackAnalyzer::hHit2D
private

Definition at line 193 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitComposition

TH1D* GeneralPurposeTrackAnalyzer::hHitComposition
private

Definition at line 260 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsPhiBPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsPhiBPix
private

Definition at line 203 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsPhiFPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsPhiFPix
private

Definition at line 206 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsThetaBPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsThetaBPix
private

Definition at line 202 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsThetaFPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsThetaFPix
private

Definition at line 205 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsXBPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsXBPix
private

Definition at line 195 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsXFPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsXFPix
private

Definition at line 196 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsYBPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsYBPix
private

Definition at line 197 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsYFPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsYFPix
private

Definition at line 198 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsZBPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsZBPix
private

Definition at line 199 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitCountVsZFPix

TH1D* GeneralPurposeTrackAnalyzer::hHitCountVsZFPix
private

Definition at line 200 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHithp

TH1D* GeneralPurposeTrackAnalyzer::hHithp
private

Definition at line 213 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hHitMinus

TH1D* GeneralPurposeTrackAnalyzer::hHitMinus
private

Definition at line 209 of file GeneralPurposeTrackAnalyzer.cc.

◆ hHitPlus

TH1D* GeneralPurposeTrackAnalyzer::hHitPlus
private

Definition at line 208 of file GeneralPurposeTrackAnalyzer.cc.

◆ hltresultsToken_

edm::EDGetTokenT<edm::TriggerResults> GeneralPurposeTrackAnalyzer::hltresultsToken_
private

Definition at line 313 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and GeneralPurposeTrackAnalyzer().

◆ hlumi

TH1D* GeneralPurposeTrackAnalyzer::hlumi
private

Definition at line 275 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hMinPt

TH1D* GeneralPurposeTrackAnalyzer::hMinPt
private

Definition at line 189 of file GeneralPurposeTrackAnalyzer.cc.

◆ hMultCand

TH1D* GeneralPurposeTrackAnalyzer::hMultCand
private

Definition at line 266 of file GeneralPurposeTrackAnalyzer.cc.

◆ hNhighPurity

TH1D* GeneralPurposeTrackAnalyzer::hNhighPurity
private

Definition at line 184 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhpxb

TH1D* GeneralPurposeTrackAnalyzer::hnhpxb
private

Definition at line 253 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhpxe

TH1D* GeneralPurposeTrackAnalyzer::hnhpxe
private

Definition at line 254 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhTEC

TH1D* GeneralPurposeTrackAnalyzer::hnhTEC
private

Definition at line 258 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhTIB

TH1D* GeneralPurposeTrackAnalyzer::hnhTIB
private

Definition at line 255 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhTID

TH1D* GeneralPurposeTrackAnalyzer::hnhTID
private

Definition at line 256 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hnhTOB

TH1D* GeneralPurposeTrackAnalyzer::hnhTOB
private

Definition at line 257 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hNtrk

TH1D* GeneralPurposeTrackAnalyzer::hNtrk
private

Definition at line 179 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hNtrkZoom

TH1D* GeneralPurposeTrackAnalyzer::hNtrkZoom
private

Definition at line 180 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hP

TH1D* GeneralPurposeTrackAnalyzer::hP
private

Definition at line 185 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhi

TH1D* GeneralPurposeTrackAnalyzer::hPhi
private

Definition at line 225 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiBarrel

TH1D* GeneralPurposeTrackAnalyzer::hPhiBarrel
private

Definition at line 226 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiEndcapMinus

TH1D* GeneralPurposeTrackAnalyzer::hPhiEndcapMinus
private

Definition at line 230 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiEndcapPlus

TH1D* GeneralPurposeTrackAnalyzer::hPhiEndcapPlus
private

Definition at line 229 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhihp

TH1D* GeneralPurposeTrackAnalyzer::hPhihp
private

Definition at line 215 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiMinus

TH1D* GeneralPurposeTrackAnalyzer::hPhiMinus
private

Definition at line 232 of file GeneralPurposeTrackAnalyzer.cc.

◆ hPhiOverlapMinus

TH1D* GeneralPurposeTrackAnalyzer::hPhiOverlapMinus
private

Definition at line 228 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiOverlapPlus

TH1D* GeneralPurposeTrackAnalyzer::hPhiOverlapPlus
private

Definition at line 227 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPhiPlus

TH1D* GeneralPurposeTrackAnalyzer::hPhiPlus
private

Definition at line 231 of file GeneralPurposeTrackAnalyzer.cc.

◆ hPhp

TH1D* GeneralPurposeTrackAnalyzer::hPhp
private

Definition at line 211 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPMinus

TH1D* GeneralPurposeTrackAnalyzer::hPMinus
private

Definition at line 187 of file GeneralPurposeTrackAnalyzer.cc.

◆ hPPlus

TH1D* GeneralPurposeTrackAnalyzer::hPPlus
private

Definition at line 186 of file GeneralPurposeTrackAnalyzer.cc.

◆ hPt

TH1D* GeneralPurposeTrackAnalyzer::hPt
private

Definition at line 188 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPthp

TH1D* GeneralPurposeTrackAnalyzer::hPthp
private

Definition at line 212 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hPtMinus

TH1D* GeneralPurposeTrackAnalyzer::hPtMinus
private

Definition at line 191 of file GeneralPurposeTrackAnalyzer.cc.

◆ hPtPlus

TH1D* GeneralPurposeTrackAnalyzer::hPtPlus
private

Definition at line 190 of file GeneralPurposeTrackAnalyzer.cc.

◆ hQoverP

TH1D* GeneralPurposeTrackAnalyzer::hQoverP
private

Definition at line 220 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hQoverPZoom

TH1D* GeneralPurposeTrackAnalyzer::hQoverPZoom
private

Definition at line 221 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hrun

TH1D* GeneralPurposeTrackAnalyzer::hrun
private

Definition at line 274 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ htrkAlgo

TH1I* GeneralPurposeTrackAnalyzer::htrkAlgo
private

Definition at line 182 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ htrkOriAlgo

TH1I* GeneralPurposeTrackAnalyzer::htrkOriAlgo
private

Definition at line 183 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ htrkQuality

TH1I* GeneralPurposeTrackAnalyzer::htrkQuality
private

Definition at line 181 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hvx

TH1D* GeneralPurposeTrackAnalyzer::hvx
private

Definition at line 238 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hvy

TH1D* GeneralPurposeTrackAnalyzer::hvy
private

Definition at line 239 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ hvz

TH1D* GeneralPurposeTrackAnalyzer::hvz
private

Definition at line 240 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ ievt

int GeneralPurposeTrackAnalyzer::ievt
private

Definition at line 296 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), beginJob(), and endJob().

◆ isCosmics_

bool GeneralPurposeTrackAnalyzer::isCosmics_
private

Definition at line 309 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), beginJob(), and GeneralPurposeTrackAnalyzer().

◆ itrks

int GeneralPurposeTrackAnalyzer::itrks
private

Definition at line 297 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), beginJob(), and endJob().

◆ latencyToken_

edm::ESGetToken<SiStripLatency, SiStripLatencyRcd> GeneralPurposeTrackAnalyzer::latencyToken_
private

Definition at line 160 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun(), and GeneralPurposeTrackAnalyzer().

◆ magFieldToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> GeneralPurposeTrackAnalyzer::magFieldToken_
private

Definition at line 159 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun().

◆ magneticField_

edm::ESHandle<MagneticField> GeneralPurposeTrackAnalyzer::magneticField_
private

Definition at line 166 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginRun().

◆ mode

int GeneralPurposeTrackAnalyzer::mode
private

Definition at line 298 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun(), and alignment.Alignment::restrictTo().

◆ modeByRun_

TH1D* GeneralPurposeTrackAnalyzer::modeByRun_
private

Definition at line 293 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by endJob().

◆ phase_

SiPixelPI::phase GeneralPurposeTrackAnalyzer::phase_
private

Definition at line 300 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), beginRun(), and endJob().

◆ pixelmap

std::unique_ptr<Phase1PixelMaps> GeneralPurposeTrackAnalyzer::pixelmap
private

Definition at line 175 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), endJob(), and GeneralPurposeTrackAnalyzer().

◆ pixelrocsmap_

std::unique_ptr<Phase1PixelROCMaps> GeneralPurposeTrackAnalyzer::pixelrocsmap_
private

Definition at line 176 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), endJob(), and GeneralPurposeTrackAnalyzer().

◆ pmap

std::unique_ptr<TrackerMap> GeneralPurposeTrackAnalyzer::pmap
private

Definition at line 173 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), endJob(), and GeneralPurposeTrackAnalyzer().

◆ pNBpixHitsVsVx

TProfile* GeneralPurposeTrackAnalyzer::pNBpixHitsVsVx
private

Definition at line 262 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ pNBpixHitsVsVy

TProfile* GeneralPurposeTrackAnalyzer::pNBpixHitsVsVy
private

Definition at line 263 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ pNBpixHitsVsVz

TProfile* GeneralPurposeTrackAnalyzer::pNBpixHitsVsVz
private

Definition at line 264 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ runInfoMap_

std::map<int, std::pair<int, int> > GeneralPurposeTrackAnalyzer::runInfoMap_
private

Definition at line 319 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), beginRun(), and endJob().

◆ siPixelFedCablingMapTokenBR_

const edm::ESGetToken<SiPixelFedCablingMap, SiPixelFedCablingMapRcd> GeneralPurposeTrackAnalyzer::siPixelFedCablingMapTokenBR_
private

Definition at line 164 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun().

◆ theTrackCollectionToken_

edm::EDGetTokenT<reco::TrackCollection> GeneralPurposeTrackAnalyzer::theTrackCollectionToken_
private

Definition at line 312 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and GeneralPurposeTrackAnalyzer().

◆ tksByTrigger_

TH1D* GeneralPurposeTrackAnalyzer::tksByTrigger_
private

Definition at line 290 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by endJob().

◆ TkTag_

edm::InputTag GeneralPurposeTrackAnalyzer::TkTag_
private

Definition at line 304 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by GeneralPurposeTrackAnalyzer().

◆ tmap

std::unique_ptr<TrackerMap> GeneralPurposeTrackAnalyzer::tmap
private

Definition at line 172 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), endJob(), and GeneralPurposeTrackAnalyzer().

◆ trackerGeometry_

const TrackerGeometry* GeneralPurposeTrackAnalyzer::trackerGeometry_
private

Definition at line 302 of file GeneralPurposeTrackAnalyzer.cc.

◆ trackerTopologyTokenBR_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> GeneralPurposeTrackAnalyzer::trackerTopologyTokenBR_
private

Definition at line 163 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by beginRun().

◆ triggerMap_

std::map<std::string, std::pair<int, int> > GeneralPurposeTrackAnalyzer::triggerMap_
private

Definition at line 317 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and endJob().

◆ TriggerResultsTag_

edm::InputTag GeneralPurposeTrackAnalyzer::TriggerResultsTag_
private

Definition at line 305 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by GeneralPurposeTrackAnalyzer().

◆ vertexToken_

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

Definition at line 315 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and GeneralPurposeTrackAnalyzer().

◆ VerticesTag_

edm::InputTag GeneralPurposeTrackAnalyzer::VerticesTag_
private

Definition at line 307 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by GeneralPurposeTrackAnalyzer().

◆ vTrack2DHistos_

std::vector<TH1 *> GeneralPurposeTrackAnalyzer::vTrack2DHistos_
private

Definition at line 288 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ vTrackHistos_

std::vector<TH1 *> GeneralPurposeTrackAnalyzer::vTrackHistos_
private

Definition at line 286 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().

◆ vTrackProfiles_

std::vector<TH1 *> GeneralPurposeTrackAnalyzer::vTrackProfiles_
private

Definition at line 287 of file GeneralPurposeTrackAnalyzer.cc.

Referenced by analyze(), and beginJob().