57 #ifndef StFgtAlignmentMaker_hh
58 #define StFgtAlignmentMaker_hh
66 struct fgtAlignment_st;
75 Int_t InitRun(Int_t runnum);
79 inline void setDataSource(Int_t v) {mDataSource=v;}
88 inline void setWriteTree(
int v=1) {mOutTreeFile=v;}
89 inline void setReadTree(
const char* v=
"alignment.root") {mInTreeFile=v;}
92 inline void setError(Float_t fgt, Float_t vtx, Float_t vtxz, Float_t tpci, Float_t tpco, Float_t tpcz, Float_t ppt, Float_t emc) {
93 mErrFgt=fgt; mErrVtx=vtx; mErrVtxZ=vtxz;mErrTpcI=tpci; mErrTpcO=tpco; mErrTpcZ=tpcz; mErrPpt=ppt; mErrEmc=emc;
96 inline void setFakeKine(Int_t n, Float_t emin, Float_t emax, Float_t etamin, Float_t etamax, Float_t phimin, Float_t phimax, Float_t vsig){
97 mFakeNtrk=n; mFakeEmin=emin; mFakeEmax=emax; mFakeEtamin=etamin; mFakeEtamax=etamax; mFakePhimin=phimin; mFakePhimax=phimax; mFakeVtxSig=vsig;
99 inline void setRunNumber(Int_t v, Int_t s=0, Int_t d=0) {mRunNumber=v; mSeqNumber=s; mDay=d;}
100 inline void setReadParFile(
const char* v=
"alignment.dat") {mReadParFile=v;}
102 void setStep(
int discmask,
int quadmask,
int parmask,
int hitmask_disc,
int residmask,
103 int trackType,
int minHit,
int minFgtHit,
int minVtx,
int minTpcHit,
int minPromptHit,
int minEemcHit,
104 float dzcut=0,
float dcacut=0,
float fgtrcut=0,
float fgtpcut=0,
float tpcrcut=0,
float tpcpcut=0,
float emcrcut=0,
float emcpcut=0);
106 virtual const char *GetCVS()
const {
107 static const char cvs[]=
"Tag $Name: $ $Id: StFgtAlignmentMaker.h,v 1.7 2014/08/06 11:43:10 jeromel Exp $ built " __DATE__
" " __TIME__ ;
113 void readFromStEvent();
114 void readFromStEventGlobal();
115 void readFromStraightTrackMaker();
116 void readFromStraightTrackAndStEvent();
117 void readFromStraightTrackAndMudst();
119 void calcETBalanceFromStEvent();
120 void fillETBalance(
int itrk);
125 void DispFromStraightTrackMaker();
126 void overWriteError();
128 void setPar(TMinuit* m, fgtAlignment_st* algpar,
int discmask,
int quadmask,
int parmask);
129 void getPar(TMinuit* m, fgtAlignment_st* algpar);
130 void setHitMask(
int hitmask_disc);
132 void doAlignment(fgtAlignment_st* input,
133 int discmask,
int quadmask,
int parmask,
int hitmask_disc,
int residmask,
134 int trackType,
int minHit,
int minFgtHit,
int minVtx,
int minTpcHit,
int minPromptHit,
int minEemcHit,
135 fgtAlignment_st* result);
137 void readPar(fgtAlignment_st* algpar);
138 void writePar(fgtAlignment_st* algpar);
146 Float_t mErrFgt,mErrVtx,mErrVtxZ,mErrTpcI,mErrTpcO,mErrTpcZ,mErrPpt,mErrEmc;
148 Float_t mFakeEmin, mFakeEmax, mFakeEtamin, mFakeEtamax, mFakePhimin, mFakePhimax, mFakeVtxSig;
151 const Char_t* mInTreeFile;
152 const Char_t* mReadParFile;
157 static const int mMaxStep=100;
159 int mDiscMask[mMaxStep];
160 int mQuadMask[mMaxStep];
161 int mParMask[mMaxStep];
162 int mHitMask[mMaxStep];
163 int mResidMask[mMaxStep];
164 int mTrackType[mMaxStep];
165 int mMinHit[mMaxStep];
166 int mMinFgtHit[mMaxStep];
167 int mMinVtx[mMaxStep];
168 int mMinTpcHit[mMaxStep];
169 int mMinPromptHit[mMaxStep];
170 int mMinEemcHit[mMaxStep];
171 float mDzCut[mMaxStep];
172 float mDcaCut[mMaxStep];
173 float mFgtRCut[mMaxStep];
174 float mFgtPCut[mMaxStep];
175 float mTpcRCut[mMaxStep];
176 float mTpcPCut[mMaxStep];
177 float mEmcRCut[mMaxStep];
178 float mEmcPCut[mMaxStep];
A typical Analysis Class.