LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
Public Types | |
using | ModuleType = EDProducer |
using | WorkerType = WorkerT< EDProducer > |
template<typename UserConfig , typename KeysToIgnore = void> | |
using | Table = ProducerBase::Table< UserConfig, KeysToIgnore > |
Public Member Functions | |
ShowerReco (fhicl::ParameterSet const &pset) | |
virtual | ~ShowerReco () |
void | beginJob () |
void | beginRun (art::Run &run) |
void | reconfigure (fhicl::ParameterSet const &pset) |
void | produce (art::Event &evt) |
void | GetVertexAndAnglesFromCluster (art::Ptr< recob::Cluster > clust, unsigned int plane) |
void | Get2DVariables (art::PtrVector< recob::Hit > hitlist) |
void | LongTransEnergy (unsigned int set, std::vector< art::Ptr< recob::Hit > > hitlist, bool isData=false) |
template<typename PROD , BranchType B = InEvent> | |
ProductID | getProductID (std::string const &instanceName={}) const |
template<typename PROD , BranchType B> | |
ProductID | getProductID (ModuleDescription const &moduleDescription, std::string const &instanceName) const |
bool | modifiesEvent () 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_t & | createEngine (seed_t seed) |
base_engine_t & | createEngine (seed_t seed, std::string const &kind_of_engine_to_make) |
base_engine_t & | createEngine (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< Consumer > | non_module_context () |
Protected Member Functions | |
CurrentProcessingContext const * | currentContext () const |
void | validateConsumedProduct (BranchType const bt, ProductInfo const &pi) |
void | prepareForJob (fhicl::ParameterSet const &pset) |
void | showMissingConsumes () const |
Private Member Functions | |
void | ClearandResizeVectors (unsigned int nPlanes) |
Private Attributes | |
int | fRun |
int | fEvent |
int | fSubRun |
float | slope [3] |
float | angle [3] |
std::string | fClusterModuleLabel |
float | ftimetick |
double | xyz_vertex [3] |
double | totCnrg |
double | totCnrg_corr |
double | fMean_wire_pitch |
fhicl::ParameterSet | fCaloPSet |
std::vector< double > | fRMS_2cm |
std::vector< int > | fNpoints_2cm |
std::vector< double > | fCorr_MeV_2cm |
std::vector< double > | fCorr_Charge_2cm |
std::vector< int > | fNpoints_corr_ADC_2cm |
std::vector< int > | fNpoints_corr_MeV_2cm |
std::vector< double > | fTotChargeADC |
std::vector< double > | fTotChargeMeV |
std::vector< double > | fTotChargeMeV_MIPs |
std::vector< double > | fChargeADC_2cm |
std::vector< double > | fChargeMeV_2cm |
std::vector< double > | fChargeMeV_2cm_refined |
std::vector< double > | fChargeMeV_2cm_axsum |
std::vector< std::vector< double > > | fDistribChargeADC |
std::vector< std::vector< double > > | fDistribChargeMeV |
std::vector< std::vector< double > > | fDistribHalfChargeMeV |
std::vector< std::vector< double > > | fDistribChargeposition |
std::vector< std::vector< double > > | fSingleEvtAngle |
std::vector< std::vector< double > > | fSingleEvtAngleVal |
std::vector< unsigned int > | fWire_vertex |
std::vector< double > | fTime_vertex |
std::vector< double > | fWire_vertexError |
std::vector< double > | fTime_vertexError |
std::vector< unsigned int > | fWire_last |
std::vector< double > | fTime_last |
std::vector< double > | xyz_vertex_fit |
std::vector< std::vector< double > > | fNPitch |
float | Kin_En |
std::vector< float > | vdEdx |
std::vector< float > | vresRange |
std::vector< float > | vdQdx |
std::vector< float > | deadwire |
float | Trk_Length |
float | fTrkPitchC |
float | fdEdxlength |
float | fcalodEdxlength |
bool | fUseArea |
double | xphi |
double | xtheta |
unsigned int | fTPC |
unsigned int | fNPlanes |
unsigned int | fNAngles |
TTree * | ftree_shwf |
double | fWirePitch |
double | fTimeTick |
double | fDriftVelocity |
double | fWireTimetoCmCm |
std::vector< int > | fNhitsperplane |
std::vector< double > | fTotADCperplane |
art::ServiceHandle< geo::Geometry > | geom |
const detinfo::DetectorProperties * | detprop = lar::providerFrom<detinfo::DetectorPropertiesService>() |
Definition at line 79 of file ShowerReco_module.cc.
|
inherited |
Definition at line 34 of file EDProducer.h.
|
inherited |
Definition at line 43 of file EDProducer.h.
|
inherited |
Definition at line 35 of file EDProducer.h.
|
explicit |
METHODS global
Definition at line 212 of file ShowerReco_module.cc.
References reconfigure().
|
virtual |
|
virtual |
Destructor
Get Geometry
Get TFileService and define output Histograms
All-knowing tree with reconstruction information
Reimplemented from art::EDProducer.
Definition at line 250 of file ShowerReco_module.cc.
References detprop, fChargeADC_2cm, fChargeMeV_2cm, fChargeMeV_2cm_axsum, fChargeMeV_2cm_refined, fDistribChargeADC, fDistribChargeMeV, fDistribChargeposition, fDistribHalfChargeMeV, fEvent, fMean_wire_pitch, fNAngles, fNhitsperplane, fNPitch, fNPlanes, fNpoints_2cm, fRMS_2cm, fRun, fSubRun, ftimetick, fTotADCperplane, fTotChargeADC, fTotChargeMeV, fTotChargeMeV_MIPs, ftree_shwf, art::TFileDirectory::make(), geo::GeometryCore::Nplanes(), detinfo::DetectorProperties::SamplingRate(), geo::GeometryCore::WirePitch(), xphi, xtheta, and xyz_vertex_fit.
|
virtual |
Reimplemented from art::EDProducer.
Definition at line 333 of file ShowerReco_module.cc.
References detprop, detinfo::DetectorProperties::DriftVelocity(), detinfo::DetectorProperties::Efield(), fChargeADC_2cm, fChargeMeV_2cm, fChargeMeV_2cm_axsum, fChargeMeV_2cm_refined, fCorr_Charge_2cm, fCorr_MeV_2cm, fDistribChargeADC, fDistribChargeMeV, fDistribChargeposition, fDistribHalfChargeMeV, fDriftVelocity, fNAngles, fNhitsperplane, fNPitch, fNPlanes, fNpoints_2cm, fNpoints_corr_ADC_2cm, fNpoints_corr_MeV_2cm, fRMS_2cm, fTime_last, fTime_vertex, fTime_vertexError, fTimeTick, fTotADCperplane, fTotChargeADC, fTotChargeMeV, fTotChargeMeV_MIPs, fWire_last, fWire_vertex, fWire_vertexError, fWirePitch, fWireTimetoCmCm, geom, detinfo::DetectorProperties::SamplingRate(), detinfo::DetectorProperties::Temperature(), vdEdx, vdQdx, vresRange, geo::GeometryCore::WirePitch(), and xyz_vertex_fit.
|
private |
Referenced by produce().
|
inherited |
|
inherited |
Definition at line 147 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 162 of file Consumer.h.
|
inherited |
|
inherited |
Definition at line 172 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 26 of file EngineCreator.cc.
References art::EngineCreator::rng().
Referenced by evgen::CosmicsGen::CosmicsGen(), rndm::NuRandomService::createEngine(), cluster::fuzzyCluster::fuzzyCluster(), cluster::HoughLineFinder::HoughLineFinder(), art::MixFilter< T >::initEngine_(), larg4::LArG4::LArG4(), evgen::LightSource::LightSource(), evgen::NeutronOsc::NeutronOsc(), evgen::NucleonDecay::NucleonDecay(), opdet::OpMCDigi::OpMCDigi(), opdet::OptDetDigitizer::OptDetDigitizer(), phot::PhotonLibraryPropagation::PhotonLibraryPropagation(), detsim::SimDriftElectrons::SimDriftElectrons(), evgen::SingleGen::SingleGen(), evgen::SNNueAr40CCGen::SNNueAr40CCGen(), ToyOneShowerGen::ToyOneShowerGen(), and trkf::Track3DKalman::Track3DKalman().
|
inherited |
Definition at line 32 of file EngineCreator.cc.
References art::EngineCreator::rng().
|
inherited |
Definition at line 40 of file EngineCreator.cc.
References art::EngineCreator::rng().
|
protectedinherited |
void shwf::ShowerReco::Get2DVariables | ( | art::PtrVector< recob::Hit > | hitlist | ) |
|
inherited |
Definition at line 49 of file EngineCreator.cc.
References fhicl::ParameterSet::get().
Referenced by art::MixFilter< T >::initEngine_().
|
inlineinherited |
|
inherited |
Definition at line 56 of file ProducerBase.h.
References B, and art::ModuleDescription::moduleLabel().
Referenced by art::ProducerBase::modifiesEvent().
void shwf::ShowerReco::GetVertexAndAnglesFromCluster | ( | art::Ptr< recob::Cluster > | clust, |
unsigned int | plane | ||
) |
Actual routine that reconstruct the shower
Definition at line 1089 of file ShowerReco_module.cc.
References angle, DEFINE_ART_MODULE, recob::Cluster::EndTick(), recob::Cluster::EndWire(), fTime_last, fTime_vertex, fTime_vertexError, fWire_last, fWire_vertex, fWire_vertexError, recob::Cluster::SigmaStartTick(), recob::Cluster::SigmaStartWire(), slope, recob::Cluster::StartAngle(), recob::Cluster::StartTick(), and recob::Cluster::StartWire().
Referenced by produce().
void shwf::ShowerReco::LongTransEnergy | ( | unsigned int | set, |
std::vector< art::Ptr< recob::Hit > > | hitlist, | ||
bool | isData = false |
||
) |
third loop to get only points inside of 1RMS of value.
Definition at line 847 of file ShowerReco_module.cc.
References calo::CalorimetryAlg::dEdx_AMP(), calo::CalorimetryAlg::dEdx_AREA(), fcalodEdxlength, fCaloPSet, fChargeMeV_2cm, fChargeMeV_2cm_refined, fCorr_MeV_2cm, fdEdxlength, fDistribChargeMeV, fDistribChargeposition, fNPitch, fNPlanes, fNpoints_2cm, fNpoints_corr_MeV_2cm, fRMS_2cm, fTime_vertex, fTotChargeADC, fTotChargeMeV, fTrkPitchC, fUseArea, fWire_vertex, fWireTimetoCmCm, geom, util::GeometryUtilities::Get2DDistance(), util::GeometryUtilities::GetPointOnLine(), geo::kCollection, Kin_En, geo::kMysteryType, recob::Hit::PeakTime(), util::GeometryUtilities::PitchInView(), geo::PlaneID::Plane, geo::GeometryCore::SignalType(), slope, totCnrg, totCnrg_corr, Trk_Length, vdEdx, vdQdx, vresRange, geo::WireID::Wire, recob::Hit::WireID(), xphi, and xtheta.
Referenced by produce().
|
inherited |
|
inherited |
Definition at line 190 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inherited |
Definition at line 205 of file Consumer.h.
|
inherited |
|
inherited |
Definition at line 215 of file Consumer.h.
References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().
|
inlineinherited |
Definition at line 40 of file ProducerBase.h.
References art::ProducerBase::getProductID().
|
staticinherited |
Definition at line 76 of file Consumer.cc.
Referenced by art::RootOutput::beginSubRun(), art::OutputModule::doBeginRun(), art::OutputModule::doBeginSubRun(), art::OutputModule::doEndRun(), art::OutputModule::doEndSubRun(), art::ProducingService::doPostReadEvent(), art::ProducingService::doPostReadRun(), art::ProducingService::doPostReadSubRun(), art::OutputModule::doWriteEvent(), art::ProcessPackage< L >::postScheduleSignal(), art::BeginEndPackage< Level::Run >::Begin::postScheduleSignal(), art::BeginEndPackage< Level::Run >::End::postScheduleSignal(), art::BeginEndPackage< Level::SubRun >::Begin::postScheduleSignal(), art::BeginEndPackage< Level::SubRun >::End::postScheduleSignal(), art::ProcessPackage< L >::preScheduleSignal(), art::BeginEndPackage< Level::Run >::Begin::preScheduleSignal(), art::BeginEndPackage< Level::SubRun >::Begin::preScheduleSignal(), art::EventProcessor::readEvent(), art::EventProcessor::readRun(), art::EmptyEvent::readRun_(), art::EventProcessor::readSubRun(), and art::EmptyEvent::readSubRun_().
|
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().
|
virtual |
Get Clusters
Fill the output tree with all information
Implements art::EDProducer.
Definition at line 464 of file ShowerReco_module.cc.
References angle, geo::GeometryCore::ChannelsIntersect(), ClearandResizeVectors(), util::CreateAssn(), deadwire, detprop, detinfo::DetectorProperties::DriftVelocity(), e, detinfo::DetectorProperties::Efield(), art::EventID::event(), fChargeADC_2cm, fChargeMeV_2cm, fClusterModuleLabel, fCorr_Charge_2cm, fCorr_MeV_2cm, fDriftVelocity, fEvent, fNAngles, fNhitsperplane, fNPlanes, fNpoints_2cm, fNpoints_corr_ADC_2cm, fNpoints_corr_MeV_2cm, fRMS_2cm, fRun, fSubRun, fTime_vertex, fTime_vertexError, fTimeTick, fTotADCperplane, fTotChargeADC, fTotChargeMeV, fTotChargeMeV_MIPs, ftree_shwf, fTrkPitchC, fWire_last, fWire_vertex, fWire_vertexError, geom, art::DataViewImpl::getByLabel(), GetVertexAndAnglesFromCluster(), hits(), art::Event::id(), util::kBogusD, art::Ptr< T >::key(), Kin_En, geo::PlaneGeo::LocalToWorld(), LongTransEnergy(), geo::GeometryCore::NearestWire(), geo::GeometryCore::Nplanes(), geo::origin(), geo::GeometryCore::Plane(), geo::GeometryCore::PlaneWireToChannel(), art::Event::productGetter(), art::PtrVector< T >::push_back(), art::Event::put(), art::EventID::run(), detinfo::DetectorProperties::SamplingRate(), recob::Shower::set_direction(), recob::Shower::set_direction_err(), art::PtrVector< T >::size(), art::EventID::subRun(), detinfo::DetectorProperties::Temperature(), detinfo::DetectorProperties::TriggerOffset(), Trk_Length, vdEdx, vdQdx, vresRange, xphi, xtheta, xx, xyz_vertex_fit, y, and z.
void shwf::ShowerReco::reconfigure | ( | fhicl::ParameterSet const & | pset | ) |
Definition at line 223 of file ShowerReco_module.cc.
References fcalodEdxlength, fCaloPSet, fClusterModuleLabel, fdEdxlength, fUseArea, and fhicl::ParameterSet::get().
Referenced by ShowerReco().
|
protectedinherited |
Definition at line 125 of file Consumer.cc.
Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().
|
protectedinherited |
Definition at line 101 of file Consumer.cc.
References art::errors::ProductRegistrationFailure.
|
private |
Definition at line 108 of file ShowerReco_module.cc.
Referenced by GetVertexAndAnglesFromCluster(), and produce().
|
private |
Definition at line 170 of file ShowerReco_module.cc.
Referenced by produce().
|
private |
Definition at line 194 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 174 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and reconfigure().
|
private |
Definition at line 119 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and reconfigure().
|
private |
Definition at line 133 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 134 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 137 of file ShowerReco_module.cc.
Referenced by beginJob(), and beginRun().
|
private |
Definition at line 136 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and LongTransEnergy().
|
private |
Definition at line 111 of file ShowerReco_module.cc.
Referenced by produce(), and reconfigure().
|
private |
Definition at line 124 of file ShowerReco_module.cc.
Referenced by beginRun(), and produce().
|
private |
Definition at line 123 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 173 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and reconfigure().
|
private |
Definition at line 139 of file ShowerReco_module.cc.
Referenced by beginJob(), and beginRun().
|
private |
Definition at line 140 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and LongTransEnergy().
|
private |
Definition at line 142 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and LongTransEnergy().
|
private |
Definition at line 141 of file ShowerReco_module.cc.
Referenced by beginJob(), and beginRun().
|
private |
Definition at line 186 of file ShowerReco_module.cc.
Referenced by beginRun(), and produce().
|
private |
Definition at line 104 of file ShowerReco_module.cc.
Referenced by beginJob(), and produce().
|
private |
Definition at line 118 of file ShowerReco_module.cc.
Referenced by beginJob().
|
private |
Definition at line 180 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 189 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 163 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and LongTransEnergy().
|
private |
Definition at line 179 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 122 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 126 of file ShowerReco_module.cc.
Referenced by beginRun(), and produce().
|
private |
Definition at line 127 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 121 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 104 of file ShowerReco_module.cc.
Referenced by beginJob(), and produce().
|
private |
Definition at line 144 of file ShowerReco_module.cc.
|
private |
Definition at line 145 of file ShowerReco_module.cc.
|
private |
Definition at line 104 of file ShowerReco_module.cc.
Referenced by beginJob(), and produce().
|
private |
Definition at line 155 of file ShowerReco_module.cc.
Referenced by beginRun(), and GetVertexAndAnglesFromCluster().
|
private |
Definition at line 149 of file ShowerReco_module.cc.
Referenced by beginRun(), GetVertexAndAnglesFromCluster(), LongTransEnergy(), and produce().
|
private |
Definition at line 152 of file ShowerReco_module.cc.
Referenced by beginRun(), GetVertexAndAnglesFromCluster(), and produce().
|
private |
Definition at line 113 of file ShowerReco_module.cc.
Referenced by beginJob().
|
private |
Definition at line 185 of file ShowerReco_module.cc.
Referenced by beginRun(), and produce().
|
private |
Definition at line 190 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 129 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 130 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 131 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().
|
private |
Definition at line 178 of file ShowerReco_module.cc.
|
private |
Definition at line 181 of file ShowerReco_module.cc.
Referenced by beginJob(), and produce().
|
private |
Definition at line 172 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and produce().
|
private |
Definition at line 175 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and reconfigure().
|
private |
Definition at line 154 of file ShowerReco_module.cc.
Referenced by beginRun(), GetVertexAndAnglesFromCluster(), and produce().
|
private |
Definition at line 148 of file ShowerReco_module.cc.
Referenced by beginRun(), GetVertexAndAnglesFromCluster(), LongTransEnergy(), and produce().
|
private |
Definition at line 151 of file ShowerReco_module.cc.
Referenced by beginRun(), GetVertexAndAnglesFromCluster(), and produce().
|
private |
Definition at line 184 of file ShowerReco_module.cc.
Referenced by beginRun().
|
private |
Definition at line 187 of file ShowerReco_module.cc.
Referenced by beginRun(), and LongTransEnergy().
|
private |
Definition at line 193 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 166 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and produce().
|
private |
Definition at line 107 of file ShowerReco_module.cc.
Referenced by GetVertexAndAnglesFromCluster(), and LongTransEnergy().
|
private |
Definition at line 117 of file ShowerReco_module.cc.
Referenced by LongTransEnergy().
|
private |
Definition at line 117 of file ShowerReco_module.cc.
Referenced by LongTransEnergy().
|
private |
Definition at line 171 of file ShowerReco_module.cc.
Referenced by LongTransEnergy(), and produce().
|
private |
Definition at line 167 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 169 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 168 of file ShowerReco_module.cc.
Referenced by beginRun(), LongTransEnergy(), and produce().
|
private |
Definition at line 177 of file ShowerReco_module.cc.
Referenced by beginJob(), LongTransEnergy(), and produce().
|
private |
Definition at line 177 of file ShowerReco_module.cc.
Referenced by beginJob(), LongTransEnergy(), and produce().
|
private |
Definition at line 114 of file ShowerReco_module.cc.
|
private |
Definition at line 161 of file ShowerReco_module.cc.
Referenced by beginJob(), beginRun(), and produce().