CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
PixelClusterShapeExtractor Class Referencefinal
Inheritance diagram for PixelClusterShapeExtractor:
edm::global::EDAnalyzer<> edm::global::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (edm::StreamID, const edm::Event &evt, const edm::EventSetup &) const override
 
void endJob () override
 
 PixelClusterShapeExtractor (const edm::ParameterSet &pset)
 
- Public Member Functions inherited from edm::global::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () 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 &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

using Lock = std::unique_lock< std::mutex >
 

Private Member Functions

void analyzeRecTracks (const edm::Event &ev, const edm::EventSetup &es) const
 
void analyzeSimHits (const edm::Event &ev, const edm::EventSetup &es) const
 
bool checkSimHits (const TrackingRecHit &recHit, TrackerHitAssociator const &theAssociator, PSimHit &simHit, pair< unsigned int, float > &key, unsigned int &ss) const
 
void init ()
 
bool isSuitable (const PSimHit &simHit, const GeomDetUnit &gdu) const
 
void processPixelRecHits (SiPixelRecHitCollection::DataContainer const &recHits, TrackerHitAssociator const &theAssociator, ClusterShapeHitFilter const &theFilter, SiPixelClusterShapeCache const &clusterShapeCache, const TrackerTopology &tkTpl) const
 
void processRec (const SiPixelRecHit &recHit, ClusterShapeHitFilter const &theFilter, LocalVector ldir, const SiPixelClusterShapeCache &clusterShapeCache, const vector< TH2F * > &histo) const
 
void processSim (const SiPixelRecHit &recHit, ClusterShapeHitFilter const &theClusterFilter, const PSimHit &simHit, const SiPixelClusterShapeCache &clusterShapeCache, const vector< TH2F * > &histo) const
 

Private Attributes

const edm::EDGetTokenT< SiPixelClusterShapeCacheclusterShapeCache_token
 
const edm::ESGetToken< ClusterShapeHitFilter, CkfComponentsRecordcsfToken_
 
TFile * file
 
const bool hasRecTracks
 
const bool hasSimHits
 
std::vector< TH2F * > hrpc
 
std::vector< TH2F * > hspc
 
const bool noBPIX1
 
const edm::EDGetTokenT< edmNew::DetSetVector< SiPixelRecHit > > pixelRecHits_token
 
std::unique_ptr< std::mutex[]> theMutex
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoToken_
 Tokens for ESconsumes. More...
 
const TrackerHitAssociator::Config trackerHitAssociatorConfig_
 
const edm::EDGetTokenT< reco::TrackCollectiontracks_token
 

Additional Inherited Members

- Public Types inherited from edm::global::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 54 of file PixelClusterShapeExtractor.cc.

Member Typedef Documentation

◆ Lock

using PixelClusterShapeExtractor::Lock = std::unique_lock<std::mutex>
private

Definition at line 109 of file PixelClusterShapeExtractor.cc.

Constructor & Destructor Documentation

◆ PixelClusterShapeExtractor()

PixelClusterShapeExtractor::PixelClusterShapeExtractor ( const edm::ParameterSet pset)
explicit

Definition at line 149 of file PixelClusterShapeExtractor.cc.

150  : topoToken_(esConsumes()),
151  csfToken_(esConsumes(edm::ESInputTag("", "ClusterShapeHitFilter"))),
152  hasSimHits(pset.getParameter<bool>("hasSimHits")),
153  hasRecTracks(pset.getParameter<bool>("hasRecTracks")),
154  noBPIX1(pset.getParameter<bool>("noBPIX1")),
155  tracks_token(hasRecTracks ? consumes<reco::TrackCollection>(pset.getParameter<edm::InputTag>("tracks"))
159  consumes<SiPixelClusterShapeCache>(pset.getParameter<edm::InputTag>("clusterShapeCacheSrc"))),
161  file = new TFile("clusterShape.root", "RECREATE");
162  file->cd();
163  init();
164 }

References file, and init().

Member Function Documentation

◆ analyze()

