#include "AliCaloFitResults.h"
#include "AliCaloRawAnalyzerFastFit.h"
#include "AliCaloRawAnalyzerNN.h"
-//#include "AliCaloRawAnalyzerLMS.h"
#include "AliCaloRawAnalyzerKStandard.h"
#include "AliCaloRawAnalyzerPeakFinder.h"
#include "AliCaloRawAnalyzerCrude.h"
ClassImp(AliEMCALQADataMakerRec)
//____________________________________________________________________________
-AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(fitAlgorithm fitAlgo) :
+AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(Int_t fitAlgo) :
AliQADataMakerRec(AliQAv1::GetDetName(AliQAv1::kEMCAL), "EMCAL Quality Assurance Data Maker"),
fFittingAlgorithm(0),
fRawAnalyzer(0),
// ctor
SetFittingAlgorithm(fitAlgo);
- //fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
-
- fRawAnalyzerTRU = ( AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(kLMS);
+ fRawAnalyzerTRU = ( AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(Algo::kFastFit);
fRawAnalyzerTRU->SetFixTau(kTRUE);
fRawAnalyzerTRU->SetTau(2.5); // default for TRU shaper
SetTitle((const char*)qadm.GetTitle());
SetFittingAlgorithm(qadm.GetFittingAlgorithm());
- //fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
- fRawAnalyzerTRU = (AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(kLMS);
+ fRawAnalyzerTRU = (AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(Algo::kFastFit);
fRawAnalyzerTRU->SetFixTau(kTRUE);
fRawAnalyzerTRU->SetTau(2.5); // default for TRU shaper
// for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
void AliEMCALQADataMakerRec::SetFittingAlgorithm(Int_t fitAlgo)
{
//Set fitting algorithm and initialize it if this same algorithm was not set before.
- //printf("**** Set Algorithm , number %d ****\n",fitAlgo);
-
fRawAnalyzer = AliCaloRawAnalyzerFactory::CreateAnalyzer(fitAlgo);
fFittingAlgorithm = fitAlgo;
- /*
- if(fitAlgo == fFittingAlgorithm && fRawAnalyzer) {
- //Do nothing, this same algorithm already set before.
- //printf("**** Algorithm already set before, number %d, %s ****\n",fitAlgo, fRawAnalyzer->GetName());
- return;
- }
- //Initialize the requested algorithm
- if(fitAlgo != fFittingAlgorithm || !fRawAnalyzer) {
- //printf("**** Init Algorithm , number %d ****\n",fitAlgo);
-
- fFittingAlgorithm = fitAlgo;
- if (fRawAnalyzer) delete fRawAnalyzer; // delete prev. analyzer if existed.
-
- if (fitAlgo == kFastFit) {
- fRawAnalyzer = new AliCaloRawAnalyzerFastFit();
- }
- else if (fitAlgo == kNeuralNet) {
- fRawAnalyzer = new AliCaloRawAnalyzerNN();
- }
- else if (fitAlgo == kLMS) {
- fRawAnalyzer = new AliCaloRawAnalyzerLMS();
- }
- else if (fitAlgo == kPeakFinder) {
- fRawAnalyzer = new AliCaloRawAnalyzerPeakFinder();
- }
- else if (fitAlgo == kCrude) {
- fRawAnalyzer = new AliCaloRawAnalyzerCrude();
- }
- else {
- AliWarning("EMCAL QA invalid fit algorithm choice") ;
- }
-
- }
- return;
- */
}
//_____________________________________________________________________________________
//class AliEMCALGeoParams;
class AliEMCALGeometry;
+#include "AliCaloConstants.h"
+
class AliEMCALQADataMakerRec: public AliQADataMakerRec {
public:
+
//Histograms for Raw data control
enum HRawType_t {
// first normal Low Gain and High Gain info
//Histograms for ESDs control
enum HESDType_t {kESDCaloClusE,kESDCaloClusM,kESDCaloCellA,kESDCaloCellM} ;
-
-
+
public:
- enum fitAlgorithm {kFastFit=1, kNeuralNet = 2, kLMS = 4, kPeakFinder = 5, kCrude = 6};
- AliEMCALQADataMakerRec(fitAlgorithm fitAlgo = kNeuralNet) ; // ctor
+
+ AliEMCALQADataMakerRec(Int_t fitAlgo = 0) ; // ctor
AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qadm) ;
AliEMCALQADataMakerRec& operator = (const AliEMCALQADataMakerRec& qadm) ;
virtual ~AliEMCALQADataMakerRec() {;} // dtor
Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; }
- void SetFittingAlgorithm(Int_t val);
+ void SetFittingAlgorithm(Int_t val);
AliCaloRawAnalyzer *GetRawAnalyzer() const { return fRawAnalyzer;}
AliCaloRawAnalyzerKStandard *GetRawAnalyzerTRU() const { return fRawAnalyzerTRU;}
int GetSuperModules() const {return fSuperModules;}; //The number of SuperModules
// for pedestal calculation with raw data
- void SetFirstPedestalSample(int i) {fFirstPedestalSample = i;}; // first sample
- int GetFirstPedestalSample() const {return fFirstPedestalSample;}; // first sample
- void SetLastPedestalSample(int i) {fLastPedestalSample = i;}; // last sample
- int GetLastPedestalSample() const {return fLastPedestalSample;}; // last sample
- void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;}; // first sample, TRU
- int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;}; // first sample, TRU
- void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;}; // last sample, TRU
- int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;}; // last sample, TRU
+ void SetFirstPedestalSample(int i) {fFirstPedestalSample = i;} // first sample
+ int GetFirstPedestalSample() const {return fFirstPedestalSample;} // first sample
+ void SetLastPedestalSample(int i) {fLastPedestalSample = i;} // last sample
+ int GetLastPedestalSample() const {return fLastPedestalSample;} // last sample
+
+ void SetFirstPedestalSampleTRU(int i) {fFirstPedestalSampleTRU = i;} // first sample, TRU
+ int GetFirstPedestalSampleTRU() const {return fFirstPedestalSampleTRU;} // first sample, TRU
+ void SetLastPedestalSampleTRU(int i) {fLastPedestalSampleTRU = i;} // last sample, TRU
+ int GetLastPedestalSampleTRU() const {return fLastPedestalSampleTRU;} // last sample, TRU
// for selection of interesting signal (max-min) range
// Low Gain channels
- void SetMinSignalLG(int i) {fMinSignalLG = i;};
- int GetMinSignalLG() const {return fMinSignalLG;};
- void SetMaxSignalLG(int i) {fMaxSignalLG = i;};
- int GetMaxSignalLG() const {return fMaxSignalLG;};
+ void SetMinSignalLG(int i) {fMinSignalLG = i;}
+ int GetMinSignalLG() const {return fMinSignalLG;}
+ void SetMaxSignalLG(int i) {fMaxSignalLG = i;}
+ int GetMaxSignalLG() const {return fMaxSignalLG;}
+
// High Gain channels
- void SetMinSignalHG(int i) {fMinSignalHG = i;};
- int GetMinSignalHG() const {return fMinSignalHG;};
- void SetMaxSignalHG(int i) {fMaxSignalHG = i;};
- int GetMaxSignalHG() const {return fMaxSignalHG;};
+ void SetMinSignalHG(int i) {fMinSignalHG = i;}
+ int GetMinSignalHG() const {return fMinSignalHG;}
+ void SetMaxSignalHG(int i) {fMaxSignalHG = i;}
+ int GetMaxSignalHG() const {return fMaxSignalHG;}
+
// TRU channels
- void SetMinSignalTRU(int i) {fMinSignalTRU = i;};
- int GetMinSignalTRU() const {return fMinSignalTRU;};
- void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;};
- int GetMaxSignalTRU() const {return fMaxSignalTRU;};
+ void SetMinSignalTRU(int i) {fMinSignalTRU = i;}
+ int GetMinSignalTRU() const {return fMinSignalTRU;}
+ void SetMaxSignalTRU(int i) {fMaxSignalTRU = i;}
+ int GetMaxSignalTRU() const {return fMaxSignalTRU;}
+
// LEDMon channels
- void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;};
- int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;};
- void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;};
- int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;};
- void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;};
- int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;};
- void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;};
- int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;};
+ void SetMinSignalLGLEDMon(int i) {fMinSignalLGLEDMon = i;}
+ int GetMinSignalLGLEDMon() const {return fMinSignalLGLEDMon;}
+ void SetMaxSignalLGLEDMon(int i) {fMaxSignalLGLEDMon = i;}
+ int GetMaxSignalLGLEDMon() const {return fMaxSignalLGLEDMon;}
+ void SetMinSignalHGLEDMon(int i) {fMinSignalHGLEDMon = i;}
+ int GetMinSignalHGLEDMon() const {return fMinSignalHGLEDMon;}
+ void SetMaxSignalHGLEDMon(int i) {fMaxSignalHGLEDMon = i;}
+ int GetMaxSignalHGLEDMon() const {return fMaxSignalHGLEDMon;}
virtual void EndOfDetectorCycle(AliQAv1::TASKINDEX_t, TObjArray ** list) ;
void GetCalibRefFromOCDB() ;
- void GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const;
+ void GetTruChannelPosition( Int_t &globRow, Int_t &globColumn, Int_t module, Int_t ddl, Int_t branch, Int_t column ) const;
virtual void InitESDs() ;
virtual void InitDigits() ;
virtual void InitRecPoints() ;
virtual void StartOfDetectorCycle() ;
private:
- void ConvertProfile2H(TProfile * p, TH2 * histo) ; //change the profile plot to a 2D histogram
- Int_t fFittingAlgorithm; // select the fitting algorithm
+ void ConvertProfile2H(TProfile * p, TH2 * histo) ; //change the profile plot to a 2D histogram
+
+ Int_t fFittingAlgorithm; // select the fitting algorithm
- AliCaloRawAnalyzer *fRawAnalyzer; // for signal fitting
- AliCaloRawAnalyzerKStandard *fRawAnalyzerTRU; // for signal fitting, for TRU
- AliEMCALGeometry *fGeom; //EMCAL geometry, needed for STU decoding
+ AliCaloRawAnalyzer *fRawAnalyzer; // for signal fitting
+ AliCaloRawAnalyzerKStandard *fRawAnalyzerTRU; // for TRU signal fitting
+ AliEMCALGeometry *fGeom; // EMCAL geometry, needed for STU decoding
- int fSuperModules; //The number of SuperModules activated
- int fFirstPedestalSample; // first sample for pedestal calculation, in bunch
- int fLastPedestalSample; // last sample for pedestal calculation, in bunch
+ int fSuperModules; // The number of SuperModules activated
+ int fFirstPedestalSample; // first sample for pedestal calculation, in bunch
+ int fLastPedestalSample; // last sample for pedestal calculation, in bunch
int fFirstPedestalSampleTRU; // first sample for pedestal calculation, in bunch
- int fLastPedestalSampleTRU; // last sample for pedestal calculation, in bunch
- int fMinSignalLG; // minimum signal, for Low Gain channels
- int fMaxSignalLG; // maximum signal, for Low Gain channels
- int fMinSignalHG; // minimum signal, for High Gain channels
- int fMaxSignalHG; // maximum signal, for High Gain channels
- int fMinSignalTRU; // minimum signal, for TRU channels
- int fMaxSignalTRU; // maximum signal, for TRU channels
+ int fLastPedestalSampleTRU; // last sample for pedestal calculation, in bunch
+ int fMinSignalLG; // minimum signal, for Low Gain channels
+ int fMaxSignalLG; // maximum signal, for Low Gain channels
+ int fMinSignalHG; // minimum signal, for High Gain channels
+ int fMaxSignalHG; // maximum signal, for High Gain channels
+ int fMinSignalTRU; // minimum signal, for TRU channels
+ int fMaxSignalTRU; // maximum signal, for TRU channels
int fMinSignalLGLEDMon; // minimum signal, for LEDMon channels, low gain
int fMaxSignalLGLEDMon; // maximum signal, for LEDMon channels, low gain
int fMinSignalHGLEDMon; // minimum signal, for LEDMon channels, high gain
TProfile * fCalibRefHistoPro ; // Profile reference histogram from LED run
TH2F * fCalibRefHistoH2F ; // H2F reference histogram from LED run
- TProfile * fLEDMonRefHistoPro ; // Profile reference histogram from LED monitor
- TH2F * fHighEmcHistoH2F ; // H2F reference histogram from LED run
+ TProfile * fLEDMonRefHistoPro; // Profile reference histogram from LED monitor
+ TH2F * fHighEmcHistoH2F ; // H2F reference histogram from LED run
// TText ** fTextSM ; //! Text info for each SM
// TLine * fLineCol ; //! line to distinguish the different SM side: A side and C side
// TLine * fLineRow ; //! line to distinguish the different SM sector 0 and 1