CMS 3D CMS Logo

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

#include <CalibTracker/SiPixelLorentzAnglePCLWorker/src/SiPixelLorentzAnglePCLWorker.cc>

Inheritance diagram for SiPixelLorentzAnglePCLWorker:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 SiPixelLorentzAnglePCLWorker (const edm::ParameterSet &)
 
 ~SiPixelLorentzAnglePCLWorker () override=default
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 

Private Member Functions

void analyze (edm::Event const &, edm::EventSetup const &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
const Pixinfo fillPix (const SiPixelCluster &LocPix, const PixelTopology *topol) const
 
const std::pair< LocalPoint, LocalPointsurface_deformation (const PixelTopology *topol, TrajectoryStateOnSurface &tsos, const SiPixelRecHit *recHitPix) const
 

Private Attributes

int bladeF_
 
int bx_
 
double chi2_
 
Clust clust_
 
double clustChargeMaxPerLength_
 
Clust clustF_
 
int clustSizeXMax_
 
std::vector< int > clustSizeYMin_
 
int diskF_
 
float eta_
 
long int event_
 
std::string filename_
 
std::string folder_
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomEsToken_
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomPerEventEsToken_
 
std::unique_ptr< TFile > hFile_
 
int hist_depth_
 
int hist_drift_
 
SiPixelLorentzAngleCalibrationHistograms iHists
 
int isflipped_
 
int ladder_
 
int layer_
 
int lumiblock_
 
int module_
 
int moduleF_
 
double ndof_
 
std::vector< std::string > newmodulelist_
 
double normChi2Max_
 
bool notInPCL_
 
int orbit_
 
int panelF_
 
float phi_
 
Pixinfo pixinfo_
 
Pixinfo pixinfoF_
 
float pt_
 
double ptmin_
 
float qScale_
 
float qScaleF_
 
Rechit rechit_
 
Rechit rechitCorr_
 
Rechit rechitCorrF_
 
Rechit rechitF_
 
double residualMax_
 
float rQmQt_
 
float rQmQtF_
 
int run_
 
int sideF_
 
Hit simhit_
 
Hit simhitF_
 
std::unique_ptr< TTree > SiPixelLorentzAngleTreeBarrel_
 
std::unique_ptr< TTree > SiPixelLorentzAngleTreeForward_
 
edm::ESGetToken< SiPixelTemplateDBObject, SiPixelTemplateDBObjectESProducerRcdsiPixelTemplateEsToken_
 
edm::EDGetTokenT< TrajTrackAssociationCollectiont_trajTrack
 
const SiPixelTemplateDBObjecttemplateDBobject_
 
std::vector< SiPixelTemplateStorethePixelTemp_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoEsToken_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoPerEventEsToken_
 
Hit trackhit_
 
float trackhitCorrX_
 
float trackhitCorrXF_
 
float trackhitCorrY_
 
float trackhitCorrYF_
 
Hit trackhitF_
 
edm::ESWatcher< SiPixelTemplateDBObjectESProducerRcdwatchSiPixelTemplateRcd_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description: generates the intermediate ALCAPROMPT dataset for the measurement of the SiPixel Lorentz Angle in the Prompt Calibration Loop Implementation: Books and fills 2D histograms of the drift vs depth in bins of pixel module rings to be fed into the SiPixelLorentzAnglePCLHarvester

Definition at line 100 of file SiPixelLorentzAnglePCLWorker.cc.

Constructor & Destructor Documentation

◆ SiPixelLorentzAnglePCLWorker()

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

Definition at line 202 of file SiPixelLorentzAnglePCLWorker.cc.

References Pixinfo::adc, bladeF_, bx_, chi2_, clust_, clustF_, Pixinfo::col, diskF_, eta_, event_, filename_, edm::ParameterSet::getParameter(), hFile_, isflipped_, ladder_, layer_, lumiblock_, module_, moduleF_, ndof_, notInPCL_, Pixinfo::npix, orbit_, panelF_, phi_, pixinfo_, pixinfoF_, pt_, qScale_, qScaleF_, rechit_, rechitCorr_, rechitCorrF_, rechitF_, Pixinfo::row, rQmQt_, rQmQtF_, run_, sideF_, SiPixelLorentzAngleTreeBarrel_, SiPixelLorentzAngleTreeForward_, t_trajTrack, trackhit_, trackhitCorrX_, trackhitCorrXF_, trackhitCorrY_, trackhitCorrYF_, trackhitF_, Pixinfo::x, and Pixinfo::y.

203  : folder_(iConfig.getParameter<std::string>("folder")),
204  notInPCL_(iConfig.getParameter<bool>("notInPCL")),
205  filename_(iConfig.getParameter<std::string>("fileName")),
206  newmodulelist_(iConfig.getParameter<std::vector<std::string>>("newmodulelist")),
207  ptmin_(iConfig.getParameter<double>("ptMin")),
208  normChi2Max_(iConfig.getParameter<double>("normChi2Max")),
209  clustSizeYMin_(iConfig.getParameter<std::vector<int>>("clustSizeYMin")),
210  clustSizeXMax_(iConfig.getParameter<int>("clustSizeXMax")),
211  residualMax_(iConfig.getParameter<double>("residualMax")),
212  clustChargeMaxPerLength_(iConfig.getParameter<double>("clustChargeMaxPerLength")),
213  hist_depth_(iConfig.getParameter<int>("binsDepth")),
214  hist_drift_(iConfig.getParameter<int>("binsDrift")),
215  geomEsToken_(esConsumes<edm::Transition::BeginRun>()),
216  topoEsToken_(esConsumes<edm::Transition::BeginRun>()),
217  siPixelTemplateEsToken_(esConsumes<edm::Transition::BeginRun>()),
220  t_trajTrack = consumes<TrajTrackAssociationCollection>(iConfig.getParameter<edm::InputTag>("src"));
221 
222  // now do what ever initialization is needed
223  int bufsize = 64000;
224 
225  // create tree structure
226  // Barrel pixel
227  if (notInPCL_) {
228  hFile_ = std::make_unique<TFile>(filename_.c_str(), "RECREATE");
230  std::make_unique<TTree>("SiPixelLorentzAngleTreeBarrel_", "SiPixel LorentzAngle tree barrel", bufsize);
231  SiPixelLorentzAngleTreeBarrel_->Branch("run", &run_, "run/I", bufsize);
232  SiPixelLorentzAngleTreeBarrel_->Branch("event", &event_, "event/l", bufsize);
233  SiPixelLorentzAngleTreeBarrel_->Branch("lumiblock", &lumiblock_, "lumiblock/I", bufsize);
234  SiPixelLorentzAngleTreeBarrel_->Branch("bx", &bx_, "bx/I", bufsize);
235  SiPixelLorentzAngleTreeBarrel_->Branch("orbit", &orbit_, "orbit/I", bufsize);
236  SiPixelLorentzAngleTreeBarrel_->Branch("module", &module_, "module/I", bufsize);
237  SiPixelLorentzAngleTreeBarrel_->Branch("ladder", &ladder_, "ladder/I", bufsize);
238  SiPixelLorentzAngleTreeBarrel_->Branch("layer", &layer_, "layer/I", bufsize);
239  SiPixelLorentzAngleTreeBarrel_->Branch("isflipped", &isflipped_, "isflipped/I", bufsize);
240  SiPixelLorentzAngleTreeBarrel_->Branch("pt", &pt_, "pt/F", bufsize);
241  SiPixelLorentzAngleTreeBarrel_->Branch("eta", &eta_, "eta/F", bufsize);
242  SiPixelLorentzAngleTreeBarrel_->Branch("phi", &phi_, "phi/F", bufsize);
243  SiPixelLorentzAngleTreeBarrel_->Branch("chi2", &chi2_, "chi2/D", bufsize);
244  SiPixelLorentzAngleTreeBarrel_->Branch("ndof", &ndof_, "ndof/D", bufsize);
245  SiPixelLorentzAngleTreeBarrel_->Branch("trackhit", &trackhit_, "x/F:y/F:alpha/D:beta/D:gamma_/D", bufsize);
246  SiPixelLorentzAngleTreeBarrel_->Branch("npix", &pixinfo_.npix, "npix/I", bufsize);
247  SiPixelLorentzAngleTreeBarrel_->Branch("rowpix", pixinfo_.row, "row[npix]/F", bufsize);
248  SiPixelLorentzAngleTreeBarrel_->Branch("colpix", pixinfo_.col, "col[npix]/F", bufsize);
249  SiPixelLorentzAngleTreeBarrel_->Branch("adc", pixinfo_.adc, "adc[npix]/F", bufsize);
250  SiPixelLorentzAngleTreeBarrel_->Branch("xpix", pixinfo_.x, "x[npix]/F", bufsize);
251  SiPixelLorentzAngleTreeBarrel_->Branch("ypix", pixinfo_.y, "y[npix]/F", bufsize);
252 
254  "clust",
255  &clust_,
256  "x/F:y/F:charge/F:size_x/I:size_y/I:maxPixelCol/I:maxPixelRow:minPixelCol/I:minPixelRow/I",
257  bufsize);
258  SiPixelLorentzAngleTreeBarrel_->Branch("rechit", &rechit_, "x/F:y/F", bufsize);
259  SiPixelLorentzAngleTreeBarrel_->Branch("rechit_corr", &rechitCorr_, "x/F:y/F", bufsize);
260  SiPixelLorentzAngleTreeBarrel_->Branch("trackhitcorr_x", &trackhitCorrX_, "trackhitcorr_x/F", bufsize);
261  SiPixelLorentzAngleTreeBarrel_->Branch("trackhitcorr_y", &trackhitCorrY_, "trackhitcorr_y/F", bufsize);
262  SiPixelLorentzAngleTreeBarrel_->Branch("qScale", &qScale_, "qScale/F", bufsize);
263  SiPixelLorentzAngleTreeBarrel_->Branch("rQmQt", &rQmQt_, "rQmQt/F", bufsize);
264  // Forward pixel
265 
267  std::make_unique<TTree>("SiPixelLorentzAngleTreeForward_", "SiPixel LorentzAngle tree forward", bufsize);
268  SiPixelLorentzAngleTreeForward_->Branch("run", &run_, "run/I", bufsize);
269  SiPixelLorentzAngleTreeForward_->Branch("event", &event_, "event/l", bufsize);
270  SiPixelLorentzAngleTreeForward_->Branch("lumiblock", &lumiblock_, "lumiblock/I", bufsize);
271  SiPixelLorentzAngleTreeForward_->Branch("bx", &bx_, "bx/I", bufsize);
272  SiPixelLorentzAngleTreeForward_->Branch("orbit", &orbit_, "orbit/I", bufsize);
273  SiPixelLorentzAngleTreeForward_->Branch("side", &sideF_, "side/I", bufsize);
274  SiPixelLorentzAngleTreeForward_->Branch("disk", &diskF_, "disk/I", bufsize);
275  SiPixelLorentzAngleTreeForward_->Branch("blade", &bladeF_, "blade/I", bufsize);
276  SiPixelLorentzAngleTreeForward_->Branch("panel", &panelF_, "panel/I", bufsize);
277  SiPixelLorentzAngleTreeForward_->Branch("module", &moduleF_, "module/I", bufsize);
278  SiPixelLorentzAngleTreeForward_->Branch("pt", &pt_, "pt/F", bufsize);
279  SiPixelLorentzAngleTreeForward_->Branch("eta", &eta_, "eta/F", bufsize);
280  SiPixelLorentzAngleTreeForward_->Branch("phi", &phi_, "phi/F", bufsize);
281  SiPixelLorentzAngleTreeForward_->Branch("chi2", &chi2_, "chi2/D", bufsize);
282  SiPixelLorentzAngleTreeForward_->Branch("ndof", &ndof_, "ndof/D", bufsize);
283  SiPixelLorentzAngleTreeForward_->Branch("trackhit", &trackhitF_, "x/F:y/F:alpha/D:beta/D:gamma_/D", bufsize);
284  SiPixelLorentzAngleTreeForward_->Branch("npix", &pixinfoF_.npix, "npix/I", bufsize);
285  SiPixelLorentzAngleTreeForward_->Branch("rowpix", pixinfoF_.row, "row[npix]/F", bufsize);
286  SiPixelLorentzAngleTreeForward_->Branch("colpix", pixinfoF_.col, "col[npix]/F", bufsize);
287  SiPixelLorentzAngleTreeForward_->Branch("adc", pixinfoF_.adc, "adc[npix]/F", bufsize);
288  SiPixelLorentzAngleTreeForward_->Branch("xpix", pixinfoF_.x, "x[npix]/F", bufsize);
289  SiPixelLorentzAngleTreeForward_->Branch("ypix", pixinfoF_.y, "y[npix]/F", bufsize);
290 
292  "clust",
293  &clustF_,
294  "x/F:y/F:charge/F:size_x/I:size_y/I:maxPixelCol/I:maxPixelRow:minPixelCol/I:minPixelRow/I",
295  bufsize);
296  SiPixelLorentzAngleTreeForward_->Branch("rechit", &rechitF_, "x/F:y/F", bufsize);
297  SiPixelLorentzAngleTreeForward_->Branch("rechit_corr", &rechitCorrF_, "x/F:y/F", bufsize);
298  SiPixelLorentzAngleTreeForward_->Branch("trackhitcorr_x", &trackhitCorrXF_, "trackhitcorr_x/F", bufsize);
299  SiPixelLorentzAngleTreeForward_->Branch("trackhitcorr_y", &trackhitCorrYF_, "trackhitcorr_y/F", bufsize);
300  SiPixelLorentzAngleTreeForward_->Branch("qScale", &qScaleF_, "qScale/F", bufsize);
301  SiPixelLorentzAngleTreeForward_->Branch("rQmQt", &rQmQtF_, "rQmQt/F", bufsize);
302  }
303 }
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
float x[maxpix]
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoPerEventEsToken_
float y[maxpix]
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomPerEventEsToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoEsToken_
std::unique_ptr< TTree > SiPixelLorentzAngleTreeBarrel_
std::vector< std::string > newmodulelist_
float adc[maxpix]
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomEsToken_
float col[maxpix]
edm::ESGetToken< SiPixelTemplateDBObject, SiPixelTemplateDBObjectESProducerRcd > siPixelTemplateEsToken_
edm::EDGetTokenT< TrajTrackAssociationCollection > t_trajTrack
float row[maxpix]
std::unique_ptr< TTree > SiPixelLorentzAngleTreeForward_

