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<>
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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)
 

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<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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)
 
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<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)
 

Detailed Description

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 47 of file TestPythiaDecays.cc.

Constructor & Destructor Documentation

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

Definition at line 94 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, min(), outputFile, AlCaHLTBitMon_ParallelJobs::p, pids, dumpMFGeometry_cfg::prod, pythia, AlCaHLTBitMon_QueryRunRegistry::string, and w.

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

Definition at line 220 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.

220  {
221  // do anything here that needs to be done at desctruction time
222  // (e.g. close files, deallocate resources etc.)
223  TFile* f = TFile::Open(outputFile.c_str(), "RECREATE");
224  f->cd();
225  f->mkdir("observed");
226  f->mkdir("prediction");
227  for (size_t i = 0; i < pids.size(); ++i) {
228  int pid = pids[i];
229  f->cd("observed");
230  h_mass[pid]->Write();
231  h_plt[pid]->Write();
232  h_br[pid]->Write();
233  h_originVertexZ[pid]->Write();
234  h_originVertexRho[pid]->Write();
235  h_decayVertexZ[pid]->Write();
236  h_decayVertexRho[pid]->Write();
237  h_p[pid]->Write();
238  h_v[pid]->Write();
239  f->cd("prediction");
240  h_mass_ref[pid]->Write();
241  h_plt_ref[pid]->Write();
242  h_br_ref[pid]->Write();
243  }
244  f->Close();
245 }
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

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

Definition at line 252 of file TestPythiaDecays.cc.

References funct::abs(), begin, ztail::d, relativeConstraints::empty, end, spr::find(), edm::Event::getByLabel(), h_br, h_br_ref, h_decayVertexRho, h_decayVertexZ, h_mass, h_originVertexRho, h_originVertexZ, h_p, h_plt, h_v, createfilelist::int, dqmiolumiharvest::j, knownDecayModes, label, genParticles_cff::map, EgHLTOffHistBins_cfi::mass, CoreSimTrack::momentum(), SimVertex::noParent(), SimTrack::noVertex(), AlCaHLTBitMon_ParallelJobs::p, class-composition::parent, SimVertex::parentIndex(), pids, CoreSimVertex::position(), dumpMFGeometry_cfg::prod, AlCaHLTBitMon_QueryRunRegistry::string, CoreSimTrack::type(), bphysicsOniaDQM_cfi::vertex, and SimTrack::vertIndex().

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

Definition at line 396 of file TestPythiaDecays.cc.

References edm::ConfigurationDescriptions::addDefault(), DEFINE_FWK_MODULE, and edm::ParameterSetDescription::setUnknown().

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

Member Data Documentation

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

Definition at line 74 of file TestPythiaDecays.cc.

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

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

Definition at line 75 of file TestPythiaDecays.cc.

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

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

Definition at line 71 of file TestPythiaDecays.cc.

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

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

Definition at line 72 of file TestPythiaDecays.cc.

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

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

Definition at line 64 of file TestPythiaDecays.cc.

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

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

Definition at line 67 of file TestPythiaDecays.cc.

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

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

Definition at line 69 of file TestPythiaDecays.cc.

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

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

Definition at line 70 of file TestPythiaDecays.cc.

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

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

Definition at line 65 of file TestPythiaDecays.cc.

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

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

Definition at line 68 of file TestPythiaDecays.cc.

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

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

Definition at line 73 of file TestPythiaDecays.cc.

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

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

Definition at line 66 of file TestPythiaDecays.cc.

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

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

Definition at line 77 of file TestPythiaDecays.cc.

Referenced by analyze(), and TestPythiaDecays().

std::string TestPythiaDecays::outputFile
private

Definition at line 80 of file TestPythiaDecays.cc.

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

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

Definition at line 63 of file TestPythiaDecays.cc.

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

Pythia8::Pythia* TestPythiaDecays::pythia
private

Definition at line 79 of file TestPythiaDecays.cc.

Referenced by TestPythiaDecays().