Belle II Software  release-05-01-25
L1TriggerMenuv0.cc
1 #include <TRandom.h>
2 //index prescalefactor cut
3 //0 1 n_2d_finder>=3
4 //1 1 n_2d_finder==2&&BhabhaVeto==0
5 //2 1 n_2d_finder>=1&&n_gc>=1&&BhabahVeto==0&&SBhabhaVeto==0
6 //3 1 n_c>=3&&n_high_c1>=1&&eclBhabhaVeto==0
7 //4 1 n_c>=2&&n_high_c4e==0&&n_bbc>=1&&eclBhabhaVeto==0
8 //5 1 n_high_c2>=1&&eclBhabhaVeto==0
9 //6 2000 n_c>=2&&n_bbc>=1
10 //7 2000 n_2d_finder>=1&&n_gc>=1
11 //8 2000 n_high_c2>=1
12 //9 1000 eclbhabha
13 //10 1000 n_2d_finder>=1&&n_high_c3>=1&&n_bbtc>=1
14 //11 1000 n_high_c3>=1&&n_2d_finder==0
15 
16 //GRL Objects
17 //0 n_2d_finder
18 //1 n_c
19 //2 n_high_c1
20 //3 n_high_c2b
21 //4 n_high_c3
22 //5 n_high_c4e
23 //6 n_gc
24 //7 n_bbc
25 //8 n_bbtc
26 //9 BhabhaVeto
27 //10 SBhabhaVeto
28 //11 eclBhabhaVeto
29 
30 namespace Belle2 {
37  const int ntrgline = 18;
39  double scalef_phase2[ntrgline] = {1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 1, 1, 1};
41  double scalef_phase3[ntrgline] = {1, 1, 20, 2, 1, 1, 1, 1, 2, 1, 1, 20, 20, 1, 5, 1, 3, 5};
42 
44  int doprescale(int f)
45  {
46 
47  int Val = 0;
48  double ran = gRandom->Uniform(f);
49  if (ceil(ran) == f) Val = 1;
50  return Val;
51  }
52 
54 // void dotrigger(std::vector<int>& trgres, std::vector<int> objects, std::string phase) // the function is commended out entirely to avoid warning
55 // {
58  /*
59  //line 0
60  if (objects[0] >= 3) trgres.push_back(doprescale(scalef[0]));
61  else trgres.push_back(0);
62  //line 1
63  if (objects[0] == 2 && objects[9] == 0) trgres.push_back(doprescale(scalef[1]));
64  else trgres.push_back(0);
65  //line 2
66  if (objects[0] >= 1 && objects[6] >= 1 && objects[9] == 0 && objects[10] == 0)trgres.push_back(doprescale(scalef[2]));
67  else trgres.push_back(0);
68  //line 3
69  if (objects[1] >= 3 && objects[2] >= 1 && objects[11] == 0) trgres.push_back(doprescale(scalef[3]));
70  else trgres.push_back(0);
71  //line 4
72  if (objects[1] >= 2 && objects[5] == 0 && objects[7] >= 1 && objects[11] == 0) trgres.push_back(doprescale(scalef[4]));
73  else trgres.push_back(0);
74  //line 5
75  if (objects[3] >= 1 && objects[11] == 0) trgres.push_back(doprescale(scalef[5]));
76  else trgres.push_back(0);
77  //line 6
78  if (objects[1] >= 2 && objects[7] >= 1) trgres.push_back(doprescale(scalef[6]));
79  else trgres.push_back(0);
80  //line 7
81  if (objects[0] >= 1 && objects[6] >= 1) trgres.push_back(doprescale(scalef[7]));
82  else trgres.push_back(0);
83  //line 8
84  if (objects[3] >= 1) trgres.push_back(doprescale(scalef[8]));
85  else trgres.push_back(0);
86  //line 9
87  if (objects[11] == 1) trgres.push_back(doprescale(scalef[9]));
88  else trgres.push_back(0);
89  //line 10
90  if (objects[0] >= 1 && objects[4] >= 1 && objects[8] >= 1) trgres.push_back(doprescale(scalef[11]));
91  else trgres.push_back(0);
92  //line 11
93  if (objects[0] == 0 && objects[4] >= 1) trgres.push_back(doprescale(scalef[11]));
94  else trgres.push_back(0);
95  //add new trigger line by users here, e.g.
96  //if(objects[0]==0)trgres.push_back(doprescale(1));
97  //else trgres.push_back(0);
98  */
99 // }
100 
102 }
103 
Belle2::scalef_phase2
double scalef_phase2[ntrgline]
prescale factor for phase2
Definition: L1TriggerMenuv0.cc:39
Belle2::doprescale
int doprescale(int f)
select one event in number of prescale factor events
Definition: L1TriggerMenuv0.cc:44
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::scalef_phase3
double scalef_phase3[ntrgline]
prescale factor for phase3
Definition: L1TriggerMenuv0.cc:41
Belle2::ntrgline
const int ntrgline
set the total number of trigger lines and prescalefactor
Definition: L1TriggerMenuv0.cc:37