◆ ~SiPixelLorentzAnglePCLWorker()

SiPixelLorentzAnglePCLWorker::~SiPixelLorentzAnglePCLWorker ( )
overridedefault

Member Function Documentation

◆ analyze()

void SiPixelLorentzAnglePCLWorker::analyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 311 of file SiPixelLorentzAnglePCLWorker.cc.

References Pixinfo::adc, Hit::alpha, edm::AssociationMap< Tag >::begin(), Hit::beta, bladeF_, Surface::bounds(), SiPixelLorentzAngleCalibrationHistograms::BPixnewDetIds_, bx_, Clust::charge, chi2_, Trajectory::chiSquared(), clust_, clustChargeMaxPerLength_, SiPixelRecHit::cluster(), clustF_, clustSizeXMax_, clustSizeYMin_, siPixelLACalibration::cmToum, Pixinfo::col, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, LEDCalibrationChannels::depth, diskF_, HLT_2022v15_cff::distance, shallow::drift(), PVValHelper::dx, PVValHelper::dy, edm::AssociationMap< Tag >::empty(), edm::AssociationMap< Tag >::end(), eta_, event_, dqm::impl::MonitorElement::Fill(), fillPix(), spr::find(), Hit::gamma, geomPerEventEsToken_, edm::EventSetup::getData(), SiPixelTemplateDBObject::getTemplateID(), SiPixelLorentzAngleCalibrationHistograms::h_bySectOccupancy_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_adc2_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_adc_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_noadc_, SiPixelLorentzAngleCalibrationHistograms::h_trackChi2_, SiPixelLorentzAngleCalibrationHistograms::h_trackEta_, SiPixelLorentzAngleCalibrationHistograms::h_trackPhi_, SiPixelLorentzAngleCalibrationHistograms::h_trackPt_, SiPixelLorentzAngleCalibrationHistograms::h_tracks_, iEvent, iHists, SiPixelTemplate::interpolate(), isflipped_, TrajectoryStateOnSurface::isValid(), dqmiolumiharvest::j, ladder_, layer_, TrajectoryStateOnSurface::localDirection(), BaseTrackerRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), lumiblock_, Clust::maxPixelCol, Clust::maxPixelRow, Trajectory::measurements(), Clust::minPixelCol, Clust::minPixelRow, module_, moduleF_, Trajectory::ndof(), ndof_, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, normChi2Max_, notInPCL_, Pixinfo::npix, orbit_, panelF_, PV3DBase< T, PVType, FrameType >::perp(), TrackerGeometry::Ph1PXB, phi_, PixelTopology::pitch(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, pixinfo_, pixinfoF_, pt_, ptmin_, TrackerTopology::pxbLadder(), TrackerTopology::pxbLayer(), TrackerTopology::pxbModule(), TrackerTopology::pxfBlade(), TrackerTopology::pxfDisk(), TrackerTopology::pxfModule(), TrackerTopology::pxfPanel(), TrackerTopology::pxfSide(), SiPixelTemplate::qscale(), qScale_, qScaleF_, SiPixelTemplate::r_qMeas_qTrue(), DetId::rawId(), rpcPointValidation_cfi::recHit, rechit_, rechitCorr_, rechitCorrF_, rechitF_, residualMax_, Pixinfo::row, rQmQt_, rQmQtF_, run_, sideF_, SiPixelLorentzAngleTreeBarrel_, SiPixelLorentzAngleTreeForward_, Clust::size_x, Clust::size_y, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), GeomDet::surface(), surface_deformation(), t_trajTrack, funct::tan(), templateDBobject_, thePixelTemp_, Bounds::thickness(), Surface::toGlobal(), topoPerEventEsToken_, HLT_2022v15_cff::track, DetId::Tracker, PbPb_ZMuSkimMuonDPG_cff::tracker, trackhit_, trackhitCorrX_, trackhitCorrXF_, trackhitCorrY_, trackhitCorrYF_, trackhitF_, x, Pixinfo::x, Hit::x, PV3DBase< T, PVType, FrameType >::x(), Clust::x, Rechit::x, y, Pixinfo::y, Hit::y, PV3DBase< T, PVType, FrameType >::y(), Clust::y, Rechit::y, and PV3DBase< T, PVType, FrameType >::z().

