implementation of beamcal in mokka alexandra popescu, aura rosca west university of timisoara fcal...
TRANSCRIPT
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 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