CMS 3D CMS Logo

PPSAlignmentWorker.cc
Go to the documentation of this file.
1 /****************************************************************************
2  *
3  * CalibPPS/AlignmentGlobal/plugins/PPSAlignmentWorker.cc
4  *
5  * Description : PPS Alignment DQM worker
6  *
7  * Authors:
8  * - Jan Kašpar
9  * - Mateusz Kocot
10  *
11  ****************************************************************************/
12 
16 
23 
27 
30 
31 #include <map>
32 #include <string>
33 #include <cmath>
34 
35 #include "TH2D.h"
36 #include "TGraph.h"
37 
38 //----------------------------------------------------------------------------------------------------
39 
41 public:
42  PPSAlignmentWorker(const edm::ParameterSet &iConfig);
43 
44 private:
45  void bookHistograms(DQMStore::IBooker &iBooker, edm::Run const &, edm::EventSetup const &iSetup) override;
46  void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override;
47 
48  // ------------ structures ------------
49  struct SectorData {
51 
52  // hit distributions
53  std::map<unsigned int, MonitorElement *> m_h2_y_vs_x_bef_sel;
54 
55  std::map<unsigned int, MonitorElement *> m_h2_y_vs_x_mlt_sel;
56 
57  std::map<unsigned int, MonitorElement *> m_h2_y_vs_x_aft_sel;
58 
59  // cut plots
62 
65 
66  // near-far plots
69 
70  struct SlicePlots {
74 
75  SlicePlots();
77  };
78 
79  std::map<unsigned int, SlicePlots> x_slice_plots_N, x_slice_plots_F;
80 
81  void init(DQMStore::IBooker &iBooker,
83  const SectorConfig &_scfg,
84  const std::string &folder,
85  bool debug);
86 
87  unsigned int process(const CTPPSLocalTrackLiteCollection &tracks, const PPSAlignmentConfig &cfg, bool debug);
88  };
89 
90  // ------------ member data ------------
93 
95 
98 
100  bool debug_;
101 };
102 
103 // -------------------------------- SectorData and SlicePlots methods --------------------------------
104 
106 
108  h_y = iBooker.book1DD("h_y", ";y", 100, -10., 10.);
109  auto *tmp = new TProfile("", ";y;x_{F} - y_{N}", 100, -10., 10.);
110  p_y_diffFN_vs_y = iBooker.bookProfile("p_y_diffFN_vs_y", tmp);
111 
112  if (debug)
113  h2_y_diffFN_vs_y = iBooker.book2DD("h2_y_diffFN_vs_y", ";y;x_{F} - y_{N}", 100, -10., 10., 100, -2., 2.);
114 }
115 
117  const PPSAlignmentConfig &cfg,
118  const SectorConfig &_scfg,
119  const std::string &folder,
120  bool debug) {
121  scfg = _scfg;
122 
123  // binning
124  const double bin_size_x = cfg.binning().bin_size_x_;
125  const unsigned int n_bins_x = cfg.binning().n_bins_x_;
126 
127  const double pixel_x_offset = cfg.binning().pixel_x_offset_;
128 
129  const double x_min_pix = pixel_x_offset, x_max_pix = pixel_x_offset + n_bins_x * bin_size_x;
130  const double x_min_str = 0., x_max_str = n_bins_x * bin_size_x;
131 
132  const unsigned int n_bins_y = cfg.binning().n_bins_y_;
133  const double y_min = cfg.binning().y_min_, y_max = cfg.binning().y_max_;
134 
135  // hit distributions
136  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/before selection/" + scfg.rp_N_.name_);
138  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_str, x_max_str, n_bins_y, y_min, y_max);
139  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/before selection/" + scfg.rp_F_.name_);
141  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_pix, x_max_pix, n_bins_y, y_min, y_max);
142 
143  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/multiplicity selection/" + scfg.rp_N_.name_);
145  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_str, x_max_str, n_bins_y, y_min, y_max);
146  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/multiplicity selection/" + scfg.rp_F_.name_);
148  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_pix, x_max_pix, n_bins_y, y_min, y_max);
149 
150  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/after selection/" + scfg.rp_N_.name_);
152  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_str, x_max_str, n_bins_y, y_min, y_max);
153  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/after selection/" + scfg.rp_F_.name_);
155  iBooker.book2DD("h2_y_vs_x", ";x;y", n_bins_x, x_min_pix, x_max_pix, n_bins_y, y_min, y_max);
156 
157  // cut plots
158  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/cuts/cut_h");
159  h_q_cut_h_bef = iBooker.book1DD("h_q_cut_h_bef", ";cq_h", 400, -2., 2.);
160  h_q_cut_h_aft = iBooker.book1DD("h_q_cut_h_aft", ";cq_h", 400, -2., 2.);
161  h2_cut_h_bef =
162  iBooker.book2DD("h2_cut_h_bef", ";x_up;x_dw", n_bins_x, x_min_str, x_max_str, n_bins_x, x_min_pix, x_max_pix);
163  h2_cut_h_aft =
164  iBooker.book2DD("h2_cut_h_aft", ";x_up;x_dw", n_bins_x, x_min_str, x_max_str, n_bins_x, x_min_pix, x_max_pix);
165 
166  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/cuts/cut_v");
167  h_q_cut_v_bef = iBooker.book1DD("h_q_cut_v_bef", ";cq_v", 400, -2., 2.);
168  h_q_cut_v_aft = iBooker.book1DD("h_q_cut_v_aft", ";cq_v", 400, -2., 2.);
169  h2_cut_v_bef = iBooker.book2DD("h2_cut_v_bef", ";y_up;y_dw", n_bins_y, y_min, y_max, n_bins_y, y_min, y_max);
170  h2_cut_v_aft = iBooker.book2DD("h2_cut_v_aft", ";y_up;y_dw", n_bins_y, y_min, y_max, n_bins_y, y_min, y_max);
171 
172  // near-far plots
173  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/near_far");
174  auto *tmp = new TProfile("", ";x_{N};x_{F} - x_{N}", 100, 0., 20.);
175  p_x_diffFN_vs_x_N = iBooker.bookProfile("p_x_diffFN_vs_x_N", tmp);
176 
177  for (int i = 0; i < scfg.rp_N_.x_slice_n_; i++) {
178  const double xMin = scfg.rp_N_.x_slice_min_ + i * scfg.rp_N_.x_slice_w_;
179  const double xMax = scfg.rp_N_.x_slice_min_ + (i + 1) * scfg.rp_N_.x_slice_w_;
180 
181  char buf[100];
182  sprintf(buf, "%.1f-%.1f", xMin, xMax);
183 
184  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/near_far/x slices, N/" + buf);
185  x_slice_plots_N.insert({i, SlicePlots(iBooker, debug)});
186  }
187 
188  for (int i = 0; i < scfg.rp_F_.x_slice_n_; i++) {
189  const double xMin = scfg.rp_F_.x_slice_min_ + i * scfg.rp_F_.x_slice_w_;
190  const double xMax = scfg.rp_F_.x_slice_min_ + (i + 1) * scfg.rp_F_.x_slice_w_;
191 
192  char buf[100];
193  sprintf(buf, "%.1f-%.1f", xMin, xMax);
194 
195  iBooker.setCurrentFolder(folder + "/" + scfg.name_ + "/near_far/x slices, F/" + buf);
196  x_slice_plots_F.insert({i, SlicePlots(iBooker, debug)});
197  }
198 }
199 
201  const PPSAlignmentConfig &cfg,
202  bool debug) {
203  CTPPSLocalTrackLiteCollection tracksUp, tracksDw;
204 
205  for (const auto &tr : tracks) {
206  CTPPSDetId rpId(tr.rpId());
207  unsigned int rpDecId = rpId.arm() * 100 + rpId.station() * 10 + rpId.rp();
208 
209  if (rpDecId != scfg.rp_N_.id_ && rpDecId != scfg.rp_F_.id_)
210  continue;
211 
212  double x = tr.x();
213  double y = tr.y();
214 
215  // re-build track object
216  CTPPSLocalTrackLite trCorr(tr.rpId(),
217  x,
218  0.,
219  y,
220  0.,
221  tr.tx(),
222  tr.txUnc(),
223  tr.ty(),
224  tr.tyUnc(),
225  tr.chiSquaredOverNDF(),
226  tr.pixelTrackRecoInfo(),
227  tr.numberOfPointsUsedForFit(),
228  tr.time(),
229  tr.timeUnc());
230 
231  // store corrected track into the right collection
232  if (rpDecId == scfg.rp_N_.id_)
233  tracksUp.push_back(trCorr);
234  if (rpDecId == scfg.rp_F_.id_)
235  tracksDw.push_back(trCorr);
236  }
237 
238  // update plots before selection
239  for (const auto &tr : tracksUp)
240  m_h2_y_vs_x_bef_sel[scfg.rp_N_.id_]->Fill(tr.x(), tr.y());
241 
242  for (const auto &tr : tracksDw)
243  m_h2_y_vs_x_bef_sel[scfg.rp_F_.id_]->Fill(tr.x(), tr.y());
244 
245  // skip crowded events
246  if (tracksUp.size() > cfg.maxRPTracksSize())
247  return 0;
248 
249  if (tracksDw.size() > cfg.maxRPTracksSize())
250  return 0;
251 
252  // update plots with multiplicity selection
253  for (const auto &tr : tracksUp)
254  m_h2_y_vs_x_mlt_sel[scfg.rp_N_.id_]->Fill(tr.x(), tr.y());
255 
256  for (const auto &tr : tracksDw)
257  m_h2_y_vs_x_mlt_sel[scfg.rp_F_.id_]->Fill(tr.x(), tr.y());
258 
259  // do the selection
260  unsigned int pairsSelected = 0;
261 
262  for (const auto &trUp : tracksUp) {
263  for (const auto &trDw : tracksDw) {
264  h2_cut_h_bef->Fill(trUp.x(), trDw.x());
265  h2_cut_v_bef->Fill(trUp.y(), trDw.y());
266 
267  const double cq_h = trDw.x() + scfg.cut_h_a_ * trUp.x() + scfg.cut_h_c_;
268  h_q_cut_h_bef->Fill(cq_h);
269  const bool cv_h = (std::fabs(cq_h) < cfg.n_si() * scfg.cut_h_si_);
270 
271  const double cq_v = trDw.y() + scfg.cut_v_a_ * trUp.y() + scfg.cut_v_c_;
272  h_q_cut_v_bef->Fill(cq_v);
273  const bool cv_v = (std::fabs(cq_v) < cfg.n_si() * scfg.cut_v_si_);
274 
275  bool cutsPassed = true;
276  if (scfg.cut_h_apply_)
277  cutsPassed &= cv_h;
278  if (scfg.cut_v_apply_)
279  cutsPassed &= cv_v;
280 
281  if (cutsPassed) {
282  pairsSelected++;
283 
284  h_q_cut_h_aft->Fill(cq_h);
285  h_q_cut_v_aft->Fill(cq_v);
286 
287  h2_cut_h_aft->Fill(trUp.x(), trDw.x());
288  h2_cut_v_aft->Fill(trUp.y(), trDw.y());
289 
290  m_h2_y_vs_x_aft_sel[scfg.rp_N_.id_]->Fill(trUp.x(), trUp.y());
291  m_h2_y_vs_x_aft_sel[scfg.rp_F_.id_]->Fill(trDw.x(), trDw.y());
292 
293  p_x_diffFN_vs_x_N->Fill(trUp.x(), trDw.x() - trUp.x());
294 
295  int idx = (trUp.x() - scfg.rp_N_.x_slice_min_) / scfg.rp_N_.x_slice_w_;
296  if (idx >= 0 && idx < scfg.rp_N_.x_slice_n_) {
297  x_slice_plots_N[idx].h_y->Fill(trUp.y());
298  x_slice_plots_N[idx].p_y_diffFN_vs_y->Fill(trUp.y(), trDw.y() - trUp.y());
299  if (debug)
300  x_slice_plots_N[idx].h2_y_diffFN_vs_y->Fill(trUp.y(), trDw.y() - trUp.y());
301  }
302 
303  idx = (trDw.x() - scfg.rp_F_.x_slice_min_) / scfg.rp_F_.x_slice_w_;
304  if (idx >= 0 && idx < scfg.rp_F_.x_slice_n_) {
305  x_slice_plots_F[idx].h_y->Fill(trDw.y());
306  x_slice_plots_F[idx].p_y_diffFN_vs_y->Fill(trDw.y(), trDw.y() - trUp.y());
307  if (debug)
308  x_slice_plots_F[idx].h2_y_diffFN_vs_y->Fill(trDw.y(), trDw.y() - trUp.y());
309  }
310  }
311  }
312  }
313 
314  return pairsSelected;
315 }
316 
317 // -------------------------------- PPSAlignmentWorker methods --------------------------------
318 
321  edm::ESInputTag("", iConfig.getParameter<std::string>("label")))),
323  edm::ESInputTag("", iConfig.getParameter<std::string>("label")))),
324  tracksToken_(consumes<CTPPSLocalTrackLiteCollection>(iConfig.getParameter<edm::InputTag>("tagTracks"))),
325  folder_(iConfig.getParameter<std::string>("folder")),
326  debug_(iConfig.getParameter<bool>("debug")) {}
327 
329  const auto &cfg = iSetup.getData(esTokenBookHistograms_);
330 
331  sectorData45.init(iBooker, cfg, cfg.sectorConfig45(), folder_ + "/worker", debug_);
332  sectorData56.init(iBooker, cfg, cfg.sectorConfig56(), folder_ + "/worker", debug_);
333 }
334 
336  const auto &tracks = iEvent.get(tracksToken_);
337 
338  const auto &cfg = iSetup.getData(esTokenAnalyze_);
339 
342 }
343 
RPConfig::x_slice_min_
double x_slice_min_
Definition: PPSAlignmentConfig.h:56
CTPPSLocalTrackLite
Local (=single RP) track with essential information only.
Definition: CTPPSLocalTrackLite.h:18
PPSAlignmentWorker::SectorData::SlicePlots::p_y_diffFN_vs_y
MonitorElement * p_y_diffFN_vs_y
Definition: PPSAlignmentWorker.cc:82
dqm::impl::MonitorElement
Definition: MonitorElement.h:98
DDAxes::y
CTPPSLocalTrackLiteCollection
std::vector< CTPPSLocalTrackLite > CTPPSLocalTrackLiteCollection
Collection of CTPPSLocalTrackLite objects.
Definition: CTPPSLocalTrackLiteFwd.h:18
SectorConfig::name_
std::string name_
Definition: PPSAlignmentConfig.h:65
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
PPSAlignmentWorker::tracksToken_
edm::EDGetTokenT< CTPPSLocalTrackLiteCollection > tracksToken_
Definition: PPSAlignmentWorker.cc:103
SectorConfig::cut_h_c_
double cut_h_c_
Definition: PPSAlignmentConfig.h:70
PPSAlignmentWorker::SectorData::scfg
SectorConfig scfg
Definition: PPSAlignmentWorker.cc:59
PPSAlignmentWorker::SectorData::p_x_diffFN_vs_x_N
MonitorElement * p_x_diffFN_vs_x_N
Definition: PPSAlignmentWorker.cc:76
SectorConfig::rp_F_
RPConfig rp_F_
Definition: PPSAlignmentConfig.h:66
PPSAlignmentWorker::debug_
bool debug_
Definition: PPSAlignmentWorker.cc:109
PPSAlignmentWorker::sectorData45
SectorData sectorData45
Definition: PPSAlignmentWorker.cc:105
ESHandle.h
ESInputTag
PPSAlignmentConfigRcd
Definition: PPSAlignmentConfigRcd.h:13
PPSAlignmentWorker::SectorData::SlicePlots::h_y
MonitorElement * h_y
Definition: PPSAlignmentWorker.cc:80
edm::Run
Definition: Run.h:45
printsummarytable.folder
folder
Definition: printsummarytable.py:7
edm::EDGetTokenT< CTPPSLocalTrackLiteCollection >
edm
HLT enums.
Definition: AlignableModifier.h:19
PPSAlignmentConfigRcd.h
PPSAlignmentWorker::esTokenBookHistograms_
edm::ESGetToken< PPSAlignmentConfig, PPSAlignmentConfigRcd > esTokenBookHistograms_
Definition: PPSAlignmentWorker.cc:100
RPConfig::x_slice_w_
double x_slice_w_
Definition: PPSAlignmentConfig.h:56
PPSAlignmentWorker::analyze
void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: PPSAlignmentWorker.cc:335
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
PPSAlignmentConfig
Definition: PPSAlignmentConfig.h:94
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
SectorConfig::cut_v_si_
double cut_v_si_
Definition: PPSAlignmentConfig.h:73
DQMStore.h
PPSAlignmentWorker::SectorData::h2_cut_h_bef
MonitorElement * h2_cut_h_bef
Definition: PPSAlignmentWorker.cc:70
CTPPSLocalTrackLite.h
PPSAlignmentWorker::SectorData::h_q_cut_h_bef
MonitorElement * h_q_cut_h_bef
Definition: PPSAlignmentWorker.cc:69
DDAxes::x
PPSAlignmentWorker::PPSAlignmentWorker
PPSAlignmentWorker(const edm::ParameterSet &iConfig)
Definition: PPSAlignmentWorker.cc:319
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
PPSAlignmentWorker::SectorData::m_h2_y_vs_x_mlt_sel
std::map< unsigned int, MonitorElement * > m_h2_y_vs_x_mlt_sel
Definition: PPSAlignmentWorker.cc:64
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
PPSAlignmentWorker::sectorData56
SectorData sectorData56
Definition: PPSAlignmentWorker.cc:106
photonAnalyzer_cfi.xMin
xMin
Definition: photonAnalyzer_cfi.py:82
PPSAlignmentWorker::SectorData::m_h2_y_vs_x_bef_sel
std::map< unsigned int, MonitorElement * > m_h2_y_vs_x_bef_sel
Definition: PPSAlignmentWorker.cc:62
MakerMacros.h
debug
#define debug
Definition: HDRShower.cc:19
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
PPSAlignmentWorker::SectorData::h2_cut_h_aft
MonitorElement * h2_cut_h_aft
Definition: PPSAlignmentWorker.cc:70
PPSAlignmentWorker::SectorData::h2_cut_v_aft
MonitorElement * h2_cut_v_aft
Definition: PPSAlignmentWorker.cc:73
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
RPConfig::x_slice_n_
int x_slice_n_
Definition: PPSAlignmentConfig.h:55
dqm::implementation::IBooker::bookProfile
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:322
PPSAlignmentWorker::SectorData::h_q_cut_h_aft
MonitorElement * h_q_cut_h_aft
Definition: PPSAlignmentWorker.cc:69
DQMEDAnalyzer.h
PPSAlignmentWorker::SectorData::SlicePlots::SlicePlots
SlicePlots()
Definition: PPSAlignmentWorker.cc:105
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PPSAlignmentWorker::SectorData::h_q_cut_v_aft
MonitorElement * h_q_cut_v_aft
Definition: PPSAlignmentWorker.cc:72
dqm::implementation::IBooker::book1DD
MonitorElement * book1DD(TString const &name, TString const &title, int nchX, double lowX, double highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:155
DQMEDAnalyzer
Definition: DQMEDAnalyzer.py:1
SectorConfig::cut_v_apply_
bool cut_v_apply_
Definition: PPSAlignmentConfig.h:72
RPConfig::name_
std::string name_
Definition: PPSAlignmentConfig.h:44
SectorConfig::cut_v_c_
double cut_v_c_
Definition: PPSAlignmentConfig.h:73
MonitorElement.h
dqm::implementation::IBooker::book2DD
MonitorElement * book2DD(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:261
edm::ParameterSet
Definition: ParameterSet.h:47
PPSAlignmentWorker::SectorData::SlicePlots::h2_y_diffFN_vs_y
MonitorElement * h2_y_diffFN_vs_y
Definition: PPSAlignmentWorker.cc:81
edm::Transition
Transition
Definition: Transition.h:12
Event.h
PPSAlignmentWorker::SectorData::h_q_cut_v_bef
MonitorElement * h_q_cut_v_bef
Definition: PPSAlignmentWorker.cc:72
PPSAlignmentWorker::bookHistograms
void bookHistograms(DQMStore::IBooker &iBooker, edm::Run const &, edm::EventSetup const &iSetup) override
Definition: PPSAlignmentWorker.cc:328
PPSAlignmentWorker::esTokenAnalyze_
edm::ESGetToken< PPSAlignmentConfig, PPSAlignmentConfigRcd > esTokenAnalyze_
Definition: PPSAlignmentWorker.cc:101
PPSAlignmentWorker::folder_
std::string folder_
Definition: PPSAlignmentWorker.cc:108
PPSAlignmentWorker::SectorData::m_h2_y_vs_x_aft_sel
std::map< unsigned int, MonitorElement * > m_h2_y_vs_x_aft_sel
Definition: PPSAlignmentWorker.cc:66
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
PPSAlignmentWorker::SectorData
Definition: PPSAlignmentWorker.cc:58
RPConfig::id_
unsigned int id_
Definition: PPSAlignmentConfig.h:45
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup
Definition: EventSetup.h:57
visDQMUpload.buf
buf
Definition: visDQMUpload.py:154
edm::ESGetToken< PPSAlignmentConfig, PPSAlignmentConfigRcd >
SectorConfig::cut_h_apply_
bool cut_h_apply_
Definition: PPSAlignmentConfig.h:69
InputTag.h
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:120
looper.cfg
cfg
Definition: looper.py:297
PPSAlignmentWorker::SectorData::h2_cut_v_bef
MonitorElement * h2_cut_v_bef
Definition: PPSAlignmentWorker.cc:73
std
Definition: JetResolutionObject.h:76
SectorConfig::rp_N_
RPConfig rp_N_
Definition: PPSAlignmentConfig.h:66
PPSAlignmentWorker::SectorData::process
unsigned int process(const CTPPSLocalTrackLiteCollection &tracks, const PPSAlignmentConfig &cfg, bool debug)
Definition: PPSAlignmentWorker.cc:200
CTPPSLocalTrackLiteFwd.h
EventSetup.h
multiplicitycorr_cfi.xMax
xMax
Definition: multiplicitycorr_cfi.py:5
SectorConfig::cut_v_a_
double cut_v_a_
Definition: PPSAlignmentConfig.h:73
CTPPSDetId.h
dqm::implementation::IBooker
Definition: DQMStore.h:43
SectorConfig::cut_h_si_
double cut_h_si_
Definition: PPSAlignmentConfig.h:70
PPSAlignmentWorker::SectorData::x_slice_plots_F
std::map< unsigned int, SlicePlots > x_slice_plots_F
Definition: PPSAlignmentWorker.cc:88
ParameterSet.h
SectorConfig::cut_h_a_
double cut_h_a_
Definition: PPSAlignmentConfig.h:70
SectorConfig
Definition: PPSAlignmentConfig.h:64
PPSAlignmentWorker::SectorData::SlicePlots
Definition: PPSAlignmentWorker.cc:79
edm::Event
Definition: Event.h:73
PPSAlignmentConfig.h
PPSAlignmentWorker::SectorData::x_slice_plots_N
std::map< unsigned int, SlicePlots > x_slice_plots_N
Definition: PPSAlignmentWorker.cc:88
PPSAlignmentWorker::SectorData::init
void init(DQMStore::IBooker &iBooker, const PPSAlignmentConfig &cfg, const SectorConfig &_scfg, const std::string &folder, bool debug)
Definition: PPSAlignmentWorker.cc:116
PPSAlignmentWorker
Definition: PPSAlignmentWorker.cc:40
PPSAlignmentWorker::SectorData::p_y_diffFN_vs_y_F
MonitorElement * p_y_diffFN_vs_y_F
Definition: PPSAlignmentWorker.cc:77