BOSS 7.1.2
BESIII Offline Software System
Loading...
Searching...
No Matches
MdcxFittedHel.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: MdcxFittedHel.h,v 1.5 2010/09/26 00:31:13 zhangy Exp $
4//
5// Description:
6// Class Header for |MdcxFittedHel| - helix fitting class
7//
8// Environment:
9// Software developed for the BaBar Detector at the SLAC B-Factory.
10//
11// Author List:
12// S. Wagner
13//
14// Copyright Information:
15// Copyright (C) 1995 BEPCII
16//
17// History:
18// Migration for BESIII MDC
19//
20//------------------------------------------------------------------------
21#ifndef _MDCXFITTEDHEL_
22#define _MDCXFITTEDHEL_
23
24//MdcxHel & MdcxFittedHel classes ...
25#include <iostream>
26#include <fstream>
27#include "MdcxReco/MdcxHel.h"
28#include "CLHEP/Alist/AList.h"
29
30class MdcxHit;
31
32//MdcxFittedHel follows: (fitted helix class)
34 public:
35 //constructors
37
38 //hits+initial guess constructor
40
41 //destructor
42 virtual ~MdcxFittedHel( );
43
44 //accessors
45 inline float Chisq()const{return chisq;}
46 inline float Rcs()const{return rcs;}
47 inline float Prob()const{return prob;}
48 inline float Fittime()const{return fittime;}
49 inline int Nhits()const {return nhits;}
50 inline int Itofit()const {return itofit;}
51 inline int Quality()const {return quality;}
52 inline int Origin()const {return origin;}
53 inline double Sfac()const {return sfac;}
54 inline void SetQuality(const int &q) {quality=q;}
55 inline void SetUsedOnHel(const int &i) {usedonhel=i;}
56 inline int GetUsedOnHel()const {return usedonhel;}
57 int SuperLayer(int hitno=0)const; // return superlayer of |hitno
58 int Layer(int hitno=0)const; // return layer number of |hitno|
59 inline const HepAList<MdcxHit> &XHitList() const { return xHitList; }
60
61 //workers
62 float Residual(int i);
63 float Pull(int i);
64 int Fail(float Probmin=0.0)const;
65 int ReFit();
66 int FitPrint();
67 int FitPrint(MdcxHel &hel, std::ostream &o);
68 void VaryRes();
69
70 //operators
71 MdcxFittedHel& operator=(const MdcxHel&);// copy helix to fitted helix
72 MdcxFittedHel& operator=(const MdcxFittedHel&); // copy fitted helix to fitted helix
74
75 //workers
76
77 protected:
78
79 //data
80 int fail; //fit failure codes
81 float chisq; //chisq of hit
82 float rcs; //chisq per dof
83 float prob; //chisq prob of hit
84 float fittime; //fit time in clock time (machine dep)
85 int nhits; //number of hits
86 int itofit; //number of iterations to convergence
87 int quality; // bigger quality=>great purity
88 int origin; // origin "hit", -1 if none
89 HepAList<MdcxHit> xHitList; // list-of-hits making this |MdcxFittedHel|
90 double sfac; // error scale factor for fit
92
93 //functions
94 //fitting routine
95 int DoFit();
96 int IterateFit();
97
98 private:
99
100 //data
101
102 //control
103 void basics();
104 void basics(const HepAList<MdcxHit> &);
105
106 //check for included origin, if there move to end of |xHitList|
107 //-1=>no origin; >=0 is hit number of origin
108 int OriginIncluded(); // origin included
109
110 //static control parameters
111 int bailout; // bailout if chisq/ndof too big?
112 float chidofbail; // bailout cutoff
113 int niter; // max number of iterations
114 //static control sets
115 public:
116 static int debug;
117 inline void SetBailOut(int i) {bailout=i;}
118 inline void SetChiDofBail(float r) {chidofbail=r;}
119 inline void SetNiter(int i) {niter=i;}
120
121};// endof MdcxFittedHel
122
123#endif
124
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
void SetQuality(const int &q)
int Quality() const
int Origin() const
void SetNiter(int i)
int Layer(int hitno=0) const
int Nhits() const
HepAList< MdcxHit > xHitList
int Itofit() const
float Rcs() const
void SetUsedOnHel(const int &i)
float Residual(int i)
float Prob() const
const HepAList< MdcxHit > & XHitList() const
int FitPrint(MdcxHel &hel, std::ostream &o)
float Fittime() const
int GetUsedOnHel() const
int SuperLayer(int hitno=0) const
static int debug
float Chisq() const
MdcxFittedHel & operator=(const MdcxHel &)
void SetBailOut(int i)
double Sfac() const
int Fail(float Probmin=0.0) const
float Pull(int i)
void SetChiDofBail(float r)
MdcxFittedHel & Grow(const MdcxFittedHel &, const HepAList< MdcxHit > &)
virtual ~MdcxFittedHel()