311  {
312  // Retrieve tracker topology from geometry
313  const TrackerTopology* const tTopo = &iSetup.getData(topoPerEventEsToken_);
314 
315  // Retrieve track geometry
316  const TrackerGeometry* tracker = &iSetup.getData(geomPerEventEsToken_);
317 
318  // get the association map between tracks and trajectories
319  edm::Handle<TrajTrackAssociationCollection> trajTrackCollectionHandle;
320  iEvent.getByToken(t_trajTrack, trajTrackCollectionHandle);
321 
322  module_ = -1;
323  layer_ = -1;
324  ladder_ = -1;
325  isflipped_ = -1;
326  pt_ = -999;
327  eta_ = 999;
328  phi_ = 999;
329  pixinfo_.npix = 0;
330 
331  run_ = iEvent.id().run();
332  event_ = iEvent.id().event();
333  lumiblock_ = iEvent.luminosityBlock();
334  bx_ = iEvent.bunchCrossing();
335  orbit_ = iEvent.orbitNumber();
336 
337  if (!trajTrackCollectionHandle->empty()) {
338  for (TrajTrackAssociationCollection::const_iterator it = trajTrackCollectionHandle->begin();
339  it != trajTrackCollectionHandle->end();
340  ++it) {
341  const reco::Track& track = *it->val;
342  const Trajectory& traj = *it->key;
343 
344  // get the trajectory measurements
345  std::vector<TrajectoryMeasurement> tmColl = traj.measurements();
346  pt_ = track.pt();
347  eta_ = track.eta();
348  phi_ = track.phi();
349  chi2_ = traj.chiSquared();
350  ndof_ = traj.ndof();
351 
352  if (pt_ < ptmin_)
353  continue;
354 
359  iHists.h_tracks_->Fill(0);
360  bool pixeltrack = false;
361 
362  // iterate over trajectory measurements
363  for (const auto& itTraj : tmColl) {
364  if (!itTraj.updatedState().isValid())
365  continue;
366  const TransientTrackingRecHit::ConstRecHitPointer& recHit = itTraj.recHit();
367  if (!recHit->isValid() || recHit->geographicalId().det() != DetId::Tracker)
368  continue;
369  unsigned int subDetID = (recHit->geographicalId().subdetId());
370  if (subDetID == PixelSubdetector::PixelBarrel || subDetID == PixelSubdetector::PixelEndcap) {
371  if (!pixeltrack) {
372  iHists.h_tracks_->Fill(1);
373  }
374  pixeltrack = true;
375  }
376 
377  if (subDetID == PixelSubdetector::PixelBarrel) {
378  DetId detIdObj = recHit->geographicalId();
379  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>(tracker->idToDet(detIdObj));
380  if (!theGeomDet)
381  continue;
382 
383  const PixelTopology* topol = &(theGeomDet->specificTopology());
384 
385  float ypitch_ = topol->pitch().second;
386  float width_ = theGeomDet->surface().bounds().thickness();
387 
388  if (!topol)
389  continue;
390 
391  layer_ = tTopo->pxbLayer(detIdObj);
392  ladder_ = tTopo->pxbLadder(detIdObj);
393  module_ = tTopo->pxbModule(detIdObj);
394 
395  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
396  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
397 
398  isflipped_ = (tmp2 < tmp1) ? 1 : 0;
399 
400  const SiPixelRecHit* recHitPix = dynamic_cast<const SiPixelRecHit*>((*recHit).hit());
401  if (!recHitPix)
402  continue;
403  rechit_.x = recHitPix->localPosition().x();
404  rechit_.y = recHitPix->localPosition().y();
405  SiPixelRecHit::ClusterRef const& cluster = recHitPix->cluster();
406 
407  pixinfo_ = fillPix(*cluster, topol);
408 
409  // fill entries in clust_
410 
411  clust_.x = (cluster)->x();
412  clust_.y = (cluster)->y();
413  clust_.charge = (cluster->charge()) / 1000.; // clust_.charge: in the unit of 1000e
414  clust_.size_x = cluster->sizeX();
415  clust_.size_y = cluster->sizeY();
416  clust_.maxPixelCol = cluster->maxPixelCol();
417  clust_.maxPixelRow = cluster->maxPixelRow();
418  clust_.minPixelCol = cluster->minPixelCol();
419  clust_.minPixelRow = cluster->minPixelRow();
420 
421  // fill the trackhit info
422  TrajectoryStateOnSurface tsos = itTraj.updatedState();
423  if (!tsos.isValid()) {
424  edm::LogWarning("SiPixelLorentzAnglePCLWorker") << "tsos not valid";
425  continue;
426  }
427  LocalVector trackdirection = tsos.localDirection();
428  LocalPoint trackposition = tsos.localPosition();
429 
430  if (trackdirection.z() == 0)
431  continue;
432  // the local position and direction
433  trackhit_.alpha = atan2(trackdirection.z(), trackdirection.x());
434  trackhit_.beta = atan2(trackdirection.z(), trackdirection.y());
435  trackhit_.gamma = atan2(trackdirection.x(), trackdirection.y());
436  trackhit_.x = trackposition.x();
437  trackhit_.y = trackposition.y();
438 
439  // get qScale_ = templ.qscale() and templ.r_qMeas_qTrue();
440  float cotalpha = trackdirection.x() / trackdirection.z();
441  float cotbeta = trackdirection.y() / trackdirection.z();
442  float cotbeta_min = clustSizeYMin_[layer_ - 1] * ypitch_ / width_;
443  if (fabs(cotbeta) <= cotbeta_min)
444  continue;
445  double drdz = sqrt(1. + cotalpha * cotalpha + cotbeta * cotbeta);
446  double clusterCharge_cut = clustChargeMaxPerLength_ * drdz;
447 
448  auto detId = detIdObj.rawId();
449  int DetId_index = -1;
450 
451  const auto& newModIt = (std::find(iHists.BPixnewDetIds_.begin(), iHists.BPixnewDetIds_.end(), detId));
452  bool isNewMod = (newModIt != iHists.BPixnewDetIds_.end());
453  if (isNewMod) {
454  DetId_index = std::distance(iHists.BPixnewDetIds_.begin(), newModIt);
455  }
456 
457  if (notInPCL_) {
458  // fill the template from the store (from dqmBeginRun)
459  SiPixelTemplate theTemplate(thePixelTemp_);
460 
461  float locBx = (cotbeta < 0.) ? -1 : 1.;
462  float locBz = (cotalpha < 0.) ? -locBx : locBx;
463 
464  int TemplID = templateDBobject_->getTemplateID(detId);
465  theTemplate.interpolate(TemplID, cotalpha, cotbeta, locBz, locBx);
466  qScale_ = theTemplate.qscale();
467  rQmQt_ = theTemplate.r_qMeas_qTrue();
468  }
469 
470  // Surface deformation
471  const auto& lp_pair = surface_deformation(topol, tsos, recHitPix);
472 
473  LocalPoint lp_track = lp_pair.first;
474  LocalPoint lp_rechit = lp_pair.second;
475 
476  rechitCorr_.x = lp_rechit.x();
477  rechitCorr_.y = lp_rechit.y();
478  trackhitCorrX_ = lp_track.x();
479  trackhitCorrY_ = lp_track.y();
480 
481  if (notInPCL_) {
483  }
484 
485  // is one pixel in cluster a large pixel ? (hit will be excluded)
486  bool large_pix = false;
487  for (int j = 0; j < pixinfo_.npix; j++) {
488  int colpos = static_cast<int>(pixinfo_.col[j]);
489  if (pixinfo_.row[j] == 0 || pixinfo_.row[j] == 79 || pixinfo_.row[j] == 80 || pixinfo_.row[j] == 159 ||
490  colpos % 52 == 0 || colpos % 52 == 51) {
491  large_pix = true;
492  }
493  }
494 
495  double residualsq = (trackhitCorrX_ - rechitCorr_.x) * (trackhitCorrX_ - rechitCorr_.x) +
497 
498  double xlim1 = trackhitCorrX_ - width_ * cotalpha / 2.;
499  double hypitch_ = ypitch_ / 2.;
500  double ylim1 = trackhitCorrY_ - width_ * cotbeta / 2.;
501  double ylim2 = trackhitCorrY_ + width_ * cotbeta / 2.;
502 
503  int clustSizeY_cut = clustSizeYMin_[layer_ - 1];
504 
505  if (!large_pix && (chi2_ / ndof_) < normChi2Max_ && cluster->sizeY() >= clustSizeY_cut &&
506  residualsq < residualMax_ * residualMax_ && cluster->charge() < clusterCharge_cut &&
507  cluster->sizeX() < clustSizeXMax_) {
508  // iterate over pixels in hit
509  for (int j = 0; j < pixinfo_.npix; j++) {
510  // use trackhits and include bowing correction
511  float ypixlow = pixinfo_.y[j] - hypitch_;
512  float ypixhigh = pixinfo_.y[j] + hypitch_;
513  if (cotbeta > 0.) {
514  if (ylim1 > ypixlow)
515  ypixlow = ylim1;
516  if (ylim2 < ypixhigh)
517  ypixhigh = ylim2;
518  } else {
519  if (ylim2 > ypixlow)
520  ypixlow = ylim2;
521  if (ylim1 < ypixhigh)
522  ypixhigh = ylim1;
523  }
524  float ypixavg = 0.5f * (ypixlow + ypixhigh);
525 
526  float dx = (pixinfo_.x[j] - xlim1) * siPixelLACalibration::cmToum; // dx: in the unit of micrometer
527  float dy = (ypixavg - ylim1) * siPixelLACalibration::cmToum; // dy: in the unit of micrometer
528  float depth = dy * tan(trackhit_.beta);
529  float drift = dx - dy * tan(trackhit_.gamma);
530 
531  if (isNewMod == false) {
532  int i_index = module_ + (layer_ - 1) * iHists.nModules_[layer_ - 1];
533  iHists.h_drift_depth_adc_[i_index]->Fill(drift, depth, pixinfo_.adc[j]);
535  iHists.h_drift_depth_noadc_[i_index]->Fill(drift, depth, 1.);
536  iHists.h_bySectOccupancy_->Fill(i_index - 1); // histogram starts at 0
537 
538  if (tracker->getDetectorType(subDetID) == TrackerGeometry::ModuleType::Ph1PXB) {
539  if ((module_ == 3 || module_ == 5) && (layer_ == 3 || layer_ == 4)) {
540  int i_index_merge = i_index + 1;
541  iHists.h_drift_depth_adc_[i_index_merge]->Fill(drift, depth, pixinfo_.adc[j]);
542  iHists.h_drift_depth_adc2_[i_index_merge]->Fill(drift, depth, pixinfo_.adc[j] * pixinfo_.adc[j]);
543  iHists.h_drift_depth_noadc_[i_index_merge]->Fill(drift, depth, 1.);
544  iHists.h_bySectOccupancy_->Fill(i_index_merge - 1);
545  }
546  if ((module_ == 4 || module_ == 6) && (layer_ == 3 || layer_ == 4)) {
547  int i_index_merge = i_index - 1;
548  iHists.h_drift_depth_adc_[i_index_merge]->Fill(drift, depth, pixinfo_.adc[j]);
549  iHists.h_drift_depth_adc2_[i_index_merge]->Fill(drift, depth, pixinfo_.adc[j] * pixinfo_.adc[j]);
550  iHists.h_drift_depth_noadc_[i_index_merge]->Fill(drift, depth, 1.);
551  iHists.h_bySectOccupancy_->Fill(i_index_merge - 1);
552  }
553  }
554 
555  } else {
556  int new_index = iHists.nModules_[iHists.nlay - 1] +
557  (iHists.nlay - 1) * iHists.nModules_[iHists.nlay - 1] + 1 + DetId_index;
558 
559  iHists.h_drift_depth_adc_[new_index]->Fill(drift, depth, pixinfo_.adc[j]);
560  iHists.h_drift_depth_adc2_[new_index]->Fill(drift, depth, pixinfo_.adc[j] * pixinfo_.adc[j]);
561  iHists.h_drift_depth_noadc_[new_index]->Fill(drift, depth, 1.);
562  iHists.h_bySectOccupancy_->Fill(new_index - 1); // histogram starts at 0
563  }
564  }
565  }
566  } else if (subDetID == PixelSubdetector::PixelEndcap) {
567  DetId detIdObj = recHit->geographicalId();
568  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>(tracker->idToDet(detIdObj));
569  if (!theGeomDet)
570  continue;
571 
572  const PixelTopology* topol = &(theGeomDet->specificTopology());
573 
574  if (!topol)
575  continue;
576 
577  sideF_ = tTopo->pxfSide(detIdObj);
578  diskF_ = tTopo->pxfDisk(detIdObj);
579  bladeF_ = tTopo->pxfBlade(detIdObj);
580  panelF_ = tTopo->pxfPanel(detIdObj);
581  moduleF_ = tTopo->pxfModule(detIdObj);
582 
583  const SiPixelRecHit* recHitPix = dynamic_cast<const SiPixelRecHit*>((*recHit).hit());
584  if (!recHitPix)
585  continue;
586  rechitF_.x = recHitPix->localPosition().x();
587  rechitF_.y = recHitPix->localPosition().y();
588  SiPixelRecHit::ClusterRef const& cluster = recHitPix->cluster();
589 
590  pixinfoF_ = fillPix(*cluster, topol);
591 
592  // fill entries in clust_
593 
594  clustF_.x = (cluster)->x();
595  clustF_.y = (cluster)->y();
596  clustF_.charge = (cluster->charge()) / 1000.; // clustF_.charge: in the unit of 1000e
597  clustF_.size_x = cluster->sizeX();
598  clustF_.size_y = cluster->sizeY();
599  clustF_.maxPixelCol = cluster->maxPixelCol();
600  clustF_.maxPixelRow = cluster->maxPixelRow();
601  clustF_.minPixelCol = cluster->minPixelCol();
602  clustF_.minPixelRow = cluster->minPixelRow();
603 
604  // fill the trackhit info
605  TrajectoryStateOnSurface tsos = itTraj.updatedState();
606  if (!tsos.isValid()) {
607  edm::LogWarning("SiPixelLorentzAnglePCLWorker") << "tsos not valid";
608  continue;
609  }
610  LocalVector trackdirection = tsos.localDirection();
611  LocalPoint trackposition = tsos.localPosition();
612 
613  if (trackdirection.z() == 0)
614  continue;
615  // the local position and direction
616  trackhitF_.alpha = atan2(trackdirection.z(), trackdirection.x());
617  trackhitF_.beta = atan2(trackdirection.z(), trackdirection.y());
618  trackhitF_.gamma = atan2(trackdirection.x(), trackdirection.y());
619  trackhitF_.x = trackposition.x();
620  trackhitF_.y = trackposition.y();
621 
622  float cotalpha = trackdirection.x() / trackdirection.z();
623  float cotbeta = trackdirection.y() / trackdirection.z();
624 
625  auto detId = detIdObj.rawId();
626 
627  if (notInPCL_) {
628  // fill the template from the store (from dqmBeginRun)
629  SiPixelTemplate theTemplate(thePixelTemp_);
630 
631  float locBx = (cotbeta < 0.) ? -1 : 1.;
632  float locBz = (cotalpha < 0.) ? -locBx : locBx;
633 
634  int TemplID = templateDBobject_->getTemplateID(detId);
635  theTemplate.interpolate(TemplID, cotalpha, cotbeta, locBz, locBx);
636  qScaleF_ = theTemplate.qscale();
637  rQmQtF_ = theTemplate.r_qMeas_qTrue();
638  }
639 
640  // Surface deformation
641  const auto& lp_pair = surface_deformation(topol, tsos, recHitPix);
642 
643  LocalPoint lp_track = lp_pair.first;
644  LocalPoint lp_rechit = lp_pair.second;
645 
646  rechitCorrF_.x = lp_rechit.x();
647  rechitCorrF_.y = lp_rechit.y();
648  trackhitCorrXF_ = lp_track.x();
649  trackhitCorrYF_ = lp_track.y();
650  if (notInPCL_) {
652  }
653  }
654  } //end iteration over trajectory measurements
655  } //end iteration over trajectories
656  }
657 }
ClusterRef cluster() const
Definition: SiPixelRecHit.h:47
unsigned int pxbLayer(const DetId &id) const
T perp() const
Definition: PV3DBase.h:69
std::vector< SiPixelTemplateStore > thePixelTemp_
float x[maxpix]
unsigned int pxfBlade(const DetId &id) const
T z() const
Definition: PV3DBase.h:61
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoPerEventEsToken_
float y[maxpix]
unsigned int pxfModule(const DetId &id) const
LocalVector drift(const StripGeomDetUnit *, const MagneticField &, const SiStripLorentzAngle &)
Definition: ShallowTools.cc:36
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomPerEventEsToken_
float chiSquared() const
Definition: Trajectory.h:241
unsigned int pxbLadder(const DetId &id) const
bool empty() const
return true if empty
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
const Pixinfo fillPix(const SiPixelCluster &LocPix, const PixelTopology *topol) const
DataContainer const & measurements() const
Definition: Trajectory.h:178
const_iterator end() const
last iterator over the map (read only)
const std::pair< LocalPoint, LocalPoint > surface_deformation(const PixelTopology *topol, TrajectoryStateOnSurface &tsos, const SiPixelRecHit *recHitPix) const
void Fill(long long x)
virtual float thickness() const =0
double beta
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
int iEvent
Definition: GenABIO.cc:224
int ndof(bool bon=true) const
Definition: Trajectory.cc:97
const SiPixelTemplateDBObject * templateDBobject_
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
T sqrt(T t)
Definition: SSEVec.h:19
LocalVector localDirection() const
std::unique_ptr< TTree > SiPixelLorentzAngleTreeBarrel_
unsigned int pxfDisk(const DetId &id) const
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
float adc[maxpix]
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
unsigned int pxfPanel(const DetId &id) const
Definition: DetId.h:17
unsigned int pxfSide(const DetId &id) const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
double alpha
SiPixelLorentzAngleCalibrationHistograms iHists
short getTemplateID(const uint32_t &detid) const
float col[maxpix]
const_iterator begin() const
first iterator over the map (read only)
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
LocalPoint localPosition() const override
edm::EDGetTokenT< TrajTrackAssociationCollection > t_trajTrack
double gamma
virtual std::pair< float, float > pitch() const =0
unsigned int pxbModule(const DetId &id) const
Log< level::Warning, false > LogWarning
float row[maxpix]
Our base class.
Definition: SiPixelRecHit.h:23
std::unique_ptr< TTree > SiPixelLorentzAngleTreeForward_
const Bounds & bounds() const
Definition: Surface.h:87
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9

