Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
mcchk::CosmicAna Class Reference

A module to make some plots of generated cosmic-rays. More...

Inheritance diagram for mcchk::CosmicAna:
art::EDAnalyzer art::EventObserverBase art::Consumer art::EngineCreator

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 CosmicAna (fhicl::ParameterSet const &pset)
 
virtual ~CosmicAna ()
 
void analyze (art::Event const &evt)
 
void beginRun (art::Run const &run)
 
std::string workerType () const
 
bool modifiesEvent () const
 
void registerProducts (MasterProductRegistry &, ProductDescriptions &, ModuleDescription const &)
 
std::string const & processName () const
 
bool wantAllEvents () const
 
bool wantEvent (Event const &e)
 
fhicl::ParameterSetID selectorConfig () const
 
art::Handle< art::TriggerResultsgetTriggerResults (Event const &e) const
 
template<typename T , BranchType = InEvent>
ProductToken< Tconsumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< Tconsumes (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TconsumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< TmayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< TmayConsume (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< TmayConsumeView (InputTag const &it)
 
base_engine_tcreateEngine (seed_t seed)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label)
 
seed_t get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1)
 

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

CurrentProcessingContext const * currentContext () const
 
detail::CachedProducts & cachedProducts ()
 
void validateConsumedProduct (BranchType const bt, ProductInfo const &pi)
 
void prepareForJob (fhicl::ParameterSet const &pset)
 
void showMissingConsumes () const
 

Private Attributes

double fVtxBinSize
 Size of bins in cm for neutrino interaction vertex histograms. More...
 
double fRockDepthX
 Amount of space in cm outside of detector along x to plot interaction points. More...
 
double fRockDepthY
 Amount of space in cm outside of detector along y to plot interaction points. More...
 
double fRockDepthZ
 Amount of space in cm outside of detector along z to plot interaction points. More...
 
std::map< int, std::stringfParticleMap
 Map of particle PDG and name. More...
 
TH1F * fDmin
 Closest approach for particles leaving hits. More...
 
TH1F * fDminNoHit
 Closest approach for particles leaving no hits. More...
 
std::map< int, TH2F * > fParticleAngles
 
std::map< int, TH2F * > fParticleAnglesLo
 Particle rate vs angle, low momenta. More...
 
std::map< int, TH2F * > fParticleAnglesMi
 Particle rate vs angle, middle momenta. More...
 
std::map< int, TH2F * > fParticleAnglesHi
 Particle rate vs angle, high momenta. More...
 
std::map< int, TH1F * > fParticleCosTheta
 Particle rate vs cos(Q) More...
 
std::map< int, TH1F * > fParticleEnergy
 Particle energy (GeV) More...
 
std::map< int, TH2F * > fParticleEnergyVsAngle
 Particle Energy vs angle. More...
 
std::map< int, TH2F * > fParticleVertexXY
 Particle vertex x vs y view. More...
 
std::map< int, TH1F * > fParticleVertexZ
 Particle vertex z view. More...
 
TH1F * fVerticalMuons
 Number of vertical muons. More...
 
TH1F * fCRCosX
 For each particle from ParticleNavigator... More...
 
TH1F * fCRCosY
 Particle Y Direction cosine. More...
 
TH1F * fCRCosZ
 Particle Z Direction cosine. More...
 
TH1F * fCRVtxX
 
TH1F * fCRVtxY
 
TH1F * fCRVtxZ
 
TH1F * fCREndX
 
TH1F * fCREndY
 
TH1F * fCREndZ
 
TH1F * fCRAvgCellsX
 
TH1F * fCRAvgCellsY
 
TH1F * fCREnergy
 
TH1F * fCRLowEnergy
 
TH1F * fCRLength
 
TH1F * fSampleTime
 Total sample time, number of events times 500 usec. More...
 

Detailed Description

A module to make some plots of generated cosmic-rays.

Definition at line 41 of file CosmicAna_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

mcchk::CosmicAna::CosmicAna ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 96 of file CosmicAna_module.cc.

97  : EDAnalyzer(pset),
98  fVtxBinSize(pset.get<double>("VtxBinSize")),
99  fRockDepthX(pset.get<double>("RockDepthX")),
100  fRockDepthY(pset.get<double>("RockDepthY")),
101  fRockDepthZ(pset.get<double>("RockDepthZ")),
102  fDmin(0) // Flag that histograms are uninitialized
103  {
104  }
double fRockDepthZ
Amount of space in cm outside of detector along z to plot interaction points.
double fRockDepthX
Amount of space in cm outside of detector along x to plot interaction points.
double fRockDepthY
Amount of space in cm outside of detector along y to plot interaction points.
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
TH1F * fDmin
Closest approach for particles leaving hits.
double fVtxBinSize
Size of bins in cm for neutrino interaction vertex histograms.
mcchk::CosmicAna::~CosmicAna ( )
virtual

Definition at line 107 of file CosmicAna_module.cc.

108  {
109  }

Member Function Documentation

void mcchk::CosmicAna::analyze ( art::Event const &  evt)
virtual

Implements art::EDAnalyzer.

Definition at line 340 of file CosmicAna_module.cc.

