#include "hmdctrackfitter.h" |
HMdcTrackFitter
class description - source file - inheritance tree (.pdf)
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)
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
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.