BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
GemRun6VetoSpills.C
Go to the documentation of this file.
1TString datFile("$VMCWORKDIR/database/uni_db/examples/trigger/ir/uRun6TripsSpBounded.dat");
2
3int 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
28int 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
75vector<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}
TString datFile("$VMCWORKDIR/database/uni_db/examples/trigger/ir/uRun6TripsSpBounded.dat")
vector< int > GemRun6VetoSpills(int run=1710)
int FillSpillVeto(int run=1408, int MSP=3000, bool *spv=nullptr)
int GetNGemTripsSpill(int RUN=1408, int chamber[]=nullptr, int evFirst[]=nullptr, int evLast[]=nullptr, int spFirst[]=nullptr, int spLast[]=nullptr)
int i
Definition P4_F32vec4.h:22
R__EXTERN TSystem * gSystem