ROOT logo
Podd » SRC » THaVDCChamber

class THaVDCChamber: public THaSubDetector


THaVDCChamber

Representation of a VDC chamber, consisting of one U plane and one
V plane in close proximity. With the Hall A VDCs, the two planes of a
chamber share the same mechanical frame and gas system.

This particular implementation takes the U plane as the reference for
specifying coordinates. It was also written assuming that the U plane is
below the V plane (smaller z). It should work the other way around as
well but that configuration has not been tested. If in doubt, one can
always swap the meaning of "U" and "V" such that "U" always means the
first (bottom) plane.


Function Members (Methods)

public:
THaVDCChamber(const char* name = "", const char* description = "", THaDetectorBase* parent = NULL)
virtual~THaVDCChamber()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual Int_tTHaAnalysisObject::Begin(THaRunBase* r = 0)
virtual voidTObject::Browse(TBrowser* b)
PointCoords_tCalcDetCoords(const THaVDCCluster* u, const THaVDCCluster* v) const
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* opt = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tCoarseTrack()
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual Int_tDecode(const THaEvData& evData)
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)
Int_tTHaDetectorBase::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_tFineTrack()
static voidTHaAnalysisObject::GeoToSph(Double_t th_geo, Double_t ph_geo, Double_t& th_sph, Double_t& ph_sph)
THaApparatus*THaSubDetector::GetApparatus() const
const char*THaAnalysisObject::GetClassName() const
const char*THaAnalysisObject::GetConfig() const
Int_tTHaAnalysisObject::GetDebug() const
THaDetectorBase*THaSubDetector::GetDetector() const
THaDetMap*THaDetectorBase::GetDetMap() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
THaDetector*THaSubDetector::GetMainDetector() const
virtual const char*TNamed::GetName() const
Int_tTHaDetectorBase::GetNelem() const
Int_tGetNPoints() const
static TString&THaAnalysisObject::GetObjArrayString(const TObjArray* params, Int_t pos)
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const TVector3&THaDetectorBase::GetOrigin() const
THaDetectorBase*THaSubDetector::GetParent() const
THaVDCPoint*GetPoint(Int_t i) const
TClonesArray*GetPoints() const
const char*THaAnalysisObject::GetPrefix() const
const Double_t*THaDetectorBase::GetSize() const
Double_tGetSpacing() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
THaVDCPlane*GetUPlane() const
THaVDC*GetVDC() const
THaVDCPlane*GetVPlane() const
const TVector3&THaDetectorBase::GetXax() const
Double_tTHaDetectorBase::GetXSize() const
const TVector3&THaDetectorBase::GetYax() const
Double_tTHaDetectorBase::GetYSize() const
Double_tGetZ() const
const TVector3&THaDetectorBase::GetZax() const
Double_tTHaDetectorBase::GetZSize() 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)
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_tTHaDetectorBase::IsInActiveArea(Double_t x, Double_t y) const
Bool_tTHaAnalysisObject::IsInit() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTHaAnalysisObject::IsOKOut()
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, const char* here = "THaAnalysisObject::LoadDB")
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()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTHaAnalysisObject::Print(Option_t* opt = "") const
voidTHaDetectorBase::PrintDetMap(Option_t* opt = "") const
static voidTHaAnalysisObject::PrintObjects(Option_t* opt = "")
virtual Int_tTObject::Read(const char* name)
static Int_tTHaAnalysisObject::ReadDBline(FILE* fp, char* buf, size_t bufsiz, string& line)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& 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)
voidTHaSubDetector::SetDetector(THaDetectorBase* det)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTHaSubDetector::SetParent(THaDetectorBase*)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
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&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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
protected:
Int_tCalcPointCoords()
virtual const char*THaAnalysisObject::ClassNameHere(const char*) const
virtual voidTHaDetectorBase::DefineAxes(Double_t rotation_angle)
virtual Int_tTHaAnalysisObject::DefineVariables(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 voidTHaAnalysisObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidFindClusters()
THaAnalysisObject*THaAnalysisObject::FindModule(const char* name, const char* classname, bool do_error = true)
voidFitTracks()
static vector<std::string>THaAnalysisObject::GetDBFileList(const char* name, const TDatime& date, const char* here = "GetDBFileList()")
virtual const char*THaSubDetector::GetDBFileName() const
virtual const char*THaAnalysisObject::Here(const char*) const
Int_tTHaAnalysisObject::LoadDB(FILE* f, const TDatime& date, const DBRequest* req, Int_t search = 0)
virtual voidTHaSubDetector::MakePrefix()
voidTObject::MakeZombie()
Int_tMatchUVClusters()
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_tTHaAnalysisObject::ReadDatabase(const TDatime& date)
virtual Int_tTHaDetectorBase::ReadGeometry(FILE* file, const TDatime& date, Bool_t required = kFALSE)
virtual Int_tTHaAnalysisObject::ReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()

Data Members

public:
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
};
public:
static const Double_tTHaAnalysisObject::kBig= 1.e38; // default junk value
protected:
TStringTHaAnalysisObject::fConfigConfiguration to use from database
Double_tfCos_u
Double_tfCos_v
Int_tTHaAnalysisObject::fDebugDebug level
THaDetMap*THaDetectorBase::fDetMapHardware channel map for this detector
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Double_tfInv_sin_vu1/Sine of the difference between the
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
TStringTNamed::fNameobject identifier
Int_tTHaDetectorBase::fNelemNumber of detector elements (paddles, mirrors)
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
TVector3THaDetectorBase::fOriginCenter position of detector (m)
TClonesArray*fPointsPairs of possibly matching U and V clusters
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
Double_tfSin_uTrig functions for the U plane axis angle
Double_tfSin_vTrig functions for the V plane axis angle
Double_tTHaDetectorBase::fSize[3]Detector size in x,y,z (m) - x,y are half-widths
Double_tfSpacingSpace between U & V planes (m)
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
TStringTNamed::fTitleobject title
THaVDCPlane*fUThe U plane
THaVDCPlane*fVThe V plane
THaVDC*fVDCParent VDC detector of this chamber
TVector3THaDetectorBase::fXaxX axis of the detector plane
TVector3THaDetectorBase::fYaxY axis of the detector plane
TVector3THaDetectorBase::fZaxNormal to the detector plane

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

