]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliCaloRawAnalyzerComparison.cxx
Fixing a little overlap. Adding flags to perform material budget studies (Mario)
[u/mrichter/AliRoot.git] / EMCAL / AliCaloRawAnalyzerComparison.cxx
index 9316ada2a226840b5caad1ddff859f650c03114a..76bd22072012d0ae66e420e314ea000d16ce3a7a 100644 (file)
@@ -18,7 +18,7 @@
 #include "AliCaloRawAnalyzerComparison.h"
 
 #include "AliCaloRawAnalyzerCrude.h"
-#include "AliCaloRawAnalyzerLMS.h"
+#include "AliCaloRawAnalyzerKStandard.h"
 #include "AliCaloRawAnalyzerFastFit.h"
 #include "AliCaloRawAnalyzerNN.h"
 #include "AliCaloRawAnalyzerPeakFinder.h"
@@ -37,21 +37,23 @@ AliCaloRawAnalyzerComparison::AliCaloRawAnalyzerComparison() : fMod(0),
                                                               fMonRow1(15),
                                                               fMonCol2(1),
                                                               fMonRow2(16)
-{ // ctor
-  fReferenceAnalyzer = new  AliCaloRawAnalyzerLMS();
+{
+  // ctor
+  
+  fReferenceAnalyzer                       = new  AliCaloRawAnalyzerKStandard();
 
-  AliCaloRawAnalyzerCrude *crude = new AliCaloRawAnalyzerCrude();
-  AliCaloRawAnalyzerLMS *lms = new AliCaloRawAnalyzerLMS();
-  AliCaloRawAnalyzerFastFit *fastfit = new AliCaloRawAnalyzerFastFit();
-  AliCaloRawAnalyzerNN *neuralnet = new AliCaloRawAnalyzerNN();
+  AliCaloRawAnalyzerCrude *crude           = new AliCaloRawAnalyzerCrude();
+  AliCaloRawAnalyzerKStandard *lms         = new AliCaloRawAnalyzerKStandard();
+  AliCaloRawAnalyzerFastFit *fastfit       = new AliCaloRawAnalyzerFastFit();
+  AliCaloRawAnalyzerNN *neuralnet          = new AliCaloRawAnalyzerNN();
   AliCaloRawAnalyzerPeakFinder *peakfinder = new AliCaloRawAnalyzerPeakFinder();
 
   fReferenceAnalyzer->SetIsZeroSuppressed();
-  peakfinder->SetIsZeroSuppressed();
-  lms->SetIsZeroSuppressed();
-  fastfit->SetIsZeroSuppressed();
-  neuralnet->SetIsZeroSuppressed();
-  crude->SetIsZeroSuppressed(); 
+  peakfinder        ->SetIsZeroSuppressed();
+  lms               ->SetIsZeroSuppressed();
+  fastfit           ->SetIsZeroSuppressed();
+  neuralnet         ->SetIsZeroSuppressed();
+  crude             ->SetIsZeroSuppressed();
   
   fRawAnalyzers.push_back( (AliCaloRawAnalyzer*)crude);
   fRawAnalyzers.push_back( (AliCaloRawAnalyzer*)lms);
@@ -60,181 +62,172 @@ AliCaloRawAnalyzerComparison::AliCaloRawAnalyzerComparison() : fMod(0),
   
   fRawAnalyzers.push_back( (AliCaloRawAnalyzer*)peakfinder);
   InitHistograms( fRawAnalyzers, fReferenceAnalyzer );
-}
-
-
-AliCaloRawAnalyzerComparison::~AliCaloRawAnalyzerComparison()
-{ // dtor
-
-}
+} 
 
 void 
 AliCaloRawAnalyzerComparison::Evaluate( const vector<AliCaloBunchInfo> &bunchvector, const UInt_t altrocfg1,  
                                        const UInt_t altrocfg2, const int event, const int col, const int row )
 { // evaluate methods
   //  cout << __FILE__ << __LINE__ << endl;
-
+  
   AliCaloFitResults ref = fReferenceAnalyzer->Evaluate( bunchvector, altrocfg1, altrocfg2 );
   //  AliCaloFitResults ref;
-
+  
   for(int i=0; i < fRawAnalyzers.size(); i++ )
+  {
+    AliCaloFitResults an = fRawAnalyzers.at(i)->Evaluate( bunchvector, altrocfg1,  altrocfg2 );
+    
+    //     cout << __FILE__ << __LINE__ << ":" << fRawAnalyzers.at(i)->GetAlgoAbbr() << "  col = " << col << " row " << row << "  amp= " <<  an.GetAmp() << endl ;
+    
+    //   fAmplitudeVsEvent[i]->Fill( event, an.GetAmp() );
+    //   fTofVsEvent[i]->Fill( event, an.GetTof() );
+    
+    fRefAmpVsAnalyzers[i]->Fill(ref.GetAmp(), an.GetAmp() );
+    fRefTofVsAnalyzers[i]->Fill(ref.GetTof(), an.GetTof() );
+    fAmpDiff[i]->Fill(ref.GetAmp() - an.GetAmp() );
+    fTofDiff[i]->Fill(ref.GetTof() - an.GetTof() );
+    
+    if(col  == fMonCol1 && fMonRow1 == row )
     {
-      AliCaloFitResults an = fRawAnalyzers.at(i)->Evaluate( bunchvector, altrocfg1,  altrocfg2 ); 
-      
-      //     cout << __FILE__ << __LINE__ << ":" << fRawAnalyzers.at(i)->GetAlgoAbbr() << "  col = " << col << " row " << row << "  amp= " <<  an.GetAmp() << endl ;
-
-      //   fAmplitudeVsEvent[i]->Fill( event, an.GetAmp() );
-      //   fTofVsEvent[i]->Fill( event, an.GetTof() );
-    
-      fRefAmpVsAnalyzers[i]->Fill(ref.GetAmp(), an.GetAmp() );
-      fRefTofVsAnalyzers[i]->Fill(ref.GetTof(), an.GetTof() ); 
-      fAmpDiff[i]->Fill(ref.GetAmp() - an.GetAmp() ); 
-      fTofDiff[i]->Fill(ref.GetTof() - an.GetTof() );  
-     
-      if(col  == fMonCol1 && fMonRow1 == row )
-       {
-         fAmplitudeVsEvent[i]->Fill( event, an.GetAmp() );
-         fTofVsEvent[i]->Fill( event, an.GetTof() );
-         fMon1[i] = an;
-       }
-      
-      if(col  == fMonCol2 &&  row == fMonRow2  )
-       {
-         fMon2[i] = an;
-       }
-      if(row >= 0 && col >= 0 )
-       {
-         fAmpHistograms[i][col][row]->Fill( an.GetAmp() );
-       }
+      fAmplitudeVsEvent[i]->Fill( event, an.GetAmp() );
+      fTofVsEvent[i]->Fill( event, an.GetTof() );
+      fMon1[i] = an;
+    }
+    
+    if(col  == fMonCol2 &&  row == fMonRow2  )
+    {
+      fMon2[i] = an;
+    }
+    
+    if(row >= 0 && col >= 0 )
+    {
+      fAmpHistograms[i][col][row]->Fill( an.GetAmp() );
     }
+  }
 }  
 
