sπritroot - michigan state university · 2015-06-19 · big picture •fairsoft -all the necessary...
TRANSCRIPT
SπRITROOTGenie Jhang, Yassid Ayyad and Jung Woo Lee
for the SπRIT collaboration 2015. 6. 5
Big picture
• FairSoft - All the necessary packages collected to run FairRoot
- Designed to be installed on both Linux and OS X
- Included packages:
✴ gtest, gsl, boost, Pythia6, Pythia8, HepMC, GEANT3, GEANT4, XRootD, Pluto, ROOT, VGM, VMC, Millepede, ZeroMQ, Protocol Buffers, nanomsg
- RAVE, CLHEP, and GENFIT2 packages added for SπRITROOT (customized version)
• FairRoot
- A framework containing base classes for running simulation, reconstruction and analysis
• SπRITROOT - A framework containing specific modules for SπRIT experiment on top of FairRoot
- Composed of task-based modules, TGeo geometry and steering macro
- SπRITROOT is written by following the structure of FOPIROOT1)
2
1) M. Ball et al., Technical Design Study for the PANDA Time Projection Chamber, http://arxiv.org/abs/1207.0013
Task-based Module
3
Task
In
Out
• ASCII • GRAW • ROOT • An object on memory (TClonesArray✴)
• ROOT • An object on memory (TClonesArray)
• Easy to turn on and off.
• Easy to debug and maintain.
✴ TClonesArray is a container class provided in ROOT which can be stored in ROOT file.
4
MC Generation
Digitization Reconstruction Analysis
Simulation data flow
Experimental Data
SπRITROOT
Experimental data flow
STConverter
Schematics of SπRITROOT
MC Generation• Detector geometry used in MC is written with TGeo classes in ROOT.
- https://github.com/SpiRIT-Collaboration/SPiRITROOT/blob/develop/SPiRIT/geometry/geomSPiRIT.C
• GEANT4 is used to generate MC data.
• Program runs with a ROOT simple macro.
5
OutputSTMCPoint
MC Generation
6
STMCPoint- position vector - energy loss - hit time
Energy loss
• In both cases GEANT4 result well matches to TRIM/LISE++ result.
• Maximum % difference of dE/dx - proton: 1.97 % , alpha: 1.16 %
7
Kinetic energy (MeV)0 50 100 150 200 250 300 350 400
dE/d
x (M
eV/m
m)
0
0.0005
0.001
0.0015
0.002
0.0025
0.003
0.0035
0.004
0.0045
0.005
proton (TRIM/LISE++)
RITROOT)πproton (S
Kinetic energy (MeV)0 50 100 150 200 250 300 350 400
dE/d
x (M
eV/m
m)
0
0.01
0.02
0.03
0.04
0.05
alpha (TRIM/LISE++)
RITROOT)πalpha (S
-310
-210
-110
Drift length (mm)0 50 100 150 200 250 300 350 400 450
Rad
ial d
iffus
ion
(mm
)
0
1
2
3
4
5
6 Sigma
Digitization
8
Drift Task Electronics TaskPad Response Task
STMCPoint
• Using the diffusion constants calculated with Garfield, calculate the drift time corresponding to the distance from ground wire to the hit point.
• Determine the nearest anode wire to apply the pad response function.
STDriftedElectron
e-
e-
Electric Field
Diffusion
Anode wire
Ground wire
Gating grid wire
Digitization
9
Drift Task Electronics TaskPad Response Task
STDriftedElectron
• Pad response function describes the induced charge by the avalanche electrons.The function is calculated using Gatti distribution.
P (�) =K1
K2pK3
harctan
pK3 tanh
⇣K2
⇣�+
w
2h
⌘⌘� arctan
pK3 tanh
⇣K2
⇣�� w
2h
⌘⌘i
STRawEvent
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
z (mm)20− 15− 10− 5− 0 5 10 15 20
x (m
m)
20−
15−
10−
5−
0
5
10
15
20
e-
pad response function
row (x) layer (z)
1)
1) NIM A270 (1998) 602
Time buckets140 160 180 200 220 240
ADC
cha
nnel
0
100
200
300
400
500
600
700
800
900
row #54, layer #36Electron signal
GET electronics signal
row #54, layer #36Simulation result
Digitization
10
Time buckets90 100 110 120 130 140 150
ADC
cha
nnel
0
500
1000
1500
2000
2500
3000 Electron signal
GET electronics signal
HIMAC pulser data
Drift Task Electronics TaskPad Response Task
STRawEvent STRawEvent
• Average pulse shape is obtained from HIMAC pulser data.
• Pulse height is set to be the same as the number of amplified electrons.
Digitization
11
Drift Task Electronics TaskPad Response Task
DigitizationSTRawEvent STRawEventSTDriftedElectronSTMCPoint
• Code
Experimental Data (Setup)
CoBo
CoBo
· ·
·
AGET
AGET
AGET
AGET
AsAd
AsAd
AsAd
AsAd
AsAd
AsAd
AsAd
AsAd
· ·
·
DAQ Servers
• 1 AsAd has 4 AGET chips. • An AGET chip handles 64 channels.
• To cover 108 x 112 = 12,096 pads, we use • 48 AsAd boards • 12 Cobos
• NARVAL is used for merging data from multiple CoBos.
SπRIT-TPC
12
Experimental Data (GRAW file, binary)
13
• Full readout mode • Zero-suppresion mode
One AsAd data
Multiple AsAds merged data
Only for additional information
STConverter
14
GETDecoder •Decodes GRAW file into a C++ object • Pedestal subtraction using the nearest FPN channels
STCore
•Using map data and frames from GETDecoder,create a STRawEvent object all channels mapped corresponding pad position.
STMap
STRawEvent
• Code
STConverter
15
origin
Layer (0 ~ 111)
Row (0 ~ 107)
• Coordinates convention (Top view)
Pad Coordinate
z (beam direction)
x (beam left)
Hit Coordinate
STConverter
16
• AsAd mapping 0 1 2 3
00
01
02
03
04
05
06
07
08
09
10
11
UA105
- Represented with 3 digit number. - 1st digit: Layer direction number
- 2nd and 3rd digits: Row direction number
Reconstruction
17
• Pulse shape analysis - Average pulse shape is obtained from HIMAC pulser data.
- For all cases, charge is recorded by the pulse height.
PSAMode 0
Time buckets0 100 200 300 400 500
ADC
cha
nnel
0
50
100
150
200
250
300
350
• Code
• Two simple methods for test - PSAMode 0 finds the highest pulse only in each pad
- PSAMode 1 searches all the peaks in each pad.
PSAMode 1
Time buckets0 100 200 300 400 500
ADC
cha
nnel
0
50
100
150
200
250
300
350
Reconstruction
18
• Pulse shape analysis - Average pulse shape is obtained from HIMAC pulser data.
- For all cases, charge is recorded by the pulse height.
PSAMode 2
Time buckets0 100 200 300 400 500
ADC
cha
nnel
0
50
100
150
200
250
300
350
• Code
• PSAMode2 - searches every peak in every pad
- collects (tb, ADC) points between 5 % to 95 % of each peak
- fits those points with least-square-fit to obtain hit time for each peak
- from the peak pad, it calculates center of charge with neighboring pads(This will be separated to Clustering Task later.)
Reconstruction
19
Found����������� ������������������ 249����������� ������������������ tracklets����������� ������������������ out����������� ������������������ of����������� ������������������ 80����������� ������������������ produced����������� ������������������ charged����������� ������������������ particles
• Riemann Tracking (preliminary)
Same-colored����������� ������������������ dots����������� ������������������ are����������� ������������������ recognized����������� ������������������ as����������� ������������������ one����������� ������������������ tracklet.
Summary
• FairROOT is well structured framework for an experiment.
• SπRITROOT is written on top of FairROOT.
• All the stages (MC generation, digitization and reconstruction) are working and need to be tuned.
Download link of this slide: http://goo.gl/VQNh1G
20
Appendix I Packages in FairSoft
FairSoft• gtest
- https://code.google.com/p/googletest/
22
Appendix II Pedestal Subtraction Method
24
25
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
500
1000
1500
2000
2500
3000
3500
AGET 0
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 1
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 2
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 3CoBo 0 - AsAd 0 - Frame 0 - Event 0
Ch 11 (FPN)
Ch 4 (normal)
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
500
1000
1500
2000
2500
3000
3500
AGET 0
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 1
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 2
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 3CoBo 0 - AsAd 0 - Frame 0 - Event 0
26
You can see here the mismatch of baselines.
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
500
1000
1500
2000
2500
3000
3500
AGET 0
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 1
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 2
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 3CoBo 0 - AsAd 0 - Frame 0 - Event 0
27
To match the baselines, calculate mean and RMS of 3 ~ 12 tbs.
Mean: 3791, RMS: 1.12
Mean: 3800, RMS: 2.32
If RMS of either channel is above 5, calculate mean and RMS of next 10 tbs until it finds suitable section. i.e. 13 ~ 22 tbs. 23 ~ 32 tbs, and so on.
9
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
500
1000
1500
2000
2500
3000
3500
AGET 0
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 1
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 2
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 3CoBo 0 - AsAd 0 - Frame 0 - Event 0
28
Subtract Ch 4 from Ch 11 - 9 for all tbs.baseline matching!
9
29
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 0
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 1
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 2
Time Bucket0 100 200 300 400 500
ADC
Cha
nnel
0
500
1000
1500
2000
2500
3000
3500
4000
AGET 3CoBo 0 - AsAd 0 - Frame 0 - Event 0
Final Result!(Sub-zero values after subtraction remain.)
30