BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
readCorrections.C
Go to the documentation of this file.
1
#include <
Rtypes.h
>
2
#include <
TChain.h
>
3
#include <
TClonesArray.h
>
4
#include <
TFile.h
>
5
#include <
TString.h
>
6
#include <
TTree.h
>
7
#include <
TVector3.h
>
8
R__ADD_INCLUDE_PATH
($VMCWORKDIR)
9
#include "macro/run/bmnloadlibs.C"
10
R__LOAD_LIBRARY
(libBmnAlignment.so)
11
12
void
ReadFileCorrections
(FILE*,
BmnGemStripStationSet
*,
TString
,
Double_t
***);
13
14
void
readCorrections
(
TString
in =
""
)
15
{
16
bmnloadlibs();
// load BmnRoot libraries
17
18
TString
gPathGemConfig =
gSystem
->Getenv(
"VMCWORKDIR"
);
19
20
TString
siConf =
"SiliconRunSpring2018.xml"
;
21
TString
gemConf =
"GemRunSpring2018.xml"
;
22
23
BmnGemStripStationSet
*
GEM
=
new
BmnGemStripStationSet
(gPathGemConfig +
"/parameters/gem/XMLConfigs/"
+ gemConf);
24
BmnSiliconStationSet
* SI =
new
BmnSiliconStationSet
(gPathGemConfig +
"/parameters/silicon/XMLConfigs/"
+ siConf);
25
26
const
Int_t
nStatGEM =
GEM
->GetNStations();
27
const
Int_t
nStatSI = SI->
GetNStations
();
28
29
FILE* file = fopen(
"obtainedCorrections.dat"
,
"w"
);
30
31
const
Int_t
nParams = 3;
32
33
Double_t
*** corrGEM =
new
Double_t
**[nStatGEM];
34
for
(
Int_t
iStat = 0; iStat < nStatGEM; iStat++) {
35
Int_t
nModul =
GEM
->GetGemStation(iStat)->GetNModules();
36
corrGEM[iStat] =
new
Double_t
*[nModul];
37
for
(
Int_t
iMod = 0; iMod < nModul; iMod++) {
38
corrGEM[iStat][iMod] =
new
Double_t
[nParams];
39
for
(
Int_t
iPar = 0; iPar < nParams; iPar++) {
40
corrGEM[iStat][iMod][iPar] = 0.;
41
}
42
}
43
}
44
ReadFileCorrections
(file,
GEM
, in, corrGEM);
45
fclose(file);
46
}
47
48
void
ReadFileCorrections
(FILE* file,
BmnGemStripStationSet
*
GEM
,
TString
fname,
Double_t
*** corrGEM)
49
{
50
if
(fname ==
""
)
51
return
;
52
53
TChain
* chGEM =
new
TChain
(
"cbmsim"
);
54
chGEM->
Add
(fname.
Data
());
55
56
TClonesArray
* corrsGEM = NULL;
57
chGEM->
SetBranchAddress
(
"BmnGemAlignCorrections"
, &corrsGEM);
58
59
for
(
Int_t
iEntry = 0; iEntry < chGEM->
GetEntries
(); iEntry++) {
60
chGEM->
GetEntry
(iEntry);
61
62
for
(
Int_t
iCorr = 0; iCorr < corrsGEM->
GetEntriesFast
(); iCorr++) {
63
BmnGemAlignCorrections
* alignGEM = (
BmnGemAlignCorrections
*)corrsGEM->
UncheckedAt
(iCorr);
64
corrGEM[alignGEM->
GetStation
()][alignGEM->
GetModule
()][0] = alignGEM->
GetCorrections
().
X
();
65
corrGEM[alignGEM->
GetStation
()][alignGEM->
GetModule
()][1] = alignGEM->
GetCorrections
().
Y
();
66
corrGEM[alignGEM->
GetStation
()][alignGEM->
GetModule
()][2] = alignGEM->
GetCorrections
().
Z
();
67
}
68
}
69
70
for
(
Int_t
iStat = 0; iStat <
GEM
->GetNStations(); iStat++)
71
for
(
Int_t
iMod = 0; iMod <
GEM
->GetGemStation(iStat)->GetNModules(); iMod++)
72
for
(
Int_t
iPar = 0; iPar < 3; iPar++)
73
fprintf(file,
"Stat %d Mod %d Par %d %G\n"
, iStat, iMod, iPar, corrGEM[iStat][iMod][iPar]);
74
75
cout << endl;
76
delete
chGEM;
77
}
GEM
@ GEM
Definition
BmnLambdaEmbeddingQa.h:48
Int_t
int Int_t
Double_t
double Double_t
Rtypes.h
R__LOAD_LIBRARY
#define R__LOAD_LIBRARY(LIBRARY)
R__ADD_INCLUDE_PATH
#define R__ADD_INCLUDE_PATH(PATH)
TChain.h
TClonesArray.h
TFile.h
TString.h
gSystem
R__EXTERN TSystem * gSystem
TTree.h
TVector3.h
BmnAlignCorrections::GetCorrections
TVector3 GetCorrections()
Definition
BmnAlignCorrections.h:39
BmnGemAlignCorrections
Definition
BmnGemAlignCorrections.h:13
BmnGemAlignCorrections::GetStation
Int_t GetStation()
Definition
BmnGemAlignCorrections.h:25
BmnGemAlignCorrections::GetModule
Int_t GetModule()
Definition
BmnGemAlignCorrections.h:27
BmnGemStripStationSet
Definition
BmnGemStripStationSet.h:15
BmnSiliconStationSet
Definition
BmnSiliconStationSet.h:14
BmnSiliconStationSet::GetNStations
Int_t GetNStations()
Definition
BmnSiliconStationSet.h:35
TChain
TChain::SetBranchAddress
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=nullptr)
TChain::Add
virtual Int_t Add(const char *name, Long64_t nentries=TTree::kMaxEntries)
TChain::GetEntries
Long64_t GetEntries() const override
TChain::GetEntry
Int_t GetEntry(Long64_t entry=0, Int_t getall=0) override
TClonesArray
TObjArray::GetEntriesFast
Int_t GetEntriesFast() const
TObjArray::UncheckedAt
TObject * UncheckedAt(Int_t i) const
TString
TString::Data
const char * Data() const
TVector3::Z
Double_t Z() const
TVector3::Y
Double_t Y() const
TVector3::X
Double_t X() const
readCorrections
void readCorrections(TString in="")
Definition
readCorrections.C:14
ReadFileCorrections
void ReadFileCorrections(FILE *, BmnGemStripStationSet *, TString, Double_t ***)
Definition
readCorrections.C:48
install
macro
alignment
instruments
readCorrections.C
Generated on
for BmnRoot by
1.17.0