CMS 3D CMS Logo

FastPrimaryVertexWithWeightsProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: FastPrimaryVertexWithWeightsProducer
4 // Class: FastPrimaryVertexWithWeightsProducer
5 //
14 //
15 // Original Author: Silvio DONATO
16 // Created: Wed Dec 18 10:05:40 CET 2013
17 //
18 //
19 
20 // system include files
21 #include <memory>
22 #include <vector>
23 #include <cmath>
24 // user include files
33 
44 
49 
51 
53 
54 using namespace std;
55 
57 public:
59  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
60 
61 private:
62  void produce(edm::Event&, const edm::EventSetup&) override;
63 
64  const double m_maxZ; // Use only pixel clusters with |z| < maxZ
65  const edm::InputTag m_clusters; // PixelClusters InputTag
66  std::string m_pixelCPE; // PixelCPE (PixelClusterParameterEstimator)
70 
71  // PARAMETERS USED IN THE BARREL PIXEL CLUSTERS PROJECTION
72  const int m_njets; // Use only the first njets
73  const double m_maxJetEta; // Use only jets with |eta| < maxJetEta
74  const double m_minJetPt; // Use only jets with Pt > minJetPt
75  const bool m_barrel; // Use clusters from pixel endcap
76  const double m_maxSizeX; // Use only pixel clusters with sizeX <= maxSizeX
77  const double m_maxDeltaPhi; // Use only pixel clusters with DeltaPhi(Jet,Cluster) < maxDeltaPhi
78  const double m_weight_charge_down; // Use only pixel clusters with ClusterCharge > weight_charge_down
79  const double m_weight_charge_up; // Use only pixel clusters with ClusterCharge < weight_charge_up
80  //It is the ratio between pixel cell height and width along z coordinate about 285µm/150µm=1.9
82  // Use only pixel clusters with sizeY > PixelCellHeightOverWidth * |jetZOverRho| + minSizeY_q
83  const double m_minSizeY_q;
84  // Use only pixel clusters with sizeY < PixelCellHeightOverWidth * |jetZOverRho| + maxSizeY_q
85  const double m_maxSizeY_q;
86 
87  // PARAMETERS USED TO WEIGHT THE BARREL PIXEL CLUSTERS
88  // The cluster weight is defined as weight = weight_dPhi * weight_sizeY * weight_rho * weight_sizeX1 * weight_charge
89 
90  const double m_weight_dPhi; // used in weight_dPhi = exp(-|DeltaPhi(JetCluster)|/m_weight_dPhi)
91  const double m_weight_SizeX1; // used in weight_SizeX1 = (ClusterSizeX==2)*1+(ClusterSizeX==1)*m_weight_SizeX1;
92  const double m_weight_rho_up; // used in weight_rho = (m_weight_rho_up - ClusterRho)/m_weight_rho_up
93  const double m_weight_charge_peak; // Give the maximum weight_charge for a cluster with Charge = m_weight_charge_peak
94  // Give the maximum weight_sizeY for a cluster with sizeY = PixelCellHeightOverWidth * |jetZOverRho| + peakSizeY_q
95  const double m_peakSizeY_q;
96 
97  // PARAMETERS USED IN THE ENDCAP PIXEL CLUSTERS PROJECTION
98  const bool m_endCap; // Use clusters from pixel endcap
99  const double m_minJetEta_EC; // Use only jets with |eta| > minJetEta_EC
100  const double m_maxJetEta_EC; // Use only jets with |eta| < maxJetEta_EC
101  const double m_maxDeltaPhi_EC; // Use only pixel clusters with DeltaPhi(Jet,Cluster) < maxDeltaPhi_EC
102 
103  // PARAMETERS USED TO WEIGHT THE ENDCAP PIXEL CLUSTERS
104  const double m_EC_weight; // In EndCap the weight is defined as weight = m_EC_weight*(weight_dPhi)
105  const double m_weight_dPhi_EC; // Used in weight_dPhi = exp(-|DeltaPhi|/m_weight_dPhi_EC )
106 
107  // PARAMETERS USED TO FIND THE FASTPV AS PEAK IN THE Z-PROJECTIONS DISTRIBUTION
108  // First Iteration: look for a cluster with a width = m_zClusterWidth_step1
109  const double m_zClusterWidth_step1; // cluster width in step1
110 
111  // Second Iteration: use only z-projections with weight > weightCut_step2 and look for a cluster with a width = m_zClusterWidth_step2, within of weightCut_step2 of the previous result
112  const double m_zClusterWidth_step2; // cluster width in step2
113  const double m_zClusterSearchArea_step2; // cluster width in step2
114  const double m_weightCut_step2; // minimum z-projections weight required in step2
115 
116  // Third Iteration: use only z-projections with weight > weightCut_step3 and look for a cluster with a width = m_zClusterWidth_step3, within of weightCut_step3 of the previous result
117  const double m_zClusterWidth_step3; // cluster width in step3
118  const double m_zClusterSearchArea_step3; // cluster width in step3
119  const double m_weightCut_step3; // minimum z-projections weight required in step3
120 
121  // use the jetPt weighting
122  const bool m_ptWeighting; // use weight=weight*pt_weigth ?;
123  const double m_ptWeighting_slope; // pt_weigth= pt*ptWeighting_slope +m_ptWeighting_offset;
124  const double m_ptWeighting_offset; //
125 };
126 
128  : m_maxZ(iConfig.getParameter<double>("maxZ")),
129  m_pixelCPE(iConfig.getParameter<std::string>("pixelCPE")),
130 
131  m_njets(iConfig.getParameter<int>("njets")),
132  m_maxJetEta(iConfig.getParameter<double>("maxJetEta")),
133  m_minJetPt(iConfig.getParameter<double>("minJetPt")),
134 
135  m_barrel(iConfig.getParameter<bool>("barrel")),
136  m_maxSizeX(iConfig.getParameter<double>("maxSizeX")),
137  m_maxDeltaPhi(iConfig.getParameter<double>("maxDeltaPhi")),
138  m_weight_charge_down(iConfig.getParameter<double>("weight_charge_down")),
139  m_weight_charge_up(iConfig.getParameter<double>("weight_charge_up")),
140  m_PixelCellHeightOverWidth(iConfig.getParameter<double>("PixelCellHeightOverWidth")),
141  m_minSizeY_q(iConfig.getParameter<double>("minSizeY_q")),
142  m_maxSizeY_q(iConfig.getParameter<double>("maxSizeY_q")),
143 
144  m_weight_dPhi(iConfig.getParameter<double>("weight_dPhi")),
145  m_weight_SizeX1(iConfig.getParameter<double>("weight_SizeX1")),
146  m_weight_rho_up(iConfig.getParameter<double>("weight_rho_up")),
147  m_weight_charge_peak(iConfig.getParameter<double>("weight_charge_peak")),
148  m_peakSizeY_q(iConfig.getParameter<double>("peakSizeY_q")),
149 
150  m_endCap(iConfig.getParameter<bool>("endCap")),
151  m_minJetEta_EC(iConfig.getParameter<double>("minJetEta_EC")),
152  m_maxJetEta_EC(iConfig.getParameter<double>("maxJetEta_EC")),
153  m_maxDeltaPhi_EC(iConfig.getParameter<double>("maxDeltaPhi_EC")),
154  m_EC_weight(iConfig.getParameter<double>("EC_weight")),
155  m_weight_dPhi_EC(iConfig.getParameter<double>("weight_dPhi_EC")),
156 
157  m_zClusterWidth_step1(iConfig.getParameter<double>("zClusterWidth_step1")),
158 
159  m_zClusterWidth_step2(iConfig.getParameter<double>("zClusterWidth_step2")),
160  m_zClusterSearchArea_step2(iConfig.getParameter<double>("zClusterSearchArea_step2")),
161  m_weightCut_step2(iConfig.getParameter<double>("weightCut_step2")),
162 
163  m_zClusterWidth_step3(iConfig.getParameter<double>("zClusterWidth_step3")),
164  m_zClusterSearchArea_step3(iConfig.getParameter<double>("zClusterSearchArea_step3")),
165  m_weightCut_step3(iConfig.getParameter<double>("weightCut_step3")),
166 
167  m_ptWeighting(iConfig.getParameter<bool>("ptWeighting")),
168  m_ptWeighting_slope(iConfig.getParameter<double>("ptWeighting_slope")),
169  m_ptWeighting_offset(iConfig.getParameter<double>("ptWeighting_offset")) {
170  clustersToken = consumes<SiPixelClusterCollectionNew>(iConfig.getParameter<edm::InputTag>("clusters"));
171  beamSpotToken = consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"));
172  jetsToken = consumes<edm::View<reco::Jet> >(iConfig.getParameter<edm::InputTag>("jets"));
173 
174  produces<reco::VertexCollection>();
175  produces<float>();
176 }
177 
180  desc.add<edm::InputTag>("clusters", edm::InputTag("hltSiPixelClusters"));
181  desc.add<edm::InputTag>("beamSpot", edm::InputTag("hltOnlineBeamSpot"));
182  desc.add<edm::InputTag>("jets", edm::InputTag("hltCaloJetL1FastJetCorrected"));
183  desc.add<std::string>("pixelCPE", "hltESPPixelCPEGeneric");
184  desc.add<double>("maxZ", 19.0);
185  desc.add<int>("njets", 999);
186  desc.add<double>("maxJetEta", 2.6);
187  desc.add<double>("minJetPt", 40.);
188  desc.add<bool>("barrel", true);
189  desc.add<double>("maxSizeX", 2.1);
190  desc.add<double>("maxDeltaPhi", 0.21);
191  desc.add<double>("PixelCellHeightOverWidth", 1.8);
192  desc.add<double>("weight_charge_down", 11. * 1000.);
193  desc.add<double>("weight_charge_up", 190. * 1000.);
194  desc.add<double>("maxSizeY_q", 2.0);
195  desc.add<double>("minSizeY_q", -0.6);
196  desc.add<double>("weight_dPhi", 0.13888888);
197  desc.add<double>("weight_SizeX1", 0.88);
198  desc.add<double>("weight_rho_up", 22.);
199  desc.add<double>("weight_charge_peak", 22. * 1000.);
200  desc.add<double>("peakSizeY_q", 1.0);
201  desc.add<bool>("endCap", true);
202  desc.add<double>("minJetEta_EC", 1.3);
203  desc.add<double>("maxJetEta_EC", 2.6);
204  desc.add<double>("maxDeltaPhi_EC", 0.14);
205  desc.add<double>("EC_weight", 0.008);
206  desc.add<double>("weight_dPhi_EC", 0.064516129);
207  desc.add<double>("zClusterWidth_step1", 2.0);
208  desc.add<double>("zClusterWidth_step2", 0.65);
209  desc.add<double>("zClusterSearchArea_step2", 3.0);
210  desc.add<double>("weightCut_step2", 0.05);
211  desc.add<double>("zClusterWidth_step3", 0.3);
212  desc.add<double>("zClusterSearchArea_step3", 0.55);
213  desc.add<double>("weightCut_step3", 0.1);
214  desc.add<bool>("ptWeighting", false); // <---- newMethod
215  desc.add<double>("ptWeighting_slope", 1 / 20.);
216  desc.add<double>("ptWeighting_offset", -1);
217  descriptions.add("fastPrimaryVertexWithWeightsProducer", desc);
218 }
219 
221  using namespace edm;
222  using namespace reco;
223  using namespace std;
224 
225  const float barrel_lenght = 30; //half lenght of the pixel barrel 30 cm
226 
227  //get pixel cluster
229  iEvent.getByToken(clustersToken, cH);
231 
232  //get jets
234  iEvent.getByToken(jetsToken, jH);
235  const edm::View<reco::Jet>& jets = *jH.product();
236 
237  vector<const reco::Jet*> selectedJets;
238  int countjet = 0;
239  for (edm::View<reco::Jet>::const_iterator it = jets.begin(); it != jets.end() && countjet < m_njets; it++) {
240  if ( //select jets used in barrel or endcap pixel cluster projections
241  ((it->pt() >= m_minJetPt) && std::abs(it->eta()) <= m_maxJetEta) || //barrel
242  ((it->pt() >= m_minJetPt) && std::abs(it->eta()) <= m_maxJetEta_EC &&
243  std::abs(it->eta()) >= m_minJetEta_EC) //endcap
244  ) {
245  selectedJets.push_back(&(*it));
246  countjet++;
247  }
248  }
249 
250  //get PixelClusterParameterEstimator
253  iSetup.get<TkPixelCPERecord>().get(m_pixelCPE, pe);
254  pp = pe.product();
255 
256  //get beamSpot
258  iEvent.getByToken(beamSpotToken, beamSpot);
259 
260  //get TrackerGeometry
263  const TrackerGeometry* trackerGeometry = tracker.product();
264 
265  // PART I: get z-projections with z-weights
266  std::vector<float> zProjections;
267  std::vector<float> zWeights;
268  int jet_count = 0;
269  for (vector<const reco::Jet*>::iterator jit = selectedJets.begin(); jit != selectedJets.end();
270  jit++) { //loop on selected jets
271  float px = (*jit)->px();
272  float py = (*jit)->py();
273  float pz = (*jit)->pz();
274  float pt = (*jit)->pt();
275  float eta = (*jit)->eta();
276  float jetZOverRho = (*jit)->momentum().Z() / (*jit)->momentum().Rho();
277  float pt_weight = pt * m_ptWeighting_slope + m_ptWeighting_offset;
279  it++) //Loop on pixel modules with clusters
280  { //loop on pixel modules
281  DetId id = it->detId();
282  const edmNew::DetSet<SiPixelCluster>& detset = (*it);
283  Point3DBase<float, GlobalTag> modulepos = trackerGeometry->idToDet(id)->position();
284  float zmodule = modulepos.z() -
285  ((modulepos.x() - beamSpot->x0()) * px + (modulepos.y() - beamSpot->y0()) * py) / pt * pz / pt;
286  if ((std::abs(deltaPhi((*jit)->momentum().Phi(), modulepos.phi())) < m_maxDeltaPhi * 2) &&
287  (std::abs(zmodule) < (m_maxZ + barrel_lenght))) { //if it is a compatible module
288  for (size_t j = 0; j < detset.size(); j++) { //loop on pixel clusters on this module
289  const SiPixelCluster& aCluster = detset[j];
290  if ( //it is a cluster to project
291  ( // barrel
292  m_barrel && std::abs(modulepos.z()) < barrel_lenght && pt >= m_minJetPt && jet_count < m_njets &&
293  std::abs(eta) <= m_maxJetEta && aCluster.sizeX() <= m_maxSizeX &&
294  aCluster.sizeY() >= m_PixelCellHeightOverWidth * std::abs(jetZOverRho) + m_minSizeY_q &&
295  aCluster.sizeY() <= m_PixelCellHeightOverWidth * std::abs(jetZOverRho) + m_maxSizeY_q) ||
296  ( // EC
297  m_endCap && std::abs(modulepos.z()) > barrel_lenght && pt > m_minJetPt && jet_count < m_njets &&
299  aCluster.sizeX() <= m_maxSizeX)) {
300  Point3DBase<float, GlobalTag> v = trackerGeometry->idToDet(id)->surface().toGlobal(
301  pp->localParametersV(aCluster, (*trackerGeometry->idToDetUnit(id)))[0].first);
302  GlobalPoint v_bs(v.x() - beamSpot->x0(), v.y() - beamSpot->y0(), v.z());
303  if ( //it pass DeltaPhi(Jet,Cluster) requirements
304  (m_barrel && std::abs(modulepos.z()) < barrel_lenght &&
305  std::abs(deltaPhi((*jit)->momentum().Phi(), v_bs.phi())) <= m_maxDeltaPhi) || //barrel
306  (m_endCap && std::abs(modulepos.z()) > barrel_lenght &&
307  std::abs(deltaPhi((*jit)->momentum().Phi(), v_bs.phi())) <= m_maxDeltaPhi_EC) //EC
308  ) {
309  //calculate z-projection
310  float z = v.z() - ((v.x() - beamSpot->x0()) * px + (v.y() - beamSpot->y0()) * py) / pt * pz / pt;
311  if (std::abs(z) < m_maxZ) {
312  zProjections.push_back(z); //add z-projection in zProjections
313  float weight = 0;
314  //calculate zWeight
315  if (std::abs(modulepos.z()) < barrel_lenght) { //barrel
316  //calculate weight_sizeY
317  float sizeY = aCluster.sizeY();
318  float sizeY_up = m_PixelCellHeightOverWidth * std::abs(jetZOverRho) + m_maxSizeY_q;
319  float sizeY_peak = m_PixelCellHeightOverWidth * std::abs(jetZOverRho) + m_peakSizeY_q;
320  float sizeY_down = m_PixelCellHeightOverWidth * std::abs(jetZOverRho) + m_minSizeY_q;
321  float weight_sizeY_up = (sizeY_up - sizeY) / (sizeY_up - sizeY_peak);
322  float weight_sizeY_down = (sizeY - sizeY_down) / (sizeY_peak - sizeY_down);
323  weight_sizeY_down = weight_sizeY_down * (weight_sizeY_down > 0) * (weight_sizeY_down < 1);
324  weight_sizeY_up = weight_sizeY_up * (weight_sizeY_up > 0) * (weight_sizeY_up < 1);
325  float weight_sizeY = weight_sizeY_up + weight_sizeY_down;
326 
327  //calculate weight_rho
328  float rho = sqrt(v_bs.x() * v_bs.x() + v_bs.y() * v_bs.y());
329  float weight_rho = ((m_weight_rho_up - rho) / m_weight_rho_up);
330 
331  //calculate weight_dPhi
332  float weight_dPhi = exp(-std::abs(deltaPhi((*jit)->momentum().Phi(), v_bs.phi())) / m_weight_dPhi);
333 
334  //calculate weight_sizeX1
335  float weight_sizeX1 = (aCluster.sizeX() == 2) + (aCluster.sizeX() == 1) * m_weight_SizeX1;
336 
337  //calculate weight_charge
338  float charge = aCluster.charge();
339  float weightCluster_up = (m_weight_charge_up - charge) / (m_weight_charge_up - m_weight_charge_peak);
340  float weightCluster_down =
342  weightCluster_down = weightCluster_down * (weightCluster_down > 0) * (weightCluster_down < 1);
343  weightCluster_up = weightCluster_up * (weightCluster_up > 0) * (weightCluster_up < 1);
344  float weight_charge = weightCluster_up + weightCluster_down;
345 
346  //calculate the final weight
347  weight = weight_dPhi * weight_sizeY * weight_rho * weight_sizeX1 * weight_charge;
348  } else if (std::abs(modulepos.z()) > barrel_lenght) // EC
349  { // EC
350  //calculate weight_dPhi
351  float weight_dPhi = exp(-std::abs(deltaPhi((*jit)->momentum().Phi(), v_bs.phi())) / m_weight_dPhi_EC);
352  //calculate the final weight
354  }
355  if (m_ptWeighting)
356  weight = weight * pt_weight;
357  zWeights.push_back(weight); //add the weight to zWeights
358  }
359  } //if it pass DeltaPhi(Jet,Cluster) requirements
360  }
361  } //loop on pixel clusters on this module
362  } //if it is a compatible module
363  } //loop on pixel modules
364  jet_count++;
365  } //loop on selected jets
366 
367  //order zProjections and zWeights by z
368  std::multimap<float, float> zWithW;
369  size_t i = 0;
370  for (i = 0; i < zProjections.size(); i++)
371  zWithW.insert(std::pair<float, float>(zProjections[i], zWeights[i]));
372  i = 0;
373  for (std::multimap<float, float>::iterator it = zWithW.begin(); it != zWithW.end(); it++, i++) {
374  zProjections[i] = it->first;
375  zWeights[i] = it->second;
376  } //order zProjections and zWeights by z
377 
378  //calculate zWeightsSquared
379  std::vector<float> zWeightsSquared;
380  for (std::vector<float>::iterator it = zWeights.begin(); it != zWeights.end(); it++) {
381  zWeightsSquared.push_back((*it) * (*it));
382  }
383 
384  //do multi-step peak searching
385  float res_step1 = FindPeakFastPV(zProjections, zWeights, 0.0, m_zClusterWidth_step1, 999.0, -1.0);
386  float res_step2 = FindPeakFastPV(
387  zProjections, zWeights, res_step1, m_zClusterWidth_step2, m_zClusterSearchArea_step2, m_weightCut_step2);
388  float res_step3 = FindPeakFastPV(zProjections,
389  zWeightsSquared,
390  res_step2,
394 
395  float centerWMax = res_step3;
396  //End of PART II
397 
398  //Make the output
399  float res = 0;
400  if (zProjections.size() > 2) {
401  res = centerWMax;
403  e(0, 0) = 0.0015 * 0.0015;
404  e(1, 1) = 0.0015 * 0.0015;
405  e(2, 2) = 1.5 * 1.5;
407  Vertex thePV(p, e, 1, 1, 0);
408  auto pOut = std::make_unique<reco::VertexCollection>();
409  pOut->push_back(thePV);
410  iEvent.put(std::move(pOut));
411  } else {
413  e(0, 0) = 0.0015 * 0.0015;
414  e(1, 1) = 0.0015 * 0.0015;
415  e(2, 2) = 1.5 * 1.5;
417  Vertex thePV(p, e, 0, 0, 0);
418  auto pOut = std::make_unique<reco::VertexCollection>();
419  pOut->push_back(thePV);
420  iEvent.put(std::move(pOut));
421  }
422 
423  //Finally, calculate the zClusterQuality as Sum(weights near the fastPV)/sqrt(Sum(total weights)) [a kind of zCluster significance]
424 
425  const float half_width_peak = 1;
426  float nWeightedTot = 0;
427  float nWeightedTotPeak = 0;
428  for (std::vector<float>::iterator it = zProjections.begin(); it != zProjections.end(); it++) {
429  nWeightedTot += zWeights[it - zProjections.begin()];
430  if ((res - half_width_peak) <= (*it) && (*it) <= (res + half_width_peak)) {
431  nWeightedTotPeak += zWeights[it - zProjections.begin()];
432  }
433  }
434 
435  auto zClusterQuality = std::make_unique<float>();
436  *zClusterQuality = -1;
437  if (nWeightedTot != 0) {
438  // where 30 is the beam spot lenght
439  *zClusterQuality = nWeightedTotPeak / sqrt(nWeightedTot / (2 * half_width_peak));
440  iEvent.put(std::move(zClusterQuality));
441  } else
442  iEvent.put(std::move(zClusterQuality));
443 }
444 
445 //define this as a plug-in
GeomDet::position
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
ConfigurationDescriptions.h
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
FindPeakFastPV.h
PixelClusterParameterEstimator
Definition: PixelClusterParameterEstimator.h:15
CaloJetCollection.h
CaloJet.h
FastPrimaryVertexWithWeightsProducer::m_maxZ
const double m_maxZ
Definition: FastPrimaryVertexWithWeightsProducer.cc:64
electrons_cff.bool
bool
Definition: electrons_cff.py:393
FastPrimaryVertexWithWeightsProducer::m_zClusterWidth_step2
const double m_zClusterWidth_step2
Definition: FastPrimaryVertexWithWeightsProducer.cc:112
mps_fire.i
i
Definition: mps_fire.py:428
pwdgSkimBPark_cfi.beamSpot
beamSpot
Definition: pwdgSkimBPark_cfi.py:5
HLT_FULL_cff.weight_dPhi
weight_dPhi
Definition: HLT_FULL_cff.py:50804
LumiMonitor_cff.pixelClusters
pixelClusters
Definition: LumiMonitor_cff.py:10
TrackerGeometry.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
FastPrimaryVertexWithWeightsProducer::m_clusters
const edm::InputTag m_clusters
Definition: FastPrimaryVertexWithWeightsProducer.cc:65
ESHandle.h
FastPrimaryVertexWithWeightsProducer::m_minSizeY_q
const double m_minSizeY_q
Definition: FastPrimaryVertexWithWeightsProducer.cc:83
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
deltaPhi.h
edm::EDGetTokenT
Definition: EDGetToken.h:33
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::Vertex::Error
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:44
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
PixelClusterParameterEstimator.h
SiPixelCluster.h
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:85964
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
TkPixelCPERecord
Definition: TkPixelCPERecord.h:18
EDProducer.h
TrackingRecHitFwd.h
FastPrimaryVertexWithWeightsProducer::m_barrel
const bool m_barrel
Definition: FastPrimaryVertexWithWeightsProducer.cc:75
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
SiPixelCluster
Pixel cluster – collection of neighboring pixels above threshold.
Definition: SiPixelCluster.h:27
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
findQualityFiles.v
v
Definition: findQualityFiles.py:179
FastPrimaryVertexWithWeightsProducer::m_zClusterSearchArea_step2
const double m_zClusterSearchArea_step2
Definition: FastPrimaryVertexWithWeightsProducer.cc:113
edm::Handle
Definition: AssociativeIterator.h:50
FastPrimaryVertexWithWeightsProducer::m_endCap
const bool m_endCap
Definition: FastPrimaryVertexWithWeightsProducer.cc:98
FastPrimaryVertexWithWeightsProducer::clustersToken
edm::EDGetTokenT< SiPixelClusterCollectionNew > clustersToken
Definition: FastPrimaryVertexWithWeightsProducer.cc:67
FastPrimaryVertexWithWeightsProducer::m_weightCut_step3
const double m_weightCut_step3
Definition: FastPrimaryVertexWithWeightsProducer.cc:119
edmNew::DetSet::size
size_type size() const
Definition: DetSetNew.h:68
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
MakerMacros.h
SiPixelCluster::sizeY
int sizeY() const
Definition: SiPixelCluster.h:128
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
FastPrimaryVertexWithWeightsProducer::m_maxDeltaPhi
const double m_maxDeltaPhi
Definition: FastPrimaryVertexWithWeightsProducer.cc:77
FastPrimaryVertexWithWeightsProducer::m_PixelCellHeightOverWidth
const double m_PixelCellHeightOverWidth
Definition: FastPrimaryVertexWithWeightsProducer.cc:81
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
FastPrimaryVertexWithWeightsProducer::m_maxSizeY_q
const double m_maxSizeY_q
Definition: FastPrimaryVertexWithWeightsProducer.cc:85
BeamSpot.h
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
FastPrimaryVertexWithWeightsProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: FastPrimaryVertexWithWeightsProducer.cc:220
PVValHelper::eta
Definition: PVValidationHelpers.h:69
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
DDAxes::z
edm::ESHandle
Definition: DTSurvey.h:22
edmNew::DetSet
Definition: DetSetNew.h:22
RecoTauValidation_cfi.sizeY
sizeY
Definition: RecoTauValidation_cfi.py:291
FastPrimaryVertexWithWeightsProducer::m_zClusterSearchArea_step3
const double m_zClusterSearchArea_step3
Definition: FastPrimaryVertexWithWeightsProducer.cc:118
Point3DBase< float, GlobalTag >
FastPrimaryVertexWithWeightsProducer::m_pixelCPE
std::string m_pixelCPE
Definition: FastPrimaryVertexWithWeightsProducer.cc:66
ParameterSetDescription.h
SiPixelRecHit.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
DDAxes::rho
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
FastPrimaryVertexWithWeightsProducer::m_weight_dPhi_EC
const double m_weight_dPhi_EC
Definition: FastPrimaryVertexWithWeightsProducer.cc:105
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
edm::View
Definition: CaloClusterFwd.h:14
FastPrimaryVertexWithWeightsProducer::m_zClusterWidth_step1
const double m_zClusterWidth_step1
Definition: FastPrimaryVertexWithWeightsProducer.cc:109
TrackerDigiGeometryRecord.h
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
FastPrimaryVertexWithWeightsProducer::m_minJetPt
const double m_minJetPt
Definition: FastPrimaryVertexWithWeightsProducer.cc:74
FastPrimaryVertexWithWeightsProducer::m_maxSizeX
const double m_maxSizeX
Definition: FastPrimaryVertexWithWeightsProducer.cc:76
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
FastPrimaryVertexWithWeightsProducer::m_maxJetEta_EC
const double m_maxJetEta_EC
Definition: FastPrimaryVertexWithWeightsProducer.cc:100
edm::stream::EDProducer
Definition: EDProducer.h:38
FastPrimaryVertexWithWeightsProducer::beamSpotToken
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
Definition: FastPrimaryVertexWithWeightsProducer.cc:68
edm::EventSetup
Definition: EventSetup.h:57
FastPrimaryVertexWithWeightsProducer::m_ptWeighting
const bool m_ptWeighting
Definition: FastPrimaryVertexWithWeightsProducer.cc:122
get
#define get
FastPrimaryVertexWithWeightsProducer::m_weight_rho_up
const double m_weight_rho_up
Definition: FastPrimaryVertexWithWeightsProducer.cc:92
res
Definition: Electron.h:6
FastPrimaryVertexWithWeightsProducer::m_maxDeltaPhi_EC
const double m_maxDeltaPhi_EC
Definition: FastPrimaryVertexWithWeightsProducer.cc:101
FastPrimaryVertexWithWeightsProducer::m_weight_charge_down
const double m_weight_charge_down
Definition: FastPrimaryVertexWithWeightsProducer.cc:78
FastPrimaryVertexWithWeightsProducer::m_maxJetEta
const double m_maxJetEta
Definition: FastPrimaryVertexWithWeightsProducer.cc:73
InputTag.h
FastPrimaryVertexWithWeightsProducer::jetsToken
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken
Definition: FastPrimaryVertexWithWeightsProducer.cc:69
VertexFwd.h
FastPrimaryVertexWithWeightsProducer::m_ptWeighting_offset
const double m_ptWeighting_offset
Definition: FastPrimaryVertexWithWeightsProducer.cc:124
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
edmNew::DetSetVector
Definition: DetSetNew.h:13
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
FindPeakFastPV
float FindPeakFastPV(const std::vector< float > &zProjections, const std::vector< float > &zWeights, const float oldVertex, const float m_zClusterWidth, const float m_zClusterSearchArea, const float m_weightCut)
Definition: FindPeakFastPV.h:13
reco::Vertex::Point
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
FastPrimaryVertexWithWeightsProducer::m_weight_dPhi
const double m_weight_dPhi
Definition: FastPrimaryVertexWithWeightsProducer.cc:90
Frameworkfwd.h
FastPrimaryVertexWithWeightsProducer::FastPrimaryVertexWithWeightsProducer
FastPrimaryVertexWithWeightsProducer(const edm::ParameterSet &)
Definition: FastPrimaryVertexWithWeightsProducer.cc:127
FastPrimaryVertexWithWeightsProducer::m_EC_weight
const double m_EC_weight
Definition: FastPrimaryVertexWithWeightsProducer.cc:104
FastPrimaryVertexWithWeightsProducer::m_minJetEta_EC
const double m_minJetEta_EC
Definition: FastPrimaryVertexWithWeightsProducer.cc:99
SiPixelCluster::charge
int charge() const
Definition: SiPixelCluster.h:130
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
FastPrimaryVertexWithWeightsProducer::m_njets
const int m_njets
Definition: FastPrimaryVertexWithWeightsProducer.cc:72
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
TkPixelCPERecord.h
FastPrimaryVertexWithWeightsProducer::m_weight_SizeX1
const double m_weight_SizeX1
Definition: FastPrimaryVertexWithWeightsProducer.cc:91
objectSelection_cff.selectedJets
selectedJets
Definition: objectSelection_cff.py:99
FastPrimaryVertexWithWeightsProducer::m_weight_charge_up
const double m_weight_charge_up
Definition: FastPrimaryVertexWithWeightsProducer.cc:79
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ParameterSet.h
createTree.pp
pp
Definition: createTree.py:17
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
SiPixelCluster::sizeX
int sizeX() const
Definition: SiPixelCluster.h:125
edm::Event
Definition: Event.h:73
FastPrimaryVertexWithWeightsProducer::m_peakSizeY_q
const double m_peakSizeY_q
Definition: FastPrimaryVertexWithWeightsProducer.cc:95
FastPrimaryVertexWithWeightsProducer::m_ptWeighting_slope
const double m_ptWeighting_slope
Definition: FastPrimaryVertexWithWeightsProducer.cc:123
edm::InputTag
Definition: InputTag.h:15
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
weight
Definition: weight.py:1
reco::Vertex
Definition: Vertex.h:35
FastPrimaryVertexWithWeightsProducer::m_weightCut_step2
const double m_weightCut_step2
Definition: FastPrimaryVertexWithWeightsProducer.cc:114
FastPrimaryVertexWithWeightsProducer::m_zClusterWidth_step3
const double m_zClusterWidth_step3
Definition: FastPrimaryVertexWithWeightsProducer.cc:117
FastPrimaryVertexWithWeightsProducer
Definition: FastPrimaryVertexWithWeightsProducer.cc:56
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerGeometry
Definition: TrackerGeometry.h:14
FastPrimaryVertexWithWeightsProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: FastPrimaryVertexWithWeightsProducer.cc:178
FastPrimaryVertexWithWeightsProducer::m_weight_charge_peak
const double m_weight_charge_peak
Definition: FastPrimaryVertexWithWeightsProducer.cc:93