Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JPhotonPathIO.cc
Go to the documentation of this file.
1#include <iostream>
2#include <fstream>
3
4#include "TRandom3.h"
5
9using namespace JGEOMETRY3D ;
10using namespace JMARKOV ;
11using namespace std ;
12
14 for( int i=0 ; i<(int)pl.size()-1 ; ++i )
15 cout << "(" << pl[i] << ")-" ;
16 if( pl.size()>0 ) cout << "(" << pl.back() << ")" ;
17}
18
19/**
20 * \file Usage example of JPhotonPathReader and JPhotonPathWriter
21
22 Generates a number of random JPhotonPaths and writes them to a file.
23 Then reads them back from the same file.
24 **/
25int main( int argc, char** argv ) {
26 // initialization
27 TRandom* ran = new TRandom3(0) ;
28 const int npaths = 5 ;
29 char fname[100] = "out.paths" ;
30
31 // write some example paths to a file
32 cout << "Writing some example paths to '" << fname << "'." << endl ;
33
35 writer.open(fname) ;
36 for( int n=0 ; n<npaths ; ++n ) {
37 // create path
38 int nscat = ran->Integer(6) ; // how often the photon scatters
39 JPhotonPath path(nscat) ;
40 // loop over the vertices
41 for( JPhotonPath::iterator it=path.begin() ; it!=path.end() ; ++it ) {
42 double x = ran->Integer(50) ;
43 double y = ran->Integer(50) ;
44 double z = ran->Integer(50) ;
45 it->setPosition( JGEOMETRY3D::JVector3D(x,y,z) ) ;
46 }
47 // print the path
48 printPolyline( path ) ;
49 cout << endl ;
50 // write the path
51 writer.put(path) ;
52 }
53 writer.close() ;
54 cout << endl ;
55
56 // read paths from a file
58 reader.open("out.paths") ;
59
60 int nread = 0 ;
61 JPhotonPath* p = NULL ;
62 cout << "Reading file" << endl ;
63 while( reader.hasNext() ) {
64 p = reader.next() ;
65 printPolyline( *p ) ;
66 cout << endl ;
67 ++nread ;
68 }
69
70 cout << "Done reading file. Read " << nread << " paths from it." << endl ;
71 cout << endl ;
72 cout << "Done!" << endl ;
73
74 return 0 ;
75}
int main(int argc, char **argv)
void printPolyline(JPolyline3D &pl)
Data structure for polyline in three dimensions.
Data structure for vector in three dimensions.
Definition JVector3D.hh:36
virtual void open(const char *file_name) override
Open file.
virtual void close()
Close file.
virtual bool put(const T &object)=0
Object output.
A photon path.
Auxiliary classes and methods for 3D geometrical objects and operations.
Definition JAngle3D.hh:19