LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
larg4::IonAndScint Class Reference
Inheritance diagram for larg4::IonAndScint:
art::EDProducer art::detail::Producer art::detail::LegacyModule art::Modifier art::ModuleBase art::ProductRegistryHelper

Public Types

using ModuleType = EDProducer
 
template<typename UserConfig , typename KeysToIgnore = void>
using Table = Modifier::Table< UserConfig, KeysToIgnore >
 

Public Member Functions

 IonAndScint (fhicl::ParameterSet const &pset)
 
void produce (art::Event &event) override
 
void beginJob () override
 
void endJob () override
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
void fillProductDescriptions ()
 
void registerProducts (ProductDescriptions &productsToRegister)
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
std::unique_ptr< Worker > makeWorker (WorkerParams const &wp)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Protected Member Functions

ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Member Functions

std::vector< art::Handle< SimEnergyDepositCollection > > inputCollections (art::Event const &) const
 

Private Attributes

art::InputTag calcTag
 
std::vector< std::string > fInputModuleLabels
 
std::unique_ptr< ISCalcfISAlg
 
CLHEP::HepRandomEngine & fEngine
 
string Instances
 
std::vector< string > instanceNames
 
bool fSavePriorSCE
 

Detailed Description

Definition at line 58 of file IonAndScint_module.cc.

Member Typedef Documentation

Definition at line 17 of file EDProducer.h.

template<typename UserConfig , typename KeysToIgnore = void>
using art::detail::Producer::Table = Modifier::Table<UserConfig, KeysToIgnore>
inherited

Definition at line 26 of file Producer.h.

Constructor & Destructor Documentation

larg4::IonAndScint::IonAndScint ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 86 of file IonAndScint_module.cc.

References calcTag, art::detail::EngineCreator::createEngine(), fEngine, fInputModuleLabels, fSavePriorSCE, instanceNames, and Instances.

87  : art::EDProducer{pset}
88  , calcTag{pset.get<art::InputTag>("ISCalcAlg")}
89  , fInputModuleLabels{pset.get<std::vector<std::string>>("InputModuleLabels", {})}
91  -> registerAndSeedEngine(createEngine(0, "HepJamesRandom", "ISCalcAlg"),
92  "HepJamesRandom",
93  "ISCalcAlg",
94  pset,
95  "SeedISCalcAlg"))
96  , Instances{pset.get<string>("Instances", "LArG4DetectorServicevolTPCActive")}
97  , fSavePriorSCE{pset.get<bool>("SavePriorSCE", false)}
98  {
99  std::cout << "IonAndScint Module Construct" << std::endl;
100 
101  if (Instances.empty()) {
102  std::cout << "Produce SimEnergyDeposit in default volume - LArG4DetectorServicevolTPCActive"
103  << std::endl;
104  instanceNames.push_back("LArG4DetectorServicevolTPCActive");
105  }
106  else {
107  std::stringstream input(Instances);
108  string temp;
109  while (std::getline(input, temp, ';')) {
110  instanceNames.push_back(temp);
111  }
112 
113  std::cout << "Produce SimEnergyDeposit in volumes: " << std::endl;
114  for (auto instanceName : instanceNames) {
115  std::cout << " - " << instanceName << std::endl;
116  }
117  }
118 
119  produces<std::vector<sim::SimEnergyDeposit>>();
120  if (fSavePriorSCE) produces<std::vector<sim::SimEnergyDeposit>>("priorSCE");
121  }
base_engine_t & createEngine(seed_t seed)
CLHEP::HepRandomEngine & fEngine
std::vector< std::string > fInputModuleLabels
std::vector< string > instanceNames

Member Function Documentation

void larg4::IonAndScint::beginJob ( )
overridevirtual

Reimplemented from art::EDProducer.

Definition at line 124 of file IonAndScint_module.cc.

References calcTag, fEngine, fISAlg, and art::InputTag::label().

