ATLAS Offline Software
TrackAnalysis.h
Go to the documentation of this file.
1 /* emacs: this is -*- c++ -*- */
12 #ifndef TIDA_TRACKANALYSIS_H
13 #define TIDA_TRACKANALYSIS_H
14 
15 #include <iostream>
16 #include <vector>
17 #include <string>
18 #include <map>
19 
20 
28 
29 #include "TH1.h"
30 
31 
32 class TrackAnalysis {
33 
34 public:
35 
38  TrackAnalysis( const std::string& name ) :
39  m_name(name),
42  m_event(0), m_roi(0)
43  { }
44 
45  virtual ~TrackAnalysis() { }
46 
48  std::string name() const { return m_name; }
49 
51  virtual void initialise() = 0;
52 
53  virtual void execute( const std::vector<TIDA::Track*>& tracks1,
54  const std::vector<TIDA::Track*>& tracks2,
55  TrackAssociator* matcher ) = 0;
56 
57  virtual void execute( const std::vector<TIDA::Track*>& tracks1,
58  const std::vector<TIDA::Track*>& tracks2,
59  TrackAssociator* matcher,
60  TrigObjectMatcher* /* objects */ ) {
61  execute( tracks1, tracks2, matcher );
62  }
63 
64  virtual void execute( const std::vector<TIDA::Track*>& ,
65  const std::vector<TIDA::Track*>& ,
66  TrackAssociator* ,
67  const TIDA::Event* ) { }
68 
69  virtual void execute( const std::vector<TIDA::Track*>& tracks1,
70  const std::vector<TIDA::Track*>& tracks2,
71  TrackAssociator* matcher,
72  const TIDA::Event* event,
73  double* ) {
74  execute( tracks1, tracks2, matcher, event );
75  }
76 
77  virtual void execute( const std::vector<TIDA::Track*>& ,
78  const std::vector<TIDA::Track*>& ,
79  TrackAssociator* ,
80  const TIDA::Event* ,
81  double* ,
82  TIDARoiDescriptor* ) { }
83 
84 
85  virtual void execute_vtx( const std::vector<TIDA::Vertex*>& ,
86  const std::vector<TIDA::Vertex*>& ,
87  const TIDA::Event* =0 ) { }
88 
89 
90  virtual void finalise() = 0;
91 
92  // histogram map access - add a histogram
93  void addHistogram( TH1* h ) {
94  std::string name = h->GetName();
95  m_histos.insert( std::map<std::string, TH1*>::value_type( name, h) );
96  }
97 
99  const std::map<std::string, TH1*>& getHistograms() const { return m_histos; }
100 
101  std::map<std::string, TH1*>::const_iterator begin() const { return m_histos.begin(); }
102  std::map<std::string, TH1*>::const_iterator end() const { return m_histos.end(); }
103 
105  void setBeamRef( double x, double y, double z=0 ) { m_xBeamReference = x; m_yBeamReference = y; m_zBeamReference = z; }
106  void setBeamTest( double x, double y, double z=0 ) { m_xBeamTest = x; m_yBeamTest = y; m_zBeamTest = z; }
107 
108  void setBeamRef( const std::vector<double>& v ) {
109  if ( v.size()>0 ) m_xBeamReference = v[0];
110  if ( v.size()>1 ) m_yBeamReference = v[1];
111  if ( v.size()>2 ) m_zBeamReference = v[2];
112  }
113 
114  void setBeamTest( const std::vector<double>& v ) {
115  if ( v.size()>0 ) m_xBeamTest = v[0];
116  if ( v.size()>1 ) m_yBeamTest = v[1];
117  if ( v.size()>2 ) m_zBeamTest = v[2];
118  }
119 
120  double beamRefx() const { return m_xBeamReference; }
121  double beamRefy() const { return m_yBeamReference; }
122  double beamRefz() const { return m_zBeamReference; }
123 
124  double beamTestx() const { return m_xBeamTest; }
125  double beamTesty() const { return m_yBeamTest; }
126  double beamTestz() const { return m_zBeamTest; }
127 
128 
130 
131  const TIDA::Event* event() const { return m_event; }
133 
134  const TIDARoiDescriptor* roi() const { return m_roi; }
136 
137 protected:
138 
141  std::string m_name;
142 
145  std::map<std::string, TH1*> m_histos;
146 
152 
154  double m_xBeamTest;
155  double m_yBeamTest;
156  double m_zBeamTest;
157 
159 
162 
163 };
164 
165 
166 inline std::ostream& operator<<(std::ostream& s, const TrackAnalysis& ta) {
167  return s << ta.name();
168 }
169 
170 
171 #endif // TIDA_TRACKANALYSIS_H
172 
173 
174 
175 
176 
177 
178 
179 
180 
181 
TrackAnalysis::m_roi
TIDARoiDescriptor * m_roi
Definition: TrackAnalysis.h:161
TrackAnalysis::setBeamRef
void setBeamRef(const std::vector< double > &v)
Definition: TrackAnalysis.h:108
TrackAnalysis::setBeamTest
void setBeamTest(double x, double y, double z=0)
Definition: TrackAnalysis.h:106
beamspotman.r
def r
Definition: beamspotman.py:676
TrackAnalysis::initialise
virtual void initialise()=0
standard operation interface
TIDA::Associator
Definition: TIDAAssociator.h:24
Track.h
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
TrackAnalysis::beamTesty
double beamTesty() const
Definition: TrackAnalysis.h:125
TrackAnalysis::finalise
virtual void finalise()=0
TIDAEvent.h
Basic event class to contain a vector of chains for trigger analysis
TrackAnalysis::beamRefy
double beamRefy() const
Definition: TrackAnalysis.h:121
TIDA::FeatureStore
Definition: TIDAFeatureStore.h:26
TrackAnalysis::execute
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, const TIDA::Event *event, double *)
Definition: TrackAnalysis.h:69
TrackAnalysis::execute
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher)=0
TrackAnalysis::getHistograms
const std::map< std::string, TH1 * > & getHistograms() const
access the histograms
Definition: TrackAnalysis.h:99
TIDAVertex.h
TrackAnalysis::execute_vtx
virtual void execute_vtx(const std::vector< TIDA::Vertex * > &, const std::vector< TIDA::Vertex * > &, const TIDA::Event *=0)
Definition: TrackAnalysis.h:85
TIDARoiDescriptor
Describes the Region of Ineterest geometry It has basically 8 parameters.
Definition: TIDARoiDescriptor.h:42
TIDARoiDescriptor.h
TrackAnalysis::execute
virtual void execute(const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *)
Definition: TrackAnalysis.h:64
TrackAnalysis::roi
const TIDARoiDescriptor * roi() const
Definition: TrackAnalysis.h:134
TIDA::Event
Definition: TIDAEvent.h:33
x
#define x
TrackAnalysis::beamTestz
double beamTestz() const
Definition: TrackAnalysis.h:126
TrackAnalysis::setBeamTest
void setBeamTest(const std::vector< double > &v)
Definition: TrackAnalysis.h:114
TrackAnalysis::setevent
void setevent(TIDA::Event *e)
Definition: TrackAnalysis.h:132
TrigObjectMatcher
Definition: TrigObjectMatcher.h:24
TrackAnalysis::beamRefz
double beamRefz() const
Definition: TrackAnalysis.h:122
z
#define z
TIDAFeatureStore.h
Generic storage container - to contain objects wrapped as Features
TrackAnalysis::execute
virtual void execute(const std::vector< TIDA::Track * > &tracks1, const std::vector< TIDA::Track * > &tracks2, TrackAssociator *matcher, TrigObjectMatcher *)
Definition: TrackAnalysis.h:57
TrackAnalysis
Definition: TrackAnalysis.h:32
TrackAnalysis::name
std::string name() const
return identifier
Definition: TrackAnalysis.h:48
TrackAnalysis::beamRefx
double beamRefx() const
Definition: TrackAnalysis.h:120
TrackAnalysis::setBeamRef
void setBeamRef(double x, double y, double z=0)
set the beamline positions
Definition: TrackAnalysis.h:105
TrackAssociator.h
TrackAnalysis::event
const TIDA::Event * event() const
Definition: TrackAnalysis.h:131
TrackAnalysis::m_histos
std::map< std::string, TH1 * > m_histos
lookup table for the histograms by name - does this need to be in the base class?
Definition: TrackAnalysis.h:145
TrackAnalysis::m_yBeamReference
double m_yBeamReference
Definition: TrackAnalysis.h:150
TrackAnalysis::m_event
TIDA::Event * m_event
Definition: TrackAnalysis.h:160
TrackAnalysis::m_zBeamTest
double m_zBeamTest
Definition: TrackAnalysis.h:156
TrackAnalysis::m_store
TIDA::FeatureStore m_store
Definition: TrackAnalysis.h:158
TrackAnalysis::TrackAnalysis
TrackAnalysis(const std::string &name)
the beam test parts are not really usable in a multithreaded environment
Definition: TrackAnalysis.h:38
TrackAnalysis::end
std::map< std::string, TH1 * >::const_iterator end() const
Definition: TrackAnalysis.h:102
TrackAnalysis::begin
std::map< std::string, TH1 * >::const_iterator begin() const
Definition: TrackAnalysis.h:101
TrigObjectMatcher.h
operator<<
std::ostream & operator<<(std::ostream &s, const TrackAnalysis &ta)
Definition: TrackAnalysis.h:166
TrackAnalysis::setroi
void setroi(TIDARoiDescriptor *r)
Definition: TrackAnalysis.h:135
python.PyAthena.v
v
Definition: PyAthena.py:157
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
TrackAnalysis::addHistogram
void addHistogram(TH1 *h)
Definition: TrackAnalysis.h:93
y
#define y
h
TrackAnalysis::m_xBeamTest
double m_xBeamTest
test sample
Definition: TrackAnalysis.h:154
TrackAnalysis::execute
virtual void execute(const std::vector< TIDA::Track * > &, const std::vector< TIDA::Track * > &, TrackAssociator *, const TIDA::Event *, double *, TIDARoiDescriptor *)
Definition: TrackAnalysis.h:77
TH1
Definition: rootspy.cxx:268
TrackAnalysis::beamTestx
double beamTestx() const
Definition: TrackAnalysis.h:124
TrackAnalysis::m_yBeamTest
double m_yBeamTest
Definition: TrackAnalysis.h:155
TrackAnalysis::~TrackAnalysis
virtual ~TrackAnalysis()
Definition: TrackAnalysis.h:45
TrackAnalysis::m_zBeamReference
double m_zBeamReference
Definition: TrackAnalysis.h:151
TrackAnalysis::m_name
std::string m_name
identifier of the of the analysis - also used for the root directory into which the histograms are pu...
Definition: TrackAnalysis.h:141
TrackAnalysis::store
TIDA::FeatureStore & store()
Definition: TrackAnalysis.h:129
TrackAnalysis::m_xBeamReference
double m_xBeamReference
beamline positions reference sample
Definition: TrackAnalysis.h:149