Provide a LArSoft geometry example working with the new larg4
My attempt to figure out what it takes to use the new LArG4 package has been frustrated at the point where the detector description from the GDML source needs to be updated.
I feel that we will benefit from a real, working LArSoft full example of how to do that step, including up to running GEANT4 in LArSoft.
So I have pushed into LArCoreAlg
develop branch a geometry description, larcorealg:source:larcorealg/Geometry/gdml/MinimalLArTPCdetector.gdml and its
_nowires companion, which contains the minimal set of GDML instructions that make LArSoft geometry and presumably GEANT4 and
larg4::LArG4 module (LArSim) work properly.
I would like that simplified file to be adapted so that the rest of the community can start from there and give a try to the new LArG4.
To be clear: I am aware of the instructions on LArG4 wiki, and while I got a flavour of the required changed, the instructions proved not enough to bootstrap me into updating a LArTPC geometry file.
For reference, that geometry is the same, in LArSoft terms, as larcorealg:source:larcorealg/Geometry/gdml/LArTPCdetector.gdml, which is a MicroBooNE-like detector with TPC (1), PMTs (30), and auxiliary detectors (267). I can provide configuration files using that geometry and running the current
LArG4 module (although I failed to fully enable optical simulation so far).
#1 Updated by Lynn Garren about 2 months ago
- File test_311dp.fcl added
- File services_dune2.fcl added
- File dune_refactored.fcl added
- File 3x1x1dphase_nowires.gdml added
The people working on dual phase TPC's were able to get the full chain running and I think everything can be found in the dune repositories. I have attached the fcl and gdml file they used.
I am in the process of compiling an example that shows how to use the new workflow using a simplified liquid Argon Detector geometry. But I still have to complete some coding which completely splits the electron drift and detector response. That means the larsim:source:larsim/ElectronDrift/SimDriftElectrons_module.cc used by the example above will be split into the DriftElectronstoPlane_module.cc and another module that produces the simchannels.
Here the DriftElectronstoPlane_module will take the SimEnergyDeposits as input, drift the electrons to a surface and create the SimDriftedElectronClusters which then are the input for a new module that takes the SimDriftedElectronClusters as input and simchannels as output.
#5 Updated by Hans-Joachim Wenzel about 1 month ago
- File dune_refactored2.fcl added
Currently an example is available as part of dunetpc. It was developed by the group working on a dual-phase TPC (Jose, Bea and Paul). So to look at the example one needs to setup dunetpc. Below is what I am doing until we find a place for a more generic example.
mkdir example cd example mkdir larsim_dev cd larsim_dev source /cvmfs/fermilab.opensciencegrid.org/products/larsoft/setup setup mrb export MRB_PROJECT=larsim mrb newDev -v v08_07_00 -q e17:prof source localProducts_larsim_v08_07_00_e17_prof/setup cd srcs mrb g larsim cd $MRB_BUILDDIR mrbsetenv mrb b -j 4 unsetup cetpkgsupport source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh setup dunetpc -qe17:prof v08_20_00 wget https://cdcvs.fnal.gov/redmine/attachments/download/53755/fcl.tgz tar xzvf fcl.tgz lar -c dune_refactored.fcl
to run the module by Bill seligman which does the simdrift and injects the charge into the simchannels. (Currently this still depends on the LArG4Parameters service but we will remove this dependency)
lar -c dune_refactored2.fcl