Esempio n. 1
0
int read_events()
{
    int ierr, i, j, lbl;
    int istr = 0;
    int nevt = 50;
    char filein[80];
    char txtfile[80];
    FILE *output;

    strcpy(filein,"testCInOut.io\0");
    strcpy(txtfile,"testCInOutRead.txt\0");
    output = fopen(txtfile,"w");
    ierr = StdHepXdrReadOpen(filein, nevt, istr);
    for (i = 0; i < nevt; i++) {
        ierr = StdHepXdrRead(&lbl,istr);
        if (ierr == 0) {
            fprintf(output," at event %d with %d particles\n",
                     hepevt_.nevhep, hepevt_.nhep);
            j = 17 + i;
            fprintf(output,"  momentum of particle %d is %.3f %.3f %.3f %.3f %.3f\n",
                    j,hepevt_.phep[j][0],hepevt_.phep[j][1],
		    hepevt_.phep[j][2],hepevt_.phep[j][3],hepevt_.phep[j][4]);
        } else {
            printf(" unexpected end of file after %d events\n",i);
            exit(0);
            }
    }
    printf(" %d events read\n",i);
    fprintf(output," %d events\n",i);
    StdHepXdrEnd(istr);
    return i;
}
Esempio n. 2
0
int main(int argc,char **argv)
{
  char *argptr;
  int i,ntries=0,ret,gotANevent,written=0;
  int ilbl=1,istream=0,nparts=0;/*I guessed at istream */ 
  int kludge_beam =-1;
  char *evtfile ="default.evt";
  char outputfile[40];
  FILE *outputfp=stdout;
  mc_evt_t mc_evt;



  if (argc == 1){
    PrintUsage(argv[0]);
    exit (0);
  }
   else { /* good start */
    for (i=1; i<argc; i++) {
      argptr = argv[i];
      if ((*argptr == '-') && (strlen(argptr) > 1)) {
        argptr++;
        switch (*argptr) {
        case 'd':
          Debug =2;
          break;
	  case 'n':
          nparts=atoi(++argptr);
          break;
	  case 'g':
          kludge_beam=atoi(++argptr);
	  fprintf(stderr,"Writing gamp format kludge beam of %d\n",kludge_beam);
          break;
        case 'N':
          ntries=atoi(++argptr);
          break;
	case 'o':
          sprintf(outputfile,"%s",++argptr);
	  if(!(outputfp = fopen(outputfile,"w"))){
            fprintf(stderr,"Fail to open output file!\n");
            exit(-1);
          }
          break;
	case 'i':
	  evtfile= ++argptr;
          break;
	case 'h':
          PrintUsage(argv[0]);
          exit(0);
          break;
	default:
          fprintf(stderr,"Unrecognized argument -%s\n\n",argptr);
          PrintUsage(argv[0]);    
          exit(-1);
          break;
        }
      }
    }

    /* main code */

    /*
     * Open and init a stdhep file.
     */
    
    if(ret=StdHepXdrReadInit(evtfile,ntries, istream)){
      /* some error must have occured */
      fprintf(stderr,"err:StdHepXdrReadInit ret=%d\n",ret);
      exit(-1);
    }
    
    /*
     * Fill the mc_part_t structure from the HEPEVENT structure.
     */
      
    for(i=0;i<ntries;i++){
      if(ret=StdHepXdrRead(&ilbl,istream)){/* some error must have occured */
	fprintf(stderr,"err:StdHepXdrRead ret=%d\n",ret);
	exit(-1); 
      }
      fill_mc_parts(&mc_evt);
      if(kludge_beam>0)
	write_gamp_parts(outputfp,&mc_evt,kludge_beam);
      else
	write_mc_parts(outputfp,&mc_evt);
      if(!(++written %100))
	fprintf(stderr,"McFast events Read: %d\r",written);  
    }

    fprintf(stderr,"\nTotal McFast events Read: %d\n",written);  
  
    /*
     * Close the StdHep file and exit.
     */

     StdHepXdrEnd(istream);
     exit(0);

   } /* end of else /* good start */
} /* end of main */