Photons AlexSim::burst(const double tstart, const double tend,const double eFRET) { t=tstart; Photons unsortedPhotons; unsortedPhotons<<Dex(rateDemDex,tend,eFRET+directExcitation); t=tstart; unsortedPhotons<<AemAex(rateAemAex,tend); // background: t=tstart; unsortedPhotons<<Dex(2*rateBackground,tend,0.5); t=tstart; unsortedPhotons<<AemAex(rateBackground,tend); t=tstart; unsortedPhotons<<DemAex(rateBackground,tend); return unsortedPhotons; }
Photons AlexSim::donorOnly(const double tstart, const double tend) { t=tstart; Photons unsortedPhotons; unsortedPhotons<<Dex(rateDemDex,tend,directExcitation); t=tstart; unsortedPhotons<<AemAex(rateBackground,tend); t=tstart; unsortedPhotons<<DemAex(rateBackground,tend); return unsortedPhotons; }
void AlexSim::background(const double meanDurationBackground, const bool minDuration) { double tstart=t; double duration=meanDurationBackground; // double duration=gsl_ran_exponential(r, meanDurationBackground); // if(minDuration) { // while(duration<meanDurationBackground) duration=gsl_ran_exponential(r, meanDurationBackground); // } double tend=tstart+duration; Photons unsortedPhotons; unsortedPhotons<<Dex(2*rateBackground,tend,0.5); t=tstart; unsortedPhotons<<AemAex(rateBackground,tend); t=tstart; unsortedPhotons<<DemAex(rateBackground,tend); unsortedPhotons.sort(); this->photons<<unsortedPhotons; // now sorted :-) }
void IdSegLoad(char * filename) { FILE * f = fopen(filename, "r"); if (!f) Dex("Could not open file %s", filename); }