Hall A ROOT/C++ Analyzer (podd)
Loading...
Searching...
No Matches
THaRaster.h
Go to the documentation of this file.
1#ifndef Podd_THaRaster_h_
2#define Podd_THaRaster_h_
3
5// //
6// THaRaster //
7// //
9
10#include "THaBeamDet.h"
11#include "TVectorT.h"
12#include "TMatrixD.h"
13
14class THaRaster : public THaBeamDet {
15public:
16 explicit THaRaster( const char* name, const char* description = "",
17 THaApparatus* a = nullptr );
18 virtual ~THaRaster();
19
20 virtual void Clear( Option_t* ="" );
21 virtual Int_t Decode( const THaEvData& );
22 virtual Int_t Process();
23
24 virtual TVector3 GetPosition() const { return fPosition[2]; }
25 virtual TVector3 GetDirection() const { return fDirection; }
26
27 // As soon as someone finds a better solution, the following lines should be
28 // changed. It is ridiculous to have nine methods to get the the components
29 // of the beam position at various locations, but I do not know how else to
30 // get them into histograms except for writing my own event loop
31
32 Double_t GetRawPosX() { return fRawPos(0); }
33 Double_t GetRawPosY() { return fRawPos(1); }
36
37 Double_t GetPosBPMAX() { return fPosition[0](0); }
38 Double_t GetPosBPMAY() { return fPosition[0](1); }
39 Double_t GetPosBPMAZ() { return fPosition[0](2); }
40
41 Double_t GetPosBPMBX() { return fPosition[1](0); }
42 Double_t GetPosBPMBY() { return fPosition[1](1); }
43 Double_t GetPosBPMBZ() { return fPosition[1](2); }
44
45 Double_t GetPosTarX() { return fPosition[2](0); }
46 Double_t GetPosTarY() { return fPosition[2](1); }
47 Double_t GetPosTarZ() { return fPosition[2](2); }
48
49protected:
50 virtual Int_t ReadDatabase( const TDatime& date );
51 virtual Int_t DefineVariables( EMode mode = kDefine );
52
53 bool CheckHitInfo( const DigitizerHitInfo_t& hitinfo ) const;
54 virtual Int_t StoreHit( const DigitizerHitInfo_t& hitinfo, UInt_t data );
55 virtual OptUInt_t LoadData( const THaEvData& evdata,
56 const DigitizerHitInfo_t& hitinfo );
57
59
60 TVectorD fRawPos; // current in Raster ADCs for position
61 TVectorD fRawSlope; // current in Raster ADCs for the derivative (maybe unused)
62
63 TVector3 fPosition[3]; // Beam position at 1st, 2nd BPM or at the target (meters)
64 TVector3 fDirection; // Beam angle at the target (meters)
65
68
72
74
75 ClassDef(THaRaster,0) // Generic Raster class
76};
77
79
80#endif
#define kDefine
Definition BdataLoc.cxx:38
int Int_t
unsigned int UInt_t
double Double_t
const char Option_t
#define ClassDef(name, id)
char name[80]
virtual void Clear(Option_t *="")
TVectorD fSlopePedestal
Definition THaRaster.h:70
Double_t GetRawPosX()
Definition THaRaster.h:32
Int_t fNfired
Definition THaRaster.h:73
TVectorD fRasterPedestal
Definition THaRaster.h:71
Double_t GetPosBPMAX()
Definition THaRaster.h:37
TVectorT< Double_t > TVectorD
Definition THaRaster.h:58
Double_t GetPosTarY()
Definition THaRaster.h:46
virtual ~THaRaster()
Double_t GetRawPosY()
Definition THaRaster.h:33
Double_t GetPosBPMAY()
Definition THaRaster.h:38
bool CheckHitInfo(const DigitizerHitInfo_t &hitinfo) const
TVector3 fPosOff[3]
Definition THaRaster.h:67
virtual TVector3 GetDirection() const
Definition THaRaster.h:25
Double_t GetRawSlopeX()
Definition THaRaster.h:34
virtual TVector3 GetPosition() const
Definition THaRaster.h:24
Double_t GetPosBPMAZ()
Definition THaRaster.h:39
virtual Int_t Decode(const THaEvData &)
TVectorD fRawSlope
Definition THaRaster.h:61
Double_t GetPosTarX()
Definition THaRaster.h:45
TVectorD fRasterFreq
Definition THaRaster.h:69
virtual Int_t DefineVariables(EMode mode=kDefine)
TVector3 fPosition[3]
Definition THaRaster.h:63
TVectorD fRawPos
Definition THaRaster.h:60
virtual Int_t StoreHit(const DigitizerHitInfo_t &hitinfo, UInt_t data)
Double_t GetPosBPMBX()
Definition THaRaster.h:41
virtual Int_t ReadDatabase(const TDatime &date)
Definition THaRaster.cxx:37
virtual OptUInt_t LoadData(const THaEvData &evdata, const DigitizerHitInfo_t &hitinfo)
Double_t GetRawSlopeY()
Definition THaRaster.h:35
TMatrixD fRaw2Pos[3]
Definition THaRaster.h:66
Double_t GetPosTarZ()
Definition THaRaster.h:47
Double_t GetPosBPMBZ()
Definition THaRaster.h:43
virtual Int_t Process()
Double_t GetPosBPMBY()
Definition THaRaster.h:42
TVector3 fDirection
Definition THaRaster.h:64
TArc a