Neutron-Calibration-in-DUNE / Arrakis

LArSoft module for creating training data for ML tasks.
GNU General Public License v3.0
0 stars 0 forks source link

Arrakis

Arrakis is a LArSoft module for creating training data for ML tasks.

Table of Contents

  1. Installing Arrakis
  2. Using Arrakis
  3. Data Products

Installing Arrakis

Currently, Arrakis can only be installed by cloning this repository and compiling it with LArSoft. This can be done easily by using the associated LArSoftArrakis repository. To include in your own local LArSoft install, clone this repository into one of the larsoft or dune namespace products,

/local_larsoft_dir/srcs/<namespace>/:$ git clone https://github.com/Neutron-Calibration-in-DUNE/Arrakis

Then, you'll have to edit the CMakeLists.txt in the namespace directory to include the lines,

add_subdirectory(Arrakis)

We are currently working to make Arrakis part of a LArSoft namespace.

Using Arrakis

LArSoft Configuration

There are several FHiCL parameters that must be specified at run time. These include the Producer and Instance labels for the various products that Arrakis uses. Other required parameters are the names of the various generators that are used in the simulation. Both of these are shown below from the Arrakis.fcl file,

LArGeantProducerLabel:          "largeant"
SimEnergyDepositProducerLabel:  "IonAndScint"
SimEnergyDepositInstanceLabel:  "priorSCE"
SimChannelProducerLabel:        "tpcrawdecoder"
SimChannelInstanceLabel:        "simpleSC"
RawDigitProducerLabel:          "tpcrawdecoder"
RawDigitInstanceLabel:          "daq"
OpDetWaveformProducerLabel:     "opdigi"

GeneratorLabels: 
{
    Ar39Label:          "Ar39" 
    Ar42Label:          "Ar42"
    Kr85Label:          "Kr85"
    Rn222Label:         "Rn222"
    BeamLabel:          "Beam"
    CosmicsLabel:       "Cosmics"
    HEPevtLabel:        "HEPevt"
    PNSLabel:           "PNS"
}

Arrakis operates in two modes, "simulation" and "data". This parameter, together with setting which products to process are shown below,

# which products for the wrangler to handle
ProcessType:                "simulation"  # simulation, data
ProcessMCTruth:             true
ProcessMCParticles:         true
ProcessSimEnergyDeposits:   true
ProcessSimChannels:         true
ProcessRawDigits:           true
ProcessOpDetWaveforms:      true

You can also specify which data products to save from Arrakis,

# which products to save
SaveMeta:                       true    # save meta information 
SaveGeometry:                   true    # save geometry information
SaveSimulationWrangler:         false   # save simulation wrangler maps
SaveEnergyDepositPointCloud:    true    # save energy deposit point cloud data
SaveWirePlaneHits:              true    # save wire plane hits data
SaveWirePlanePointCloud:        true    # save wire plane point cloud data
SaveWirePlaneTrackTopology:     true    # save wire plane track topology data
SaveOpDetPointCloud:            true    # save optical detector point cloud data

Data Products

Simulation Wrangler

Energy Deposit Point Clouds

Wire Plane Hits

Wire Plane Point Clouds

Wire Plane Track Topology

Op Det Point Clouds