#include "hmdcwiredata.h"

HMdcWiresArr


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

class HMdcWiresArr : public TObject

Inheritance Chart:
TObject
<-
HMdcWiresArr
    private:
void calcDriftTime(HMdcTrackParam& par, Int_t iflag) void calcDriftTimeAndErr(HMdcTrackParam& par, Int_t iflag) void calcDTdPar(Int_t k, Double_t oneDv2StepD) void calcErrs(HMdcTrackParam& par) void calcFunctional(HMdcTrackParam& par, Int_t iflag) void getGeantHitPoint(HMdcWireData* w, HGeantMdc* hit, Double_t& x, Double_t& y, Double_t& z) void initDTdPar(Int_t k) void recalcFunctional(HMdcTrackParam& par, Int_t iflag = 0) void setListCells(HMdcClus* fCl1, HMdcClus* fCl2) void setListCells(HMdcEvntListCellsAndTimes* store) void setTukeyWeights(Double_t sigma2) Double_t setTukeyWeightsAndCalcSigma2(Double_t sigma2) void setWeightsTo1or0(Double_t maxChi2, Double_t minWeight) public:
HMdcWiresArr() HMdcWiresArr(const HMdcWiresArr&) ~HMdcWiresArr() Double_t calcAGradAnalyt(HMdcTrackParam& par) void calcAnalyticDerivatives1(HMdcTrackParam& par) void calcAnalyticDerivatives2(HMdcTrackParam& par) void calcDerivatives(HMdcTrackParam& par, Int_t iflag) void calcErrorsAnalyt(HMdcTrackParam& par) Bool_t calcNGoodWiresAndChi2(HMdcTrackParam& par) void calcSecondDeriv(HMdcTrackParam& par) void calcTdcErrorsAndFunct(HMdcTrackParam& par, Int_t iflag = 0) void calcTimeOffsetsErr(HMdcTrackParam& par) void calculateErrors(HMdcTrackParam& par) static TClass* Class() void fillClusFitAndWireFit(HMdcClusFit* fClusFit) void fillClusFitSim(HMdcClusFit* fClusFit, HMdcTrackParam& par) Bool_t fillListHits(HMdcClus* fCl1, HMdcClus* fCl2) Bool_t fillListHits(HMdcEvntListCellsAndTimes* store, HMdcClus* fCl1, HMdcClus* fCl2) Bool_t fillListHits(HMdcEvntListCellsAndTimes* store) void fillLookupTableForDer(HMdcTrackParam& par) Bool_t filterOfHits(HMdcTrackParam& par, Int_t iflag = 0) void filterOfHitsConstSig(HMdcTrackParam& par, Double_t sig) Bool_t filterOfHitsV2(HMdcTrackParam& par, Int_t iflag = 0) Double_t functForDeriv(HMdcTrackParam& par, Int_t iflag = 0) Double_t getAGrad() HMdcClus* getClust1() HMdcClus* getClust2() Int_t getFirstTimeInd() const HMdcWireData* getFirstWire() Double_t* getGrad() TMatrixD& getGrad2Matr() HMdcList24GroupCells& getInputListCells() Int_t getLastTimeInd() const HMdcWireData* getLastWire() TMatrixD& getMatrH() Int_t getNCellsInInput(Int_t mod = -1) Int_t getNCellsInOutput(Int_t mod = -1) Int_t getNDriftTimes() const Int_t getNModulesInFit() Int_t getNumOfGoodWires() Int_t getNWiresInFit() HMdcList24GroupCells& getOutputListCells() Int_t getSector() const Int_t getSegment() const Double_t getSumOfWeights() HMdcWireData* getWireData(Int_t n) HMdcWireData* getWiresArray() Float_t getXClst() Float_t getYClst() Float_t getZClst() virtual TClass* IsA() const HMdcWiresArr& operator=(const HMdcWiresArr&) HMdcWireData& operator[](Int_t n) void printTimes(Int_t iflag, HMdcTrackParam& par) void setHitStatM1toP1() void setInitWeghts(HMdcTrackParam& par) void setNumDriftTimes(Int_t nDrTm) void setPrintFlag(Bool_t flag = kTRUE) Bool_t setRegionOfWires(Int_t mod) void setSizeGrad2Matr(HMdcTrackParam& par) void setTrackFitInOut(HMdcTrackFitInOut* pfio) void setUnitWeights() void setWeightsTo1or0(HMdcTrackParam& par, Int_t iflag = 0) void setXYZClust(Float_t x, Float_t y, Float_t z) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void subtractWireOffset(HMdcTrackParam& par) void switchOff(Int_t sec, Int_t mod, Int_t lay = -1, Int_t cell = -1) Double_t testFitResult() Bool_t testTukeyWeights(HMdcTrackParam& par) Int_t unsetHits() Double_t valueOfFunctAndErr(HMdcTrackParam& par, Int_t iflag = 0) Double_t valueOfFunctional(HMdcTrackParam& par, Int_t iflag = 0)