THaVDCChamber(const char* name = "", const char* description = "", THaDetectorBase* parent = NULL)
 Constructor
~THaVDCChamber()
 Destructor. Delete plane objects and point array.
THaDetectorBase::EStatus Init(const TDatime& date)
 Initialize the chamber class. Calls its own Init(), then initializes
 subdetectors, then calculates local geometry data.
PointCoords_t CalcDetCoords(const THaVDCCluster* u, const THaVDCCluster* v) const
 Convert U,V coordinates of the given uv cluster pair to the detector
 coordinate system of this chamber. Takes u as the reference plane.
Int_t MatchUVClusters()
 Match clusters in the U plane with cluster in the V plane by t0 and
 geometry. Fills fPoints with good pairs.
Int_t CalcPointCoords()
 Compute track info (x, y, theta, phi) for the all matched points.
 Uses TRANSPORT coordinates.
void Clear(Option_t* opt = "")
 Clear event-by-event data
Int_t Decode(const THaEvData& evData)
 Decode both wire planes
void FindClusters()
 Find clusters in U & V planes
void FitTracks()
 Fit data to recalculate cluster position
Int_t CoarseTrack()
 Coarse computation of tracks
Int_t FineTrack()
 High precision computation of tracks
THaVDCPlane* GetUPlane() const
 Get and Set Functions
{ return fU; }
THaVDCPlane* GetVPlane() const
{ return fV; }
Int_t GetNPoints() const
{ return fPoints->GetLast()+1; }
TClonesArray* GetPoints() const
{ return fPoints; }
THaVDC* GetVDC() const
{ return static_cast<THaVDC*>(GetDetector()); }
Double_t GetSpacing() const
{ return fSpacing;}
THaVDCPoint* GetPoint(Int_t i) const
Double_t GetZ() const
{ return fU->GetZ(); }