Repository navigation
Expand file tree
/
Copy pathMBReaderData.cpp
More file actions
70 lines (58 loc) · 2.56 KB
/
Copy pathMBReaderData.cpp
File metadata and controls
70 lines (58 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "include/MBReader.h"
//____________________________________________________
void MBReader::BuildCalibratedEvent()
{
HTMicroballData * Microball = fMicroball->Get();
//Filling calibrated data structures
fMBCalibratedData.fmulti=0;
for(int i=0; i<Microball->fmulti; i++)
{
if(!IsBad(Microball->fnumring[i], Microball->fnumdet[i]) && IsHit(Microball->fnumring[i], Microball->fnumdet[i],Microball->fFast[i],Microball->fTail[i],Microball->fTime[i])) {
fMBCalibratedData.fnumring[fMBCalibratedData.fmulti] =Microball->fnumring[i];
fMBCalibratedData.fnumdet[fMBCalibratedData.fmulti] =Microball->fnumdet[i];
fMBCalibratedData.fTail[fMBCalibratedData.fmulti] =Microball->fTail[i];
fMBCalibratedData.fFast[fMBCalibratedData.fmulti] =Microball->fFast[i];
fMBCalibratedData.fTime[fMBCalibratedData.fmulti] =Microball->fTime[i];
fMBCalibratedData.fTheta[fMBCalibratedData.fmulti] =GetTheta(Microball->fnumring[i], Microball->fnumdet[i]);
fMBCalibratedData.fPhi[fMBCalibratedData.fmulti] =GetPhi(Microball->fnumring[i], Microball->fnumdet[i]);
fMBCalibratedData.fThetaRan[fMBCalibratedData.fmulti]=GetThetaRandom(Microball->fnumring[i], Microball->fnumdet[i]);
fMBCalibratedData.fPhiRan[fMBCalibratedData.fmulti] =GetPhiRandom(Microball->fnumring[i], Microball->fnumdet[i]);
fMBCalibratedData.fmulti++;
}
//Microball Event Varaibles
fMBCalibratedData.fb =GetImpactParameter(fMBCalibratedData.fmulti);
fMBCalibratedData.fbhat =Getbhat(fMBCalibratedData.fmulti);
}
}
//____________________________________________________
void MBReader::BuildCalibratedTree(const char * file_name, Long64_t evt_amount)
{
// this method constructs a calibrated data tree
TFile * FileOut = new TFile(file_name, "RECREATE");
if(FileOut->IsZombie()) {
printf("Error: Cannot create file %s\n", file_name);
return;
}
// Initializing output TTree
TTree * TreeOut = new TTree ("E15190", "Calibrated Data");
TreeOut->Branch("uBall.","MicroballCalibratedData",&fMBCalibratedData,32000,2);
TreeOut->SetAutoSave(5000000);
Long64_t nentries=fChain->GetEntries();
if(evt_amount!=0) {
nentries=evt_amount;
}
Long64_t jentry=0;
std::cout << "found " << nentries << " entries\n";
for(;fMBReader->Next() && jentry<nentries; jentry++)
{
if(jentry%100000==0) {
printf("Percentage = %.2f %%\n", 100*double(jentry)/nentries);
}
BuildCalibratedEvent();
TreeOut->Fill();
}
//Save Output Tree to file
TreeOut->AutoSave();
// closing output file
FileOut->Close();
}