BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
drawMultCorrSRC.C
Go to the documentation of this file.
1R__ADD_INCLUDE_PATH($VMCWORKDIR)
2#include "macro/run/bmnloadlibs.C"
3//
4void 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 Int_t
#define R__ADD_INCLUDE_PATH(PATH)
R__EXTERN TStyle * gStyle
FairTrackParam * GetParamFirst()
Definition BmnTrack.h:63
virtual void SetLabelSize(Float_t size=0.04)
virtual void SetTextSize(Float_t tsize=1)
TVirtualPad * cd(Int_t subpadnumber=0) override
Int_t SetBranchAddress(const char *bname, T **add, TBranch **ptr=nullptr)
virtual Int_t Add(const char *name, Long64_t nentries=TTree::kMaxEntries)
Long64_t GetEntries() const override
Int_t GetEntry(Long64_t entry=0, Int_t getall=0) override
TAxis * GetXaxis()
void Draw(Option_t *option="") override
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
Int_t GetEntriesFast() const
TObject * At(Int_t idx) const override
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
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
void SaveAs(const char *filename="", Option_t *option="") const override
void drawMultCorrSRC(TString fileName="../run/srcdst_3332.root", Int_t nEvents=50000)