#include <iostream.h>
#include "TFndLmdMon.h"
#include "TDirectory.h"
#include "TFndHLmd.h"
#include "TObjArray.h"
ClassImp(TFndLmdMon);
TFndLmdMon::TFndLmdMon(const char *fmode,Int_t lmd_tdc_bins,Double_t lmd_tdc_min,Double_t lmd_tdc_max) {
Int_t lmd_adc_bins = 103;
Double_t lmd_adc_min = 0.;
Double_t lmd_adc_max = 4120.;
lmd_mon_adc = 0;
lmd_mon_tdc = 0;
lmd_mon_adc_tdc = 0;
const char *fhist = "_lmd.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 *flmdnam = new Char_t[ilen];
strcpy(flmdnam,fmode);
flmdnam = strcat(flmdnam,fhist);
flmd = new TFile(flmdnam,"RECREATE","Lmd Histogram File");
if(shmflg) {
const char *mfnlmd = "lmd.map";
//TMapFile::SetMapAddress(0x40f12000);
mlmd = TMapFile::Create(mfnlmd,"RECREATE",2000000,"Lmd memory mapped file with histograms");
mlmd->Print();
}
lmdmult = new TH1F("lmdmult","Lmd multiplicity",200,-0.5,199.5);
lmdmap = new TH2F("lmdmap","Lmd Hit Pattern (Wire vs Drift Number)",20,10.5,30.5,24,0.5,24.5);
lmdmapadc0 = new TH2F("lmdmapadc0","Lmd ADC pattern (F || R != 0)",20,10.5,30.5,24,0.5,24.5);
lmdmapadc00 = new TH2F("lmdmapadc00","Lmd ADC pattern (F && R != 0)",20,10.5,30.5,24,0.5,24.5);
lmdmapadcf = new TH2F("lmdmapadcf","Lmd ADC pattern (Front)",20,10.5,30.5,24,0.5,24.5);
lmdmapadcr = new TH2F("lmdmapadcr","Lmd ADC pattern (Rear)",20,10.5,30.5,24,0.5,24.5);
lmdmaptdc0 = new TH2F("lmdmaptdc0","Lmd TDC pattern (F || R != 0)",20,10.5,30.5,24,0.5,24.5);
lmdmaptdc00 = new TH2F("lmdmaptdc00","Lmd TDC pattern (F && R != 0)",20,10.5,30.5,24,0.5,24.5);
lmdmaptdcf = new TH2F("lmdmaptdcf","Lmd TDC pattern (Front)",20,10.5,30.5,24,0.5,24.5);
lmdmaptdcr = new TH2F("lmdmaptdcr","Lmd TDC pattern (Rear)",20,10.5,30.5,24,0.5,24.5);
char hname[40];
char htitle[80];
cout << nlayers << " layers" << endl;
for (Int_t ji=0;ji<nlayers;ji++) {
for (Int_t j=0;j<ndchs;j++) {
Int_t id = ndchs*ji + j;
sprintf(hname,"lmd_all_mapadctdc_%d_%d",ji+1,j+1);
sprintf(htitle,"ADC F/R vs TDC F/R for dch: %d in layer: %d",j+1,ji+1);
lmd_all_mapadctdc[id] = new TH2F(hname,htitle,4,-0.5,3.5,4,-0.5,3.5);
sprintf(hname,"lmd_all_adc_tdc_%d_%d",ji+1,j+1);
sprintf(htitle,"ADC vs TDC for dch: %d in layer: %d",j+1,ji+1);
lmd_all_adc_tdc[id] = new TH2F(hname,htitle,50,lmd_tdc_min,lmd_tdc_max,50,lmd_adc_min,lmd_adc_max);
}
}
for (Int_t jl=0;jl<nwire2;jl++) {
sprintf(hname,"lmd_27_adc_tdc_%d",jl+1);
sprintf(htitle,"ADC vs TDC for dch: 7 in layer: 2 wire: %d",jl+1);
lmd_27_adc_tdc[jl] = new TH2F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
}
// LMD inner ADC
if(shmflg) {
const char *mfnlmd_i_adc = "lmd_inner_adc.map";
//TMapFile::SetMapAddress(0x410fb000);
mlmd_i_adc = TMapFile::Create(mfnlmd_i_adc,"RECREATE",2000000,"Lmd memory mapped file with INNER ADC histograms");
mlmd_i_adc->Print();
}
for (Int_t j=0;j<ndchs;j++) {
sprintf(hname,"lmd_all_adcf_%d_%d",1,j+1);
sprintf(htitle,"ADC Front for dch: %d in layer: %d",j+1,1);
lmd_all_adcf[j] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adcf[j]->SetFillColor(6);
sprintf(hname,"lmd_all_adcr_%d_%d",1,j+1);
sprintf(htitle,"ADC Rear for dch: %d in layer: %d",j+1,1);
lmd_all_adcr[j] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adcr[j]->SetFillColor(7);
sprintf(hname,"lmd_all_crg_%d_%d",1,j+1);
sprintf(htitle,"ADC Front + Rear for dch: %d in layer: %d",j+1,1);
lmd_all_crg[j] = new TH1F(hname,htitle,lmd_adc_bins,2*lmd_adc_min,2*lmd_adc_max);
lmd_all_crg[j]->SetFillColor(9);
sprintf(hname,"lmd_all_adc_%d_%d",1,j+1);
sprintf(htitle,"ADC Front vs Rear for dch: %d in layer: %d",j+1,1);
lmd_all_adc[j] = new TH2F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adc[j]->SetFillColor(8);
for (Int_t l=0;l<nwire1;l++) {
Int_t k = l+j*nwire1;
sprintf(hname,"lmdadcf_%d_%d_%d",1,j+1,l+1);
sprintf(htitle,"ADC Front for wire: %d dch: %d in layer: %d",l+1,j+1,1);
lmdadcf[k] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmdadcf[k]->SetFillColor(6);
sprintf(hname,"lmdadcr_%d_%d_%d",1,j+1,l+1);
sprintf(htitle,"ADC Rear for wire: %d dch: %d in layer: %d",l+1,j+1,1);
lmdadcr[k] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmdadcr[k]->SetFillColor(7);
sprintf(hname,"lmdcrg_%d_%d_%d",1,j+1,l+1);
sprintf(htitle,"ADC Front + Rear for wire: %d dch: %d in layer: %d",l+1,j+1,1);
lmdcrg[k] = new TH1F(hname,htitle,lmd_adc_bins,2*lmd_adc_min,2*lmd_adc_max);
lmdcrg[k]->SetFillColor(9);
sprintf(hname,"lmdadc_%d_%d_%d",1,j+1,l+1);
sprintf(htitle,"ADC Front vs Rear for wire: %d dch: %d in layer: %d",l+1,j+1,1);
//lmdadc[k] = new TH2F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
//lmdadc[k]->SetFillColor(8);
}
}
// LMD inner TDC
if(shmflg) {
const char *mfnlmd_i_tdc = "lmd_inner_tdc.map";
//TMapFile::SetMapAddress(0x415c0000);
mlmd_i_tdc = TMapFile::Create(mfnlmd_i_tdc,"RECREATE",2000000,"Lmd memory mapped file with INNER TDC histograms");
mlmd_i_tdc->Print();
}
for (Int_t ij=0;ij<ndchs;ij++) {
sprintf(hname,"lmd_all_tdcf_%d_%d",1,ij+1);
sprintf(htitle,"TDC Front for dch: %d in layer: %d",ij+1,1);
lmd_all_tdcf[ij] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdcf[ij]->SetFillColor(6);
sprintf(hname,"lmd_all_tdcr_%d_%d",1,ij+1);
sprintf(htitle,"TDC Rear for dch: %d in layer: %d",ij+1,1);
lmd_all_tdcr[ij] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdcr[ij]->SetFillColor(7);
sprintf(hname,"lmd_all_tdf_%d_%d",1,ij+1);
sprintf(htitle,"TDC Front - Rear for dch: %d in layer: %d",ij+1,1);
lmd_all_tdf[ij] = new TH1F(hname,htitle,100,-50.,50.);
lmd_all_tdf[ij]->SetFillColor(9);
sprintf(hname,"lmd_all_tdc_%d_%d",1,ij+1);
sprintf(htitle,"TDC Front vs Rear for dch: %d in layer: %d",ij+1,1);
lmd_all_tdc[ij] = new TH2F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdc[ij]->SetFillColor(8);
for (Int_t l=0;l<nwire1;l++) {
Int_t k = l+ij*nwire1;
sprintf(hname,"lmdtdcf_%d_%d_%d",1,ij+1,l+1);
sprintf(htitle,"TDC Front for wire: %d dch: %d in layer: %d",l+1,ij+1,1);
lmdtdcf[k] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmdtdcf[k]->SetFillColor(6);
sprintf(hname,"lmdtdcr_%d_%d_%d",1,ij+1,l+1);
sprintf(htitle,"TDC Rear for wire: %d dch: %d in layer: %d",l+1,ij+1,1);
lmdtdcr[k] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmdtdcr[k]->SetFillColor(7);
sprintf(hname,"lmdtdf_%d_%d_%d",1,ij+1,l+1);
sprintf(htitle,"TDC Front - Rear for wire: %d dch: %d in layer: %d",l+1,ij+1,1);
lmdtdf[k] = new TH1F(hname,htitle,100,-50,50);
lmdtdf[k]->SetFillColor(9);
sprintf(hname,"lmdtdc_%d_%d_%d",1,ij+1,l+1);
sprintf(htitle,"TDC Front vs Rear for wire: %d dch: %d in layer: %d",l+1,ij+1,1);
//lmdtdc[k] = new TH2F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
//lmdtdc[k]->SetFillColor(8);
}
}
// LMD outer ADC
if(shmflg) {
const char *mfnlmd_o_adc = "lmd_outer_adc.map";
//TMapFile::SetMapAddress(0x41a85000);
mlmd_o_adc = TMapFile::Create(mfnlmd_o_adc,"RECREATE",2000000,"Lmd memory mapped file with OUTER ADC histograms");
mlmd_o_adc->Print();
}
for (Int_t jj=0;jj<ndchs;jj++) {
Int_t lk = jj+ndchs;
sprintf(hname,"lmd_all_adcf_%d_%d",2,jj+1);
sprintf(htitle,"ADC Front for dch: %d in layer: %d",jj+1,2);
lmd_all_adcf[lk] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adcf[lk]->SetFillColor(6);
sprintf(hname,"lmd_all_adcr_%d_%d",2,jj+1);
sprintf(htitle,"ADC Rear for dch: %d in layer: %d",jj+1,2);
lmd_all_adcr[lk] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adcr[lk]->SetFillColor(7);
sprintf(hname,"lmd_all_crg_%d_%d",2,jj+1);
sprintf(htitle,"ADC Front + Rear for dch: %d in layer: %d",jj+1,2);
lmd_all_crg[lk] = new TH1F(hname,htitle,lmd_adc_bins,2*lmd_adc_min,2*lmd_adc_max);
lmd_all_crg[lk]->SetFillColor(9);
sprintf(hname,"lmd_all_adc_%d_%d",2,jj+1);
sprintf(htitle,"ADC Front vs Rear for dch: %d in layer: %d",jj+1,2);
lmd_all_adc[lk] = new TH2F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmd_all_adc[lk]->SetFillColor(8);
for (Int_t l=0;l<nwire2;l++) {
Int_t k = l+jj*nwire2+nwire1*ndchs;
sprintf(hname,"lmdadcf_%d_%d_%d",2,jj+1,l+1);
sprintf(htitle,"ADC Front for wire: %d dch: %d in layer: %d",l+1,jj+1,2);
lmdadcf[k] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmdadcf[k]->SetFillColor(6);
sprintf(hname,"lmdadcr_%d_%d_%d",2,jj+1,l+1);
sprintf(htitle,"ADC Rear for wire: %d dch: %d in layer: %d",l+1,jj+1,2);
lmdadcr[k] = new TH1F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
lmdadcr[k]->SetFillColor(7);
sprintf(hname,"lmdcrg_%d_%d_%d",2,jj+1,l+1);
sprintf(htitle,"ADC Front + Rear for wire: %d dch: %d in layer: %d",l+1,jj+1,2);
lmdcrg[k] = new TH1F(hname,htitle,lmd_adc_bins,2*lmd_adc_min,2*lmd_adc_max);
lmdcrg[k]->SetFillColor(9);
sprintf(hname,"lmdadc_%d_%d_%d",2,jj+1,l+1);
sprintf(htitle,"ADC Front vs Rear for wire: %d dch: %d in layer: %d",l+1,jj+1,2);
//lmdadc[k] = new TH2F(hname,htitle,lmd_adc_bins,lmd_adc_min,lmd_adc_max,lmd_adc_bins,lmd_adc_min,lmd_adc_max);
//lmdadc[k]->SetFillColor(8);
}
}
// LMD outer TDC
if(shmflg) {
const char *mfnlmd_o_tdc = "lmd_outer_tdc.map";
//TMapFile::SetMapAddress(0x41f4a000);
mlmd_o_tdc = TMapFile::Create(mfnlmd_o_tdc,"RECREATE",2000000,"Lmd memory mapped file with OUTER TDC histograms");
mlmd_o_tdc->Print();
}
for (Int_t jk=0;jk<ndchs;jk++) {
Int_t mk = jk+ndchs;
sprintf(hname,"lmd_all_tdcf_%d_%d",2,jk+1);
sprintf(htitle,"TDC Front for dch: %d in layer: %d",jk+1,2);
lmd_all_tdcf[mk] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdcf[mk]->SetFillColor(6);
sprintf(hname,"lmd_all_tdcr_%d_%d",2,jk+1);
sprintf(htitle,"TDC Rear for dch: %d in layer: %d",jk+1,2);
lmd_all_tdcr[mk] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdcr[mk]->SetFillColor(7);
sprintf(hname,"lmd_all_tdf_%d_%d",2,jk+1);
sprintf(htitle,"TDC Front - Rear for dch: %d in layer: %d",jk+1,2);
lmd_all_tdf[mk] = new TH1F(hname,htitle,100,-50.,50.);
lmd_all_tdf[mk]->SetFillColor(9);
sprintf(hname,"lmd_all_tdc_%d_%d",2,jk+1);
sprintf(htitle,"TDC Front vs Rear for dch: %d in layer: %d",jk+1,2);
lmd_all_tdc[mk] = new TH2F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmd_all_tdc[mk]->SetFillColor(8);
for (Int_t l=0;l<nwire2;l++) {
Int_t k = l+jk*nwire2+nwire1*ndchs;
sprintf(hname,"lmdtdcf_%d_%d_%d",2,jk+1,l+1);
sprintf(htitle,"TDC Front for wire: %d dch: %d in layer: %d",l+1,jk+1,2);
lmdtdcf[k] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmdtdcf[k]->SetFillColor(6);
sprintf(hname,"lmdtdcr_%d_%d_%d",2,jk+1,l+1);
sprintf(htitle,"TDC Rear for wire: %d dch: %d in layer: %d",l+1,jk+1,2);
lmdtdcr[k] = new TH1F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
lmdtdcr[k]->SetFillColor(7);
sprintf(hname,"lmdtdf_%d_%d_%d",2,jk+1,l+1);
sprintf(htitle,"TDC Front - Rear for wire: %d dch: %d in layer: %d",l+1,jk+1,2);
lmdtdf[k] = new TH1F(hname,htitle,100,-50,50);
lmdtdf[k]->SetFillColor(9);
sprintf(hname,"lmdtdc_%d_%d_%d",2,jk+1,l+1);
sprintf(htitle,"TDC Front vs Rear for wire: %d dch: %d in layer: %d",l+1,jk+1,2);
//lmdtdc[k] = new TH2F(hname,htitle,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max,lmd_tdc_bins,lmd_tdc_min,lmd_tdc_max);
//lmdtdc[k]->SetFillColor(8);
}
}
}
TFndLmdMon::TFndLmdMon() {
mlmd = TMapFile::Create("lmd.map","UPDATE");
mlmd->Print();
mlmd_i_adc = TMapFile::Create("lmd_inner_adc.map","UPDATE");
mlmd_i_adc->Print();
mlmd_i_tdc = TMapFile::Create("lmd_inner_tdc.map","UPDATE");
mlmd_i_tdc->Print();
mlmd_o_adc = TMapFile::Create("lmd_outer_adc.map","UPDATE");
mlmd_o_adc->Print();
mlmd_o_tdc = TMapFile::Create("lmd_outer_tdc.map","UPDATE");
mlmd_o_tdc->Print();
lmd_mon_adc = new TCanvas("lmd_mon_adc","Drift Chambers ADCs",10,10,600,600);
lmd_mon_tdc = new TCanvas("lmd_mon_tdc","Drift Chambers TDCs",640,10,600,600);
lmd_mon_adc_tdc = new TCanvas("lmd_mon_adc_tdc","Drift Chambers ADC/TDC correlation",640,640,600,300);
lmd1d = 0;
lmd2d = 0;
}
TFndLmdMon::~TFndLmdMon() {
if(flmd) flmd->Close();
delete flmd;
mlmd->Close();
delete mlmd;
mlmd_i_adc->Close();
delete mlmd_i_adc;
mlmd_o_adc->Close();
delete mlmd_o_adc;
mlmd_i_tdc->Close();
delete mlmd_i_tdc;
mlmd_o_tdc->Close();
delete mlmd_o_tdc;
delete lmd_mon_adc;
delete lmd_mon_tdc;
delete lmd_mon_adc_tdc;
lmd1d = 0;
lmd2d = 0;
delete lmd1d;
delete lmd2d;
}
void TFndLmdMon::Fill(TFndHdt *fndhdt) {
TObjArray *fHLmd = fndhdt->GetLmd();
Int_t nhlmd = fndhdt->GetNHLmd();
lmdmult->Fill((Float_t) nhlmd);
for (Int_t j=0; j<nhlmd; j++) {
TFndHLmd *hlmd = (TFndHLmd*) fHLmd->At(j);
Int_t dch = hlmd->GetCham();
Int_t wire = hlmd->GetWire();
Float_t al = (Float_t ) hlmd->GetAdcF();
Float_t ar = (Float_t ) hlmd->GetAdcR();
Float_t tl = (Float_t ) hlmd->GetTdcF();
Float_t tr = (Float_t ) hlmd->GetTdcR();
lmdmap->Fill((Float_t) dch,(Float_t) wire);
if((al+ar)!= 0)
lmdmapadc0->Fill((Float_t) dch,(Float_t) wire);
if((al*ar) != 0)
lmdmapadc00->Fill((Float_t) dch,(Float_t) wire);
if(al != 0)
lmdmapadcf->Fill((Float_t) dch,(Float_t) wire);
if(ar != 0)
lmdmapadcr->Fill((Float_t) dch,(Float_t) wire);
if((tl+tr)!= 0)
lmdmaptdc0->Fill((Float_t) dch,(Float_t) wire);
if((tl*tr) != 0)
lmdmaptdc00->Fill((Float_t) dch,(Float_t) wire);
if(tl != 0)
lmdmaptdcf->Fill((Float_t) dch,(Float_t) wire);
if(tr != 0)
lmdmaptdcr->Fill((Float_t) dch,(Float_t) wire);
Int_t il = 0;
Int_t sf = 0;
Int_t idx = 0;
Int_t nwire = 0;
if(dch <= 18 && dch >= 11) {
sf = dch-11;
il = 0;
nwire = 12;
}
if(dch <= 28 && dch >=21) {
sf = dch-21;
il = 1;
nwire = 22;
}
idx = sf+ndchs*il;
Float_t itdc = 0.;
if(tl*tr) itdc = 3.;
if(tl && !tr) itdc = 1.;
if(!tl && tr) itdc = 2.;
Float_t iadc = 0.;
if(al*ar) iadc = 3.;
if(al && !ar) iadc = 1.;
if(!al && ar) iadc = 2.;
lmd_all_mapadctdc[idx]->Fill(itdc,iadc);
lmd_all_adc_tdc[idx]->Fill(tl,al);
lmd_all_adc_tdc[idx]->Fill(tr,ar);
lmd_27_adc_tdc[wire-1]->Fill(tl,al);
lmd_27_adc_tdc[wire-1]->Fill(tr,ar);
lmd_all_adcf[idx]->Fill(al);
lmd_all_adcr[idx]->Fill(ar);
lmd_all_adc[idx]->Fill(ar,al);
lmd_all_crg[idx]->Fill(al+ar);
lmd_all_tdcf[idx]->Fill(tl);
lmd_all_tdcr[idx]->Fill(tr);
lmd_all_tdc[idx]->Fill(tr,tl);
if (tl != tr) lmd_all_tdf[idx]->Fill(tl-tr);
sf = wire-1+nwire*sf+nwire1*ndchs*il;
lmdadcf[sf]->Fill(al);
lmdadcr[sf]->Fill(ar);
lmdcrg[sf]->Fill(al+ar);
lmdtdcf[sf]->Fill(tl);
lmdtdcr[sf]->Fill(tr);
if (tl != tr) lmdtdf[sf]->Fill(tl-tr);
}
}
void TFndLmdMon::Update() {
mlmd->Update();
mlmd_i_adc->Update();
mlmd_i_tdc->Update();
mlmd_o_adc->Update();
mlmd_o_tdc->Update();
}
void TFndLmdMon::WriteToFile() {
flmd->cd();
lmdmult->Write();
lmdmap->Write();
lmdmapadc0->Write();
lmdmapadc00->Write();
lmdmapadcf->Write();
lmdmapadcr->Write();
lmdmaptdc0->Write();
lmdmaptdc00->Write();
lmdmaptdcf->Write();
lmdmaptdcr->Write();
for (Int_t j=0;j<ndchs;j++) {
for(Int_t ik=0;ik<2;ik++) {
Int_t jk = ik*ndchs + j;
lmd_all_mapadctdc[jk]->Write();
lmd_all_adc_tdc[jk]->Write();
lmd_all_adcf[jk]->Write();
lmd_all_adcr[jk]->Write();
lmd_all_crg[jk]->Write();
lmd_all_adc[jk]->Write();
lmd_all_tdcf[jk]->Write();
lmd_all_tdcr[jk]->Write();
lmd_all_tdf[jk]->Write();
lmd_all_tdc[jk]->Write();
}
for (Int_t lk=0;lk<nwire2;lk++)
lmd_27_adc_tdc[lk]->Write();
for (Int_t l=0;l<(nwire1+nwire2);l++) {
Int_t k = l+j*(nwire1+nwire2);
lmdadcf[k]->Write();
lmdadcr[k]->Write();
lmdcrg[k]->Write();
// lmdadc[k]->Write();
lmdtdcf[k]->Write();
lmdtdcr[k]->Write();
lmdtdf[k]->Write();
// lmdtdc[k]->Write();
}
}
}
void TFndLmdMon::DisplayChamber(Int_t layer,Int_t dch) {
if(layer < 1 || layer > 2) {
cout << "WRONG layer number " << layer << endl;
return;
}
if(dch < 1 || dch > 8) {
cout << "WRONG chamber number " << dch << endl;
return;
}
Char_t clayer[2];
sprintf(clayer,"%d",layer);
Char_t cdch[3];
sprintf(cdch,"%d",dch);
// ADC
lmd_mon_adc->Clear();
lmd_mon_adc->Divide(2,2);
for(Int_t ja=0; ja<4; ja++) {
TString *hname = new TString("lmd_all_");
if(ja==0) hname->Append("adcf_");
if(ja==1) hname->Append("adcr_");
if(ja==2) hname->Append("adc_");
if(ja==3) hname->Append("crg_");
hname->Append(clayer);
hname->Append("_");
hname->Append(cdch);
if(ja != 2) {
if(layer == 1) {
lmd1d = (TH1F *) mlmd_i_adc->Get(hname->Data());
} else {
lmd1d = (TH1F *) mlmd_o_adc->Get(hname->Data());
}
} else {
if(layer == 1) {
lmd2d = (TH2F *) mlmd_i_adc->Get(hname->Data());
} else {
lmd2d = (TH2F *) mlmd_o_adc->Get(hname->Data());
}
}
lmd_mon_adc->cd(ja+1);
if(ja != 2) lmd1d->Draw();
if(ja == 2) lmd2d->Draw();
delete hname;
}
lmd_mon_adc->Update();
lmd_mon_tdc->Clear();
lmd_mon_tdc->Divide(2,2);
for(Int_t jb=0; jb<4; jb++) {
TString *hname = new TString("lmd_all_");
if(jb==0) hname->Append("tdcf_");
if(jb==1) hname->Append("tdcr_");
if(jb==2) hname->Append("tdc_");
if(jb==3) hname->Append("tdf_");
hname->Append(clayer);
hname->Append("_");
hname->Append(cdch);
if(jb != 2) {
if(layer == 1)
lmd1d = (TH1F *) mlmd_i_tdc->Get(hname->Data());
else
lmd1d = (TH1F *) mlmd_o_tdc->Get(hname->Data());
} else {
if(layer == 1)
lmd2d = (TH2F *) mlmd_i_tdc->Get(hname->Data());
else
lmd2d = (TH2F *) mlmd_o_tdc->Get(hname->Data());
}
lmd_mon_tdc->cd(jb+1);
if(jb != 2) lmd1d->Draw();
if(jb == 2) lmd2d->Draw();
delete hname;
}
lmd_mon_tdc->Update();
lmd_mon_adc_tdc->Clear();
lmd_mon_adc_tdc->Divide(2,1);
for(Int_t jc=0; jc<2; jc++) {
TString *hname = new TString("lmd_all_");
if(jc==0) hname->Append("mapadctdc_");
if(jc==1) hname->Append("adc_tdc_");
hname->Append(clayer);
hname->Append("_");
hname->Append(cdch);
lmd2d = (TH2F *) mlmd->Get(hname->Data());
lmd_mon_adc_tdc->cd(jc+1);
lmd2d->Draw();
delete hname;
}
lmd_mon_adc_tdc->Update();
}
void TFndLmdMon::DisplayWire(Int_t layer,Int_t dch,Int_t wire) {
if(layer < 1 || layer > 2) {
cout << "WRONG layer number " << layer << endl;
return;
}
if(dch < 1 || dch > 8) {
cout << "WRONG chamber number " << dch << endl;
return;
}
if(layer == 1 && (wire < 1 || wire > 12)) {
cout << "WRONG wire number in layer 1: " << wire << endl;
return;
}
if(layer == 2 && (wire < 1 || wire > 22)) {
cout << "WRONG wire number in layer 2: " << wire << endl;
return;
}
lmd_mon_adc_tdc->Clear();
TH1F *lmdadc;
TH1F *lmdtdc;
Char_t clayer[2];
sprintf(clayer,"%d",layer);
Char_t cdch[3];
sprintf(cdch,"%d",dch);
Char_t cwire[3];
sprintf(cwire,"%d",wire);
// ADC
lmd_mon_adc->Clear();
lmd_mon_adc->Divide(2,2);
for(Int_t j=0; j<3; j++) {
TString *hname = new TString("lmd");
if(j==0) hname->Append("adcf_");
if(j==1) hname->Append("adcr_");
if(j==2) hname->Append("crg_");
hname->Append(clayer);
hname->Append("_");
hname->Append(cdch);
hname->Append("_");
hname->Append(cwire);
if(layer == 1)
lmdadc = (TH1F *) mlmd_i_adc->Get(hname->Data());
else
lmdadc = (TH1F *) mlmd_o_adc->Get(hname->Data());
lmd_mon_adc->cd(j+1);
lmdadc->Draw();
delete hname;
}
lmd_mon_adc->Update();
lmd_mon_tdc->Clear();
lmd_mon_tdc->Divide(2,2);
for(Int_t k=0; k<3; k++) {
TString *hname = new TString("lmd");
if(k==0) hname->Append("tdcf_");
if(k==1) hname->Append("tdcr_");
if(k==2) hname->Append("tdf_");
hname->Append(clayer);
hname->Append("_");
hname->Append(cdch);
hname->Append("_");
hname->Append(cwire);
if(layer == 1)
lmdtdc = (TH1F *) mlmd_i_tdc->Get(hname->Data());
else
lmdtdc = (TH1F *) mlmd_o_tdc->Get(hname->Data());
lmd_mon_tdc->cd(k+1);
lmdtdc->Draw();
delete hname;
}
lmd_mon_tdc->Update();
}
void TFndLmdMon::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.