Fork me on GitHub

source: git/README_EIC.md@ 66cf877

Last change on this file since 66cf877 was 66cf877, checked in by Stephen Sekula <sekula@…>, 4 years ago

Add instructions for the EIC PID code

  • Property mode set to 100644
File size: 2.4 KB
Line 
1# EIC DELPHES Instructions
2
3## Introduction
4
5The Electron-Ion Collider User Community has been studying the effects of detector technology choices on physics potential for the EIC. The Particle ID group has created standalone PID performance classes the assess the behavior of specific technologies, geometries, etc. To integrate this into DELPHES simulation, follow these instructions.
6
7## Code
8
9* First, make sure you use the DELPHES fork maintained by Stephen Sekula:
10
11```
12git clone git@github.com:stephensekula/delphes.git
13```
14
15* Next, you need to check out the PID code into the delphes/external/ folder. For now, take this code from the fork also maintained by Stephen Sekula (it's been updated to allow linking and compiling using C++ compilers, rather than just running as macros in ROOT)
16
17```
18cd delphes/external/
19git clone git@gitlab.com:stephensekula/pid.git
20cd -
21```
22
23* Now you can compile DELPHES as usual:
24
25```
26make -j
27```
28
29## EICPIDDetector Class
30
31This class allows you to construct multiple PID detectors, each drawing its performance information from a class in the PID package. The setup is configured in TCL. You pass the module a list of smeared tracked, and it returns a list of tracks with the Candidate.PID data member altered. See below for usage information.
32
33Here is an example of configuring the mRICH detector:
34
35```
36set ExecutionPath {
37 # Declare all your core modules. Then:
38 mRICHPID
39
40 TreeWriter
41}
42
43
44module EICPIDDetector mRICHPID {
45 set InputArray HCal/eflowTracks
46 set OutputArray tracks
47
48 ##
49 ## mRICH Settings
50 ##
51 set DetectorName mRICH
52 # Pizel size in mm
53 set PixelSize 3.0
54 # Track resolution, in dp/p
55 set TrackResolution 0.00175
56 # Time resolution in ns
57 set TimeResolution 1.0
58
59 # K-Pi separation
60 add Hypotheses {321} {211}
61}
62
63module TreeWriter TreeWriter {
64 # Add all the core branches, then add this:
65 add Branch mRICHPID/tracks mRICHTrack Track
66}
67```
68
69You will now have in your output Delphes TTree a list of tracks called ```mRICHTrack``` whose PID data member has been modified from the original input track. Instead of storing one number (a PDG ID), it stores two 16-bit numbers concatenated together. The lowest 16 bits are the reconstructed identity of the track, determined from the PID detector. The highest 16 bits are the original identity of the track ("truth information"). You can retrieve the two numbers in C++ like so:
70
71```
72// True PID
73(Track.PID & 0xffff0000) >> 16)
74// Reco. PID
75(Track.PID & 0xffff)
76```
Note: See TracBrowser for help on using the repository browser.