00001 #ifndef FTFPARA 00002 #define FTFPARA 00003 #include <stdio.h> 00004 //:>------------------------------------------------------------------ 00005 //: FILE: FtfPara.h 00006 //: HISTORY: 00007 //: 28oct1996 version 1.00 00008 //: 7dec1998 ppy variable names changed to C++ style 00009 //: 3jun1999 ppy add fillTracks flag 00010 //: 11aug1999 ppy add vertexConstrainedFit variable 00011 //: 23aug1999 ppy add ROOT option 00012 //: 19nov1999 ppy add maxChi2Primary to decide whether track is primary 00013 //: 11feb2000 ppy add maxTime 00014 //: 28mar2000 ppy add parameterLocation variable 00015 //: 30mar2000 ppy add parameters to merge secondaries 00016 //: 8aug2000 ppy add zMax 00017 //: 00018 //:<------------------------------------------------------------------ 00019 //:>------------------------------------------------------------------ 00020 //: CLASS: FtfPara 00021 //: AUTHOR: ppy - Pablo Yepes, yepes@physics.rice.edu 00022 //:>------------------------------------------------------------------ 00023 00024 class FtfPara { 00025 public: 00026 FtfPara ( ) { setDefaults() ; } ; 00027 void setDefaults ( ) ; 00028 void read ( char* inputFile ) ; 00029 void write ( char* outputFile ) ; 00030 void write ( FILE* outFile ) ; 00031 00032 int infoLevel; // Level of information printed about progress 00033 int segmentRowSearchRange; // Row search range for segments 00034 int trackRowSearchRange; // Row search range for tracks 00035 int dEdx ; // dEdx switch 00036 int dEdxNTruncate ; // # points to truncate in dEdx 00037 int minHitsForDedx; // cs: min number of hits for dEdx calculation 00038 int eventReset ; // Flag to reset event in fft 00039 int getErrors ; // Flag to switch error calculation 00040 int fillTracks ; // Flag to switch FtfTrack class filling 00041 int ghostFlag ; // =1 when there are ghost hits 00042 int goBackwards ; // Flag to go backwards at the end of track reco 00043 int init; // Control initialization 00044 int mergePrimaries ; // Switch to control primary merging 00045 int minHitsPerTrack; // Minimum # hits per track 00046 int modRow; // Modulo pad row number to use 00047 int nHitsForSegment; // # hits in initial segments 00048 int minHitsForFit; 00049 int nEta; // # volumes in eta 00050 int nEtaTrack; // # Track areas in eta 00051 int nPhi; // # volumes in nphi 00052 int nPhiTrack; // # Track areas in nphi 00053 int nPrimaryPasses; // # iterations looking for primaries 00054 int nSecondaryPasses;// # iterations looking for secondaries 00055 int vertexConstrainedFit; // 00056 int parameterLocation; // 1=inner most point, 0=closest approach 00057 float maxChi2Primary ; // maximum chi2 to be considered primary 00058 int rowInnerMost; // Row where end track search 00059 int rowOuterMost; // Outer most row to consider tin tracking 00060 int rowStart; // Row where start track search 00061 int rowEnd ; // Row where end track search 00062 int szFitFlag; // Switch for sz fit 00063 float bField ; // Magnetic field (magnitude = >0) 00064 int bFieldPolarity; // polarity of field (1 or -1) 00065 float hitChi2Cut; // Maximum hit chi2 00066 float goodHitChi2; // Chi2 to stop looking for next hit 00067 float trackChi2Cut; // Maximum track chi2 00068 float deta; // Eta search range 00069 float dphi; // Phi search range 00070 float detaMerge ; // Eta difference for track merge 00071 float dphiMerge ; // Phi difference for track merge 00072 float distanceMerge ; // Maximum distance for reference point to merge secondaries 00073 float etaMin; // Min eta to consider 00074 float etaMinTrack ; // Track min eta to consider 00075 float etaMax; // Max eta to consider 00076 float etaMaxTrack ; // Track max eta to consider 00077 float goodDistance ; // In segment building 00078 // distance consider good enough 00079 float phiMin; // Min phi to consider 00080 float phiMinTrack ; // Track min phi to consider 00081 float phiMax; // Max phi to consider 00082 float phiMaxTrack ; // Track max phi to consider 00083 float phiShift ; // Shift in phi when calculating phi 00084 float ptMinHelixFit ; // Minimum pt to apply helix fit 00085 float maxDistanceSegment; // Maximum distance for segments 00086 float segmentMaxAngle; // Maximum angle between to consecutive track pieces 00087 // when forming segments. A piece is the connection 00088 // two hits 00089 float szErrorScale; // sz error scale 00090 float xyErrorScale; // xy error scale 00091 float xVertex ; // x position primary vertex 00092 float yVertex ; // y position primary vertex 00093 float dxVertex ; 00094 float dyVertex ; 00095 float zVertex ; 00096 float xyWeightVertex; // Weight vertex in x-y 00097 float phiVertex ; 00098 float rVertex ; 00099 float maxTime ; // maxTime tracker can run 00100 int phiClosed ; 00101 int primaries ; 00102 int nRowsPlusOne, nPhiPlusOne ; // Number volumes + 1 00103 int nEtaPlusOne, nPhiEtaPlusOne ; // Number volumes + 1 00104 int nPhiTrackPlusOne, nEtaTrackPlusOne ; 00105 float phiSlice, etaSlice ; 00106 float phiSliceTrack, etaSliceTrack ; 00107 float zMax ; 00108 #ifdef TRDEBUG 00109 int trackDebug ; 00110 int hitDebug ; 00111 int debugLevel ; 00112 #endif 00113 } ; 00114 #endif 00115
1.5.9