CMS 3D CMS Logo

Functions
DeDxTools Namespace Reference

Functions

void buildDiscrimMap (edm::Run const &run, const edm::EventSetup &iSetup, std::string Reccord, std::string ProbabilityMode, TH3F *&Prob_ChargePath)
 
int getCharge (const SiStripCluster *cluster, int &nSatStrip, const GeomDetUnit &detUnit, const std::vector< std::vector< float > > &calibGains, const unsigned int &m_off)
 
bool IsFarFromBorder (const TrajectoryStateOnSurface &trajState, const GeomDetUnit *it)
 
bool IsSpanningOver2APV (unsigned int FirstStrip, unsigned int ClusterSize)
 
void makeCalibrationMap (const std::string &m_calibrationPath, const TrackerGeometry &tkGeom, std::vector< std::vector< float > > &calibGains, const unsigned int &m_off)
 
bool shapeSelection (const SiStripCluster &ampls)
 

Function Documentation

◆ buildDiscrimMap()

void DeDxTools::buildDiscrimMap ( edm::Run const &  run,
const edm::EventSetup iSetup,
std::string  Reccord,
std::string  ProbabilityMode,
TH3F *&  Prob_ChargePath 
)

Definition at line 280 of file DeDxTools.cc.

284  {
286  if (strcmp(Reccord.c_str(), "SiStripDeDxMip_3D_Rcd") == 0) {
287  iSetup.get<SiStripDeDxMip_3D_Rcd>().get(deDxMapHandle);
288  } else if (strcmp(Reccord.c_str(), "SiStripDeDxPion_3D_Rcd") == 0) {
289  iSetup.get<SiStripDeDxPion_3D_Rcd>().get(deDxMapHandle);
290  } else if (strcmp(Reccord.c_str(), "SiStripDeDxKaon_3D_Rcd") == 0) {
291  iSetup.get<SiStripDeDxKaon_3D_Rcd>().get(deDxMapHandle);
292  } else if (strcmp(Reccord.c_str(), "SiStripDeDxProton_3D_Rcd") == 0) {
293  iSetup.get<SiStripDeDxProton_3D_Rcd>().get(deDxMapHandle);
294  } else if (strcmp(Reccord.c_str(), "SiStripDeDxElectron_3D_Rcd") == 0) {
295  iSetup.get<SiStripDeDxElectron_3D_Rcd>().get(deDxMapHandle);
296  } else {
297  throw cms::Exception("WrongReccord for dEdx") << "The reccord : " << Reccord << "is unknown\n";
298  }
299 
300  float xmin = deDxMapHandle->rangeX().min;
301  float xmax = deDxMapHandle->rangeX().max;
302  float ymin = deDxMapHandle->rangeY().min;
303  float ymax = deDxMapHandle->rangeY().max;
304  float zmin = deDxMapHandle->rangeZ().min;
305  float zmax = deDxMapHandle->rangeZ().max;
306 
307  if (Prob_ChargePath)
308  delete Prob_ChargePath;
309  Prob_ChargePath = new TH3F("Prob_ChargePath",
310  "Prob_ChargePath",
311  deDxMapHandle->numberOfBinsX(),
312  xmin,
313  xmax,
314  deDxMapHandle->numberOfBinsY(),
315  ymin,
316  ymax,
317  deDxMapHandle->numberOfBinsZ(),
318  zmin,
319  zmax);
320 
321  if (strcmp(ProbabilityMode.c_str(), "Accumulation") == 0) {
322  for (int i = 0; i <= Prob_ChargePath->GetXaxis()->GetNbins() + 1; i++) {
323  for (int j = 0; j <= Prob_ChargePath->GetYaxis()->GetNbins() + 1; j++) {
324  float Ni = 0;
325  for (int k = 0; k <= Prob_ChargePath->GetZaxis()->GetNbins() + 1; k++) {
326  Ni += deDxMapHandle->binContent(i, j, k);
327  }
328  for (int k = 0; k <= Prob_ChargePath->GetZaxis()->GetNbins() + 1; k++) {
329  float tmp = 0;
330  for (int l = 0; l <= k; l++) {
331  tmp += deDxMapHandle->binContent(i, j, l);
332  }
333  if (Ni > 0) {
334  Prob_ChargePath->SetBinContent(i, j, k, tmp / Ni);
335  } else {
336  Prob_ChargePath->SetBinContent(i, j, k, 0);
337  }
338  }
339  }
340  }
341  } else if (strcmp(ProbabilityMode.c_str(), "Integral") == 0) {
342  for (int i = 0; i <= Prob_ChargePath->GetXaxis()->GetNbins() + 1; i++) {
343  for (int j = 0; j <= Prob_ChargePath->GetYaxis()->GetNbins() + 1; j++) {
344  float Ni = 0;
345  for (int k = 0; k <= Prob_ChargePath->GetZaxis()->GetNbins() + 1; k++) {
346  Ni += deDxMapHandle->binContent(i, j, k);
347  }
348  for (int k = 0; k <= Prob_ChargePath->GetZaxis()->GetNbins() + 1; k++) {
349  float tmp = deDxMapHandle->binContent(i, j, k);
350  if (Ni > 0) {
351  Prob_ChargePath->SetBinContent(i, j, k, tmp / Ni);
352  } else {
353  Prob_ChargePath->SetBinContent(i, j, k, 0);
354  }
355  }
356  }
357  }
358  } else {
359  throw cms::Exception("WrongConfig for dEdx") << "The ProbabilityMode: " << ProbabilityMode << "is unknown\n";
360  }
361  }

References PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::binContent(), Exception, edm::EventSetup::get(), get, mps_fire::i, dqmiolumiharvest::j, dqmdumpme::k, cmsLHEtoEOSManager::l, PhysicsTools::Calibration::Range< Axis_t >::max, PhysicsTools::Calibration::Range< Axis_t >::min, PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::numberOfBinsX(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::numberOfBinsY(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::numberOfBinsZ(), HLT_2018_cff::ProbabilityMode, PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::rangeX(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::rangeY(), PhysicsTools::Calibration::Histogram3D< Value_t, AxisX_t, AxisY_t, AxisZ_t >::rangeZ(), HLT_2018_cff::Reccord, createJobs::tmp, TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, L1TOccupancyClient_cfi::ymax, L1TOccupancyClient_cfi::ymin, SiStripMonitorCluster_cfi::zmax, and SiStripMonitorCluster_cfi::zmin.

Referenced by ASmirnovDeDxDiscriminator::beginRun(), SmirnovDeDxDiscriminator::beginRun(), ProductDeDxDiscriminator::beginRun(), and BTagLikeDeDxDiscriminator::beginRun().

◆ getCharge()

int DeDxTools::getCharge ( const SiStripCluster cluster,
int &  nSatStrip,
const GeomDetUnit detUnit,
const std::vector< std::vector< float > > &  calibGains,
const unsigned int &  m_off 
)

Definition at line 214 of file DeDxTools.cc.

218  {
219  const auto& Ampls = cluster->amplitudes();
220 
221  nSatStrip = 0;
222  int charge = 0;
223 
224  if (calibGains.empty()) {
225  for (unsigned int i = 0; i < Ampls.size(); i++) {
226  int calibratedCharge = Ampls[i];
227  charge += calibratedCharge;
228  if (calibratedCharge >= 254)
229  nSatStrip++;
230  }
231  } else {
232  for (unsigned int i = 0; i < Ampls.size(); i++) {
233  int calibratedCharge = Ampls[i];
234 
235  auto& gains = calibGains[detUnit.index() - m_off];
236  calibratedCharge = (int)(calibratedCharge / gains[(cluster->firstStrip() + i) / 128]);
237  if (calibratedCharge >= 255) {
238  if (calibratedCharge >= 1025)
239  calibratedCharge = 255;
240  else
241  calibratedCharge = 254;
242  }
243 
244  charge += calibratedCharge;
245  if (calibratedCharge >= 254)
246  nSatStrip++;
247  }
248  }
249  return charge;
250  }

References SiStripCluster::amplitudes(), ALCARECOTkAlJpsiMuMu_cff::charge, SiStripCluster::firstStrip(), mps_fire::i, GeomDet::index(), and createfilelist::int.

Referenced by DeDxDiscriminatorLearner::processHit(), HSCPDeDxInfoProducer::processHit(), DeDxHitInfoProducer::processHit(), DeDxEstimatorProducer::processHit(), and TrackFitter::run().

◆ IsFarFromBorder()

bool DeDxTools::IsFarFromBorder ( const TrajectoryStateOnSurface trajState,
const GeomDetUnit it 
)

Definition at line 404 of file DeDxTools.cc.

404  {
405  if (dynamic_cast<const StripGeomDetUnit*>(it) == nullptr && dynamic_cast<const PixelGeomDetUnit*>(it) == nullptr) {
406  edm::LogInfo("DeDxTools::IsFarFromBorder") << "this detID doesn't seem to belong to the Tracker" << std::endl;
407  return false;
408  }
409 
410  LocalPoint HitLocalPos = trajState.localPosition();
411  LocalError HitLocalError = trajState.localError().positionError();
412 
413  const BoundPlane plane = it->surface();
414  const TrapezoidalPlaneBounds* trapezoidalBounds(dynamic_cast<const TrapezoidalPlaneBounds*>(&(plane.bounds())));
415  const RectangularPlaneBounds* rectangularBounds(dynamic_cast<const RectangularPlaneBounds*>(&(plane.bounds())));
416 
417  if (!trapezoidalBounds && !rectangularBounds)
418  return false;
419 
420  double DistFromBorder = 1.0;
421  //double HalfWidth = it->surface().bounds().width() /2.0;
422  double HalfLength =
423  trapezoidalBounds ? (*trapezoidalBounds).parameters()[3] : it->surface().bounds().length() / 2.0;
424 
425  // if (fabs(HitLocalPos.x())+HitLocalError.xx() >= (HalfWidth - DistFromBorder) ) return false;//Don't think is really necessary
426  if (fabs(HitLocalPos.y()) + HitLocalError.yy() >= (HalfLength - DistFromBorder))
427  return false;
428 
429  return true;
430  }

References Surface::bounds(), ProducerES_cfi::HalfLength, Bounds::length(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), LocalTrajectoryError::positionError(), GeomDet::surface(), and LocalError::yy().

Referenced by DeDxDiscriminatorLearner::processHit().

◆ IsSpanningOver2APV()

bool DeDxTools::IsSpanningOver2APV ( unsigned int  FirstStrip,
unsigned int  ClusterSize 
)

Definition at line 363 of file DeDxTools.cc.

363  {
364  if (FirstStrip == 0)
365  return true;
366  if (FirstStrip == 128)
367  return true;
368  if (FirstStrip == 256)
369  return true;
370  if (FirstStrip == 384)
371  return true;
372  if (FirstStrip == 512)
373  return true;
374  if (FirstStrip == 640)
375  return true;
376 
377  if (FirstStrip <= 127 && FirstStrip + ClusterSize > 127)
378  return true;
379  if (FirstStrip <= 255 && FirstStrip + ClusterSize > 255)
380  return true;
381  if (FirstStrip <= 383 && FirstStrip + ClusterSize > 383)
382  return true;
383  if (FirstStrip <= 511 && FirstStrip + ClusterSize > 511)
384  return true;
385  if (FirstStrip <= 639 && FirstStrip + ClusterSize > 639)
386  return true;
387 
388  if (FirstStrip + ClusterSize == 127)
389  return true;
390  if (FirstStrip + ClusterSize == 255)
391  return true;
392  if (FirstStrip + ClusterSize == 383)
393  return true;
394  if (FirstStrip + ClusterSize == 511)
395  return true;
396  if (FirstStrip + ClusterSize == 639)
397  return true;
398  if (FirstStrip + ClusterSize == 767)
399  return true;
400 
401  return false;
402  }

References PixelTestBeamValidation_cfi::ClusterSize.

Referenced by DeDxDiscriminatorLearner::processHit().

◆ makeCalibrationMap()

void DeDxTools::makeCalibrationMap ( const std::string &  m_calibrationPath,
const TrackerGeometry tkGeom,
std::vector< std::vector< float > > &  calibGains,
const unsigned int &  m_off 
)

Definition at line 252 of file DeDxTools.cc.

255  {
256  auto const& dus = tkGeom.detUnits();
257  calibGains.resize(dus.size() - m_off);
258 
259  TChain* t1 = new TChain("SiStripCalib/APVGain");
260  t1->Add(m_calibrationPath.c_str());
261 
262  unsigned int tree_DetId;
263  unsigned char tree_APVId;
264  double tree_Gain;
265  t1->SetBranchAddress("DetId", &tree_DetId);
266  t1->SetBranchAddress("APVId", &tree_APVId);
267  t1->SetBranchAddress("Gain", &tree_Gain);
268 
269  for (unsigned int ientry = 0; ientry < t1->GetEntries(); ientry++) {
270  t1->GetEntry(ientry);
271  auto& gains = calibGains[tkGeom.idToDetUnit(DetId(tree_DetId))->index() - m_off];
272  if (gains.size() < (size_t)(tree_APVId + 1)) {
273  gains.resize(tree_APVId + 1);
274  }
275  gains[tree_APVId] = tree_Gain;
276  }
277  t1->Delete();
278  }

References TrackerGeometry::detUnits(), TrackerGeometry::idToDetUnit(), GeomDet::index(), and RandomServiceHelper::t1.

Referenced by DeDxDiscriminatorLearner::algoBeginJob(), HSCPDeDxInfoProducer::beginRun(), DeDxHitInfoProducer::beginRun(), DeDxEstimatorProducer::beginRun(), and FastTrackDeDxProducer::beginRun().

◆ shapeSelection()

bool DeDxTools::shapeSelection ( const SiStripCluster ampls)

Definition at line 9 of file DeDxTools.cc.

9  {
10  // ---------------- COMPTAGE DU NOMBRE DE MAXIMA --------------------------
11  //----------------------------------------------------------------------------
12  // printf("ShapeTest \n");
13  auto const& ampls = clus.amplitudes();
14  Int_t NofMax = 0;
15  Int_t recur255 = 1;
16  Int_t recur254 = 1;
17  bool MaxOnStart = false;
18  bool MaxInMiddle = false, MaxOnEnd = false;
19  Int_t MaxPos = 0;
20  // Début avec max
21  if (ampls.size() != 1 &&
22  ((ampls[0] > ampls[1]) ||
23  (ampls.size() > 2 && ampls[0] == ampls[1] && ampls[1] > ampls[2] && ampls[0] != 254 && ampls[0] != 255) ||
24  (ampls.size() == 2 && ampls[0] == ampls[1] && ampls[0] != 254 && ampls[0] != 255))) {
25  NofMax = NofMax + 1;
26  MaxOnStart = true;
27  }
28 
29  // Maximum entouré
30  if (ampls.size() > 2) {
31  for (unsigned int i = 1; i < ampls.size() - 1U; i++) {
32  if ((ampls[i] > ampls[i - 1] && ampls[i] > ampls[i + 1]) ||
33  (ampls.size() > 3 && i > 0 && i < ampls.size() - 2U && ampls[i] == ampls[i + 1] &&
34  ampls[i] > ampls[i - 1] && ampls[i] > ampls[i + 2] && ampls[i] != 254 && ampls[i] != 255)) {
35  NofMax = NofMax + 1;
36  MaxInMiddle = true;
37  MaxPos = i;
38  }
39  if (ampls[i] == 255 && ampls[i] == ampls[i - 1]) {
40  recur255 = recur255 + 1;
41  MaxPos = i - (recur255 / 2);
42  if (ampls[i] > ampls[i + 1]) {
43  NofMax = NofMax + 1;
44  MaxInMiddle = true;
45  }
46  }
47  if (ampls[i] == 254 && ampls[i] == ampls[i - 1]) {
48  recur254 = recur254 + 1;
49  MaxPos = i - (recur254 / 2);
50  if (ampls[i] > ampls[i + 1]) {
51  NofMax = NofMax + 1;
52  MaxInMiddle = true;
53  }
54  }
55  }
56  }
57  // Fin avec un max
58  if (ampls.size() > 1) {
59  if (ampls[ampls.size() - 1] > ampls[ampls.size() - 2] ||
60  (ampls.size() > 2 && ampls[ampls.size() - 1] == ampls[ampls.size() - 2] &&
61  ampls[ampls.size() - 2] > ampls[ampls.size() - 3]) ||
62  ampls[ampls.size() - 1] == 255) {
63  NofMax = NofMax + 1;
64  MaxOnEnd = true;
65  }
66  }
67  // Si une seule strip touchée
68  if (ampls.size() == 1) {
69  NofMax = 1;
70  }
71 
72  // --- SELECTION EN FONCTION DE LA FORME POUR LES MAXIMA UNIQUES ---------
73  //------------------------------------------------------------------------
74  /*
75  ____
76  | |____
77  ____| | |
78  | | | |____
79  ____| | | | |
80  | | | | | |____
81  __|____|____|____|____|____|____|__
82  C_Mnn C_Mn C_M C_D C_Dn C_Dnn
83  */
84  // bool shapetest=true;
85  bool shapecdtn = false;
86 
87  // Float_t C_M; Float_t C_D; Float_t C_Mn; Float_t C_Dn; Float_t C_Mnn; Float_t C_Dnn;
88  Float_t C_M = 0.0;
89  Float_t C_D = 0.0;
90  Float_t C_Mn = 10000;
91  Float_t C_Dn = 10000;
92  Float_t C_Mnn = 10000;
93  Float_t C_Dnn = 10000;
94  Int_t CDPos;
95  Float_t coeff1 = 1.7;
96  Float_t coeff2 = 2.0;
97  Float_t coeffn = 0.10;
98  Float_t coeffnn = 0.02;
99  Float_t noise = 4.0;
100 
101  if (NofMax == 1) {
102  if (MaxOnStart == true) {
103  C_M = (Float_t)ampls[0];
104  C_D = (Float_t)ampls[1];
105  if (ampls.size() < 3)
106  shapecdtn = true;
107  else if (ampls.size() == 3) {
108  C_Dn = (Float_t)ampls[2];
109  if (C_Dn <= coeff1 * coeffn * C_D + coeff2 * coeffnn * C_M + 2 * noise || C_D == 255)
110  shapecdtn = true;
111  } else if (ampls.size() > 3) {
112  C_Dn = (Float_t)ampls[2];
113  C_Dnn = (Float_t)ampls[3];
114  if ((C_Dn <= coeff1 * coeffn * C_D + coeff2 * coeffnn * C_M + 2 * noise || C_D == 255) &&
115  C_Dnn <= coeff1 * coeffn * C_Dn + coeff2 * coeffnn * C_D + 2 * noise) {
116  shapecdtn = true;
117  }
118  }
119  }
120 
121  if (MaxOnEnd == true) {
122  C_M = (Float_t)ampls[ampls.size() - 1];
123  C_D = (Float_t)ampls[ampls.size() - 2];
124  if (ampls.size() < 3)
125  shapecdtn = true;
126  else if (ampls.size() == 3) {
127  C_Dn = (Float_t)ampls[0];
128  if (C_Dn <= coeff1 * coeffn * C_D + coeff2 * coeffnn * C_M + 2 * noise || C_D == 255)
129  shapecdtn = true;
130  } else if (ampls.size() > 3) {
131  C_Dn = (Float_t)ampls[ampls.size() - 3];
132  C_Dnn = (Float_t)ampls[ampls.size() - 4];
133  if ((C_Dn <= coeff1 * coeffn * C_D + coeff2 * coeffnn * C_M + 2 * noise || C_D == 255) &&
134  C_Dnn <= coeff1 * coeffn * C_Dn + coeff2 * coeffnn * C_D + 2 * noise) {
135  shapecdtn = true;
136  }
137  }
138  }
139 
140  if (MaxInMiddle == true) {
141  C_M = (Float_t)ampls[MaxPos];
142  int LeftOfMaxPos = MaxPos - 1;
143  if (LeftOfMaxPos <= 0)
144  LeftOfMaxPos = 0;
145  int RightOfMaxPos = MaxPos + 1;
146  if (RightOfMaxPos >= (int)ampls.size())
147  RightOfMaxPos = ampls.size() - 1;
148  //int after = RightOfMaxPos; int before = LeftOfMaxPos; if (after>=(int)ampls.size() || before<0) std::cout<<"invalid read MaxPos:"<<MaxPos <<"size:"<<ampls.size() <<std::endl;
149  if (ampls[LeftOfMaxPos] < ampls[RightOfMaxPos]) {
150  C_D = (Float_t)ampls[RightOfMaxPos];
151  C_Mn = (Float_t)ampls[LeftOfMaxPos];
152  CDPos = RightOfMaxPos;
153  } else {
154  C_D = (Float_t)ampls[LeftOfMaxPos];
155  C_Mn = (Float_t)ampls[RightOfMaxPos];
156  CDPos = LeftOfMaxPos;
157  }
158  if (C_Mn < coeff1 * coeffn * C_M + coeff2 * coeffnn * C_D + 2 * noise || C_M == 255) {
159  if (ampls.size() == 3)
160  shapecdtn = true;
161  else if (ampls.size() > 3) {
162  if (CDPos > MaxPos) {
163  if (ampls.size() - CDPos - 1 == 0) {
164  C_Dn = 0;
165  C_Dnn = 0;
166  }
167  if (ampls.size() - CDPos - 1 == 1) {
168  C_Dn = (Float_t)ampls[CDPos + 1];
169  C_Dnn = 0;
170  }
171  if (ampls.size() - CDPos - 1 > 1) {
172  C_Dn = (Float_t)ampls[CDPos + 1];
173  C_Dnn = (Float_t)ampls[CDPos + 2];
174  }
175  if (MaxPos >= 2) {
176  C_Mnn = (Float_t)ampls[MaxPos - 2];
177  } else if (MaxPos < 2)
178  C_Mnn = 0;
179  }
180  if (CDPos < MaxPos) {
181  if (CDPos == 0) {
182  C_Dn = 0;
183  C_Dnn = 0;
184  }
185  if (CDPos == 1) {
186  C_Dn = (Float_t)ampls[0];
187  C_Dnn = 0;
188  }
189  if (CDPos > 1) {
190  C_Dn = (Float_t)ampls[CDPos - 1];
191  C_Dnn = (Float_t)ampls[CDPos - 2];
192  }
193  if (ampls.size() - LeftOfMaxPos > 1 && MaxPos + 2 < (int)(ampls.size()) - 1) {
194  C_Mnn = (Float_t)ampls[MaxPos + 2];
195  } else
196  C_Mnn = 0;
197  }
198  if ((C_Dn <= coeff1 * coeffn * C_D + coeff2 * coeffnn * C_M + 2 * noise || C_D == 255) &&
199  C_Mnn <= coeff1 * coeffn * C_Mn + coeff2 * coeffnn * C_M + 2 * noise &&
200  C_Dnn <= coeff1 * coeffn * C_Dn + coeff2 * coeffnn * C_D + 2 * noise) {
201  shapecdtn = true;
202  }
203  }
204  }
205  }
206  }
207  if (ampls.size() == 1) {
208  shapecdtn = true;
209  }
210 
211  return shapecdtn;
212  }

References SiStripCluster::amplitudes(), mps_fire::i, createfilelist::int, hgcalDigitizer_cfi::noise, and mitigatedMETSequence_cff::U.

Referenced by pat::PATIsolatedTrackProducer::getDeDx(), DeDxDiscriminatorLearner::processHit(), DeDxEstimatorProducer::processHit(), and DeDxHitInfoProducer::produce().

PhysicsTools::Calibration::Histogram3D::numberOfBinsZ
int numberOfBinsZ() const
Definition: Histogram3D.h:126
mps_fire.i
i
Definition: mps_fire.py:355
ProducerES_cfi.HalfLength
HalfLength
Definition: ProducerES_cfi.py:87
SiStripDeDxMip_3D_Rcd
Definition: SiStripDeDxMip_3D_Rcd.h:6
LocalTrajectoryError::positionError
LocalError positionError() const
Definition: LocalTrajectoryError.h:81
edm::LogInfo
Definition: MessageLogger.h:254
SiStripDeDxProton_3D_Rcd
Definition: SiStripDeDxProton_3D_Rcd.h:6
GeomDet::index
int index() const
Definition: GeomDet.h:83
PhysicsTools::Calibration::Histogram3D::rangeY
RangeY rangeY() const
Definition: Histogram3D.h:137
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
SiStripMonitorCluster_cfi.zmin
zmin
Definition: SiStripMonitorCluster_cfi.py:200
Bounds::length
virtual float length() const =0
SiStripCluster::firstStrip
uint16_t firstStrip() const
Definition: SiStripCluster.h:38
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
PhysicsTools::Calibration::Range::max
Axis_t max
Definition: Histogram.h:29
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
L1TOccupancyClient_cfi.ymax
ymax
Definition: L1TOccupancyClient_cfi.py:43
SiStripMonitorCluster_cfi.zmax
zmax
Definition: SiStripMonitorCluster_cfi.py:201
TrackerGeometry::detUnits
const DetContainer & detUnits() const override
Returm a vector of all GeomDet.
Definition: TrackerGeometry.h:61
Surface::bounds
const Bounds & bounds() const
Definition: Surface.h:87
edm::ESHandle
Definition: DTSurvey.h:22
dqmdumpme.k
k
Definition: dqmdumpme.py:60
Point3DBase< float, LocalTag >
PhysicsTools::Calibration::Histogram3D::rangeX
RangeX rangeX() const
Definition: Histogram3D.h:136
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
PhysicsTools::Calibration::Range::min
Axis_t min
Definition: Histogram.h:29
TrajectoryStateOnSurface::localPosition
LocalPoint localPosition() const
Definition: TrajectoryStateOnSurface.h:74
SiStripDeDxKaon_3D_Rcd
Definition: SiStripDeDxKaon_3D_Rcd.h:6
LocalError
Definition: LocalError.h:12
hgcalDigitizer_cfi.noise
noise
Definition: hgcalDigitizer_cfi.py:150
SiStripDeDxPion_3D_Rcd
Definition: SiStripDeDxPion_3D_Rcd.h:6
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
SiStripCluster::amplitudes
const std::vector< uint8_t > & amplitudes() const
Definition: SiStripCluster.h:51
createfilelist.int
int
Definition: createfilelist.py:10
PixelTestBeamValidation_cfi.ClusterSize
ClusterSize
Definition: PixelTestBeamValidation_cfi.py:72
SiStripDeDxElectron_3D_Rcd
Definition: SiStripDeDxElectron_3D_Rcd.h:6
PhysicsTools::Calibration::Histogram3D::numberOfBinsY
int numberOfBinsY() const
Definition: Histogram3D.h:125
PhysicsTools::Calibration::Histogram3D::binContent
Value_t binContent(int bin) const
Definition: Histogram3D.h:93
TrapezoidalPlaneBounds
Definition: TrapezoidalPlaneBounds.h:15
get
#define get
HLT_2018_cff.Reccord
Reccord
Definition: HLT_2018_cff.py:51320
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
RectangularPlaneBounds
Definition: RectangularPlaneBounds.h:12
L1TOccupancyClient_cfi.ymin
ymin
Definition: L1TOccupancyClient_cfi.py:43
TrackerOfflineValidation_Dqm_cff.xmax
xmax
Definition: TrackerOfflineValidation_Dqm_cff.py:11
Exception
Definition: hltDiff.cc:246
BoundPlane
PhysicsTools::Calibration::Histogram3D::numberOfBinsX
int numberOfBinsX() const
Definition: Histogram3D.h:124
PhysicsTools::Calibration::Histogram3D::rangeZ
RangeZ rangeZ() const
Definition: Histogram3D.h:138
TrackerOfflineValidation_Dqm_cff.xmin
xmin
Definition: TrackerOfflineValidation_Dqm_cff.py:10
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HLT_2018_cff.ProbabilityMode
ProbabilityMode
Definition: HLT_2018_cff.py:51313
TrajectoryStateOnSurface::localError
const LocalTrajectoryError & localError() const
Definition: TrajectoryStateOnSurface.h:77
LocalError::yy
float yy() const
Definition: LocalError.h:24