CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TestPythiaDecays Class Reference

#include <Lukas/TestPythiaDecays/plugins/TestPythiaDecays.cc>

Inheritance diagram for TestPythiaDecays:
edm::stream::EDAnalyzer<> edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 TestPythiaDecays (const edm::ParameterSet &)
 
 ~TestPythiaDecays () override
 
- Public Member Functions inherited from edm::stream::EDAnalyzer<>
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
 EDAnalyzerBase (const EDAnalyzerBase &)=delete
 
ModuleDescription const & moduleDescription () const
 
const EDAnalyzerBaseoperator= (const EDAnalyzerBase &)=delete
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

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

Private Attributes

std::map< int, TH1D * > h_br
 
std::map< int, TH1D * > h_br_ref
 
std::map< int, TH1D * > h_decayVertexRho
 
std::map< int, TH1D * > h_decayVertexZ
 
std::map< int, TH1D * > h_mass
 
std::map< int, TH1D * > h_mass_ref
 
std::map< int, TH1D * > h_originVertexRho
 
std::map< int, TH1D * > h_originVertexZ
 
std::map< int, TH1D * > h_p
 
std::map< int, TH1D * > h_plt
 
std::map< int, TH1D * > h_plt_ref
 
std::map< int, TH1D * > h_v
 
std::map< int, std::vector< std::string > > knownDecayModes
 
std::string outputFile
 
std::vector< int > pids
 
Pythia8::Pythia * pythia
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, 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)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 52 of file TestPythiaDecays.cc.

Constructor & Destructor Documentation

◆ TestPythiaDecays()

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

Definition at line 99 of file TestPythiaDecays.cc.

References funct::abs(), b, gather_cfg::cout, ztail::d, beamvalidation::exit(), edm::ParameterSet::getParameter(), h_br, h_br_ref, h_decayVertexRho, h_decayVertexZ, h_mass, h_mass_ref, h_originVertexRho, h_originVertexZ, h_p, h_plt, h_plt_ref, h_v, mps_fire::i, knownDecayModes, label, SiStripPI::min, outputFile, AlCaHLTBitMon_ParallelJobs::p, pids, dumpMFGeometry_cfg::prod, pythia, jetUpdater_cfi::sort, AlCaHLTBitMon_QueryRunRegistry::string, and w().

