TreeSearch::MWDC Reconstruction class for horizontal drift chambers used in BigBite. Tracking is done using a tree search algorithm (DellOrso et al., NIM A 287, 436 (1990)), in essence a recursive template matching method.
virtual | ~MWDC() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual Int_t | THaAnalysisObject::Begin(THaRunBase* r = 0) |
virtual void | TObject::Browse(TBrowser* b) |
bool | THaSpectrometerDetector::CalcInterceptCoords(THaTrack* track, Double_t& x, Double_t& y) |
bool | THaSpectrometerDetector::CalcPathLen(THaTrack* track, Double_t& t) |
bool | THaSpectrometerDetector::CheckIntercept(THaTrack* track) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | Clear(Option_t* opt = "") |
virtual TObject* | TNamed::Clone(const char* newname = "") const |
virtual Int_t | CoarseTrack(TClonesArray& tracks) |
virtual Int_t | TNamed::Compare(const TObject* obj) const |
virtual void | TNamed::Copy(TObject& named) const |
virtual Int_t | Decode(const THaEvData&) |
virtual Int_t | DefineVariables(THaAnalysisObject::EMode mode = kDefine) |
static Int_t | THaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix, const TObject* obj, const char* prefix, const char* here) |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
void | EnableEventDisplay(Bool_t enable = true) |
virtual Int_t | THaAnalysisObject::End(THaRunBase* r = 0) |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual void | TNamed::FillBuffer(char*& buffer) |
Int_t | THaDetectorBase::FillDetMap(const vector<Int_t>& values, UInt_t flags = 0, const char* here = "FillDetMap") |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual Int_t | THaTrackingDetector::FindVertices(TClonesArray&) |
virtual Int_t | FineTrack(TClonesArray& tracks) |
static void | THaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph) |
THaApparatus* | THaDetector::GetApparatus() const |
const TreeSearch::pdbl_t& | GetChisqLimits(UInt_t i) const |
const char* | THaAnalysisObject::GetConfig() const |
virtual const char* | THaAnalysisObject::GetDBFileName() const |
Int_t | THaAnalysisObject::GetDebug() const |
THaDetMap* | THaDetectorBase::GetDetMap() const |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
TDatime | THaAnalysisObject::GetInitDate() const |
virtual const char* | TNamed::GetName() const |
Int_t | THaDetectorBase::GetNelem() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
const TVector3& | THaDetectorBase::GetOrigin() const |
const char* | THaAnalysisObject::GetPrefix() const |
Double_t | GetRefTime(UInt_t i) const |
const Float_t* | THaDetectorBase::GetSize() const |
virtual const char* | TNamed::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
Float_t | THaDetectorBase::GetXSize() const |
Float_t | THaDetectorBase::GetYSize() const |
Float_t | THaDetectorBase::GetZSize() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TNamed::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual THaAnalysisObject::EStatus | Init(const TDatime& date) |
virtual Int_t | THaAnalysisObject::InitOutput(THaOutput*) |
virtual void | TObject::Inspect() constMENU |
static Bool_t | THaAnalysisObject::IntersectPlaneWithRay(const TVector3& xax, const TVector3& yax, const TVector3& org, const TVector3& ray_start, const TVector3& ray_vect, Double_t& length, TVector3& intersect) |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | THaAnalysisObject::IsInit() const |
Bool_t | THaAnalysisObject::IsOK() const |
Bool_t | THaAnalysisObject::IsOKOut() |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | THaTrackingDetector::IsPid() |
virtual Bool_t | TNamed::IsSortable() const |
static bool | THaAnalysisObject::IsTag(const char* buf) |
virtual Bool_t | THaTrackingDetector::IsTracking() |
Bool_t | TObject::IsZombie() const |
static Int_t | THaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const DBRequest* request, const char* prefix = "", Int_t search = 0) |
static Int_t | THaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const TagDef* tags, const char* prefix = "", Int_t search = 0) |
static Int_t | THaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Double_t& value) |
static Int_t | THaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Int_t& value) |
static Int_t | THaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, string& text) |
static Int_t | THaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, TString& text) |
virtual void | TNamed::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
TreeSearch::MWDC | MWDC(const char* name, const char* description = "", THaApparatus* app = 0) |
TreeSearch::EProjType | NameToType(const char* name) |
virtual Bool_t | TObject::Notify() |
static FILE* | THaAnalysisObject::OpenFile(const char* name, const TDatime& date, const char* here = "OpenFile()", const char* filemode = "r", const int debug_flag = 1) |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
TNamed& | TNamed::operator=(const TNamed& rhs) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | Print(Option_t* opt) const |
void | THaDetectorBase::PrintDetMap(Option_t* opt = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
static Int_t | THaAnalysisObject::SeekDBconfig(FILE* file, const char* tag, const char* label = "config", Bool_t end_on_tag = false) |
static Int_t | THaAnalysisObject::SeekDBdate(FILE* file, const TDatime& date, Bool_t end_on_tag = false) |
virtual void | THaDetector::SetApparatus(THaApparatus*) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
void | THaAnalysisObject::SetConfig(const char* label) |
virtual void | SetDebug(Int_t level) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
virtual void | THaAnalysisObject::SetName(const char* name) |
virtual void | THaAnalysisObject::SetNameTitle(const char* name, const char* title) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TNamed::SetTitle(const char* title = "")MENU |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual Int_t | TNamed::Sizeof() const |
static void | THaAnalysisObject::SphToGeo(Double_t th_sph, Double_t ph_sph, Double_t& th_geo, Double_t& ph_geo) |
THaAnalysisObject::EStatus | THaAnalysisObject::Status() const |
virtual void | Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
static vector<std::string> | THaAnalysisObject::vsplit(const string& s) |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
void | Add3dMatch(const TreeSearch::Rvec_t& selected, Double_t matchval, list<std::pair<Double_t,Rvec_t> >& combos_found, TreeSearch::Rset_t& unique_found) const |
virtual THaTrack* | THaTrackingDetector::AddTrack(TClonesArray& tracks, Double_t x, Double_t y, Double_t theta, Double_t phi, THaTrackID* ID = NULL) |
bool | THaSpectrometerDetector::CalcTrackIntercept(THaTrack* track, Double_t& t, Double_t& ycross, Double_t& xcross) |
virtual void | THaSpectrometerDetector::DefineAxes(Double_t rotation_angle) |
Int_t | THaAnalysisObject::DefineVarsFromList(const VarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const |
Int_t | THaAnalysisObject::DefineVarsFromList(const RVarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const |
Int_t | THaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix = "") const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
THaAnalysisObject* | THaAnalysisObject::FindModule(const char* name, const char* classname, bool do_error = true) |
void | FindNearestHits(TreeSearch::WirePlane* wp, const THaTrack* track, const TreeSearch::Rvec_t& roads) const |
void | FitErrPrint(Int_t err) const |
Int_t | FitTrack(const TreeSearch::Rvec_t& roads, vector<Double_t>& coef, Double_t& chi2, TMatrixDSym* coef_covar = 0) const |
UInt_t | GetDAQnchan(THaDetMap::Module* m) const |
static vector<std::string> | THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()") |
virtual const char* | THaAnalysisObject::Here(const char*) const |
UInt_t | LoadDAQmodel(THaDetMap::Module* m) const |
Double_t | LoadDAQresolution(THaDetMap::Module* m) const |
virtual void | THaDetector::MakePrefix() |
void | TObject::MakeZombie() |
UInt_t | MatchRoads(vector<Rvec_t>& roads, list<std::pair<Double_t,Rvec_t> >& combos_found, TreeSearch::Rset_t& unique_found) |
THaTrack* | NewTrack(TClonesArray& tracks, const TreeSearch::MWDC::FitRes_t& fit_par) |
virtual FILE* | THaAnalysisObject::OpenFile(const TDatime& date) |
virtual FILE* | THaAnalysisObject::OpenRunDBFile(const TDatime& date) |
Bool_t | PassTrackCuts(const TreeSearch::MWDC::FitRes_t& fit_par) const |
static char* | THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len) |
virtual Int_t | ReadDatabase(const TDatime& date) |
virtual Int_t | THaDetectorBase::ReadGeometry(FILE* file, const TDatime& date, Bool_t required = kFALSE) |
virtual Int_t | THaAnalysisObject::ReadRunDatabase(const TDatime& date) |
virtual Int_t | THaAnalysisObject::RemoveVariables() |
enum { | kDoTimeCut | |
kPairsOnly | ||
kMCdata | ||
kNoPartner | ||
k3dFastMatch | ||
kEventDisplay | ||
kDoCoarse | ||
kDoFine | ||
}; | ||
enum THaAnalysisObject::EStatus { | kOK | |
kNotinit | ||
kInitError | ||
kFileError | ||
}; | ||
enum THaAnalysisObject::EType { | kVarDef | |
kRVarDef | ||
}; | ||
enum THaAnalysisObject::EMode { | kDefine | |
kDelete | ||
}; | ||
enum THaAnalysisObject::EProperties { | kNeedsRunDB | |
kConfigOverride | ||
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
static const Double_t | THaAnalysisObject::kBig | = 1.e38; // default junk value |
Double_t | f3dMatchCut | Maximum allowed 3D match error |
Double_t | f3dMatchvalScalefact | Correction for fast 3D matchval |
TreeSearch::MWDC::Wpvec_t | fCalibPlanes | Planes in calibration mode |
TreeSearch::vec_pdbl_t | fChisqLimits | lo/hi onfidence interval limits on Chi2 |
TString | THaAnalysisObject::fConfig | Configuration to use from database |
THashTable* | fCrateMap | Map of MWDC DAQ modules |
Int_t | THaAnalysisObject::fDebug | Debug level |
THaDetMap* | THaDetectorBase::fDetMap | Hardware channel map for this detector |
Int_t | fFailNhits | Too many hits in wire plane(s) |
Int_t | fFailNpat | Too many treesearch patterns found |
TDatime | THaAnalysisObject::fInitDate | Date passed to Init |
Bool_t | THaAnalysisObject::fIsInit | Flag indicating that ReadDatabase done |
Bool_t | THaAnalysisObject::fIsSetup | Flag indicating that DefineVariables done. |
Int_t | fMaxThreads | Maximum simultaneously active threads |
Int_t | fMinNdof | Minimum number of points in fit - 4 |
TString | TNamed::fName | object identifier |
Int_t | THaDetectorBase::fNelem | Number of detector elements (paddles, mirrors) |
Bool_t | THaAnalysisObject::fOKOut | Flag indicating object-output prepared |
TVector3 | THaDetectorBase::fOrigin | Center position of detector (m) |
TreeSearch::MWDC::Wpvec_t | fPlanes | Wire planes |
char* | THaAnalysisObject::fPrefix | Name prefix for global variables |
TreeSearch::MWDC::Prvec_t | fProj | Plane projections |
UInt_t | THaAnalysisObject::fProperties | Properties of this object (see EProperties) |
THaDetMap* | fRefMap | Map of reference channels for VME readout |
vector<float> | fRefTime | [fRefMap->GetSize()] ref channel data |
Float_t | THaDetectorBase::fSize[3] | Detector size in x,y,z (m) - x,y are half-widths |
THaAnalysisObject::EStatus | THaAnalysisObject::fStatus | Initialization status flag |
TreeSearch::ThreadCtrl* | fThreads | ! Thread controller |
TString | TNamed::fTitle | object title |
TVector3 | THaSpectrometerDetector::fXax | X axis of the detector plane |
TVector3 | THaSpectrometerDetector::fYax | Y axis of the detector plane |
TVector3 | THaSpectrometerDetector::fZax | Normal to the detector plane |
Clear event-by-event data, including those of wire planes and projections
Linear minimization routine to fit a physical straight line track through the hits registered in the different projection planes. This is a much streamlined version of ROOT's TLinearFitter that solves the normal equations with weights, (At W A) a = (At W) y, using Cholesky decomposition, TDecompChol. The model used is y_i = P_i * T_i = ( x + z_i * mx, y + z_i * my) * ( cos(a_i), sin(a_i) ) where y_i is the measured coordinate in the i-th wire plane at z_i P_i is the physical track intersection point with the z_i plane T_i is the axis unit vector of the i-th plane a_i is the angle of the coordinate axis of the i-th plane w.r.t. x x,mx,y,my are the track parameters to be fitted, origin x,y and slopes mx,my. "roads" contains a set of Roads that successfully combine in 3-d, one Road* per projection. Each road, in turn, contains a set of (y_i,z_i) coordinates, at most one per wire plane of the projection type, that give the best 2D track fit within the road. "coef" are the fitted track parameters, x, x'(=mx), y, y'(=my). The reference system is the z=0 plane (usually the first chamber). "chi2" is the chi2 of the fit (not normalized). "coef_covar" is the covariance matrix of the fit results. Since it is expensive to calculate, it is only filled if the argument is supplied. The return value is the number of degrees of freedom of the fit, i.e. npoints-4 > 0, or negative if too few points or matrix inversion error
For the given wire plane, find the hit nearest to the given track and register it in the plane's fit coordinates array. The given roads are the ones generating the given track. This routine is used for efficiency and alignment studies and testing.
Make new track with given parameters. Used by CoarseTrack to generate all MWDC tracks
Save road combination with good matchvalue
Match roads from different projections that intersect in the front and back plane of the detector
Test results of 3D track fit (in fit_par) against hard cuts from database
Find tracks from the hitpatterns, using the coarse hit drift times uncorrected for track slope, timing offset, fringe field effects etc.
Second-level tracking, applying fine corrections. - Correct the hit drift distances using timing, track slope, track momentum, magnet fringe field, etc., as applicable. - Re-collect hits of roads and re-fit roads - Re-combine track projections in 3D and re-fit 3D track
Set debug level of this detector, including all wire planes (subdetectors) and projections
Enable event display support. Can only be called before initialization.
Return the index corresponding to the given plane name. The comparison is not case-sensitive.
Update detector map module 'mod' with the model number from the cratemap
Update detector map module 'mod' with the resolution from the cratemap
Return number of channels for detector map module 'mod' from cratemap