Analysis.h 1.44 KB
Newer Older
1
2
3
/** @file Analysis
 *  @brief Function prototypes for Analysis
 *
4
 *  This contains the prototypes and members
5
6
7
8
9
10
11
12
13
14
15
 *  for Analysis
 *
 *  @author Yakov Kulinich
 *  @bug No known bugs.
 */

#ifndef ANALYSIS_H
#define ANALYSIS_H

#include <string>
#include <vector>
16
#include "TVirtualPad.h"
17

18
#include "Detector.h"
19
#include "Containers.h"
20
#include "Visualizer.h"
21

22
23
24
25
26
27
28
29
30
31
32
33
34
class TFile;
class TH1;
class TH2;
class TH3;
class TTree;

class Analysis{

 public:
  Analysis( ){};
  virtual ~Analysis( ){};

  virtual void Initialize     ( ) = 0;
35
  virtual void Initialize     ( std::vector < Detector* > ) = 0;
36
  virtual void SetupHistograms( ) = 0;
37
  virtual void AnalyzeEvent   ( ) = 0;
38
39
  virtual void AnalyzeEvent   ( const std::vector< TH1* >& ) = 0;
  virtual void AnalyzeEvent   ( const std::vector< std::vector< float > >& ) = 0;
40
  virtual void AnalyzeEvent   ( const std::vector< Channel* > ) = 0;
clantz's avatar
clantz committed
41
  virtual void SetVerbosity   ( int _level ){ m_verbose = _level; }
42
  virtual void SetBranches    ( TTree* _tree ){ m_AnalysisTree = _tree; }
43
  virtual void Finalize       ( ) = 0;
44
  virtual void AssignVisualizer ( Visualizer *_viz ){ m_viz = _viz; }
45

clantz's avatar
clantz committed
46
47
48
 protected:
  /** Verbosity level */
  int m_verbose = 0;
49
  /** Output tree */
50
51
52
  TTree *m_AnalysisTree = 0;
  /** Visualizer for plots **/
  Visualizer* m_viz = 0;
53
54
  /** Alignment information for the given run */
  Alignment* m_alignment;
55
56
  /** Alignment information for the given run */
  Alignment2021* m_alignment2021;
57
58
59
};

#endif