1 #ifndef ROOT_THcHodoscope
2 #define ROOT_THcHodoscope
14 #include "THaNonTrackingDetector.h"
21 #include "THaTrackingDetector.h"
29 #include "THaSubDetector.h"
41 THaApparatus*
a = NULL );
129 onTrack =
fGoodFlags[itrack][iplane][ihit].onTrack;
130 goodScinTime =
fGoodFlags[itrack][iplane][ihit].goodScinTime;
131 goodTdcNeg =
fGoodFlags[itrack][iplane][ihit].goodTdcNeg;
132 goodTdcPos =
fGoodFlags[itrack][iplane][ihit].goodTdcPos;
358 time_pos(-99.0), time_neg(-99.0), scin_pos_time(0.0),
359 scin_neg_time(0.0) {}
382 std::vector<std::vector<Double_t> >
fdEdX;
402 goodTdcNeg(false), goodTdcPos(false) {}
404 std::vector<std::vector<std::vector<GoodFlags> > >
fGoodFlags;
414 void Setup(
const char* name,
const char* description);
A single plane of scintillators.
Double_t * fHodoNegAdcTimeWindowMin
Double_t * fHodoPosInvAdcOffset
void EstimateFocalPlaneTime(void)
void OriginalTrackEffTest(void)
std::vector< Int_t > fThreeScin
Double_t GetTofTolerance() const
Double_t fTOFCalib_cer_lo
void Setup(const char *name, const char *description)
Bool_t fGoodEventTOFCalib
Double_t GetHodoNegInvAdcAdc(Int_t iii) const
Double_t GetHodoNegAdcTimeWindowMax(Int_t iii) const
Double_t GetBetaNotrk() const
Int_t GetScinIndex(Int_t nPlane, Int_t nPaddle)
std::vector< std::vector< Int_t > > fClustSize
Int_t fTrackBetaIncludeSinglePmtHits
Int_t fTrackEffTestNScinPlanes
Class for gas Cherenkov detectors.
Double_t fTOFCalib_beta_hi
Class representing a single hit for the Hodoscopes.
virtual Int_t End(THaRunBase *run=0)
Double_t GetPlaneCenter(Int_t ip)
Double_t GetHodoPosTimeOffset(Int_t iii) const
std::vector< std::vector< std::vector< GoodFlags > > > fGoodFlags
Int_t GetNfptimes() const
Double_t GetPathLengthCentral()
Builds a Hall C ENGINE style list of raw hits from raw data.
std::vector< Int_t > fGoodScinHitsX
Double_t GetHodoPosAdcTimeWindowMax(Int_t iii) const
Double_t GetHodoNegTimeOffset(Int_t iii) const
Double_t * fHodoPosPhcCoeff
Double_t GetOffsetTime() const
Int_t GetTdcOffset(Int_t ip) const
std::vector< std::vector< Double_t > > fdEdX
Double_t GetHodoCableFit(Int_t iii) const
std::vector< TOFPInfo > fTOFPInfo
Double_t GetHodoNeg_c1(Int_t iii) const
Double_t fStartTimeCenter
virtual Double_t TimeWalkCorrection(const Int_t &paddle, const ESide side)
std::vector< Int_t > fNScinHit
Double_t GetAdcTdcOffset(Int_t ip) const
Bool_t IsStartTimeGood() const
THcScintillatorPlane ** fPlanes
Double_t GetHodoVelFit(Int_t iii) const
Double_t fTimeHist_StartTime_Hits
std::vector< Int_t > fNCluster
virtual Int_t DefineVariables(EMode mode=kDefine)
Double_t fTOFCalib_shtrk_lo
Double_t GetStartTimeSlop() const
const TClonesArray * GetTrackHits() const
virtual EStatus Init(const TDatime &run_time)
Double_t GetHodoPos_c2(Int_t iii) const
std::vector< std::vector< Int_t > > fScinHitPaddle
Double_t fPathLengthCentral
Double_t GetTdcMin() const
std::vector< TOFCalc > fTOFCalc
Double_t GetHodoLCoeff(Int_t iii) const
virtual Int_t CoarseProcess(TClonesArray &tracks)
virtual void Clear(Option_t *opt="")
Double_t DetermineTimePeak(Int_t FillFlag)
Double_t * fHodoNegAdcTimeWindowMax
Double_t fTimeHist_StartTime_Peak
std::vector< std::vector< Double_t > > fClusterXPos
Double_t GetHodoNegAdcTimeWindowMin(Int_t iii) const
Double_t * fHodoPosAdcTimeWindowMax
Double_t fTimeHist_FpTime_Sigma
Double_t GetHodoNeg_c2(Int_t iii) const
Double_t GetHodoNegSigma(Int_t iii) const
Double_t trackeff_scint_xdiff_max
Double_t fTimeHist_FpTime_Peak
Double_t GetHodoNegPhcCoeff(Int_t iii) const
Double_t GetTdcMax() const
Double_t GetTdcToTime() const
std::vector< std::vector< Double_t > > fClustPos
Double_t GetPlaneSpacing(Int_t ip)
Int_t GetNScinHits(Int_t iii)
Double_t GetStartTime() const
Double_t * fHodoPosInvAdcLinear
void run(bool only_compile=false)
Double_t GetHodoPos_c1(Int_t iii) const
Double_t trackeff_scint_ydiff_max
std::vector< std::vector< Int_t > > fClusterSize
virtual Int_t ReadDatabase(const TDatime &date)
Int_t GetGoodRawPad(Int_t iii)
Double_t GetHodoPosInvAdcLinear(Int_t iii) const
Double_t fTOFCalib_beta_lo
Double_t fTimeHist_StartTime_Sigma
virtual Int_t Decode(const THaEvData &)
Double_t fTimeHist_StartTime_NumPeaks
Double_t * fHodoPosAdcTimeWindowMin
Int_t GetGoodRawPlane(Int_t iii)
Double_t GetHodoNegInvAdcOffset(Int_t iii) const
Double_t GetHodoSlop(Int_t ip)
Double_t GetHodoVelLight(Int_t iii) const
Double_t * fHodoPosInvAdcAdc
UInt_t GetNPaddles(Int_t ip)
Double_t * fHodoNegInvAdcLinear
Double_t GetHodoPosInvAdcAdc(Int_t iii) const
Double_t GetBetaNominal() const
Double_t * fHodoNegPhcCoeff
Double_t GetStartTimeCenter() const
virtual Int_t ApplyCorrections(void)
std::vector< Int_t > fNClust
Double_t * fHodoPosTimeOffset
THcScintillatorPlane * GetPlane(Int_t ip)
Double_t * fHodoNegInvAdcAdc
Double_t GetHodoNegMinPh(Int_t iii) const
Double_t GetHodoPosSigma(Int_t iii) const
virtual Int_t FineProcess(TClonesArray &tracks)
Double_t fTimeHist_FpTime_NumPeaks
Double_t fTimeHist_FpTime_Hits
Double_t fTOFCalib_shtrk_hi
Double_t fRatio_xpfp_to_xfp
Double_t GetHodoPosAdcTimeWindowMin(Int_t iii) const
Double_t GetHodoPosPhcCoeff(Int_t iii) const
Bool_t GetFlags(Int_t itrack, Int_t iplane, Int_t ihit, Bool_t &onTrack, Bool_t &goodScinTime, Bool_t &goodTdcNeg, Bool_t &goodTdcPos) const
Double_t GetHodoNegInvAdcLinear(Int_t iii) const
Double_t * fHodoNegTimeOffset
Generic hodoscope consisting of multiple planes with multiple paddles with phototubes on both ends...
Double_t GetHodoPosInvAdcOffset(Int_t iii) const
Double_t GetHodoPosMinPh(Int_t iii) const
Double_t * fHodoNegInvAdcOffset
Double_t GetTDCThrs() const
THcCherenkov * fCherenkov
std::vector< std::vector< Double_t > > fClusterYPos
TClonesArray * fTrackProj