Exemplo n.º 1
0
void
iAIDA::AIDA_HBookStore::HBook::bookFixedBin1DHisto(const int& id, const std::string title,
						    const int& nb, const float& lowX, const float& highX)
{
  int   tid          = id;
  std::string ttitle = title;
  int   n            = nb;
  float lx           = lowX;
  float hx           = highX;
  float words        = 0;
  hbook1_(&tid, const_cast<char*>(ttitle.c_str()), 
	  &n, &lx, &hx, &words, ttitle.length());
}
Exemplo n.º 2
0
main(int argc, char **argv)
{
  int nr,sec,layer,strip,wire,nl,ncol,nrow,i,j,l,l1,l2,ichan,nn,iev,ii;
  int ind,ind1,ind2,status,status1,handle,handle1,k,m,rocid;
  int scal,nw,scaler,scaler_old;
  unsigned int hel,str,strob,helicity,strob_old,helicity_old, tgbi1;
  int tmp1 = 1, tmp2 = 2, iret, bit1, bit2, leading[2000], trailing[2000], nleading, ntrailing;
  float *bcsfl, rndm_();
  char strr[1000], bankname[5], histname[128];
  static int syn[32], id;
  MTDCHead *mtdchead;
  MTDC *mtdc;

  char *HBOOKfile = "schist.his";
  int nwpawc,lun,lrec,istat,icycle,idn,nbins,nbins1,igood,offset;
  float x1,x2,y1,y2,ww,tmpx,tmpy,ttt,ref;
  unsigned short *tlv1, *tlv2, *buf16;

  printf(" dchist reached !\n");

  if(argc != 2)
  {
    printf("Usage: dchist <fpack_filename>\n");
    exit(1);
  }



  bcsfl = (float*)bcs_.iw;
  bosInit(bcs_.iw,NBCS);


  nwpawc = NWPAWC;
  hlimit_(&nwpawc);
  lun = 11;
  lrec = LREC;
  hropen_(&lun,"NTUPEL",HBOOKfile,"N",&lrec,&istat,
     strlen("NTUPEL"),strlen(HBOOKfile),1);
  if(istat)
  {
    printf("\aError: cannot open RZ file %s for writing.\n", HBOOKfile);
    exit(0);
  }
  else
  {
    printf("RZ file >%s< opened for writing, istat = %d\n\n", HBOOKfile, istat);
  }



  nbins=200;
  x1 = 0.;
  x2 = 2000.;
  ww = 0.;

  for(k=1; k<=6; k++)
  {
    for(j=1; j<=2; j++)
    {
      for(i=1; i<=57; i++)
      {
        if(j==1) sprintf(histname,"ADC: sec %1d slab %2d left",k,i);
        else sprintf(histname,"ADC: sec %1d slab %2d right",k,i);

        idn = k*1000+j*100+i;
        hbook1_(&idn,histname,&nbins,&x1,&x2,&ww,strlen(histname));
      }
    }
  }

  /*
  nbins=100;
  x1 = 0.;
  x2 = 10000.;
  nbins1=100;
  y1 = 0.;
  y2 = 10000.;
  ww = 0.;
  idn=3;
  sprintf(histname,"Reference: channel1 vs channel2",idn);
  hbook2_(&idn,histname,&nbins,&x1,&x2,&nbins1,&y1,&y2,&ww,strlen(histname));
  idn=4;
  sprintf(histname,"Reference: channel1 vs channel2 (sync)",idn);
  hbook2_(&idn,histname,&nbins,&x1,&x2,&nbins1,&y1,&y2,&ww,strlen(histname));
  */




  sprintf(strr,"OPEN INPUT UNIT=1 FILE='%s' ",argv[1]);
  printf("fparm string: >%s<\n",strr);
  status = fparm_(strr,strlen(strr));
  for(iev=0; iev<1000000; iev++)
  {
    frbos_(bcs_.iw,&tmp1,"E",&iret,1);

    if(!(iev%10000)) printf("===== Event no. %d\n",iev);



    for(k=1; k<=6; k++)
    {
    if((ind1=bosNlink(bcs_.iw,"SC  ",k)) > 0)
    {
      unsigned int *fb, *fbend;
      unsigned short *fb16;
      int crate,slot,channel,edge,data,ncol1,nrow1,adc1,adc2;

      ncol1 = bcs_.iw[ind1-6];
      nrow1 = bcs_.iw[ind1-5];
      nw = nrow1;
      offset = 0;
	  /*
      printf("ncol=%d nrow=%d nw=%d\n",ncol1,nrow1,nw);
	  */
      ww = 1.0;

      /*printf("\n");*/

      fb16 = (unsigned short *)&bcs_.iw[ind1];
      for(ii=0; ii<nrow1; ii++)
      {
        wire = (fb16[0])&0xFF;
        adc1 = fb16[2];
        adc2 = fb16[4];
		
        /*if(k==1) printf("sec=%d wire=%d adc1=%d adc2=%d (0x%08x)\n",
        k,wire,adc1,adc2,fb16);*/
		
		  
        if(wire>0&&wire<58)
        {
          tmpx = adc1;
          layer = 1;
          idn=k*1000+layer*100+wire;
          if(tmpx>0.)
          {
            /*if(k==1) printf("wire=%d idn=%d,tmpx=%f\n",wire,idn,tmpx);*/
            hf1_(&idn,&tmpx,&ww);
		  }

          tmpx = adc2;
          layer = 2;
          idn=k*1000+layer*100+wire;
          if(tmpx>0.) hf1_(&idn,&tmpx,&ww);
		}
        else
        {
          printf("ERROR: sec=%d layer=%d wire=%d (0x%08x)\n",k,layer,wire,*fb);
        }

        fb16 += 5;
	  }
	}
	}





	/* */

    if(iret == -1 || iret > 0)
    {
      printf(" End-of-File flag, iret =%d\n",iret);
      goto a111111;
    }
    else if(iret < 0)
    {
      printf(" Error1, iret =%d\n",iret);
      goto a111111;
    }
    if(iret != 0)
    {
      printf(" Error2, iret =%d\n",iret);
    }
    bdrop_(bcs_.iw,"E",1);
    bgarb_(bcs_.iw);
  }
a111111:

  fparm_("CLOSE",5);

  /* closing HBOOK file */
  idn = 0;
  hrout_(&idn,&icycle," ",1);
  /*hprint_(&idn);*/
  hrend_("NTUPEL", 6);



  exit(0);

  /* end of v1190 test */

}
Exemplo n.º 3
0
main(int argc, char **argv)
{
  int nr,sec,layer,strip,wire,nl,ncol,nrow,i,j,l,l1,l2,ichan,nn,iev;
  int iev_START, iev_STOP, done=0;
  BOSIO *descriptor;
  int nevent=0;
  int crate,slot,connector, tdc_width;
  int ind,ind1,ind2,status,status1,handle,handle1,k,m,rocid;
  int scal,nw,scaler,scaler_old, counter,dccount[7],rccount[7];
  unsigned int hel,str,strob,helicity,strob_old,helicity_old, tgbi1;
  int tmp1 = 1, tmp2 = 2, iret, bit1, bit2, nleading, ntrailing;
  float *bcsfl, rndm_();
  char strr[1000], bankname[5], histname[128];
  static int syn[32], id;
  MTDCHead *mtdchead;
  MTDC *mtdc;
  unsigned int leading[20000], trailing[20000];

  char *HBOOKfile = "dsc2hist.his";
  int nwpawc,lun,lrec,istat,icycle,idn,nbins,nbins1,igood,offset;
  float x1,x2,y1,y2,ww,tmpx,tmpy,ttt,ref;
  unsigned short *tlv1, *tlv2, *buf16;

  printf("\n dsc2hist reached !\n");

  /*
  leading = (int *)malloc(80000);
  trailing = (int *)malloc(80000);
  */

  if(argc != 4)
  {
    printf("\n Usage: dsc2hist data_file iev_START iev_STOP \n\n");
    exit(1);
  }
  else
  {
    iev_START  = atoi(argv[2]);
    iev_STOP   = atoi(argv[3]);
  }
  printf("===============\n");
  printf("argv0:    >%s<\n",argv[0]);
  printf("argv1:    >%s<\n",argv[1]);
  printf("argv2:    >%s<   iev_START = %d \n",argv[2],iev_START);
  printf("argv3:    >%s<   iev_STOP  = %d \n",argv[3],iev_STOP);
  printf("TDC_slot: >%d<\n",TDC_SLOT);
  printf("---------------\n");


  bcsfl = (float*)bcs_.iw;
  bosInit(bcs_.iw,NBCS);


  nwpawc = NWPAWC;
  hlimit_(&nwpawc);
  lun = 11;
  lrec = LREC;
  hropen_(&lun,"NTUPEL",HBOOKfile,"N",&lrec,&istat,
     strlen("NTUPEL"),strlen(HBOOKfile),1);
  if(istat)
  {
    printf("\aError: cannot open RZ file %s for writing.\n", HBOOKfile);
    exit(0);
  }
  else
  {
    printf("RZ file >%s< opened for writing, istat = %d\n\n", HBOOKfile, istat);
    chmod(HBOOKfile,0666);
  }


  /*
  nbins=200;
  x1 = 400.;
  x2 = 600.;
  */
  nbins=8000;
  x1 = 0.;
  x2 = 8000.;
  ww = 0.;
  for(idn=1; idn<=16; idn++)
  {
    sprintf(histname,"TDC%02d",idn-1);
    hbook1_(&idn,histname,&nbins,&x1,&x2,&ww,strlen(histname));
  }

  /*
  nbins=1000;
  x1 = 5500.;
  x2 = 6500.;
  */
  nbins=8000;
  x1 = 0.;
  x2 = 8000.;
  ww = 0.;
  for(idn=17; idn<=32; idn++)
  {
    sprintf(histname,"TRG%02d",idn-17);
    hbook1_(&idn,histname,&nbins,&x1,&x2,&ww,strlen(histname));
  }

  /*
  nbins=250;
  x1 = 0.;
  x2 = 250.;
  nbins1=500;
  y1 = 0.;
  y2 = 500.;
  ww = 0.;
  for(idn=201; idn<=206; idn++)
  {
    sprintf(histname,"DC load REG1 SEC%1d",idn-200);
    hbook2_(&idn,histname,&nbins,&x1,&x2,&nbins1,&y1,&y2,&ww,strlen(histname));
  }
  */

  sprintf(strr,"OPEN INPUT UNIT=1 FILE='%s' ",argv[1]);
  printf("fparm string: >%s<\n",strr);
  status = fparm_(strr,strlen(strr));


  while(done==0) /* skip loop */
  {
    nevent++;
    if(nevent>iev_START)
    {
      done = 1;
    }
    else
    {
      frbos_(bcs_.iw,&tmp1,"E",&iret,1);
      bdrop_(bcs_.iw,"E",1);
      bgarb_(bcs_.iw);
      if(iret == -1 || iret > 0)
      {
	printf(" End-of-File flag, iret =%d\n",iret);
	goto a111111;
      }
      else if(iret < 0)
      {
	printf(" Error1, iret =%d\n",iret);
	goto a111111;
      }
    }
  }


  /*
  for(iev=0; iev<100000; iev++)
  */
  for(iev=iev_START; iev<iev_STOP; iev++)
  {
    frbos_(bcs_.iw,&tmp1,"E",&iret,1);

    if(!(iev%5000)) printf("===== Event no. %d\n",iev);

    if((ind1=bosNlink(bcs_.iw,"RC00",0)) > 0)
    {
      unsigned int *fb, *fbend;
      int crate,slot,channel,edge,data,count,ncol1,nrow1;
      int ndata0[22], data0[21][8];
      int baseline, ii;
      int ref;

      ncol1 = bcs_.iw[ind1-6];
      nrow1 = bcs_.iw[ind1-5];
      nw = nrow1;
      offset = 0;
      /*
      printf("ind1=%d  ncol=%d nrow=%d nw=%d\n",ind1,ncol1,nrow1,nw);
      */
      ww = 1.0;

      /* printf("\n"); */

      /* pass 0: find reference */
      fb = (unsigned int *)&bcs_.iw[ind1];
      fbend = fb + nrow1;
      /*fb += 6;*/
      ii=0;
      ref=0;
      tdc_width=*(fbend-1);
      printf("tdc_width=%d\n",tdc_width);
      while(fb<fbend /*&& ii<32*/)
      {
        slot=((*fb)>>27)&0x1f;
        edge=((*fb)>>26)&0x1;
        channel=((*fb)>>21)&0x1f;
        data=(*fb)&0xfffff;

        if(slot==0)
        {
          printf("\n[%3d] board header: slot=%d len=%d\n",ii,(*fb)&0x1F,((*fb)>>5)&0x3FFF);
		}
	    else
        {
          printf("[%3d] slot %d chan %d -> data %d (%d)\n",ii,slot,channel,data,data+2000-ref);

          if((ref == 0) && (channel == 0) && (slot == TDC_SLOT))
          {
            ref = data;
		  /*
          printf("ref=%d\n",ref); 
		  */
          }
		}
        ii ++;
        fb ++;
      }
Exemplo n.º 4
0
void hbook1(int no, char*name, int nbins, float min, float max, float v)
{
    hbook1_(&no, name, &nbins, &min, &max, &v, strlen(name));
}