# ifndef HMDCGEOMPARF_H
# define HMDCGEOMPARF_H
# include "hmdcgeompar.h"
# include "hcategory.h"
# include "hiterator.h"
# include "hreconstructor.h"
# include "hgeomrotation.h"
# include "hgeomvector.h"
# include "hgeomvertexfit.h"
# include "TH1.h"
# include "TH2.h"
# include "TH3.h"
# include "TTree.h"
# include "TMinuit.h"
# include "TFile.h"
# include "TString.h"
# include "hlocation.h"
# include "hmdchit.h"
class TFile;
void fcnGP(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag);
class HMdcGeomParF : public HReconstructor {
protected:
HMdcGeomPar* fMdcGeomPar;
TString fNameAscii;
TString fNameRoot;
HCategory* fHitCat;
HIterator* fIter1;
TClonesArray* fHits;
TTree* fTree;
HLocation fLoc;
TFile *fOutFile;
HGeomRotation* fRotMat;
HGeomVector* fTransResult;
HGeomVector* fTranslation;
HGeomVector* fEulerResult;
HGeomVector* fEuler;
Double_t* fError;
HGeomRotation fRotLab;
HGeomVector fTransLab;
HGeomVector fEulerLab;
Double_t fErrorLab[6];
Float_t fZLoCut;
Float_t fZHiCut;
Int_t fNumMods;
Int_t fHistNum;
Int_t fFix;
Int_t fNEntries;
Int_t fCount;
Int_t fMin;
Bool_t fManual;
Bool_t fHistoOff;
Bool_t fUseCut;
Bool_t fUseInitValue;
Bool_t fUseAngleCut;
Bool_t fUseYPosCut;
Bool_t fUseUnitErrors;
Bool_t fTFFor2Mods;
Float_t fAngleCut;
Float_t fYPosCut;
Float_t fIterCriteria;
Float_t fConstTukey;
Float_t fStepTukey;
Float_t fResultTukey;
Float_t fEndTukey;
HGeomVector fInitValue;
public:
TH2F** fPlanex;
TH2F** fPlaney;
TH2F** fPlanez;
TH1F** fTarTuk;
TH1F** fTarTukW;
TH3F** fDisCTuk;
TH1F** fTargets;
TH1F** fTarMDC;
TH1F** fTarCut;
TH1F** fTarMDCCut;
TH2F** fZVsTheta;
TH2F** fZVsRho;
TH1F** fDisZ;
TH1F** fDisCenter;
TH1F** fProzY;
TH1F** fProzX;
TH1F** fProyZ;
TH1F** fProyX;
TH1F** fProxZ;
TH1F** fProxY;
Float_t* fSteps;
Float_t* fLimits;
public:
HMdcGeomParF(void);
HMdcGeomParF(Int_t sector, Int_t modA, Int_t modB);
HMdcGeomParF(const Text_t* name,const Text_t* title, Int_t sector,
Int_t modA, Int_t modB,Int_t modC=-1, Int_t modD=-1);
HMdcGeomParF(const Text_t* name,const Text_t* title, Int_t sector, Int_t modA);
~HMdcGeomParF(void);
Bool_t init(void);
Bool_t reinit(void);
Bool_t initDelayed(void);
Bool_t finalize(void);
Int_t execute(void);
void execute1(void);
void execute0(void);
void initDefaults(void);
void initMinimization(void);
void setParContainers(void);
void setGeomAuxPar(void);
HGeomVector findEulerAngles(HGeomRotation rot);
void setHistograms(void);
void setRelParams(HGeomVector*& ang,HGeomVector*& tra);
void setGeomParManOn(void);
void setControlHistoOff(void);
void setMinimization(Int_t select=1);
void setUnitErrors(void);
void setFix(Int_t fix);
void setNoCut(void);
void setAngleCut(Float_t aCut);
void setYPosCut(Float_t aYCut);
void setTukeyConstant(Float_t cte,Float_t step=1, Float_t res=1, Float_t end=0.4);
void setInitValue(Float_t x, Float_t y, Float_t z);
void setTargetFinderFor2Mods(void);
void fillRotMatrix(Int_t i,Float_t prim,Float_t segu, Float_t terc);
void fillTranslation(Int_t i,Float_t x,Float_t y, Float_t z);
void fillRotLab(Float_t prim,Float_t segu, Float_t terc);
void fillTransLab(Float_t x,Float_t y, Float_t z);
void setEulerAngles(Int_t, Float_t f,Float_t s, Float_t t);
void setEulerLabAngles(Float_t f,Float_t s, Float_t t);
void setSearchLimits(Float_t x, Float_t y);
void setIterCriteria(Float_t cri);
void setSteps(Float_t s0,Float_t s1,Float_t s2,
Float_t s3, Float_t s4, Float_t s5);
void setLimits(Float_t l0,Float_t l1,Float_t l2,
Float_t l3, Float_t l4, Float_t l5);
void minfit(Int_t fix, Float_t fE, Float_t sE,
Float_t tE, Float_t fT, Float_t sT, Float_t tT);
void findZComponent(void);
TTree* getTree(void){return fTree;}
HGeomRotation getRotMatrix(Int_t i){return fRotMat[i];}
HGeomVector getTranslation(Int_t i){return fTranslation[i];}
HGeomRotation getRotLab(void){return fRotLab;}
HGeomVector getTransLab(void){return fTransLab;}
Bool_t targetFinder(ofstream *fout);
void fillHistograms(Int_t index);
void storeInFile(void);
void writeGeomParContainer(void);
void setOutputAscii(TString name);
void setOutputRoot(TString name);
ClassDef(HMdcGeomParF,1)
};
# endif /* !HMDCGEOMPARF_H */
Last change: Sat May 22 13:02:09 2010
Last generated: 2010-05-22 13:02
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.