Class Reference for E1039 Core & Analysis Software
UtilBeam.cc
Go to the documentation of this file.
1 //#include <E906DataCatalog.h>
2 #include "UtilBeam.h"
3 using namespace std;
4 
6 double UtilBeam::PoTRaw(const unsigned int spill_id)
7 {
8  /*auto e906sc = E906DataCatalog::instance();
9  auto beam = e906sc->Beam(spill_id);
10  if (! beam) return 0;
11  return beam->GetDouble("S:G2SEM");*/
12  return 0.;
13 }
14 
16 
19 double UtilBeam::PoTLive(const unsigned int spill_id)
20 {
21  /*auto e906sc = E906DataCatalog::instance();
22  auto beam = e906sc->Beam (spill_id);
23  auto beamdaq = e906sc->BeamDaq(spill_id);
24  if (! beam || ! beamdaq) return 0;
25 
26  double g2sem = beam ->GetDouble("S:G2SEM");
27  double qie = beamdaq->GetDouble("QIEsum");
28  double inhi = beamdaq->GetDouble("inhibit_block_sum");
29  double busy = beamdaq->GetDouble("trigger_sum_no_inhibit");
30  return g2sem * (qie - inhi - busy) / qie;*/
31  return 0.;
32 }
33 
35 
38 double UtilBeam::PoTPerQIE(const unsigned int spill_id)
39 {
40  /*const int TURNS_PER_SPILL = 369000;
41  const int BUCKETS_PER_TURN = 588;
42 
43  auto e906sc = E906DataCatalog::instance();
44  auto beam = e906sc->Beam (spill_id);
45  auto beamdaq = e906sc->BeamDaq(spill_id);
46  if (! beam || ! beamdaq) return 0;
47 
48  double g2sem = beam ->GetDouble("S:G2SEM");
49  double qie_sum = beamdaq->GetDouble("QIEsum");
50  double qie_ped = e906sc->GetQIEPedestal(spill_id);
51 
52  return g2sem / (qie_sum - qie_ped * TURNS_PER_SPILL * BUCKETS_PER_TURN); */
53  return 0.;
54 }
55 
57 
60 double UtilBeam::QIE2Proton(const int qie_count, const unsigned int spill_id)
61 {
62  //return qie_count * PoTPerQIE(spill_id);
63  return 0.;
64 }
65 
67 
72 void UtilBeam::ListOfRfValues(int& n_value, int*& list_values)
73 {
74  static int idx = 0;
75  static int list[256];
76  if (idx == 0) {
77  int val = 0;
78  list[idx++] = val;
79  for (int i = 0; i < 16; i++) { val += 1; list[idx++] = val; }
80  for (int i = 0; i < 20; i++) { val += 2; list[idx++] = val; }
81  for (int i = 0; i < 21; i++) { val += 4; list[idx++] = val; }
82  for (int i = 0; i < 20; i++) { val += 8; list[idx++] = val; }
83  for (int i = 0; i < 15; i++) { val += 16; list[idx++] = val; }
84  for (int i = 0; i < 1; i++) { val += 31; list[idx++] = val; }
85  for (int i = 0; i < 4; i++) { val += 16; list[idx++] = val; }
86  for (int i = 0; i < 21; i++) { val += 32; list[idx++] = val; }
87  for (int i = 0; i < 20; i++) { val += 64; list[idx++] = val; }
88  for (int i = 0; i < 20; i++) { val += 128; list[idx++] = val; }
89  for (int i = 0; i < 21; i++) { val += 256; list[idx++] = val; }
90  for (int i = 0; i < 20; i++) { val += 512; list[idx++] = val; }
91  for (int i = 0; i < 20; i++) { val += 1024; list[idx++] = val; }
92  for (int i = 0; i < 21; i++) { val += 2048; list[idx++] = val; }
93  for (int i = 0; i < 6; i++) { val += 4096; list[idx++] = val; }
94  }
95  n_value = idx;
96  list_values = list;
97 }
98 
100 
110 void UtilBeam::ListOfRfValues(int& n_value, double*& list_values)
111 {
112  static int idx = 0;
113  static double list[256];
114  if (idx == 0) {
115  int* list_int;
116  ListOfRfValues(idx, list_int);
117  for (int i = 0; i < idx; i++) list[i] = list_int[i];
118  }
119  n_value = idx;
120  list_values = list;
121 }
double PoTPerQIE(const unsigned int spill_id)
Return PoT/QIEsum.
Definition: UtilBeam.cc:38
void ListOfRfValues(int &n_value, int *&list_values)
Make a list of QIE RF+nn values.
Definition: UtilBeam.cc:10
double QIE2Proton(const int qie_count, const unsigned int spill_id)
Convert the QIE count to the number of protons.
Definition: UtilBeam.cc:60
double PoTRaw(const unsigned int spill_id)
Return the raw number of PoT.
Definition: UtilBeam.cc:6
double PoTLive(const unsigned int spill_id)
Return the live number of PoT.
Definition: UtilBeam.cc:19