ROOT logo
TreeSearch » TREESEARCH » TreeSearch::Projection

class TreeSearch::Projection: public THaAnalysisObject

Function Members (Methods)

voidTObject::AbstractMethod(const char* method) const
voidAddPlane(TreeSearch::WirePlane* wp, TreeSearch::WirePlane* partner = 0)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tTHaAnalysisObject::Begin(THaRunBase* r = 0)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual Int_tDecode(const THaEvData&)
static Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix, const TObject* obj, const char* prefix, const char* here)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual Int_tTHaAnalysisObject::End(THaRunBase* r = 0)
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static voidTHaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph)
Double_tGetAngle() const
const TVector2&GetAxis() const
UInt_tGetBinMaxDistB() const
UInt_tGetBinMaxDistF() const
const TreeSearch::pdbl_t&GetChisqLimits(UInt_t i) const
const char*THaAnalysisObject::GetConfig() const
Double_tGetConfLevel() const
Double_tGetCosAngle() const
Int_tTHaAnalysisObject::GetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
UInt_tGetHitMaxDist() const
TreeSearch::Hitpattern*GetHitpattern() const
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
Double_tGetMaxSlope() const
UInt_tGetMinFitPlanes() const
virtual const char*TNamed::GetName() const
UInt_tGetNgoodRoads() const
UInt_tGetNlevels() const
UInt_tGetNpatterns() const
UInt_tGetNplanes() const
UInt_tGetNroads() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
TreeSearch::WirePlane*GetPlane(UInt_t plane) const
TBits*GetPlaneCombos() const
Double_tGetPlaneZ(UInt_t plane) const
const char*THaAnalysisObject::GetPrefix() const
TreeSearch::Road*GetRoad(UInt_t i) const
Double_tGetSinAngle() const
virtual const char*TNamed::GetTitle() const
TreeSearch::EProjTypeGetType() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGetWidth() const
Double_tGetZsize() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual THaAnalysisObject::EStatusInit(const TDatime& date)
THaAnalysisObject::EStatusInitLevel2(const TDatime& date)
virtual Int_tTHaAnalysisObject::InitOutput(THaOutput*)
virtual voidTObject::Inspect() constMENU
static Bool_tTHaAnalysisObject::IntersectPlaneWithRay(const TVector3& xax, const TVector3& yax, const TVector3& org, const TVector3& ray_start, const TVector3& ray_vect, Double_t& length, TVector3& intersect)
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTHaAnalysisObject::IsInit() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
static boolTHaAnalysisObject::IsTag(const char* buf)
Bool_tTObject::IsZombie() const
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const DBRequest* request, const char* prefix = "", Int_t search = 0)
static Int_tTHaAnalysisObject::LoadDB(FILE* file, const TDatime& date, const TagDef* tags, const char* prefix = "", Int_t search = 0)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Double_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, Int_t& value)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, string& text)
static Int_tTHaAnalysisObject::LoadDBvalue(FILE* file, const TDatime& date, const char* tag, TString& text)
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::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 voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::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)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
TreeSearch::ProjectionProjection(TreeSearch::EProjType type, const char* name, Double_t angle, THaDetectorBase* parent)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
static Int_tTHaAnalysisObject::SeekDBconfig(FILE* file, const char* tag, const char* label = "config", Bool_t end_on_tag = false)
static Int_tTHaAnalysisObject::SeekDBdate(FILE* file, const TDatime& date, Bool_t end_on_tag = false)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidTHaAnalysisObject::SetConfig(const char* label)
virtual voidTHaAnalysisObject::SetDebug(Int_t level)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetMaxSlope(Double_t m)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPatternTree(TreeSearch::PatternTree* pt)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetWidth(Double_t width)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual Int_tTNamed::Sizeof() const
static voidTHaAnalysisObject::SphToGeo(Double_t th_sph, Double_t ph_sph, Double_t& th_geo, Double_t& ph_geo)
THaAnalysisObject::EStatusTHaAnalysisObject::Status() const
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
static vector<std::string>THaAnalysisObject::vsplit(const string& s)
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
virtual Int_tDefineVariables(THaAnalysisObject::EMode mode = kDefine)
Int_tTHaAnalysisObject::DefineVarsFromList(const VarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const RVarDef* list, THaAnalysisObject::EMode mode = kDefine, const char* var_prefix = "") const
Int_tTHaAnalysisObject::DefineVarsFromList(const void* list, THaAnalysisObject::EType type, THaAnalysisObject::EMode mode, const char* var_prefix = "") const
virtual voidTObject::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)
static vector<std::string>THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()")
virtual const char*GetDBFileName() const
virtual const char*THaAnalysisObject::Here(const char*) const
virtual voidMakePrefix()
virtual FILE*THaAnalysisObject::OpenFile(const TDatime& date)
virtual FILE*THaAnalysisObject::OpenRunDBFile(const TDatime& date)
static char*THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len)
virtual Int_tReadDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::ReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()
voidSetAngle(Double_t a)

Data Members

