#include "hmdccalibrater1.h"

HMdcCalibrater1


class description - source file - inheritance tree (.pdf)

class HMdcCalibrater1 : public HReconstructor

Inheritance Chart:
TObject
<-
TNamed
<-
HTask
<-
HReconstructor
<-
HMdcCalibrater1

    protected:
void calcTimes(Float_t*, Float_t*, Float_t, Int_t, HMdcCalParTdc*) void countWiresPerMod() Bool_t doMultCut() void fillCal1(Float_t, Float_t, Int_t) Float_t getstarttime() void initCounters() void initCountersCal() void initParameters() void printWires() void setParContainers() Bool_t testTimeCuts(Float_t, Float_t) Bool_t translateAddress(Int_t*, Int_t*) public:
HMdcCalibrater1() HMdcCalibrater1(Text_t* name, Text_t* title, Int_t vers = 1, Int_t cut = 1, Int_t domerge = 0) ~HMdcCalibrater1() static TClass* Class() virtual Int_t execute() virtual Bool_t finalize() virtual Bool_t init() virtual TClass* IsA() const void printStatus() void setDoPrint(Bool_t dopr) void setGlobalOffset(Float_t o0, Float_t o1, Float_t o2, Float_t o3) void setGlobalSlope(Float_t s) void setUseMultCut(Int_t thresh, Bool_t use = kTRUE) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void switchArguments(Int_t, Int_t, Int_t)

Data Members


    protected:
HCategory* rawCat ! pointer to the raw data HCategory* calCat ! pointer to the cal data HCategory* startHitCat ! pointer to the start cal data HMdcRaw* raw ! pointer to raw data word HMdcCal1* cal ! pointer to cal1 data word Bool_t StartandCal switch between Cal&&Start,noCal&&Start,noCal&&noStart Bool_t NoStartandNoCal switch between Cal&&Start,noCal&&Start,noCal&&noStart Bool_t NoStartandCal switch between Cal&&Start,noCal&&Start,noCal&&noStart Bool_t setTimeCut switch on/off cuts on time1, time2 and time2-time1 Bool_t hasPrinted flag is set if printStatus is called Int_t embedding flag is set if real data should be embedded into simulation data HLocation loc ! location for new object. HIterator* iter ! iterator on raw data. HIterator* iterstart ! iterator on start data. HMdcCalParRaw* calparraw ! calibration parameters HMdcLookupGeom* lookup ! lookup table for mapping HMdcTimeCut* timecut ! container for cuts on time1,time2,time2-time1 HMdcCutStat* cutStat ! container for statistics on cuts static Float_t globalOffset[4] ! global offset per plane static Float_t globalSlope ! global tdc slope static Int_t countNrWiresPerMod[6][4] ! counter array for wires /module/event static Int_t countNrWiresPerModCal[6][4] ! counter array for wires /module/event on cal after cuts Int_t cuts[4] ! counter array passed/not passed time and multiplicity cuts Int_t cutthreshold ! max number of wires in Cal1 Bool_t useMultCut ! use/ don't use mult cut Bool_t doprint ! print flag for mult cut option

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.


HMdcCalibrater1(void)
 Default constructor .

HMdcCalibrater1(Text_t* name,Text_t* title,Int_t vers,Int_t cut,Int_t merge) : HReconstructor(name,title)
 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 vers,Int_t cut,Int_t merge)

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* mbo,Int_t* ch)

Bool_t testTimeCuts(Float_t testTime1,Float_t testTime2)
 tests if the measured time will pass the time cuts


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


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


void calcTimes(Float_t* testTime1,Float_t* testTime2,Float_t starttime,Int_t nHits,HMdcCalParTdc* tdc)
 calc testtime1,testtime2


Int_t execute(void)

void printWires()



Inline Functions


               void initCounters()
               void initCountersCal()
             Bool_t doMultCut()
               void setDoPrint(Bool_t dopr)
               void setUseMultCut(Int_t thresh, Bool_t use = kTRUE)
               void setGlobalOffset(Float_t o0, Float_t o1, Float_t o2, Float_t o3)
               void setGlobalSlope(Float_t s)
             Bool_t finalize()
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)


Last update: 17/01/2002 by Ilse Koenig


ROOT page - Class index - Class Hierarchy - Top of the page

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.