References abs(), std::atan2(), sim::ParticleNavigator::begin(), geo::PlaneGeo::Cell(), geo::ClosestApproach(), DEFINE_ART_MODULE(), geo::GeometryBase::DetLength(), E, sim::ParticleNavigator::end(), allTimeWatchdog::endl, energy, art::EventID::event(), fCRAvgCellsX, fCRAvgCellsY, fCRCosX, fCRCosY, fCRCosZ, fCREndX, fCREndY, fCREndZ, fCREnergy, fCRLength, fCRLowEnergy, fCRVtxX, fCRVtxY, fCRVtxZ, fDmin, fDminNoHit, fParticleAngles, fParticleAnglesHi, fParticleAnglesLo, fParticleAnglesMi, fParticleCosTheta, fParticleEnergy, fParticleEnergyVsAngle, fParticleMap, fParticleVertexXY, fParticleVertexZ, fSampleTime, fVerticalMuons, geo::GeometryBase::GetPlanesByView(), art::Event::getRun(), art::Event::id(), it, geo::kX, geo::kY, geo::CellGeo::LocalToWorld(), M_PI, simb::MCParticle::Momentum(), geo::PlaneGeo::Ncells(), cheat::BackTracker::ParticleNavigator(), cheat::BackTracker::ParticleToFLSHit(), make_root_from_grid_output::pdg, simb::MCParticle::PdgCode(), geo::GeometryBase::Plane(), simb::MCParticle::Position(), util::pythag(), art::Run::run(), art::Event::run(), gen_flatrecord::size, and simb::MCParticle::TrackId().

