1#include "RawDataProviderSvc/TofData.h"
2#include "Identifier/Identifier.h"
3#include "Identifier/TofID.h"
4#include "RawEvent/RawDataUtil.h"
5#include "TofQCorrSvc/ITofQCorrSvc.h"
6#include "TofQElecSvc/ITofQElecSvc.h"
27 m_times = source.m_times;
28 m_number = source.m_number;
30 m_used = source.m_used;
35 m_times = m_times + 1;
40 m_times = m_times - 1;
46 if (
value == 0x7fffffff )
52 else if (
value == -999 )
75 if (
value == 0x7fffffff )
82 else if (
value == -999 )
101 std::cout <<
"Event/RawDataProviderSvc:: ERROR! ETF(MRPC) data is "
102 "treated as scintillator data !"
107 if ( (
value & 0x80000 ) != 0 )
121 if ( layer == 1 ) { tofid = tofid + 88; }
123 else if ( barrel == 2 ) { tofid = tofid + 48; }
146 else {
m_value = m_qtc * 1.0; }
244 m_iden_value = source.m_iden_value;
245 m_times = source.m_times;
246 m_quality = source.m_quality;
247 m_adc = source.m_adc;
248 m_tdc = source.m_tdc;
254 if ( m_adc ) { channel = m_adc->channel(); }
259 double value = -999.0;
260 if ( m_adc ) { value = m_adc->qtc(); }
263 if ( m_tdc ) { value = 10000.0; }
269 double value = -999.0;
277 double tleading = m_tdc->value();
278 if ( tleading > 0.0 )
280 int qchannel = m_adc->channel();
281 if ( qchannel != 10000 && qchannel != -999 )
283 double ttrailing = m_adc->qtc();
284 value = ttrailing - tleading;
289 else { value = m_adc->value(); }
293 if ( m_tdc ) { value = 10000.0; }
300 if ( m_adc ) { clock = m_adc->clock(); }
306 if ( m_tdc ) { channel = m_tdc->channel(); }
311 double value = -999.;
312 if ( m_tdc ) { value = m_tdc->value(); }
318 if ( m_tdc ) { clock = m_tdc->clock(); }
323 m_times = m_times + 1;
328 m_times = m_times - 1;
333 if ( m_adc ) { m_adc->timespp(); }
338 if ( m_adc ) { m_adc->timesmm(); }
343 if ( m_tdc ) { m_tdc->timespp(); }
348 if ( m_tdc ) { m_tdc->timesmm(); }
354 if ( m_adc ) {
times = m_adc->times(); }
360 if ( m_tdc ) {
times = m_tdc->times(); }
366 if ( m_adc ) { number = m_adc->number(); }
372 if ( m_tdc ) { number = m_tdc->number(); }
378 if ( m_adc ) {
used = m_adc->used(); }
384 if ( m_tdc ) {
used = m_tdc->used(); }
390 if ( m_adc ) {
used = (
used || m_adc->used() ); }
391 if ( m_tdc ) {
used = (
used || m_tdc->used() ); }
397 if (
adc->channel() != -999 )
399 if ( m_adc->times() == -1 ) { m_adc->timespp(); }
400 m_quality = ( m_quality | 0x2 );
407 if (
tdc->channel() != -999 )
409 if ( m_tdc->times() == -1 ) { m_tdc->timespp(); }
410 m_quality = ( m_quality | 0x1 );
416 if ( m_adc ) { m_adc->setUsed(
true ); }
417 if ( m_tdc ) { m_tdc->setUsed(
true ); }
424 if ( m_adc->times() <= 1 )
429 else { m_adc->timesmm(); }
433 if ( m_tdc->times() <= 1 )
438 else { m_tdc->timesmm(); }
463 m_identify = source.m_identify;
464 m_mrpc = source.m_mrpc;
465 m_barrel = source.m_barrel;
466 m_tofId = source.m_tofId;
467 m_layer = source.m_layer;
468 m_strip = source.m_strip;
469 m_tofTrackId = source.m_tofTrackId;
470 m_misLable = source.m_misLable;
471 m_quality = source.m_quality;
472 m_tmatched = source.m_tmatched;
473 m_forward = source.m_forward;
474 m_backward = source.m_backward;
475 m_ztdc = source.m_ztdc;
476 m_zadc = source.m_zadc;
477 m_zpos = source.m_zpos;
478 m_energy = source.m_energy;
502 if ( barrel_ec == 0 ) { m_barrel =
false; }
503 else if ( barrel_ec == 1 )
506 if ( m_layer == 1 ) { m_tofId = m_tofId + 88; }
508 else if ( barrel_ec == 2 )
511 m_tofId = m_tofId + 48;
519 if ( endcap == 1 ) { m_tofId = m_tofId + 36; }
526void TofData::data(
double& adcEast,
double& tdcEast,
double& adcWest,
double& tdcWest ) {
531 adcEast = m_forward->adc();
532 tdcEast = m_forward->tdc();
538 adcWest = m_backward->adc();
539 tdcWest = m_backward->tdc();
549 adc = m_forward->adc();
550 tdc = m_forward->tdc();
556 double value = -999.;
557 if ( m_forward ) { value = m_forward->adc(); }
562 double value = -999.;
563 if ( m_forward ) { value = m_forward->tdc(); }
568 double value = -999.;
569 if ( m_backward ) { value = m_backward->adc(); }
574 double value = -999.;
575 if ( m_backward ) { value = m_backward->tdc(); }
580 double value = -999.;
581 if ( m_forward ) { value = m_forward->adc(); }
586 double value = -999.;
587 if ( m_forward ) { value = m_forward->tdc(); }
592 double value = -999.;
593 if ( m_forward ) { value = m_forward->qtc(); }
598 double value = -999.;
599 if ( m_backward ) { value = m_backward->qtc(); }
604 double value = -999.;
605 if ( m_forward ) { value = m_forward->qtc(); }
611 if ( m_forward ) { channel = m_forward->adcChannel(); }
617 if ( m_forward ) { channel = m_forward->tdcChannel(); }
623 if ( m_backward ) { channel = m_backward->adcChannel(); }
629 if ( m_backward ) { channel = m_backward->tdcChannel(); }
635 if ( m_forward ) { channel = m_forward->adcChannel(); }
641 if ( m_forward ) { channel = m_forward->tdcChannel(); }
647 if ( m_forward ) { clock = m_forward->qclock(); }
653 if ( m_forward ) { clock = m_forward->tclock(); }
659 if ( m_backward ) { clock = m_backward->qclock(); }
665 if ( m_backward ) { clock = m_backward->tclock(); }
671 if ( m_forward ) { clock = m_forward->qclock(); }
677 if ( m_forward ) { clock = m_forward->tclock(); }
683 if ( m_forward ) {
times = m_forward->qtimes(); }
689 if ( m_forward ) {
times = m_forward->ttimes(); }
695 if ( m_backward ) {
times = m_backward->qtimes(); }
701 if ( m_backward ) {
times = m_backward->ttimes(); }
707 if ( m_forward ) {
times = m_forward->times(); }
713 if ( m_backward ) {
times = m_backward->times(); }
719 if ( m_forward ) { number = m_forward->qnumber(); }
725 if ( m_forward ) { number = m_forward->tnumber(); }
731 if ( m_backward ) { number = m_backward->qnumber(); }
737 if ( m_backward ) { number = m_backward->tnumber(); }
743 if ( m_forward ) {
used = (
used || m_forward->qused() ); }
749 if ( m_forward ) {
used = (
used || m_forward->tused() ); }
755 if ( m_backward ) {
used = (
used || m_backward->qused() ); }
761 if ( m_backward ) {
used = (
used || m_backward->tused() ); }
767 if ( m_forward ) {
used = (
used || m_forward->used() ); }
773 if ( m_backward ) {
used = (
used || m_backward->used() ); }
779 if ( m_forward ) {
used = (
used || m_forward->used() ); }
780 if ( m_backward ) {
used = (
used || m_backward->used() ); }
786 unsigned int quality = m_forward->quality();
790 m_forward->timespp();
791 if ( (
quality & 0x1 ) != 0 ) { m_forward->ttimespp(); }
792 if ( (
quality & 0x2 ) != 0 ) { m_forward->qtimespp(); }
794 m_quality = ( m_quality | (
quality << 2 ) );
800 unsigned int quality = m_backward->quality();
804 m_backward->timespp();
805 if ( (
quality & 0x1 ) != 0 ) { m_backward->ttimespp(); }
806 if ( (
quality & 0x2 ) != 0 ) { m_backward->qtimespp(); }
808 m_quality = ( m_quality |
quality );
813 if ( m_forward ) { m_forward->setUsed(); }
814 if ( m_backward ) { m_backward->setUsed(); }
821 if ( m_forward->times() <= 1 )
826 else { m_forward->timesmm(); }
830 if ( m_backward->times() <= 1 )
835 else { m_backward->timesmm(); }
ITofQElecSvc * tofQElecSvc
ITofQCorrSvc * tofQCorrSvc
void setValue(Identifier identify, int value)
unsigned int times() const
PmtData & operator=(const PmtData &source)
static double TofTime(unsigned int timeChannel)
unsigned int quality() const
void data(double &adcEast, double &tdcEast, double &adcWest, double &tdcWest)
void setForward(PmtData *pmt)
unsigned int times() const
TofData & operator=(const TofData &source)
unsigned int identify() const
void setBackward(PmtData *pmt)
void setIdentify(Identifier identify)
static int endcap(const Identifier &id)
static int strip(const Identifier &id)
static Identifier cell_id(int barrel_ec, int layer, int phi_module, int end)
For a single crystal.
static bool is_scin(const Identifier &id)
static int end(const Identifier &id)
static bool is_mrpc(const Identifier &id)
static int phi_module(const Identifier &id)
static int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0).
static int layer(const Identifier &id)
static int module(const Identifier &id)
TofValue & operator=(const TofValue &source)