LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
hit::HitFinderAna Class Reference

Base class for creation of raw signals on wires. More...

Inheritance diagram for hit::HitFinderAna:
art::EDAnalyzer art::EventObserverBase art::Consumer art::EngineCreator

Public Types

using WorkerType = WorkerT< EDAnalyzer >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 HitFinderAna (fhicl::ParameterSet const &pset)
 
virtual ~HitFinderAna ()
 
void analyze (const art::Event &evt)
 read/write access to event More...
 
void beginJob ()
 
void reconfigure (fhicl::ParameterSet const &p)
 
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< T > consumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > consumes (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< T > consumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > mayConsume (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< T > mayConsumeView (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

std::string fFFTHitFinderModuleLabel
 
std::string fLArG4ModuleLabel
 
TTree * fHTree
 
Int_t fRun
 
Int_t fEvt
 
Int_t fNp0
 
Int_t fNp1
 
Int_t fNp2
 
Int_t fN3p0
 
Int_t fN3p1
 
Int_t fN3p2
 
Float_t * fTimep0
 
Float_t * fTimep1
 
Float_t * fTimep2
 
Int_t * fWirep0
 
Int_t * fWirep1
 
Int_t * fWirep2
 
Float_t * fChgp0
 
Float_t * fChgp1
 
Float_t * fChgp2
 
Float_t * fXYZp0
 
Float_t * fXYZp1
 
Float_t * fXYZp2
 
Int_t * fMCPdg0
 
Int_t * fMCTId0
 
Float_t * fMCE0
 
Int_t * fMCPdg1
 
Int_t * fMCTId1
 
Float_t * fMCE1
 
Int_t * fMCPdg2
 
Int_t * fMCTId2
 
Float_t * fMCE2
 

Detailed Description

Base class for creation of raw signals on wires.

Definition at line 66 of file HitFinderAna_module.cc.

Member Typedef Documentation

Definition at line 39 of file EDAnalyzer.h.

Definition at line 38 of file EDAnalyzer.h.

Constructor & Destructor Documentation

hit::HitFinderAna::HitFinderAna ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 122 of file HitFinderAna_module.cc.

References reconfigure().

123  : EDAnalyzer(pset)
124  {
125  this->reconfigure(pset);
126  }
EDAnalyzer(Table< Config > const &config)
Definition: EDAnalyzer.h:100
void reconfigure(fhicl::ParameterSet const &p)
hit::HitFinderAna::~HitFinderAna ( )
virtual

Definition at line 129 of file HitFinderAna_module.cc.

130  {
131  }

Member Function Documentation

void hit::HitFinderAna::analyze ( const art::Event evt)

read/write access to event

Definition at line 208 of file HitFinderAna_module.cc.

References sim::ParticleList::at(), DEFINE_ART_MODULE, simb::MCParticle::E(), sim::ParticleList::end(), art::EventID::event(), fChgp0, fChgp1, fChgp2, fEvt, fFFTHitFinderModuleLabel, fHTree, sim::ParticleList::find(), fMCE0, fMCE1, fMCE2, fMCPdg0, fMCPdg1, fMCPdg2, fMCTId0, fMCTId1, fMCTId2, fN3p0, fN3p1, fN3p2, fNp0, fNp1, fNp2, fRun, fTimep0, fTimep1, fTimep2, fWirep0, fWirep1, fWirep2, fXYZp0, fXYZp1, fXYZp2, art::DataViewImpl::getByLabel(), cheat::BackTrackerService::HitToTrackIDEs(), cheat::BackTrackerService::HitToXYZ(), art::Event::id(), art::Event::isRealData(), LOG_VERBATIM, cheat::ParticleInventoryService::ParticleList(), simb::MCParticle::PdgCode(), geo::PlaneID::Plane, and art::Event::run().

209  {
210 
211  if (evt.isRealData()){
212  throw cet::exception("HitFinderAna: ") << "Not for use on Data yet...\n";
213  }
214 
216  evt.getByLabel(fFFTHitFinderModuleLabel,hitHandle);
217 
220 
221  sim::ParticleList const& _particleList = pi_serv->ParticleList();
222 
223  LOG_VERBATIM("HitFinderAna") << _particleList;
224 
226 
227  std::map<geo::PlaneID, std::vector< art::Ptr<recob::Hit> > > planeIDToHits;
228  for(size_t h = 0; h < hitHandle->size(); ++h)
229  planeIDToHits[hitHandle->at(h).WireID().planeID()].push_back(art::Ptr<recob::Hit>(hitHandle, h));
230 
231 
232  for(auto mapitr : planeIDToHits){
233  fNp0=0; fN3p0=0;
234  fNp1=0; fN3p1=0;
235  fNp2=0; fN3p2=0;
236 
237  geo::PlaneID pid = mapitr.first;
238  auto itr = mapitr.second.begin();
239  while(itr != mapitr.second.end()) {
240 
241  fRun = evt.run();
242  fEvt = evt.id().event();
243 
244  std::vector<sim::TrackIDE> trackides = bt_serv->HitToTrackIDEs(*itr);
245  std::vector<sim::TrackIDE>::iterator idesitr = trackides.begin();
246  std::vector<double> xyz = bt_serv->HitToXYZ(*itr);
247 
248  if (pid.Plane == 0 && fNp0 < 9000){
249  fTimep0[fNp0] = (*itr)->PeakTime();
250  fWirep0[fNp0] = (*itr)->WireID().Wire;
251  fChgp0[fNp0] = (*itr)->Integral();
252 
253  for (unsigned int kk = 0; kk < 3; ++kk){
254  fXYZp0[fNp0*3+kk] = xyz[kk];
255  }
256 
257 
258  while( idesitr != trackides.end() ){
259  fMCTId0[fNp0] = (*idesitr).trackID;
260  if (_particleList.find((*idesitr).trackID) != _particleList.end()){
261  const simb::MCParticle* particle = _particleList.at( (*idesitr).trackID);
262  fMCPdg0[fNp0] = particle->PdgCode();
263  fMCE0[fNp0] = particle->E();
264  }
265  idesitr++;
266  }
267 
268  ++fNp0;
269  }
270 
271  else if (pid.Plane == 1 && fNp1 < 9000){
272  fTimep1[fNp1] = (*itr)->PeakTime();
273  fWirep1[fNp1] = (*itr)->WireID().Wire;
274  fChgp1[fNp1] = (*itr)->Integral();
275 
276  for (unsigned int kk = 0; kk < 3; ++kk){
277  fXYZp1[fNp1*3+kk] = xyz[kk];
278  }
279 
280  while( idesitr != trackides.end() ){
281  fMCTId1[fNp1] = (*idesitr).trackID;
282  if (_particleList.find((*idesitr).trackID) != _particleList.end()){
283  const simb::MCParticle* particle = _particleList.at( (*idesitr).trackID);
284  fMCPdg1[fNp1] = particle->PdgCode();
285  fMCE1[fNp1] = particle->E();
286  }
287  idesitr++;
288  }
289  ++fNp1;
290  }
291 
292  else if (pid.Plane == 2 && fNp2 < 9000){
293  fTimep2[fNp2] = (*itr)->PeakTime();
294  fWirep2[fNp2] = (*itr)->WireID().Wire;
295  fChgp2[fNp2] = (*itr)->Integral();
296 
297  for (unsigned int kk = 0; kk < 3; ++kk){
298  fXYZp2[fNp2*3+kk] = xyz[kk];
299  }
300 
301  while( idesitr != trackides.end()){
302  fMCTId2[fNp2] = (*idesitr).trackID;
303  if (_particleList.find((*idesitr).trackID) != _particleList.end() ){
304  const simb::MCParticle* particle = _particleList.at( (*idesitr).trackID);
305  fMCPdg2[fNp2] = particle->PdgCode();
306  fMCE2[fNp2] = particle->E();
307  }
308  idesitr++;
309  }
310  ++fNp2;
311  }
312 
313  fN3p0 = 3* fNp0;
314  fN3p1 = 3* fNp1;
315  fN3p2 = 3* fNp2;
316 
317  fHTree->Fill();
318  itr++;
319  } // loop on Hits
320  } // loop on map
321 
322  return;
323  }//end analyze method
double E(const int i=0) const
Definition: MCParticle.h:237
int PdgCode() const
Definition: MCParticle.h:216
const std::vector< double > HitToXYZ(const recob::Hit &hit)
intermediate_table::iterator iterator
const std::vector< sim::TrackIDE > HitToTrackIDEs(recob::Hit const &hit)
The data type to uniquely identify a Plane.
Definition: geo_types.h:250
mapped_type at(const key_type &key)
Definition: ParticleList.h:330
std::string fFFTHitFinderModuleLabel
bool isRealData() const
Definition: Event.h:83
iterator find(const key_type &key)
Definition: ParticleList.h:318
PlaneID_t Plane
Index of the plane within its TPC.
Definition: geo_types.h:258
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
Definition: DataViewImpl.h:344
EventNumber_t event() const
Definition: EventID.h:117
#define LOG_VERBATIM(category)
RunNumber_t run() const
Definition: Event.h:77
EventID id() const
Definition: Event.h:56
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
void hit::HitFinderAna::beginJob ( )
virtual

Reimplemented from art::EDAnalyzer.

Definition at line 140 of file HitFinderAna_module.cc.

References fChgp0, fChgp1, fChgp2, fEvt, fHTree, fMCE0, fMCE1, fMCE2, fMCPdg0, fMCPdg1, fMCPdg2, fMCTId0, fMCTId1, fMCTId2, fN3p0, fN3p1, fN3p2, fNp0, fNp1, fNp2, fRun, fTimep0, fTimep1, fTimep2, fWirep0, fWirep1, fWirep2, fXYZp0, fXYZp1, fXYZp2, and art::TFileDirectory::make().

141  {
142  // get access to the TFile service
144  fNp0 = 9000;
145  fNp1 = 9000;
146  fNp2 = 9000;
147 
148  fHTree = tfs->make<TTree>("HTree","HTree");
149  fTimep0 = new Float_t[fNp0];
150  fTimep1 = new Float_t[fNp1];
151  fTimep2 = new Float_t[fNp2];
152  fWirep0 = new Int_t[fNp0];
153  fWirep1 = new Int_t[fNp1];
154  fWirep2 = new Int_t[fNp2];
155  fChgp0 = new Float_t[fNp0];
156  fChgp1 = new Float_t[fNp1];
157  fChgp2 = new Float_t[fNp2];
158  fXYZp0 = new Float_t[fNp0*3];
159  fXYZp1 = new Float_t[fNp1*3];
160  fXYZp2 = new Float_t[fNp2*3];
161 
162  fMCPdg0 = new Int_t[fNp0];
163  fMCPdg1 = new Int_t[fNp1];
164  fMCPdg2 = new Int_t[fNp2];
165  fMCTId0 = new Int_t[fNp0];
166  fMCTId1 = new Int_t[fNp1];
167  fMCTId2 = new Int_t[fNp2];
168  fMCE0 = new Float_t[fNp0];
169  fMCE1 = new Float_t[fNp1];
170  fMCE2 = new Float_t[fNp2];
171 
172  fHTree->Branch("HEvt", &fEvt, "HEvt/I");
173  fHTree->Branch("HRun", &fRun, "HRun/I");
174  fHTree->Branch("HNp0", &fNp0, "HNp0/I");
175  fHTree->Branch("HNp1", &fNp1, "HNp1/I");
176  fHTree->Branch("HNp2", &fNp2, "HNp2/I");
177  fHTree->Branch("HN3p0", &fN3p0, "HN3p0/I");
178  fHTree->Branch("HN3p1", &fN3p1, "HN3p1/I");
179  fHTree->Branch("HN3p2", &fN3p2, "HN3p2/I");
180  fHTree->Branch("Htp0", fTimep0, "Htp0[HNp0]/F");
181  fHTree->Branch("Htp1", fTimep1, "Htp1[HNp1]/F");
182  fHTree->Branch("Htp2", fTimep2, "Htp2[HNp2]/F");
183  fHTree->Branch("Hwp0", fWirep0, "Hwp0[HNp0]/I");
184  fHTree->Branch("Hwp1", fWirep1, "Hwp1[HNp1]/I");
185  fHTree->Branch("Hwp2", fWirep2, "Hwp2[HNp2]/I");
186  fHTree->Branch("Hchgp0", fChgp0, "Hchgp0[HNp0]/F");
187  fHTree->Branch("Hchgp1", fChgp1, "Hchgp1[HNp1]/F");
188  fHTree->Branch("Hchgp2", fChgp2, "Hchgp2[HNp2]/F");
189  fHTree->Branch("HMCXYZp0", fXYZp0, "HMCXYZp0[HN3p0]/F");
190  fHTree->Branch("HMCXYZp1", fXYZp1, "HMCXYZp1[HN3p1]/F");
191  fHTree->Branch("HMCXYZp2", fXYZp2, "HMCXYZp2[HN3p2]/F");
192  fHTree->Branch("HMCPdgp0", fMCPdg0, "HMCPdgp0[HNp0]/I");
193  fHTree->Branch("HMCPdgp1", fMCPdg1, "HMCPdgp1[HNp1]/I");
194  fHTree->Branch("HMCPdgp2", fMCPdg2, "HMCPdgp2[HNp2]/I");
195  fHTree->Branch("HMCTIdp0", fMCTId0, "HMCTIdp0[HNp0]/I");
196  fHTree->Branch("HMCTIdp1", fMCTId1, "HMCTIdp1[HNp1]/I");
197  fHTree->Branch("HMCTIdp2", fMCTId2, "HMCTIdp2[HNp2]/I");
198  fHTree->Branch("HMCEp0", fMCE0, "HMCEp0[HNp0]/F");
199  fHTree->Branch("HMCEp1", fMCE1, "HMCEp1[HNp1]/F");
200  fHTree->Branch("HMCEp2", fMCE2, "HMCEp2[HNp2]/F");
201 
202 
203  return;
204 
205  }
T * make(ARGS...args) const
detail::CachedProducts& art::EventObserverBase::cachedProducts ( )
inlineprotectedinherited

Definition at line 79 of file EventObserverBase.h.

References art::EventObserverBase::selectors_.

Referenced by art::EDAnalyzer::doEvent(), and art::OutputModule::doWriteEvent().

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 147 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 162 of file Consumer.h.

163 {
164  if (!moduleContext_)
165  return;
166 
167  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
168 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
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 172 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

173 {
174  if (!moduleContext_)
175  return ViewToken<T>::invalid();
176 
177  consumables_[BT].emplace_back(ConsumableType::ViewElement,
178  TypeID{typeid(T)},
179  it.label(),
180  it.instance(),
181  it.process());
182  return ViewToken<T>{it};
183 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited

Definition at line 32 of file EngineCreator.cc.

References art::EngineCreator::rng().

34 {
35  return rng()->createEngine(
36  placeholder_schedule_id(), seed, kind_of_engine_to_make);
37 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited

Definition at line 40 of file EngineCreator.cc.

References art::EngineCreator::rng().

43 {
44  return rng()->createEngine(
45  placeholder_schedule_id(), seed, kind_of_engine_to_make, engine_label);
46 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
CurrentProcessingContext const * art::EDAnalyzer::currentContext ( ) const
protectedinherited

Definition at line 114 of file EDAnalyzer.cc.

References art::EDAnalyzer::current_context_.

Referenced by art::EDAnalyzer::workerType().

115  {
116  return current_context_.get();
117  }
CPC_exempt_ptr current_context_
Definition: EDAnalyzer.h:179
EngineCreator::seed_t EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited

Definition at line 49 of file EngineCreator.cc.

References fhicl::ParameterSet::get().

Referenced by art::MixFilter< T >::initEngine_().

52 {
53  auto const& explicit_seeds = pset.get<std::vector<int>>(key, {});
54  return explicit_seeds.empty() ? implicit_seed : explicit_seeds.front();
55 }
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_.

Referenced by art::OutputModule::doWriteEvent().

62  {
64  }
detail::CachedProducts selectors_
art::Handle< art::TriggerResults > getOneTriggerResults(Event const &) const
Float_t e
Definition: plot.C:34
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 190 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 205 of file Consumer.h.

206 {
207  if (!moduleContext_)
208  return;
209 
210  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
211 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
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 215 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

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

Definition at line 25 of file EventObserverBase.h.

26  {
27  return false;
28  }
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited

Definition at line 89 of file Consumer.cc.

References fhicl::ParameterSet::get_if_present().

Referenced by art::EDProducer::doBeginJob(), art::EDFilter::doBeginJob(), and art::EDAnalyzer::doBeginJob().

90 {
91  if (!moduleContext_)
92  return;
93 
94  pset.get_if_present("errorOnMissingConsumes", requireConsumes_);
95  for (auto& consumablesPerBranch : consumables_) {
96  cet::sort_all(consumablesPerBranch);
97  }
98 }
bool requireConsumes_
Definition: Consumer.h:137
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
std::string const& art::EventObserverBase::processName ( ) const
inlineinherited
void hit::HitFinderAna::reconfigure ( fhicl::ParameterSet const &  p)

Definition at line 133 of file HitFinderAna_module.cc.

References fFFTHitFinderModuleLabel, fLArG4ModuleLabel, and fhicl::ParameterSet::get().

Referenced by HitFinderAna().

134  {
135  fFFTHitFinderModuleLabel = p.get< std::string >("HitsModuleLabel");
136  fLArG4ModuleLabel = p.get< std::string >("LArGeantModuleLabel");
137  return;
138  }
std::string fFFTHitFinderModuleLabel
std::string fLArG4ModuleLabel
void art::EventObserverBase::registerProducts ( MasterProductRegistry ,
ProductDescriptions ,
ModuleDescription const &   
)
inlineinherited

Definition at line 33 of file EventObserverBase.h.

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

Definition at line 56 of file EventObserverBase.h.

References art::EventObserverBase::selector_config_id_.

Referenced by art::RootOutputFile::writeOne().

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

Definition at line 125 of file Consumer.cc.

Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().

126 {
127  if (!moduleContext_)
128  return;
129 
130  // If none of the branches have missing consumes statements, exit early.
131  if (std::all_of(cbegin(missingConsumes_),
132  cend(missingConsumes_),
133  [](auto const& perBranch) { return perBranch.empty(); }))
134  return;
135 
136  constexpr cet::HorizontalRule rule{60};
137  mf::LogPrint log{"MTdiagnostics"};
138  log << '\n'
139  << rule('=') << '\n'
140  << "The following consumes (or mayConsume) statements are missing from\n"
141  << module_context(moduleDescription_) << '\n'
142  << rule('-') << '\n';
143 
144  cet::for_all_with_index(
145  missingConsumes_, [&log](std::size_t const i, auto const& perBranch) {
146  for (auto const& pi : perBranch) {
147  log << " "
148  << assemble_consumes_statement(static_cast<BranchType>(i), pi)
149  << '\n';
150  }
151  });
152  log << rule('=');
153 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited

Definition at line 101 of file Consumer.cc.

References art::errors::ProductRegistrationFailure.

103 {
104  // Early exits if consumes tracking has been disabled or if the
105  // consumed product is an allowed consumable.
106  if (!moduleContext_)
107  return;
108 
109  if (cet::binary_search_all(consumables_[bt], pi))
110  return;
111 
112  if (requireConsumes_) {
114  "Consumer: an error occurred during validation of a "
115  "retrieved product\n\n")
116  << "The following consumes (or mayConsume) statement is missing from\n"
117  << module_context(moduleDescription_) << ":\n\n"
118  << " " << assemble_consumes_statement(bt, pi) << "\n\n";
119  }
120 
121  missingConsumes_[bt].insert(pi);
122 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
bool requireConsumes_
Definition: Consumer.h:137
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
bool art::EventObserverBase::wantAllEvents ( ) const
inlineinherited
bool art::EventObserverBase::wantEvent ( Event const &  e)
inlineinherited
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

Float_t* hit::HitFinderAna::fChgp0
private

Definition at line 98 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fChgp1
private

Definition at line 99 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fChgp2
private

Definition at line 100 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fEvt
private

Definition at line 85 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

std::string hit::HitFinderAna::fFFTHitFinderModuleLabel
private

Definition at line 80 of file HitFinderAna_module.cc.

Referenced by analyze(), and reconfigure().

TTree* hit::HitFinderAna::fHTree
private

Definition at line 83 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

std::string hit::HitFinderAna::fLArG4ModuleLabel
private

Definition at line 81 of file HitFinderAna_module.cc.

Referenced by reconfigure().

Float_t* hit::HitFinderAna::fMCE0
private

Definition at line 107 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fMCE1
private

Definition at line 110 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fMCE2
private

Definition at line 113 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCPdg0
private

Definition at line 105 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCPdg1
private

Definition at line 108 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCPdg2
private

Definition at line 111 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCTId0
private

Definition at line 106 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCTId1
private

Definition at line 109 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fMCTId2
private

Definition at line 112 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fN3p0
private

Definition at line 89 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fN3p1
private

Definition at line 90 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fN3p2
private

Definition at line 91 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fNp0
private

Definition at line 86 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fNp1
private

Definition at line 87 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fNp2
private

Definition at line 88 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t hit::HitFinderAna::fRun
private

Definition at line 84 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fTimep0
private

Definition at line 92 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fTimep1
private

Definition at line 93 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fTimep2
private

Definition at line 94 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fWirep0
private

Definition at line 95 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fWirep1
private

Definition at line 96 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Int_t* hit::HitFinderAna::fWirep2
private

Definition at line 97 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fXYZp0
private

Definition at line 101 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fXYZp1
private

Definition at line 102 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().

Float_t* hit::HitFinderAna::fXYZp2
private

Definition at line 103 of file HitFinderAna_module.cc.

Referenced by analyze(), and beginJob().


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