void PixelClusterShapeExtractor::analyze ( edm::StreamID  ,
const edm::Event evt,
const edm::EventSetup es 
) const
overridevirtual

Implements edm::global::EDAnalyzerBase.

Definition at line 378 of file PixelClusterShapeExtractor.cc.

378  {
379  if (hasSimHits) {
380  LogTrace("MinBiasTracking") << " [ClusterShape] analyze simHits, recHits";
381  analyzeSimHits(ev, es);
382  }
383 
384  if (hasRecTracks) {
385  LogTrace("MinBiasTracking") << " [ClusterShape] analyze recHits on recTracks";
386  analyzeRecTracks(ev, es);
387  }
388 }

References analyzeRecTracks(), analyzeSimHits(), ev, hasRecTracks, hasSimHits, and LogTrace.

◆ analyzeRecTracks()

void PixelClusterShapeExtractor::analyzeRecTracks ( const edm::Event ev,
const edm::EventSetup es 
) const
private

Definition at line 332 of file PixelClusterShapeExtractor.cc.

332  {
333  auto const& theClusterShape = es.getData(csfToken_);
334  auto const& tkTpl = es.getData(topoToken_);
335 
336  // Get tracks
338  ev.getByToken(tracks_token, tracks);
339 
342 
343  for (auto const& track : *tracks) {
344  if (!track.quality(reco::Track::highPurity))
345  continue;
346  if (track.numberOfValidHits() < 8)
347  continue;
348  auto const& trajParams = track.extra()->trajParams();
349  assert(trajParams.size() == track.recHitsSize());
350  auto hb = track.recHitsBegin();
351  for (unsigned int h = 0; h < track.recHitsSize(); h++) {
352  auto recHit = *(hb + h);
353  if (!recHit->isValid())
354  continue;
355  auto id = recHit->geographicalId();
356  if (noBPIX1 && tkTpl.pxbLayer(id) == 1)
357  continue;
358 
359  // check that we are in the pixel
360  auto subdetid = (id.subdetId());
361  bool isPixel = subdetid == PixelSubdetector::PixelBarrel || subdetid == PixelSubdetector::PixelEndcap;
362 
363  auto const& ltp = trajParams[h];
364  auto ldir = ltp.momentum() / ltp.momentum().mag();
365 
366  if (isPixel) {
367  // Pixel
368  const SiPixelRecHit* pixelRecHit = dynamic_cast<const SiPixelRecHit*>(recHit);
369 
370  if (pixelRecHit != nullptr)
371  processRec(*pixelRecHit, theClusterShape, ldir, *clusterShapeCache, hrpc);
372  }
373  }
374  }
375 }

References cms::cuda::assert(), SiPixelPhase1OnlineDQM_cff::clusterShapeCache, clusterShapeCache_token, csfToken_, ev, edm::EventSetup::getData(), h, hcalSimParameters_cfi::hb, reco::TrackBase::highPurity, hrpc, fastTrackerRecHitType::isPixel(), noBPIX1, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, processRec(), rpcPointValidation_cfi::recHit, topoToken_, HLT_FULL_cff::track, tracks, and tracks_token.

Referenced by analyze().

◆ analyzeSimHits()

void PixelClusterShapeExtractor::analyzeSimHits ( const edm::Event ev,
const edm::EventSetup es 
) const
private

Definition at line 308 of file PixelClusterShapeExtractor.cc.

308  {
309  auto const& theClusterShape = es.getData(csfToken_);
310  auto const& tkTpl = es.getData(topoToken_);
311 
314 
315  // Get associator
316  auto theHitAssociator = std::make_unique<TrackerHitAssociator>(ev, trackerHitAssociatorConfig_);
317 
318  // Pixel hits
319  {
321  ev.getByToken(pixelRecHits_token, coll);
322 
325 
326  auto const& recHits = coll.product()->data();
327  processPixelRecHits(recHits, *theHitAssociator, theClusterShape, *clusterShapeCache, tkTpl);
328  }
329 }