enum { kEventDisplay
enum THaAnalysisObject::EStatus { kOK
enum THaAnalysisObject::EType { kVarDef
enum THaAnalysisObject::EMode { kDefine
enum THaAnalysisObject::EProperties { kNeedsRunDB
enum TObject::EStatusBits { kCanDelete
enum TObject::[unnamed] { kIsOnHeap
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
TVector2fAxisNominal projection axis normal to wires
UInt_tfBackMaxBinDistMax pattern dist in back plane
TreeSearch::vec_pdbl_tfChisqLimitslo/hi onfidence interval limits on Chi2
Double_tfConfLevelRequested confidence level for chi2 cut
TStringTHaAnalysisObject::fConfigConfiguration to use from database
Int_tTHaAnalysisObject::fDebugDebug level
THaDetectorBase*fDetector! Parent detector
UInt_tfFrontMaxBinDistMax pattern dist in front plane
UInt_tfHitMaxDistMax allowed distance between hits for
TreeSearch::Hitpattern*fHitpatternHitpattern of current event
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
UInt_tfMaxMissAllowed number of missing planes
UInt_tfMaxPatSanity cut on number of patterns
Double_tfMaxSlopeMaximum physical track slope (0=perp)
UInt_tfMinFitPlanesMin num of planes required for fitting
TStringTNamed::fNameobject identifier
UInt_tfNgoodRoadsGood roads in fRoads
UInt_tfNlevelsNumber of levels of search tree
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
TreeSearch::PatternTree*fPatternTreePrecomputed template database
TreeSearch::Projection::NodeVec_tfPatternsFoundPatterns found by TreeSearch
TBits*fPlaneCombosAllowed plane occupancy patterns
vector<WirePlane*>fPlanesWire planes in this projection
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
Bool_tfRequire1of2Require one plane of a plane pair
TClonesArray*fRoadCornersRoad corners, for event display
TClonesArray*fRoadsRoads found by MakeRoads
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
TStringTNamed::fTitleobject title
TreeSearch::EProjTypefTypeType of plane (u,v,x,y...)
Double_tfWidthWidth of tracking region (m)

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

Projection(TreeSearch::EProjType type, const char* name, Double_t angle, THaDetectorBase* parent)
void AddPlane(TreeSearch::WirePlane* wp, TreeSearch::WirePlane* partner = 0)
 Add wire plane wp (and optional partner plane) to this projection.
 Sets plane numbers.
void Clear(Option_t* opt = "")
 Clear event-by-event data
Int_t Decode(const THaEvData& )
 Decode all planes belonging to this projection
Double_t GetPlaneZ(UInt_t plane) const
 Return the z-position of the i-th wire plane.
void Reset()
 Reset parameters, clear list of planes, delete Hitpattern
THaAnalysisObject::EStatus Init(const TDatime& date)
 Initialize the Projection object. Called after MWDC basic initialization.
 Sets up event display support, then continues with standard
THaAnalysisObject::EStatus InitLevel2(const TDatime& date)
 Level-2 initialization - load pattern database and initialize hitpattern.
 Requires the wire planes to be fully initialized.
Int_t ReadDatabase(const TDatime& date)
 Read parameters from database
Int_t DefineVariables(THaAnalysisObject::EMode mode = kDefine)
 Initialize global variables and lookup table for decoder
Int_t FillHitpattern()
 Fill this projection's hitpattern with hits from the wire planes.
 Returns the total number of hits processed (where hit pairs on plane
 and partner plane count as one).
Int_t Track()
 Perform tracking in this projection:

 - match hits to straight-line patterns
 - combine patterns referring to common sets of hits into one ("Roads")
 - fit hits in each road
 - filter roads according to chi^2 and similarity

 Results in fRoads
Int_t MakeRoads()
 Combine patterns with common sets of hits into Roads.

 This is the primary de-cloning algorithm. It finds clusters of patterns
 that share active wires (hits).
Bool_t RemoveDuplicateRoads()
 Check for identical roads or roads that include each other
Bool_t FitRoads()
 Fit hits within each road. Store fit parameters with Road.
 Also, store the hits & positions used by the best fit with Road.
void MakePrefix()
 Set up name prefix for global variables.
const char* GetDBFileName() const
 Return database file name prefix. We want the same database file
 as our parent detector.
Double_t GetZsize() const
 Get z_max - z_min of the planes.
void SetAngle(Double_t a)
 Set wire angle (rad)
void Print(Option_t* opt = "") const
 Print plane type info
Projection(TreeSearch::EProjType type, const char* name, Double_t angle, THaDetectorBase* parent)
Double_t GetAngle() const
const TVector2& GetAxis() const
{ return fAxis; }
UInt_t GetBinMaxDistB() const
{ return fBackMaxBinDist; }
UInt_t GetBinMaxDistF() const
{ return fFrontMaxBinDist; }
const pdbl_t& GetChisqLimits(UInt_t i) const
Double_t GetConfLevel() const
{ return fConfLevel; }
Double_t GetCosAngle() const
{ return fAxis.X(); }
UInt_t GetHitMaxDist() const
{ return fHitMaxDist; }
Hitpattern* GetHitpattern() const
{ return fHitpattern; }
Double_t GetMaxSlope() const
{ return fMaxSlope; }
UInt_t GetMinFitPlanes() const
{ return fMinFitPlanes; }
UInt_t GetNgoodRoads() const
{ return fNgoodRoads; }
UInt_t GetNlevels() const
{ return fNlevels; }
UInt_t GetNpatterns() const
UInt_t GetNplanes() const
{ return (UInt_t)fPlanes.size(); }
UInt_t GetNroads() const
TBits* GetPlaneCombos() const
{ return fPlaneCombos; }
WirePlane* GetPlane(UInt_t plane) const
{ return fPlanes[plane]; }
Road* GetRoad(UInt_t i) const
Double_t GetSinAngle() const
{ return fAxis.Y(); }
EProjType GetType() const
{ return fType; }
Double_t GetWidth() const
{ return fWidth; }
void SetMaxSlope(Double_t m)
{ fMaxSlope = m; }
void SetPatternTree(TreeSearch::PatternTree* pt)
{ fPatternTree = pt; }
void SetWidth(Double_t width)
{ fWidth = width; }
Projection(const TreeSearch::Projection& orig)
 Prevent default copying, assignment
const Projection& operator=(const TreeSearch::Projection& rhs)