CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (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,
LocalPoint
surface_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_
 
int clustSizeYMin_
 
int clustSizeYMinL4_
 
int diskF_
 
float eta_
 
long int event_
 
std::string filename_
 
std::string folder_
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
geomEsToken_
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
geomPerEventEsToken_
 
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,
SiPixelTemplateDBObjectESProducerRcd
siPixelTemplateEsToken_
 
edm::EDGetTokenT
< TrajTrackAssociationCollection
t_trajTrack
 
const SiPixelTemplateDBObjecttemplateDBobject_
 
std::vector< SiPixelTemplateStorethePixelTemp_
 
edm::ESGetToken
< TrackerTopology,
TrackerTopologyRcd
topoEsToken_
 
edm::ESGetToken
< TrackerTopology,
TrackerTopologyRcd
topoPerEventEsToken_
 
Hit trackhit_
 
float trackhitCorrX_
 
float trackhitCorrXF_
 
float trackhitCorrY_
 
float trackhitCorrYF_
 
Hit trackhitF_
 
edm::ESWatcher
< SiPixelTemplateDBObjectESProducerRcd
watchSiPixelTemplateRcd_
 

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 ( const edm::ParameterSet iConfig)
explicit

Definition at line 203 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.

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

Member Function Documentation

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

Reimplemented from DQMEDAnalyzer.

Definition at line 313 of file SiPixelLorentzAnglePCLWorker.cc.

References Pixinfo::adc, Hit::alpha, Hit::beta, bladeF_, Surface::bounds(), SiPixelLorentzAngleCalibrationHistograms::BPixnewDetIds_, edm::EventBase::bunchCrossing(), bx_, Clust::charge, chi2_, Trajectory::chiSquared(), clust_, clustChargeMaxPerLength_, SiPixelRecHit::cluster(), clustF_, clustSizeXMax_, clustSizeYMin_, clustSizeYMinL4_, cmToum, Pixinfo::col, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, HLT_FULL_cff::depth, diskF_, HLT_FULL_cff::distance, shallow::drift(), PVValHelper::dx, PVValHelper::dy, reco::TrackBase::eta(), eta_, edm::EventID::event(), event_, dqm::impl::MonitorElement::Fill(), fillPix(), spr::find(), Hit::gamma, geomPerEventEsToken_, edm::Event::getByToken(), 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_, edm::EventBase::id(), TrackerGeometry::idToDet(), iHists, SiPixelTemplate::interpolate(), isflipped_, TrajectoryStateOnSurface::isValid(), dqmiolumiharvest::j, ladder_, layer_, TrajectoryStateOnSurface::localDirection(), BaseTrackerRecHit::localPosition(), TrajectoryStateOnSurface::localPosition(), lumiblock_, edm::EventBase::luminosityBlock(), Clust::maxPixelCol, Clust::maxPixelRow, Trajectory::measurements(), Clust::minPixelCol, Clust::minPixelRow, module_, moduleF_, Trajectory::ndof(), ndof_, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, normChi2Max_, notInPCL_, Pixinfo::npix, orbit_, edm::EventBase::orbitNumber(), panelF_, PV3DBase< T, PVType, FrameType >::perp(), reco::TrackBase::phi(), phi_, PixelTopology::pitch(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, pixinfo_, pixinfoF_, reco::TrackBase::pt(), 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(), rechit_, rechitCorr_, rechitCorrF_, rechitF_, residualMax_, Pixinfo::row, rQmQt_, rQmQtF_, edm::EventID::run(), 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_FULL_cff::track, DetId::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().

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

Implements DQMEDAnalyzer.

Definition at line 694 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, LogDebug, M_PI, mergeVDriftHistosByStation::name, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and runGCPTkAlMap::title.

696  {
697  // book the by partition monitoring
698  const auto maxSect = iHists.nlay * iHists.nModules_[iHists.nlay - 1] + (int)iHists.BPixnewDetIds_.size();
699 
700  iBooker.setCurrentFolder(fmt::sprintf("%s/SectorMonitoring", folder_.data()));
701  iHists.h_bySectOccupancy_ = iBooker.book1D(
702  "h_bySectorOccupancy", "hit occupancy by sector;pixel sector;hits on track", maxSect, -0.5, maxSect + 0.5);
703 
704  iBooker.setCurrentFolder(folder_);
705  static constexpr double min_depth_ = -100.;
706  static constexpr double max_depth_ = 400.;
707  static constexpr double min_drift_ = -500.;
708  static constexpr double max_drift_ = 500.;
709 
710  // book the mean values projections and set the bin names of the by sector monitoring
711  char name[128];
712  char title[256];
713  for (int i_layer = 1; i_layer <= iHists.nlay; i_layer++) {
714  for (int i_module = 1; i_module <= iHists.nModules_[i_layer - 1]; i_module++) {
715  unsigned int i_index = i_module + (i_layer - 1) * iHists.nModules_[i_layer - 1];
716  std::string binName = fmt::sprintf("BPix Layer%i Module %i", i_layer, i_module);
717  LogDebug("SiPixelLorentzAnglePCLWorker") << " i_index: " << i_index << " bin name: " << binName
718  << " (i_layer: " << i_layer << " i_module:" << i_module << ")";
719 
720  iHists.h_bySectOccupancy_->setBinLabel(i_index, binName);
721 
722  sprintf(name, "h_mean_layer%i_module%i", i_layer, i_module);
723  sprintf(title,
724  "average drift vs depth layer%i module%i; production depth [#mum]; #LTdrift#GT [#mum]",
725  i_layer,
726  i_module);
727  iHists.h_mean_[i_index] = iBooker.book1D(name, title, hist_depth_, min_depth_, max_depth_);
728  }
729  }
730  for (int i = 0; i < (int)iHists.BPixnewDetIds_.size(); i++) {
731  sprintf(name, "h_BPixnew_mean_%s", iHists.BPixnewmodulename_[i].c_str());
732  sprintf(title,
733  "average drift vs depth %s; production depth [#mum]; #LTdrift#GT [#mum]",
734  iHists.BPixnewmodulename_[i].c_str());
735  int new_index = iHists.nModules_[iHists.nlay - 1] + (iHists.nlay - 1) * iHists.nModules_[iHists.nlay - 1] + 1 + i;
736  iHists.h_mean_[new_index] = iBooker.book1D(name, title, hist_depth_, min_depth_, max_depth_);
737 
738  LogDebug("SiPixelLorentzAnglePCLWorker") << "i_index" << new_index << " bin name: " << iHists.BPixnewmodulename_[i];
739 
741  }
742 
743  //book the 2D histograms
744  for (int i_layer = 1; i_layer <= iHists.nlay; i_layer++) {
745  iBooker.setCurrentFolder(fmt::sprintf("%s/BPix/BPixLayer%i", folder_.data(), i_layer));
746  for (int i_module = 1; i_module <= iHists.nModules_[i_layer - 1]; i_module++) {
747  unsigned int i_index = i_module + (i_layer - 1) * iHists.nModules_[i_layer - 1];
748 
749  sprintf(name, "h_drift_depth_adc_layer%i_module%i", i_layer, i_module);
750  sprintf(title, "depth vs drift (ADC) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
751  iHists.h_drift_depth_adc_[i_index] =
752  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
753 
754  sprintf(name, "h_drift_depth_adc2_layer%i_module%i", i_layer, i_module);
755  sprintf(
756  title, "depth vs drift (ADC^{2}) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
757  iHists.h_drift_depth_adc2_[i_index] =
758  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
759 
760  sprintf(name, "h_drift_depth_noadc_layer%i_module%i", i_layer, i_module);
761  sprintf(
762  title, "depth vs drift (no ADC) layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
763  iHists.h_drift_depth_noadc_[i_index] =
764  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
765 
766  sprintf(name, "h_drift_depth_layer%i_module%i", i_layer, i_module);
767  sprintf(title, "depth vs drift layer%i module%i; drift [#mum]; production depth [#mum]", i_layer, i_module);
768  iHists.h_drift_depth_[i_index] =
769  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
770  }
771  }
772 
773  // book the "new" modules
774  iBooker.setCurrentFolder(fmt::sprintf("%s/BPix/NewModules", folder_.data()));
775  for (int i = 0; i < (int)iHists.BPixnewDetIds_.size(); i++) {
776  int new_index = iHists.nModules_[iHists.nlay - 1] + (iHists.nlay - 1) * iHists.nModules_[iHists.nlay - 1] + 1 + i;
777 
778  sprintf(name, "h_BPixnew_drift_depth_adc_%s", iHists.BPixnewmodulename_[i].c_str());
779  sprintf(
780  title, "depth vs drift (ADC) %s; drift [#mum]; production depth [#mum]", iHists.BPixnewmodulename_[i].c_str());
781  iHists.h_drift_depth_adc_[new_index] =
782  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
783 
784  sprintf(name, "h_BPixnew_drift_depth_adc2_%s", iHists.BPixnewmodulename_[i].c_str());
785  sprintf(title,
786  "depth vs drift (ADC^{2}) %s; drift [#mum]; production depth [#mum]",
787  iHists.BPixnewmodulename_[i].c_str());
788  iHists.h_drift_depth_adc2_[new_index] =
789  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
790 
791  sprintf(name, "h_BPixnew_drift_depth_noadc_%s", iHists.BPixnewmodulename_[i].c_str());
792  sprintf(title,
793  "depth vs drift (no ADC)%s; drift [#mum]; production depth [#mum]",
794  iHists.BPixnewmodulename_[i].c_str());
795  iHists.h_drift_depth_noadc_[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_%s", iHists.BPixnewmodulename_[i].c_str());
799  sprintf(title, "depth vs drift %s; drift [#mum]; production depth [#mum]", iHists.BPixnewmodulename_[i].c_str());
800  iHists.h_drift_depth_[new_index] =
801  iBooker.book2D(name, title, hist_drift_, min_drift_, max_drift_, hist_depth_, min_depth_, max_depth_);
802  }
803 
804  // book the track monitoring plots
805  iBooker.setCurrentFolder(fmt::sprintf("%s/TrackMonitoring", folder_.data()));
806  iHists.h_tracks_ = iBooker.book1D("h_tracks", ";tracker volume;tracks", 2, -0.5, 1.5);
807  iHists.h_tracks_->setBinLabel(1, "all tracks", 1);
808  iHists.h_tracks_->setBinLabel(2, "has pixel hits", 1);
809  iHists.h_trackEta_ = iBooker.book1D("h_trackEta", ";track #eta; #tracks", 30, -3., 3.);
810  iHists.h_trackPhi_ = iBooker.book1D("h_trackPhi", ";track #phi; #tracks", 48, -M_PI, M_PI);
811  iHists.h_trackPt_ = iBooker.book1D("h_trackPt", ";track p_{T} [GeV]; #tracks", 100, 0., 100.);
812  iHists.h_trackChi2_ = iBooker.book1D("h_trackChi2ndof", ";track #chi^{2}/ndof; #tracks", 100, 0., 10.);
813 }
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
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:177
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)
void SiPixelLorentzAnglePCLWorker::dqmBeginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 645 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(), PixelTopologyMap::getPXBModules(), mps_fire::i, iHists, PixelBarrelName::layerName(), PixelBarrelName::moduleName(), newmodulelist_, SiPixelLorentzAngleCalibrationHistograms::nlay, SiPixelLorentzAngleCalibrationHistograms::nModules_, notInPCL_, TrackerGeometry::numberOfLayers(), PixelSubdetector::PixelBarrel, SiPixelTemplate::pushfile(), siPixelTemplateEsToken_, templateDBobject_, thePixelTemp_, topoEsToken_, and watchSiPixelTemplateRcd_.

645  {
646  // geometry
647  const TrackerGeometry* geom = &iSetup.getData(geomEsToken_);
648  const TrackerTopology* tTopo = &iSetup.getData(topoEsToken_);
649 
650  if (notInPCL_) {
651  // Initialize 1D templates
652  if (watchSiPixelTemplateRcd_.check(iSetup)) {
653  templateDBobject_ = &iSetup.getData(siPixelTemplateEsToken_);
655  edm::LogError("SiPixelLorentzAnglePCLWorker")
656  << "Templates not filled correctly. Check the sqlite file. Using SiPixelTemplateDBObject version "
657  << (*templateDBobject_).version();
658  }
659  }
660  }
661 
662  PixelTopologyMap map = PixelTopologyMap(geom, tTopo);
664  iHists.nModules_.resize(iHists.nlay);
665  for (int i = 0; i < iHists.nlay; i++) {
666  iHists.nModules_[i] = map.getPXBModules(i + 1);
667  }
668 
669  // list of modules already filled, then return (we already entered here)
670  if (!iHists.BPixnewDetIds_.empty() || !iHists.FPixnewDetIds_.empty())
671  return;
672 
673  if (!newmodulelist_.empty()) {
674  for (auto const& modulename : newmodulelist_) {
675  if (modulename.find("BPix_") != std::string::npos) {
676  PixelBarrelName bn(modulename, true);
677  const auto& detId = bn.getDetId(tTopo);
678  iHists.BPixnewmodulename_.push_back(modulename);
679  iHists.BPixnewDetIds_.push_back(detId.rawId());
680  iHists.BPixnewModule_.push_back(bn.moduleName());
681  iHists.BPixnewLayer_.push_back(bn.layerName());
682  } else if (modulename.find("FPix_") != std::string::npos) {
683  PixelEndcapName en(modulename, true);
684  const auto& detId = en.getDetId(tTopo);
685  iHists.FPixnewmodulename_.push_back(modulename);
686  iHists.FPixnewDetIds_.push_back(detId.rawId());
687  iHists.FPixnewDisk_.push_back(en.diskName());
688  iHists.FPixnewBlade_.push_back(en.bladeName());
689  }
690  }
691  }
692 }
std::vector< SiPixelTemplateStore > thePixelTemp_
edm::ESWatcher< SiPixelTemplateDBObjectESProducerRcd > watchSiPixelTemplateRcd_
Log< level::Error, false > LogError
unsigned int numberOfLayers(int subdet) const
const SiPixelTemplateDBObject * templateDBobject_
const unsigned getPXBModules(unsigned int lay) const
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_
void SiPixelLorentzAnglePCLWorker::dqmEndRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
private

Definition at line 815 of file SiPixelLorentzAnglePCLWorker.cc.

References hFile_, and notInPCL_.

815  {
816  if (notInPCL_) {
817  hFile_->cd();
818  hFile_->Write();
819  hFile_->Close();
820  }
821 }
void SiPixelLorentzAnglePCLWorker::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 860 of file SiPixelLorentzAnglePCLWorker.cc.

References edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, HLT_FULL_cff::InputTag, edm::ParameterSetDescription::setComment(), edm::ParameterDescriptionNode::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

860  {
862  desc.setComment("Worker module of the SiPixel Lorentz Angle PCL monitoring workflow");
863  desc.add<std::string>("folder", "AlCaReco/SiPixelLorentzAngle")->setComment("directory of PCL Worker output");
864  desc.add<bool>("notInPCL", false)->setComment("create TTree (true) or not (false)");
865  desc.add<std::string>("fileName", "testrun.root")->setComment("name of the TTree file if notInPCL = true");
866  desc.add<std::vector<std::string>>("newmodulelist", {})->setComment("the list of DetIds for new sensors");
867  desc.add<edm::InputTag>("src", edm::InputTag("TrackRefitter"))->setComment("input track collections");
868  desc.add<double>("ptMin", 3.)->setComment("minimum pt on tracks");
869  desc.add<double>("normChi2Max", 2.)->setComment("maximum reduced chi squared");
870  desc.add<int>("clustSizeYMin", 4)->setComment("minimum cluster size on Y axis for Layer 1-3");
871  desc.add<int>("clustSizeYMinL4", 3)->setComment("minimum cluster size on Y axis for Layer 4");
872  desc.add<int>("clustSizeXMax", 5)->setComment("maximum cluster size on X axis");
873  desc.add<double>("residualMax", 0.005)->setComment("maximum residual");
874  desc.add<double>("clustChargeMaxPerLength", 50000)
875  ->setComment("maximum cluster charge per unit length of pixel depth (z)");
876  desc.add<int>("binsDepth", 50)->setComment("# bins for electron production depth axis");
877  desc.add<int>("binsDrift", 100)->setComment("# bins for electron drift axis");
878  descriptions.addWithDefaultLabel(desc);
879 }
void setComment(std::string const &value)
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
void setComment(std::string const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const Pixinfo SiPixelLorentzAnglePCLWorker::fillPix ( const SiPixelCluster LocPix,
const PixelTopology topol 
) const
private

Definition at line 824 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().

824  {
825  Pixinfo pixinfo;
826  const std::vector<SiPixelCluster::Pixel>& pixvector = LocPix.pixels();
827  pixinfo.npix = 0;
828  for (std::vector<SiPixelCluster::Pixel>::const_iterator itPix = pixvector.begin(); itPix != pixvector.end();
829  itPix++) {
830  pixinfo.row[pixinfo.npix] = itPix->x;
831  pixinfo.col[pixinfo.npix] = itPix->y;
832  pixinfo.adc[pixinfo.npix] = itPix->adc;
833  LocalPoint lp = topol->localPosition(MeasurementPoint(itPix->x + 0.5, itPix->y + 0.5));
834  pixinfo.x[pixinfo.npix] = lp.x();
835  pixinfo.y[pixinfo.npix] = lp.y();
836  pixinfo.npix++;
837  }
838  return pixinfo;
839 }
float x[maxpix]
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
float y[maxpix]
T y() const
Definition: PV3DBase.h:60
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
float adc[maxpix]
float col[maxpix]
T x() const
Definition: PV3DBase.h:59
const std::vector< Pixel > pixels() const
float row[maxpix]
const std::pair< LocalPoint, LocalPoint > SiPixelLorentzAnglePCLWorker::surface_deformation ( const PixelTopology topol,
TrajectoryStateOnSurface tsos,
const SiPixelRecHit recHitPix 
) const
private

Definition at line 842 of file SiPixelLorentzAnglePCLWorker.cc.

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

Referenced by analyze().

843  {
844  LocalPoint trackposition = tsos.localPosition();
845  const LocalTrajectoryParameters& ltp = tsos.localParameters();
846  const Topology::LocalTrackAngles localTrackAngles(ltp.dxdz(), ltp.dydz());
847 
848  std::pair<float, float> pixels_track = topol->pixel(trackposition, localTrackAngles);
849  std::pair<float, float> pixels_rechit = topol->pixel(recHitPix->localPosition(), localTrackAngles);
850 
851  LocalPoint lp_track = topol->localPosition(MeasurementPoint(pixels_track.first, pixels_track.second));
852 
853  LocalPoint lp_rechit = topol->localPosition(MeasurementPoint(pixels_rechit.first, pixels_rechit.second));
854 
855  std::pair<LocalPoint, LocalPoint> lps = std::make_pair(lp_track, lp_rechit);
856  return lps;
857 }
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

int SiPixelLorentzAnglePCLWorker::bladeF_
private

Definition at line 161 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::bx_
private

Definition at line 137 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

double SiPixelLorentzAnglePCLWorker::chi2_
private

Definition at line 146 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Clust SiPixelLorentzAnglePCLWorker::clust_
private

Definition at line 150 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

double SiPixelLorentzAnglePCLWorker::clustChargeMaxPerLength_
private

Definition at line 181 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

Clust SiPixelLorentzAnglePCLWorker::clustF_
private

Definition at line 166 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::clustSizeXMax_
private

Definition at line 179 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

int SiPixelLorentzAnglePCLWorker::clustSizeYMin_
private

Definition at line 177 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

int SiPixelLorentzAnglePCLWorker::clustSizeYMinL4_
private

Definition at line 178 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

int SiPixelLorentzAnglePCLWorker::diskF_
private

Definition at line 160 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::eta_
private

Definition at line 144 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

long int SiPixelLorentzAnglePCLWorker::event_
private

Definition at line 135 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

std::string SiPixelLorentzAnglePCLWorker::filename_
private

Definition at line 130 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by SiPixelLorentzAnglePCLWorker().

std::string SiPixelLorentzAnglePCLWorker::folder_
private

Definition at line 128 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

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

Definition at line 190 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

Definition at line 194 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

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

Definition at line 185 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmEndRun(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::hist_depth_
private

Definition at line 182 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

int SiPixelLorentzAnglePCLWorker::hist_drift_
private

Definition at line 183 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

SiPixelLorentzAngleCalibrationHistograms SiPixelLorentzAnglePCLWorker::iHists
private

Definition at line 121 of file SiPixelLorentzAnglePCLWorker.cc.

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

int SiPixelLorentzAnglePCLWorker::isflipped_
private

Definition at line 142 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::ladder_
private

Definition at line 140 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::layer_
private

Definition at line 141 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::lumiblock_
private

Definition at line 136 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::module_
private

Definition at line 139 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::moduleF_
private

Definition at line 163 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

double SiPixelLorentzAnglePCLWorker::ndof_
private

Definition at line 147 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 131 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

double SiPixelLorentzAnglePCLWorker::normChi2Max_
private

Definition at line 176 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

bool SiPixelLorentzAnglePCLWorker::notInPCL_
private
int SiPixelLorentzAnglePCLWorker::orbit_
private

Definition at line 138 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::panelF_
private

Definition at line 162 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::phi_
private

Definition at line 145 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Pixinfo SiPixelLorentzAnglePCLWorker::pixinfo_
private

Definition at line 148 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Pixinfo SiPixelLorentzAnglePCLWorker::pixinfoF_
private

Definition at line 164 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::pt_
private

Definition at line 143 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

double SiPixelLorentzAnglePCLWorker::ptmin_
private

Definition at line 175 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

float SiPixelLorentzAnglePCLWorker::qScale_
private

Definition at line 155 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::qScaleF_
private

Definition at line 171 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Rechit SiPixelLorentzAnglePCLWorker::rechit_
private

Definition at line 151 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Rechit SiPixelLorentzAnglePCLWorker::rechitCorr_
private

Definition at line 152 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Rechit SiPixelLorentzAnglePCLWorker::rechitCorrF_
private

Definition at line 168 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Rechit SiPixelLorentzAnglePCLWorker::rechitF_
private

Definition at line 167 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

double SiPixelLorentzAnglePCLWorker::residualMax_
private

Definition at line 180 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

float SiPixelLorentzAnglePCLWorker::rQmQt_
private

Definition at line 156 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::rQmQtF_
private

Definition at line 172 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::run_
private

Definition at line 134 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::sideF_
private

Definition at line 159 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Hit SiPixelLorentzAnglePCLWorker::simhit_
private

Definition at line 149 of file SiPixelLorentzAnglePCLWorker.cc.

Hit SiPixelLorentzAnglePCLWorker::simhitF_
private

Definition at line 165 of file SiPixelLorentzAnglePCLWorker.cc.

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

Definition at line 186 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 187 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 192 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

Definition at line 197 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

const SiPixelTemplateDBObject* SiPixelLorentzAnglePCLWorker::templateDBobject_
private

Definition at line 125 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 126 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and dqmBeginRun().

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

Definition at line 191 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

Definition at line 193 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

Hit SiPixelLorentzAnglePCLWorker::trackhit_
private

Definition at line 149 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::trackhitCorrX_
private

Definition at line 153 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::trackhitCorrXF_
private

Definition at line 169 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::trackhitCorrY_
private

Definition at line 154 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

float SiPixelLorentzAnglePCLWorker::trackhitCorrYF_
private

Definition at line 170 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

Hit SiPixelLorentzAnglePCLWorker::trackhitF_
private

Definition at line 165 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 124 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().