// pulse and the response of the detector.
//
#include "AliFMDGainDA.h"
-// #include <iostream>
-// #include <fstream>
-#include "AliLog.h"
-#include "TF1.h"
-#include "TH1S.h"
-// #include "TMath.h"
-#include "TGraphErrors.h"
-#include "AliFMDParameters.h"
#include "AliFMDAltroMapping.h"
+#include "AliFMDParameters.h"
+#include "AliFMDCalibGain.h"
+#include "AliFMDDigit.h"
+#include "AliLog.h"
+#include <TFile.h>
+#include <TF1.h>
+#include <TH1S.h>
+#include <TGraphErrors.h>
#include <TDatime.h>
+#include <TH2.h>
//_____________________________________________________________________
ClassImp(AliFMDGainDA)
fCurrentChannel(10),
fNumberOfStripsPerChip(128),
fSummaryGains("GainsSummary","Summary of gains",51200,0,51200),
- fCurrentSummaryStrip(1)
+ fCurrentSummaryStrip(1),
+ fGainFMD1i(0),
+ fGainFMD2i(0),
+ fGainFMD2o(0),
+ fGainFMD3i(0),
+ fGainFMD3o(0),
+ fChi2FMD1i(0),
+ fChi2FMD2i(0),
+ fChi2FMD2o(0),
+ fChi2FMD3i(0),
+ fChi2FMD3o(0)
{
// Constructor
//
//_____________________________________________________________________
AliFMDGainDA::AliFMDGainDA(const AliFMDGainDA & gainDA)
- : AliFMDBaseDA(gainDA),
- fGainArray(gainDA.fGainArray),
- fHighPulse(gainDA.fHighPulse),
- fEventsPerChannel(gainDA.fEventsPerChannel),
- fCurrentPulse(gainDA.fCurrentPulse),
- fCurrentChannel(gainDA.fCurrentChannel),
- fNumberOfStripsPerChip(gainDA.fNumberOfStripsPerChip),
- fSummaryGains(gainDA.fSummaryGains),
- fCurrentSummaryStrip(gainDA.fCurrentSummaryStrip)
+ : AliFMDBaseDA(gainDA),
+ fGainArray(gainDA.fGainArray),
+ fHighPulse(gainDA.fHighPulse),
+ fEventsPerChannel(gainDA.fEventsPerChannel),
+ fCurrentPulse(gainDA.fCurrentPulse),
+ fCurrentChannel(gainDA.fCurrentChannel),
+ fNumberOfStripsPerChip(gainDA.fNumberOfStripsPerChip),
+ fSummaryGains(gainDA.fSummaryGains),
+ fCurrentSummaryStrip(gainDA.fCurrentSummaryStrip),
+ fGainFMD1i(gainDA.fGainFMD1i),
+ fGainFMD2i(gainDA.fGainFMD2i),
+ fGainFMD2o(gainDA.fGainFMD2o),
+ fGainFMD3i(gainDA.fGainFMD3i),
+ fGainFMD3o(gainDA.fGainFMD3o),
+ fChi2FMD1i(gainDA.fChi2FMD1i),
+ fChi2FMD2i(gainDA.fChi2FMD2i),
+ fChi2FMD2o(gainDA.fChi2FMD2o),
+ fChi2FMD3i(gainDA.fChi2FMD3i),
+ fChi2FMD3o(gainDA.fChi2FMD3o)
{
// Copy Constructor
//
UpdatePulseAndADC(det,ring,sec,strip);
}
+//_____________________________________________________________________
+void AliFMDGainDA::MakeSummary(UShort_t det, Char_t ring)
+{
+ //
+ // Create summary hists for FMD gains and chi2 of the fits
+ //
+ switch (det) {
+ case 1:
+ fGainFMD1i = MakeSummaryHistogram("gain", "Gains", det, ring);
+ fChi2FMD1i = MakeSummaryHistogram("chi2", "#Chi^{2}/NDF", det, ring);
+ break;
+ case 2:
+ switch (ring) {
+ case 'I': case 'i':
+ fGainFMD2i = MakeSummaryHistogram("gain", "Gains", det, ring);
+ fChi2FMD2i = MakeSummaryHistogram("chi2", "#Chi^{2}/NDF", det, ring);
+ break;
+ case 'O': case 'o':
+ fGainFMD2o = MakeSummaryHistogram("gain", "Gains", det, ring);
+ fChi2FMD2o = MakeSummaryHistogram("chi2", "#Chi^{2}/NDF", det, ring);
+ break;
+ }
+ break;
+ case 3:
+ switch (ring) {
+ case 'I': case 'i':
+ fGainFMD3i = MakeSummaryHistogram("gain", "Gains", det, ring);
+ fChi2FMD3i = MakeSummaryHistogram("chi2", "#Chi^{2}/NDF", det, ring);
+ break;
+ case 'O': case 'o':
+ fGainFMD3o = MakeSummaryHistogram("gain", "Gains", det, ring);
+ fChi2FMD3o = MakeSummaryHistogram("chi2", "#Chi^{2}/NDF", det, ring);
+ break;
+ }
+ break;
+ }
+}
+
//_____________________________________________________________________
void AliFMDGainDA::Analyse(UShort_t det,
Char_t ring,
fSummaryGains.SetBinError(fCurrentSummaryStrip,fitFunc.GetParError(1));
fCurrentSummaryStrip++;
+
+ TH2* hGain = 0;
+ TH2* hChi2 = 0;
+ switch (det) {
+ case 1: hGain = fGainFMD1i; hChi2 = fChi2FMD1i; break;
+ case 2:
+ switch (ring) {
+ case 'I': hGain = fGainFMD2i; hChi2 = fChi2FMD2i; break;
+ case 'O': hGain = fGainFMD2o; hChi2 = fChi2FMD2o; break;
+ }
+ break;
+ case 3:
+ switch (ring) {
+ case 'I': hGain = fGainFMD3i; hChi2 = fChi2FMD3i; break;
+ case 'O': hGain = fGainFMD3o; hChi2 = fChi2FMD3o; break;
+ }
+ break;
+ }
+ if (hGain && hChi2) {
+ Int_t bin = hGain->FindBin(sec, strip);
+ hGain->SetBinContent(bin, gain);
+ hGain->SetBinError(bin, error);
+ hChi2->SetBinContent(bin, chi2ndf);
+ }
+
// }
if(fSaveHistograms) {
gDirectory->cd(GetSectorPath(det,ring, sec, kTRUE));