_HADES_CLASS_DESCRIPTION HMdcOffsetCheckTimeShift Defines the offset parameter for MDC calibration. Uses HMdcCalParRaw container as input/output for calibration data
HMdcOffsetCheckTimeShift() | |
HMdcOffsetCheckTimeShift(const Text_t* name, const Text_t* title) | |
virtual | ~HMdcOffsetCheckTimeShift() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | HReconstructor::Browse(TBrowser* b) |
static TClass* | Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TNamed::Clear(Option_t* option = "") |
virtual TObject* | TNamed::Clone(const char* newname = "") const |
virtual Int_t | TNamed::Compare(const TObject* obj) const |
virtual Bool_t | HReconstructor::connectTask(HTask* task, Int_t n = 0) |
virtual void | TNamed::Copy(TObject& named) const |
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 |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual Int_t | execute() |
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) |
virtual Bool_t | finalize() |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual HTask* | HReconstructor::getComposite() |
virtual void | HReconstructor::getConnections() |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TNamed::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual HTask* | HTask::getOwner() |
TObjArray | HReconstructor::getTable() |
virtual HTask* | HReconstructor::getTask(const Char_t* name) |
virtual const char* | TNamed::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() 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 Bool_t | init() |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | HReconstructor::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TNamed::IsSortable() const |
virtual void | HReconstructor::isTimed(Bool_t flag = kTRUE) |
Bool_t | TObject::IsZombie() const |
virtual void | TNamed::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual HTask* | HReconstructor::next(Int_t& errCode) |
virtual Bool_t | TObject::Notify() |
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) |
HTask& | HTask::operator=(const HTask&) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | TObject::Pop() |
virtual void | TNamed::Print(Option_t* option = "") const |
virtual void | HReconstructor::printTimer() |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual Bool_t | reinit() |
void | TObject::ResetBit(UInt_t f) |
virtual void | HReconstructor::resetTimer() |
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 = "") |
void | HReconstructor::setActive(Bool_t state)MENU |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual Bool_t | HTask::setConnections() |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
void | HTask::setManual() |
virtual void | TNamed::SetName(const char* name)MENU |
virtual void | TNamed::SetNameTitle(const char* name, const char* title) |
void | setNoise(Int_t o, Int_t w) |
void | setNoiseOffset(Int_t i) |
void | setNoiseWidth(Int_t i) |
void | setNoStart() |
void | setNumberOfEvents(Int_t i) |
static void | TObject::SetObjectStat(Bool_t stat) |
void | setOutputAscii(const Char_t*) |
void | setOutputRoot(const Char_t*) |
virtual void | HTask::setOwner(HTask* atask) |
void | setPulserFile() |
void | setRangeGauss(Int_t i) |
void | setStepSize(Int_t i) |
void | setThreshold(Float_t min, Float_t max) |
void | setThresholdMax(Float_t f) |
void | setThresholdMin(Float_t f) |
void | setTimeCut(Bool_t cut) |
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 |
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() |
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 | createHist(TFile*, Int_t, Int_t, Int_t, Int_t) |
void | deleteHist() |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
void | fillHist(Int_t, Int_t, Int_t, Int_t) |
Int_t | fitHist(Int_t, Int_t, Int_t, Int_t) |
Float_t | getstarttime() |
Bool_t | isNaN(float f) |
void | TObject::MakeZombie() |
TDirectory* | Mkdir(TDirectory*, const Char_t*, Int_t, Int_t p = 1) |
ofstream* | openAsciiFile() |
void | setDefault() |
void | writeAscii(ofstream&, Int_t, Int_t, Int_t, Int_t) |
void | writeHist(TFile*) |
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
HCategory* | calStartCat | ! pointer to the cal data |
HMdcCalParRaw* | calparraw | pointer to HMdcCalParRaw container |
float | crosspointX | x-value of the intersection point of the two linear fits->offset |
Int_t | eventcounter | counts number of calculated events of all files |
Bool_t | HReconstructor::fActive | Active flag |
TList* | HReconstructor::fHistograms | List of histograms generated by this reconstructor. |
Bool_t | HTask::fIsTimed | timer flag |
TString | TNamed::fName | object identifier |
Char_t* | fNameAsciiOffset | file name of ascii output file |
Char_t* | fNameRootOffset | file name of root output file |
TObjArray | HReconstructor::fOutputs | |
TStopwatch | HReconstructor::fTimer | Task timer |
TString | TNamed::fTitle | object title |
Int_t | filecounter | counts the number of files |
Char_t | filenames[50][200] | Array to store the names of the anaylyzed files |
float | fitGaussMean | mean of the gaussian fit |
float | fitGaussSigma | sigma of the gaussian fit |
float | fitpar0 | first fit parameter of the first linear fit |
float | fitpar0error | error of the first fit parameter of the first linear fit |
float | fitpar1 | second fit parameter of the first linear fit |
float | fitpar1error | error of the second fit parameter of the first linear fit |
float | fitparNoise0 | first fit parameter of the second linear fit |
float | fitparNoise0error | error of the first fit parameter of the second linear fit |
float | fitparNoise1 | second fit parameter of the second linear fit |
float | fitparNoise1error | error of the second fit parameter of the second linear fit |
TH1F* | hint | integrated drift-time histograms |
int* | hintegral[6][4][20][50][2048] | array for the integrated drift-time |
TH1F* | hinv | drift-time histograms to hold collected data |
int* | hreverse[6][4][20][50][2048] | array for the drift-time (Time1) to be filled in eventloop |
Bool_t | HTask::isConnected | |
Bool_t | HTask::isInitialised | |
Bool_t | isPulserFile | flag for a external calibration file (pulser) |
HIterator* | iter | iterator on raw data |
HIterator* | iter_start | ! iterator on start cal data. |
HMdcLookupGeom* | lookupgeom | pointer to HMdcLookupGeom container |
Bool_t | HTask::manual | |
Float_t | maxfitthreshold | maximum threshold for linear fit (y-range) |
Float_t | minfitthreshold | minimum threshold for linear fit (y-range) |
static const Int_t | nSubEvents | The max. number of objects per event |
static const Int_t | nbin | Number of bins ih the histogramms |
static const Int_t | nbinm1 | nbin - 1 |
static const Int_t | nbinp1 | nbin + 1 |
Bool_t | noStart | flag if starttime should not be used |
Int_t | numberofevents | counts the number of events which are collected in each step |
Int_t | offsetfitNoise | offset of the fit range for the subtraction of the noise (start at yequalzero going to the left) |
HTask* | HTask::owner | |
Int_t | rangeGauss | fit range of the gaussian fit around calculated offset |
HCategory* | rawCat | pointer to the raw data |
Int_t | skipcount | counts the number of events |
Int_t | step | counts the number of step of stepsize in same file |
Int_t | stepsize | number of events between the hists in same file |
HMdcTimeCut* | timecut | pointer to HMdcTimeCut container |
float | totalsigma | sigma of the offset calculated from the sigmas of the two linear fits |
Bool_t | useTimeCut | flag if time cuts should be perormed. |
Int_t | widthfitNoise | width of the fit range |
float | yequalzero | intersection point of the first fit and the x-axis |
Sets ascii output of HMdcOffsetCheckTimeShift for debugging output.
Sets rootfile output of HMdcOffsetCheckTimeShift where all created histograms were written.
Inits HMdcOffsetCheckTimeShift and the needed HMdcCalParRaw, if this container does not exists
Inits HMdcOffsetCheckTimeShift and the needed HMdcCalParRaw, if this container does not exists
Histograms for inverted Time1 and integrated Time1 per Tdc-Channel are created in a subdirectory structure.
Histograms for inverted Time1 and integrated Time1 per Tdc-Channel are filled
The offset is calculated from two linear fits. Some pictures of the fitted histograms can be found onMDC calibration page
. The first linear fit (red) is done to find the rising edge of the integrated spectra. The second linear fit (blue) is done to substract the noise. The ranges for both fits can be set through the functions setNoise()(x-range) for the second fit (default values: 100,50) and setThreshold()(y-range) for the first fit (default values :0.15,0.50). The y-range is calculated by the percentage of the maximum height of the spectra. The offset ist calculated from the intersection point of both linear fits. The sigma of the offset is calculated from the sigmas of the two linear fits. If the analyzed file is a pulser file for external calibration a gaussian fit is done. To set this fit the function setPulserFile() has to be used in the macro. The range of the fit is set through the function setRangeGauss()(default value: 50) around the calculated offset.The mean and sigma of the fit is written to the ascii debugging output.
The adresses of the channel(sector,module,mbo,tdc),offset, two fitparameters for the two linear fits, the sigma of the offset ,offset and the integral(number of entries for this channel) are written to the ascii debugging output.In the case of an pulser file (external calibration) the mean and the sigma of the gaussian fit are also written to the output.
All created histograms are written to a rootfile.The file is structured for sector,module,mbo.
This function is called after the execute function is finished. At this point the arrays for the drift-time are filled. Froms this arrays the histograms for the drift-time and the integrated drift-time are filled. The fits for the calcutation of the offsets are done and the offsets and the sigma of the offsets are calculated .All histograms are written to a rootfile output and the information of the fits to an ascii debugging output. The offset and the sigma of the offset are filled into the container (HMdcCalParRaw) for the calibration parameters. To characterize the method of calculation of the offsets the function setOffsetMethod() of HMdcCalParRaw is used. As default value for the method 2 is used for automatic calibration. If no calibration is done this value is set to 0.
Function to create subdirectories
Raw data of Time1 multiplied by the slope of the channel taken from the container of the calibration parameters are filled into the array for the drift-time . This array contains 2048 (corresponding to the resulution of the tdc chip) entries for each tdc channel.