#include "hmdctrackfitter.h"

HMdcTrackFitter


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

class HMdcTrackFitter : public TObject

Inheritance Chart:
TObject
<-
HMdcTrackFitter
<-
HMdcTrackFitterA
<-
HMdcTrackFitterB

    protected:
void init() void setPlanes() public:
HMdcTrackFitter(HMdcTrackFitInOut* fIO) HMdcTrackFitter(const HMdcTrackFitter&) virtual ~HMdcTrackFitter() void calcMinFunctional() static TClass* Class() Bool_t fillClusFitCont() Bool_t fillListHits(HMdcClus* clus1, HMdcClus* clus2) Bool_t fillListHits(HMdcEvntListCellsAndTimes* store, HMdcClus* clus1, HMdcClus* clus2) Bool_t fillListHits(HMdcEvntListCellsAndTimes* store) void fillOutput() Bool_t fitCluster(Double_t threshold, Int_t fittingMod = -1) Double_t getChi2() const Char_t getExitFlag() const HMdcTrackParam* getFinalParam() Bool_t getFitStatus() const virtual Double_t getFunctional() const Double_t getFunMin() const Int_t getIterationNumber() const Int_t getNumOfParam() const HMdcWireData& getWire(Int_t n) HMdcWiresArr& getWiresArr() HMdcWireData* getWiresList() virtual TClass* IsA() const virtual Int_t minimize(Double_t threshold, Int_t iter = 0) HMdcTrackFitter& operator=(const HMdcTrackFitter&) Bool_t setClustAndFill(HMdcClus* fClst1, HMdcClus* fClst2 = 0) Bool_t setClustAndFill(HMdcEvntListCellsAndTimes* store, Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2) void setModuleTof() void setPrintFlag(Bool_t prnt) void setRegionOfWires(Int_t mod = -1) void setSectorTof() void setSegmentTof() virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void switchOffWires(Int_t sec, Int_t mod, Int_t lay = -1, Int_t cell = -1)

Data Members


    protected:
HMdcTrackFitInOut* fitInOut HMdcCal2ParSim* fCal2ParSim HMdcCal2Par* fCal2Par Int_t indClusFit HMdcClusFit object index HMdcWiresArr wires array of wires for fit HMdcTrackParam initParam initial track parameters HMdcTrackParam finalParam final track parameters Int_t iteration counter of iterations Int_t maxIteration maximum number of interations for fit Int_t tofFlag see HMdcTrackFitInOut Bool_t fprint flag for control print-out Char_t exitFlag flag of track fitter exit (=1,2,3,4) Bool_t fitStatus =kTRUE if cluster fit accepted Int_t segIndex HMdcSeg index

Class Description


 HMdcTrackFitInOut

 Service class for for Dubna track piece fitters


 HMdcTrackFitter

 Base class for Dubna track piece fitters



HMdcTrackFitter(HMdcTrackFitInOut* fIO)

void init(void)

Bool_t fillListHits(HMdcClus* clus1,HMdcClus* clus2)

Bool_t fillListHits(HMdcEvntListCellsAndTimes* store, HMdcClus* clus1,HMdcClus* clus2)

Bool_t fillListHits(HMdcEvntListCellsAndTimes* store)

void setPlanes(void)

Bool_t fillClusFitCont(void)

Bool_t fitCluster(Double_t threshold, Int_t fittingMod)
??? calcMinFunctional();  // Utochnenie nachal'nogo priblizheniya

void calcMinFunctional(void)
   Double_t xCl=fClst->getX();
   Double_t yCl=fClst->getY();
   Double_t errX=fClst->getErrX()*2.; // +/-dX
   Double_t errY=fClst->getErrY()*2.; // +/-dX
   Int_t nBinsX=TMath::Max(Int_t(errX*2./2.5),1);  //  / 2.5 mm
   Int_t nBinsY=TMath::Max(Int_t(errY*2./1.0),1);  //  / 1.0 mm
   if(nBinsX%2 == 0) nBinsX++;
   if(nBinsY%2 == 0) nBinsY++;
   Double_t stepX=errX/nBinsX;
   Double_t stepY=errY/nBinsY;
   Double_t xStart=xCl-nBinsX/2*stepX;
   Double_t yStart=yCl-nBinsY/2*stepY;
   Double_t minFunc=1.e+20;
 Double_t xMin=xCl;
 Double_t yMin=yCl;
 Printf("xCl=%f, yCl=%f x:%i %f  y:%i %f",xCl,yCl,nBinsX,stepX,nBinsY,stepY);
   for(Int_t ny=0; ny<nBinsY; ny++) {
     Double_t yNew=yStart+stepY*ny;
 printf("Y=%7.6g", yNew);
     for(Int_t nx=0; nx<nBinsX; nx++) {
       Double_t xNew=xStart+stepX*nx;
       zPlane = fClst->getZ();
       setXInitPlane(xNew);
       setYInitPlane(yNew);
       setZInitPlane(fClst->getZOnPlane(xNew,yNew));
       Double_t func=getFunctional();
 printf(" %7.6g",func);
       if(func<minFunc) {
         minFunc=func;
         xMin=xNew;
         yMin=yNew;
       }
     }
 printf("n");
   }
 printf("..... xMin=%f, yMin=%f funMin=%fn\n",xMin,yMin,minFunc);
 setXInitPlane(xMin);
 setYInitPlane(yMin);
 setZInitPlane(fClst->getZOnPlane(xMin,yMin));
 //   setXInitPlane(xPlane);
 //   setYInitPlane(yPlane);
 //   setZInitPlane(zPlane);

void setRegionOfWires(Int_t mod)

Bool_t setClustAndFill(HMdcClus* fClst1, HMdcClus* fClst2)

Bool_t setClustAndFill(HMdcEvntListCellsAndTimes* store, Double_t x1, Double_t y1, Double_t z1, Double_t x2, Double_t y2, Double_t z2)

void fillOutput()



Inline Functions


                    void ~HMdcTrackFitter()
                    void setPrintFlag(Bool_t prnt)
                   Int_t minimize(Double_t threshold, Int_t iter = 0)
                    void setModuleTof()
                    void setSegmentTof()
                    void setSectorTof()
                   Int_t getNumOfParam() const
                Double_t getFunMin() const
                Double_t getChi2() const
                   Int_t getIterationNumber() const
                  Char_t getExitFlag() const
                  Bool_t getFitStatus() const
         HMdcTrackParam* getFinalParam()
           HMdcWireData* getWiresList()
           HMdcWiresArr& getWiresArr()
           HMdcWireData& getWire(Int_t n)
                Double_t getFunctional() const
                    void switchOffWires(Int_t sec, Int_t mod, Int_t lay = -1, Int_t cell = -1)
                 TClass* Class()
                 TClass* IsA() const
                    void ShowMembers(TMemberInspector& insp, char* parent)
                    void Streamer(TBuffer& b)
                    void StreamerNVirtual(TBuffer& b)
         HMdcTrackFitter HMdcTrackFitter(const HMdcTrackFitter&)
        HMdcTrackFitter& operator=(const HMdcTrackFitter&)


Last update: Fri Jan 26 12:17:19 2007


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.