LCOV - code coverage report
Current view: top level - EMCAL/EMCALraw - AliCaloRawAnalyzerCrude.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 28 3.6 %
Date: 2016-06-14 17:26:59 Functions: 1 4 25.0 %

          Line data    Source code
       1             : /**************************************************************************
       2             :  * This file is property of and copyright by the Experimental Nuclear     *
       3             :  * Physics Group, Dep. of Physics                                         *
       4             :  * University of Oslo, Norway, 2007                                       *
       5             :  *                                                                        *
       6             :  * Author: Per Thomas Hille <perthi@fys.uio.no> for the ALICE HLT Project.*
       7             :  * Contributors are mentioned in the code where appropriate.              *
       8             :  * Please report bugs to perthi@fys.uio.no                                *
       9             :  *                                                                        *
      10             :  * Permission to use, copy, modify and distribute this software and its   *
      11             :  * documentation strictly for non-commercial purposes is hereby granted   *
      12             :  * without fee, provided that the above copyright notice appears in all   *
      13             :  * copies and that both the copyright notice and this permission notice   *
      14             :  * appear in the supporting documentation. The authors make no claims     *
      15             :  * about the suitability of this software for any purpose. It is          *
      16             :  * provided "as is" without express or implied warranty.                  *
      17             :  **************************************************************************/
      18             : 
      19             : // Evaluation of amplitude
      20             : // as max sample value - pedestal
      21             : // Not veru accurate, but very robust
      22             : // --------------
      23             : // --------------
      24             : 
      25             : #include "AliCaloRawAnalyzerCrude.h"
      26             : #include "AliCaloFitResults.h"
      27             : #include "AliCaloBunchInfo.h"
      28             : #include "TMath.h"
      29             : using namespace std;
      30             : 
      31          42 : ClassImp(AliCaloRawAnalyzerCrude)  
      32             : 
      33             : 
      34           0 : AliCaloRawAnalyzerCrude::AliCaloRawAnalyzerCrude() : AliCaloRawAnalyzer("Crude", "Crude")
      35           0 : {
      36             :   // Ctor
      37             :   
      38           0 :   fAlgo=Algo::kCrude;
      39           0 : }
      40             : 
      41             : AliCaloFitResults
      42             : AliCaloRawAnalyzerCrude::Evaluate(const vector<AliCaloBunchInfo> &bunchvector, const UInt_t altrocfg1,  const UInt_t altrocfg2)
      43             : {
      44             :   // Evaluation of signal parameters
      45           0 :   short maxampindex; //index of maximum amplitude
      46           0 :   short maxamp; //Maximum amplitude
      47           0 :   int index = SelectBunch( bunchvector,  &maxampindex,  &maxamp );
      48             :  
      49           0 :   if( index >= 0)
      50             :     {
      51           0 :       Float_t ped = ReverseAndSubtractPed( &(bunchvector.at(index))  ,  altrocfg1, altrocfg2, fReversed  );
      52           0 :       Float_t maxf = TMath::MaxElement( bunchvector.at(index).GetLength(),  fReversed );
      53           0 :       short timebinOffset = maxampindex - (bunchvector.at(index).GetLength()-1);
      54           0 :       Float_t time = (timebinOffset*TIMEBINWITH)-fL1Phase;
      55           0 :       if(  maxf < fAmpCut  ||  maxamp > fOverflowCut  ) // (maxamp - ped) > fOverflowCut = Close to saturation (use low gain then)
      56             :         //ped removed from the comparison (maybe temporarily)
      57             :         {
      58           0 :           return  AliCaloFitResults( maxamp, ped, Ret::kCrude, maxf, time, (int)time, 0, 0, Ret::kDummy);
      59             :         }
      60           0 :       else if ( maxf >= fAmpCut ) // no if statement needed really; keep for readability
      61             :         {
      62           0 :           int first = 0;
      63           0 :           int last = 0;
      64           0 :           int maxrev =  maxampindex -  bunchvector.at(index).GetStartBin();
      65           0 :           SelectSubarray( fReversed,  bunchvector.at(index).GetLength(), maxrev , &first, &last, fFitArrayCut );
      66             : 
      67           0 :           Float_t chi2 = CalculateChi2(maxf, maxrev, first, last);
      68           0 :           Int_t ndf = last - first - 1; // nsamples - 2
      69           0 :           return AliCaloFitResults( maxamp, ped, Ret::kCrude, maxf, time,
      70           0 :                                     (int)time, chi2, ndf, Ret::kDummy, AliCaloFitSubarray(index, maxrev, first, last) );
      71           0 :         } // ampcut
      72           0 :     } // bunch index    
      73             : 
      74           0 :   return AliCaloFitResults( Ret::kInvalid , Ret::kInvalid);
      75             : 
      76           0 : } //end Crude
      77             : 
      78             : 

Generated by: LCOV version 1.11