diff options
Diffstat (limited to 'io')
-rw-r--r-- | io/__init__.py | 0 | ||||
-rw-r--r-- | io/root.C | 95 | ||||
-rw-r--r-- | io/root.py | 19 |
3 files changed, 0 insertions, 114 deletions
diff --git a/io/__init__.py b/io/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/io/__init__.py +++ /dev/null diff --git a/io/root.C b/io/root.C deleted file mode 100644 index 096811a..0000000 --- a/io/root.C +++ /dev/null @@ -1,95 +0,0 @@ -#include <TVector3.h> -#include <vector> -#include <TTree.h> -#include <string> - -struct Photon { - double t; - TVector3 pos; - TVector3 dir; - TVector3 pol; - double wavelength; // nm - unsigned int history; - int last_hit_triangle; -}; - -struct MC { - std::string particle; - TVector3 gen_pos; - TVector3 gen_dir; - double gen_total_e; - - std::vector<Photon> photon_start; - std::vector<Photon> photon_stop; - -}; - -struct Channel { - Channel() : channel_id(-1), t(-9999.0), q(-9999.0) { }; - int channel_id; - double t; - double q; - unsigned int mc_history; -}; - -struct Event { - int event_id; - MC mc; - int nhit; - std::vector<Channel> channel; - -}; - -void fill_photons(Event *ev, bool start, - unsigned int nphotons, float *pos, float *dir, - float *pol, float *wavelength, float *t0, - int *histories=0, int *last_hit_triangle=0) -{ - std::vector<Photon> &photons = start ? ev->mc.photon_start : ev->mc.photon_stop; - photons.resize(nphotons); - - for (unsigned int i=0; i < nphotons; i++) { - Photon &photon = photons[i]; - photon.t = t0[i]; - photon.pos.SetXYZ(pos[3*i], pos[3*i + 1], pos[3*i + 2]); - photon.dir.SetXYZ(dir[3*i], dir[3*i + 1], dir[3*i + 2]); - photon.pol.SetXYZ(pol[3*i], pol[3*i + 1], pol[3*i + 2]); - photon.wavelength = wavelength[i]; - if (histories) - photon.history = histories[i]; - else - photon.history = 0; - - if (last_hit_triangle) - photon.last_hit_triangle = last_hit_triangle[i]; - else - photon.last_hit_triangle = -1; - } -} - - -void fill_hits(Event *ev, unsigned int nchannels, float *t, - float *q, unsigned int *history) -{ - ev->channel.resize(0); - ev->nhit = 0; - Channel ch; - for (unsigned int i=0; i < nchannels; i++) { - if (t[i] < 1e8) { - ev->nhit++; - ch.channel_id = i; - ch.t = t[i]; - ch.q = q[i]; - ch.mc_history = history[i]; - ev->channel.push_back(ch); - } - } -} - - -#ifdef __MAKECINT__ -#pragma link C++ class vector<Photon>; -#pragma link C++ class vector<Channel>; -#endif - - diff --git a/io/root.py b/io/root.py deleted file mode 100644 index e43f5d4..0000000 --- a/io/root.py +++ /dev/null @@ -1,19 +0,0 @@ -import ROOT -import os.path - -ROOT.gROOT.ProcessLine('.L '+os.path.join(os.path.dirname(__file__), 'root.C+g')) - -from ROOT import Event - -fill_photons = ROOT.fill_photons -fill_hits = ROOT.fill_hits - -def make_tree(name, desc=''): - '''Create a ROOT tree for holding event information. - - Returns tuple of Event object for filling and TTree. - ''' - tree = ROOT.TTree(name, desc) - ev = ROOT.Event() - tree.Branch('ev', ev) - return ev, tree |