68 produces< std::vector<sim::SimEnergyDeposit> >();
75 fNtEdepAna = tfs->
make<TNtuple>(
"nt_edep_ana",
"Edep PosDiff Ana Ntuple",
"energy:orig_x:orig_y:orig_z:orig_el:orig_ph:shift_x:shift_y:shift_z:shift_el:shift_ph");
80 lar::providerFrom<detinfo::DetectorPropertiesService>(),
82 lar::providerFrom<spacecharge::SpaceChargeService>());
90 lar::providerFrom<detinfo::DetectorPropertiesService>(),
92 lar::providerFrom<spacecharge::SpaceChargeService>());
100 auto sce = lar::providerFrom<spacecharge::SpaceChargeService>();
102 std::unique_ptr< std::vector<sim::SimEnergyDeposit> >
103 outEdepVecPtr(
new std::vector<sim::SimEnergyDeposit>() );
104 auto & outEdepVec(*outEdepVecPtr);
108 auto const& inEdepVec(*inEdepHandle);
110 outEdepVec.reserve(inEdepVec.size());
114 for(
auto const&
edep : inEdepVec){
115 if(sce->EnableSimSpatialSCE()){
116 posOffsetsStart = sce->GetPosOffsets({
edep.StartX(),
edep.StartY(),
edep.StartZ()});
117 posOffsetsEnd = sce->GetPosOffsets({
edep.EndX(),
edep.EndY(),
edep.EndZ()});
125 (
float)(
edep.StartY()+posOffsetsStart.Y()),
126 (
float)(
edep.StartZ()+posOffsetsStart.Z())},
128 (
float)(
edep.EndY()+posOffsetsEnd.Y()),
129 (
float)(
edep.EndZ()+posOffsetsEnd.Z())},
137 outEdepVec.back().X(),outEdepVec.back().Y(),outEdepVec.back().Z(),
138 outEdepVec.back().NumElectrons(),outEdepVec.back().NumPhotons());
144 e.
put(std::move(outEdepVecPtr));
Store parameters for running LArG4.
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Vector_t
Type for representation of momenta in 3D space.
void Initialize(const detinfo::LArProperties *larp, const detinfo::DetectorProperties *detp, const sim::LArG4Parameters *lgp, const spacecharge::SpaceCharge *sce)
void produce(art::Event &e) override
void CalculateIonizationAndScintillation(sim::SimEnergyDeposit const &edep)
ShiftEdepSCE(fhicl::ParameterSet const &p)
ShiftEdepSCE & operator=(ShiftEdepSCE const &)=delete
ProductID put(std::unique_ptr< PROD > &&product)
double NumberScintillationPhotons() const
#define DEFINE_ART_MODULE(klass)
T * make(ARGS...args) const
double NumberIonizationElectrons() const
larg4::ISCalcSeparate fISAlg
bool getByLabel(std::string const &label, std::string const &productInstanceName, Handle< PROD > &result) const
contains information for a single step in the detector simulation
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< double >, ROOT::Math::GlobalCoordinateSystemTag > Point_t
Type for representation of position in physical 3D space.