33 const char* description,
111 {
"driftbins", &NumDriftMapBins,
kInt},
112 {
"drift1stbin", &DriftMapFirstBin,
kDouble},
113 {
"driftbinsz", &DriftMapBinSize,
kDouble},
202 Double_t hzchi = -cosalpha*sinbeta + sinalpha*cosbeta*singamma;
203 Double_t hzpsi = sinalpha*sinbeta + cosalpha*cosbeta*singamma;
204 Double_t hxchi = -cosalpha*cosbeta - sinalpha*sinbeta*singamma;
205 Double_t hxpsi = sinalpha*cosbeta - cosalpha*sinbeta*singamma;
213 if(cosalpha <= 0.707) {
221 Double_t sumsqupsi = hzpsi*hzpsi+hxpsi*hxpsi+hypsi*hypsi;
222 Double_t sumsquchi = hzchi*hzchi+hxchi*hxchi+hychi*hychi;
223 Double_t sumcross = hzpsi*hzchi + hxpsi*hxchi + hypsi*hychi;
224 Double_t denom1 = sumsqupsi*sumsquchi-sumcross*sumcross;
225 fPsi0 = (-z0*hzpsi*sumsquchi
226 +z0*hzchi*sumcross) / denom1;
227 Double_t hchi0 = (-z0*hzchi*sumsqupsi
228 +z0*hzpsi*sumcross) / denom1;
232 if(z0 < 0.0) hphi0 = -hphi0;
234 Double_t denom2 = stubxpsi*stubychi - stubxchi*stubypsi;
243 fYsp = -hxchi/denom2;
259 NumDriftMapBins,DriftMap);
265 for (
int i=0; i<nWires; i++) {
273 const char* nm =
"hod";
276 static const char*
const here =
"ReadDatabase()";
278 "Event-by-event time offsets will NOT be used!!",nm);
295 {
"raw.wirenum",
"List of TDC wire number of all hits in DC",
296 "fRawHits.THcDCHit.GetWireNum()"},
297 {
"wirenum",
"List of TDC wire number (select first hit in TDc window",
298 "fHits.THcDCHit.GetWireNum()"},
299 {
"rawnorefcorrtdc",
"Raw TDC Values",
300 "fHits.THcDCHit.GetRawNoRefCorrTime()"},
301 {
"rawtdc",
"Raw TDC with reference time subtracted Values",
302 "fHits.THcDCHit.GetRawTime()"},
303 {
"time",
"Drift times",
304 "fHits.THcDCHit.GetTime()"},
305 {
"dist",
"Drift distancess",
306 "fHits.THcDCHit.GetDist()"},
308 "fHits.THcDCHit.GetPos()"},
309 {
"nhit",
"Number of hits",
"GetNHits()"},
310 {
"RefTime",
"TDC reference time",
"fTdcRefTime"},
331 cout <<
" Calling THcDriftChamberPlane::Decode " <<
GetName() << endl;
348 return(wire_num_calc);
369 Int_t ihit = nexthit;
371 Int_t nextRawHit = 0;
372 while(ihit < nrawhits) {
387 new( (*fRawHits)[nextRawHit++] )
THcDCHit(wire, rawnorefcorrtdc,rawtdc,
time,
this);
393 if (First_Hit_In_Window) {
394 new( (*fFirstPassHits)[nextHit++] )
THcDCHit(wire, rawnorefcorrtdc,rawtdc,
time,
this);
395 First_Hit_In_Window =
kFALSE;
408 if (StartTime == -1000) StartTime = 0.0;
418 new( (*fHits)[nextHit++] )
THcDCHit(tempWire, tempRawNoRefCorrtime, tempRawtime, temptime,
this);
448 }
else if (wirenum >= 51 && wirenum <= 64) {
456 }
else if (wirenum >=33 && wirenum<=46) {
483 }
else if (wirenum >= 41 && wirenum <= 63) {
485 }
else if (wirenum >=64 && wirenum <=69) {
493 }
else if (wirenum >=39 && wirenum<=44) {
495 }
else if (wirenum>=45 && wirenum<=67) {
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,...)
void Clear(Option_t *option="") override
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="")
virtual const char * Here(const char *) const
const char * GetPrefix() const
THaDetectorBase * GetParent() const
THaApparatus * GetApparatus() const
Drift chamber wire hit info.
virtual Double_t ConvertTimeToDist()
Int_t GetRawNoRefCorrTime() const
void SetTime(Double_t time)
THcDCWire * GetWire() const
Drift time to distance conversion via lookup table.
Class representing a drift chamber wire.
Double_t GetTOffset() const
Analyze a package of horizontal drift chambers.
Class for a a single Hall C horizontal drift chamber plane.
virtual void Clear(Option_t *opt="")
Double_t CalcWireFromPos(Double_t pos)
virtual Int_t DefineVariables(EMode mode=kDefine)
virtual Int_t FineProcess(TClonesArray &tracks)
virtual Int_t SubtractStartTime()
virtual Int_t Decode(const THaEvData &)
THcDCWire * GetWire(Int_t i) const
virtual Int_t CoarseProcess(TClonesArray &tracks)
virtual Int_t GetReadoutSide(Int_t wirenum)
THcDCTimeToDistConv * fTTDConv
virtual ~THcDriftChamberPlane()
TClonesArray * fFirstPassHits
virtual Int_t ProcessHits(TClonesArray *rawhits, Int_t nexthit)
virtual Int_t ReadDatabase(const TDatime &date)
Generic hodoscope consisting of multiple planes with multiple paddles with phototubes on both ends.
Double_t GetStartTime() const
Int_t LoadParmValues(const DBRequest *list, const char *prefix="")
Retrieve parameter values from the parameter cache.
Class representing for drift chamber wire (or other device with a single multihit TDC channel per det...
THcRawTdcHit & GetRawTdcHit()
Int_t GetRefTime() const
Gets reference time. In channels.
Int_t GetTimeRaw(UInt_t iHit=0) const
Gets raw TDC time. In channels.
Int_t GetTime(UInt_t iHit=0) const
Gets TDC time. In channels.
Bool_t HasRefTime() const
Queries whether reference time has been set.
const char * GetName() const override
TObject * At(Int_t idx) const override
Int_t GetLast() const override
virtual void Warning(const char *method, const char *msgfmt,...) const
R__ALWAYS_INLINE Bool_t IsZombie() const
double beta(double x, double y)
RVec< PromoteTypes< T0, T1 > > pow(const RVec< T0 > &v, const T1 &y)
Double_t Sqrt(Double_t x)