FEDRA emulsion software from the OPERA Collaboration
rfxx.cpp File Reference
#include "EdbRun.h"
#include "EdbView.h"
#include "EdbSegment.h"
Include dependency graph for rfxx.cpp:

Functions

int main ()
 
int readFXX (char *file, char *froot, int tob, char *stat="RECREATE")
 

Function Documentation

◆ main()

int main ( void  )
9{
10 readFXX("/mnt/utsdbs01_m/data/OPERA/TEST23/UP/&F01" ,"fxx_08.23.root",1);
11 readFXX("/mnt/utsdbs01_m/data/OPERA/TEST23/DOWN/&F01","fxx_08.23.root",2,"UPDATE");
12
13// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST24/UP/&F01" ,"fxx_09.24.root",1);
14// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST24/DOWN/&F01","fxx_09.24.root",2,"UPDATE");
15
16// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST25/UP/&F01" ,"fxx_10.25.root",1);
17// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST25/DOWN/&F01","fxx_10.25.root",2,"UPDATE");
18
19// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST26/UP/&F01" ,"fxx_11.26.root",1);
20// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST26/DOWN/&F01","fxx_11.26.root",2,"UPDATE");
21
22// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST27/UP/&F01" ,"fxx_10.27.root",1);
23// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST27/DOWN/&F01","fxx_10.27.root",2,"UPDATE");
24
25// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST29/UP/&F01" ,"fxx_10.29.root",1);
26// readFXX("/mnt/utsdbs01_m/data/OPERA/TEST29/DOWN/&F01","fxx_10.29.root",2,"UPDATE");
27
28 return 0;
29}
int readFXX(char *file, char *froot, int tob, char *stat="RECREATE")
Definition: rfxx.cpp:32

◆ readFXX()

int readFXX ( char *  file,
char *  froot,
int  tob,
char *  stat = "RECREATE" 
)
33{
34 EdbRun edbRun(froot,stat);
35 EdbView *edbView = edbRun.GetView();
36 EdbViewHeader *header = edbView->GetHeader();
37
38 int i,n, n_fields;
39 int npre;
40 int runevent,run,event,pos;
41 int stack_,module,tb,plate,pver;
42 int stage;
43 int re,s,m,t,p,nn;
44 int n1,num,f1,f2,f3;
45 long scanmode;
46
47 int ph;
48 double ax,ay,x,y,dx,dy;
49 double gap,emulsion,base,shrink;
50 double dr;
51 double axc,ayc,xc,yc,axs,ays,xs,ys;
52 double xmin,xmax,ymin,ymax;
53
54 char str[256];
55
56 FILE *f_fxx = fopen( file, "r");
57
58 fgets(str,sizeof(str),f_fxx);
59 fgets(str,sizeof(str),f_fxx);
60 fgets(str,sizeof(str),f_fxx);
61
62 EdbSegment* edbSegment = new EdbSegment();
63
64 int nviews=0;
65 while(fgets(str,sizeof(str),f_fxx)) {
66
67 if( sscanf(str,"%d %d %ld %lf %lf %lf %lf %d %lf %d %d %d",
68 &n1,&runevent,&scanmode,&axc,&ayc,&xc,&yc,&num,&dr,&f1,&f2,&f3) != 12 ) {
69 printf("unexpected format in &f (view line): %s\n",str);
70 break;
71 }
72 edbView->Clear();
73
74 header->SetAreaID(runevent);
75 header->SetCoordXY(xc,yc);
76 if(tob==1) header->SetNframes(16, 0);
77 if(tob==2) header->SetNframes( 0,16);
78 header->SetNsegments(num);
79
80 for(i=0;i<num;++i){ // read &f segments lines
81 if( !fgets(str,sizeof(str),f_fxx) ) break;
82 if( sscanf(str,"%d %d %d %lf %lf %lf %lf %lf %lf",
83 &nn,&re,&ph,&ax,&ay,&x,&y,&dx,&dy) != 9) {
84 printf("unexpected format in &f (seg line): %s\n",str);
85 break;
86 }
87
88 edbSegment->Set(x-xc, y-yc, dx, ax, ay, dy-dx, tob, ph);
89 edbView->AddSegment(edbSegment);
90
91 }
92 nviews++;
93 edbRun.AddView(edbView);
94 printf("view %d \t Area = %d\n",nviews,runevent);
95 }
96
97 fclose(f_fxx);
98 edbRun.Close();
99
100 return 0;
101}
Definition: EdbRun.h:75
segment of the track
Definition: EdbSegment.h:63
void Set(float x, float y, float z, float tx, float ty, float dz=0, int side=0, int puls=0, int id=0)
Definition: EdbSegment.cxx:93
view identification
Definition: EdbView.h:26
void SetNsegments(int nseg)
Definition: EdbView.h:86
void SetAreaID(int id)
Definition: EdbView.h:100
void SetNframes(int top, int bot)
Definition: EdbView.h:104
void SetCoordXY(float x, float y)
Definition: EdbView.h:101
Base scanning data object: entry into Run tree.
Definition: EdbView.h:134
EdbViewHeader * GetHeader() const
Definition: EdbView.h:163
EdbSegment * AddSegment(float x, float y, float z, float tx, float ty, float dz=0, int side=0, int puls=0, int id=-1)
Definition: EdbView.h:231
void Clear()
Definition: EdbView.cxx:79
EdbRun * run
Definition: check_raw.C:38
TTree * t
Definition: check_shower.C:4
s
Definition: check_shower.C:55
TFile * file
Definition: write_pvr.C:3
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
fclose(pFile)
int event
Definition: shower_tr.C:25
p
Definition: testBGReduction_AllMethods.C:8