References SiPixelPhase1OnlineDQM_cff::clusterShapeCache, clusterShapeCache_token, csfToken_, edmNew::DetSetVector< T >::data(), ev, edm::EventSetup::getData(), pixelRecHits_token, processPixelRecHits(), edm::Handle< T >::product(), FastTrackerRecHitMaskProducer_cfi::recHits, topoToken_, and trackerHitAssociatorConfig_.

Referenced by analyze().

◆ checkSimHits()

bool PixelClusterShapeExtractor::checkSimHits ( const TrackingRecHit recHit,
TrackerHitAssociator const &  theAssociator,
PSimHit simHit,
pair< unsigned int, float > &  key,
unsigned int &  ss 
) const
private

Definition at line 244 of file PixelClusterShapeExtractor.cc.

248  {
249  auto const& simHits = theHitAssociator.associateHit(recHit);
250 
251  //std::cout << "simHits.size() = " << simHits.size() << std::endl;
252  for (auto const& sh : simHits) {
253  if (isSuitable(sh, *recHit.detUnit())) {
254  simHit = sh;
255  key = {simHit.trackId(), simHit.timeOfFlight()};
256  ss = simHits.size();
257  return true;
258  }
259  }
260 
261  return false;
262 }

References TrackerHitAssociator::associateHit(), isSuitable(), crabWrapper::key, rpcPointValidation_cfi::recHit, rpcPointValidation_cfi::simHit, FastTrackerRecHitCombiner_cfi::simHits, and contentValuesCheck::ss.

Referenced by processPixelRecHits().

◆ endJob()

void PixelClusterShapeExtractor::endJob ( void  )
overridevirtual

Reimplemented from edm::global::EDAnalyzerBase.

Definition at line 167 of file PixelClusterShapeExtractor.cc.

167  {
168  file->cd();
169 
170  // simulated
171  for (auto h = hspc.begin(); h != hspc.end(); h++)
172  (*h)->Write();
173 
174  // reconstructed
175  for (auto h = hrpc.begin(); h != hrpc.end(); h++)
176  (*h)->Write();
177 
178  file->Close();
179 }

References file, hrpc, and hspc.

◆ init()

void PixelClusterShapeExtractor::init ( void  )
private

Definition at line 116 of file PixelClusterShapeExtractor.cc.

116  {
117  // Declare histograms
118  char histName[256];
119 
120  // pixel
121  for (int subdet = 0; subdet <= 1; subdet++) {
122  for (int ex = 0; ex <= exMax; ex++)
123  for (int ey = 0; ey <= eyMax; ey++) {
124  sprintf(histName, "hspc_%d_%d_%d", subdet, ex, ey);
125  hspc.push_back(new TH2F(histName,
126  histName,
127  10 * 2 * (exMax + 2),
128  -(exMax + 2),
129  (exMax + 2),
130  10 * 2 * (eyMax + 2),
131  -(eyMax + 2),
132  (eyMax + 2)));
133 
134  sprintf(histName, "hrpc_%d_%d_%d", subdet, ex, ey);
135  hrpc.push_back(new TH2F(histName,
136  histName,
137  10 * 2 * (exMax + 2),
138  -(exMax + 2),
139  (exMax + 2),
140  10 * 2 * (eyMax + 2),
141  -(eyMax + 2),
142  (eyMax + 2)));
143  }
144  }
145  theMutex = std::make_unique<std::mutex[]>(hspc.size());
146 }

References exMax, and eyMax.

Referenced by PixelClusterShapeExtractor().

◆ isSuitable()

bool PixelClusterShapeExtractor::isSuitable ( const PSimHit simHit,
const GeomDetUnit gdu 
) const
private

?????

Definition at line 182 of file PixelClusterShapeExtractor.cc.

