#ifndef FIN_FndLmdMon #define FIN_FndLmdMon //_____________________________________________________________________ // // TFndLmdMon // // Description of the Tof online monitor // #include "TObject.h" #include "TFndHdt.h" #include "TMapFile.h" #include "TH1.h" #include "TH2.h" #include "TCanvas.h" class TFndLmdMon : public TObject { protected: Int_t shmflg; // Shared Memory flag TFile *flmd; // Lmd histogram file TMapFile *mlmd; // main LMD shared memory TMapFile *mlmd_i_adc; // inner ADC shared memory TMapFile *mlmd_o_adc; // outer ADC shared memory TMapFile *mlmd_i_tdc; // inner TDC shared memory TMapFile *mlmd_o_tdc; // outer TDC shared memory TCanvas *lmd_mon_adc; // Canvas for ADC TCanvas *lmd_mon_tdc; // Canvas for TDC TCanvas *lmd_mon_adc_tdc; // Canvas for ADC & TDC TH1F *lmdmult; // LMD multiplicity TH2F *lmdmap; // LMD pattern TH2F *lmdmapadc0; // LMD ADC pattern (F || R |= 0) TH2F *lmdmapadc00; // LMD ADC pattern (F && R != 0) TH2F *lmdmapadcf; // LMD Front ADC pattern TH2F *lmdmapadcr; // LMD Rear ADC pattern TH2F *lmdmaptdc0; // LMD TDC pattern (F || R |= 0) TH2F *lmdmaptdc00; // LMD TDC pattern (F && R != 0) TH2F *lmdmaptdcf; // LMD Front TDC pattern TH2F *lmdmaptdcr; // LMD Rear TDC pattern static const Int_t nlayers = 2; // Number of LMD layers static const Int_t ndchs = 8; // Number of Drift Chambers / Layer static const Int_t nwire1 = 12; // Number of wires / chamber in layer 1 static const Int_t nwire2 = 22; // Number of wires / chamber in layer 2 TH2F *lmd_27_adc_tdc[nwire2]; // LMD ADC vs TDC Dch 27 static const Int_t n_lmd_dchs = 16; // Total number of chambers TH2F *lmd_all_mapadctdc[n_lmd_dchs]; // LMD ADC vs TDC existence TH2F *lmd_all_adc_tdc[n_lmd_dchs]; // LMD ADC vs TDC TH1F *lmd_all_adcf[n_lmd_dchs]; // Front ADC TH1F *lmd_all_adcr[n_lmd_dchs]; // Rear ADC TH1F *lmd_all_crg[n_lmd_dchs]; // ADC (F+R) TH2F *lmd_all_adc[n_lmd_dchs]; // ADC (Front vs Rear) TH1F *lmd_all_tdcf[n_lmd_dchs]; // Front TDC TH1F *lmd_all_tdcr[n_lmd_dchs]; // Rear TDC TH1F *lmd_all_tdf[n_lmd_dchs]; // Time difference TH2F *lmd_all_tdc[n_lmd_dchs]; // TDC (Front vs Rear) static const Int_t n_lmd_hist = 544; // Total number of wires TH1F *lmdadcf[n_lmd_hist]; // Front ADC TH1F *lmdadcr[n_lmd_hist]; // Rear ADC TH1F *lmdcrg[n_lmd_hist]; // ADC (F+R) TH1F *lmdtdcf[n_lmd_hist]; // Front TDC TH1F *lmdtdcr[n_lmd_hist]; // Rear TDC TH1F *lmdtdf[n_lmd_hist]; // Time difference TH1F *lmd1d; TH2F *lmd2d; public: // TFndLmdMon() {}; // Default constructor TFndLmdMon(const char *fmode,Int_t lmd_tdc_bins=130,Double_t lmd_tdc_min = 0.,Double_t lmd_tdc_max = 4120.); // Constructor for Producer TFndLmdMon(); // Constructor for Consumer ~TFndLmdMon(); // Destructor void Fill(TFndHdt *); // Fill Histograms in shared memories void Update(); // Update shared memories void DisplayChamber(Int_t layer,Int_t number); // Display drift "number" in layer "layer" void DisplayWire(Int_t layer,Int_t number,Int_t wire); // Display wire "wire" of drift "number" in layer "layer" void WriteToFile(); // Write histograms to file ClassDef(TFndLmdMon,1) // The LMD monitor }; #endif