UVic's TPC Project

Timeline Downloads Images Links


A Time Projection Chamber (TPC) has been proposed as the central tracking device for the Large Detector Concept (LDC) of the International Collider (ILC). This page documents some of the work being done at the University of Victoria. There is a simulation written using the Mokka framework which models the drift of electrons deposited by primary particles in the TPC. There is also pieces of a collaborative reconstructive framework MarlinTPC.

There already exists a piece of software called JTPC that can model the ionization trail of a particle through the tpc. The goal of this part of the project is to utilize the code of JTPC as a model to simulate the TPC in the Mokka framework and add a non-homogeneous magnetic field. Mokka is based on the Geant4 software simulation which is very good at modeling high energy physical processes. Unfortunately drifting electrons have pretty low energy and there are a large number of particles created. We intend to keep the simulation inside of Mokka but take an approach similar to JTPC.

How it works

  1. Create the TPC: the driver TPCUVic creates the geometry layout bases on a geometry description in the Mokka database. A sensitive detector (TPCSDUVic) is added to the gas chamber.
  2. Create the Electron Clouds: the simulation uses Geant4 to determine how much energy is deposited in the gas chamber by an ionizing particle. This energy is transformed into electrons which are grouped together into clouds.
  3. Transport the electron clouds: there is a class ElectronCloudTransportation that is responsible for moving the clouds and simulating the effects of two GEMs. The electromagnetic field is not taken into account (right now movement is controlled by a velocity parameter).
  4. Create the signals: after the clouds have been transported to the readout geometry they are pulled apart and single electrons are deposited on pads. Once every clouds has been transported a shaped signal is created based on a formula developed by Paul Poffenberger.
  5. Analyse the signal: after the signals have been created they will be digitized and then outputted in a file for analysis.

Rough Project Timeline

  • Geant4 installed
  • MOKKA installed
  • MySQL local database setup
  • simulation support libraries installed (LCIO, etc)
Pre 2006
  • NetBeans installed
  • Studied G4 and Mokka framework
Jan 16th 2006
  • Created ElectronCloud class
  • Created ElectronCloudTransport class
  • Created TPCGCSD class (gas chamber sensitive detector)
  • Project split into two parts: one for the electron cloud approach, the other one for a single electron approach
Jan 23rd 2006
  • Installed GEAR
  • Started integration of GEAR into our framework
Jan 26th 2006
  • Installed MARLIN
  • Installed MarlinReco
  • Installed GSL
  • Replaced TPCGCSD with TRKSD01
  • ElectronCloudTransport now increases the deviation of the cloud during transportation. Still no support for GEMs
  • Wrote ReadoutPadSD01 to write the hits to an LCIO file
Feb 3rd 2006
  • Mokka + Gear are linked.
  • Marlin packages are linked.
Feb 7th 2006
  • Implemented a new pad layout in GEAR
  • Installed CED
Feb 10th 2006
Feb 21st 2006


MarlinED: download
A modified version of CED which is an event display for Marlin. This is a first version which starts to move from C to C++. It is also multithreaded and uses the XGL X windows extension for optional remote connections.

GEAR (v00-02)
The class RectangularPadArrayLayout. The documentation can be built by running command tools/ant cpp.doc from the GEAR base directory.
The class TPCParamtersXML. The documentation can also be built using the above method.
The program testgearxml. This was used for testing the new pad layout.
Modified GEAR Makefile for building the geartestxml binary.
A gear xml file gear_ilc.xml that describes a pretend ILC pad layout.
All modified GEAR files.
  • extract archives in the $GEAR/src/cpp directory

Mokka (v06-03.p02)
Everything related to Mokka.
  • extract archives into the Mokka/source directory
  • geant 4 Low Energy Data and GEAR are required to build these modifications

Mokka (v05-05)
The class ElectronCloud. This class stores the needed information about a cloud of electrons. It it not much more than a struct.
The classElectronCloudTransport. This "moves" the electron clouds through the different parts of the TPC. Right now it does not support any fields and the GEMs are not simulated.
The class ReadoutPadSD01. This class represents the readout pads near the end of the TPC. Because G4 is not used in the transportation of the electron clouds an extra method called "ForceHit" was created to get this sensitive detector to receive hits from the ElectronCloudTransport. This is also responsible for creating the output LCIO collection.
The class TPCUvic01. This class creates a TPC with no gas layers. It also supports the static method of getting access to the readout geometry sensitive detector needed by the TRKSD01
The classTRKSD01. This class is responsible for creating the electron clouds depending on the amount of energy deposited in the gas.
All changes and classes related to Mokka.
  • extract archives into the Mokka/source directory
  • geant 4 Low Energy Data, GEAR and the GSL are required to build these modifications


A fake pad geometry with colourful signals drawn with MarlinED (a modified version of CED)

A for fun picture of an electron in the tpc with a strong magnetic field

A picture of the coordinate system in the simulation (I think at least)

The generic parameters defined for a TPC in the GEAR file

Raw track data generated from Mokka
single colour pads - about 2000 were hit in this picture

The TPC viewed in CED with Marlin. The semi-transparent circle is the pad layout.

A close-up of the representation of the TrackerPulse data reproduced in Marlin


Similar Projects

Mokka @ Uvic
Linear Collider Simulation Software
Group Aachen ILC TPC

Support Software

Geant4 /docs

DESY ILC Software

MARLIN /Reco /Util