Implementation of BeamCal in Mokka
Alexandra Popescu, Aura Rosca
West University of Timisoara
FCAL Collaboration Meeting
6-7 May, Krakow, Poland
7.05.2008 2
Overview
• BeamCal: functionality and structure
• Detector construction
• Sensitive detectors
• Summary
7.05.2008 3
BeamCalCompact EM calorimeter with a sandwich structure:
• 30 layers of 1X0: 3.5 mm absorber and 0.3 mm sensor
• Angular coverage: ~5-45 mrad
• Situated at 3450 mm from the IP
Purposes:
• Provide electron and photon identification down to polar angles of a few mrad
• Protect the inner part of the detector by reducing backscattering from inner parts
• Assisting beam diagnostics
7.05.2008 4
Mokka implementation
• Create a local copy of the central database
• Construct the geometry of the detector
• Define the sensitive detectors
7.05.2008 5
Geometry construction
• Drivers: C++ code
• Databases: MySQL database
• Sub-detectors: a combination of drivers and databases
7.05.2008 6
Drivers• A class which inherits from VSubDetectorDrivers class
class BeamCal00: public VSubDetectorDriver
• The actual construction of the geometry is made by the ContextualConstruct invoked by the geometry manager
G4bool ContextualConstruct(const CGAGeometryEnvironment &env, G4LogicalVolume *worldLog);
• To be available the driver has to be created using the INSTANTIATE macro available in “CGADefs.h”
#include "CGADefs.h"INSTANTIATE(BeamCal00)
7.05.2008 7
Geometry data model“models03” database is composed of several tables:
• detector_concept• ingredients• model• model_parameters• parameters• scripts• setup• setup_parameters• sharing• sub_detector• tmp_databases
7.05.2008 8
Geometry data model
model
name
description
detector_concept
model_status
sub_detector
id
name
db
driver
description
ingredients
id
model
sub_detector
build_order
sharing
driver
parameter
driver_default_value
7.05.2008 9
DatabaseCreate a database, using a MySQL script, with the relevant geometry parameters for the detector
CREATE DATABASE `beamcalX01_14`;USE beamcalX01_14;DROP TABLE IF EXISTS `beamcal`;CREATE TABLE `beamcal`(`Rinner` double default NULL,`Router` double default NULL,`sPhi` double default NULL,`dPhi` double default NULL,`nWafers` double default NULL,`BPmaxR` double default NULL);INSERT INTO `beamcal` (Rinner, Router, sPhi, dPhi, nWafers,
BPmaxR) VALUES (20., 150., 200., 320., 8., 67.);
10
Connect the driver and the database to form a sub-detector:
Geometry constructionsub_detector
id
name
db
driver
description
• name: BeamCal
• driver: BeamCal00
• database: beamcalX01
Create a detector model that uses this sub-detector:
ingredients
id
model
sub_detector
build_order
• model: LDC01_05Sc
• sub_detector: BeamCal
Make the relevant geometry parameters known to the driver:
sharing
driver
parameter
driver_default_value
• driver: BeamCal00
• parameter: ILC_Main_Crossing_Angle (default value is 14 mrad)
model
name
description
detector_concept
model_status
7.05.2008 11Graphite (100 mm)Air gap Diamond
Kapton GoldTungsten
Pair monitor
BeamCal Geometry
7.05.2008 12
Backward region
BeamCal GeometrySegmentation:
• 17 ring (r)
• 8 sectors (phi)
• 140 cells/sector
~ 8mm
7.05.2008 13
Sensitive detector
• Hit class(es)- CalHit (the generic hit class for calorimeters)
- TRKHit (implements a simple hit for the tracking devices)
• Hit collection
• Sensitive detector class- has to inherit from the abstract class VSensitiveDetector
• Register the sensitive detector object using the RegsiterSensitiveDetector() method
7.05.2008 14
Hits
Forward region Backward region
7.05.2008 15
Simulation studies
RM=11.8 ±0.4 mm
7.05.2008 16
Summary
• Implemented in Mokka a realistic description of BeamCal’s geometry
• Moliere Radius = 11.8 mm (preliminary result)
• LC TOOLS note in progress