99  {
100  // output file
101  outputFile = iConfig.getParameter<std::string>("outputFile");
102 
103  // create pythia8 instance to access particle data
104  pythia = new Pythia8::Pythia();
105  pythia->init();
106  Pythia8::ParticleData pdt = pythia->particleData;
107 
108  // which particles will we study?
109  pids.push_back(15); // tau
110  pids.push_back(211); // pi+
111  pids.push_back(111); // pi0
112  pids.push_back(130); // K0L
113  pids.push_back(321); // K+
114  pids.push_back(323); // K*(392)
115  pids.push_back(411); // D+
116  pids.push_back(521); // B+
117 
118  // define histograms
119  for (size_t i = 0; i < pids.size(); ++i) {
120  int pid = abs(pids[i]);
121 
122  // get particle data
123  if (!pdt.isParticle(pid)) {
124  std::cout << "ERROR: BAD PARTICLE, pythia is not aware of pid " << pid << std::endl;
125  std::exit(1);
126  }
127  ParticleDataEntryPtr pd = pdt.particleDataEntryPtr(pid);
128 
129  // mass histograms
130  double m0 = pd->m0();
131  double w = pd->mWidth();
132  double mmin, mmax;
133  if (w == 0) {
134  mmin = m0 - m0 / 1000.;
135  mmax = m0 + m0 / 1000.;
136  } else {
137  mmin = m0 - 2 * w;
138  mmax = m0 + 2 * w;
139  }
140  std::stringstream strstr;
141  strstr << "mass_" << pid;
142  h_mass[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, mmin, mmax);
143  h_mass_ref[pid] = (TH1D*)(h_mass[pid]->Clone(strstr.str().c_str()));
144  h_mass_ref[pid]->SetTitle(h_mass_ref[pid]->GetName());
145  if (w == 0)
146  h_mass_ref[pid]->Fill(m0);
147  else {
148  for (int b = 1; b <= h_mass_ref[pid]->GetNbinsX(); ++b) {
149  double _val = h_mass_ref[pid]->GetBinCenter(b);
150  h_mass_ref[pid]->SetBinContent(b, TMath::BreitWigner(_val, m0, w));
151  }
152  }
153 
154  // p histogram
155  strstr.str("");
156  strstr << "p_" << pid;
157  h_p[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 20);
158 
159  // v histogram
160  strstr.str("");
161  strstr << "v_" << pid;
162  h_v[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 1.);
163 
164  // ctau histograms
165  double ctau0 = pd->tau0() / 10.;
166  strstr.str("");
167  strstr << "plt_" << pid;
168  h_plt[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, std::min(5. * ctau0, 500.));
169  h_plt_ref[pid] = (TH1D*)(h_plt[pid]->Clone(strstr.str().c_str()));
170  h_plt_ref[pid]->SetTitle(h_plt_ref[pid]->GetName());
171  for (int b = 1; b <= h_plt_ref[pid]->GetNbinsX(); ++b) {
172  double _val = h_plt_ref[pid]->GetBinCenter(b);
173  h_plt_ref[pid]->SetBinContent(b, TMath::Exp(-_val / ctau0)); //convert mm to cm
174  }
175 
176  // br histograms
177  strstr.str("");
178  strstr << "br_" << pid;
179  h_br[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 0, 0, 0);
180  h_br[pid]->SetCanExtend(TH1::kAllAxes);
181  h_br_ref[pid] = (TH1D*)(h_br[pid]->Clone(strstr.str().c_str()));
182  h_br_ref[pid]->SetTitle(h_br_ref[pid]->GetName());
183  knownDecayModes[pid] = std::vector<std::string>();
184  for (int d = 0; d < pd->sizeChannels(); ++d) {
185  Pythia8::DecayChannel& channel = pd->channel(d);
186  std::vector<int> prod;
187  for (int p = 0; p < channel.multiplicity(); ++p) {
188  int pId = abs(channel.product(p));
189  // from FastSimulation/Event/src/KineParticleFilter.cc
190  bool particleCut =
191  (pId > 10 && pId != 12 && pId != 14 && pId != 16 && pId != 18 && pId != 21 && (pId < 23 || pId > 40) &&
192  (pId < 81 || pId > 100) && pId != 2101 && pId != 3101 && pId != 3201 && pId != 1103 && pId != 2103 &&
193  pId != 2203 && pId != 3103 && pId != 3203 && pId != 3303);
194  if (particleCut)
195  prod.push_back(abs(channel.product(p)));
196  }
197  std::sort(prod.begin(), prod.end());
198  strstr.str("");
199  for (size_t p = 0; p < prod.size(); ++p) {
200  strstr << "_" << prod[p];
201  }
202  std::string label = strstr.str();
203  h_br[pid]->Fill(label.c_str(), 0.);
204  h_br_ref[pid]->Fill(label.c_str(), channel.bRatio());
205  h_br[pid]->SetEntries(0);
206  knownDecayModes[pid].push_back(label);
207  }
208 
209  // vertex plots
210  strstr.str("");
211  strstr << "originVertexRho_" << pid;
212  h_originVertexRho[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 200);
213  strstr.str("");
214  strstr << "originVertexZ_" << pid;
215  h_originVertexZ[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 400);
216  strstr.str("");
217  strstr << "decayVertexRho_" << pid;
218  h_decayVertexRho[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 200);
219  strstr.str("");
220  strstr << "decayVertexZ_" << pid;
221  h_decayVertexZ[pid] = new TH1D(strstr.str().c_str(), strstr.str().c_str(), 100, 0, 400);
222  }
223 }
std::map< int, TH1D * > h_plt
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
T w() const
std::vector< int > pids
std::map< int, TH1D * > h_originVertexRho
std::map< int, TH1D * > h_plt_ref
std::map< int, TH1D * > h_br_ref
std::map< int, TH1D * > h_br
std::map< int, TH1D * > h_originVertexZ
char const * label
std::map< int, TH1D * > h_p
Pythia8::Pythia * pythia
std::map< int, TH1D * > h_mass
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HepPDT::ParticleData ParticleData
d
Definition: ztail.py:151
std::map< int, TH1D * > h_v
std::map< int, std::vector< std::string > > knownDecayModes
std::map< int, TH1D * > h_decayVertexZ
double b
Definition: hdecay.h:118
std::map< int, TH1D * > h_decayVertexRho
std::string outputFile
std::map< int, TH1D * > h_mass_ref
Pythia8::ParticleDataEntry * ParticleDataEntryPtr
def exit(msg="")

