283{
287
288 char buf[512];
289 char key[256];
291
292 FILE *fp = fopen(
file,
"r");
293 if (!fp) {
294 Log(2,
"ReadPiecePar",
"ERROR open file: %s",
file);
295 return -1;
296 }
297 else Log(3,
"ReadPiecePar",
"Read piece parameters from file: %s",
file );
298
300 float z,zmin,zmax,shr;
301 float a11,a12,a21,a22,b1,b2;
302 float x1,x2,x3,x4;
303 float var[10];
304
305 while (fgets(buf, sizeof(buf), fp)) {
306 for (Int_t i = 0; i < (Int_t)strlen(buf); i++)
307 if (buf[i]=='#') {
308 buf[i]='\0';
309 break;
310 }
311
312 if( sscanf(buf,"%s",key)!=1 ) continue;
313
314 if ( !strcmp(key,"INCLUDE") )
315 {
316 sscanf(buf+strlen(key),
"%s",
name);
318 }
319 else if ( !strcmp(key,"ZLAYER") )
320 {
321 sscanf(buf+strlen(key),"%d %f %f %f",&id,&z,&zmin,&zmax);
323 }
324 else if ( !strcmp(key,"SHRINK") )
325 {
326 sscanf(buf+strlen(key),"%d %f",&id,&shr);
328 }
329 else if ( !strcmp(key,"AFFXY") )
330 {
331 sscanf(buf+strlen(key),"%d %f %f %f %f %f %f",&id,&a11,&a12,&a21,&a22,&b1,&b2);
333 }
334 else if ( !strcmp(key,"AFFTXTY") )
335 {
336 sscanf(buf+strlen(key),"%d %f %f %f %f %f %f",&id,&a11,&a12,&a21,&a22,&b1,&b2);
338 }
339 else if ( !strcmp(key,"SIGMA0") )
340 {
341 sscanf(buf+strlen(key),"%d %f %f %f %f",&id,&x1,&x2,&x3,&x4);
343 }
344 else if ( !strcmp(key,"DEGRAD") )
345 {
346 sscanf(buf+strlen(key),"%d %f",&id,&x1);
348 }
349 else if ( !strcmp(key,"BINS") )
350 {
351 sscanf(buf+strlen(key),"%d %f %f %f %f",&id,&x1,&x2,&x3,&x4);
353 }
354 else if ( !strcmp(key,"RAMP0") )
355 {
356 sscanf(buf+strlen(key),"%d %f %f",&id,&x1,&x2);
358 }
359 else if ( !strcmp(key,"RAMP04") )
360 {
361 sscanf(buf+strlen(key),"%d %f %f",&id,&x1,&x2);
363 }
364 else if ( !strcmp(key,"CHI2MAX") )
365 {
366 sscanf(buf+strlen(key),"%d %f",&id,&x1);
368 }
369 else if ( !strcmp(key,"CHI2PMAX") )
370 {
371 sscanf(buf+strlen(key),"%d %f",&id,&x1);
373 }
374 else if ( !strcmp(key,"CHI2MODE") )
375 {
376 sscanf(buf+strlen(key),"%d %d",&id,&mode);
378 }
379 else if ( !strcmp(key,"OFFSET") )
380 {
381 sscanf(buf+strlen(key),"%d %f %f",&id,&x1,&x2);
383 }
384 else if ( !strcmp(key,"SIGMAGR") )
385 {
386 sscanf(buf+strlen(key),"%d %f %f %f %f",&id,&x1,&x2,&x3,&x4);
389 }
390 else if ( !strcmp(key,"RADX0") )
391 {
392 sscanf(buf+strlen(key),"%d %f",&id,&x1);
394 }
395 else if ( !strcmp(key,"XCUT") )
396 {
397 sscanf(buf+strlen(key),"%d %f %f %f %f %f %f %f %f %f %f",&id,
398 var,var+1,var+2,var+3,var+4,var+5,var+6,var+7,var+8,var+9);
400 }
401 else if ( !strcmp(key,"ICUT") )
402 {
403 sscanf(buf+strlen(key),"%d %f %f %f %f %f %f %f %f %f %f",&id,
404 var,var+1,var+2,var+3,var+4,var+5,var+6,var+7,var+8,var+9);
406 }
407 else if ( !strcmp(key,"RCUT") )
408 {
409 char rcut[256];
410 sscanf(buf+strlen(key),"%d %s",&id, rcut );
413 }
414 else if ( !strcmp(key,"CUTCP") )
415 {
416 sscanf(buf+strlen(key),"%d %f %f %f %f %f %f",&id,
417 var,var+1,var+2,var+3,var+4,var+5);
419 }
420 else if ( !strcmp(key,"AFID") )
421 {
422 sscanf(buf+strlen(key),"%d",&id);
424 }
425 else if ( !strcmp(key,"OUTPUT") )
426 {
427 sscanf(buf+strlen(key),"%d",&id);
429 }
430 else if ( !strcmp(key,"VOLUME0") )
431 {
432 float x0=0,y0=0,
z0=0,tx=0,ty=0;
433 sscanf(buf+strlen(key),
"%f %f %f %f %f",&x0,&y0,&
z0,&tx,&ty);
435 }
436 else if ( !strcmp(key,"VOLUMEA") )
437 {
438 float dx=0,dy=0;
439 sscanf(buf+strlen(key),"%f %f",&dx,&dy);
441 }
442 else if ( !strcmp(key,"CLUST") )
443 {
444 int icl=0;
445 sscanf(buf+strlen(key),"%d",&icl);
447 }
448 }
450
451 return 0;
452}
brick z0
Definition: RecDispMC.C:106
void SetCutGR(float chi)
Definition: EdbDataSet.h:95
void AddRCut(int layer, TCut &cut)
Definition: EdbDataSet.cxx:235
void AddSegmentCut(int layer, int xi, float var[10])
Definition: EdbDataSet.cxx:217
EdbScanCond * GetMakeCond(int id)
Definition: EdbDataSet.cxx:258
void SetVolume0(float x0, float y0, float z0, float tx=0, float ty=0)
Definition: EdbDataSet.cxx:455
void SetVolumeA(float dx, float dy)
Definition: EdbDataSet.h:70
EdbLayer * GetMakeLayer(int id)
Definition: EdbDataSet.cxx:208
int ReadPiecePar(const char *file)
Definition: EdbDataSet.cxx:282
void AddCutCP(float var[6])
Definition: EdbDataSet.cxx:245
void SetAffTXTY(float a11, float a12, float a21, float a22, float b1, float b2)
Definition: EdbLayer.h:104
void SetAffXY(float a11, float a12, float a21, float a22, float b1, float b2)
Definition: EdbLayer.h:102
void SetZlayer(float z, float zmin, float zmax)
Definition: EdbLayer.h:101
void SetOffset(float x, float y)
Definition: EdbScanCond.h:68
void SetPulsRamp0(float p1, float p2)
Definition: EdbScanCond.h:74
void SetChi2Max(float chi2)
Definition: EdbScanCond.h:83
void SetDegrad(float d)
Definition: EdbScanCond.h:71
void SetChi2Mode(int mode)
Definition: EdbScanCond.h:88
void SetSigmaGR(float sx, float sy, float sz)
Definition: EdbScanCond.h:60
void SetSigma0(float x, float y, float tx, float ty)
Definition: EdbScanCond.h:62
void SetBins(float bx, float by, float btx, float bty)
Definition: EdbScanCond.h:65
void SetPulsRamp04(float p1, float p2)
Definition: EdbScanCond.h:75
void SetRadX0(float x0)
Definition: EdbScanCond.h:57
void SetChi2PMax(float chi2)
Definition: EdbScanCond.h:84