Tools/CIC/cic/Event.cc
Go to the documentation of this file.
1 // \author Darko Veberic
2 // \date 2014
3 
4 #include <cic/Event.h>
5 #include <utl/Math.h>
6 
7 using namespace std;
8 
9 
10 namespace cic {
11 
12  vector<Event>
13  Bootstrap(const vector<Event>& events)
14  {
15  const unsigned int n = events.size();
16  vector<Event> ret;
17  ret.reserve(n);
18  for (unsigned int i = 0; i < n; ++i)
19  ret.push_back(events[utl::gRandom3->Integer(n)]);
20  return ret;
21  }
22 
23 
24  vector<Event>
25  ResampleWithErrors(const vector<Event>& events)
26  {
27  vector<Event> ret;
28  ret.reserve(events.size());
29  for (const Event& e : events) {
30  const double th = utl::gRandom3->Gaus(e.GetTheta(), e.fThetaErr);
31  if (0 <= th && th <= M_PI) {
32  const double lnS1000 = utl::gRandom3->Gaus(e.fLnS1000, e.fLnS1000Err);
33  ret.push_back(Event(utl::Sin2(th), e.fThetaErr, lnS1000, e.fLnS1000Err));
34  }
35  }
36  return ret;
37  }
38 
39 }
vector< Event > Bootstrap(const vector< Event > &events)
vector< Event > ResampleWithErrors(const vector< Event > &events)
double Sin2(const double x)
TRandom3 *const gRandom3

, generated on Tue Sep 26 2023.