◆ ~TestPythiaDecays()

TestPythiaDecays::~TestPythiaDecays ( )
override

Definition at line 225 of file TestPythiaDecays.cc.

References f, h_br, h_br_ref, h_decayVertexRho, h_decayVertexZ, h_mass, h_mass_ref, h_originVertexRho, h_originVertexZ, h_p, h_plt, h_plt_ref, h_v, mps_fire::i, outputFile, and pids.

225  {
226  // do anything here that needs to be done at desctruction time
227  // (e.g. close files, deallocate resources etc.)
228  TFile* f = TFile::Open(outputFile.c_str(), "RECREATE");
229  f->cd();
230  f->mkdir("observed");
231  f->mkdir("prediction");
232  for (size_t i = 0; i < pids.size(); ++i) {
233  int pid = pids[i];
234  f->cd("observed");
235  h_mass[pid]->Write();
236  h_plt[pid]->Write();
237  h_br[pid]->Write();
238  h_originVertexZ[pid]->Write();
239  h_originVertexRho[pid]->Write();
240  h_decayVertexZ[pid]->Write();
241  h_decayVertexRho[pid]->Write();
242  h_p[pid]->Write();
243  h_v[pid]->Write();
244  f->cd("prediction");
245  h_mass_ref[pid]->Write();
246  h_plt_ref[pid]->Write();
247  h_br_ref[pid]->Write();
248  }
249  f->Close();
250 }
std::map< int, TH1D * > h_plt
std::vector< int > pids
std::map< int, TH1D * > h_originVertexRho
std::map< int, TH1D * > h_plt_ref
std::map< int, TH1D * > h_br_ref
std::map< int, TH1D * > h_br
std::map< int, TH1D * > h_originVertexZ
std::map< int, TH1D * > h_p
std::map< int, TH1D * > h_mass
double f[11][100]
std::map< int, TH1D * > h_v
std::map< int, TH1D * > h_decayVertexZ
std::map< int, TH1D * > h_decayVertexRho
std::string outputFile
std::map< int, TH1D * > h_mass_ref

Member Function Documentation

◆ analyze()

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

Implements edm::stream::EDAnalyzerBase.

Definition at line 257 of file TestPythiaDecays.cc.

References funct::abs(), ztail::d, relativeConstraints::empty, mps_fire::end, spr::find(), h_br, h_br_ref, h_decayVertexRho, h_decayVertexZ, h_mass, h_originVertexRho, h_originVertexZ, h_p, h_plt, h_v, iEvent, createfilelist::int, dqmiolumiharvest::j, knownDecayModes, label, genParticles_cff::map, EgHLTOffHistBins_cfi::mass, AlCaHLTBitMon_ParallelJobs::p, class-composition::parent, pids, CoreSimVertex::position(), dumpMFGeometry_cfg::prod, jetUpdater_cfi::sort, AlCaHLTBitMon_QueryRunRegistry::string, bphysicsOniaDQM_cfi::vertex, and SimTrack::vertIndex().

