ATLAS Offline Software
Loading...
Searching...
No Matches
SigAnalysis.h
Go to the documentation of this file.
1/* emacs: this is -*- c++ -*- */
10
11
12#ifndef TIDAEXAMPLE_SIGANALYSIS_H
13#define TIDAEXAMPLE_SIGANALYSIS_H
14
15#include <iostream>
16#include <vector>
17#include <map>
18
23
24#include "TH1F.h"
25#include "TH2F.h"
26
27
28class SigAnalysis : public TrackAnalysis {
29
30public:
31
33
34public:
35
36 SigAnalysis( const std::string& name ) : TrackAnalysis( name ), m_Nreco(0), m_print(true), m_icount(0), m_dir(0) {
37 std::cout << "SigAnalysis::SigAnalysis() " << TrackAnalysis::name() << std::endl;
38 }
39
41 std::cout << "SigAnalysis::~SigAnalysis() " << name() << std::endl;
42 std::map<std::string, TH1F*>::iterator hitr=m_histos.begin();
43 std::map<std::string, TH1F*>::iterator hend=m_histos.end();
44 for ( ; hitr!=hend ; ++hitr ) delete hitr->second;
45
48
49 for ( int i=4 ; i-- ; ) { delete heff[i]; delete hpurity[i]; }
50
51 delete m_eff_ptp;
52 delete m_eff_ptm;
53
54 }
55
56
57
58 virtual void initialise();
59
60 virtual void execute(const std::vector<TIDA::Track*>& reftracks,
61 const std::vector<TIDA::Track*>& testtracks,
62 TrackAssociator* matcher );
63
64 virtual void finalise();
65
66 void setprint(bool p) { m_print=p; }
67
68private:
69
70 void addHistogram( TH1F* h ) {
71 std::string name = h->GetName();
72 m_histos.insert( std::map<std::string, TH1F*>::value_type( name, h) );
73 }
74
75 TH1F* find( const std::string& n ) {
76 std::map<std::string, TH1F*>::iterator hmitr = m_histos.find(n);
77 if ( hmitr!=m_histos.end() ) return hmitr->second;
78 else return 0;
79 }
80
81private:
82
83 std::map<std::string, TH1F*> m_histos;
84
88
94
101
102
103 TH2F* m_h2 = nullptr;
104 TH2F* m_h2m = nullptr;
105 TH2F* m_h2r = nullptr;
106
109
112
115
117
118};
119
120
121
122inline std::ostream& operator<<( std::ostream& s, const SigAnalysis& /*_s*/ ) {
123 return s;
124}
125
126
127
128
129
130#endif // TIDAEXAMPLE_SIGANALYSIS_H
131
132
133
134
135
136
137
138
139
140
std::ostream & operator<<(std::ostream &s, const SigAnalysis &)
TIDA::Associator< TIDA::Track > TrackAssociator
Header file for AthHistogramAlgorithm.
virtual void initialise()
standard operation interface
TIDDirectory * m_dir
void addHistogram(TH1F *h)
Definition SigAnalysis.h:70
Efficiency1D * m_purity_d0
Definition SigAnalysis.h:99
virtual void finalise()
Efficiency1D * m_purity_eta
Definition SigAnalysis.h:96
bool m_print
flag to print out the matched tracks etc
Efficiency1D * m_eff_ptp
Definition SigAnalysis.h:86
Efficiency1D * m_eff_a0
Definition SigAnalysis.h:93
Efficiency1D * m_purity_a0
Efficiency1D * m_eff_d0
Definition SigAnalysis.h:92
SigAnalysis(const std::string &name)
Definition SigAnalysis.h:36
Efficiency1D * m_purity_z0
Definition SigAnalysis.h:98
Efficiency1D * m_eff_z0
Definition SigAnalysis.h:91
std::map< std::string, TH1F * > m_histos
Definition SigAnalysis.h:83
virtual void execute(const std::vector< TIDA::Track * > &reftracks, const std::vector< TIDA::Track * > &testtracks, TrackAssociator *matcher)
Efficiency1D * m_eff_phi
Definition SigAnalysis.h:90
int m_icount
Event counter.
void setprint(bool p)
Definition SigAnalysis.h:66
Efficiency1D * m_eff_ptm
Definition SigAnalysis.h:87
Efficiency1D * m_eff_eta
Definition SigAnalysis.h:89
Efficiency1D * m_purity_pt
Definition SigAnalysis.h:95
Efficiency1D * m_eff_pt
Definition SigAnalysis.h:85
TH1F * find(const std::string &n)
Definition SigAnalysis.h:75
int m_Nreco
number of reconstructed tracks
Efficiency1D * m_purity_phi
Definition SigAnalysis.h:97
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)=0
const std::string & name() const
return identifier
TrackAnalysis(const std::string &name)
the beam test parts are not really usable in a multithreaded environment