fix for bug #66858] (PWG1 train problem for LHC10c data)
[u/mrichter/AliRoot.git] / EMCAL / AliCaloRawAnalyzerComparison.h
1 #ifndef ALICALORAWANALYZERCOMPARISON_H
2 #define ALICALORAWANALYZERCOMPARISON_H
3
4 /**************************************************************************
5  * This file is property of and copyright by the Experimental Nuclear     *
6  * Physics Group, Dep. of Physics                                         *
7  * University of Oslo, Norway, 2007                                       *
8  *                                                                        *
9  * Author: Per Thomas Hille <perthi@fys.uio.no> for the ALICE HLT Project.*
10  * Contributors are mentioned in the code where appropriate.              *
11  * Please report bugs to perthi@fys.uio.no                                *
12  *                                                                        *
13  * Permission to use, copy, modify and distribute this software and its   *
14  * documentation strictly for non-commercial purposes is hereby granted   *
15  * without fee, provided that the above copyright notice appears in all   *
16  * copies and that both the copyright notice and this permission notice   *
17  * appear in the supporting documentation. The authors make no claims     *
18  * about the suitability of this software for any purpose. It is          *
19  * provided "as is" without express or implied warranty.                  *
20  **************************************************************************/
21
22 #define NANALYZERS 5
23
24 #include <vector>
25 #include "AliCaloBunchInfo.h"
26 #include "AliCaloFitResults.h"
27
28 #define NZCOLSSMOD   48     
29 #define NXROWSSMOD   24    
30
31 class AliCaloRawAnalyzer;
32 class TH2D;
33 class TH1D;
34
35
36 class  AliCaloRawAnalyzerComparison
37 {
38  public:
39   AliCaloRawAnalyzerComparison();
40   virtual ~AliCaloRawAnalyzerComparison();
41   void Evaluate( const std::vector<AliCaloBunchInfo> &bunchvector, 
42                  const UInt_t altrocfg1,  const UInt_t altrocfg2, const int event, const int col, const int row ); 
43   
44   void EventChanged();
45
46   void WriteHistograms();
47
48  private:
49   void IntiHistograms( std::vector <AliCaloRawAnalyzer*> analyzers, AliCaloRawAnalyzer* ref );
50
51   TH1D *fAmpHistograms[NANALYZERS][NZCOLSSMOD][NXROWSSMOD];
52
53   TH2D *fAmplitudeVsEvent[NANALYZERS];  // Amplitude vs envent number
54   TH2D *fTofVsEvent[NANALYZERS];        // Tof vs event number
55   TH2D *fRefAmpVsAnalyzers[NANALYZERS]; // Amplidue from give analyzer vs reference
56   TH2D *fRefTofVsAnalyzers[NANALYZERS]; // Amplidue from give analyzer vs reference
57   TH1D *fAmpDiff[NANALYZERS]; // Difference in amplitude between reference
58   TH1D *fTofDiff[NANALYZERS]; // Difference in tof between reference
59   TH1D *fTofResDifferential[NANALYZERS]; //differntial tof resolution 
60   TH1D *fTofResAbsolute[NANALYZERS]; //differntial tof resolution 
61   
62
63   std::vector <AliCaloRawAnalyzer*> fRawAnalyzers; // raw analyzers
64   AliCaloRawAnalyzer *fReferenceAnalyzer; // reference analyzer
65   
66   int fMod; // SuperModule index
67   int fMonCol1; // column index, for tower 1
68   int fMonRow1; // row index, for tower 1
69   int fMonCol2; // column index, for tower 2
70   int fMonRow2; // row index, for tower 1
71
72   AliCaloFitResults fMon1[NANALYZERS]; // results for tower 1
73   AliCaloFitResults fMon2[NANALYZERS]; // results for tower 2
74
75 };
76
77 #endif