Newer
Older
bduran
committed
//author Burcu Duran - Melanie Rehfuss (2017)
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
bduran
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();
bduran
committed
void Clear(Option_t* opt="");
void AccumulatePedestals(TClonesArray* rawhits);
void CalculatePedestals();
Int_t Decode( const THaEvData& );
Int_t ReadDatabase( const TDatime& date );
Int_t DefineVariables( EMode mode );
Buddhini Waidyawansa
committed
EStatus Init( const TDatime& run_time );
Buddhini Waidyawansa
committed
bduran
committed
void InitArrays() { /* do nothing */;}
void DeleteArrays() { /* do nothing */;}
Buddhini Waidyawansa
committed
Int_t Process();
Buddhini Waidyawansa
committed
TVector3 GetPosition() const { return fPosition[1]; }
TVector3 GetDirection() const { return fDirection; }
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
Double_t GetCurrentX() { return fRawPos[0]; }
Double_t GetCurrentY() { return fRawPos[1]; }
Buddhini Waidyawansa
committed
bduran
committed
THcRaster();
Buddhini Waidyawansa
committed
protected:
bduran
committed
//event information
Buddhini Waidyawansa
committed
bduran
committed
Int_t fNhits;
/* void InitializeReconstruction(); */
Buddhini Waidyawansa
committed
Double_t fgpbeam; //beam momentum
Double_t fgfrx_dist; //Distance of raster to target
Double_t fgfry_dist;
Double_t fgbeam_xoff; // Beam offsets
Double_t fgbeam_xpoff; // Beam offsets
Double_t fgbeam_yoff; // Beam offsets
Double_t fgbeam_ypoff; // Beam offsets
Int_t fgusefr; /* Use Raster for beam position */
bduran
committed
Double_t FRXA_rawadc; // XA raw ADC
Double_t FRYA_rawadc; // YA raw ADC
Double_t FRXB_rawadc; // XB raw ADC
Double_t FRYB_rawadc; // YB raw ADC
Double_t fXA_ADC; // XA ADC
Double_t fYA_ADC; // YA ADC
Double_t fXB_ADC; // XB ADC
Double_t fYB_ADC; // YB ADC
Double_t fXA_pos; // XA position
Double_t fYA_pos; // YA position
Double_t fXB_pos; // XB position
Double_t fYB_pos; // YB position
Buddhini Waidyawansa
committed
bduran
committed
Double_t fFrXA_ADC_zero_offset;
Double_t fFrYA_ADC_zero_offset;
Double_t fFrXB_ADC_zero_offset;
Double_t fFrYB_ADC_zero_offset;
bduran
committed
Double_t fPedADC[4]; // ADC poedestals
//Double_t fAvgPedADC[4]; // Avergage ADC poedestals
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
Double_t fRawPos[2]; // current in Raster ADCs for position

Melanie Cardona
committed
TVector3 fPosition[2]; // Beam position at 1st, 2nd BPM or at the target (meters)
TVector3 fDirection;
Buddhini Waidyawansa
committed
bduran
committed
TClonesArray* frPosAdcPulseIntRaw;
private:
Bool_t fAnalyzePedestals;
Int_t fNPedestalEvents;
Double_t fFrCalMom;
bduran
committed
Double_t fFrXA_ADCperCM;
Double_t fFrYA_ADCperCM;
Double_t fFrXB_ADCperCM;
Double_t fFrYB_ADCperCM;
Buddhini Waidyawansa
committed
ClassDef(THcRaster, 0); // add THcRaster to ROOT library
Buddhini Waidyawansa
committed
Buddhini Waidyawansa
committed
////////////////////////////////////////////////////////////////////////////////