EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SmearSTAR_0_0.cxx
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file SmearSTAR_0_0.cxx
1
15
#include "
eicsmear/erhic/VirtualParticle.h
"
16
#include "
eicsmear/smear/Acceptance.h
"
17
#include "
eicsmear/smear/Device.h
"
18
#include "
eicsmear/smear/Detector.h
"
19
#include "
eicsmear/smear/Smearer.h
"
20
#include "
eicsmear/smear/ParticleMCS.h
"
21
#include "
eicsmear/smear/PerfectID.h
"
22
#include <
eicsmear/smear/Smear.h
>
23
#include <
eicsmear/erhic/ParticleMC.h
>
24
25
static
double
etaToTheta
(
const
double
eta
) {
26
TLorentzVector
v
;
27
v.SetPtEtaPhiM(1., eta, 0., 0.);
28
return
v.Theta();
29
}
30
34
static
Smear::Acceptance::Zone
makeZone
(
double
etaMin,
double
etaMax) {
35
// Note that we need to flip the order of arguments because the numerically
36
// larger eta corresponds to the minimum angle and the smaller eta to the
37
// maximum angle.
38
// e.g. for eta -1 to 1, -1 --> theta=2.4 and 1 --> theta=0.7
39
return
Smear::Acceptance::Zone
(
etaToTheta
(etaMax),
etaToTheta
(etaMin));
40
}
41
52
Smear::Detector
BuildSTAR_0_0
() {
53
// Electromagnetic calorimeter.
54
// Acceptance is valid for the BEMC (-1 < eta < 1) and EEMC (1 < eta < 2)
55
// so define a single acceptance zone -1 < eta < 2.
56
// Acceptance is defined in terms of angle (theta) not pseudorapidity (eta)
57
// so we need to convert eta -> theta.
58
Smear::Device
emCal(
Smear::kE
,
59
"0.015*E+0.14*sqrt(E)"
,
60
Smear::kElectromagnetic
);
61
emCal.
Accept
.
AddZone
(
makeZone
(-1., 2.));
62
// Tracking, comprising momentum and theta.
63
// These just span the TPC, -1 < eta < 1.
64
Smear::Device
momentum
(
Smear::kP
,
"0.005*P+0.004*P*P"
);
65
momentum.
Accept
.
SetCharge
(
Smear::kCharged
);
66
momentum.
Accept
.
AddZone
(
makeZone
(-1., 1.));
67
// See comments at the end of the file for Zhangbu's email about
68
// theta resolution.
69
Smear::Device
theta
(
Smear::kTheta
,
70
"sqrt(pow(3e-4, 2) + pow(9e-4 / P, 2) / sin(theta))"
);
71
theta.
Accept
.
SetCharge
(
Smear::kCharged
);
72
theta.
Accept
.
AddZone
(
makeZone
(-1., 1.));
73
// We don't have a parameterisation for phi, so just use a
74
// device that gives perfect resolution.
75
Smear::Device
phi
(
Smear::kPhi
,
"0"
);
76
phi.
Accept
.
SetCharge
(
Smear::kCharged
);
77
// Combine the devices into a detector.
78
Smear::Detector
star
;
79
star.
AddDevice
(emCal);
80
star.
AddDevice
(momentum);
81
star.
AddDevice
(theta);
82
star.
AddDevice
(phi);
83
star.
SetEventKinematicsCalculator
(
"NM JB DA"
);
84
return
star
;
85
}
86
87
/*
88
Here is the email from Zhangbu giving the parameterisations
89
used in the above.
90
91
92
Date: Thu, 2 Jun 2011 17:35:45 -0400
93
From: "Xu, Zhangbu" <xzb@bnl.gov>
94
To: "Aschenauer, Elke" <elke@bnl.gov>
95
Subject: theta angular resolution
96
97
Hi, Elke:
98
99
Talk to a couple of people doing the TPC calibration,
100
from drift velocity and TPC cluster uncertainties, the
101
d (theta) ~=3xe-4
102
103
I am working on the MC simulation to get the resolution
104
due to multiple scattering, this will be momentum dependent.
105
A hand calculation of the theta angular spread due to multiple
106
scattering for STAR TPC material (mainly beam pipe and inner field
107
cage ~=0.5%X0) is
108
theta0 = 13.6MeV/beta/p*sqrt(x/X0)~=0.9MeV/p,
109
So for a 2GeV/c electron, the theta angular resolution will be
110
5e-4, close to the detector resolution.
111
112
So it is probably reasonable to assume the theta angular resolution
113
to be: d(theta) = sqrt((3xe-4)**2+(0.9MeV/p)**2/sin(theta))
114
115
116
Thanks!
117
118
Zhangbu
119
*/
eicsmeardetectors
blob
master
SmearSTAR_0_0.cxx
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:37
using
1.8.2 with
EIC GitHub integration