#include <iostream.h>

#include "TFndGtsMon.h"
#include "TDirectory.h"
#include "TObjArray.h"

ClassImp(TFndGtsMon);

 TFndGtsMon::TFndGtsMon(const char *fmode) {

   gts_mon = 0;   

   const char *fhist = "_gts.root";
   const char *fonl = "onl";
   
   shmflg = 0;
   if(!strcmp(fmode,fonl)) shmflg = 1;
   //cout << "Online flag is " << onlflg << endl;

   Int_t ilen = strlen(fmode)+strlen(fhist);
   Char_t *fgtsnam = new Char_t[ilen];
   strcpy(fgtsnam,fmode);
   fgtsnam = strcat(fgtsnam,fhist);
   fgts = new TFile(fgtsnam,"RECREATE","Gts Histogram File");   

   if(shmflg) {
     const char *mfngts = "gts.map";
     mgts = TMapFile::Create(mfngts,"RECREATE",2000000,"Gts memory mapped file with histograms");
     mgts->Print();
   }

   corbo_deadtime = new TH1F("DeadTime", "Dead_Time",10, -0.5,9.5); 
   ioreg = new TH1F("I/O_register", "Trigger_Pattern",8,0.5,8.5);      
   ioreg->SetFillColor(3);
   camacscaler = new TH1F("Camac_Scaler", "Camac Scaler",16,0.5,16.5);;
   camacscaler->SetFillColor(4);
}

 TFndGtsMon::TFndGtsMon() {
    mgts = TMapFile::Create("gts.map","UPDATE");
    mgts->Print();
    gts_mon = new TCanvas("gts_mon","GTS Monitor Canvas",640,10,600,600); 
    
    gts1d = 0;
}

 TFndGtsMon::~TFndGtsMon() {
  if(fgts) fgts->Close();
  delete fgts;
  mgts->Close();
  delete mgts;
  delete ioreg;
  delete corbo_deadtime;
  delete camacscaler;

  delete gts_mon;

  gts1d = 0;
  delete gts1d;
}

 void TFndGtsMon::Fill(TFndHdt *fndhdt) {

       TFndTrig *fTrig = fndhdt->GetTrig();
       TFndCorbo *fcorbo = fTrig->GetCorbo();
       Int_t dead = fcorbo->GetDeadtime(0);
       corbo_deadtime->Fill((Float_t) dead);

       if(fTrig->GetTB()) ioreg->Fill(1.);
       if(fTrig->GetTBCtfCtr()) ioreg->Fill(2.);
       if(fTrig->GetCtr()) ioreg->Fill(5.);
       if(fTrig->GetCtf()) ioreg->Fill(6.);
       /*
       camacscaler->SetTextSize(0.05);
       char scstr[40];
       */
       camacscaler->Reset();
       for(Int_t i=0; i<16; i++) {
	 Int_t CamacScaler = fTrig->GetScal(i);
	 camacscaler->Fill((Float_t) i+1,(Float_t) CamacScaler);
	 /*
	 sprintf(scstr,"Channel %d, Constant %dn",i,CamacScaler);
	 Int_t y = 0.9 - 0.05*(i+1);
	 camacscaler->AddText(0.15,y,scstr);
	 */
	 
       }
}

 void TFndGtsMon::Update() {

  mgts->Update();

}

 void TFndGtsMon::WriteToFile() {
  fgts->cd();
  corbo_deadtime->Write();
  ioreg->Write();
  camacscaler->Write();
}

 void TFndGtsMon::Streamer(TBuffer &R__b) {}


















ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.