Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaSpectrometerDetector.h
Go to the documentation of this file.
1#ifndef Podd_THaSpectrometerDetector_h_
2#define Podd_THaSpectrometerDetector_h_
3
5//
6// THaSpectrometerDetector
7//
8// Abstract base class for a generic spectrometer detector.
9//
10// This is a specialized detector class that supports the concept of
11// "tracking" and "PID" detectors.
12//
14
15#include "THaDetector.h"
16
17class THaTrack;
18class TVector3;
19
21
22public:
23 virtual ~THaSpectrometerDetector() = default;
24
25 virtual Bool_t IsTracking() = 0;
26 virtual Bool_t IsPid() = 0;
27
30 Double_t& x, Double_t& y );
31 Bool_t CalcPathLen( THaTrack* track, Double_t& t );
33 Double_t& pathl );
35 Double_t& xdet, Double_t& ydet );
36
37 THaSpectrometerDetector() = default; // for ROOT I/O only
38
39protected:
40 //Only derived classes may construct me
41 THaSpectrometerDetector( const char* name, const char* description,
42 THaApparatus* a = nullptr );
43
44 ClassDef(THaSpectrometerDetector,1) //ABC for a spectrometer detector
45};
46
47#endif
bool Bool_t
double Double_t
#define ClassDef(name, id)
Bool_t CalcPathLen(THaTrack *track, Double_t &t)
THaSpectrometerDetector()=default
Bool_t CalcTrackIntercept(THaTrack *track, TVector3 &icept, Double_t &pathl)
Bool_t CheckIntercept(THaTrack *track)
Bool_t CalcInterceptCoords(THaTrack *track, Double_t &x, Double_t &y)
virtual Bool_t IsPid()=0
virtual Bool_t IsTracking()=0
virtual ~THaSpectrometerDetector()=default
THaSpectrometerDetector(const char *name, const char *description, THaApparatus *a=nullptr)