◆ bookHistograms()

void SiPixelLorentzAnglePCLWorker::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 708 of file SiPixelLorentzAnglePCLWorker.cc.

References dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), SiPixelLorentzAngleCalibrationHistograms::BPixnewDetIds_, SiPixelLorentzAngleCalibrationHistograms::BPixnewmodulename_, folder_, SiPixelLorentzAngleCalibrationHistograms::h_bySectOccupancy_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_adc2_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_adc_, SiPixelLorentzAngleCalibrationHistograms::h_drift_depth_noadc_, SiPixelLorentzAngleCalibrationHistograms::h_mean_, SiPixelLorentzAngleCalibrationHistograms::h_trackChi2_, SiPixelLorentzAngleCalibrationHistograms::h_trackEta_, SiPixelLorentzAngleCalibrationHistograms::h_trackPhi_, SiPixelLorentzAngleCalibrationHistograms::h_trackPt_, SiPixelLorentzAngleCalibrationHistograms::h_tracks_, hist_depth_, hist_drift_, mps_fire::i, iHists, createfilelist::int, LogDebug, M_PI, Skims_PA_cff::name, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and runGCPTkAlMap::title.

710  {
711  // book the by partition monitoring
712  const auto maxSect = iHists.nlay * iHists.nModules_[iHists.nlay - 1] + (int)iHists.BPixnewDetIds_.size();
713 
714  iBooker.setCurrentFolder(fmt::sprintf("%s/SectorMonitoring", folder_.data()));
715  iHists.h_bySectOccupancy_ = iBooker.book1D(
716  "h_bySectorOccupancy", "hit occupancy by sector;pixel sector;hits on track", maxSect, -0.5, maxSect - 0.5);
717 
718  iBooker.setCurrentFolder(folder_);
719  static constexpr double min_depth_ = -100.;
720  static constexpr double max_depth_ = 400.;
721  static constexpr double min_drift_ = -500.;
722  static constexpr double max_drift_ = 500.;
723 
724  // book the mean values projections and set the bin names of the by sector monitoring
725  char name[128];
726  char title[256];
727  for (int i_layer = 1; i_layer <= iHists.nlay; i_layer++) {
728  for (int i_module = 1; i_module <= iHists.nModules_[i_layer - 1]; i_module++) {
729  unsigned int i_index = i_module + (i_layer - 1) * iHists.nModules_[i_layer - 1];
730  std::string binName = fmt::sprintf("BPix Lay%i Mod%i", i_layer, i_module);
731  LogDebug("SiPixelLorentzAnglePCLWorker") << " i_index: " << i_index << " bin name: " << binName
732  << " (i_layer: " << i_layer << " i_module:" << i_module << ")";
733 
734  iHists.h_bySectOccupancy_->setBinLabel(i_index, binName);
735 
736  sprintf(name, "h_mean_layer%i_module%i", i_layer, i_module);
737  sprintf(title,
738  "average drift vs depth layer%i module%i; production depth [#mum]; #LTdrift#GT [#mum]",
739  i_layer,
740  i_module);
741  iHists.h_mean_[i_index] = iBooker.book1D(name, title, hist_depth_, min_depth_, max_depth_);
742  }
743  }
744  for (int i = 0; i < (int)iHists.BPixnewDetIds_.size(); i++) {
745  sprintf(name, "h_BPixnew_mean_%s", iHists.BPixnewmodulename_[i].c_str());
746  sprintf(title,
747  "average drift vs depth %s; production depth [#mum]; #LTdrift#GT [#mum]",
748  iHists.BPixnewmodulename_[i].c_str());
749  int new_index = iHists.nModules_[iHists.nlay - 1] + (iHists.nlay - 1) * iHists.nModules_[iHists.nlay - 1] + 1 + i;
750  iHists.h_mean_[new_index] = iBooker.book1D(name, title, hist_depth_, min_depth_, max_depth_);
751 
752  LogDebug("SiPixelLorentzAnglePCLWorker") << "i_index" << new_index << " bin name: " << iHists.BPixnewmodulename_[i];
753 
755  }
756 
757  //book the 2D histograms
758  for (int i_layer = 1; i_layer <= iHists.nlay; i_layer++) {
759  iBooker.setCurrentFolder(fmt::sprintf("%s/BPix/BPixLayer%i", folder_.data(), i_layer));
760  for (int i_module = 1; i_module <= iHists.nModules_[i_layer - 1]; i_module++) {
761  unsigned int i_index = i_module + (i_layer - 1) * iHists.nModules_[i_layer - 1];
762 
763  sprintf(name, "h_drift_depth_adc_layer%i_module%i", i_layer, i_module);
764  sprintf(title, "depth vs drift (ADC) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
765  iHists.h_drift_depth_adc_[i_index] =
766  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
767 
768  sprintf(name, "h_drift_depth_adc2_layer%i_module%i", i_layer, i_module);
769  sprintf(
770  title, "depth vs drift (ADC^{2}) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
771  iHists.h_drift_depth_adc2_[i_index] =
772  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
773 
774  sprintf(name, "h_drift_depth_noadc_layer%i_module%i", i_layer, i_module);
775  sprintf(
776  title, "depth vs drift (no ADC) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
777  iHists.h_drift_depth_noadc_[i_index] =
778  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
779 
780  sprintf(name, "h_drift_depth_layer%i_module%i", i_layer, i_module);
781  sprintf(title, "depth vs drift layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
782  iHists.h_drift_depth_[i_index] =
783  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
784  }
785  }
786 
787  // book the "new" modules
788  iBooker.setCurrentFolder(fmt::sprintf("%s/BPix/NewModules", folder_.data()));
789  for (int i = 0; i < (int)iHists.BPixnewDetIds_.size(); i++) {
790  int new_index = iHists.nModules_[iHists.nlay - 1] + (iHists.nlay - 1) * iHists.nModules_[iHists.nlay - 1] + 1 + i;
791 
792  sprintf(name, "h_BPixnew_drift_depth_adc_%s", iHists.BPixnewmodulename_[i].c_str());
793  sprintf(
794  title, "depth vs drift (ADC) %s; drift [#mum]; production depth [#mum]", iHists.BPixnewmodulename_[i].c_str());
795  iHists.h_drift_depth_adc_[new_index] =
796  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
797 
798  sprintf(name, "h_BPixnew_drift_depth_adc2_%s", iHists.BPixnewmodulename_[i].c_str());
799  sprintf(title,
800  "depth vs drift (ADC^{2}) %s; drift [#mum]; production depth [#mum]",
801  iHists.BPixnewmodulename_[i].c_str());
802  iHists.h_drift_depth_adc2_[new_index] =
803  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
804 
805  sprintf(name, "h_BPixnew_drift_depth_noadc_%s", iHists.BPixnewmodulename_[i].c_str());
806  sprintf(title,
807  "depth vs drift (no ADC)%s; drift [#mum]; production depth [#mum]",
808  iHists.BPixnewmodulename_[i].c_str());
809  iHists.h_drift_depth_noadc_[new_index] =
810  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
811 
812  sprintf(name, "h_BPixnew_drift_depth_%s", iHists.BPixnewmodulename_[i].c_str());
813  sprintf(title, "depth vs drift %s; drift [#mum]; production depth [#mum]", iHists.BPixnewmodulename_[i].c_str());
814  iHists.h_drift_depth_[new_index] =
815  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
816  }
817 
818  // book the track monitoring plots
819  iBooker.setCurrentFolder(fmt::sprintf("%s/TrackMonitoring", folder_.data()));
820  iHists.h_tracks_ = iBooker.book1D("h_tracks", ";tracker volume;tracks", 2, -0.5, 1.5);
821  iHists.h_tracks_->setBinLabel(1, "all tracks", 1);
822  iHists.h_tracks_->setBinLabel(2, "has pixel hits", 1);
823  iHists.h_trackEta_ = iBooker.book1D("h_trackEta", ";track #eta; #tracks", 30, -3., 3.);
824  iHists.h_trackPhi_ = iBooker.book1D("h_trackPhi", ";track #phi; #tracks", 48, -M_PI, M_PI);
825  iHists.h_trackPt_ = iBooker.book1D("h_trackPt", ";track p_{T} [GeV]; #tracks", 100, 0., 100.);
826  iHists.h_trackChi2_ = iBooker.book1D("h_trackChi2ndof", ";track #chi^{2}/ndof; #tracks", 100, 0., 10.);
827 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
#define M_PI
SiPixelLorentzAngleCalibrationHistograms iHists
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
#define LogDebug(id)

◆ dqmBeginRun()

void SiPixelLorentzAnglePCLWorker::dqmBeginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 659 of file SiPixelLorentzAnglePCLWorker.cc.

References PixelEndcapName::bladeName(), SiPixelLorentzAngleCalibrationHistograms::BPixnewDetIds_, SiPixelLorentzAngleCalibrationHistograms::BPixnewLayer_, SiPixelLorentzAngleCalibrationHistograms::BPixnewModule_, SiPixelLorentzAngleCalibrationHistograms::BPixnewmodulename_, edm::ESWatcher< T >::check(), PixelEndcapName::diskName(), SiPixelLorentzAngleCalibrationHistograms::FPixnewBlade_, SiPixelLorentzAngleCalibrationHistograms::FPixnewDetIds_, SiPixelLorentzAngleCalibrationHistograms::FPixnewDisk_, SiPixelLorentzAngleCalibrationHistograms::FPixnewmodulename_, relativeConstraints::geom, geomEsToken_, edm::EventSetup::getData(), PixelBarrelName::getDetId(), PixelEndcapName::getDetId(), mps_fire::i, iHists, PixelBarrelName::layerName(), genParticles_cff::map, PixelBarrelName::moduleName(), newmodulelist_, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, notInPCL_, PixelSubdetector::PixelBarrel, SiPixelTemplate::pushfile(), siPixelTemplateEsToken_, templateDBobject_, thePixelTemp_, topoEsToken_, and watchSiPixelTemplateRcd_.

659  {
660  // geometry
661  const TrackerGeometry* geom = &iSetup.getData(geomEsToken_);
662  const TrackerTopology* tTopo = &iSetup.getData(topoEsToken_);
663 
664  if (notInPCL_) {
665  // Initialize 1D templates
666  if (watchSiPixelTemplateRcd_.check(iSetup)) {
667  templateDBobject_ = &iSetup.getData(siPixelTemplateEsToken_);
669  edm::LogError("SiPixelLorentzAnglePCLWorker")
670  << "Templates not filled correctly. Check the sqlite file. Using SiPixelTemplateDBObject version "
671  << (*templateDBobject_).version();
672  }
673  }
674  }
675 
677  iHists.nlay = geom->numberOfLayers(PixelSubdetector::PixelBarrel);
678  iHists.nModules_.resize(iHists.nlay);
679  for (int i = 0; i < iHists.nlay; i++) {
680  iHists.nModules_[i] = map.getPXBModules(i + 1);
681  }
682 
683  // list of modules already filled, then return (we already entered here)
684  if (!iHists.BPixnewDetIds_.empty() || !iHists.FPixnewDetIds_.empty())
685  return;
686 
687  if (!newmodulelist_.empty()) {
688  for (auto const& modulename : newmodulelist_) {
689  if (modulename.find("BPix_") != std::string::npos) {
690  PixelBarrelName bn(modulename, true);
691  const auto& detId = bn.getDetId(tTopo);
692  iHists.BPixnewmodulename_.push_back(modulename);
693  iHists.BPixnewDetIds_.push_back(detId.rawId());
694  iHists.BPixnewModule_.push_back(bn.moduleName());
695  iHists.BPixnewLayer_.push_back(bn.layerName());
696  } else if (modulename.find("FPix_") != std::string::npos) {
697  PixelEndcapName en(modulename, true);
698  const auto& detId = en.getDetId(tTopo);
699  iHists.FPixnewmodulename_.push_back(modulename);
700  iHists.FPixnewDetIds_.push_back(detId.rawId());
701  iHists.FPixnewDisk_.push_back(en.diskName());
702  iHists.FPixnewBlade_.push_back(en.bladeName());
703  }
704  }
705  }
706 }
std::vector< SiPixelTemplateStore > thePixelTemp_
edm::ESWatcher< SiPixelTemplateDBObjectESProducerRcd > watchSiPixelTemplateRcd_
Log< level::Error, false > LogError
const SiPixelTemplateDBObject * templateDBobject_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoEsToken_
std::vector< std::string > newmodulelist_
SiPixelLorentzAngleCalibrationHistograms iHists
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomEsToken_
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:57
static bool pushfile(int filenum, std::vector< SiPixelTemplateStore > &pixelTemp, std::string dir="CalibTracker/SiPixelESProducers/data/")
edm::ESGetToken< SiPixelTemplateDBObject, SiPixelTemplateDBObjectESProducerRcd > siPixelTemplateEsToken_

◆ dqmEndRun()

void SiPixelLorentzAnglePCLWorker::dqmEndRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
private

Definition at line 829 of file SiPixelLorentzAnglePCLWorker.cc.

References hFile_, and notInPCL_.

829  {
830  if (notInPCL_) {
831  hFile_->cd();
832  hFile_->Write();
833  hFile_->Close();
834  }
835 }

◆ fillDescriptions()

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

Definition at line 874 of file SiPixelLorentzAnglePCLWorker.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, HLT_2022v15_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

874  {
876  desc.setComment("Worker module of the SiPixel Lorentz Angle PCL monitoring workflow");
877  desc.add<std::string>("folder", "AlCaReco/SiPixelLorentzAngle")->setComment("directory of PCL Worker output");
878  desc.add<bool>("notInPCL", false)->setComment("create TTree (true) or not (false)");
879  desc.add<std::string>("fileName", "testrun.root")->setComment("name of the TTree file if notInPCL = true");
880  desc.add<std::vector<std::string>>("newmodulelist", {})->setComment("the list of DetIds for new sensors");
881  desc.add<edm::InputTag>("src", edm::InputTag("TrackRefitter"))->setComment("input track collections");
882  desc.add<double>("ptMin", 3.)->setComment("minimum pt on tracks");
883  desc.add<double>("normChi2Max", 2.)->setComment("maximum reduced chi squared");
884  desc.add<std::vector<int>>("clustSizeYMin", {4, 3, 3, 2})
885  ->setComment("minimum cluster size on Y axis for all Barrel Layers");
886  desc.add<int>("clustSizeXMax", 5)->setComment("maximum cluster size on X axis");
887  desc.add<double>("residualMax", 0.005)->setComment("maximum residual");
888  desc.add<double>("clustChargeMaxPerLength", 50000)
889  ->setComment("maximum cluster charge per unit length of pixel depth (z)");
890  desc.add<int>("binsDepth", 50)->setComment("# bins for electron production depth axis");
891  desc.add<int>("binsDrift", 100)->setComment("# bins for electron drift axis");
892  descriptions.addWithDefaultLabel(desc);
893 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)

◆ fillPix()

const Pixinfo SiPixelLorentzAnglePCLWorker::fillPix ( const SiPixelCluster LocPix,
const PixelTopology topol 
) const
private

Definition at line 838 of file SiPixelLorentzAnglePCLWorker.cc.

References Pixinfo::adc, Pixinfo::col, Topology::localPosition(), Pixinfo::npix, SiPixelCluster::pixels(), Pixinfo::row, Pixinfo::x, PV3DBase< T, PVType, FrameType >::x(), Pixinfo::y, and PV3DBase< T, PVType, FrameType >::y().

Referenced by analyze().

838  {
839  Pixinfo pixinfo;
840  const std::vector<SiPixelCluster::Pixel>& pixvector = LocPix.pixels();
841  pixinfo.npix = 0;
842  for (std::vector<SiPixelCluster::Pixel>::const_iterator itPix = pixvector.begin(); itPix != pixvector.end();
843  itPix++) {
844  pixinfo.row[pixinfo.npix] = itPix->x;
845  pixinfo.col[pixinfo.npix] = itPix->y;
846  pixinfo.adc[pixinfo.npix] = itPix->adc;
847  LocalPoint lp = topol->localPosition(MeasurementPoint(itPix->x + 0.5, itPix->y + 0.5));
848  pixinfo.x[pixinfo.npix] = lp.x();
849  pixinfo.y[pixinfo.npix] = lp.y();
850  pixinfo.npix++;
851  }
852  return pixinfo;
853 }
float x[maxpix]
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
float y[maxpix]
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
const std::vector< Pixel > pixels() const
float adc[maxpix]
float col[maxpix]
float row[maxpix]

◆ surface_deformation()

const std::pair< LocalPoint, LocalPoint > SiPixelLorentzAnglePCLWorker::surface_deformation ( const PixelTopology topol,
TrajectoryStateOnSurface tsos,
const SiPixelRecHit recHitPix 
) const
private

Definition at line 856 of file SiPixelLorentzAnglePCLWorker.cc.

References LocalTrajectoryParameters::dxdz(), LocalTrajectoryParameters::dydz(), TrajectoryStateOnSurface::localParameters(), BaseTrackerRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), Topology::localPosition(), and PixelTopology::pixel().

Referenced by analyze().

857  {
858  LocalPoint trackposition = tsos.localPosition();
859  const LocalTrajectoryParameters& ltp = tsos.localParameters();
860  const Topology::LocalTrackAngles localTrackAngles(ltp.dxdz(), ltp.dydz());
861 
862  std::pair<float, float> pixels_track = topol->pixel(trackposition, localTrackAngles);
863  std::pair<float, float> pixels_rechit = topol->pixel(recHitPix->localPosition(), localTrackAngles);
864 
865  LocalPoint lp_track = topol->localPosition(MeasurementPoint(pixels_track.first, pixels_track.second));
866 
867  LocalPoint lp_rechit = topol->localPosition(MeasurementPoint(pixels_rechit.first, pixels_rechit.second));
868 
869  std::pair<LocalPoint, LocalPoint> lps = std::make_pair(lp_track, lp_rechit);
870  return lps;
871 }
virtual std::pair< float, float > pixel(const LocalPoint &p) const =0
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
const LocalTrajectoryParameters & localParameters() const
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
LocalPoint localPosition() const override

Member Data Documentation

◆ bladeF_

int SiPixelLorentzAnglePCLWorker::bladeF_
private

Definition at line 161 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ bx_

int SiPixelLorentzAnglePCLWorker::bx_
private

Definition at line 137 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ chi2_

double SiPixelLorentzAnglePCLWorker::chi2_
private

Definition at line 146 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ clust_

Clust SiPixelLorentzAnglePCLWorker::clust_
private

Definition at line 150 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ clustChargeMaxPerLength_

double SiPixelLorentzAnglePCLWorker::clustChargeMaxPerLength_
private

Definition at line 180 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ clustF_

Clust SiPixelLorentzAnglePCLWorker::clustF_
private

Definition at line 166 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ clustSizeXMax_

int SiPixelLorentzAnglePCLWorker::clustSizeXMax_
private

Definition at line 178 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ clustSizeYMin_

std::vector<int> SiPixelLorentzAnglePCLWorker::clustSizeYMin_
private

Definition at line 177 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ diskF_

int SiPixelLorentzAnglePCLWorker::diskF_
private

Definition at line 160 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ eta_

float SiPixelLorentzAnglePCLWorker::eta_
private

Definition at line 144 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ event_

long int SiPixelLorentzAnglePCLWorker::event_
private

Definition at line 135 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ filename_

std::string SiPixelLorentzAnglePCLWorker::filename_
private

Definition at line 130 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by SiPixelLorentzAnglePCLWorker().

◆ folder_

std::string SiPixelLorentzAnglePCLWorker::folder_
private

Definition at line 128 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

◆ geomEsToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiPixelLorentzAnglePCLWorker::geomEsToken_
private

Definition at line 189 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

◆ geomPerEventEsToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiPixelLorentzAnglePCLWorker::geomPerEventEsToken_
private

Definition at line 193 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ hFile_

std::unique_ptr<TFile> SiPixelLorentzAnglePCLWorker::hFile_
private

Definition at line 184 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmEndRun(), and SiPixelLorentzAnglePCLWorker().

◆ hist_depth_

int SiPixelLorentzAnglePCLWorker::hist_depth_
private

Definition at line 181 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

◆ hist_drift_

int SiPixelLorentzAnglePCLWorker::hist_drift_
private

Definition at line 182 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

◆ iHists

SiPixelLorentzAngleCalibrationHistograms SiPixelLorentzAnglePCLWorker::iHists
private

Definition at line 121 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), bookHistograms(), and dqmBeginRun().

◆ isflipped_

int SiPixelLorentzAnglePCLWorker::isflipped_
private

Definition at line 142 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ ladder_

int SiPixelLorentzAnglePCLWorker::ladder_
private

Definition at line 140 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ layer_

int SiPixelLorentzAnglePCLWorker::layer_
private

Definition at line 141 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ lumiblock_

int SiPixelLorentzAnglePCLWorker::lumiblock_
private

Definition at line 136 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ module_

int SiPixelLorentzAnglePCLWorker::module_
private

Definition at line 139 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ moduleF_

int SiPixelLorentzAnglePCLWorker::moduleF_
private

Definition at line 163 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ ndof_

double SiPixelLorentzAnglePCLWorker::ndof_
private

Definition at line 147 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ newmodulelist_

std::vector<std::string> SiPixelLorentzAnglePCLWorker::newmodulelist_
private

Definition at line 131 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

◆ normChi2Max_

double SiPixelLorentzAnglePCLWorker::normChi2Max_
private

Definition at line 176 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ notInPCL_

bool SiPixelLorentzAnglePCLWorker::notInPCL_
private

◆ orbit_

int SiPixelLorentzAnglePCLWorker::orbit_
private

Definition at line 138 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ panelF_

int SiPixelLorentzAnglePCLWorker::panelF_
private

Definition at line 162 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ phi_

float SiPixelLorentzAnglePCLWorker::phi_
private

Definition at line 145 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ pixinfo_

Pixinfo SiPixelLorentzAnglePCLWorker::pixinfo_
private

Definition at line 148 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ pixinfoF_

Pixinfo SiPixelLorentzAnglePCLWorker::pixinfoF_
private

Definition at line 164 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ pt_

float SiPixelLorentzAnglePCLWorker::pt_
private

Definition at line 143 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ ptmin_

double SiPixelLorentzAnglePCLWorker::ptmin_
private

Definition at line 175 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ qScale_

float SiPixelLorentzAnglePCLWorker::qScale_
private

Definition at line 155 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ qScaleF_

float SiPixelLorentzAnglePCLWorker::qScaleF_
private

Definition at line 171 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ rechit_

Rechit SiPixelLorentzAnglePCLWorker::rechit_
private

Definition at line 151 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ rechitCorr_

Rechit SiPixelLorentzAnglePCLWorker::rechitCorr_
private

Definition at line 152 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ rechitCorrF_

Rechit SiPixelLorentzAnglePCLWorker::rechitCorrF_
private

Definition at line 168 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ rechitF_

Rechit SiPixelLorentzAnglePCLWorker::rechitF_
private

Definition at line 167 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ residualMax_

double SiPixelLorentzAnglePCLWorker::residualMax_
private

Definition at line 179 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ rQmQt_

float SiPixelLorentzAnglePCLWorker::rQmQt_
private

Definition at line 156 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ rQmQtF_

float SiPixelLorentzAnglePCLWorker::rQmQtF_
private

Definition at line 172 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ run_

int SiPixelLorentzAnglePCLWorker::run_
private

Definition at line 134 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ sideF_

int SiPixelLorentzAnglePCLWorker::sideF_
private

Definition at line 159 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ simhit_

Hit SiPixelLorentzAnglePCLWorker::simhit_
private

Definition at line 149 of file SiPixelLorentzAnglePCLWorker.cc.

◆ simhitF_

Hit SiPixelLorentzAnglePCLWorker::simhitF_
private

Definition at line 165 of file SiPixelLorentzAnglePCLWorker.cc.

◆ SiPixelLorentzAngleTreeBarrel_

std::unique_ptr<TTree> SiPixelLorentzAnglePCLWorker::SiPixelLorentzAngleTreeBarrel_
private

Definition at line 185 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ SiPixelLorentzAngleTreeForward_

std::unique_ptr<TTree> SiPixelLorentzAnglePCLWorker::SiPixelLorentzAngleTreeForward_
private

Definition at line 186 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ siPixelTemplateEsToken_

edm::ESGetToken<SiPixelTemplateDBObject, SiPixelTemplateDBObjectESProducerRcd> SiPixelLorentzAnglePCLWorker::siPixelTemplateEsToken_
private

Definition at line 191 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

◆ t_trajTrack

edm::EDGetTokenT<TrajTrackAssociationCollection> SiPixelLorentzAnglePCLWorker::t_trajTrack
private

Definition at line 196 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ templateDBobject_

const SiPixelTemplateDBObject* SiPixelLorentzAnglePCLWorker::templateDBobject_
private

Definition at line 125 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and dqmBeginRun().

◆ thePixelTemp_

std::vector<SiPixelTemplateStore> SiPixelLorentzAnglePCLWorker::thePixelTemp_
private

Definition at line 126 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and dqmBeginRun().

◆ topoEsToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiPixelLorentzAnglePCLWorker::topoEsToken_
private

Definition at line 190 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

◆ topoPerEventEsToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiPixelLorentzAnglePCLWorker::topoPerEventEsToken_
private

Definition at line 192 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

◆ trackhit_

Hit SiPixelLorentzAnglePCLWorker::trackhit_
private

Definition at line 149 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ trackhitCorrX_

float SiPixelLorentzAnglePCLWorker::trackhitCorrX_
private

Definition at line 153 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ trackhitCorrXF_

float SiPixelLorentzAnglePCLWorker::trackhitCorrXF_
private

Definition at line 169 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ trackhitCorrY_

float SiPixelLorentzAnglePCLWorker::trackhitCorrY_
private

Definition at line 154 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ trackhitCorrYF_

float SiPixelLorentzAnglePCLWorker::trackhitCorrYF_
private

Definition at line 170 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ trackhitF_

Hit SiPixelLorentzAnglePCLWorker::trackhitF_
private

Definition at line 165 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

◆ watchSiPixelTemplateRcd_

edm::ESWatcher<SiPixelTemplateDBObjectESProducerRcd> SiPixelLorentzAnglePCLWorker::watchSiPixelTemplateRcd_
private

Definition at line 124 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().