SiPM basded cosmic ray detector data acquisition system.
Dependencies: DNSResolver EthernetNetIf FatFileSystem SDFileSystem mbed
SiPM.cpp
- Committer:
- NickRyder
- Date:
- 2013-01-21
- Revision:
- 0:a8cee0e1d6d9
File content as of revision 0:a8cee0e1d6d9:
#include "SiPM.h" SiPM::SiPM(PinName pin, PinName led) : n(0), ncoincidence(0), ntrig(0), time(), checkcoincidence(false), running(false), interval(20), deadtime(50), other(NULL), iin(pin), ledpin(led) { iin.rise(this, &SiPM::trigger); ledpin = 1; } void SiPM::addother(SiPM * sipm) { other = sipm; checkcoincidence = true; } void SiPM::setinterval_us(int t) { interval = t; } void SiPM::setdeadtime_us(int t) { deadtime = t; } void SiPM::trigger() { ntrig++; if (running) { ledpin = !ledpin; if (time.read_us() > deadtime) { n++; time.reset(); if (checkcoincidence) { if (other->time.read_us() < interval) { ncoincidence++; } } } } } void SiPM::reset() { n = 0; ncoincidence = 0; ntrig = 0; start(); } void SiPM::start() { running = true; time.start(); printf("# Starting SiPM.\n"); } void SiPM::stop() { running = false; printf("#Stopping SiPM.\n"); }