]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALQADataMakerRec.cxx
one more coverity sprintf vs snprintf + tmp enable triggerConfig check also for pedes...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALQADataMakerRec.cxx
index ff795839da1a4d52509261daa46cbc2a65874ff0..eb58eedfcedd7319bc885f186705d39c43245ad0 100644 (file)
@@ -65,10 +65,13 @@ Also calculate the ratio of amplitude from LED Monitor system (current/Reference
 #include "AliCaloFitResults.h"
 #include "AliCaloRawAnalyzerFastFit.h"
 #include "AliCaloRawAnalyzerNN.h"
-#include "AliCaloRawAnalyzerLMS.h"
+//#include "AliCaloRawAnalyzerLMS.h"
+#include "AliCaloRawAnalyzerKStandard.h"
 #include "AliCaloRawAnalyzerPeakFinder.h"
 #include "AliCaloRawAnalyzerCrude.h"
 
+#include "AliCaloRawAnalyzerFactory.h"
+
 using namespace std;
 
 ClassImp(AliEMCALQADataMakerRec)
@@ -79,7 +82,7 @@ AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(fitAlgorithm fitAlgo) :
   fFittingAlgorithm(0),
   fRawAnalyzer(0),
   fRawAnalyzerTRU(0),
-  fSuperModules(4), // FIXME!!! number of SuperModules; 4 for 2009; update default to 12 for later runs..
+  fSuperModules(10), // FIXME!!! number of SuperModules; 10 for 2011; update default for later runs 
   fFirstPedestalSample(0),
   fLastPedestalSample(3),
   fFirstPedestalSampleTRU(0),
@@ -105,7 +108,11 @@ AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(fitAlgorithm fitAlgo) :
 {
   // ctor
   SetFittingAlgorithm(fitAlgo);
-  fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
+  
+  //fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
+  
+  fRawAnalyzerTRU =  ( AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(kLMS);
+  
   fRawAnalyzerTRU->SetFixTau(kTRUE); 
   fRawAnalyzerTRU->SetTau(2.5); // default for TRU shaper
 //  for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
@@ -146,7 +153,9 @@ AliEMCALQADataMakerRec::AliEMCALQADataMakerRec(const AliEMCALQADataMakerRec& qad
   SetName((const char*)qadm.GetName()) ; 
   SetTitle((const char*)qadm.GetTitle()); 
   SetFittingAlgorithm(qadm.GetFittingAlgorithm());
-  fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
+  
+  //fRawAnalyzerTRU = new AliCaloRawAnalyzerLMS();
+  fRawAnalyzerTRU = (AliCaloRawAnalyzerKStandard*)AliCaloRawAnalyzerFactory::CreateAnalyzer(kLMS);
   fRawAnalyzerTRU->SetFixTau(kTRUE); 
   fRawAnalyzerTRU->SetTau(2.5); // default for TRU shaper
 //  for (Int_t sm = 0 ; sm < fSuperModules ; sm++){
@@ -730,54 +739,54 @@ void AliEMCALQADataMakerRec::MakeRaws(AliRawReader* rawReader)
   ConvertProfile2H(dynamic_cast<TProfile *>(GetRawsData(kSigHG)), fHighEmcHistoH2F) ;  
   Double_t binContent = 0. ;
   
-  //reset ratio histograms
-  GetRawsData(k2DRatioAmp)->Reset("ICE"); 
-  GetRawsData(kRatioDist)->Reset("ICE"); 
-  GetRawsData(kLEDMonRatio)->Reset("ICE");     
-  GetRawsData(kLEDMonRatioDist)->Reset("ICE");
-  GetRawsData(k2DRatioAmp)->ResetStats(); 
-  GetRawsData(kRatioDist)->ResetStats();
-  GetRawsData(kLEDMonRatio)->ResetStats();
-  GetRawsData(kLEDMonRatioDist)->ResetStats();
   
   //calculate the ratio of the amplitude and fill the histograms, only if the events type is Calib
- if (rawReader->GetType() == AliRawEventHeaderBase::kCalibrationEvent) { 
-      for(Int_t ix = 1; ix <= fHighEmcHistoH2F->GetNbinsX(); ix++) {
-       for(Int_t iy = 1; iy <= fHighEmcHistoH2F->GetNbinsY(); iy++) {
-         if(fCalibRefHistoH2F->GetBinContent(ix, iy))binContent = fHighEmcHistoH2F->GetBinContent(ix, iy)/fCalibRefHistoH2F->GetBinContent(ix, iy) ;
-         GetRawsData(k2DRatioAmp)->SetBinContent(ix, iy, binContent);
-         GetRawsData(kRatioDist)->Fill(GetRawsData(k2DRatioAmp)->GetBinContent(ix, iy));
-       }
-     } 
+ if (rawReader->GetType() == AliRawEventHeaderBase::kCalibrationEvent) {
+               //reset ratio histograms
+               GetRawsData(k2DRatioAmp)->Reset("ICE"); 
+               GetRawsData(kRatioDist)->Reset("ICE"); 
+               GetRawsData(kLEDMonRatio)->Reset("ICE");        
+               GetRawsData(kLEDMonRatioDist)->Reset("ICE");
+               GetRawsData(k2DRatioAmp)->ResetStats(); 
+               GetRawsData(kRatioDist)->ResetStats();
+               GetRawsData(kLEDMonRatio)->ResetStats();
+               GetRawsData(kLEDMonRatioDist)->ResetStats();
+
+    for(Int_t ix = 1; ix <= fHighEmcHistoH2F->GetNbinsX(); ix++) {
+     for(Int_t iy = 1; iy <= fHighEmcHistoH2F->GetNbinsY(); iy++) {
+       if(fCalibRefHistoH2F->GetBinContent(ix, iy))binContent = fHighEmcHistoH2F->GetBinContent(ix, iy)/fCalibRefHistoH2F->GetBinContent(ix, iy) ;
+        GetRawsData(k2DRatioAmp)->SetBinContent(ix, iy, binContent);
+        GetRawsData(kRatioDist)->Fill(GetRawsData(k2DRatioAmp)->GetBinContent(ix, iy));
+      }
+    } 
    
- }
-  //Now for LED monitor system, to calculate the ratio as well
-  Double_t binError = 0. ;
-  // for the binError, we add the relative errors, squared
-  Double_t relativeErrorSqr = 0. ;
+               //Now for LED monitor system, to calculate the ratio as well
+               Double_t binError = 0. ;
+               // for the binError, we add the relative errors, squared
+               Double_t relativeErrorSqr = 0. ;
   
-  for(int ib = 1; ib <= fLEDMonRefHistoPro->GetNbinsX(); ib++) {
+               for(int ib = 1; ib <= fLEDMonRefHistoPro->GetNbinsX(); ib++) {
     
-    if(fLEDMonRefHistoPro->GetBinContent(ib) != 0) {
-      binContent = GetRawsData(kSigLGLEDMon)->GetBinContent(ib) / fLEDMonRefHistoPro->GetBinContent(ib);
-
-      relativeErrorSqr = TMath::Power( (fLEDMonRefHistoPro->GetBinError(ib) / fLEDMonRefHistoPro->GetBinContent(ib)), 2);
-      if(GetRawsData(kSigLGLEDMon)->GetBinContent(ib) != 0) {
-       relativeErrorSqr += TMath::Power( (GetRawsData(kSigLGLEDMon)->GetBinError(ib)/GetRawsData(kSigLGLEDMon)->GetBinContent(ib)), 2);
-      }
-    }
-    else {
-      binContent = 0;
-      relativeErrorSqr = 0;
-    }
-    GetRawsData(kLEDMonRatio)->SetBinContent(ib, binContent);
+                       if(fLEDMonRefHistoPro->GetBinContent(ib) != 0) {
+                               binContent = GetRawsData(kSigLGLEDMon)->GetBinContent(ib) / fLEDMonRefHistoPro->GetBinContent(ib);
+
+                               relativeErrorSqr = TMath::Power( (fLEDMonRefHistoPro->GetBinError(ib) / fLEDMonRefHistoPro->GetBinContent(ib)), 2);
+                               if(GetRawsData(kSigLGLEDMon)->GetBinContent(ib) != 0) {
+                       relativeErrorSqr += TMath::Power( (GetRawsData(kSigLGLEDMon)->GetBinError(ib)/GetRawsData(kSigLGLEDMon)->GetBinContent(ib)), 2);
+                               }
+                       }
+                       else {
+                               binContent = 0;
+                               relativeErrorSqr = 0;
+                       }
+                       GetRawsData(kLEDMonRatio)->SetBinContent(ib, binContent);
     
-    binError = sqrt(relativeErrorSqr) * binContent;
-    GetRawsData(kLEDMonRatio)->SetBinError(ib, binError);
-    GetRawsData(kLEDMonRatioDist)->Fill(GetRawsData(kLEDMonRatio)->GetBinContent(ib));
-    }
-  
+                       binError = sqrt(relativeErrorSqr) * binContent;
+                       GetRawsData(kLEDMonRatio)->SetBinError(ib, binError);
+                       GetRawsData(kLEDMonRatioDist)->Fill(GetRawsData(kLEDMonRatio)->GetBinContent(ib));
+               }
   
+       } 
   // let's also fill the SM and event counter histograms
   Int_t nTotalHG = 0;
   Int_t nTotalLG = 0;
@@ -830,7 +839,7 @@ void AliEMCALQADataMakerRec::MakeDigits(TTree * digitTree)
 {
   // makes data from Digit Tree
   if (fDigitsArray) 
-    fDigitsArray->Clear() ; 
+    fDigitsArray->Clear("C") ; 
   else
     fDigitsArray = new TClonesArray("AliEMCALDigit", 1000) ; 
   
@@ -883,7 +892,12 @@ 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());
@@ -917,6 +931,7 @@ void AliEMCALQADataMakerRec::SetFittingAlgorithm(Int_t fitAlgo)
 
   }
   return;
+  */
 }
 
 //_____________________________________________________________________________________