class THaS2CoincTime: public THaCoincTime


 THaS2CoincTime

 Calculate coincidence time between tracks in two spectrometers.
  Differs from THaCoincTime in that here the specific detectors to use
  to get the time tracks in the spectrometers can be named.
  The default is "s2".

  Loop through all combinations of tracks in the two spectrometers.
  Here we assume that the time difference+fixed delay between the
  common TDC starts is measured.


Function Members (Methods)

public:
THaS2CoincTime(const char* name, const char* description, const char* spec1 = "L", const char* spec2 = "R", Double_t mass1 = .938272, Double_t mass2 = 0.000511, const char* ch_name1 = 0, const char* ch_name2 = 0, const char* detname1 = "s2", const char* detname2 = "")
virtual~THaS2CoincTime()
voidTObject::AbstractMethod(const char* method) const
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 voidTHaCoincTime::Clear(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
boolTHaPhysicsModule::DataValid() const
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)
const char*THaAnalysisObject::GetConfig() const
virtual const char*THaAnalysisObject::GetDBFileName() const
Int_tTHaAnalysisObject::GetDebug() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
TDatimeTHaAnalysisObject::GetInitDate() const
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
const char*THaAnalysisObject::GetPrefix() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() 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& run_time)
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
boolTHaPhysicsModule::IsMultiTrack() const
Bool_tTHaAnalysisObject::IsOK() const
Bool_tTHaAnalysisObject::IsOKOut()
Bool_tTObject::IsOnHeap() const
boolTHaPhysicsModule::IsSingleTrack() const
virtual Bool_tTNamed::IsSortable() const
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)
TNamed&TNamed::operator=(const TNamed& rhs)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tProcess(const THaEvData&)
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)
virtual voidTHaAnalysisObject::SetName(const char* name)
virtual voidTHaAnalysisObject::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
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
protected:
virtual Int_tTHaCoincTime::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 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*THaAnalysisObject::Here(const char*) const
virtual voidTHaPhysicsModule::MakePrefix()
voidTObject::MakeZombie()
virtual FILE*THaAnalysisObject::OpenFile(const TDatime& date)
virtual FILE*THaAnalysisObject::OpenRunDBFile(const TDatime& date)
voidTHaPhysicsModule::PrintInitError(const char* here)
static char*THaAnalysisObject::ReadComment(FILE* fp, char* buf, const int len)
virtual Int_tTHaCoincTime::ReadDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::ReadRunDatabase(const TDatime& date)
virtual Int_tTHaAnalysisObject::RemoveVariables()

Data Members

public:
enum THaPhysicsModule::ESpecialRetval { kFatal
kTerminate
};
enum THaAnalysisObject::EStatus { kOK
kNotinit
kInitError
kFileError
};
enum THaAnalysisObject::EType { kVarDef
kRVarDef
};
enum THaAnalysisObject::EMode { kDefine
kDelete
};
enum THaAnalysisObject::EProperties { kNeedsRunDB
};
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
boolTHaPhysicsModule::fDataValidData valid
Int_tTHaAnalysisObject::fDebugDebug level
THaDetMap*THaCoincTime::fDetMap
TStringfDetName1
TStringfDetName2
Double_t*THaCoincTime::fDiffT1by2[fNtimes] overall time difference at vtx
Double_t*THaCoincTime::fDiffT2by1[fNtimes] overall time difference at vtx
TDatimeTHaAnalysisObject::fInitDateDate passed to Init
Bool_tTHaAnalysisObject::fIsInitFlag indicating that ReadDatabase done
Bool_tTHaAnalysisObject::fIsSetupFlag indicating that DefineVariables done.
boolTHaPhysicsModule::fMultiTrkFlag for multi-track mode
Int_tTHaCoincTime::fNTr1
Int_tTHaCoincTime::fNTr2number of tracks in spectrometers
TStringTNamed::fNameobject identifier
Int_tTHaCoincTime::fNtimes= fNTr1*fNTr2
Bool_tTHaAnalysisObject::fOKOutFlag indicating object-output prepared
char*THaAnalysisObject::fPrefixName prefix for global variables
UInt_tTHaAnalysisObject::fPropertiesProperties of this object (see EProperties)
THaVar*fS2Times1!
THaVar*fS2Times2!
THaVar*fS2TrPath1!
THaVar*fS2TrPath2!
THaSpectrometer*THaCoincTime::fSpect1
THaSpectrometer*THaCoincTime::fSpect2pointers to spectrometers
TStringTHaCoincTime::fSpectN1
TStringTHaCoincTime::fSpectN2Names of spectrometers to use
THaAnalysisObject::EStatusTHaAnalysisObject::fStatusInitialization status flag
Int_tTHaCoincTime::fSz1
Int_tTHaCoincTime::fSz2allocated number of tracks
Int_tTHaCoincTime::fSzNtrallocated number of time combinations
TStringTHaCoincTime::fTdcLabels[2]detector names for reading out TDCs
Double_tTHaCoincTime::fTdcOff[2]timing offset (in seconds)
Double_tTHaCoincTime::fTdcRes[2]TDC res. of TDC in spec1 and spec2
TStringTNamed::fTitleobject title
Int_t*THaCoincTime::fTrInd1[fNtimes] track index from spec1 for fDiff*
Int_t*THaCoincTime::fTrInd2[fNtimes] track index from spec2 for fDiff*
THaVar*fTrPads1!
THaVar*fTrPads2!
THaVar*fTrPath1!
THaVar*fTrPath2!
Double_t*THaCoincTime::fVxTime1[fNTr1] times at vertex for tracks in spec1
Double_t*THaCoincTime::fVxTime2[fNTr2] times at vertex for tracks in spec2
Double_tTHaCoincTime::fdTdc[2]timing of trig sp2+delay after trig sp1,
Double_tTHaCoincTime::fpmass1
Double_tTHaCoincTime::fpmass2masses to use for coinc. time

Class Charts

Inheritance Chart:
TNamed
THaAnalysisObject
THaPhysicsModule
THaCoincTime
THaS2CoincTime

Function documentation

THaS2CoincTime(const char* name, const char* description, const char* spec1 = "L", const char* spec2 = "R", Double_t mass1 = .938272, Double_t mass2 = 0.000511, const char* ch_name1 = 0, const char* ch_name2 = 0, const char* detname1 = "s2", const char* detname2 = "")
 To construct, specify the name of the module (usually "CT"),
 a description ("Coincidence time calculation between L and R HRS"),
 the FIRST and SECOND source of tracks ("L" and "R"),
 the MASSES in GeV/c^2  of the particles in FIRST and SECOND spectrometers.

 The rest of the parameters are usually not used.

 The next two are thes name of the TDC channels in the database for this
 object measuring the difference between the COMMON STARTS of the FIRST
 and SECOND spectrometers, such that:

  * ch_name1 measures  COMMON_START<sub>2</sub> - COMMON_START<sub>1</sub>,
  * ch_name2 measures  COMMON_START<sub>1</sub> - COMMON_START<sub>2</sub>.

  These default to "ct_(spec2 name)by(spec1 name)" and
  "ct_(spec1 name)by(spec2 name)", respectively.

  * detname1 is the name of the timing plane in the FIRST spectrometer to
        use to measure the time of the track in this spectrometer.
  * detname2 is likewise the name of the timing plane in the SECOND
        spectrometer. If not specified, detname1 is used.

  The default arguments are detname1="s2", and detname2 be assigned to
  match detname1.
~THaS2CoincTime()
 just be certain to call THaCoincTime's destructor
THaAnalysisObject::EStatus Init(const TDatime& run_time)
 Initialize the module. Grab the global variables containing the tracking
 results (including calculated pathlengths) and the times and pads from the
 THaScintillator planes.
Int_t Process(const THaEvData& )
 Read in coincidence TDC's, calculate the time of the tracks at the
 target vertex, and then assemble the time-difference between when the
 tracks left the target for every possible combination.

Last change: Sat Nov 7 21:26:50 2009
Last generated: 2009-11-07 21:26

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.