RAT Simulation and Analysis Tool (Most slides stolen from Stan Seibert)

35
RAT Simulation and Analysis Tool (Most slides stolen from Stan Seibert)

Transcript of RAT Simulation and Analysis Tool (Most slides stolen from Stan Seibert)

RAT Simulation and Analysis Tool

(Most slides stolen from Stan Seibert)

Brief Happy Life• Created by Stan Seibert as first full

`hit-level’ Monte Carlo for Braidwood

• Quickly adopted by Collaboration as primary simulation and analysis tool

• Many contributions from KSU, Oxford, Chicago, Columbia, MIT

• Being used now for DEAP/CLEAN, SNO+, CLEAR, possibly other expts.

Design Goals• Complete simulation of particle

propagation, detector optics, and DAQ across all energy regimes

• Reuse as many ideas and as much code from others as possible.

• Break down analysis into small tasks that can be implemented by many people.

• Design for production analysis of both Monte Carlo and real data.

• Provide easy, understandable documentation for users and programmers

Reuse is good! GEANT4 - Monte Carlo simulation of detectors and

physical processes ROOT - Object I/O to disk or over network. GLG4sim - Generic Liquid Scintillator GEANT4

simulation, written and maintained by Glenn Horton-Smith from the KamLAND collaboration.

SNOMAN - SNO Monte Carlo and ANalysis. Provided design inspiration, but no code.

Monte Carlo Features• Generate single and multiparticle

events, and interleave events of different types

• Includes optical, EM, and hadronic processes.

• Includes PMT and DAQ simulations (experiment-dependent)

• Several event visualization options (they keep getting better)

Seibert

Code Distribution

• Distributed and running at ~20(?) Institutions, a few different collaborations• Development ongoing at nearly all• Various scientific linux versions, MAC-OS, BULinux…• `RatCage’ provides out-of-the-box installation

Seibert

How it all fits together:

RATGLG4sim

RO

OT

GEANT4

CLH

EP

The Concept

Gsim Trigger Fit To Disk . . .

Event DataStructures

Event Producer

Event Loop

Processors

Seibert

User Interface• Command Line

• Macro files to control settings:/glg4debug/glg4param omit_muon_processes 1.0/glg4debug/glg4param omit_hadronic_processes 1.0/run/initialize

/rat/proc/simpledaq/rat/proc count/rat/procset update 5/rat/proc outroot/rat/procset file "test.root"

/generator/add combo gun:point/generator/gun gamma 0 0 0 1.022

/run/beamOn 100

Seibert

Detector Geometry: Config

• Using text files, you can:– Add arbitrary new volumes of predefined shapes– Control materials, dimensions– Repetition of volumes in simple ways

• Must write some C++ to:– Make arbitrary new shapes– Repeated volumes with fancy layouts

All C

++

All T

ext File

s

GLG4sim

SNOMAN

RAT

GDML

Detector Geometry

• Detector materials and geometric construction loaded from RATDB

• User-editable without writing new code (within limits)

• Override parameters in macros

J. Nikkel

Seibert

NOTE: RATDB now being updated to use MINOS-style database

Seibert

The Event Data StructureRAT_DS

RAT_MCRAT_MCParticle RAT_MCParticle

RAT_MCPMT RAT_MCPMT RAT_MCPMT

RAT_EV RAT_EV RAT_EV

RAT_MCTrigger RAT_MCTrigger

RAT_PMT RAT_PMT RAT_PMT

RAT_PosFit RAT_PosFit

RAT_EFit RAT_EFit (Abridged)

Seibert

Seibert

DAQ Simulation

Front End

Trigger

Event Builder

Generate PMT pulses from photoelectronsDecide if channel is above thresholdIntegrate and sample

Sum up “trigger pulses” from channels above thresholdCompute NHIT triggers

Populate detector events with (eventually digitized) samples

DEAP/CLEAN version has full Waveform digitization

Event Generators• Single particle “gun”

– Directed or isotropic

• Inverse beta decay and ES electrons

• Calibration sources (e.g. LEDs)

• Arbitrary events from HEPEVT format text file

e+

p

e+

n

+many more

“User” Processors• Users can write new processors

