// $Id: hrichchernovringfitter.h,v 1.6 2009-07-15 11:39:21 halo Exp $
// Last update by Thomas Eberl: 03/04/02 16:56:23
//
#ifndef HRICHCHERNOVRINGFITTER_H
#define HRICHCHERNOVRINGFITTER_H

#include "hreconstructor.h"
#include "hlocation.h"
#include "hparset.h"
#include "TArrayD.h"

class HCategory;
class HIterator;
class HRichHit;
class HRichHitFit;
class HRichChernovRingFitter : public HReconstructor {
public:

	HRichChernovRingFitter(){};
        HRichChernovRingFitter(const Text_t *name,const Text_t *title,Bool_t);
	~HRichChernovRingFitter();

        Bool_t init();
        Bool_t finalize();
        Int_t execute();
        
        HCategory* getCalCat(){return pCalCat;};
        HCategory* getHitCat(){return pHitCat;};
        HCategory* getHitFitCat(){return pHitFitCat;};
        HCategory* getPhotonHitCat(){return pPhotonHitCat;};
        HCategory* getPhotonHitHeaderCat(){return pPhotonHitHeaderCat;};
        void setFitRadius(Double_t rad){ dFittedRadius=rad;};
        void setFitCenterX(Double_t centx){ dFittedCenterX=centx;};
        void setFitCenterY(Double_t centy){ dFittedCenterY=centy;};
        void setFitVar(Double_t var){ dFitVariance=var;};
        void setFitCenterTheta(Double_t centtheta){ dFittedCenterTheta=centtheta;};
        void setFitCenterPhi(Double_t centphi){ dFittedCenterPhi=centphi;};
        Double_t getFitRadius(){return dFittedRadius;};
        Double_t getFitCenterX(){return dFittedCenterX;};
        Double_t getFitCenterY(){return dFittedCenterY;};
        Double_t getFitVar(){return dFitVariance;};
        Double_t getFitCenterTheta(){return dFittedCenterTheta;};
        Double_t getFitCenterPhi(){return dFittedCenterPhi;};
        HParSet* getGeometryPar(){return pGeomPar;};
        void     setGeometryPar(HParSet* pPar){ pGeomPar = pPar;};
    //Bool_t fit();
        Bool_t fit(TArrayD&,TArrayD&);
        Bool_t fitFoundPhotons(){return kTRUE;};
        Bool_t fitFiredPads();
        Bool_t fitFiredPads2();
        void clearFitParams();
        void unvalidFitParams();
        void switchXtoPhi();
        Double_t* compress(Double_t*,Int_t);
        void dumpFitParameters(Int_t,Int_t,Int_t,Float_t);
        void calcThetaAndPhi(HRichHit*);
        void storeFitinHRichHitFit(Int_t,Int_t,Int_t);
        ClassDef(HRichChernovRingFitter,2) //ROOT extension

private:
        HIterator* pIterCal; //!
        HIterator* pIterHit; //!
        HIterator* pIterPhotonHit; //!
        HIterator* pIterPhotonHitHeader; //!
        HCategory* pCalCat; //!
        HCategory* pHitCat; //!
        HCategory* pHitFitCat; //!
        HCategory* pPhotonHitCat; //!
        HCategory* pPhotonHitHeaderCat; //!
        HParSet* pGeomPar; //Pointer to geometry parameter container
        Bool_t kPhotonFinder; // kTRUE=fit found photon hit coords
                              // kFALSE=fit pad coords in pad units
    // Fit parameters
        Double_t dFittedRadius;
        Double_t dFittedCenterX;
        Double_t dFittedCenterY;
        Double_t dFitVariance;
        Double_t dFittedCenterTheta;
        Double_t dFittedCenterPhi;
        Int_t mRC; // error flag
    // FIXME: input parameters to algo should come from RTDB
        Int_t fs; // size of square around hit center from recognition
        Int_t arraysize;
    // HELPERS
        Int_t evtcounter;
        
};

#endif // HRICHCHERNOVRINGFITTER_H

Last change: Sat May 22 13:08:18 2010
Last generated: 2010-05-22 13:08

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.