Newer
Older
Buddhini Waidyawansa
committed
#ifndef ROOT_THcRaster
#define ROOT_THcRaster
Buddhini Waidyawansa
committed
///////////////////////////////////////////////////////////////////////////////
// //
// THcRaster //
// //
///////////////////////////////////////////////////////////////////////////////
#include "THaBeamDet.h"
Buddhini Waidyawansa
committed
#include "TVector.h"
#include "TClonesArray.h"
#include "THcHitList.h"
#include "THcDetectorMap.h"
#include "THcRasterRawHit.h"
#include "THaCutList.h"
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
class THcRaster : public THaBeamDet, public THcHitList {
Buddhini Waidyawansa
committed
public:
Buddhini Waidyawansa
committed
THcRaster(const char* name, const char* description ="",THaApparatus* a = NULL );
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
~THcRaster();
EStatus Init( const TDatime& run_time );
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
Int_t Decode( const THaEvData& );
Int_t Process();
Buddhini Waidyawansa
committed
// TVector3 GetPosition() const { return fPosition[2]; }
TVector3 GetPosition() const { return fPosition[0]; }
Buddhini Waidyawansa
committed
TVector3 GetDirection() const { return fDirection; } // Hall C we don't use raster direction yet.
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
Double_t GetCurrentX() { return fRawPos[0]; }
Double_t GetCurrentY() { return fRawPos[1]; }
Buddhini Waidyawansa
committed
protected:
/* void InitializeReconstruction(); */
Buddhini Waidyawansa
committed
Int_t ReadDatabase( const TDatime& date );
Int_t DefineVariables( EMode mode );
Buddhini Waidyawansa
committed
Double_t fXADC; // X current
Double_t fYADC; // Y current
Double_t fXpos; // X position
Double_t fYpos; // Y position
Buddhini Waidyawansa
committed
Double_t fRawADC[2]; // raw ADC values
Double_t fPedADC[2]; // ADC poedestals
Double_t fAvgPedADC[2]; // Avergage ADC poedestals
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
Double_t fRawPos[2]; // current in Raster ADCs for position
Buddhini Waidyawansa
committed
TVector3 fPosition[2]; // Beam position at 1st, 2nd BPM or at the target (meters)
TVector3 fDirection;
Buddhini Waidyawansa
committed
private:
Bool_t fAnalyzePedestals;
Int_t fNPedestalEvents;
Double_t fFrCalMom;
Double_t fFrXADCperCM;
Double_t fFrYADCperCM;
Buddhini Waidyawansa
committed
void CalculatePedestals();
void AccumulatePedestals(TClonesArray* rawhits);
Buddhini Waidyawansa
committed
ClassDef(THcRaster, 0); // add THcRaster to ROOT library
};
Buddhini Waidyawansa
committed
////////////////////////////////////////////////////////////////////////////////