and link them into a custom version of RAT

• No need for each user to have their own copy of RAT source

• Turning a user processor into an “official” processor for inclusion in source tree is very easy.

• See user/ directory in RAT tree for skeleton processor to edit.

I/O Options

• Store entire events to ROOT files.• Reload events from disk back into

the event loop.• Send events through the network

between RAT processes.• Prune unneeded parts to save

space.

RATDB

• Parameters, material properties, other “constants”

• Organize integers, floats/doubles, strings, and arrays into “tables of fields”

• Validity ranges• Users can override the

database in their macro files

• Multiple backends possible (SQL?), only text file for now

DAQ: lockout: 390, nhit_width: 10, …

GEO[av]: type: “sphere”, mother: “buffer”, …

User Plane

Default Plane

Time Plane

Table

Fields

NOTE: RATDB now being updated to use MINOS-style database

Seibert

Infrastructure

• Unit testing with CxxTesthttp://cxxtest.sourceforge.net/

• Website:– User-updatable manuals, howtos, FAQs – Browse syntax-highlighed source code– Timeline of source code changes with diffs– Bug tracking– Build testing results for Linux, Solaris, Mac

OS X

Automated Build Testing

Verification with SNO

E.W. Beier

A 100kTon H2O Detector// A 100 kton light water Cherenkov detector// The centre of the inner vessel is at 0,0,0 in the world coordinate frame// Largely to blame: Andy Mastbaum, [email protected]// -------- THE WORLD! :D{name: "GEO",index: "world",valid_begin: [0, 0],valid_end: [0, 0],mother: "", // world volume has no mothertype: "box",size: [70000.0, 70000.0, 70000.0], // mm, half-lengthmaterial: "rock",color: [0.67, 0.29, 0.0],invisible: 1,}

{name: "GEO",index: "target_water",valid_begin: [0, 0],valid_end: [0, 0],optimize: 0, // toggle voxel optmization: fast start, slow per eventmother: "vessel",type: "tube",r_max: 23500.0,size_z: 60000.0,position: [0.0, 0.0, 0.0],rotation: [0.0, 0.0, 0.0],material: "lightwater_sno",color: [0.6, 0.9, 1.0, 0.01],invisible: 1,}

A 100kTon H2O Detector

// 50 kiloPMTs, 400 around, stacked uniformly 125 PMTs high.// Tons of clearance vertically, circumferentially, you get 14.2" arc length per PMT{name: "PMTlocations",valid_begin : [0, 0],valid_end : [0, 0],mother: "target_water",type: "pmtarray",optimize: 0,pmt_type: "r5912",sensitive_detector: "/mydet/pmt/inner",orientation: "point",orient_point: [0.0, 0.0, 0.0],x : [23033.94, 23030.10, 23021.58, 23007.37, 22987.49, 22961.94, 22930.72…y : [ 0.00, 361.79, 723.48, 1085.00, 1446.25, 1807.14, 2167.59…z : [-29523.84, -29523.84, -29523.84, -29523.84, -29523.84, -29523.84, -29523.84…}

A 100kTon H2O DetectorSome example 5 MeV electron Cherenkov vertices

A. Mastbaum

Considerations

• RAT is flexible and is nearly `fully functional’ simulation• Also has lots of data-ready infrastructure• Generic enough that could turn into our own package• Distribution and QC are already-solved problems• (Most `annoyances’ already taken care of) • Very nice set of simple analysis tools already exist• Very well set up to test detector geometries, DAQs• Very easy to get going quickly and add code, do analysis• Support from other collaborations would be very helpful

Upsides

Considerations

• Currently no ~GeV simulations have been run• Still needs interface to NUANCE or similar xs simulation• And anything else beyond GEANT4• No `high energy’ analysis tools (e.g., reconstruction)• Currently would be very slow: need to voxelize PMTs, etc.• Would have to support without much effort from Seibert unless LANL low E group gets involved

Downsides

Considerations

• Worth exploring now• More worthwhile to think as a long-term solution• Should ask Deap/Clean and/or SNO+ for code• Would jumpstart simulation/analysis development• But need some 50%+ people to work on it

Recommendations