-
-
 void 
 AliCaloRawAnalyzerComparison::EventChanged()
 { // new event
   for(int i=0; i < fRawAnalyzers.size(); i++ )
+  {
+    /*
+     if( ( fMon1[i].GetAmp() > 50 &&   fMon2[i].GetAmp() > 50 ) &&  (  fMon1[i].GetAmp() < 1023  &&   fMon2[i].GetAmp() < 1023 )  )
+     {
+     cout << __FILE__ << __LINE__ << fRawAnalyzers.at(i)->GetAlgoAbbr() << "\tamp1=" <<  fMon1[i].GetAmp()  << "\tamp2 = " <<  fMon2[i].GetAmp() << endl;
+     }
+     */
+    
+    if( fMon1[i].GetAmp()  > 50  &&  fMon2[i].GetAmp() > 50  )
     {
-      /*
-      if( ( fMon1[i].GetAmp() > 50 &&   fMon2[i].GetAmp() > 50 ) &&  (  fMon1[i].GetAmp() < 1023  &&   fMon2[i].GetAmp() < 1023 )  )
-       {
-         cout << __FILE__ << __LINE__ << fRawAnalyzers.at(i)->GetAlgoAbbr() << "\tamp1=" <<  fMon1[i].GetAmp()  << "\tamp2 = " <<  fMon2[i].GetAmp() << endl;
-       }
-      */
-
-      if( fMon1[i].GetAmp()  > 50  &&  fMon2[i].GetAmp() > 50  )
-       {
-         //  if(  fMon1[i].GetTof() != fMon2[i].GetTof())
-         {
-           //    fTofResDifferential[i]->Fill( ( fMon1[i].GetTof() - fMon2[i].GetTof())/TMath::Sqrt(2) );
-           fTofResDifferential[i]->Fill( ( fMon1[i].GetTof() - fMon2[i].GetTof()) );
-           fTofResAbsolute[i]->Fill(  fMon1[i].GetTof() ); 
-         }
-       }
+      //  if(  fMon1[i].GetTof() != fMon2[i].GetTof())
+      {
+        //    fTofResDifferential[i]->Fill( ( fMon1[i].GetTof() - fMon2[i].GetTof())/TMath::Sqrt(2) );
+        fTofResDifferential[i]->Fill( ( fMon1[i].GetTof() - fMon2[i].GetTof()) );
+        fTofResAbsolute[i]->Fill(  fMon1[i].GetTof() );
+      }
     }
+  }
 }
 
 
 void 
 AliCaloRawAnalyzerComparison::WriteHistograms()
