BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnVSPHitProducer.cxx
Go to the documentation of this file.
1
#include "
BmnVSPHitProducer.h
"
2
3
#include "
BmnVSPHit.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
BmnVSPHitProducer::BmnVSPHitProducer
()
16
{
17
fInputBranchName
=
"VSPPoint"
;
18
fOutputHitsBranchName
=
"BmnHit"
;
19
fOutputVSPHitMatchesBranchName
=
"BmnVSPHitMatch"
;
20
}
21
22
BmnVSPHitProducer::~BmnVSPHitProducer
() {}
23
24
InitStatus
BmnVSPHitProducer::Init
()
25
{
26
27
cout <<
" BmnVSPHitProducer::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(
"BmnVSPHit"
,
"VSP"
,
fBmnHitsArray
,
kTRUE
);
37
38
fBmnVSPHitMatchesArray
=
new
TClonesArray
(
"BmnMatch"
);
39
ioman->Register(
fOutputVSPHitMatchesBranchName
,
"VSP"
,
fBmnVSPHitMatchesArray
,
kTRUE
);
40
41
TString
gPathConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
42
gPathConfig +=
"/parameters/vsp/XMLConfigs/"
;
43
VSPStationSet
=
new
BmnVSPStationSet
(gPathConfig +
"VSP_Run9.xml"
);
44
45
return
kSUCCESS;
46
}
47
48
void
BmnVSPHitProducer::Exec
(
Option_t
* opt)
49
{
50
51
fBmnHitsArray
->Delete();
52
fBmnVSPHitMatchesArray
->Delete();
53
54
if
(!
fBmnPointsArray
) {
55
Error
(
"BmnVSPHitProducer::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
* VSPPoint = (
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 = VSPPoint->
GetXIn
() + dX;
73
const
Float_t
y_smeared = VSPPoint->
GetYIn
() + dY;
74
const
Float_t
z_smeared = VSPPoint->
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(kVSP, TVector3(x_smeared,
79
// 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
(
VSPStationSet
->GetPointStationOwnership(VSPPoint->
GetZIn
()));
83
84
BmnMatch
*
match
=
new
((*fBmnVSPHitMatchesArray)[
fBmnVSPHitMatchesArray
->GetEntriesFast()])
BmnMatch
();
85
match
->AddLink(100.0, iPoint);
86
87
delete
rand_gen;
88
}
89
}
90
91
void
BmnVSPHitProducer::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
BmnVSPHitProducer::fOutputVSPHitMatchesBranchName
TString fOutputVSPHitMatchesBranchName
Definition
BmnVSPHitProducer.h:43
BmnVSPHitProducer::fBmnHitsArray
TClonesArray * fBmnHitsArray
Output array of VSP Hits.
Definition
BmnVSPHitProducer.h:52
BmnVSPHitProducer::fInputBranchName
TString fInputBranchName
Definition
BmnVSPHitProducer.h:40
BmnVSPHitProducer::fBmnPointsArray
TClonesArray * fBmnPointsArray
Input array of VSP Points.
Definition
BmnVSPHitProducer.h:46
BmnVSPHitProducer::fBmnVSPHitMatchesArray
TClonesArray * fBmnVSPHitMatchesArray
Output array of VSP Hit Matches.
Definition
BmnVSPHitProducer.h:55
BmnVSPHitProducer::Init
virtual InitStatus Init()
Virtual method Init.
Definition
BmnVSPHitProducer.cxx:24
BmnVSPHitProducer::Exec
virtual void Exec(Option_t *opt)
Virtual method Exec.
Definition
BmnVSPHitProducer.cxx:48
BmnVSPHitProducer::~BmnVSPHitProducer
virtual ~BmnVSPHitProducer()
Destructor.
Definition
BmnVSPHitProducer.cxx:22
BmnVSPHitProducer::fOutputHitsBranchName
TString fOutputHitsBranchName
Definition
BmnVSPHitProducer.h:42
BmnVSPHitProducer::VSPStationSet
BmnVSPStationSet * VSPStationSet
Definition
BmnVSPHitProducer.h:57
BmnVSPHitProducer::BmnVSPHitProducer
BmnVSPHitProducer()
Default constructor.
Definition
BmnVSPHitProducer.cxx:15
BmnVSPHitProducer::Finish
virtual void Finish()
Virtual method Finish.
Definition
BmnVSPHitProducer.cxx:91
BmnVSPHitProducer::fMCTracksArray
TClonesArray * fMCTracksArray
Input array of MC Tracks.
Definition
BmnVSPHitProducer.h:49
BmnVSPStationSet
Definition
BmnVSPStationSet.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
BmnVSPHitProducer.h
BmnVSPHit.h
TMath
match
Definition
BmnMwpcTrackFinder.cxx:27
detectors
vsp
BmnVSPHitProducer.cxx
Generated on
for BmnRoot by
1.17.0