BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
GemRun6VetoSpills.C
Go to the documentation of this file.
1
TString
datFile
(
"$VMCWORKDIR/database/uni_db/examples/trigger/ir/uRun6TripsSpBounded.dat"
);
2
3
int
GetNGemTripsSpill
(
int
RUN = 1408,
4
int
chamber[] =
nullptr
,
5
int
evFirst[] =
nullptr
,
6
int
evLast[] =
nullptr
,
7
int
spFirst[] =
nullptr
,
8
int
spLast[] =
nullptr
)
9
{
10
int
run, nTngs, nTrips;
11
ifstream fs;
12
gSystem
->ExpandPathName(
datFile
);
13
fs.open(
datFile
.Data(), ios::in);
14
while
(!fs.eof()) {
15
fs >> run >> nTngs >> nTrips;
16
for
(
int
i
= 0;
i
< nTrips;
i
++)
17
fs >> chamber[
i
] >> evFirst[
i
] >> evLast[
i
] >> spFirst[
i
] >> spLast[
i
];
18
if
(run >= RUN)
19
break
;
20
}
21
fs.close();
22
if
(run != RUN)
23
nTrips = -1;
24
// if(run!=RUN) { nTrips=-1; cout<<"ERROR uRun6Trips.dat: no data for run= "<<RUN<<"!!!"<<endl;}
25
return
nTrips;
26
}
27
28
int
FillSpillVeto
(
int
run = 1408,
int
MSP = 3000,
bool
* spv =
nullptr
)
29
{
30
31
for
(
int
i
= 0;
i
< MSP;
i
++)
32
spv[
i
] =
false
;
33
34
const
int
MTRIPS = 20;
35
int
gem[MTRIPS], ev1[MTRIPS], ev2[MTRIPS], spi1[MTRIPS], spi2[MTRIPS];
36
int
nTrips =
GetNGemTripsSpill
(run, gem, ev1, ev2, spi1, spi2);
37
38
cout << run <<
" nTrips="
<< nTrips << endl;
39
if
(nTrips <= 0)
40
return
nTrips;
41
42
int
* nSpTrips =
new
int
[MSP];
43
bool
* boTrip =
new
bool
[MSP * 7];
44
45
for
(
int
i
= 0;
i
< MSP;
i
++) {
46
nSpTrips[
i
] = 0;
47
for
(
int
j = 0; j < 7; j++)
48
boTrip[
i
* 7 + j] =
false
;
49
}
50
51
for
(
int
j = 0; j < nTrips; j++) {
52
int
k1 = gem[j], k2 = gem[j];
53
if
(gem[j] == 9) {
54
k1 = 0;
55
k2 = 6;
56
}
57
for
(
int
k = k1; k <= k2; k++) {
58
for
(
int
i
= spi1[j];
i
<= spi2[j];
i
++) {
59
nSpTrips[
i
]++;
60
boTrip[
i
* 7 + k] =
true
;
61
}
62
}
63
cout <<
" chamber:"
<< gem[j] <<
" events:"
<< ev1[j] <<
" "
<< ev2[j] <<
" spills:"
<< spi1[j] <<
" "
64
<< spi2[j] << endl;
65
}
66
for
(
int
i
= 0;
i
< MSP;
i
++)
67
if
(nSpTrips[
i
] > 1 || boTrip[
i
* 7 + 2])
68
spv[
i
] =
true
;
69
70
delete
[] nSpTrips;
71
delete
[] boTrip;
72
return
nTrips;
73
}
74
75
vector<int>
GemRun6VetoSpills
(
int
run = 1710)
76
{
77
const
int
MSP = 3000;
78
bool
spillVeto[MSP];
79
int
nSpVeto =
FillSpillVeto
(run, MSP, spillVeto);
80
vector<int> vecSpillVeto;
81
for
(
int
i
= 0;
i
< MSP;
i
++)
82
if
(spillVeto[
i
]) {
83
cout <<
i
<<
" "
;
84
vecSpillVeto.push_back(
i
);
85
}
86
cout << endl;
87
return
vecSpillVeto;
88
}
datFile
TString datFile("$VMCWORKDIR/database/uni_db/examples/trigger/ir/uRun6TripsSpBounded.dat")
GemRun6VetoSpills
vector< int > GemRun6VetoSpills(int run=1710)
Definition
GemRun6VetoSpills.C:75
FillSpillVeto
int FillSpillVeto(int run=1408, int MSP=3000, bool *spv=nullptr)
Definition
GemRun6VetoSpills.C:28
GetNGemTripsSpill
int GetNGemTripsSpill(int RUN=1408, int chamber[]=nullptr, int evFirst[]=nullptr, int evLast[]=nullptr, int spFirst[]=nullptr, int spLast[]=nullptr)
Definition
GemRun6VetoSpills.C:3
i
int i
Definition
P4_F32vec4.h:22
gSystem
R__EXTERN TSystem * gSystem
TString
database
examples
uni_db
trigger
ir
GemRun6VetoSpills.C
Generated on
for BmnRoot by
1.17.0