28 const char* hodname) :
72 if (!
IsOK() )
return -1;
89 for(
Int_t idel=0;idel<20;idel++) {
149 cout <<
"THcHodoEff::Init nplanes=" <<
fHod->
GetNPlanes() << endl;
150 cout <<
"THcHodoEff::Init Apparatus = " <<
fHod->
GetName() <<
174 Int_t maxcountersperplane=0;
206 cout <<
"\n\nTHcHodoEff::ReadDatabase nplanes=" <<
fHod->
GetNPlanes() << endl;
223 cout <<
"Plane = " << ip + 1 <<
" counters = " <<
fNCounters[ip] << endl;
275 const RVarDef vars[] = {
292 if( !
IsOK() )
return -1;
304 if(!theTrack)
return 0;
323 hitDistance[ip] = hitPos[ip] - (
fSpacing[ip]*(hitCounter[ip]-1) +
344 Int_t hitcounter=hitCounter[ip];
350 for(
Int_t ihit=0;ihit<nphits;ihit++) {
353 if(counter == hitcounter) {
356 if(
TMath::Abs(counter-hitcounter) == 1 && checkHit[ip] != 0) {
393 Int_t hitcounter = hitCounter[ip];
395 if (hitcounter<0) hitcounter=0;
399 for(
Int_t ihit=0;ihit<nphits;ihit++) {
403 Bool_t onTrack, goodScinTime, goodTdcNeg, goodTdcPos;
405 onTrack, goodScinTime, goodTdcNeg, goodTdcPos);
407 TMath::Abs(hitcounter-counter) <= checkHit[ip] &&
437 }
else if (goodTdcNeg) {
453 }
else if (goodTdcNeg) {
Option_t Option_t TPoint TPoint const char mode
ClassImp(VDC::AnalyticTTDConv) using namespace std
R__EXTERN class THcParmList * gHcParms
char * Form(const char *fmt,...)
static Int_t DefineVarsFromList(const void *list, EType type, EMode mode, const char *def_prefix, const TObject *obj, const char *prefix, const char *here, const char *comment_subst="")
THaAnalysisObject * FindModule(const char *name, const char *classname, bool do_error=true)
THaApparatus * GetApparatus() const
virtual void Clear(Option_t *opt="")
THaTrack * GetGoldenTrack() const
Double_t GetEnergy() const
Double_t GetTheta() const
THaVar * Define(const char *name, const Byte_t &var, const Int_t *count=nullptr)
Class for accumulating statistics for and calculating hodoscope efficiencies.
vector< vector< vector< Int_t > > > fStatAndHitDel
vector< vector< Int_t > > fNegGood
vector< vector< Int_t > > fStatPosHit
virtual Int_t DefineVariables(EMode mode=kDefine)
vector< vector< vector< Int_t > > > fStatTrkDel
THaSpectrometer * fSpectro
virtual Int_t Begin(THaRunBase *r=0)
vector< vector< Int_t > > fStatNegHit
THcHodoEff(const char *name, const char *description, const char *hodname)
THcScintillatorPlane ** fPlanes
vector< vector< Int_t > > fBothGood
vector< vector< Int_t > > fStatOrHit
virtual Int_t ReadDatabase(const TDatime &date)
virtual Int_t End(THaRunBase *r=0)
vector< vector< Int_t > > fStatAndHit
Double_t fHodoEff_CalEnergy_Cut
void Reset(Option_t *opt="")
virtual Int_t Process(const THaEvData &)
vector< vector< Int_t > > fPosGood
Class representing a single hit for the Hodoscopes.
Int_t GetPaddleNumber() const
Generic hodoscope consisting of multiple planes with multiple paddles with phototubes on both ends.
THcScintillatorPlane * GetPlane(Int_t ip)
Int_t GetScinIndex(Int_t nPlane, Int_t nPaddle)
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
Int_t LoadParmValues(const DBRequest *list, const char *prefix="")
Retrieve parameter values from the parameter cache.
A single plane of scintillators.
Double_t GetPosCenter(Int_t PaddleNo)
const char * GetName() const override
TObject * At(Int_t idx) const override
const char * Data() const
double dist(AxisAngle const &r1, AxisAngle const &r2)
Double_t Min(Double_t a, Double_t b)
Double_t Max(Double_t a, Double_t b)