BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnSiliconHitProducer.cxx
Go to the documentation of this file.
1
#include "
BmnSiliconHitProducer.h
"
2
3
#include "
BmnSiliconHit.h
"
4
#include "CbmMCTrack.h"
5
#include "CbmStsPoint.h"
6
#include "FairRootManager.h"
7
#include "
TCanvas.h
"
8
#include "
TH1F.h
"
9
#include "
TRandom.h
"
10
#include "
TSystem.h
"
11
12
using
std::cout;
13
using namespace
TMath
;
14
15
BmnSiliconHitProducer::BmnSiliconHitProducer
()
16
{
17
fInputBranchName
=
"SiliconPoint"
;
18
fOutputHitsBranchName
=
"BmnHit"
;
19
fOutputSiliconHitMatchesBranchName
=
"BmnSiliconHitMatch"
;
20
}
21
22
BmnSiliconHitProducer::~BmnSiliconHitProducer
() {}
23
24
InitStatus
BmnSiliconHitProducer::Init
()
25
{
26
27
cout <<
" BmnSiliconHitProducer::Init() "
<< endl;
28
29
// Get ROOT Manager
30
FairRootManager* ioman = FairRootManager::Instance();
31
32
fBmnPointsArray
= (
TClonesArray
*)ioman->GetObject(
fInputBranchName
);
33
fMCTracksArray
= (
TClonesArray
*)ioman->GetObject(
"MCTrack"
);
34
35
fBmnHitsArray
=
new
TClonesArray
(
fOutputHitsBranchName
, 100);
36
ioman->Register(
"BmnSiliconHit"
,
"SILICON"
,
fBmnHitsArray
,
kTRUE
);
37
38
fBmnSiliconHitMatchesArray
=
new
TClonesArray
(
"BmnMatch"
);
39
ioman->Register(
fOutputSiliconHitMatchesBranchName
,
"SILICON"
,
fBmnSiliconHitMatchesArray
,
kTRUE
);
40
41
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
42
gPathConfig +=
"/parameters/silicon/XMLConfigs/"
;
43
SiliconStationSet
=
new
BmnSiliconStationSet
(gPathConfig +
"SiliconRunSpring2018.xml"
);
44
45
return
kSUCCESS;
46
}
47
48
void
BmnSiliconHitProducer::Exec
(
Option_t
* opt)
49
{
50
51
fBmnHitsArray
->Delete();
52
fBmnSiliconHitMatchesArray
->Delete();
53
54
if
(!
fBmnPointsArray
) {
55
Error
(
"BmnSiliconHitProducer::Init()"
,
" !!! Unknown branch name !!! "
);
56
return
;
57
}
58
59
Float_t
err[3] = {0.03, 0.03, 0.03};
// Uncertainties of coordinates
60
// Float_t err[3] = {0.0, 0.0, 0.0}; // Uncertainties of coordinates
61
62
for
(
Int_t
iPoint = 0; iPoint <
fBmnPointsArray
->GetEntriesFast(); iPoint++) {
63
64
TRandom
* rand_gen =
new
TRandom
();
65
66
CbmStsPoint
* siliconPoint = (
CbmStsPoint
*)
fBmnPointsArray
->UncheckedAt(iPoint);
67
68
const
Float_t
dX = rand_gen->
Gaus
(0, err[0]);
69
const
Float_t
dY = rand_gen->
Gaus
(0, err[1]);
70
const
Float_t
dZ = rand_gen->
Gaus
(0, err[2]);
71
72
const
Float_t
x_smeared = siliconPoint->
GetXIn
() + dX;
73
const
Float_t
y_smeared = siliconPoint->
GetYIn
() + dY;
74
const
Float_t
z_smeared = siliconPoint->
GetZIn
() + dZ;
75
76
BmnHit
* hit =
new
((*fBmnHitsArray)[
fBmnHitsArray
->GetEntriesFast()])
77
BmnHit
(0,
TVector3
(x_smeared, y_smeared, z_smeared),
TVector3
(err[0], err[1], err[2]), iPoint);
78
// BmnHit* hit = new ((*fBmnHitsArray)[fBmnHitsArray->GetEntriesFast()]) BmnHit(kSILICON,
79
// TVector3(x_smeared, y_smeared, z_smeared), TVector3(1.0, 1.0, 0.0), iPoint);
80
hit->
SetIndex
(
fBmnHitsArray
->GetEntriesFast() - 1);
81
hit->
SetType
(1);
82
hit->
SetStation
(
SiliconStationSet
->GetPointStationOwnership(siliconPoint->
GetZIn
()));
83
84
BmnMatch
*
match
=
new
((*fBmnSiliconHitMatchesArray)[
fBmnSiliconHitMatchesArray
->GetEntriesFast()])
BmnMatch
();
85
match
->AddLink(100.0, iPoint);
86
87
delete
rand_gen;
88
}
89
}
90
91
void
BmnSiliconHitProducer::Finish
() {}
Int_t
int Int_t
Float_t
float Float_t
kTRUE
constexpr Bool_t kTRUE
Option_t
const char Option_t
TCanvas.h
Error
void Error(const char *location, const char *msgfmt,...)
TH1F.h
TRandom.h
TSystem.h
gSystem
R__EXTERN TSystem * gSystem
BmnHit
Definition
BmnHit.h:21
BmnHit::SetType
void SetType(Int_t type)
Definition
BmnHit.h:54
BmnHit::SetIndex
void SetIndex(Int_t id)
Definition
BmnHit.h:49
BmnHit::SetStation
void SetStation(Short_t st)
Definition
BmnHit.h:52
BmnMatch
Definition
BmnMatch.h:25
BmnSiliconHitProducer::fMCTracksArray
TClonesArray * fMCTracksArray
Input array of MC Tracks.
Definition
BmnSiliconHitProducer.h:49
BmnSiliconHitProducer::fBmnPointsArray
TClonesArray * fBmnPointsArray
Input array of Silicon Points.
Definition
BmnSiliconHitProducer.h:46
BmnSiliconHitProducer::SiliconStationSet
BmnSiliconStationSet * SiliconStationSet
Definition
BmnSiliconHitProducer.h:57
BmnSiliconHitProducer::~BmnSiliconHitProducer
virtual ~BmnSiliconHitProducer()
Destructor.
Definition
BmnSiliconHitProducer.cxx:22
BmnSiliconHitProducer::BmnSiliconHitProducer
BmnSiliconHitProducer()
Default constructor.
Definition
BmnSiliconHitProducer.cxx:15
BmnSiliconHitProducer::Exec
virtual void Exec(Option_t *opt)
Virtual method Exec.
Definition
BmnSiliconHitProducer.cxx:48
BmnSiliconHitProducer::fOutputSiliconHitMatchesBranchName
TString fOutputSiliconHitMatchesBranchName
Definition
BmnSiliconHitProducer.h:43
BmnSiliconHitProducer::fBmnHitsArray
TClonesArray * fBmnHitsArray
Output array of Silicon Hits.
Definition
BmnSiliconHitProducer.h:52
BmnSiliconHitProducer::fInputBranchName
TString fInputBranchName
Definition
BmnSiliconHitProducer.h:40
BmnSiliconHitProducer::Finish
virtual void Finish()
Virtual method Finish.
Definition
BmnSiliconHitProducer.cxx:91
BmnSiliconHitProducer::Init
virtual InitStatus Init()
Virtual method Init.
Definition
BmnSiliconHitProducer.cxx:24
BmnSiliconHitProducer::fOutputHitsBranchName
TString fOutputHitsBranchName
Definition
BmnSiliconHitProducer.h:42
BmnSiliconHitProducer::fBmnSiliconHitMatchesArray
TClonesArray * fBmnSiliconHitMatchesArray
Output array of Silicon Hit Matches.
Definition
BmnSiliconHitProducer.h:55
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
CbmStsPoint
Definition
CbmStsPoint.h:23
CbmStsPoint::GetXIn
Double_t GetXIn() const
Accessors.
Definition
CbmStsPoint.h:64
CbmStsPoint::GetZIn
Double_t GetZIn() const
Definition
CbmStsPoint.h:66
CbmStsPoint::GetYIn
Double_t GetYIn() const
Definition
CbmStsPoint.h:65
TClonesArray
TRandom
TRandom::Gaus
virtual Double_t Gaus(Double_t mean=0, Double_t sigma=1)
TString
TVector3
BmnSiliconHitProducer.h
BmnSiliconHit.h
TMath
match
Definition
BmnMwpcTrackFinder.cxx:27
detectors
silicon
BmnSiliconHitProducer.cxx
Generated on
for BmnRoot by
1.17.0