-{ // write histograms 
+{ // write histograms
   TFile *f = new TFile("comparison2.root", "recreate");
   
   /*
-  for(int col=0; col < NZCOLSSMOD; col ++ )
-    {
-      for(int row=0; row < NXROWSSMOD; row ++ )
-       {
-         fAmpHistograms[col][row]->Write();
-       }
-    }
-  */  
-
+   for(int col=0; col < NZCOLSSMOD; col ++ )
+   {
+   for(int row=0; row < NXROWSSMOD; row ++ )
+   {
+   fAmpHistograms[col][row]->Write();
+   }
+   }
+   */
+  
   for(int i=0; i < fRawAnalyzers.size(); i++ )
+  {
+    for(int col=0; col < NZCOLSSMOD; col ++ )
     {
-      for(int col=0; col < NZCOLSSMOD; col ++ )
-       {
-         for(int row=0; row < NXROWSSMOD; row ++ )
+      for(int row=0; row < NXROWSSMOD; row ++ )
            {
              fAmpHistograms[i][col][row]->Write();
            }
-       }
-      
-      fAmplitudeVsEvent[i]->Write();
-      fTofVsEvent[i]->Write();
-      fRefAmpVsAnalyzers[i]->Write();
-      fRefTofVsAnalyzers[i]->Write(); 
-      fAmpDiff[i]->Write(); 
-      fTofDiff[i]->Write();  
-      fTofResDifferential[i]->Write();
-      fTofResAbsolute[i]->Write(); 
-
-   }
+    }
+    
+    fAmplitudeVsEvent[i]->Write();
+    fTofVsEvent[i]->Write();
+    fRefAmpVsAnalyzers[i]->Write();
+    fRefTofVsAnalyzers[i]->Write();
+    fAmpDiff[i]->Write();
+    fTofDiff[i]->Write();
+    fTofResDifferential[i]->Write();
+    fTofResAbsolute[i]->Write();
+    
+  }
+  
   f->Close();
 }
 
 
 void
 AliCaloRawAnalyzerComparison::InitHistograms( vector <AliCaloRawAnalyzer*> analyzers, AliCaloRawAnalyzer* ref )