257  {
258  using namespace edm;
259 
260  Handle<std::vector<SimTrack> > simtracks;
261  iEvent.getByLabel("famosSimHits", simtracks);
262 
263  Handle<std::vector<SimVertex> > simvertices;
264  iEvent.getByLabel("famosSimHits", simvertices);
265 
266  // create maps
267 
268  // initialize
269  std::map<size_t, std::vector<size_t> > childMap; // child indices vs parent index
270  std::map<size_t, int> parentMap; // parent index vs child index
271  for (size_t j = 0; j < simtracks->size(); j++) {
272  childMap[j] = std::vector<size_t>();
273  parentMap[j] = -1;
274  }
275 
276  // do the mapping
277  for (size_t j = 0; j < simtracks->size(); j++) {
278  size_t childIndex = j;
279  const SimTrack& child = simtracks->at(childIndex);
280  if (child.noVertex())
281  continue;
282  const SimVertex& vertex = simvertices->at(child.vertIndex());
283  if (vertex.noParent())
284  continue;
285  size_t parentIndex = vertex.parentIndex();
286  childMap[parentIndex].push_back(childIndex);
287  parentMap[childIndex] = int(parentIndex);
288  }
289 
290  for (size_t j = 0; j < simtracks->size(); j++) {
291  const SimTrack& parent = simtracks->at(j);
292  int pid = abs(parent.type());
293  if (std::find(pids.begin(), pids.end(), pid) == pids.end())
294  continue;
295 
296  // fill mass hist
297  double mass = parent.momentum().M();
298  h_mass[pid]->Fill(mass);
299 
300  // fill p hist
301  h_p[pid]->Fill(parent.momentum().P());
302 
303  // fill vertex position hist
304  if (!parent.noVertex()) {
305  const SimVertex& originVertex = simvertices->at(parent.vertIndex());
306  h_originVertexRho[pid]->Fill(originVertex.position().Rho());
307  h_originVertexZ[pid]->Fill(std::fabs(originVertex.position().Z()));
308  }
309  if (!childMap[j].empty()) {
310  const SimTrack& child = simtracks->at(childMap[j][0]);
311  const SimVertex& decayVertex = simvertices->at(child.vertIndex());
312  h_decayVertexRho[pid]->Fill(decayVertex.position().Rho());
313  h_decayVertexZ[pid]->Fill(std::fabs(decayVertex.position().Z()));
314  }
315  }
316 
317  for (std::map<size_t, std::vector<size_t> >::iterator it = childMap.begin(); it != childMap.end(); ++it) {
318  // fill ctau hist
319  size_t parentIndex = it->first;
320  const SimTrack& parent = simtracks->at(parentIndex);
321  int pid = abs(parent.type());
322  std::vector<size_t>& childIndices = it->second;
323  if (childIndices.empty())
324  continue;
325 
326  if (std::find(pids.begin(), pids.end(), pid) == pids.end())
327  continue;
328 
329  const SimVertex& origin_vertex = simvertices->at(parent.vertIndex());
330  const SimTrack& child0 = simtracks->at(childIndices[0]);
331  const SimVertex& decay_vertex = simvertices->at(child0.vertIndex());
332 
333  TLorentzVector lv_origin_vertex(origin_vertex.position().X(),
334  origin_vertex.position().Y(),
335  origin_vertex.position().Z(),
336  origin_vertex.position().T());
337  TLorentzVector lv_decay_vertex(decay_vertex.position().X(),
338  decay_vertex.position().Y(),
339  decay_vertex.position().Z(),
340  decay_vertex.position().T());
341  TLorentzVector lv_dist = lv_decay_vertex - lv_origin_vertex;
342  TLorentzVector lv_parent(
343  parent.momentum().Px(), parent.momentum().Py(), parent.momentum().Pz(), parent.momentum().E());
344  TVector3 boost = lv_parent.BoostVector();
345  lv_dist.Boost(-boost);
346  h_v[pid]->Fill(boost.Mag());
347  double plt = lv_dist.T();
348  h_plt[pid]->Fill(plt);
349 
350  // fill br hist
351  std::vector<int> prod;
352  for (size_t d = 0; d < childIndices.size(); ++d) {
353  prod.push_back(abs(simtracks->at(childIndices[d]).type()));
354  }
355  std::sort(prod.begin(), prod.end());
356  std::stringstream strstr;
357  for (size_t p = 0; p < prod.size(); ++p) {
358  strstr << "_" << prod[p];
359  }
360  std::string label = strstr.str();
361  if (std::find(knownDecayModes[pid].begin(), knownDecayModes[pid].end(), label) == knownDecayModes[pid].end())
362  label = "u" + label;
363  h_br[pid]->Fill(label.c_str(), 1.);
364  h_br_ref[pid]->Fill(label.c_str(), 0.); // keep h_br and h_br_ref in sync
365  }
366 }
std::map< int, TH1D * > h_plt
Definition: CLHEP.h:16
const math::XYZTLorentzVectorD & position() const
Definition: CoreSimVertex.h:21
std::vector< int > pids
std::map< int, TH1D * > h_originVertexRho
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
std::map< int, TH1D * > h_br_ref
std::map< int, TH1D * > h_br
std::map< int, TH1D * > h_originVertexZ
char const * label
std::map< int, TH1D * > h_p
int vertIndex() const
index of the vertex in the Event container (-1 if no vertex)
Definition: SimTrack.h:33
int iEvent
Definition: GenABIO.cc:224
std::map< int, TH1D * > h_mass
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
d
Definition: ztail.py:151
std::map< int, TH1D * > h_v
std::map< int, std::vector< std::string > > knownDecayModes
std::map< int, TH1D * > h_decayVertexZ
std::map< int, TH1D * > h_decayVertexRho
HLT enums.

