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_
 
std::vector< int > clustSizeYMin_
 
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 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 
253  SiPixelLorentzAngleTreeBarrel_->Branch(
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 }
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 311 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_, 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().

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

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

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

References hFile_, and notInPCL_.

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

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

858  {
860  desc.setComment("Worker module of the SiPixel Lorentz Angle PCL monitoring workflow");
861  desc.add<std::string>("folder", "AlCaReco/SiPixelLorentzAngle")->setComment("directory of PCL Worker output");
862  desc.add<bool>("notInPCL", false)->setComment("create TTree (true) or not (false)");
863  desc.add<std::string>("fileName", "testrun.root")->setComment("name of the TTree file if notInPCL = true");
864  desc.add<std::vector<std::string>>("newmodulelist", {})->setComment("the list of DetIds for new sensors");
865  desc.add<edm::InputTag>("src", edm::InputTag("TrackRefitter"))->setComment("input track collections");
866  desc.add<double>("ptMin", 3.)->setComment("minimum pt on tracks");
867  desc.add<double>("normChi2Max", 2.)->setComment("maximum reduced chi squared");
868  desc.add<std::vector<int>>("clustSizeYMin", {4, 4, 3, 2})
869  ->setComment("minimum cluster size on Y axis for all Barrel Layers");
870  desc.add<int>("clustSizeXMax", 5)->setComment("maximum cluster size on X axis");
871  desc.add<double>("residualMax", 0.005)->setComment("maximum residual");
872  desc.add<double>("clustChargeMaxPerLength", 50000)
873  ->setComment("maximum cluster charge per unit length of pixel depth (z)");
874  desc.add<int>("binsDepth", 50)->setComment("# bins for electron production depth axis");
875  desc.add<int>("binsDrift", 100)->setComment("# bins for electron drift axis");
876  descriptions.addWithDefaultLabel(desc);
877 }
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 822 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().

822  {
823  Pixinfo pixinfo;
824  const std::vector<SiPixelCluster::Pixel>& pixvector = LocPix.pixels();
825  pixinfo.npix = 0;
826  for (std::vector<SiPixelCluster::Pixel>::const_iterator itPix = pixvector.begin(); itPix != pixvector.end();
827  itPix++) {
828  pixinfo.row[pixinfo.npix] = itPix->x;
829  pixinfo.col[pixinfo.npix] = itPix->y;
830  pixinfo.adc[pixinfo.npix] = itPix->adc;
831  LocalPoint lp = topol->localPosition(MeasurementPoint(itPix->x + 0.5, itPix->y + 0.5));
832  pixinfo.x[pixinfo.npix] = lp.x();
833  pixinfo.y[pixinfo.npix] = lp.y();
834  pixinfo.npix++;
835  }
836  return pixinfo;
837 }
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 840 of file SiPixelLorentzAnglePCLWorker.cc.

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

Referenced by analyze().

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

Referenced by analyze().

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

Definition at line 177 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 189 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

Definition at line 193 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze().

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

Definition at line 184 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmEndRun(), and SiPixelLorentzAnglePCLWorker().

int SiPixelLorentzAnglePCLWorker::hist_depth_
private

Definition at line 181 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by bookHistograms().

int SiPixelLorentzAnglePCLWorker::hist_drift_
private

Definition at line 182 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 179 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 185 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 186 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by analyze(), and SiPixelLorentzAnglePCLWorker().

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

Definition at line 191 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

Definition at line 196 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 190 of file SiPixelLorentzAnglePCLWorker.cc.

Referenced by dqmBeginRun().

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

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