BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
recoRunDCH.C
Go to the documentation of this file.
1#include "TSpectrum.h"
2
3using namespace TMath;
4
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 Int_t
char Char_t
unsigned int UInt_t
#define gROOT
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
Bool_t cd() override
void Close(Option_t *option="") override
virtual Int_t Fill()
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const override
void recoRunDCH()
Definition recoRunDCH.C:5