CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Member Functions | Private Attributes
CTPPSProtonReconstructionEfficiencyEstimatorMC Class Reference
Inheritance diagram for CTPPSProtonReconstructionEfficiencyEstimatorMC:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

struct  PlotGroup
 

Public Member Functions

 CTPPSProtonReconstructionEfficiencyEstimatorMC (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void endJob () override
 

Private Attributes

std::string lhcInfoLabel_
 
std::string outputFile_
 
std::map< unsigned int, std::map< unsigned int, PlotGroup > > plots_
 
std::map< unsigned int, unsigned int > rpDecId_far_
 
std::map< unsigned int, unsigned int > rpDecId_near_
 
unsigned int rpId_45_F_
 
unsigned int rpId_45_N_
 
unsigned int rpId_56_F_
 
unsigned int rpId_56_N_
 
edm::EDGetTokenT< edm::HepMCProducttokenHepMCAfterSmearing_
 
edm::EDGetTokenT< std::map< int, edm::DetSetVector< CTPPSPixelRecHit > > > tokenPixelRecHitsPerParticle_
 
edm::EDGetTokenT< reco::ForwardProtonCollectiontokenRecoProtonsMultiRP_
 
edm::EDGetTokenT< std::map< int, edm::DetSetVector< TotemRPRecHit > > > tokenStripRecHitsPerParticle_
 
edm::EDGetTokenT< CTPPSLocalTrackLiteCollectiontracksToken_
 
unsigned int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 38 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Constructor & Destructor Documentation

◆ CTPPSProtonReconstructionEfficiencyEstimatorMC()

CTPPSProtonReconstructionEfficiencyEstimatorMC::CTPPSProtonReconstructionEfficiencyEstimatorMC ( const edm::ParameterSet iConfig)
explicit

Definition at line 94 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

98  consumes<edm::HepMCProduct>(iConfig.getParameter<edm::InputTag>("tagHepMCAfterSmearing"))),
100  iConfig.getParameter<edm::InputTag>("tagStripRecHitsPerParticle"))),
102  iConfig.getParameter<edm::InputTag>("tagPixelRecHitsPerParticle"))),
103  tracksToken_(consumes<CTPPSLocalTrackLiteCollection>(iConfig.getParameter<edm::InputTag>("tagTracks"))),
105  consumes<reco::ForwardProtonCollection>(iConfig.getParameter<InputTag>("tagRecoProtonsMultiRP"))),
106  lhcInfoLabel_(iConfig.getParameter<std::string>("lhcInfoLabel")),
107 
108  rpId_45_N_(iConfig.getParameter<unsigned int>("rpId_45_N")),
109  rpId_45_F_(iConfig.getParameter<unsigned int>("rpId_45_F")),
110  rpId_56_N_(iConfig.getParameter<unsigned int>("rpId_56_N")),
111  rpId_56_F_(iConfig.getParameter<unsigned int>("rpId_56_F")),
112 
113  outputFile_(iConfig.getParameter<string>("outputFile")),
114 
115  verbosity_(iConfig.getUntrackedParameter<unsigned int>("verbosity", 0)) {
118 
121 
122  // book plots
123  for (unsigned int arm = 0; arm < 2; ++arm) {
124  for (unsigned int np = 1; np <= 5; ++np)
125  plots_[arm][np] = PlotGroup();
126  }

References np, plots_, rpDecId_far_, rpDecId_near_, rpId_45_F_, rpId_45_N_, rpId_56_F_, and rpId_56_N_.

Member Function Documentation

◆ analyze()

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

Implements edm::one::EDAnalyzerBase.

Definition at line 130 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

131  {
132  std::ostringstream os;
133 
134  // get conditions
135  edm::ESHandle<LHCInfo> hLHCInfo;
136  iSetup.get<LHCInfoRcd>().get(lhcInfoLabel_, hLHCInfo);
137 
138  // get input
139  edm::Handle<edm::HepMCProduct> hHepMCAfterSmearing;
140  iEvent.getByToken(tokenHepMCAfterSmearing_, hHepMCAfterSmearing);
141  HepMC::GenEvent *hepMCEventAfterSmearing = (HepMC::GenEvent *)hHepMCAfterSmearing->GetEvent();
142 
144  iEvent.getByToken(tokenStripRecHitsPerParticle_, hStripRecHitsPerParticle);
145 
147  iEvent.getByToken(tokenPixelRecHitsPerParticle_, hPixelRecHitsPerParticle);
148 
150  iEvent.getByToken(tracksToken_, tracks);
151 
152  Handle<reco::ForwardProtonCollection> hRecoProtonsMultiRP;
153  iEvent.getByToken(tokenRecoProtonsMultiRP_, hRecoProtonsMultiRP);
154 
155  // buffer for particle information
156  struct ParticleInfo {
157  unsigned int arm = 2;
158  double xi = 0.;
159  std::map<unsigned int, unsigned int> recHitsPerRP;
160  bool inAcceptanceNear = false, inAcceptanceFar = false, inAcceptance = false;
161  };
162 
163  std::map<int, ParticleInfo> particleInfo; // barcode --> info
164 
165  // process HepMC
166  for (auto it = hepMCEventAfterSmearing->particles_begin(); it != hepMCEventAfterSmearing->particles_end(); ++it) {
167  const auto &part = *it;
168 
169  // accept only stable non-beam protons
170  if (part->pdg_id() != 2212)
171  continue;
172 
173  if (part->status() != 1)
174  continue;
175 
176  if (part->is_beam())
177  continue;
178 
179  const auto &mom = part->momentum();
180 
181  if (mom.e() < 4500.)
182  continue;
183 
185 
186  info.arm = (mom.z() > 0.) ? 0 : 1;
187 
188  const double p_nom = hLHCInfo->energy();
189  info.xi = (p_nom - mom.rho()) / p_nom;
190 
191  particleInfo[part->barcode()] = std::move(info);
192  }
193 
194  // check acceptance
195  for (const auto &pp : *hStripRecHitsPerParticle) {
196  const auto barcode = pp.first;
197 
198  for (const auto &ds : pp.second) {
199  CTPPSDetId detId(ds.detId());
200  CTPPSDetId rpId = detId.rpId();
201  particleInfo[barcode].recHitsPerRP[rpId] += ds.size();
202  }
203  }
204 
205  for (const auto &pp : *hPixelRecHitsPerParticle) {
206  const auto barcode = pp.first;
207 
208  for (const auto &ds : pp.second) {
209  CTPPSDetId detId(ds.detId());
210  CTPPSDetId rpId = detId.rpId();
211  particleInfo[barcode].recHitsPerRP[rpId] += ds.size();
212  }
213  }
214 
215  std::map<unsigned int, bool> isStripRPNear, isStripRPFar;
216 
217  for (auto &pp : particleInfo) {
218  if (verbosity_)
219  os << "* barcode=" << pp.first << ", arm=" << pp.second.arm << ", xi=" << pp.second.xi << std::endl;
220 
221  for (const auto &rpp : pp.second.recHitsPerRP) {
222  CTPPSDetId rpId(rpp.first);
223  unsigned int needed_rec_hits = 1000;
224  if (rpId.subdetId() == CTPPSDetId::sdTrackingStrip)
225  needed_rec_hits = 6;
226  if (rpId.subdetId() == CTPPSDetId::sdTrackingPixel)
227  needed_rec_hits = 3;
228 
229  unsigned int rpDecId = rpId.arm() * 100 + rpId.station() * 10 + rpId.rp();
230 
231  if (rpId.subdetId() == CTPPSDetId::sdTrackingStrip) {
232  if (rpDecId == rpDecId_near_[rpId.arm()])
233  isStripRPNear[rpId.arm()] = true;
234  if (rpDecId == rpDecId_far_[rpId.arm()])
235  isStripRPFar[rpId.arm()] = true;
236  }
237 
238  if (rpp.second >= needed_rec_hits) {
239  if (rpDecId == rpDecId_near_[rpId.arm()])
240  pp.second.inAcceptanceNear = true;
241  if (rpDecId == rpDecId_far_[rpId.arm()])
242  pp.second.inAcceptanceFar = true;
243  }
244 
245  if (verbosity_)
246  os << " RP " << rpDecId << ": " << rpp.second << " hits" << std::endl;
247  }
248 
249  pp.second.inAcceptance = pp.second.inAcceptanceNear && pp.second.inAcceptanceFar;
250 
251  if (verbosity_)
252  os << " inAcceptance: near=" << pp.second.inAcceptanceNear << ", far=" << pp.second.inAcceptanceFar
253  << ", global=" << pp.second.inAcceptance << std::endl;
254  }
255 
256  // count particles in acceptance
257  struct ArmCounter {
258  unsigned int near = 0, far = 0, global = 0;
259  };
260  std::map<unsigned int, ArmCounter> nParticlesInAcceptance;
261  for (auto &pp : particleInfo) {
262  auto &counter = nParticlesInAcceptance[pp.second.arm];
263  if (pp.second.inAcceptanceNear)
264  counter.near++;
265  if (pp.second.inAcceptanceFar)
266  counter.far++;
267  if (pp.second.inAcceptance)
268  counter.global++;
269  }
270 
271  // count reconstructed tracks
272  std::map<unsigned int, ArmCounter> nReconstructedTracks;
273  for (const auto &tr : *tracks) {
274  CTPPSDetId rpId(tr.rpId());
275  unsigned int rpDecId = rpId.arm() * 100 + rpId.station() * 10 + rpId.rp();
276 
277  if (rpDecId == rpDecId_near_[rpId.arm()])
278  nReconstructedTracks[rpId.arm()].near++;
279  if (rpDecId == rpDecId_far_[rpId.arm()])
280  nReconstructedTracks[rpId.arm()].far++;
281  }
282 
283  // count reconstructed protons
284  std::map<unsigned int, unsigned int> nReconstructedProtons;
285  for (const auto &pr : *hRecoProtonsMultiRP) {
286  if (!pr.validFit())
287  continue;
288 
289  unsigned int arm = 2;
290  if (pr.lhcSector() == reco::ForwardProton::LHCSector::sector45)
291  arm = 0;
292  if (pr.lhcSector() == reco::ForwardProton::LHCSector::sector56)
293  arm = 1;
294 
295  nReconstructedProtons[arm]++;
296  }
297 
298  // fill plots
299  for (unsigned int arm = 0; arm < 2; arm++) {
300  const auto &npa = nParticlesInAcceptance[arm];
301  const auto &nrt = nReconstructedTracks[arm];
302 
303  if (verbosity_)
304  os << "* arm " << arm << ": nRecoProtons=" << nReconstructedProtons[arm]
305  << " (tracks near=" << nReconstructedTracks[arm].near << ", far=" << nReconstructedTracks[arm].far
306  << "), nAcc=" << npa.global << " (near=" << npa.near << ", far=" << npa.far << ")" << std::endl;
307 
308  // skip event if no track in global acceptance
309  if (npa.global < 1)
310  continue;
311 
312  const auto &p = plots_[arm][npa.global];
313 
314  p.h_n_part_acc_nr->Fill(npa.near);
315  p.h_n_part_acc_fr->Fill(npa.far);
316 
317  // skip events with some local reconstruction inefficiency
318  if (nrt.near != npa.near || nrt.far != npa.far)
319  continue;
320 
321  const double eff = double(nReconstructedProtons[arm]) / npa.global;
322 
323  if (verbosity_)
324  os << " eff=" << eff << std::endl;
325 
326  for (auto &pp : particleInfo) {
327  if (pp.second.arm != arm || !pp.second.inAcceptance)
328  continue;
329 
330  p.p_eff_vs_xi->Fill(pp.second.xi, eff);
331  }
332  }
333 
334  if (verbosity_)
335  edm::LogInfo("CTPPSProtonReconstructionEfficiencyEstimatorMC") << os.str();

References LHCInfo::energy(), edm::EventSetup::get(), get, edm::HepMCProduct::GetEvent(), iEvent, info(), lhcInfoLabel_, eostools::move(), AlCaHLTBitMon_ParallelJobs::p, plots_, createTree::pp, rpDecId_far_, rpDecId_near_, year_2016_postTS2_cff::rpId, CTPPSDetId::sdTrackingPixel, CTPPSDetId::sdTrackingStrip, reco::ForwardProton::sector45, reco::ForwardProton::sector56, tokenHepMCAfterSmearing_, tokenPixelRecHitsPerParticle_, tokenRecoProtonsMultiRP_, tokenStripRecHitsPerParticle_, PDWG_EXOHSCP_cff::tracks, tracksToken_, verbosity_, and hybridSuperClusters_cfi::xi.

◆ endJob()

void CTPPSProtonReconstructionEfficiencyEstimatorMC::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 339 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

340  {
341  auto f_out = std::make_unique<TFile>(outputFile_.c_str(), "recreate");
342 
343  for (const auto &ait : plots_) {
344  char buf[100];
345  sprintf(buf, "arm%u", ait.first);
346  TDirectory *d_arm = f_out->mkdir(buf);
347 
348  for (const auto &npit : ait.second) {
349  sprintf(buf, "%u", npit.first);
350  TDirectory *d_np = d_arm->mkdir(buf);
351  gDirectory = d_np;
352 
353  npit.second.write();
354  }
355  }

References visDQMUpload::buf, outputFile_, and plots_.

Member Data Documentation

◆ lhcInfoLabel_

std::string CTPPSProtonReconstructionEfficiencyEstimatorMC::lhcInfoLabel_
private

Definition at line 57 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ outputFile_

std::string CTPPSProtonReconstructionEfficiencyEstimatorMC::outputFile_
private

Definition at line 64 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by endJob().

◆ plots_

std::map<unsigned int, std::map<unsigned int, PlotGroup> > CTPPSProtonReconstructionEfficiencyEstimatorMC::plots_
private

◆ rpDecId_far_

std::map<unsigned int, unsigned int> CTPPSProtonReconstructionEfficiencyEstimatorMC::rpDecId_far_
private

◆ rpDecId_near_

std::map<unsigned int, unsigned int> CTPPSProtonReconstructionEfficiencyEstimatorMC::rpDecId_near_
private

◆ rpId_45_F_

unsigned int CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_45_F_
private

◆ rpId_45_N_

unsigned int CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_45_N_
private

◆ rpId_56_F_

unsigned int CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_56_F_
private

◆ rpId_56_N_

unsigned int CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_56_N_
private

◆ tokenHepMCAfterSmearing_

edm::EDGetTokenT<edm::HepMCProduct> CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenHepMCAfterSmearing_
private

Definition at line 48 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ tokenPixelRecHitsPerParticle_

edm::EDGetTokenT<std::map<int, edm::DetSetVector<CTPPSPixelRecHit> > > CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenPixelRecHitsPerParticle_
private

Definition at line 51 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ tokenRecoProtonsMultiRP_

edm::EDGetTokenT<reco::ForwardProtonCollection> CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenRecoProtonsMultiRP_
private

Definition at line 55 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ tokenStripRecHitsPerParticle_

edm::EDGetTokenT<std::map<int, edm::DetSetVector<TotemRPRecHit> > > CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenStripRecHitsPerParticle_
private

Definition at line 50 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ tracksToken_

edm::EDGetTokenT<CTPPSLocalTrackLiteCollection> CTPPSProtonReconstructionEfficiencyEstimatorMC::tracksToken_
private

Definition at line 53 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

◆ verbosity_

unsigned int CTPPSProtonReconstructionEfficiencyEstimatorMC::verbosity_
private

Definition at line 66 of file CTPPSProtonReconstructionEfficiencyEstimatorMC.cc.

Referenced by analyze().

LHCInfo::energy
const float energy() const
Definition: LHCInfo.cc:190
edm::DetSetVector< TotemRPRecHit >
counter
Definition: counter.py:1
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenHepMCAfterSmearing_
edm::EDGetTokenT< edm::HepMCProduct > tokenHepMCAfterSmearing_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:48
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
np
int np
Definition: AMPTWrapper.h:43
hybridSuperClusters_cfi.xi
xi
Definition: hybridSuperClusters_cfi.py:10
CTPPSProtonReconstructionEfficiencyEstimatorMC::lhcInfoLabel_
std::string lhcInfoLabel_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:57
edm::LogInfo
Definition: MessageLogger.h:254
info
static const TGPicture * info(bool iBackgroundIsBlack)
Definition: FWCollectionSummaryWidget.cc:152
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpDecId_far_
std::map< unsigned int, unsigned int > rpDecId_far_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:62
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
edm::Handle< edm::HepMCProduct >
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_56_N_
unsigned int rpId_56_N_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:60
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
part
part
Definition: HCALResponse.h:20
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
edm::ESHandle< LHCInfo >
LHCInfoRcd
Definition: LHCInfoRcd.h:24
CTPPSDetId::sdTrackingPixel
Definition: CTPPSDetId.h:44
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_45_F_
unsigned int rpId_45_F_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:59
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSProtonReconstructionEfficiencyEstimatorMC::verbosity_
unsigned int verbosity_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:66
CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenStripRecHitsPerParticle_
edm::EDGetTokenT< std::map< int, edm::DetSetVector< TotemRPRecHit > > > tokenStripRecHitsPerParticle_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:50
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_56_F_
unsigned int rpId_56_F_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:60
sipixeldigitoraw
Definition: SiPixelDigiToRaw.cc:38
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpId_45_N_
unsigned int rpId_45_N_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:59
reco::ForwardProton::LHCSector::sector56
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
iEvent
int iEvent
Definition: GenABIO.cc:224
CTPPSProtonReconstructionEfficiencyEstimatorMC::outputFile_
std::string outputFile_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:64
CTPPSProtonReconstructionEfficiencyEstimatorMC::tracksToken_
edm::EDGetTokenT< CTPPSLocalTrackLiteCollection > tracksToken_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:53
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:34
get
#define get
visDQMUpload.buf
buf
Definition: visDQMUpload.py:154
CTPPSProtonReconstructionEfficiencyEstimatorMC::rpDecId_near_
std::map< unsigned int, unsigned int > rpDecId_near_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:62
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenPixelRecHitsPerParticle_
edm::EDGetTokenT< std::map< int, edm::DetSetVector< CTPPSPixelRecHit > > > tokenPixelRecHitsPerParticle_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:51
eostools.move
def move(src, dest)
Definition: eostools.py:511
reco::ForwardProton::LHCSector::sector45
CTPPSProtonReconstructionEfficiencyEstimatorMC::tokenRecoProtonsMultiRP_
edm::EDGetTokenT< reco::ForwardProtonCollection > tokenRecoProtonsMultiRP_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:55
CTPPSProtonReconstructionEfficiencyEstimatorMC::plots_
std::map< unsigned int, std::map< unsigned int, PlotGroup > > plots_
Definition: CTPPSProtonReconstructionEfficiencyEstimatorMC.cc:85
genParticles_cff.map
map
Definition: genParticles_cff.py:11
createTree.pp
pp
Definition: createTree.py:17
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:126
ParticleInfo
Definition: ParticleTable.h:15
edm::InputTag
Definition: InputTag.h:15