125  {
126  std::cout << "IonAndScint beginJob." << std::endl;
127  std::cout << "Using " << calcTag.label() << " algorithm to calculate IS." << std::endl;
128 
129  if (calcTag.label() == "Separate")
130  fISAlg = std::make_unique<ISCalcSeparate>();
131  else if (calcTag.label() == "Correlated") {
132  auto const detProp = art::ServiceHandle<detinfo::DetectorPropertiesService>()->DataForJob();
133  fISAlg = std::make_unique<ISCalcCorrelated>(detProp, fEngine);
134  }
135  else if (calcTag.label() == "NEST")
136  fISAlg = std::make_unique<ISCalcNESTLAr>(fEngine);
137  else
138  mf::LogWarning("IonAndScint") << "No ISCalculation set, this can't be good.";
139  }
CLHEP::HepRandomEngine & fEngine
std::string const & label() const noexcept
Definition: InputTag.cc:79
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::unique_ptr< ISCalc > fISAlg
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 61 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().

62  {
63  return collector_.consumes<T, BT>(tag);
64  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ProductToken< T > consumes(InputTag const &)
ConsumesCollector & art::ModuleBase::consumesCollector ( )
protectedinherited

Definition at line 57 of file ModuleBase.cc.

References art::ModuleBase::collector_.

58  {
59  return collector_;
60  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 75 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().

76  {
77  collector_.consumesMany<T, BT>();
78  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::consumesView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::consumesView ( InputTag const &  tag)
inherited

Definition at line 68 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().

69  {
70  return collector_.consumesView<T, BT>(tag);
71  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > consumesView(InputTag const &)
void art::detail::Producer::doBeginJob ( SharedResources const &  resources)
inherited

Definition at line 22 of file Producer.cc.

References art::detail::Producer::beginJobWithFrame(), and art::detail::Producer::setupQueues().

23  {
24  setupQueues(resources);
25  ProcessingFrame const frame{ScheduleID{}};
26  beginJobWithFrame(frame);
27  }
virtual void setupQueues(SharedResources const &)=0
virtual void beginJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Producer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 65 of file Producer.cc.

References art::detail::Producer::beginRunWithFrame(), art::RangeSet::forRun(), art::RunPrincipal::makeRun(), r, art::RunPrincipal::runID(), and art::ModuleContext::scheduleID().

66  {
67  auto r = rp.makeRun(mc, RangeSet::forRun(rp.runID()));
68  ProcessingFrame const frame{mc.scheduleID()};
69  beginRunWithFrame(r, frame);
70  r.commitProducts();
71  return true;
72  }
TRandom r
Definition: spectrum.C:23
virtual void beginRunWithFrame(Run &, ProcessingFrame const &)=0
static RangeSet forRun(RunID)
Definition: RangeSet.cc:51
bool art::detail::Producer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 85 of file Producer.cc.

References art::detail::Producer::beginSubRunWithFrame(), art::RangeSet::forSubRun(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::SubRunPrincipal::subRunID().

86  {
87  auto sr = srp.makeSubRun(mc, RangeSet::forSubRun(srp.subRunID()));
88  ProcessingFrame const frame{mc.scheduleID()};
89  beginSubRunWithFrame(sr, frame);
90  sr.commitProducts();
91  return true;
92  }
virtual void beginSubRunWithFrame(SubRun &, ProcessingFrame const &)=0
static RangeSet forSubRun(SubRunID)
Definition: RangeSet.cc:57
void art::detail::Producer::doEndJob ( )
inherited

Definition at line 30 of file Producer.cc.

References art::detail::Producer::endJobWithFrame().

31  {
32  ProcessingFrame const frame{ScheduleID{}};
33  endJobWithFrame(frame);
34  }
virtual void endJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Producer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 75 of file Producer.cc.

References art::detail::Producer::endRunWithFrame(), art::RunPrincipal::makeRun(), r, art::ModuleContext::scheduleID(), and art::Principal::seenRanges().

76  {
77  auto r = rp.makeRun(mc, rp.seenRanges());
78  ProcessingFrame const frame{mc.scheduleID()};
79  endRunWithFrame(r, frame);
80  r.commitProducts();
81  return true;
82  }
TRandom r
Definition: spectrum.C:23
virtual void endRunWithFrame(Run &, ProcessingFrame const &)=0
bool art::detail::Producer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 95 of file Producer.cc.

References art::detail::Producer::endSubRunWithFrame(), art::SubRunPrincipal::makeSubRun(), art::ModuleContext::scheduleID(), and art::Principal::seenRanges().

96  {
97  auto sr = srp.makeSubRun(mc, srp.seenRanges());
98  ProcessingFrame const frame{mc.scheduleID()};
99  endSubRunWithFrame(sr, frame);
100  sr.commitProducts();
101  return true;
102  }
virtual void endSubRunWithFrame(SubRun &, ProcessingFrame const &)=0
bool art::detail::Producer::doEvent ( EventPrincipal ep,
ModuleContext const &  mc,
std::atomic< std::size_t > &  counts_run,
std::atomic< std::size_t > &  counts_passed,
std::atomic< std::size_t > &  counts_failed 
)
inherited

Definition at line 105 of file Producer.cc.

References art::detail::Producer::checkPutProducts_, e, art::EventPrincipal::makeEvent(), art::detail::Producer::produceWithFrame(), and art::ModuleContext::scheduleID().

110  {
111  auto e = ep.makeEvent(mc);
112  ++counts_run;
113  ProcessingFrame const frame{mc.scheduleID()};
114  produceWithFrame(e, frame);
115  e.commitProducts(checkPutProducts_, &expectedProducts<InEvent>());
116  ++counts_passed;
117  return true;
118  }
bool const checkPutProducts_
Definition: Producer.h:70
Float_t e
Definition: plot.C:35
virtual void produceWithFrame(Event &, ProcessingFrame const &)=0
void art::detail::Producer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited

Definition at line 44 of file Producer.cc.

References art::detail::Producer::respondToCloseInputFileWithFrame().

45  {
46  ProcessingFrame const frame{ScheduleID{}};
48  }
virtual void respondToCloseInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 58 of file Producer.cc.

References art::detail::Producer::respondToCloseOutputFilesWithFrame().

59  {
60  ProcessingFrame const frame{ScheduleID{}};
62  }
virtual void respondToCloseOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited

Definition at line 37 of file Producer.cc.

References art::detail::Producer::respondToOpenInputFileWithFrame().

38  {
39  ProcessingFrame const frame{ScheduleID{}};
41  }
virtual void respondToOpenInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Producer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 51 of file Producer.cc.

References art::detail::Producer::respondToOpenOutputFilesWithFrame().

52  {
53  ProcessingFrame const frame{ScheduleID{}};
55  }
virtual void respondToOpenOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void larg4::IonAndScint::endJob ( )
overridevirtual

Reimplemented from art::EDProducer.

Definition at line 142 of file IonAndScint_module.cc.

143  {
144  std::cout << "IonAndScint endJob." << std::endl;
145  }
void art::Modifier::fillProductDescriptions ( )
inherited

Definition at line 10 of file Modifier.cc.

References art::ProductRegistryHelper::fillDescriptions(), and art::ModuleBase::moduleDescription().

11  {
13  }
void fillDescriptions(ModuleDescription const &md)
ModuleDescription const & moduleDescription() const
Definition: ModuleBase.cc:13
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().

44  {
45  return collector_.getConsumables();
46  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables() const
std::vector< art::Handle< SimEnergyDepositCollection > > larg4::IonAndScint::inputCollections ( art::Event const &  e) const
private

Definition at line 148 of file IonAndScint_module.cc.

References util::empty(), fInputModuleLabels, art::ProductRetriever::getMany(), and art::errors::ProductNotFound.

Referenced by produce().

150  {
151  if (empty(fInputModuleLabels)) {
152  mf::LogDebug("IonAndScint") << "Retrieving all products" << std::endl;
153  return e.getMany<SimEnergyDepositCollection>();
154  }
155 
156  std::vector<art::Handle<SimEnergyDepositCollection>> result;
157 
158  for (auto const& module : fInputModuleLabels) {
159 
160  mf::LogDebug("IonAndScint") << "Retrieving products with module label " << module
161  << std::endl;
162 
163  auto handels = e.getMany<SimEnergyDepositCollection>(art::ModuleLabelSelector(module));
164 
165  if (empty(handels)) {
167  << "IonAndScint module cannot find any SimEnergyDeposits with module label " << module
168  << " as requested in InputModuleLabels. \n";
169  }
170 
171  result.insert(result.end(), handels.begin(), handels.end());
172  }
173 
174  return result;
175  }
std::vector< std::string > fInputModuleLabels
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
MaybeLogger_< ELseverityLevel::ELsev_success, false > LogDebug
Float_t e
Definition: plot.C:35
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109
std::vector< sim::SimEnergyDeposit > SimEnergyDepositCollection
std::unique_ptr< Worker > art::ModuleBase::makeWorker ( WorkerParams const &  wp)
inherited

Definition at line 37 of file ModuleBase.cc.

References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.

38  {
39  return doMakeWorker(wp);
40  }
virtual std::unique_ptr< Worker > doMakeWorker(WorkerParams const &wp)=0
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 82 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().

83  {
84  return collector_.mayConsume<T, BT>(tag);
85  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 96 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().

97  {
98  collector_.mayConsumeMany<T, BT>();
99  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::mayConsumeView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::mayConsumeView ( InputTag const &  tag)
inherited

Definition at line 89 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().

90  {
91  return collector_.mayConsumeView<T, BT>(tag);
92  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > mayConsumeView(InputTag const &)
ModuleDescription const & art::ModuleBase::moduleDescription ( ) const
inherited

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().

14  {
15  if (md_.has_value()) {
16  return *md_;
17  }
18 
20  "There was an error while calling moduleDescription().\n"}
21  << "The moduleDescription() base-class member function cannot be called\n"
22  "during module construction. To determine which module is "
23  "responsible\n"
24  "for calling it, find the '<module type>:<module "
25  "label>@Construction'\n"
26  "tag in the message prefix above. Please contact artists@fnal.gov\n"
27  "for guidance.\n";
28  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void larg4::IonAndScint::produce ( art::Event event)
overridevirtual

Implements art::EDProducer.

Definition at line 178 of file IonAndScint_module.cc.

References DEFINE_ART_MODULE, util::empty(), fISAlg, fSavePriorSCE, inputCollections(), and instanceNames.

179  {
180  std::cout << "IonAndScint Module Producer" << std::endl;
181 
182  std::vector<art::Handle<SimEnergyDepositCollection>> edepHandle = inputCollections(event);
183 
184  if (empty(edepHandle)) {
185  std::cout << "IonAndScint Module Cannot Retrive SimEnergyDeposit" << std::endl;
186  return;
187  }
188 
189  auto sce = lar::providerFrom<spacecharge::SpaceChargeService>();
190  auto const detProp =
192 
193  auto simedep = std::make_unique<std::vector<sim::SimEnergyDeposit>>();
194  auto simedep1 = std::make_unique<std::vector<sim::SimEnergyDeposit>>(); // for prior-SCE depos
195  for (auto edeps : edepHandle) {
196  // Do some checking before we proceed
197  if (!edeps.isValid()) {
198  std::cout << "!edeps.isValid()" << std::endl;
199  continue;
200  }
201 
202  auto index = std::find(
203  instanceNames.begin(), instanceNames.end(), edeps.provenance()->productInstanceName());
204  if (index == instanceNames.end()) {
205  std::cout << "Skip SimEnergyDeposit in: " << edeps.provenance()->productInstanceName()
206  << std::endl;
207  continue;
208  }
209 
210  std::cout << "SimEnergyDeposit input module: " << edeps.provenance()->moduleLabel()
211  << ", instance name: " << edeps.provenance()->productInstanceName() << std::endl;
212 
213  for (sim::SimEnergyDeposit const& edepi : *edeps) {
214  auto const isCalcData = fISAlg->CalcIonAndScint(detProp, edepi);
215 
216  int ph_num = round(isCalcData.numPhotons);
217  int ion_num = round(isCalcData.numElectrons);
218  float scintyield = isCalcData.scintillationYieldRatio;
219  float edep_tmp = edepi.Energy();
220  geo::Point_t startPos_tmp = edepi.Start();
221  geo::Point_t endPos_tmp = edepi.End();
222  double startTime_tmp = edepi.StartT();
223  double endTime_tmp = edepi.EndT();
224  int trackID_tmp = edepi.TrackID();
225  int pdgCode_tmp = edepi.PdgCode();
226  int origTrackID_tmp = edepi.OrigTrackID();
227 
228  if (sce->EnableSimSpatialSCE()) {
229  auto posOffsetsStart =
230  sce->GetPosOffsets({edepi.StartX(), edepi.StartY(), edepi.StartZ()});
231  auto posOffsetsEnd = sce->GetPosOffsets({edepi.EndX(), edepi.EndY(), edepi.EndZ()});
232  startPos_tmp =
233  geo::Point_t{(float)(edepi.StartX() - posOffsetsStart.X()), //x should be subtracted
234  (float)(edepi.StartY() + posOffsetsStart.Y()),
235  (float)(edepi.StartZ() + posOffsetsStart.Z())};
236  endPos_tmp =
237  geo::Point_t{(float)(edepi.EndX() - posOffsetsEnd.X()), //x should be subtracted
238  (float)(edepi.EndY() + posOffsetsEnd.Y()),
239  (float)(edepi.EndZ() + posOffsetsEnd.Z())};
240  }
241 
242  simedep->emplace_back(ph_num,
243  ion_num,
244  scintyield,
245  edep_tmp,
246  startPos_tmp,
247  endPos_tmp,
248  startTime_tmp,
249  endTime_tmp,
250  trackID_tmp,
251  pdgCode_tmp,
252  origTrackID_tmp);
253 
254  if (fSavePriorSCE) {
255  simedep1->emplace_back(ph_num,
256  ion_num,
257  scintyield,
258  edepi.Energy(),
259  edepi.Start(),
260  edepi.End(),
261  edepi.StartT(),
262  edepi.EndT(),
263  edepi.TrackID(),
264  edepi.PdgCode(),
265  edepi.OrigTrackID());
266  }
267  }
268  }
269  event.put(std::move(simedep));
270  if (fSavePriorSCE) event.put(std::move(simedep1), "priorSCE");
271  }
std::vector< string > instanceNames
std::vector< art::Handle< SimEnergyDepositCollection > > inputCollections(art::Event const &) const
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.
Definition: geo_vectors.h:180
Energy deposition in the active material.
std::unique_ptr< ISCalc > fISAlg
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109
void art::Modifier::registerProducts ( ProductDescriptions productsToRegister)
inherited

Definition at line 16 of file Modifier.cc.

References art::ModuleBase::moduleDescription(), and art::ProductRegistryHelper::registerProducts().

17  {
18  ProductRegistryHelper::registerProducts(productsToRegister,
20  }
void registerProducts(ProductDescriptions &productsToRegister, ModuleDescription const &md)
ModuleDescription const & moduleDescription() const
Definition: ModuleBase.cc:13
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  md)
inherited

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

32  {
33  md_ = md;
34  }
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited

Definition at line 49 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().

50  {
51  // Now that we know we have seen all the consumes declarations,
52  // sort the results for fast lookup later.
53  collector_.sortConsumables(current_process_name);
54  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
void sortConsumables(std::string const &current_process_name)

Member Data Documentation

art::InputTag larg4::IonAndScint::calcTag
private

Definition at line 69 of file IonAndScint_module.cc.

Referenced by beginJob(), and IonAndScint().

CLHEP::HepRandomEngine& larg4::IonAndScint::fEngine
private

Definition at line 79 of file IonAndScint_module.cc.

Referenced by beginJob(), and IonAndScint().

std::vector<std::string> larg4::IonAndScint::fInputModuleLabels
private

Definition at line 76 of file IonAndScint_module.cc.

Referenced by inputCollections(), and IonAndScint().

std::unique_ptr<ISCalc> larg4::IonAndScint::fISAlg
private

Definition at line 78 of file IonAndScint_module.cc.

Referenced by beginJob(), and produce().

bool larg4::IonAndScint::fSavePriorSCE
private

Definition at line 82 of file IonAndScint_module.cc.

Referenced by IonAndScint(), and produce().

std::vector<string> larg4::IonAndScint::instanceNames
private

Definition at line 81 of file IonAndScint_module.cc.

Referenced by IonAndScint(), and produce().

string larg4::IonAndScint::Instances
private

Definition at line 80 of file IonAndScint_module.cc.

Referenced by IonAndScint().


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