Data Members


    protected:
HMdcWireData* wires Array of HMdcWireData objects Int_t arraySize Size of "wires" array Int_t nDriftTimes Number of drift times in track HMdcClus* fClst1 HMdcClus* fClst2 is used for sector track (magnet off) Int_t segment segment (0,1 or 3) Int_t sector sector Float_t xClst cluster position on Float_t yClst the project plane Float_t zClst HMdcTrackFitInOut* fitInOut HMdcList24GroupCells lInputCells sells list for fitting (input) HMdcList24GroupCells lOutputCells cells list passed fit Int_t nMdcTimes[4] Num. of hits in MDC's Int_t firstTime Int_t lastTime HMdcWireData* firstWire HMdcWireData* lastWire Int_t nModsInFit number of modules in this fit Int_t numOfGoodWires number of wires passed fit Double_t sigma2 last sigma^2 of chi2 distr. which was HLocation locCal1 location of HMdcCal1 object HMdcWireData* firstWireInLay[24] first wire in layer HMdcWireData* lastWireInLay[24] last wire in layer Bool_t fprint debuging print flag Double_t grad[4] Gradient of downhill direction Double_t agrad TMatrixD grad2 TMatrixD matrH Int_t trackNum[200] track numbers Int_t numWiresClus[200] num. of wires in cluster for each tr. Int_t numWiresFit[200] num. of wires passed fit for each tr.

Class Description


  HMdcWireData

    Class keep one wire data for track fitter.

  HMdcWireArr

    Array of HMdcWireData objects.



HMdcWiresArr(void)

~HMdcWiresArr(void)

void setNumDriftTimes(Int_t nDrTm)

Bool_t fillListHits(HMdcClus* fCl1, HMdcClus* fCl2)
 Filling list wire for fitting from cluster(s)

Bool_t fillListHits(HMdcEvntListCellsAndTimes* store, HMdcClus* fCl1, HMdcClus* fCl2)
 Filling list wire for fitting from cluster(s),
 drift times from HMdcEvntListCellsAndTimes

void setListCells(HMdcClus* fCl1, HMdcClus* fCl2)

Bool_t fillListHits(HMdcEvntListCellsAndTimes* store)
 Filling list wire for fitting from cluster(s),
 drift times from HMdcEvntListCellsAndTimes

void setListCells(HMdcEvntListCellsAndTimes* store)

void fillLookupTableForDer(HMdcTrackParam& par)

Double_t testFitResult(void)
 Removing cells which has small weight or
 if min.distance outside of this cell for case when more than on wires
 in this layer passed fit and so on
 Can be tuned and checked ???).

void subtractWireOffset(HMdcTrackParam& par)
 Must be called after setCell !

void setHitStatM1toP1(void)
 if(hitStatus==-1) hitStatus=1

void switchOff(Int_t sec, Int_t mod, Int_t lay, Int_t cell)

Int_t unsetHits(void)
 removing cells passed fit

Int_t getNCellsInInput(Int_t mod)
 Return number of cells in mdc module =mod in input list
 if mod<0 return number of cells in all mdc's of segment

Int_t getNCellsInOutput(Int_t mod)
 Return valid value after calling testFitResult() only !
 Return number of cells in mdc module =mod passed fit
 if mod<0 return number of cells in all mdc's of segment

Bool_t calcNGoodWiresAndChi2(HMdcTrackParam& par)

void fillClusFitAndWireFit(HMdcClusFit* fClusFit)

void fillClusFitSim(HMdcClusFit* fClusFit, HMdcTrackParam& par)

void getGeantHitPoint(HMdcWireData* w, HGeantMdc* hit, Double_t& x,Double_t& y,Double_t& z)
 Transformation of geant mdc hit in coor.sys. of sector.
 x,y,z - [mm]

void calcTdcErrorsAndFunct(HMdcTrackParam& par, Int_t iflag)
 alphaDrDist and timeOffsets must be calculated befor this function!

Double_t valueOfFunctional(HMdcTrackParam& par, Int_t iflag)
 iflag:
   0 - setting minimal val. of time offset    and no print (default value)
   1 - setting minimal val. of time offset    and print if fprint=kTRUE
   2 - no setting minimal val. of time offset, calculation of inCell[time]
                                              and print if fprint=kTRUE

Double_t valueOfFunctAndErr(HMdcTrackParam& par, Int_t iflag)
 iflag:
   0 - setting minimal val. of time offset    and no print (default value)
   1 - setting minimal val. of time offset    and print if fprint=kTRUE
   2 - no setting minimal val. of time offset, calculation of inCell[time]
                                              and print if fprint=kTRUE

Bool_t setRegionOfWires(Int_t mod)

void setWeightsTo1or0(Double_t maxChi2, Double_t minWeight)

void initDTdPar(Int_t k)

Int_t getNWiresInFit(void)

void calcDTdPar(Int_t k, Double_t oneDv2StepD)

