Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
cvn::RegCVNMapper Class Reference
Inheritance diagram for cvn::RegCVNMapper:
art::EDProducer art::detail::Producer art::detail::LegacyModule art::Modifier art::ModuleBase art::ProductRegistryHelper

Public Types

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

Public Member Functions

 RegCVNMapper (fhicl::ParameterSet const &pset)
 
 ~RegCVNMapper ()
 
void produce (art::Event &evt)
 
void beginJob ()
 
void endJob ()
 
std::string workerType () const
 
void doBeginJob ()
 
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)
 
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)
 
template<typename T , BranchType BT>
ViewToken< TconsumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< TmayConsumeView (InputTag const &tag)
 

Protected Member Functions

ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< Tconsumes (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< TmayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Attributes

const art::ProductToken< std::vector< rb::Cluster > > fClusterToken
 Module lablel for input clusters. More...
 
bool fProngInput
 Use Prong or Track as input. More...
 
std::string fProngModLabel
 Module lablel for input prongs. More...
 
std::string fProng3DLabel
 Instance lablel for input 3D prongs. More...
 
std::string fProng2DLabel
 Instance lablel for input 2D prongs. More...
 
std::string fTrack3DLabel
 Instance lablel for input 3D tracks. More...
 
std::string fTrack2DLabel
 Instance lablel for input 2D tracks. More...
 
std::string fShowerLabel
 Instance lablel for Regression CVN input Shower. More...
 
std::string fClusterPMLabel
 Instance lablel for cluster pixelmaps. More...
 
std::string fProngPMLabel
 Instance lablel for prong pixelmaps. More...
 
bool fMapProngs
 Option to save maps for prongs. More...
 
bool fObeyPreselection
 Check rb::IsFiltered? More...
 
std::vector< std::stringfPreselectionLabels
 Filter labels. More...
 
unsigned short fMinClusterHits
 Minimum number of hits for cluster to be converted to pixel map. More...
 
unsigned short fCellWidth
 Width of pixel map in cells. More...
 
unsigned short fPlaneLength
 Length of pixel map in planes. More...
 
unsigned int fMaxPlaneGap
 
bool fUseGeV
 true=GeV, false=PECorr More...
 
RegPixelMapProducer fProducer
 PixelMapProducer does the work for us. More...
 

Detailed Description

Definition at line 55 of file RegCVNMapper_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 25 of file Producer.h.

using art::EDProducer::WorkerType = WorkerT<EDProducer>
inherited

Definition at line 18 of file EDProducer.h.

Constructor & Destructor Documentation

cvn::RegCVNMapper::RegCVNMapper ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 132 of file RegCVNMapper_module.cc.

References fClusterPMLabel, and fProngPMLabel.

132  :
133  EDProducer(pset),
134  fClusterToken(consumes<std::vector<rb::Cluster>>(pset.get<std::string>("ClusterLabel"))),
135  fProngInput (pset.get<bool> ("ProngInput")),
136  fProngModLabel (pset.get<std::string> ("ProngModLabel")),
137  fProng3DLabel (pset.get<std::string> ("Prong3DLabel")),
138  fProng2DLabel (pset.get<std::string> ("Prong2DLabel")),
139  fTrack3DLabel (pset.get<std::string> ("Track3DLabel")),
140  fTrack2DLabel (pset.get<std::string> ("Track2DLabel")),
141  fShowerLabel (pset.get<std::string> ("ShowerLabel")),
142  fClusterPMLabel(pset.get<std::string> ("ClusterPMLabel")),
143  fProngPMLabel (pset.get<std::string> ("ProngPMLabel")),
144  fMapProngs (pset.get<bool> ("MapProngs")),
145  fObeyPreselection(pset.get<bool> ("ObeyPreselection")),
146  fPreselectionLabels (pset.get<std::vector<std::string>>("PreselectionLabels")),
147  fMinClusterHits(pset.get<unsigned short> ("MinClusterHits")),
148  fCellWidth (pset.get<unsigned short> ("CellWidth")),
149  fPlaneLength (pset.get<unsigned short> ("PlaneLength")),
150  fMaxPlaneGap (pset.get<unsigned int> ("MaxPlaneGap")),
151  fUseGeV (pset.get<bool> ("UseGeV")),
153  {
154 
155  produces< std::vector<cvn::RegPixelMap> >(fClusterPMLabel);
156  produces< std::vector<cvn::RegPixelMap> >(fProngPMLabel);
157  produces< art::Assns<cvn::RegPixelMap, rb::Cluster> >();
158  produces< art::Assns<cvn::RegPixelMap, rb::Prong> >();
159  }
bool fProngInput
Use Prong or Track as input.
std::string fClusterPMLabel
Instance lablel for cluster pixelmaps.
std::vector< std::string > fPreselectionLabels
Filter labels.
EDProducer(fhicl::ParameterSet const &pset)
Definition: EDProducer.h:20
std::string fProng3DLabel
Instance lablel for input 3D prongs.
unsigned short fPlaneLength
Length of pixel map in planes.
RegPixelMapProducer fProducer
PixelMapProducer does the work for us.
std::string fProng2DLabel
Instance lablel for input 2D prongs.
bool fMapProngs
Option to save maps for prongs.
std::string fTrack2DLabel
Instance lablel for input 2D tracks.
unsigned short fCellWidth
Width of pixel map in cells.
bool fUseGeV
true=GeV, false=PECorr
std::string fProngPMLabel
Instance lablel for prong pixelmaps.
unsigned short fMinClusterHits
Minimum number of hits for cluster to be converted to pixel map.
bool fObeyPreselection
Check rb::IsFiltered?
std::string fShowerLabel
Instance lablel for Regression CVN input Shower.
const art::ProductToken< std::vector< rb::Cluster > > fClusterToken
Module lablel for input clusters.
std::string fTrack3DLabel
Instance lablel for input 3D tracks.
ProductToken< T > consumes(InputTag const &)
Definition: ModuleBase.h:55
std::string fProngModLabel
Module lablel for input prongs.
enum BeamMode string
cvn::RegCVNMapper::~RegCVNMapper ( )

Definition at line 162 of file RegCVNMapper_module.cc.

163  {
164  //======================================================================
165  // Clean up any memory allocated by your module
166  //======================================================================
167  }

Member Function Documentation

void cvn::RegCVNMapper::beginJob ( )
virtual

Reimplemented from art::EDProducer.

Definition at line 170 of file RegCVNMapper_module.cc.

171  {
172 }
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 55 of file ModuleBase.h.

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

56  {
57  return collector_.consumes<T, BT>(tag);
58  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ProductToken< T > consumes(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
ConsumesCollector& art::ModuleBase::consumesCollector ( )
protectedinherited
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 69 of file ModuleBase.h.

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

70  {
71  collector_.consumesMany<T, BT>();
72  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
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 62 of file ModuleBase.h.

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

63  {
64  return collector_.consumesView<T, BT>(tag);
65  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ViewToken< Element > consumesView(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
void art::detail::Producer::doBeginJob ( )
inherited
bool art::detail::Producer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited
bool art::detail::Producer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited
void art::detail::Producer::doEndJob ( )
inherited
bool art::detail::Producer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited
bool art::detail::Producer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited
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
void art::detail::Producer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited
void art::detail::Producer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited
void cvn::RegCVNMapper::endJob ( )
virtual

Reimplemented from art::EDProducer.

Definition at line 175 of file RegCVNMapper_module.cc.

176  {
177  }
std::array<std::vector<ProductInfo>, NumBranchTypes> const& art::ModuleBase::getConsumables ( ) const
inherited
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 76 of file ModuleBase.h.

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

77  {
78  return collector_.mayConsume<T, BT>(tag);
79  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 90 of file ModuleBase.h.

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

91  {
93  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
double T
Definition: Xdiff_gwt.C:5
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 83 of file ModuleBase.h.

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

84  {
85  return collector_.mayConsumeView<T, BT>(tag);
86  }
ConsumesCollector collector_
Definition: ModuleBase.h:50
ViewToken< Element > mayConsumeView(InputTag const &)
double T
Definition: Xdiff_gwt.C:5
ModuleDescription const& art::ModuleBase::moduleDescription ( ) const
inherited
void cvn::RegCVNMapper::produce ( art::Event evt)
virtual

Implements art::EDProducer.

Definition at line 180 of file RegCVNMapper_module.cc.

References cvn::RegPixelMap::Bound(), geo::PlaneGeo::Cell(), util::CreateAssn(), cvn::RegPixelMapProducer::CreateMap(), cvn::RegPixelMapProducer::CreateMapGivenBoundary(), cvn::RegPixelMapProducer::CreateMapGivenShowerVertex(), cvn::RegPixelMapProducer::CreateMapGivenVertex(), DEFINE_ART_MODULE(), fClusterPMLabel, fClusterToken, fMapProngs, fMinClusterHits, fObeyPreselection, fPreselectionLabels, fProducer, fProng2DLabel, fProng3DLabel, fProngInput, fProngModLabel, fProngPMLabel, fShowerLabel, fTrack2DLabel, fTrack3DLabel, geom(), art::DataViewImpl::getByToken(), geo::CellGeo::GetCenter(), GetX(), GetY(), MECModelEnuComparisons::i, ip, rb::IsFiltered(), calib::j, geo::kY, geo::PlaneGeo::Ncells(), geo::GeometryBase::NPlanes(), geo::GeometryBase::Plane(), art::PtrVector< T >::push_back(), art::DataViewImpl::put(), art::PtrVector< T >::size(), registry_explorer::v, geo::PlaneGeo::View(), and xx.

181  {
182 
183 
185  evt.getByToken(fClusterToken,sliceHandle);
186 
187  if(sliceHandle->empty()){
188  mf::LogWarning ("No Slices")<<"No Slices in the input file";
189  return;
190  }
191 
193  for(unsigned int i = 0; i<sliceHandle->size();++i){
194  art::Ptr<rb::Cluster> clust(sliceHandle,i);
195  sliceCol.push_back(clust);
196  }
197 
198 
199  //Declaring containers for things to be stored in event
200  std::unique_ptr< std::vector<RegPixelMap> >
201  pmCol(new std::vector<RegPixelMap>);
202  std::unique_ptr< std::vector<RegPixelMap> >
203  prong_pmCol(new std::vector<RegPixelMap>);
204  std::unique_ptr< art::Assns<RegPixelMap, rb::Cluster> >
206  std::unique_ptr< art::Assns<RegPixelMap, rb::Prong> >
207  prong_assoc(new art::Assns<RegPixelMap,
208  rb::Prong>);
209 
211 
212  art::FindManyP<rb::Prong> fmProng3D(sliceHandle, evt,
214 
215  art::FindManyP<rb::Prong> fmProng2D(sliceHandle, evt,
217 
218  art::FindManyP<rb::Track> fmTrack3D(sliceHandle, evt, fTrack3DLabel);
219 
220  art::FindManyP<rb::Track> fmTrack2D(sliceHandle, evt, fTrack2DLabel);
221 
222  art::FindManyP<rb::Vertex> fmv(sliceHandle, evt, "elasticarmshs");
223 
224  for(unsigned int iSlice = 0; iSlice < sliceCol.size(); ++iSlice)
225  {
226  if (sliceCol[iSlice]->IsNoise() ||
227  sliceCol[iSlice]->NCell() < fMinClusterHits)
228  continue;
229  // Skip if we're obeying preselection
230  if(fObeyPreselection && rb::IsFiltered(evt, sliceHandle, iSlice, fPreselectionLabels))
231  continue;
232 // std::cout<<"CVN CreatMap, iSlice "<<iSlice<<std::endl;
233  RegPixelMap pm = fProducer.CreateMap(*sliceCol[iSlice]);
234  Boundary bound = pm.Bound();
235 
236 // pmCol->push_back(pm);
237 // util::CreateAssn(evt, *(pmCol.get()),
238 // sliceCol[iSlice], *(assoc.get()), UINT_MAX,
239 // fClusterPMLabel);
240 
241  // Option to save prong level pixel maps
242  if ( fMapProngs ){
243  unsigned int vtxPlane = 0;
244  unsigned int vtxXCell = 0;
245  unsigned int vtxYCell = 0;
246 
247  if ((fmv.isValid())){
248  std::vector<art::Ptr<rb::Vertex> > v = fmv.at(iSlice);
249  for (unsigned int j=0; j<v.size(); ++j) {
250  TVector3 evtVtx(0,0,0);
251  //store vertex coordinates
252  evtVtx.SetX(v[j]->GetX());
253  evtVtx.SetY(v[j]->GetY());
254  evtVtx.SetZ(v[j]->GetZ());
255  double dmin = 9999999;
256  //find plane number closest to vertex
257  for(unsigned int pp = 0; pp < geom->NPlanes();pp++){
258  if(pp%2==0)continue;
259  Double_t cellXYZ[3]={0,0,0};
260  geom->Plane(pp)->Cell(0)->GetCenter(cellXYZ);
261  double mind = fabs(cellXYZ[2]-evtVtx[2]);
262  if(mind<=dmin){
263  dmin=mind;
264  vtxPlane = pp;
265  }
266  }
267 // if(vtxPlane%2==1)vtxPlane = vtxPlane-1;
268  double dminx = 9999999;
269  double dminy = 9999999;
270  unsigned int xp=0;
271  unsigned int yp=1;
272  if(geom->Plane(0)->View()==geo::kY){xp=1;yp=0;}
273 
274  for(unsigned int xx = 0; xx < geom->Plane(xp)->Ncells();xx++){
275  Double_t cellXYZ[3]={0,0,0};
276  geom->Plane(xp)->Cell(xx)->GetCenter(cellXYZ);
277  double mind = fabs(cellXYZ[0]-evtVtx[0]);
278  if(mind<=dminx){
279  dminx=mind;
280  vtxXCell = xx;
281  }
282  }
283 
284  for(unsigned int yy = 0; yy < geom->Plane(yp)->Ncells();yy++){
285  Double_t cellXYZ[3]={0,0,0};
286  geom->Plane(yp)->Cell(yy)->GetCenter(cellXYZ);
287  double mind = fabs(cellXYZ[1]-evtVtx[1]);
288  if(mind<=dminy){
289  dminy=mind;
290  vtxYCell = yy;
291  }
292  }
293  }
294  }
295 // std::cout<<"In PixelMapper - Evt: Run, SubRun, Event, SubEvent "<<evt.run()<<" "<<evt.subRun()<<" "<<evt.id().event()<<" "<<iSlice<<std::endl;
296  RegPixelMap pm_evt = fProducer.CreateMapGivenVertex(*sliceCol[iSlice],
297  bound, vtxPlane, vtxXCell, vtxYCell);
298 
299 // std::cout<<"Finish fProducer.CreateMapGivenVertex **************************************************************"<<std::endl;
300 // pmCol->push_back(pm_evt);
301 // util::CreateAssn(evt, *(pmCol.get()),
302 // sliceCol[iSlice], *(assoc.get()), UINT_MAX,
303 // fClusterPMLabel);
304 
305 
306  std::vector<art::Ptr<rb::Prong>> prongs3D;
307  std::vector<art::Ptr<rb::Prong>> prongs2D;
308  std::vector<art::Ptr<rb::Shower>> showers3D;
309 // std::cout<<"fmProng2D.isValid(), fmProng3D.isValid() "<<fmProng2D.isValid()<<" "<<fmProng3D.isValid()<<std::endl;
310  if(fProngInput==true && fmProng2D.isValid() ){
311  prongs2D = fmProng2D.at(iSlice);
312  }
313  if(fProngInput==false && fmTrack2D.isValid() ){
314  std::vector<art::Ptr<rb::Track> > tracks2D;
315  tracks2D.clear();
316  tracks2D = fmTrack2D.at(iSlice);
317  for (unsigned int ip=0; ip<tracks2D.size(); ++ip){
318  prongs2D.push_back(tracks2D[ip]);
319  }
320  }
321 
322  if(fProngInput==true && fmProng3D.isValid() ){
323  prongs3D = fmProng3D.at(iSlice);
324  }
325  if(fProngInput==false && fmTrack3D.isValid() ){
326  std::vector<art::Ptr<rb::Track> > tracks3D;
327  tracks3D.clear();
328  tracks3D = fmTrack3D.at(iSlice);
329  for (unsigned int ip=0; ip<tracks3D.size(); ++ip){
330  prongs3D.push_back(tracks3D[ip]);
331  }
332  }
333 
334  if(!prongs3D.empty()){
335  unsigned int pngId = 0;
336  art::FindOneP<rb::Shower> fmShower3D(prongs3D, evt, fShowerLabel);
337  for(unsigned int iPng = 0; iPng < prongs3D.size(); ++iPng){
338  if(fmShower3D.isValid()){
339  art::Ptr<rb::Shower> slid = fmShower3D.at(pngId);
340  if(slid){
341  showers3D.push_back(slid);
342  }
343  }
344  pngId++;
345  }
346  }else continue;
347  if(prongs3D.size()!=showers3D.size()) continue;
348 
349 // std::cout<<"prongs3D.size(), prongs2D.size, shower3D.size() "<<prongs3D.size()<<" "<<prongs2D.size()<<" "<<showers3D.size()<<std::endl;
350 // RegPixelMap pm_evt_sh = fProducer.CreateMapGivenVertex(showers3D,
351 // bound, vtxPlane, vtxXCell, vtxYCell);
352 // pmCol->push_back(pm_evt_sh);
353  pmCol->push_back(pm_evt);
354  util::CreateAssn(evt, *(pmCol.get()),
355  sliceCol[iSlice], *(assoc.get()), UINT_MAX,
357 
358  for( unsigned int iProng = 0; iProng < showers3D.size(); ++iProng ){
359 // std::cout<<"CreateMapGivenBoundary 3D Prong, NCell, NPlane "<<prongs3D[iProng]->NCell()<<" "<<prongs3D[iProng]->ExtentPlane()<<std::endl;
360 // std::cout<<"CreateMapGivenBoundary 3D Shwoer, NCell, NPlane "<<showers3D[iProng]->NCell()<<" "<<showers3D[iProng]->ExtentPlane()<<std::endl;
361 // std::cout<<"vtxPlane, vtxXCell, vtxYCell "<<vtxPlane<<" "<<vtxXCell<<" "<<vtxYCell<<std::endl;
362  RegPixelMap new_pm = fProducer.CreateMapGivenShowerVertex(*showers3D[iProng],
363  bound, vtxPlane, vtxXCell, vtxYCell);
364 
365 
366  prong_pmCol->push_back(new_pm);
367  util::CreateAssn(evt, *(prong_pmCol.get()),
368  prongs3D[iProng], *(prong_assoc.get()), UINT_MAX, fProngPMLabel);
369  }// 3D prongs
370 
371  for( unsigned int iProng2 = 0; iProng2 < prongs2D.size(); ++iProng2 ){
372 
373  // make prong maps with the same boundary as the slice maps
374  RegPixelMap new_pm = fProducer.CreateMapGivenBoundary(*prongs2D[iProng2],
375  bound);
376 
377  prong_pmCol->push_back(new_pm);
378  util::CreateAssn(evt, *(prong_pmCol.get()),
379  prongs2D[iProng2], *(prong_assoc.get()), UINT_MAX, fProngPMLabel);
380  }// 2D prongs
381 
382  }// MapProngs
383 
384  }
385  evt.put(std::move(pmCol), fClusterPMLabel);
386  evt.put(std::move(prong_pmCol), fProngPMLabel);
387  evt.put(std::move(assoc));
388  evt.put(std::move(prong_assoc));
389  // evt.put(std::move(prong_assoc),fProng3DLabel);
390 
391  }
static bool CreateAssn(art::EDProducer const &prod, art::Event &evt, std::vector< T > &a, art::Ptr< U > b, art::Assns< T, U > &assn, size_t indx=UINT_MAX, std::string const &instance=std::string())
Create a 1 to 1 association between a new product and one already in the event.
void GetCenter(double *xyz, double localz=0.0) const
Definition: CellGeo.cxx:159
Double_t xx
Definition: macro.C:12
bool getByToken(ProductToken< PROD > const &, Handle< PROD > &result) const
Definition: DataViewImpl.h:462
bool fProngInput
Use Prong or Track as input.
std::string fClusterPMLabel
Instance lablel for cluster pixelmaps.
const CellGeo * Cell(int icell) const
Definition: PlaneGeo.h:48
std::vector< std::string > fPreselectionLabels
Filter labels.
unsigned int Ncells() const
Number of cells in this plane.
Definition: PlaneGeo.h:43
std::string fProng3DLabel
Instance lablel for input 3D prongs.
TString ip
Definition: loadincs.C:5
RegPixelMapProducer fProducer
PixelMapProducer does the work for us.
const PlaneGeo * Plane(unsigned int i) const
Horizontal planes which measure Y.
Definition: PlaneGeo.h:29
std::string fProng2DLabel
Instance lablel for input 2D prongs.
Boundary Bound() const
Map boundary.
Definition: RegPixelMap.h:39
RegPixelMap CreateMapGivenBoundary(const rb::Cluster &cluster, const Boundary &bound)
View_t View() const
Which coordinate does this plane measure.
Definition: PlaneGeo.h:53
RegPixelMap CreateMapGivenShowerVertex(const rb::Shower &shower, const Boundary &bound, unsigned int vtxPlane, unsigned int vtxXCell, unsigned int vtxYCell)
bool fMapProngs
Option to save maps for prongs.
void push_back(Ptr< U > const &p)
Definition: PtrVector.h:435
std::string fTrack2DLabel
Instance lablel for input 2D tracks.
bool IsFiltered(const art::Event &evt, art::Ptr< T > x, const std::vector< std::string > &labels)
Is this Ptr marked "filtered out"?
Definition: FilterList.h:96
const double j
Definition: BetheBloch.cxx:29
double GetY(int dcm=1, int feb=0, int pix=0)
Definition: PlotOnMon.C:119
std::string fProngPMLabel
Instance lablel for prong pixelmaps.
unsigned short fMinClusterHits
Minimum number of hits for cluster to be converted to pixel map.
bool fObeyPreselection
Check rb::IsFiltered?
size_type size() const
Definition: PtrVector.h:302
RegPixelMap CreateMapGivenVertex(const rb::Cluster &cluster, const Boundary &bound, unsigned int vtxPlane, unsigned int vtxXCell, unsigned int vtxYCell)
std::string fShowerLabel
Instance lablel for Regression CVN input Shower.
A Cluster with defined start position and direction.
Definition: Prong.h:19
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
void geom(int which=0)
Definition: geom.C:163
const art::ProductToken< std::vector< rb::Cluster > > fClusterToken
Module lablel for input clusters.
std::string fTrack3DLabel
Instance lablel for input 3D tracks.
std::string fProngModLabel
Module lablel for input prongs.
RegPixelMap CreateMap(const rb::Cluster &slice)
Build slid::LID objects to store electron ID, if asked for, otherwise, calculate LID info and make av...
Definition: FillPIDs.h:13
unsigned int NPlanes() const
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:730
double GetX(int ndb=14, int db=1, int feb=0, int pix=0)
Definition: PlotOnMon.C:111
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  )
inherited
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited
std::string art::EDProducer::workerType ( ) const
inherited

Member Data Documentation

unsigned short cvn::RegCVNMapper::fCellWidth
private

Width of pixel map in cells.

Definition at line 112 of file RegCVNMapper_module.cc.

std::string cvn::RegCVNMapper::fClusterPMLabel
private

Instance lablel for cluster pixelmaps.

Definition at line 93 of file RegCVNMapper_module.cc.

Referenced by produce(), and RegCVNMapper().

const art::ProductToken<std::vector<rb::Cluster> > cvn::RegCVNMapper::fClusterToken
private

Module lablel for input clusters.

Definition at line 68 of file RegCVNMapper_module.cc.

Referenced by produce().

bool cvn::RegCVNMapper::fMapProngs
private

Option to save maps for prongs.

Definition at line 99 of file RegCVNMapper_module.cc.

Referenced by produce().

unsigned int cvn::RegCVNMapper::fMaxPlaneGap
private

Maximum gap in planes at front of cluster to prevent pruning of upstream hits

Definition at line 119 of file RegCVNMapper_module.cc.

unsigned short cvn::RegCVNMapper::fMinClusterHits
private

Minimum number of hits for cluster to be converted to pixel map.

Definition at line 109 of file RegCVNMapper_module.cc.

Referenced by produce().

bool cvn::RegCVNMapper::fObeyPreselection
private

Check rb::IsFiltered?

Definition at line 102 of file RegCVNMapper_module.cc.

Referenced by produce().

unsigned short cvn::RegCVNMapper::fPlaneLength
private

Length of pixel map in planes.

Definition at line 115 of file RegCVNMapper_module.cc.

std::vector<std::string> cvn::RegCVNMapper::fPreselectionLabels
private

Filter labels.

Definition at line 105 of file RegCVNMapper_module.cc.

Referenced by produce().

RegPixelMapProducer cvn::RegCVNMapper::fProducer
private

PixelMapProducer does the work for us.

Definition at line 125 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fProng2DLabel
private

Instance lablel for input 2D prongs.

Definition at line 80 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fProng3DLabel
private

Instance lablel for input 3D prongs.

Definition at line 77 of file RegCVNMapper_module.cc.

Referenced by produce().

bool cvn::RegCVNMapper::fProngInput
private

Use Prong or Track as input.

Definition at line 71 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fProngModLabel
private

Module lablel for input prongs.

Definition at line 74 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fProngPMLabel
private

Instance lablel for prong pixelmaps.

Definition at line 96 of file RegCVNMapper_module.cc.

Referenced by produce(), and RegCVNMapper().

std::string cvn::RegCVNMapper::fShowerLabel
private

Instance lablel for Regression CVN input Shower.

Definition at line 90 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fTrack2DLabel
private

Instance lablel for input 2D tracks.

Definition at line 86 of file RegCVNMapper_module.cc.

Referenced by produce().

std::string cvn::RegCVNMapper::fTrack3DLabel
private

Instance lablel for input 3D tracks.

Definition at line 83 of file RegCVNMapper_module.cc.

Referenced by produce().

bool cvn::RegCVNMapper::fUseGeV
private

true=GeV, false=PECorr

Definition at line 122 of file RegCVNMapper_module.cc.


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