341  {
342  fSampleTime->Fill(0., 500.E-6); // Add 500 usec
343 
345 
347  const sim::ParticleNavigator &pnav = bt->ParticleNavigator();
348 
349  // Flags for "interesting" particles
350  double electronE = -1.0;
351  double photonE = -1.0;
352 
353  // Loop over particles in the event
354  for(sim::ParticleNavigator::const_iterator it = pnav.begin(); it != pnav.end(); ++it) {
355  const sim::Particle* particle = (*it).second;
356 
357  // Get a list of FLSHits corresponding to the current particle
358  const std::vector<sim::FLSHit>& flshits = bt->ParticleToFLSHit(particle->TrackId());
359  const int nflshits = flshits.size();
360 
361  const TLorentzVector& fourPosition = particle->Position();
362  const TLorentzVector& fourMomentum = particle->Momentum();
363 
364  // Inputs to ClosestApproach function
365  // Closest approach to this point
366  double detCenter[3] = {0., 0., 0.5*geo->DetLength()};
367  // Point on the line--calculate closest approach of this line to point above
368  double particleVtx[3] = {fourPosition.X(), fourPosition.Y(), fourPosition.Z()};
369  // Slope of line
370  double particleP[3] = {fourMomentum.Px(), fourMomentum.Py(), fourMomentum.Pz()};
371  double closestApp[3]; // Return vector
372  double distClosestApp = geo::ClosestApproach(detCenter, particleVtx, particleP, closestApp);
373 
374  if(nflshits == 0) {
375  fDminNoHit->Fill(distClosestApp);
376  }
377  else {
378  fDmin->Fill(distClosestApp);
379  if(distClosestApp > 10000.) {
380  mf::LogVerbatim("Dmin > 10000") << "Run " << evt.run() << ", Event " << evt.id().event() << std::endl
381  << "Particle PDG " << particle->PdgCode() << std::endl
382  << "Vertex " << fourPosition.X() << " " << fourPosition.Y() << " " << fourPosition.Z() << std::endl
383  << "Momentum" << fourMomentum.Px() << " " << fourMomentum.Py() << " " << fourMomentum.Pz() << std::endl
384  << "Distance of closest approach to detector center " << distClosestApp << std::endl;
385  }
386  } // end of (else) conditionals if size of FLSHit list from Particle is 0
387 
388  if(nflshits > 0) {
389  int pdg = abs(particle->PdgCode());
390 
391  double energy = fourMomentum.E();
392  double cosTheta = -fourMomentum.Py()/fourMomentum.P();
393  double phi = atan2(fourMomentum.Pz(), fourMomentum.Px());
394  phi *= 180./M_PI;
395 
396  // Add a vertical muon if angle is less than 10 degrees
397  if(pdg == 13 && cosTheta > 0.984808) {
398  fVerticalMuons->Fill(0.);
399  }
400 
401  // Proceed only if the current particle is one we care about
402  if(fParticleMap.find(pdg) != fParticleMap.end()) {
403  fParticleCosTheta[pdg]->Fill(cosTheta);
404  fParticleAngles[pdg] ->Fill(phi, cosTheta);
405 
406  // Fill angle plots based on momentum
407  if (energy < 1.) { fParticleAnglesLo[pdg]->Fill(phi, cosTheta); }
408  else if(energy < 10.) { fParticleAnglesMi[pdg]->Fill(phi, cosTheta); }
409  else { fParticleAnglesHi[pdg]->Fill(phi, cosTheta); }
410 
411  // Fill particle energy information
412  fParticleEnergy[pdg] ->Fill(energy);
413  fParticleEnergyVsAngle[pdg]->Fill(cosTheta, energy);
414 
415  // Fill particle vertex information
416  fParticleVertexXY[pdg]->Fill(fourPosition.X(), fourPosition.Y());
417  fParticleVertexZ[pdg] ->Fill(fourPosition.Z());
418 
419  // Create matrix (vector of vectors) of number of hits in each cell
420  std::vector<std::vector<double> > hitsByPlaneCell(geo->GetPlanesByView().size());
421  unsigned int numCells = geo->Plane(0)->Ncells();
422  if(geo->Plane(1)->Ncells() > numCells) { numCells = geo->Plane(1)->Ncells(); }
423 
424  // Resize each vector in the larger plane vector to have the number of cells, initialized to 0
425  for(unsigned int i_plane = 0, n_plane = hitsByPlaneCell.size(); i_plane < n_plane; ++i_plane) {
426  hitsByPlaneCell[i_plane].resize(numCells, 0.);
427  }
428 
429  // Vector matching a plane to a view
430  std::vector<geo::View_t> planeView(geo->GetPlanesByView().size());
431 
432  // Find earliest and latest plane/cell, entry/exit point
433  double startT = flshits[0].GetEntryT();
434  double endT = flshits[0].GetExitT();
435  int startPlane = flshits[0].GetPlaneID();
436  int endPlane = startPlane;
437  int startCell = flshits[0].GetCellID();
438  int endCell = startCell;
439 
440  double entryPos[3] = {0.};
441  double exitPos[3] = {0.};
442 
443  double localStartPos[3] = {flshits[0].GetEntryX(),
444  flshits[0].GetEntryY(),
445  flshits[0].GetEntryZ()};
446  double localEndPos[3] = {flshits[0].GetExitX(),
447  flshits[0].GetExitY(),
448  flshits[0].GetExitZ()};
449 
450  // Loop over FLSHits for this particle
451  for(const auto& hit : flshits) {
452  if (hit.GetEntryT() < startT) { // Update quantities if this is an earlier hit
453  startPlane = hit.GetPlaneID();
454  startCell = hit.GetCellID();
455  localStartPos[0] = hit.GetEntryX();
456  localStartPos[1] = hit.GetEntryY();
457  localStartPos[2] = hit.GetEntryZ();
458  }
459  else if(hit.GetExitT() > endT) { // Update quantities if this is a later hit
460  endPlane = hit.GetPlaneID();
461  endCell = hit.GetCellID();
462  localEndPos[0] = hit.GetExitX();
463  localEndPos[1] = hit.GetExitY();
464  localEndPos[2] = hit.GetExitZ();
465  }
466 
467  hitsByPlaneCell[hit.GetPlaneID()][hit.GetCellID()] += 1.; // Add a hit to the proper cell
468  planeView[hit.GetPlaneID()] = geo->Plane(hit.GetPlaneID())->View();
469  } // end of loop over FLSHits
470 
471  // Convert entry/exit locations to world coordinates
472  geo->Plane(startPlane)->Cell(startCell)->LocalToWorld(localStartPos, entryPos);
473  geo->Plane(endPlane) ->Cell(endCell) ->LocalToWorld(localEndPos, exitPos);
474 
475  double planesX = 0.;
476  double cellsX = 0.;
477  double planesY = 0.;
478  double cellsY = 0.;
479 
480  // Loop over planes, cells
481  for(unsigned int i_plane = 0, n_plane = hitsByPlaneCell.size(); i_plane < n_plane; ++i_plane) {
482  // Count the number of hit cells in this plane
483  double hitCells = 0.;
484  for(unsigned int i_cell = 0, n_cell = hitsByPlaneCell[i_plane].size(); i_cell < n_cell; ++i_cell) {
485  if(hitsByPlaneCell[i_plane][i_cell] > 0.) { hitCells += 1.; }
486  }
487 
488  if(planeView[i_plane] == geo::kX && hitCells > 0.) {
489  planesX += 1.;
490  cellsX += hitCells;
491  }
492  if(planeView[i_plane] == geo::kY && hitCells > 0.) {
493  planesY += 1.;
494  cellsY += hitCells;
495  }
496  } // end loop over hit planes/cells
497 
498  // Fill final plots
499  fCRCosX->Fill(fourMomentum.Px()/fourMomentum.P());
500  fCRCosY->Fill(fourMomentum.Py()/fourMomentum.P());
501  fCRCosZ->Fill(fourMomentum.Pz()/fourMomentum.P());
502 
503  // Cosmic rays always come from above
504  if(exitPos[1] > entryPos[1]) {
505  fCREndX->Fill(entryPos[0]);
506  fCREndY->Fill(entryPos[1]);
507  fCREndZ->Fill(entryPos[2]);
508  fCRVtxX->Fill(exitPos[0]);
509  fCRVtxY->Fill(exitPos[1]);
510  fCRVtxZ->Fill(exitPos[2]);
511  }
512  else { // Normal condition
513  fCRVtxX->Fill(entryPos[0]);
514  fCRVtxY->Fill(entryPos[1]);
515  fCRVtxZ->Fill(entryPos[2]);
516  fCREndX->Fill(exitPos[0]);
517  fCREndY->Fill(exitPos[1]);
518  fCREndZ->Fill(exitPos[2]);
519  }
520 
521  if(planesX > 0.) { fCRAvgCellsX->Fill(cellsX/planesX); }
522  else { fCRAvgCellsX->Fill(0.); }
523 
524  if(planesY > 0.) { fCRAvgCellsY->Fill(cellsY/planesY); }
525  else { fCRAvgCellsY->Fill(0.); }
526 
527  fCREnergy->Fill(energy); // Fill particle energy
528 
529  // Fill low energy particles for higher resolution
530  if(energy < 2.) {
531  fCRLowEnergy->Fill(energy);
532  }
533 
534  fCRLength->Fill(util::pythag(exitPos[0]-entryPos[0],
535  exitPos[1]-entryPos[1],
536  exitPos[2]-entryPos[2]));
537 
538  // Check for interesting particles
539  if(energy > 0.5 && energy < 5.) {
540  if(pdg == 11) { electronE = energy; }
541  if(pdg == 22) { photonE = energy; }
542  }
543  } // end of condition that current particle is in the particle map
544  } // end of condition that size of list of FLSHits is greater than 0
545  } // end of loop over particles in ParticleNavigator
546 
547  if(electronE > 0. || photonE > 0.) {
548  mf::LogVerbatim("CosmicAna") << "Interesting particle:" << std::endl
549  << "Run" << evt.getRun().run() << ", "
550  << "Event " << evt.id().event() << std::endl
551  << "Electron energy " << electronE << std::endl
552  << "Photon energy " << photonE << std::endl;
553  }
554  }
std::map< int, TH1F * > fParticleEnergy
Particle energy (GeV)
MaybeLogger_< ELseverityLevel::ELsev_info, true > LogVerbatim
const TLorentzVector & Position(const int i=0) const
Definition: MCParticle.h:218
int PdgCode() const
Definition: MCParticle.h:211
set< int >::iterator it
const sim::ParticleNavigator & ParticleNavigator() const
Get a reference to the ParticleNavigator.
Definition: BackTracker.h:744
void LocalToWorld(const double *local, double *world) const
Definition: CellGeo.cxx:80
std::map< int, TH2F * > fParticleAnglesHi
Particle rate vs angle, high momenta.
std::map< int, TH2F * > fParticleAngles
const CellGeo * Cell(int icell) const
Definition: PlaneGeo.h:48
TH1F * fCRCosY
Particle Y Direction cosine.
std::vector< sim::FLSHit > ParticleToFLSHit(const int &trackID) const
All the FLSHits that were created by the track id trackID, sorted from most to least light...
list_type::const_iterator const_iterator
Vertical planes which measure X.
Definition: PlaneGeo.h:28
unsigned int Ncells() const
Number of cells in this plane.
Definition: PlaneGeo.h:43
double DetLength() const
void abs(TH1 *hist)
TH1F * fDminNoHit
Closest approach for particles leaving no hits.
const PlaneGeo * Plane(unsigned int i) const
#define M_PI
Definition: SbMath.h:34
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
std::map< int, TH2F * > fParticleEnergyVsAngle
Particle Energy vs angle.
int TrackId() const
Definition: MCParticle.h:209
Float_t E
Definition: plot.C:20
int evt
double energy
Definition: plottest35.C:25
TH1F * fCRCosZ
Particle Z Direction cosine.
Definition: View.py:1
std::map< int, TH1F * > fParticleCosTheta
Particle rate vs cos(Q)
double ClosestApproach(const double point[], const double intercept[], const double slopes[], double closest[])
Find the distance of closest approach between point and line.
Definition: Geo.cxx:222
double pythag(double x, double y)
2D Euclidean distance
Definition: MathUtil.h:29
Definition: structs.h:12
TH1F * fDmin
Closest approach for particles leaving hits.
std::map< int, TH2F * > fParticleAnglesMi
Particle rate vs angle, middle momenta.
const std::set< unsigned int > & GetPlanesByView(View_t v=kXorY) const
const TLorentzVector & Momentum(const int i=0) const
Definition: MCParticle.h:219
std::map< int, std::string > fParticleMap
Map of particle PDG and name.
std::map< int, TH2F * > fParticleAnglesLo
Particle rate vs angle, low momenta.
std::map< int, TH1F * > fParticleVertexZ
Particle vertex z view.
TH1F * fSampleTime
Total sample time, number of events times 500 usec.
TH1F * fCRCosX
For each particle from ParticleNavigator...
Helper for AttenCurve.
Definition: Path.h:10
TH1F * fVerticalMuons
Number of vertical muons.
std::map< int, TH2F * > fParticleVertexXY
Particle vertex x vs y view.
T atan2(T number)
Definition: d0nt_math.hpp:72
void mcchk::CosmicAna::beginRun ( art::Run const &  run)
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 112 of file CosmicAna_module.cc.