182  {
183  // Outgoing?
184  // very expensive....
185  GlobalVector gvec = gdu.position() - GlobalPoint(0, 0, 0);
186  LocalVector lvec = gdu.toLocal(gvec);
187  LocalVector ldir = simHit.exitPoint() - simHit.entryPoint();
188 
189  // cut on size as well (pixel is 285um thick...
190  bool isOutgoing = std::abs(ldir.z()) > 0.01f && (lvec.z() * ldir.z() > 0);
191 
193  const bool isRelevant = RelevantProcesses.count(simHit.processType());
194  // From a relevant process? primary or decay
195  //bool isRelevant = (simHit.processType() == 2 ||
196  // simHit.processType() == 4);
197 
198  constexpr float ptCut2 = 0.2 * 0.2; // 0.050*0.050;
199  // Fast enough? pt > 50 MeV/c FIXME (at least 200MeV....
200  bool isFast = (simHit.momentumAtEntry().perp2() > ptCut2);
201 
202  //std::cout << "isOutgoing = " << isOutgoing << ", isRelevant = " << simHit.processType() << ", isFast = " << isFast << std::endl;
203  return (isOutgoing && isRelevant && isFast);
204 }

References funct::abs(), f, trackerHitRTTI::isFast(), GeomDet::position(), rpcPointValidation_cfi::simHit, GeomDet::toLocal(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by checkSimHits().

◆ processPixelRecHits()

void PixelClusterShapeExtractor::processPixelRecHits ( SiPixelRecHitCollection::DataContainer const &  recHits,
TrackerHitAssociator const &  theAssociator,
ClusterShapeHitFilter const &  theFilter,
SiPixelClusterShapeCache const &  clusterShapeCache,
const TrackerTopology tkTpl 
) const
private

Definition at line 265 of file PixelClusterShapeExtractor.cc.

269  {
270  struct Elem {
271  const SiPixelRecHit* rhit;
272  PSimHit shit;
273  unsigned int size;
274  };
275  std::map<pair<unsigned int, float>, Elem> simHitMap;
276 
277  PSimHit simHit;
278  pair<unsigned int, float> key;
279  unsigned int ss;
280 
281  for (auto const& recHit : recHits) {
282  if (noBPIX1 && tkTpl.pxbLayer(recHit.geographicalId()) == 1)
283  continue;
284  if (!checkSimHits(recHit, theHitAssociator, simHit, key, ss))
285  continue;
286  // Fill map
287  if (simHitMap.count(key) == 0) {
288  simHitMap[key] = {&recHit, simHit, ss};
289  } else if (recHit.cluster()->size() > simHitMap[key].rhit->cluster()->size())
290  simHitMap[key] = {&recHit, simHit, std::max(ss, simHitMap[key].size)};
291  }
292  for (auto const& elem : simHitMap) {
293  /* irrelevant
294  auto const rh = *elem.second.rhit;
295  auto const& topol = reinterpret_cast<const PixelGeomDetUnit*>(rh.detUnit())->specificTopology();
296  auto const & cl = *rh.cluster();
297  if (cl.minPixelCol()==0) continue;
298  if (cl.maxPixelCol()+1==topol.ncolumns()) continue;
299  if (cl.minPixelRow()==0) continue;
300  if (cl.maxPixelRow()+1==topol.nrows()) continue;
301  */
302  if (elem.second.size == 1)
303  processSim(*elem.second.rhit, theFilter, elem.second.shit, clusterShapeCache, hspc);
304  }
305 }

References checkSimHits(), SiPixelPhase1OnlineDQM_cff::clusterShapeCache, hspc, crabWrapper::key, SiStripPI::max, noBPIX1, processSim(), TrackerTopology::pxbLayer(), rpcPointValidation_cfi::recHit, FastTrackerRecHitMaskProducer_cfi::recHits, rpcPointValidation_cfi::simHit, findQualityFiles::size, and contentValuesCheck::ss.

Referenced by analyzeSimHits().

◆ processRec()

void PixelClusterShapeExtractor::processRec ( const SiPixelRecHit recHit,
ClusterShapeHitFilter const &  theFilter,
LocalVector  ldir,
const SiPixelClusterShapeCache clusterShapeCache,
const vector< TH2F * > &  histo 
) const
private

Definition at line 207 of file PixelClusterShapeExtractor.cc.

211  {
212  int part;
214  pair<float, float> pred;
215 
216  if (theClusterShape.getSizes(recHit, ldir, clusterShapeCache, part, meas, pred))
217  if (meas.size() == 1)
218  if (meas.front().first <= exMax && meas.front().second <= eyMax) {
219  int i = (part * (exMax + 1) + meas.front().first) * (eyMax + 1) + meas.front().second;
220 #ifdef DO_DEBUG
221  if (meas.front().second == 0 && std::abs(pred.second) > 3) {
222  Lock lock(theMutex[0]);
223  int id = recHit.geographicalId();
224  std::cout << id << " bigpred " << meas.front().first << '/' << meas.front().second << ' ' << pred.first << '/'
225  << pred.second << ' ' << ldir << ' ' << ldir.mag() << std::endl;
226  }
227 #endif
228  Lock lock(theMutex[i]);
229  histo[i]->Fill(pred.first, pred.second);
230  }
231 }

References funct::abs(), SiPixelPhase1OnlineDQM_cff::clusterShapeCache, gather_cfg::cout, exMax, eyMax, edm::VecArray< T, N >::front(), ClusterShapeHitFilter::getSizes(), timingPdfMaker::histo, mps_fire::i, CommonMethods::lock(), PV3DBase< T, PVType, FrameType >::mag(), rpcPointValidation_cfi::recHit, edm::VecArray< T, N >::size(), and theMutex.

Referenced by analyzeRecTracks(), and processSim().

◆ processSim()

void PixelClusterShapeExtractor::processSim ( const SiPixelRecHit recHit,
ClusterShapeHitFilter const &  theClusterFilter,
const PSimHit simHit,
const SiPixelClusterShapeCache clusterShapeCache,
const vector< TH2F * > &  histo 
) const
private

Definition at line 234 of file PixelClusterShapeExtractor.cc.

238  {
239  LocalVector ldir = simHit.exitPoint() - simHit.entryPoint();
240  processRec(recHit, theClusterFilter, ldir, clusterShapeCache, histo);
241 }

References SiPixelPhase1OnlineDQM_cff::clusterShapeCache, timingPdfMaker::histo, processRec(), rpcPointValidation_cfi::recHit, and rpcPointValidation_cfi::simHit.

Referenced by processPixelRecHits().

Member Data Documentation

◆ clusterShapeCache_token

const edm::EDGetTokenT<SiPixelClusterShapeCache> PixelClusterShapeExtractor::clusterShapeCache_token
private

Definition at line 106 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks(), and analyzeSimHits().

◆ csfToken_

const edm::ESGetToken<ClusterShapeHitFilter, CkfComponentsRecord> PixelClusterShapeExtractor::csfToken_
private

Definition at line 96 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks(), and analyzeSimHits().

◆ file

TFile* PixelClusterShapeExtractor::file
private

Definition at line 98 of file PixelClusterShapeExtractor.cc.

Referenced by endJob(), and PixelClusterShapeExtractor().

◆ hasRecTracks

const bool PixelClusterShapeExtractor::hasRecTracks
private

Definition at line 101 of file PixelClusterShapeExtractor.cc.

Referenced by analyze().

◆ hasSimHits

const bool PixelClusterShapeExtractor::hasSimHits
private

Definition at line 100 of file PixelClusterShapeExtractor.cc.

Referenced by analyze().

◆ hrpc

std::vector<TH2F*> PixelClusterShapeExtractor::hrpc
private

Definition at line 112 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks(), and endJob().

◆ hspc

std::vector<TH2F*> PixelClusterShapeExtractor::hspc
private

Definition at line 111 of file PixelClusterShapeExtractor.cc.

Referenced by endJob(), and processPixelRecHits().

◆ noBPIX1

const bool PixelClusterShapeExtractor::noBPIX1
private

Definition at line 102 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks(), and processPixelRecHits().

◆ pixelRecHits_token

const edm::EDGetTokenT<edmNew::DetSetVector<SiPixelRecHit> > PixelClusterShapeExtractor::pixelRecHits_token
private

Definition at line 105 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeSimHits().

◆ theMutex

std::unique_ptr<std::mutex[]> PixelClusterShapeExtractor::theMutex
private

Definition at line 110 of file PixelClusterShapeExtractor.cc.

Referenced by processRec().

◆ topoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> PixelClusterShapeExtractor::topoToken_
private

Tokens for ESconsumes.

Definition at line 95 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks(), and analyzeSimHits().

◆ trackerHitAssociatorConfig_

const TrackerHitAssociator::Config PixelClusterShapeExtractor::trackerHitAssociatorConfig_
private

Definition at line 107 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeSimHits().

◆ tracks_token

const edm::EDGetTokenT<reco::TrackCollection> PixelClusterShapeExtractor::tracks_token
private

Definition at line 104 of file PixelClusterShapeExtractor.cc.

Referenced by analyzeRecTracks().

SiPixelPhase1OnlineDQM_cff.clusterShapeCache
clusterShapeCache
Definition: SiPixelPhase1OnlineDQM_cff.py:126
Vector3DBase
Definition: Vector3DBase.h:8
PixelClusterShapeExtractor::hasRecTracks
const bool hasRecTracks
Definition: PixelClusterShapeExtractor.cc:101
GeomDet::position
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
PixelClusterShapeExtractor::init
void init()
Definition: PixelClusterShapeExtractor.cc:116
PixelClusterShapeExtractor::checkSimHits
bool checkSimHits(const TrackingRecHit &recHit, TrackerHitAssociator const &theAssociator, PSimHit &simHit, pair< unsigned int, float > &key, unsigned int &ss) const
Definition: PixelClusterShapeExtractor.cc:244
mps_fire.i
i
Definition: mps_fire.py:428
edm::ESInputTag
Definition: ESInputTag.h:87
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
edm::Handle::product
T const * product() const
Definition: Handle.h:70
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
edm::EDGetTokenT< reco::TrackCollection >
gather_cfg.cout
cout
Definition: gather_cfg.py:144
PixelClusterShapeExtractor::theMutex
std::unique_ptr< std::mutex[]> theMutex
Definition: PixelClusterShapeExtractor.cc:110
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:278
cms::cuda::assert
assert(be >=bs)
FastTrackerRecHitCombiner_cfi.simHits
simHits
Definition: FastTrackerRecHitCombiner_cfi.py:5
edm::EDConsumerBase::consumesCollector
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
Definition: EDConsumerBase.cc:47
PixelClusterShapeExtractor::clusterShapeCache_token
const edm::EDGetTokenT< SiPixelClusterShapeCache > clusterShapeCache_token
Definition: PixelClusterShapeExtractor.cc:106
h
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
edm::Handle< reco::TrackCollection >
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
PixelClusterShapeExtractor::noBPIX1
const bool noBPIX1
Definition: PixelClusterShapeExtractor.cc:102
SiPixelRecHit
Our base class.
Definition: SiPixelRecHit.h:23
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
PixelClusterShapeExtractor::analyzeSimHits
void analyzeSimHits(const edm::Event &ev, const edm::EventSetup &es) const
Definition: PixelClusterShapeExtractor.cc:308
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
PixelClusterShapeExtractor::hspc
std::vector< TH2F * > hspc
Definition: PixelClusterShapeExtractor.cc:111
part
part
Definition: HCALResponse.h:20
PixelClusterShapeExtractor::analyzeRecTracks
void analyzeRecTracks(const edm::Event &ev, const edm::EventSetup &es) const
Definition: PixelClusterShapeExtractor.cc:332
h
PixelClusterShapeExtractor::processRec
void processRec(const SiPixelRecHit &recHit, ClusterShapeHitFilter const &theFilter, LocalVector ldir, const SiPixelClusterShapeCache &clusterShapeCache, const vector< TH2F * > &histo) const
Definition: PixelClusterShapeExtractor.cc:207
rpcPointValidation_cfi.simHit
simHit
Definition: rpcPointValidation_cfi.py:24
PixelClusterShapeExtractor::processPixelRecHits
void processPixelRecHits(SiPixelRecHitCollection::DataContainer const &recHits, TrackerHitAssociator const &theAssociator, ClusterShapeHitFilter const &theFilter, SiPixelClusterShapeCache const &clusterShapeCache, const TrackerTopology &tkTpl) const
Definition: PixelClusterShapeExtractor.cc:265
edm::VecArray::front
reference front()
Definition: VecArray.h:50
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
GeomDet::toLocal
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
Definition: GeomDet.h:58
eyMax
#define eyMax
Definition: PixelClusterShapeExtractor.cc:44
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
edm::VecArray< std::pair< int, int >, 9 >
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
fastTrackerRecHitType::isPixel
bool isPixel(HitType hitType)
Definition: FastTrackerRecHit.h:37
CommonMethods.lock
def lock()
Definition: CommonMethods.py:81
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
PixelClusterShapeExtractor::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Tokens for ESconsumes.
Definition: PixelClusterShapeExtractor.cc:95
PixelClusterShapeExtractor::processSim
void processSim(const SiPixelRecHit &recHit, ClusterShapeHitFilter const &theClusterFilter, const PSimHit &simHit, const SiPixelClusterShapeCache &clusterShapeCache, const vector< TH2F * > &histo) const
Definition: PixelClusterShapeExtractor.cc:234
PixelClusterShapeExtractor::Lock
std::unique_lock< std::mutex > Lock
Definition: PixelClusterShapeExtractor.cc:109
PixelClusterShapeExtractor::trackerHitAssociatorConfig_
const TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: PixelClusterShapeExtractor.cc:107
hcalSimParameters_cfi.hb
hb
Definition: hcalSimParameters_cfi.py:60
PixelClusterShapeExtractor::file
TFile * file
Definition: PixelClusterShapeExtractor.cc:98
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
PixelClusterShapeExtractor::csfToken_
const edm::ESGetToken< ClusterShapeHitFilter, CkfComponentsRecord > csfToken_
Definition: PixelClusterShapeExtractor.cc:96
edmNew::DetSetVector
Definition: DetSetNew.h:13
edmNew::DetSetVector::data
data_type const * data(size_t cell) const
Definition: DetSetVectorNew.h:575
PixelClusterShapeExtractor::pixelRecHits_token
const edm::EDGetTokenT< edmNew::DetSetVector< SiPixelRecHit > > pixelRecHits_token
Definition: PixelClusterShapeExtractor.cc:105
ev
bool ev
Definition: Hydjet2Hadronizer.cc:97
edm::VecArray::size
constexpr size_type size() const noexcept
Definition: VecArray.h:70
PixelClusterShapeExtractor::hasSimHits
const bool hasSimHits
Definition: PixelClusterShapeExtractor.cc:100
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:206
exMax
#define exMax
Definition: PixelClusterShapeExtractor.cc:43
PixelClusterShapeExtractor::isSuitable
bool isSuitable(const PSimHit &simHit, const GeomDetUnit &gdu) const
Definition: PixelClusterShapeExtractor.cc:182
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:159
PSimHit
Definition: PSimHit.h:15
PixelClusterShapeExtractor::tracks_token
const edm::EDGetTokenT< reco::TrackCollection > tracks_token
Definition: PixelClusterShapeExtractor.cc:104
crabWrapper.key
key
Definition: crabWrapper.py:19
edm::InputTag
Definition: InputTag.h:15
PixelClusterShapeExtractor::hrpc
std::vector< TH2F * > hrpc
Definition: PixelClusterShapeExtractor.cc:112
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
trackerHitRTTI::isFast
bool isFast(TrackingRecHit const &hit)
Definition: trackerHitRTTI.h:37
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
reco::TrackBase::highPurity
Definition: TrackBase.h:154