-{ // init histograms 
+{ // init histograms
   char tmpname[256];
-  /* 
-  for(int col=0; col < NZCOLSSMOD; col ++ )
-    {
-      for(int row=0; row < NXROWSSMOD; row ++ )
-       {
-         sprintf(tmpname, "z(col)%d_x(row)%d_amplitude;Counts;Amplitude/ADC counts", col, row);
-         fAmpHistograms[col][row] = new TH1D(tmpname, tmpname, 1024, 0, 1023 );
-       }
-    }
-  */
-
+  
+  /*
+   for(int col=0; col < NZCOLSSMOD; col ++ )
+   {
+   for(int row=0; row < NXROWSSMOD; row ++ )
+   {
+   sprintf(tmpname, "z(col)%d_x(row)%d_amplitude;Counts;Amplitude/ADC counts", col, row);
+   fAmpHistograms[col][row] = new TH1D(tmpname, tmpname, 1024, 0, 1023 );
+   }
+   }
+   */
+  
   // TH1D *fAmpHistograms[NZCOLSSMOD][NXROWSSMOD];
-
+  
   for(int i=0; i < analyzers.size(); i++ )
+  {
+    for(int col=0; col < NZCOLSSMOD; col ++ )
     {
-      for(int col=0; col < NZCOLSSMOD; col ++ )
-       {
-         for(int row=0; row < NXROWSSMOD; row ++ )
+      for(int row=0; row < NXROWSSMOD; row ++ )
            {
              sprintf(tmpname, "z(col)%d_x(row)%d_amplitude_%s;Amplitude/ADC counts;Counts", col, row,  analyzers.at(i)->GetAlgoAbbr() );
              fAmpHistograms[i][col][row] = new TH1D(tmpname, tmpname, 1024, 0, 1023 );
            }
-       }
-      
-      sprintf(tmpname, "%s_amplitude_vs_event_row%d_col%d;Event;Amplitude/ADC counts", analyzers.at(i)->GetAlgoAbbr(), fMonRow1, fMonCol1 );
-      fAmplitudeVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 1024, 0, 1023 ); 
-     
-      sprintf(tmpname, "%s_tof_vs_event_row%d_col%d;Event;Amplitude/ADC counts", analyzers.at(i)->GetAlgoAbbr(), fMonRow1, fMonCol1 );  
-      
-      //     fTofVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 2000, 3000, 5000); 
-      fTofVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 2000, 1000, 4000);  
-
-
-      sprintf(tmpname, "%s_vs_%s_ampltude; Amplitude_{%s}/ADC counts; Amplitude_{%s}/ADC counts", ref->GetAlgoAbbr(), 
-             analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr() );
-      fRefAmpVsAnalyzers[i] = new TH2D(tmpname, tmpname, 1024, 0, 1023, 1024, 0, 1023); 
-      sprintf(tmpname, "%s_vs_%s_tof; tof_{%s}/ns; tof_{%s}/ns", ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr() );
-      fRefTofVsAnalyzers[i] = new TH2D(tmpname, tmpname, 500, 2000, 4999, 500, 2000, 4999 ); 
-      sprintf( tmpname, "%s-%s amplitude;counts;A_{%s} - A_{%s}",   ref->GetAlgoAbbr(), 
-              analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr());
-      fAmpDiff[i] = new TH1D(tmpname, tmpname, 100, -10, 10 );
-      sprintf( tmpname, "%s-%s tof;counts;A_{%s} - A_{%s}",   ref->GetAlgoAbbr(), 
-              analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr());
-      fTofDiff[i] = new TH1D(tmpname, tmpname, 1000, -5000, 5000 );
-      sprintf( tmpname, "%s Differential tof resolution (%d, %d) vs (%d, %d);#sigma_{tof}^{%s}/ns;Counts",  analyzers.at(i)->GetAlgoAbbr(), fMonCol1, fMonRow1, fMonCol2, fMonRow2, 
-              analyzers.at(i)->GetAlgoAbbr() );
-      fTofResDifferential[i] = new TH1D(tmpname, tmpname, 1000, -250, 250 );
-      sprintf( tmpname, "%s Absolute tof distribution (%d, %d);#sigma_{tof}^{%s}/ns;Counts",  analyzers.at(i)->GetAlgoAbbr(), fMonCol1, fMonRow1, analyzers.at(i)->GetAlgoAbbr() );
-      
-      fTofResAbsolute[i] = new TH1D(tmpname, tmpname, 2000 , -1000, 7000 );
-
-
     }
+    
+    sprintf(tmpname, "%s_amplitude_vs_event_row%d_col%d;Event;Amplitude/ADC counts", analyzers.at(i)->GetAlgoAbbr(), fMonRow1, fMonCol1 );
+    fAmplitudeVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 1024, 0, 1023 );
+    
+    sprintf(tmpname, "%s_tof_vs_event_row%d_col%d;Event;Amplitude/ADC counts", analyzers.at(i)->GetAlgoAbbr(), fMonRow1, fMonCol1 );
+    
+    //     fTofVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 2000, 3000, 5000);
+    fTofVsEvent[i]=new TH2D(tmpname, tmpname, 8000, 0, 7999, 2000, 1000, 4000);
+    
+    
+    sprintf(tmpname, "%s_vs_%s_ampltude; Amplitude_{%s}/ADC counts; Amplitude_{%s}/ADC counts", ref->GetAlgoAbbr(),
+            analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr() );
+    fRefAmpVsAnalyzers[i] = new TH2D(tmpname, tmpname, 1024, 0, 1023, 1024, 0, 1023);
+    sprintf(tmpname, "%s_vs_%s_tof; tof_{%s}/ns; tof_{%s}/ns", ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr() );
+    fRefTofVsAnalyzers[i] = new TH2D(tmpname, tmpname, 500, 2000, 4999, 500, 2000, 4999 );
+    sprintf( tmpname, "%s-%s amplitude;counts;A_{%s} - A_{%s}",   ref->GetAlgoAbbr(),
+            analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr());
+    fAmpDiff[i] = new TH1D(tmpname, tmpname, 100, -10, 10 );
+    sprintf( tmpname, "%s-%s tof;counts;A_{%s} - A_{%s}",   ref->GetAlgoAbbr(),
+            analyzers.at(i)->GetAlgoAbbr(), ref->GetAlgoAbbr(), analyzers.at(i)->GetAlgoAbbr());
+    fTofDiff[i] = new TH1D(tmpname, tmpname, 1000, -5000, 5000 );
+    sprintf( tmpname, "%s Differential tof resolution (%d, %d) vs (%d, %d);#sigma_{tof}^{%s}/ns;Counts",  analyzers.at(i)->GetAlgoAbbr(), fMonCol1, fMonRow1, fMonCol2, fMonRow2,
+            analyzers.at(i)->GetAlgoAbbr() );
+    fTofResDifferential[i] = new TH1D(tmpname, tmpname, 1000, -250, 250 );
+    sprintf( tmpname, "%s Absolute tof distribution (%d, %d);#sigma_{tof}^{%s}/ns;Counts",  analyzers.at(i)->GetAlgoAbbr(), fMonCol1, fMonRow1, analyzers.at(i)->GetAlgoAbbr() );
+    
+    fTofResAbsolute[i] = new TH1D(tmpname, tmpname, 2000 , -1000, 7000 );
+    
+    
+  }
 }