References geo::GeometryBase::DetHalfHeight(), geo::GeometryBase::DetHalfWidth(), geo::GeometryBase::DetLength(), fCRAvgCellsX, fCRAvgCellsY, fCRCosX, fCRCosY, fCRCosZ, fCREndX, fCREndY, fCREndZ, fCREnergy, fCRLength, fCRLowEnergy, fCRVtxX, fCRVtxY, fCRVtxZ, fDmin, fDminNoHit, fParticleAngles, fParticleAnglesHi, fParticleAnglesLo, fParticleAnglesMi, fParticleCosTheta, fParticleEnergy, fParticleEnergyVsAngle, fParticleMap, fParticleVertexXY, fParticleVertexZ, fRockDepthX, fRockDepthY, fRockDepthZ, fSampleTime, fVerticalMuons, fVtxBinSize, makeTrainCVSamples::int, art::TFileDirectory::make(), make_root_from_grid_output::pdg, and string.

113  {
114  // Only make histograms once
115  if(fDmin) { return; }
116 
119 
120  // Create bounds and bins for vertex plots
121  // Get detector coordinates
122  double detX = geo->DetHalfWidth(); // -detX is minimum, +detX is maximum value
123  double detY = geo->DetHalfHeight(); // Likewise, use +/- detY
124  double detZ = geo->DetLength(); // Here, mininmum value is 0, max value is detZ
125 
126  // Add on the space for rock events
127  double CRPosX = detX + fRockDepthX;
128  double CRPosY = detY + fRockDepthY;
129  double CRPosZMin = -fRockDepthZ;
130  double CRPosZMax = detZ + fRockDepthZ;
131 
132  // This section adds a little extra space to make bins sizes exact
133  int nbinsHelper = 0; // Helper to make bin sizes exact
134 
135  // First calculate number of complete bins from min to max values
136  // Add one more bin for the last partial bin
137  // For X/Y, half of those bins are above 0, half below
138  // The max value is then the bin size times then number of bins over 2
139  // For Z, calculate the adjusted number of bins in the same way
140  // Leave the min value unchanged
141  // Set the max value as the min value plus the number of bins times the bin size
142 
143  // Set the correct bounds
144  nbinsHelper = (int)(2.*CRPosX/fVtxBinSize);
145  ++nbinsHelper; // Add one extra bin to cover truncated area
146  CRPosX = 0.5*fVtxBinSize*(double)nbinsHelper;
147 
148  nbinsHelper = (int)(2.*CRPosY/fVtxBinSize);
149  ++nbinsHelper; // Add one extra bin to cover truncated area
150  CRPosY = 0.5*fVtxBinSize*(double)nbinsHelper;
151 
152  nbinsHelper = (int)((CRPosZMax - CRPosZMin)/fVtxBinSize);
153  ++nbinsHelper; // Add one extra bin to cover truncated area
154  CRPosZMax = CRPosZMin + (fVtxBinSize*(double)nbinsHelper);
155 
156  // Set the correct number of bins
157  int nBinsX = 2.*CRPosX/fVtxBinSize;
158  int nBinsY = 2.*CRPosY/fVtxBinSize;
159  int nBinsZ = (CRPosZMax - CRPosZMin)/fVtxBinSize;
160 
161  // Helpful for spacing/readability
162  // Also helpful in case histograms are made in loops over, say, axis labels
163  char HistoName[200];
164  char HistoTitle[200];
165  char TitleHelper[200];
166 
167  sprintf(TitleHelper, "Distance of Closest Approach to Detector Center for Particles That Left");
168 
169  sprintf(HistoName, "fDmin");
170  sprintf(HistoTitle, "%s Hits;d (cm);", TitleHelper);
171  fDmin = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 500.E2);
172 
173  sprintf(HistoName, "fDminNoHit");
174  sprintf(HistoTitle, "%s No Hits;d (cm);", TitleHelper);
175  fDminNoHit = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 500.E2);
176 
177  fParticleMap[11] = "Electron";
178  fParticleMap[13] = "Muon";
179  fParticleMap[22] = "Photon";
180  fParticleMap[2112] = "Neutron";
181  fParticleMap[2212] = "Proton";
182 
183  for(const auto& particlePair : fParticleMap) {
184  int pdg = particlePair.first;
185  std::string particleName = particlePair.second;
186 
187  sprintf(TitleHelper, "%s Angle Distribution", particleName.c_str());
188 
189  sprintf(HistoName, "f%sAngles", particleName.c_str());
190  sprintf(HistoTitle, "%s;#phi;cos#theta", TitleHelper);
191  fParticleAngles[pdg] = tfs->make<TH2F>(HistoName, HistoTitle,
192  36, -180., 180., 50, -1., 1.);
193 
194  sprintf(HistoName, "f%sAnglesLo", particleName.c_str());
195  sprintf(HistoTitle, "%s for Low Momentum %ss;#phi;cos#theta", TitleHelper, particleName.c_str());
196  fParticleAnglesLo[pdg] = tfs->make<TH2F>(HistoName, HistoTitle,
197  36, -180., 180., 50, -1., 1.);
198 
199  sprintf(HistoName, "f%sAnglesMi", particleName.c_str());
200  sprintf(HistoTitle, "%s for Medium Momentum %ss;#phi;cos#theta", TitleHelper, particleName.c_str());
201  fParticleAnglesMi[pdg] = tfs->make<TH2F>(HistoName, HistoTitle,
202  36, -180., 180., 50, -1., 1.);
203 
204  sprintf(HistoName, "f%sAnglesHi", particleName.c_str());
205  sprintf(HistoTitle, "%s for High Momentum %ss;#phi;cos#theta", TitleHelper, particleName.c_str());
206  fParticleAnglesHi[pdg] = tfs->make<TH2F>(HistoName, HistoTitle,
207  36, -180., 180., 50, -1., 1.);
208 
209  sprintf(HistoName, "f%sCosTheta", particleName.c_str());
210  sprintf(HistoTitle, "%s cos#theta;cos#theta;", TitleHelper);
211  fParticleCosTheta[pdg] = tfs->make<TH1F>(HistoName, HistoTitle, 50, -1., 1.);
212 
213  sprintf(HistoName, "f%sVertexXY", particleName.c_str());
214  sprintf(HistoTitle, "%s Vertex, X vs Y View;x (cm);y (cm)", particleName.c_str());
215  fParticleVertexXY[pdg] = tfs->make<TH2F>(HistoName, HistoTitle,
216  nBinsX, -CRPosX, CRPosX, nBinsY, -CRPosY, CRPosY);
217 
218  sprintf(HistoName, "f%sVertexZ", particleName.c_str());
219  sprintf(HistoTitle, "%s Vertex, Z View;z (cm);", particleName.c_str());
220  fParticleVertexZ[pdg] = tfs->make<TH1F>(HistoName, HistoTitle, nBinsZ, CRPosZMin, CRPosZMax);
221  }
222 
223  // Make plots with energy by hand, as particles have vastly different energy scales
224  sprintf(TitleHelper, "Energy;E (Gev);");
225 
226  sprintf(HistoName, "fElectronEnergy");
227  sprintf(HistoTitle, "Electron %s", TitleHelper);
228  fParticleEnergy[11] = tfs->make<TH1F>(HistoName, HistoTitle, 1000, 0., 1.);
229 
230  sprintf(HistoName, "fMuonEnergy");
231  sprintf(HistoTitle, "Muon %s", TitleHelper);
232  fParticleEnergy[13] = tfs->make<TH1F>(HistoName, HistoTitle, 10000, 0., 1000.);
233 
234  sprintf(HistoName, "fPhotonEnergy");
235  sprintf(HistoTitle, "Photon %s", TitleHelper);
236  fParticleEnergy[22] = tfs->make<TH1F>(HistoName, HistoTitle, 200, 0., 5.);
237 
238  sprintf(HistoName, "fNeutronEnergy");
239  sprintf(HistoTitle, "Neutron %s", TitleHelper);
240  fParticleEnergy[2112] = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 10.);
241 
242  sprintf(HistoName, "fProtonEnergy");
243  sprintf(HistoTitle, "Proton %s", TitleHelper);
244  fParticleEnergy[2212] = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 10.);
245 
246  sprintf(TitleHelper, "Energy vs cos#theta for ");
247 
248  sprintf(HistoName, "fElectronEnergyVsAngle");
249  sprintf(HistoTitle, "%s Electrons;cos#theta;Energy (GeV)", TitleHelper);
250  fParticleEnergyVsAngle[11] = tfs->make<TH2F>(HistoName, HistoTitle, 200, -1., 1., 100, 0., 0.1);
251 
252  sprintf(HistoName, "fMuonEnergyVsAngle");
253  sprintf(HistoTitle, "%s Muons;cos#theta;Energy (GeV)", TitleHelper);
254  fParticleEnergyVsAngle[13] = tfs->make<TH2F>(HistoName, HistoTitle, 200, -1., 1., 10000, 0., 1000.);
255 
256  sprintf(HistoName, "fPhotonEnergyVsAngle");
257  sprintf(HistoTitle, "%s Photons;cos#theta;Energy (GeV)", TitleHelper);
258  fParticleEnergyVsAngle[22] = tfs->make<TH2F>(HistoName, HistoTitle, 200, -1., 1., 100, 0., 0.1);
259 
260  sprintf(HistoName, "fNeutronEnergyVsAngle");
261  sprintf(HistoTitle, "%s Neutrons;cos#theta;Energy (GeV)", TitleHelper);
262  fParticleEnergyVsAngle[2112] = tfs->make<TH2F>(HistoName, HistoTitle, 200, -1., 1., 100, 0., 10.);
263 
264  sprintf(HistoName, "fProtonEnergyVsAngle");
265  sprintf(HistoTitle, "%s Protons;cos#theta;Energy (GeV)", TitleHelper);
266  fParticleEnergyVsAngle[2212] = tfs->make<TH2F>(HistoName, HistoTitle, 200, -1., 1., 100, 0., 10.);
267 
268  sprintf(HistoName, "fVerticalMuons");
269  sprintf(HistoTitle, "Number of Vertical Muons;");
270  fVerticalMuons = tfs->make<TH1F>(HistoName, HistoTitle, 1, -0.5, 0.5);
271 
272  sprintf(HistoName, "fCRCosX");
273  sprintf(HistoTitle, "Particle X Direction Cosine;dx/ds;Tracks");
274  fCRCosX = tfs->make<TH1F>(HistoName, HistoTitle, 200, -1., 1.);
275 
276  sprintf(HistoName, "fCRCosY");
277  sprintf(HistoTitle, "Particle Y Direction Cosine;dy/ds;Tracks");
278  fCRCosY = tfs->make<TH1F>(HistoName, HistoTitle, 200, -1., 1.);
279 
280  sprintf(HistoName, "fCRCosZ");
281  sprintf(HistoTitle, "Particle Z Direction Cosine;dz/ds;Tracks");
282  fCRCosZ = tfs->make<TH1F>(HistoName, HistoTitle, 200, -1., 1.);
283 
284  sprintf(TitleHelper, "Particle Entry Location, ");
285 
286  sprintf(HistoName, "fCRVtxX");
287  sprintf(HistoTitle, "%s X;x (cm);", TitleHelper);
288  fCRVtxX = tfs->make<TH1F>(HistoName, HistoTitle, nBinsX, -CRPosX, CRPosX);
289 
290  sprintf(HistoName, "fCRVtxY");
291  sprintf(HistoTitle, "%s Y;y (cm);", TitleHelper);
292  fCRVtxY = tfs->make<TH1F>(HistoName, HistoTitle, nBinsY, -CRPosY, CRPosY);
293 
294  sprintf(HistoName, "fCRVtxZ");
295  sprintf(HistoTitle, "%s Z;z (cm);", TitleHelper);
296  fCRVtxZ = tfs->make<TH1F>(HistoName, HistoTitle, nBinsZ, CRPosZMin, CRPosZMax);
297 
298  sprintf(TitleHelper, "Particle Exit Location, ");
299 
300  sprintf(HistoName, "fCREndX");
301  sprintf(HistoTitle, "%s X;x (cm);", TitleHelper);
302  fCREndX = tfs->make<TH1F>(HistoName, HistoTitle, nBinsX, -CRPosX, CRPosX);
303 
304  sprintf(HistoName, "fCREndY");
305  sprintf(HistoTitle, "%s Y;y (cm);", TitleHelper);
306  fCREndY = tfs->make<TH1F>(HistoName, HistoTitle, nBinsY, -CRPosY, CRPosY);
307 
308  sprintf(HistoName, "fCREndZ");
309  sprintf(HistoTitle, "%s Z;z (cm);", TitleHelper);
310  fCREndZ = tfs->make<TH1F>(HistoName, HistoTitle, nBinsZ, CRPosZMin, CRPosZMax);
311 
312  sprintf(TitleHelper, "Average Number of Cells Hit in ");
313 
314  sprintf(HistoName, "fCRAvgCellsX");
315  sprintf(HistoTitle, "%s X View;Cells;", TitleHelper);
316  fCRAvgCellsX = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 100.);
317 
318  sprintf(HistoName, "fCRAvgCellsY");
319  sprintf(HistoTitle, "%s Y View;Cells;", TitleHelper);
320  fCRAvgCellsY = tfs->make<TH1F>(HistoName, HistoTitle, 100, 0., 100.);
321 
322  sprintf(HistoName, "fCREnergy");
323  sprintf(HistoTitle, "Energy of Particle;Energy (GeV);");
324  fCREnergy = tfs->make<TH1F>(HistoName, HistoTitle, 1000, 0., 1000.);
325 
326  sprintf(HistoName, "fCRLowEnergy");
327  sprintf(HistoTitle, "Energy of Low Energy Particles;Energy (GeV);");
328  fCRLowEnergy = tfs->make<TH1F>(HistoName, HistoTitle, 200, 0., 2.);
329 
330  sprintf(HistoName, "fCRLength");
331  sprintf(HistoTitle, "Length of Particle in Detector;Length (cm);");
332  fCRLength = tfs->make<TH1F>(HistoName, HistoTitle, 500, 0., 5000.);
333 
334  sprintf(HistoName, "fSampleTime");
335  sprintf(HistoTitle, "Total Sample Time;Time (s);");
336  fSampleTime = tfs->make<TH1F>(HistoName, HistoTitle, 1, -0.5, 0.5);
337  }
std::map< int, TH1F * > fParticleEnergy
Particle energy (GeV)
std::map< int, TH2F * > fParticleAnglesHi
Particle rate vs angle, high momenta.
std::map< int, TH2F * > fParticleAngles
TH1F * fCRCosY
Particle Y Direction cosine.
double fRockDepthZ
Amount of space in cm outside of detector along z to plot interaction points.
double DetLength() const
TH1F * fDminNoHit
Closest approach for particles leaving no hits.
std::map< int, TH2F * > fParticleEnergyVsAngle
Particle Energy vs angle.
double fRockDepthX
Amount of space in cm outside of detector along x to plot interaction points.
double fRockDepthY
Amount of space in cm outside of detector along y to plot interaction points.
double DetHalfHeight() const
TH1F * fCRCosZ
Particle Z Direction cosine.
std::map< int, TH1F * > fParticleCosTheta
Particle rate vs cos(Q)
T * make(ARGS...args) const
double DetHalfWidth() const
TH1F * fDmin
Closest approach for particles leaving hits.
std::map< int, TH2F * > fParticleAnglesMi
Particle rate vs angle, middle momenta.
std::map< int, std::string > fParticleMap
Map of particle PDG and name.
std::map< int, TH2F * > fParticleAnglesLo
Particle rate vs angle, low momenta.
std::map< int, TH1F * > fParticleVertexZ
Particle vertex z view.
TH1F * fSampleTime
Total sample time, number of events times 500 usec.
TH1F * fCRCosX
For each particle from ParticleNavigator...
Helper for AttenCurve.
Definition: Path.h:10
TH1F * fVerticalMuons
Number of vertical muons.
std::map< int, TH2F * > fParticleVertexXY
Particle vertex x vs y view.
double fVtxBinSize
Size of bins in cm for neutrino interaction vertex histograms.
enum BeamMode string
detail::CachedProducts& art::EventObserverBase::cachedProducts ( )
inlineprotectedinherited

