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
NumSigmaPid.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file NumSigmaPid.h
1
9
#ifndef INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H
10
#define INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H
11
12
#include "
eicsmear/smear/Smearer.h
"
13
#include "
PID.h
"
14
15
// Based on https://gitlab.com/preghenella/pid
16
17
// A smearer needs to implement
18
// virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&) = 0;
19
// And it has an Acceptance object.
20
21
22
23
// Hello PID Fans:
24
//
25
// This is the base class for a simple set of objects that
26
// are used to evaluate various detector technology choices for the EIC.
27
//
28
// The idea is simple. Regardless of PID detector technology choice
29
// one must be able to answer some simple questions. This virtual base class
30
// organizes the method of asking and answering these simple questions to
31
// allow for efficient and apples-to-apples comparisons.
32
//
33
// The base class requires that any derived class procide responses to several queries:
34
// -- valid (double eta, double p );
35
// -- numSigma(double eta, double p, numSigmaPid::type PID);
36
// -- maxP (double eta, double numSigma, numSigmaPid::type PID);
37
// -- minP (double eta, double numSigma, numSigmaPid::type PID);
38
// -- name ();
39
//
40
// Here numSigmaPid::type is an enumerated constant set allowing one to choose pi-vs-k or k-vs-p etc...
41
//
42
// The detector types that inherit from numSigmaPid will clearly have parameters that define their
43
// performance and these are expected to be arguments of the constructor of those derived classes.
44
// For example:
45
// numSigmaPid* tof = new tofBarrel(radius, etaLow, etaHigh, sigmaT);
46
//
47
//
48
49
#include <string>
50
#include <memory>
51
52
namespace
Smear {
53
57
class
NumSigmaPid
:
public
Smearer
{
58
public
:
62
NumSigmaPid
();
63
67
virtual
~NumSigmaPid
() {}
68
72
void
Smear
(
const
erhic::VirtualParticle
&,
ParticleMCS
&);
73
78
void
SetNumSigmaType
(
const
int
i );
79
84
int
GetNumSigmaType
( )
const
;
85
88
NumSigmaPid
*
Clone
(
const
char
* =
""
)
const
;
89
92
bool
valid
(
double
eta
,
double
p
)
const
;
93
96
double
maxP
(
double
eta
,
double
numSigma,
PID::type
PID
)
const
;
97
100
double
minP
(
double
eta
,
double
numSigma,
PID::type
PID
)
const
;
101
104
std::string
name
()
const
;
105
108
void
description
()
const
;
109
110
protected
:
111
std::shared_ptr<PID>
ThePidObject
;
112
int
NumSigmaType
=-1;
113
PID::type
EnumType
;
114
};
115
116
}
117
#endif // INCLUDE_EICSMEAR_SMEAR_NUMSIGMAPID_H
118
eic-smear
blob
master
include
eicsmear
smear
NumSigmaPid.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:32
using
1.8.2 with
EIC GitHub integration