BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
recoRunDCH.C
Go to the documentation of this file.
1
#include "
TSpectrum.h
"
2
3
using namespace
TMath
;
4
5
void
recoRunDCH
()
6
{
7
8
/* Load basic libraries */
9
gROOT
->LoadMacro(
"$VMCWORKDIR/macro/run/bmnloadlibs.C"
);
10
bmnloadlibs();
// load bmn libraries
11
12
Int_t
bmn_event, bmn_run;
13
// UInt_t EventSelect=250000;
14
// UInt_t EventSelect=30000;
15
UInt_t
EventSelect = 10000;
16
// UInt_t EventSelect=5000;
17
// UInt_t EventSelect=1000;
18
UInt_t
ievProcessed = 0;
19
Char_t
* runname =
"bmn_run0166_digit.root"
;
20
// Char_t* runname="bmn_run0607_digit.root";
21
Char_t
runnumber[5];
22
Char_t
* firstdigit = strchr(runname,
'0'
);
23
strlcpy(runnumber, firstdigit, 5);
24
Int_t
runNumber = atoi(runnumber);
25
TString
runtype;
26
27
assert((runNumber >= 12 && runNumber <= 188) || (runNumber >= 220 && runNumber <= 395)
28
|| (runNumber >= 403 && runNumber <= 688));
29
30
if
(runNumber >= 12 && runNumber <= 188) {
31
runtype =
"run1"
;
32
}
else
if
(runNumber >= 220 && runNumber <= 395) {
33
runtype =
"run2"
;
34
}
else
if
(runNumber >= 403 && runNumber <= 688) {
35
runtype =
"run3"
;
36
}
else
if
(runNumber >= 689) {
37
runtype =
"run4"
;
38
}
39
40
cout <<
"Run type = "
<< runtype <<
", run number = "
<< runNumber << endl;
41
42
TChain
* bmnTree =
new
TChain
(
"BMN_DIGIT"
);
43
bmnTree->
Add
(runname);
44
45
BmnDchDigit
* digit = NULL;
46
TClonesArray
* dchDigits;
47
bmnTree->
SetBranchAddress
(
"bmn_dch_digit"
, &dchDigits);
48
49
// TClonesArray* dchHits = new TClonesArray("BmnDchHit");
50
TFile
* fReco =
new
TFile
(
"bmndst_test.root"
,
"RECREATE"
);
51
TTree
* tReco =
new
TTree
(
"cbmexp"
,
"test_bmn"
);
52
Int_t
nevents = bmnTree->
GetEntries
();
53
cout <<
"nevents = "
<< nevents << endl;
54
// BmnDchHitProducer_exp *dchexp = new BmnDchHitProducer_exp(iDch,0,true,runtype);
55
BmnDchHitProducer_exp* dchexp1 =
new
BmnDchHitProducer_exp(1, 0,
false
, runtype);
56
BmnDchHitProducer_exp* dchexp2 =
new
BmnDchHitProducer_exp(2, 0,
false
, runtype);
57
// dchexp->InitDch(bmnTree,dchDigits,tReco);
58
dchexp1->InitDch(bmnTree, dchDigits, tReco);
59
dchexp2->InitDch(bmnTree, dchDigits, tReco);
60
61
// TClonesArray *dchHits1,*dchHits2;
62
// BmnDchHit *dchHit;
63
64
for
(
Int_t
iev = 0; iev < nevents; iev++) {
65
bmnTree->
GetEntry
(iev);
66
if
(iev % EventSelect == 0) {
67
cout <<
"event number = "
<< iev << endl;
68
ievProcessed++;
69
}
70
if
(iev % EventSelect == 0)
71
dchexp1->ExecDch(iev, dchDigits);
72
if
(iev % EventSelect == 0)
73
dchexp2->ExecDch(iev, dchDigits);
74
// if(iev==20000)dchexp1->ExecDch(iev,dchDigits);
75
// if(iev==20000)dchexp2->ExecDch(iev,dchDigits);
76
// dchexp->ExecDch(iev,dchDigits);
77
/*if(iev%EventSelect==0)dchexp1->ExecDch(iev,dchDigits,dchHits1);
78
if(iev%EventSelect==0)dchexp2->ExecDch(iev,dchDigits,dchHits2);
79
if(iev%EventSelect==0){
80
Int_t nentries=dchHits1->GetEntries();
81
for (Int_t ihit = 0; ihit < nentries; ihit++) {
82
dchHit = (BmnDchHit*) dchHits1->UncheckedAt(ihit);
83
//cout<<"layer1 = "<<dchHit->GetLayer()<<endl;
84
}
85
cout<<"nentries = "<<nentries<<endl;
86
delete dchHits1;
87
Int_t nentries=dchHits2->GetEntries();
88
cout<<"nentries = "<<nentries<<endl;
89
delete dchHits2;
90
}*/
91
tReco->
Fill
();
92
// dchHits1->Clear();
93
// dchHits2->Clear();
94
}
// event loop
95
96
// dchexp->FinishDch();
97
dchexp1->FinishDch();
98
dchexp2->FinishDch();
99
fReco->
cd
();
100
tReco->
Write
();
101
fReco->
Close
();
102
// delete dchexp;
103
delete
dchexp1;
104
delete
dchexp2;
105
106
cout <<
"Number of events processed: "
<< ievProcessed << endl;
107
}
Int_t
int Int_t
Char_t
char Char_t
UInt_t
unsigned int UInt_t
gROOT
#define gROOT
TSpectrum.h
BmnDchDigit
Definition
BmnDchDigit.h:9
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
TDirectoryFile::cd
Bool_t cd() override
TFile
TFile::Close
void Close(Option_t *option="") override
TString
TTree
TTree::Fill
virtual Int_t Fill()
TTree::Write
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const override
recoRunDCH
void recoRunDCH()
Definition
recoRunDCH.C:5
TMath
macro
detectors
dch
recoRunDCH.C
Generated on
for BmnRoot by
1.17.0