Definition at line 79 of file EventObserverBase.h.

References art::EventObserverBase::selectors_.

80  {
81  return selectors_;
82  }
detail::CachedProducts selectors_
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::consumes ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::consumes ( InputTag const &  it)
inherited

Definition at line 146 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

147 {
148  if (!moduleContext_)
149  return ProductToken<T>::invalid();
150 
151  consumables_[BT].emplace_back(ConsumableType::Product,
152  TypeID{typeid(T)},
153  it.label(),
154  it.instance(),
155  it.process());
156  return ProductToken<T>{it};
157 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::consumesMany ( )
inherited

Definition at line 161 of file Consumer.h.

References T.

162 {
163  if (!moduleContext_)
164  return;
165 
166  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
167 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::consumesView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::consumesView ( InputTag const &  it)
inherited

Definition at line 171 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

172 {
173  if (!moduleContext_)
174  return ViewToken<T>::invalid();
175 
176  consumables_[BT].emplace_back(ConsumableType::ViewElement,
177  TypeID{typeid(T)},
178  it.label(),
179  it.instance(),
180  it.process());
181  return ViewToken<T>{it};
182 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited
base_engine_t& art::EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited
CurrentProcessingContext const* art::EDAnalyzer::currentContext ( ) const
protectedinherited
seed_t art::EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited
art::Handle<art::TriggerResults> art::EventObserverBase::getTriggerResults ( Event const &  e) const
inlineinherited

Definition at line 61 of file EventObserverBase.h.

References art::detail::CachedProducts::getOneTriggerResults(), and art::EventObserverBase::selectors_.

62  {
64  }
detail::CachedProducts selectors_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
Float_t e
Definition: plot.C:35
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::mayConsume ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::mayConsume ( InputTag const &  it)
inherited

Definition at line 189 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

190 {
191  if (!moduleContext_)
192  return ProductToken<T>::invalid();
193 
194  consumables_[BT].emplace_back(ConsumableType::Product,
195  TypeID{typeid(T)},
196  it.label(),
197  it.instance(),
198  it.process());
199  return ProductToken<T>{it};
200 }
set< int >::iterator it
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename T , art::BranchType BT>
void art::Consumer::mayConsumeMany ( )
inherited

Definition at line 204 of file Consumer.h.

References T.

205 {
206  if (!moduleContext_)
207  return;
208 
209  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
210 }
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::mayConsumeView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::mayConsumeView ( InputTag const &  it)
inherited

Definition at line 214 of file Consumer.h.

References art::InputTag::instance(), PandAna.reco_validation.prod5_pid_validation::invalid, art::InputTag::label(), art::InputTag::process(), and T.

215 {
216  if (!moduleContext_)
217  return ViewToken<T>::invalid();
218 
219  consumables_[BT].emplace_back(ConsumableType::ViewElement,
220  TypeID{typeid(T)},
221  it.label(),
222  it.instance(),
223  it.process());
224  return ViewToken<T>{it};
225 }
set< int >::iterator it
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:137
double T
Definition: Xdiff_gwt.C:5
bool moduleContext_
Definition: Consumer.h:135
bool art::EventObserverBase::modifiesEvent ( ) const
inlineinherited

Definition at line 25 of file EventObserverBase.h.

26  {
27  return false;
28  }
static cet::exempt_ptr<Consumer> art::Consumer::non_module_context ( )
staticinherited
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited
std::string const& art::EventObserverBase::processName ( ) const
inlineinherited
void art::EventObserverBase::registerProducts ( MasterProductRegistry ,
ProductDescriptions ,
ModuleDescription const &   
)
inlineinherited

Definition at line 33 of file EventObserverBase.h.

References string.

36  {}
fhicl::ParameterSetID art::EventObserverBase::selectorConfig ( ) const
inlineinherited

Definition at line 56 of file EventObserverBase.h.

References art::EventObserverBase::selector_config_id_.

57  {
58  return selector_config_id_;
59  }
fhicl::ParameterSetID selector_config_id_
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

Referenced by art::RootOutput::endJob().

void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited
bool art::EventObserverBase::wantAllEvents ( ) const
inlineinherited

Definition at line 46 of file EventObserverBase.h.

References art::EventObserverBase::wantAllEvents_.

Referenced by art::RootOutput::RootOutput().

47  {
48  return wantAllEvents_;
49  }
bool art::EventObserverBase::wantEvent ( Event const &  e)
inlineinherited

Definition at line 51 of file EventObserverBase.h.

References art::EventObserverBase::selectors_, and art::detail::CachedProducts::wantEvent().

52  {
53  return selectors_.wantEvent(e);
54  }
detail::CachedProducts selectors_
Float_t e
Definition: plot.C:35
bool wantEvent(Event const &)
std::string art::EDAnalyzer::workerType ( ) const
inlineinherited

Definition at line 109 of file EDAnalyzer.h.

References art::EDAnalyzer::currentContext().

110  {
111  return "WorkerT<EDAnalyzer>";
112  }

Member Data Documentation

TH1F* mcchk::CosmicAna::fCRAvgCellsX
private

Definition at line 83 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRAvgCellsY
private

Definition at line 84 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRCosX
private

For each particle from ParticleNavigator...

Particle X Direction cosine

Definition at line 74 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRCosY
private

Particle Y Direction cosine.

Definition at line 75 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRCosZ
private

Particle Z Direction cosine.

Definition at line 76 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCREndX
private

Definition at line 80 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCREndY
private

Definition at line 81 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCREndZ
private

Definition at line 82 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCREnergy
private

Definition at line 85 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRLength
private

Definition at line 87 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRLowEnergy
private

Definition at line 86 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRVtxX
private

Definition at line 77 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRVtxY
private

Definition at line 78 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fCRVtxZ
private

Definition at line 79 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fDmin
private

Closest approach for particles leaving hits.

Definition at line 58 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fDminNoHit
private

Closest approach for particles leaving no hits.

Definition at line 59 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleAngles
private

Definition at line 61 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleAnglesHi
private

Particle rate vs angle, high momenta.

Definition at line 64 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleAnglesLo
private

Particle rate vs angle, low momenta.

Definition at line 62 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleAnglesMi
private

Particle rate vs angle, middle momenta.

Definition at line 63 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH1F*> mcchk::CosmicAna::fParticleCosTheta
private

Particle rate vs cos(Q)

Definition at line 65 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH1F*> mcchk::CosmicAna::fParticleEnergy
private

Particle energy (GeV)

Definition at line 66 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleEnergyVsAngle
private

Particle Energy vs angle.

Definition at line 67 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, std::string> mcchk::CosmicAna::fParticleMap
private

Map of particle PDG and name.

Definition at line 56 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH2F*> mcchk::CosmicAna::fParticleVertexXY
private

Particle vertex x vs y view.

Definition at line 68 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

std::map<int, TH1F*> mcchk::CosmicAna::fParticleVertexZ
private

Particle vertex z view.

Definition at line 69 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

double mcchk::CosmicAna::fRockDepthX
private

Amount of space in cm outside of detector along x to plot interaction points.

Definition at line 52 of file CosmicAna_module.cc.

Referenced by beginRun().

double mcchk::CosmicAna::fRockDepthY
private

Amount of space in cm outside of detector along y to plot interaction points.

Definition at line 53 of file CosmicAna_module.cc.

Referenced by beginRun().

double mcchk::CosmicAna::fRockDepthZ
private

Amount of space in cm outside of detector along z to plot interaction points.

Definition at line 54 of file CosmicAna_module.cc.

Referenced by beginRun().

TH1F* mcchk::CosmicAna::fSampleTime
private

Total sample time, number of events times 500 usec.

Definition at line 89 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

TH1F* mcchk::CosmicAna::fVerticalMuons
private

Number of vertical muons.

Definition at line 71 of file CosmicAna_module.cc.

Referenced by analyze(), and beginRun().

double mcchk::CosmicAna::fVtxBinSize
private

Size of bins in cm for neutrino interaction vertex histograms.

Definition at line 51 of file CosmicAna_module.cc.

Referenced by beginRun().


The documentation for this class was generated from the following file: