ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » (UNKNOWN) » HMdcCalibrater1

class HMdcCalibrater1: public HReconstructor

_HADES_CLASS_DESCRIPTION


 HMdcCalibrater1

 This transformation class calculates the drift time information in all fired
 cells using parameters from the parameter containers MdcCalParRaw for the
 calibration parameters and from MdcLookupGeom to map the layer number and
 cell number on Cal1 level to the motherboard number and TDC channel number
 on Raw level.
 The drift times are randomized within one bin of TDC resolution.

 The constructor gives different options how to fill HMdcCal1 level:
 HMdcCalibrater1(name,title,option input, otption timecut, option embedding )
    option input   =  1 No Start and Cal (default)
                      2 Start and Cal
                      3 No Start and no Cal
    option timecut =  1 time cuts switched on
                      0 time cuts switched off
    option embedding = 0 no embedding
                     = 1 embedding
 Start means that the startime from the Startdetector will be used to correct.
 Cal means real calibration with parameters from HMdcCalParRaw
 If no Cal (3)is selected no input from HMdcCalParRaw is needed
 and the TDC slope parameter will be always 1.The offset is set to 2048
 which means that the HMdcCal1 level will be a reversed copy of HMdcRaw.

Function Members (Methods)

public:
HMdcCalibrater1()
HMdcCalibrater1(const Text_t* name, const Text_t* title, Int_t vers = 1, Int_t cut = 1, Int_t domerge = 0)
virtual~HMdcCalibrater1()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidHReconstructor::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual Bool_tHReconstructor::connectTask(HTask* task, Int_t n = 0)
virtual voidTNamed::Copy(TObject& named) const
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 voidTObject::Error(const char* method, const char* msgfmt) const
virtual Int_texecute()
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 Bool_tfinalize()
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual HTask*HReconstructor::getComposite()
virtual voidHReconstructor::getConnections()
static Int_tgetDeltaElWiresMod(Int_t s, Int_t m)
static Int_tgetDeltaElWiresSeg(Int_t s, Int_t g)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static Int_tgetFlashWiresMod(Int_t s, Int_t m)
static Int_tgetFlashWiresSeg(Int_t s, Int_t g)
virtual const char*TObject::GetIconName() const
static Int_tgetMaxNrDeltaElWiresPerSeg()
static Int_tgetMaxNrFlashWiresPerSeg()
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
virtual HTask*HTask::getOwner()
TObjArrayHReconstructor::getTable()
virtual HTask*HReconstructor::getTask(const Char_t* name)
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 Bool_tinit()
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tHReconstructor::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual voidHReconstructor::isTimed(Bool_t flag = kTRUE)
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual HTask*HReconstructor::next(Int_t& errCode)
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
HTask&HTask::operator=(const HTask&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
voidprintStatus()
virtual voidHReconstructor::printTimer()
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
virtual Bool_tHTask::reinit()
voidTObject::ResetBit(UInt_t f)
virtual voidHReconstructor::resetTimer()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
voidHReconstructor::setActive(Bool_t state)MENU
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual Bool_tHTask::setConnections()
voidsetDeltaElectCut(Int_t thresh, Float_t t1c = -10.)
voidsetDoPrint(Bool_t dopr)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetFlashWiresCut(Float_t tot = 30., Float_t t1m1 = -5., Float_t t1m2 = -5., Float_t t1m3 = -5., Float_t t1m4 = -5.)
voidsetGlobalOffset(Float_t o0, Float_t o1, Float_t o2, Float_t o3)
voidsetGlobalSlope(Float_t s)
voidHTask::setManual()
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidHTask::setOwner(HTask* atask)
voidsetSecGlobalOffset(Int_t s, Float_t o0, Float_t o1, Float_t o2, Float_t o3)
voidsetSkipCal(Bool_t skip = kTRUE)
voidsetSkipFlashEvent(Int_t threshold)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUseMultCut(Int_t thresh, Bool_t use = kTRUE, Bool_t tot = kTRUE, Bool_t skip = kTRUE)
static voidsetUseWireStat(Bool_t doit)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
voidswitchArguments(Int_t, Int_t, Int_t)
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()
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

Data Members

protected:
Bool_tNoStartandCalswitch between Cal&&Start,noCal&&Start,noCal&&noStart
Bool_tNoStartandNoCalswitch between Cal&&Start,noCal&&Start,noCal&&noStart
Bool_tStartandCalswitch between Cal&&Start,noCal&&Start,noCal&&noStart
HMdcCal1*cal! pointer to cal1 data word
HCategory*calCat! pointer to the cal data
HMdcCalParRaw*calparraw! calibration parameters
static Int_tcountNDeltaElWiresPerMod[6][4]! counter array for "DeltaElectron" wires /module/event
static Int_tcountNrFlashWiresPerMod[6][4]! counter array for "flash" wires /module/event
static Int_tcountNrWiresPerMod[6][4]! counter array for wires /module/event
static Int_tcountNrWiresPerModCal[6][4]! counter array for wires /module/event on cal after cuts
Int_tctEvent! event counter
Int_tctEventSkip! event counter for skipped events
HMdcCutStat*cutStat! container for statistics on cuts
Int_tcuts[5]! counter array passed/not passed time and multiplicity cuts
Int_tcutthreshold! max number of wires in Cal1
Int_tdeltaElMultCut! max number of "delaElectron" wires
Bool_tdoSkipMultCut! skip events detected by mult cut
Bool_tdoprint! print flag for mult cut option
Int_tembeddingflag is set if real data should be embedded into simulation data
Bool_tHReconstructor::fActiveActive flag
TList*HReconstructor::fHistogramsList of histograms generated by this reconstructor.
Bool_tHTask::fIsTimedtimer flag
TStringTNamed::fNameobject identifier
TObjArrayHReconstructor::fOutputs
TStopwatchHReconstructor::fTimerTask timer
TStringTNamed::fTitleobject title
Int_tflashMultCut! max number of "flash" wires
Float_tflashT1Cut[4]! and t1 < flashT1Cut[module]
Float_tflashTotCut! "Flash" wires are wires with ToT < flashTotCut
static Float_tglobalOffset[4]! global offset per plane
static Float_tglobalSecOffset[6][4]! global offset per plane
static Float_tglobalSlope! global tdc slope
Bool_thasPrintedflag is set if printStatus is called
Bool_tHTask::isConnected
Bool_tHTask::isInitialised
HIterator*iter! iterator on raw data.
HIterator*iterstart! iterator on start data.
HLocationloc! location for new object.
HMdcLookupGeom*lookup! lookup table for mapping
Bool_tHTask::manual
HTask*HTask::owner
HMdcRaw*raw! pointer to raw data word
HCategory*rawCat! pointer to the raw data
Bool_tsetTimeCutswitch on/off cuts on time1, time2 and time2-time1
Bool_tskipCal! skip all mdc cal events
Bool_tskipDeltaElEvt! skip events detected by number of "delaElectron" wires
Bool_tskipFlashEvent! skip events detected by number of "flash" wires
HCategory*startHitCat! pointer to the start cal data
Float_ttimeT1Cut! wires with t1<timeT1Cut and ToT > flashTotCut will be added to countNDeltaElWiresPerMod
HMdcTimeCut*timecut! container for cuts on time1,time2,time2-time1
Bool_tuseMultCut! use/ don't use mult cut
Bool_tuseMultCutTot! use/ don't use mult cut with tot < 30ns
static Bool_tuseWireStat! skip wires which are broken
HMdcWireStat*wireStat! container for statistics on cuts

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HMdcCalibrater1(void)
 Default constructor .
HMdcCalibrater1(const Text_t* name, const Text_t* title, Int_t vers = 1, Int_t cut = 1, Int_t domerge = 0)
 Constructor calls the constructor of class HReconstructor with the name
 and the title as arguments.
~HMdcCalibrater1(void)
 destructor deletes the iterator
void switchArguments(Int_t , Int_t , Int_t )
void initParameters()
void setParContainers()
 creates the parameter containers MdcCalParRaw and MdcLookupGeom if they do not
 exist and adds them to the list of parameter containers in the rumtime
 database
Bool_t init(void)
 creates the MdcRaw  and MdcCal1 categories and adds them to the current
 event
 creates an iterator which loops over all fired cells
 calls the function setParContainers()
void printStatus()
Float_t getstarttime()
 Need some work for multiple hists in start detector
 Better select multiplicity 1 in start.
Bool_t translateAddress(Int_t* , Int_t* )
Bool_t testTimeCuts(Float_t , Float_t )
 tests if the measured time will pass the time cuts

void countWiresPerMod()
 counts the number of fired wires per mod

void fillCal1(Float_t , Float_t , Int_t )
 fill time1,time2 and nHits to Cal1

void calcTimes(Float_t* , Float_t* , Float_t , Int_t , HMdcCalParTdc* )
 calc testtime1,testtime2

Int_t execute(void)
void printWires()
void initCounters()
void initCountersCal()
Bool_t doMultCut()
Bool_t doFlashCut()
Bool_t doDeltaElCut()
void setDoPrint(Bool_t dopr)
{doprint=dopr;}
void setSkipCal(Bool_t skip = kTRUE)
{skipCal=skip;}
void setUseMultCut(Int_t thresh, Bool_t use = kTRUE, Bool_t tot = kTRUE, Bool_t skip = kTRUE)
void setSkipFlashEvent(Int_t threshold)
void setFlashWiresCut(Float_t tot = 30., Float_t t1m1 = -5., Float_t t1m2 = -5., Float_t t1m3 = -5., Float_t t1m4 = -5.)
void setDeltaElectCut(Int_t thresh, Float_t t1c = -10.)
Int_t getFlashWiresMod(Int_t s, Int_t m)
{ return countNrFlashWiresPerMod[s][m]; }
Int_t getFlashWiresSeg(Int_t s, Int_t g)
{ return countNrFlashWiresPerMod[s][g*2]+countNrFlashWiresPerMod[s][g*2+1]; }
Int_t getMaxNrFlashWiresPerSeg(void)
Int_t getDeltaElWiresMod(Int_t s, Int_t m)
{ return countNDeltaElWiresPerMod[s][m]; }
Int_t getDeltaElWiresSeg(Int_t s, Int_t g)
Int_t getMaxNrDeltaElWiresPerSeg(void)
void setUseWireStat(Bool_t doit)
{ useWireStat=doit; }
void setGlobalOffset(Float_t o0, Float_t o1, Float_t o2, Float_t o3)
void setSecGlobalOffset(Int_t s, Float_t o0, Float_t o1, Float_t o2, Float_t o3)
void setGlobalSlope(Float_t s)
Bool_t finalize(void)
{return kTRUE;}