Mixed Data Coincidence Analysis Software 1.0
A program to analyze files produced by the EventMixer software.
CoincidenceFinder.hh
Go to the documentation of this file.
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
 All Classes Files Functions Variables Defines

Back to the main page of the Precalibrated Ion Beam Identification Detector project

Created by Rikard Lundmark