void calcDriftTime(HMdcTrackParam& par, Int_t iflag)

void calcDriftTimeAndErr(HMdcTrackParam& par, Int_t iflag)

void calcFunctional(HMdcTrackParam& par, Int_t iflag)

void recalcFunctional(HMdcTrackParam& par, Int_t iflag)
 Recalculation of finctional without calculation of ditances
 (for the same parameters as before)
 iflag:
   0 - setting minimal val. of time offset    and no print (default value)
   1 - setting minimal val. of time offset    and print if fprint=kTRUE
   2 - no setting minimal val. of time offset and print if fprint=kTRUE

Double_t functForDeriv(HMdcTrackParam& par, Int_t iflag)
 Calculation of finctional for derivativatives.
 functional for par must be calc. before this !!!
 iflag:
   !=2 - setting minimal val. of time offset
    =2 - no setting minimal val. of time offset

void calcErrorsAnalyt(HMdcTrackParam& par)
 calculation of fit parameters errors analyticaly

void calculateErrors(HMdcTrackParam& par)
 calculation of fit parameters errors numer.

void calcErrs(HMdcTrackParam& par)

void calcTimeOffsetsErr(HMdcTrackParam& par)
 Calculation of time offset error

void printTimes(Int_t iflag, HMdcTrackParam& par)

Double_t getSumOfWeights(void)

Double_t setTukeyWeightsAndCalcSigma2(Double_t sigma2)

void setTukeyWeights(Double_t sigma2)

Bool_t filterOfHits(HMdcTrackParam& par, Int_t iflag)
 Filtering of bad hits using Tukey weights
 return kTRUE new weights was calculated
 seychas eto ne tak!!!
? Kak chasto nado fil'trovat' ?????

Bool_t testTukeyWeights(HMdcTrackParam& par)

Bool_t filterOfHitsV2(HMdcTrackParam& par, Int_t iflag)
 Filtering of bad hits using Tukey weights
 return kTRUE new weights was calculated
 seychas eto ne tak!!!
? Kak chasto nado fil'trovat' ?????

void filterOfHitsConstSig(HMdcTrackParam& par, Double_t sig)
 Filtering of bad hits using Tukey weights
 return kTRUE new weights was calculated

void setWeightsTo1or0(HMdcTrackParam& par, Int_t iflag)

void setUnitWeights(void)
 Setting all weights to 1.

void setSizeGrad2Matr(HMdcTrackParam& par)
 Seting of sizes of gradient matrix.

void calcDerivatives(HMdcTrackParam& par,Int_t iflag)
 Numerical calculation of the fit parameters derivatives
 iflag<2 - calculate the diagonal elements of the grad2 matrix only
 else    - calculate the full grad2 matrix

void calcAnalyticDerivatives1(HMdcTrackParam& par)
 Analytical calculation of the fit parameters derivatives
 for the first min.method:
 calculate the first der. and the diagonal elements of the grad2 matrix

Double_t calcAGradAnalyt(HMdcTrackParam& par)

void calcAnalyticDerivatives2(HMdcTrackParam& par)
 Analytical calculation of the fit parameters derivatives for the second min.method
 calculate the first der. and all elements of the grad2 matrix

void calcSecondDeriv(HMdcTrackParam& par)
 For errors calculation

void setInitWeghts(HMdcTrackParam& par)



Inline Functions


                         void setPrintFlag(Bool_t flag = kTRUE)
                         void setXYZClust(Float_t x, Float_t y, Float_t z)
                HMdcWireData* getWiresArray()
                HMdcWireData* getWireData(Int_t n)
                HMdcWireData& operator[](Int_t n)
                        Int_t getSector() const
                        Int_t getSegment() const
                        Int_t getNDriftTimes() const
                        Int_t getFirstTimeInd() const
                        Int_t getLastTimeInd() const
                        Int_t getNumOfGoodWires()
                        Int_t getNModulesInFit()
                HMdcWireData* getFirstWire()
                HMdcWireData* getLastWire()
                    HMdcClus* getClust1()
                    HMdcClus* getClust2()
        HMdcList24GroupCells& getOutputListCells()
        HMdcList24GroupCells& getInputListCells()
                         void setTrackFitInOut(HMdcTrackFitInOut* pfio)
                    TMatrixD& getGrad2Matr()
                    TMatrixD& getMatrH()
                    Double_t* getGrad()
                     Double_t getAGrad()
                      Float_t getXClst()
                      Float_t getYClst()
                      Float_t getZClst()
                      TClass* Class()
                      TClass* IsA() const
                         void ShowMembers(TMemberInspector& insp, char* parent)
                         void Streamer(TBuffer& b)
                         void StreamerNVirtual(TBuffer& b)
                 HMdcWiresArr HMdcWiresArr(const HMdcWiresArr&)
                HMdcWiresArr& operator=(const HMdcWiresArr&)


Last update: Fri Jan 26 12:19:14 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.