#ifndef HTofinoCalParCell_H
#define HTofinoCalParCell_H
#pragma interface

#include "TObject.h"

class HTofinoCalParCell : public TObject {
public:
    HTofinoCalParCell();
//  initialization could be used e.g. to clear the data element
    HTofinoCalParCell(Float_t fSlope, Float_t fOffset);
    ~HTofinoCalParCell() {}

    Int_t reset();
    Float_t getOffset() {return m_fOffset;}
    Float_t getSlope() {return m_fSlope;}
    Float_t getDeltaSlope() {return m_fDeltaSlope;}
    Float_t getDeltaOffset() {return m_fDeltaOffset;}
    Float_t getCFDThreshold() {return m_fCFDThreshold;}
    Float_t getADCThreshold() {return m_fADCThreshold;}
    Float_t getADCPedestal() {return m_fADCPedestal;}
	void getElossParams(Float_t *eloss);
	
    void getResolParams(Float_t* resol);
    Float_t getTimeChannel() {return m_fTimeChannel;}
    Float_t getCoordPosition() {return m_fCoordPos;}
    void getDistanceParams(Float_t* dist);
    Float_t getMinLength() {return m_fMinLength;}
    Int_t getDistanceParamsType() {return m_nDistParamType;}

    void setOffset(Float_t fOffset) {m_fOffset = fOffset;}
    void setSlope(Float_t fSlope) {m_fSlope = fSlope;}
    void setCFDThreshold(Float_t fCFDThresh) {m_fCFDThreshold = fCFDThresh;}
    void setADCThreshold(Float_t fADCThresh) {m_fADCThreshold = fADCThresh;}
    void setADCPedestal(Float_t fADCPedest) {m_fADCPedestal = fADCPedest;}

    void setParams(Float_t fSlope, Float_t fOffset);
    void setDeltaSlope(Float_t fDeltaSlope) {m_fDeltaSlope = fDeltaSlope;}
    void setDeltaOffset(Float_t fDeltaOffset) {m_fDeltaOffset = fDeltaOffset;}
    void setDeltaParams(Float_t fDeltaSlope, Float_t fDeltaOffset);
    void setElossParams(Float_t* elosstab);

    void setTimeChannel(Float_t fTimeChannel) {m_fTimeChannel = fTimeChannel;}
    void setCoordPosition(Float_t fCoordPos) {m_fCoordPos = fCoordPos;}
    void setResolParams(Float_t dpar1, Float_t dpar2, Float_t dpar3);
    void setResolParams(Float_t* resoltab);
//    void setDistanceParams(Float_t dpar1, Float_t dpar2, Float_t dpar3);
    void setDistanceParams(Float_t dpar1, Float_t dpar2, Float_t dpar3, Float_t dpar4);
    void setDistanceParams(Float_t* disttab);
    void setMinLength(Float_t fLen) {m_fMinLength = fLen;}
    void setDistanceParamsType(Int_t iDistType) {m_nDistParamType = iDistType;}

    Float_t calcDistance(Float_t row);
    Float_t calcDistPMT(Float_t y);
    Float_t calcTimeResol(Float_t y);

    ClassDef(HTofinoCalParCell,4) //Tofino calibration parameters per cell

private:
    Float_t m_fOffset;       // offset parameter for calibration of the cell
    Float_t m_fSlope;        // slope parameter for  calibration of the cell
    Float_t m_fDeltaSlope;   // error in slope parameter
    Float_t m_fDeltaOffset;  // error in offset parameter
    Float_t m_fCFDThreshold; // CFD Threshold (chan.) for the cell
    Float_t m_fADCThreshold; // ADC Threshold (chan.) for the cell
    Float_t m_fADCPedestal; // ADC Pedestal (chan.) for the cell
    Float_t m_fElossParam[4]; // K and A0-A2 parameters for (Eloss = K*(ADC-ADCPedestal) + A0+A1*Row+A2*Row*Row) calculation 

    Float_t m_fResolParam[3]; // parameters for tofino resolution calculation
    Float_t m_fDistParam[4]; // parameters for distance calculation
    Float_t m_fMinLength; // min distance from target to cell
    Int_t m_nDistParamType; // type of parameters for distance calculation
    Float_t m_fTimeChannel;  // time in ns per tdc channel 
    Float_t m_fCoordPos;     // y position of the coordinate system in the cell
};

#endif

Last change: Sat May 22 13:16:35 2010
Last generated: 2010-05-22 13:16

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.