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 }
TTree * t
Definition: check_shower.C:4
Definition: EdbRun.h:74
Definition: EdbSegment.h:61
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:92
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
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
float xmin
Definition: emthickness.cpp:61
float ymin
Definition: emthickness.cpp:63
float xmax
Definition: emthickness.cpp:61
float ymax
Definition: emthickness.cpp:63
EdbRun * run
Definition: check_raw.C:38
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
EdbSegP * s
Definition: tlg2pattern.C:32
TFile * file
Definition: write_pvr.C:3