◆ fillDescriptions()

void TestPythiaDecays::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 401 of file TestPythiaDecays.cc.

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

401  {
402  //The following says we do not know what parameters are allowed so do no validation
403  // Please change this to state exactly what you do use, even if it is no parameters
405  desc.setUnknown();
406  descriptions.addDefault(desc);
407 }
void addDefault(ParameterSetDescription const &psetDescription)

Member Data Documentation

◆ h_br

std::map<int, TH1D*> TestPythiaDecays::h_br
private

Definition at line 79 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_br_ref

std::map<int, TH1D*> TestPythiaDecays::h_br_ref
private

Definition at line 80 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_decayVertexRho

std::map<int, TH1D*> TestPythiaDecays::h_decayVertexRho
private

Definition at line 76 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_decayVertexZ

std::map<int, TH1D*> TestPythiaDecays::h_decayVertexZ
private

Definition at line 77 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_mass

std::map<int, TH1D*> TestPythiaDecays::h_mass
private

Definition at line 69 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_mass_ref

std::map<int, TH1D*> TestPythiaDecays::h_mass_ref
private

Definition at line 72 of file TestPythiaDecays.cc.

Referenced by TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_originVertexRho

std::map<int, TH1D*> TestPythiaDecays::h_originVertexRho
private

Definition at line 74 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_originVertexZ

std::map<int, TH1D*> TestPythiaDecays::h_originVertexZ
private

Definition at line 75 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_p

std::map<int, TH1D*> TestPythiaDecays::h_p
private

Definition at line 70 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_plt

std::map<int, TH1D*> TestPythiaDecays::h_plt
private

Definition at line 73 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_plt_ref

std::map<int, TH1D*> TestPythiaDecays::h_plt_ref
private

Definition at line 78 of file TestPythiaDecays.cc.

Referenced by TestPythiaDecays(), and ~TestPythiaDecays().

◆ h_v

std::map<int, TH1D*> TestPythiaDecays::h_v
private

Definition at line 71 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ knownDecayModes

std::map<int, std::vector<std::string> > TestPythiaDecays::knownDecayModes
private

Definition at line 82 of file TestPythiaDecays.cc.

Referenced by analyze(), and TestPythiaDecays().

◆ outputFile

std::string TestPythiaDecays::outputFile
private

Definition at line 85 of file TestPythiaDecays.cc.

Referenced by TestPythiaDecays(), and ~TestPythiaDecays().

◆ pids

std::vector<int> TestPythiaDecays::pids
private

Definition at line 68 of file TestPythiaDecays.cc.

Referenced by analyze(), TestPythiaDecays(), and ~TestPythiaDecays().

◆ pythia

Pythia8::Pythia* TestPythiaDecays::pythia
private

Definition at line 84 of file TestPythiaDecays.cc.

Referenced by TestPythiaDecays().