![]() |
Mixed Data Coincidence Analysis Software 1.0
A program to analyze files produced by the EventMixer software.
|
00001 #include <stdlib.h> 00002 #include <stdio.h> 00003 #include <vector> 00004 #include <list> 00005 #include <utility> 00006 #include <string> 00007 00008 #include "GammaEnergyChart.hh" 00009 #include "FileEventParser.hh" 00010 #include "EventHit.hh" 00011 using namespace std; 00012 00023 #ifndef COINCIDENCE_FINDER_HH 00024 #define COINCIDENCE_FINDER_HH //!<Inclusion guard 00025 class CoincidenceFinder 00026 { 00027 public: 00028 CoincidenceFinder(FileEventParser * fParser 00029 ,double maxWait 00030 , int nTubes = 40 00031 , float detEps = 1E-2 00032 , float minGe = 1E-2 00033 , float maxGe = 1E20 00034 , unsigned int multiImplant = 1 00035 , float decayCut = 1E20 00036 ); 00037 00038 ~CoincidenceFinder(); 00039 00040 pair<EventHit*, EventHit*> getNextCoincidence(); 00041 00042 bool hasMoreCoincidences(); 00043 00044 int getFailureReason(int reason ); 00045 00046 int getNoHits(); 00047 00048 int getNoImplantations(); 00049 00050 int getNoDecays(); 00051 00052 int getNoOther(); 00053 00054 int getNoCorrectImplantations(); 00055 00056 int getNoDoubleHit(); 00057 00058 int getNoGeHit(); 00059 00060 int getNoNonAssociatedDecays(); 00061 00062 int getNoCorrConnected(); 00063 00064 int getNoErrConnected(); 00065 00066 int getNoDestroyedByOther(); 00067 00068 int getNoCorrCoincidence(); 00069 00070 int getNoFoundCoincidences(); 00071 00072 double getTimeSpan(); 00073 00074 vector<int> getDetectorCount(); 00075 00076 private: 00077 int noHits; 00078 00079 int failureReasons[8]; 00080 00081 int noImplantations; 00082 int noDecays; 00083 int noOther; 00084 00085 int noCorrectImplantations; 00086 int noDoubleHit; 00087 00088 int noGeHit; 00089 int noNonAssociatedDecays; 00090 int noCorrConnected; 00091 int noErrConnected; 00092 int noCorrCoincidence; 00093 00094 int noDestroyedByOther; 00095 int noFoundCoincidences; 00096 00097 double timeSpan; 00098 00099 unsigned int multipleImplant; 00100 00101 float decayCutTime; 00102 00103 00104 bool myMoreCoincidences; 00105 00106 vector<pair<list< EventHit*>, double> > myScintillatorTubes; //Contains the EventHits and the time a scintillator tube becomes availible for implantation again. 00107 00108 FileEventParser * myParser; 00109 00110 void FindNextCoincidence(); 00111 00112 list<pair<EventHit*, EventHit*> > nextCoincidence; 00113 00114 void DoImplantation(EventHit * myHit 00115 ); 00116 int DoDecay(EventHit * myHit 00117 ); 00118 void DoOther(EventHit * myHit 00119 ); 00120 00121 double maxDecayWait; 00122 int numberOfTubes; 00123 float detectorEpsilon; 00124 float minGeEnergy; 00125 float maxGeEnergy; 00126 vector<int> detectorCount; 00127 }; 00128 00129 #endif