BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
drawMultCorrSRC.C
Go to the documentation of this file.
1
R__ADD_INCLUDE_PATH
($VMCWORKDIR)
2
#include "macro/run/bmnloadlibs.C"
3
//
4
void
drawMultCorrSRC
(
TString
fileName =
"../run/srcdst_3332.root"
,
Int_t
nEvents = 50000)
5
{
6
7
TChain
* out =
new
TChain
(
"bmndata"
);
8
out->
Add
(fileName.Data());
9
10
cout <<
"#recorded entries = "
<< out->
GetEntries
() << endl;
11
12
TClonesArray
* MwpcTracks =
nullptr
;
13
out->
SetBranchAddress
(
"BmnMwpcTrack"
, &MwpcTracks);
14
TClonesArray
* dchTracks =
nullptr
;
15
out->
SetBranchAddress
(
"BmnDchTrack"
, &dchTracks);
16
TClonesArray
* gemTracks =
nullptr
;
17
out->
SetBranchAddress
(
"BmnGemTrack"
, &gemTracks);
18
TClonesArray
* silTracks =
nullptr
;
19
out->
SetBranchAddress
(
"BmnSiliconTrack"
, &silTracks);
20
TClonesArray
* cscHits =
nullptr
;
21
out->
SetBranchAddress
(
"BmnCSCHit"
, &cscHits);
22
TClonesArray
* tof700Hits =
nullptr
;
23
out->
SetBranchAddress
(
"BmnTof700Hit"
, &tof700Hits);
24
25
const
Int_t
nDet = 7;
26
27
TString
names[nDet] = {
"MWPC"
,
"SIL"
,
"GEM"
,
"CSC"
,
"TOF700"
,
"DCH1"
,
"DCH2"
};
28
29
gStyle
->SetOptStat(0);
30
gStyle
->SetPalette(53);
//(kGreyScale);
31
32
TH2F
* hist[nDet][nDet];
33
for
(
Int_t
iDet = 0; iDet < nDet; iDet++)
34
for
(
Int_t
jDet = 0; jDet < nDet; jDet++) {
35
TString
histName = names[iDet] +
" - "
+ names[jDet];
36
hist[iDet][jDet] =
new
TH2F
(histName,
""
, 10, 0, 10, 10, 0, 10);
37
}
38
39
for
(
Int_t
iEv = 0; iEv < nEvents; iEv++) {
40
out->
GetEntry
(iEv);
41
if
(iEv % 1000 == 0)
42
printf(
"event: %d\n"
, iEv);
43
44
Int_t
nSil = (silTracks) ? silTracks->
GetEntriesFast
() : 0;
45
Int_t
nGem = (gemTracks) ? gemTracks->
GetEntriesFast
() : 0;
46
Int_t
nCsc = (cscHits) ? cscHits->
GetEntriesFast
() : 0;
47
Int_t
nTof700 = (tof700Hits) ? tof700Hits->
GetEntriesFast
() : 0;
48
Int_t
nDch = (dchTracks) ? dchTracks->
GetEntriesFast
() : 0;
49
Int_t
nDch1 = 0;
50
Int_t
nDch2 = 0;
51
if
(dchTracks)
52
for
(
Int_t
iTrack = 0; iTrack < dchTracks->
GetEntriesFast
(); iTrack++) {
53
BmnDchTrack
* track = (
BmnDchTrack
*)dchTracks->
At
(iTrack);
54
if
(track->
GetParamFirst
()->GetZ() < 550.0)
55
nDch1++;
56
if
(track->
GetParamFirst
()->GetZ() > 650.0)
57
nDch2++;
58
}
59
Int_t
nMwpc = 0;
60
if
(MwpcTracks)
61
for
(
Int_t
iTrack = 0; iTrack < MwpcTracks->
GetEntriesFast
(); iTrack++) {
62
BmnMwpcTrack
* track = (
BmnMwpcTrack
*)MwpcTracks->
At
(iTrack);
63
if
(track->
GetParamFirst
()->GetZ() > -300.0)
64
nMwpc++;
65
}
66
67
Int_t
nItem[nDet] = {nMwpc, nSil, nGem, nCsc, nTof700, nDch1, nDch2};
68
69
for
(
Int_t
iDet = 0; iDet < nDet; iDet++)
70
for
(
Int_t
jDet = 0; jDet < nDet; jDet++)
71
hist[iDet][jDet]->Fill(nItem[jDet], nItem[iDet]);
72
}
73
74
TCanvas
* corr =
new
TCanvas
(
"corr"
,
"corr"
, 1000, 1000);
75
corr->
Divide
(nDet + 1, nDet + 1, 0, 0);
76
for
(
Int_t
iDet = 0; iDet < nDet; iDet++)
77
for
(
Int_t
jDet = 0; jDet < nDet; jDet++) {
78
Int_t
padId = (iDet + 1) * (nDet + 1) + jDet + 2;
79
TPad
* pad = (
TPad
*)corr->
cd
(padId);
80
pad->
SetGrid
(0, 0);
81
hist[iDet][jDet]->
Draw
(
"col"
);
82
hist[iDet][jDet]->
GetXaxis
()->
SetLabelSize
(0.1);
83
}
84
for
(
Int_t
iDet = 0; iDet < nDet; iDet++) {
85
corr->
cd
(iDet + 2);
86
TLatex
latexX;
87
latexX.
SetTextSize
(0.2);
88
latexX.
DrawLatex
(0.2, 0.5, names[iDet]);
89
corr->
cd
((iDet + 1) * (nDet + 1) + 1);
90
TLatex
latexY;
91
latexY.
SetTextSize
(0.2);
92
latexY.
DrawLatex
(0.2, 0.5, names[iDet]);
93
}
94
corr->
SaveAs
(
"MultCorrSRC.pdf"
);
95
}
Int_t
int Int_t
R__ADD_INCLUDE_PATH
#define R__ADD_INCLUDE_PATH(PATH)
gStyle
R__EXTERN TStyle * gStyle
BmnDchTrack
Definition
BmnDchTrack.h:7
BmnMwpcTrack
Definition
BmnMwpcTrack.h:9
BmnTrack::GetParamFirst
FairTrackParam * GetParamFirst()
Definition
BmnTrack.h:63
TAttAxis::SetLabelSize
virtual void SetLabelSize(Float_t size=0.04)
TAttText::SetTextSize
virtual void SetTextSize(Float_t tsize=1)
TCanvas
TCanvas::cd
TVirtualPad * cd(Int_t subpadnumber=0) override
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
TH1::GetXaxis
TAxis * GetXaxis()
TH1::Draw
void Draw(Option_t *option="") override
TH2F
TLatex
TLatex::DrawLatex
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
TObjArray::GetEntriesFast
Int_t GetEntriesFast() const
TObjArray::At
TObject * At(Int_t idx) const override
TPad
TPad::SetGrid
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
TPad::Divide
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
TPad::SaveAs
void SaveAs(const char *filename="", Option_t *option="") const override
TString
drawMultCorrSRC
void drawMultCorrSRC(TString fileName="../run/srcdst_3332.root", Int_t nEvents=50000)
Definition
drawMultCorrSRC.C:4
macro
miscellaneous
drawMultCorrSRC.C
Generated on
for BmnRoot by
1.17.0