322 return StatusCode::SUCCESS;
334 if (
sc.isFailure()) {
344 unsigned NtupleVectorIndex = 0;
345 for (
const TBADCRaw* adc : *adcCont) {
346 (*m_adc)[NtupleVectorIndex] = adc->
getADC();
347 (*m_tbDetectorName_TBADCRawCont)[NtupleVectorIndex] = adc-> getDetectorName();
348 (*m_overflow_TBADCRawCont)[NtupleVectorIndex] = adc-> isOverflow();
357 if (
sc.isFailure()) {
368 unsigned NtupleVectorIndex = 0;
369 for (
const TBTDCRaw* tdc : *tdcCont) {
370 (*m_tdc_raw)[NtupleVectorIndex] = tdc->
getTDC();
371 (*m_underThreshold_raw)[NtupleVectorIndex] = tdc-> isUnderThreshold();
372 (*m_tbDetectorName_TBTDCRawCont)[NtupleVectorIndex] = tdc-> getDetectorName();
373 (*m_overflow_TBTDCRawCont)[NtupleVectorIndex] = tdc-> isOverflow();
380 const TBPhase * phase =
nullptr;
382 if (
sc.isFailure()) {
391 (*m_phase)[0] = phase-> getPhase();
392 (*m_phaseind)[0] = phase-> getPhaseind();
393 (*m_dTtoWAC)[0] = phase-> getdTtoWACSigned();
401 if (
sc.isFailure()) {
416 (*m_ev_number)[0] =
EventInfo-> getEventNum();
417 (*m_ev_clock)[0] =
EventInfo-> getEventClock();
418 (*m_ev_type)[0] =
EventInfo-> getEventType();
419 (*m_run_num)[0] =
EventInfo-> getRunNum();
420 (*m_beam_moment)[0] =
EventInfo-> getBeamMomentum();
421 (*m_beam_part)[0] =
EventInfo-> getBeamParticle();
423 (*m_cryoAngle)[0] =
EventInfo-> getCryoAngle();
424 (*m_tableY)[0] =
EventInfo-> getTableY();
433 if (
sc.isFailure()) {
439 m_xPos ->resize(nBPCCont);
440 m_yPos ->resize(nBPCCont);
441 m_xErr ->resize(nBPCCont);
442 m_yErr ->resize(nBPCCont);
454 unsigned NtupleVectorIndex = 0;
455 for (
const TBBPC* bpc : *BPCCont) {
456 (*m_xPos)[NtupleVectorIndex] = bpc-> getXPos();
457 (*m_yPos)[NtupleVectorIndex] = bpc-> getYPos();
458 (*m_xErr)[NtupleVectorIndex] = bpc-> getXErr();
459 (*m_yErr)[NtupleVectorIndex] = bpc-> getYErr();
460 (*m_xPulse)[NtupleVectorIndex] = bpc-> getXPulse();
461 (*m_yPulse)[NtupleVectorIndex] = bpc-> getYPulse();
462 (*m_hitnumber)[NtupleVectorIndex] = bpc-> getHitNbr();
463 (*m_xPosOverflow)[NtupleVectorIndex] = bpc-> isXPosOverflow();
464 (*m_yPosOverflow)[NtupleVectorIndex] = bpc-> isYPosOverflow();
465 (*m_xPulseOverflow)[NtupleVectorIndex] = bpc-> isXPulseOverflow();
466 (*m_yPulseOverflow)[NtupleVectorIndex] = bpc-> isYPulseOverflow();
467 (*m_overflowSetFlag)[NtupleVectorIndex] =
false;
468 (*m_tbDetectorName_TBBPCCont)[NtupleVectorIndex] = bpc-> getDetectorName();
469 (*m_overflow_TBBPCCont)[NtupleVectorIndex] = bpc-> isOverflow();
479 if (
sc.isFailure()) {
486 m_gain->resize(nLArDigits);
491 unsigned NtupleVectorIndex = 0;
493 (*m_channelID)[NtupleVectorIndex] = larDigit->hardwareID().get_identifier32().get_compact() ;
494 (*m_gain)[NtupleVectorIndex] = (
unsigned char)larDigit->gain();
496 unsigned nM_samples = larDigit->nsamples();
497 (*m_nSamples)[NtupleVectorIndex] = nM_samples;
499 m_samples->assign (larDigit->samples().begin(),
500 larDigit->samples().end());
510 if (
sc.isFailure()) {
524 unsigned NtupleVectorIndex = 0;
527 for(;it_TBScintillatorCont!=last_TBScintillatorCont;++it_TBScintillatorCont,NtupleVectorIndex++) {
533 (*m_signal_scint)[NtupleVectorIndex] = scint-> getSignal();
534 (*m_time_signal_scint)[NtupleVectorIndex] = scint-> getTimeSignal();
535 (*m_signal_overflow_scint)[NtupleVectorIndex] = scint-> isSignalOverflow();
536 (*m_time_overflow_scint)[NtupleVectorIndex] = scint-> isTimeOverflow();
537 (*m_tbDetectorName_TBScintillatorCont)[NtupleVectorIndex] = scint-> getDetectorName();
538 (*m_overflow_TBScintillatorCont)[NtupleVectorIndex] = scint-> isOverflow();
548 if (
sc.isFailure()) {
564 unsigned NtupleVectorIndex = 0;
567 for(;it_TailCatcher!=last_TailCatcher;++it_TailCatcher,NtupleVectorIndex++) {
573 (*m_signal_tCatch)[NtupleVectorIndex] = scint-> getSignal();
574 (*m_time_signal_tCatch)[NtupleVectorIndex] = scint-> getTimeSignal();
575 (*m_signal_overflow_tCatch)[NtupleVectorIndex] = scint-> isSignalOverflow();
576 (*m_time_overflow_tCatch)[NtupleVectorIndex] = scint-> isTimeOverflow();
577 (*m_tbDetectorName_TBTailCatcher)[NtupleVectorIndex] = scint-> getDetectorName();
578 (*m_overflow_TBTailCatcher)[NtupleVectorIndex] = scint-> isOverflow();
586 const TBTDC * TDC =
nullptr;
588 if (
sc.isFailure()) {
598 (*m_tdc_TBTDC)[0] = TDC-> tdc();
599 (*m_tdcmin_TBTDC)[0] = TDC-> tdcmin();
600 (*m_scale_TBTDC)[0] = TDC-> scale();
601 (*m_phase_TBTDC)[0] = TDC-> phase();
610 if (
sc.isFailure()) {
629 (*m_hitNumberU)[0] =
Track-> getHitNumberU();
630 (*m_hitNumberV)[0] =
Track-> getHitNumberV();
631 (*m_chi2)[0] =
Track-> getChi2_global();
632 (*m_chi2u)[0] =
Track-> getChi2_u();
633 (*m_chi2v)[0] =
Track-> getChi2_v();
634 (*m_angle)[0] =
Track-> getAngle();
635 (*m_uslope)[0] =
Track-> getUslope();
636 (*m_vslope)[0] =
Track-> getVslope();
637 (*m_uintercept)[0] =
Track-> getUintercept();
638 (*m_vintercept)[0] =
Track-> getVintercept();
639 (*m_cryou)[0] =
Track-> getCryoHitu();
640 (*m_cryov)[0] =
Track-> getCryoHitv();
641 (*m_cryow)[0] =
Track-> getCryoHitw();
642 (*m_residualu) =
Track-> getResidualu();
643 (*m_residualv) =
Track-> getResidualv();
652 if (
sc.isFailure()) {
658 (*m_triggerWord)[0] = TriggerPatternUnit-> getTriggerWord();
660 (*m_triggers) = TriggerPatternUnit-> getTriggers();
669 if (
sc.isFailure()) {
675 m_cPos ->resize(nMWPCCont);
676 m_cErr ->resize(nMWPCCont);
677 m_isX ->resize(nMWPCCont);
683 unsigned NtupleVectorIndex = 0;
686 for(;it_TBMWPCCont!=last_TBMWPCCont;++it_TBMWPCCont,NtupleVectorIndex++) {
687 const TBMWPC * mwpc = (*it_TBMWPCCont);
689 (*m_cPos)[NtupleVectorIndex] = mwpc-> getCPos();
690 (*m_cErr)[NtupleVectorIndex] = mwpc-> getCErr();
691 (*m_isX)[NtupleVectorIndex] = mwpc-> isX();
692 (*m_clusterSize_c)[NtupleVectorIndex] = mwpc-> getClusterSizeC();
693 (*m_tbDetectorName_TBMWPCCont)[NtupleVectorIndex] = mwpc-> getDetectorName();
694 (*m_overflow_TBMWPCCont)[NtupleVectorIndex] = mwpc-> isOverflow();
705 std::vector<unsigned> cPosOverflowNow(nBools);
707 for (
unsigned nBoolNow=0; nBoolNow<nBools; nBoolNow++)
709 cPosOverflowNow[nBoolNow] = 1;
711 (*m_cPosOverflow)[NtupleVectorIndex] = cPosOverflowNow;
712 cPosOverflowNow.clear();
717 return StatusCode::SUCCESS;
815 return StatusCode::SUCCESS;
822 return StatusCode::SUCCESS;
826 std::string retval(
base);
827 for (
unsigned i=0;i<extension.size();i++) {
828 const char& ch=extension[i];
829 if (ch==
'=' || ch==
':' || ch==
'/')
float getTDC(const AFP_SiDigi &digi)
float getADC(const AFP_SiDigi &digi)
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_ERROR(x,...)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
std::vector< signal_type_TBBPCCont > * m_yPos
std::vector< float > * m_time_signal_scint
std::vector< unsigned short > * m_samples
std::vector< signal_type_TBBPCCont > * m_xErr
std::vector< int > * m_ev_number
std::vector< bool > * m_signal_overflow_scint
virtual StatusCode CBNT_finalize()
std::vector< double > * m_cryou
std::string add_name(const char *base, const std::string &extension)
std::vector< double > * m_chi2v
std::string m_containerKey1
std::vector< unsigned char > * m_gain
std::vector< bool > * m_underThreshold_raw
std::vector< signal_type_TBBPCCont > * m_yErr
virtual StatusCode CBNT_execute()
std::vector< unsigned int > * m_adc
std::string m_containerKey12
std::vector< unsigned int > * m_run_num
std::string m_containerKey9
std::vector< double > * m_residualv
std::vector< std::string > * m_tbDetectorName_TBTDCRawCont
std::vector< int > * m_phase_TBTDC
std::vector< float > * m_scale_TBTDC
std::vector< bool > * m_overflow_TBTailCatcher
std::vector< double > * m_uintercept
std::vector< std::vector< float > > * m_cErr
std::vector< float > * m_cryoX
std::vector< bool > * m_overflow_TBScintillatorCont
std::vector< signal_type_TBBPCCont > * m_yPulse
std::vector< bool > * m_overflowSetFlag
std::vector< bool > * m_overflow_TBTDCRawCont
std::vector< double > * m_uslope
std::vector< bool > * m_xPulseOverflow
std::string m_containerKey11
std::vector< double > * m_chi2u
std::vector< short > * m_hitnumber
std::vector< int > * m_tdcmin_TBTDC
std::vector< bool > * m_yPulseOverflow
std::vector< float > * m_cryoAngle
std::vector< std::string > * m_beam_part
std::vector< signal_type_TBBPCCont > * m_xPos
std::vector< std::vector< float > > * m_clusterSize_c
std::vector< unsigned int > * m_tdc_raw
std::vector< bool > * m_isX
std::vector< std::vector< unsigned > > * m_cPosOverflow
std::vector< std::string > * m_tbDetectorName_TBMWPCCont
std::string m_containerKey6
std::vector< double > * m_cryow
std::vector< std::string > * m_tbDetectorName_TBScintillatorCont
std::vector< bool > * m_xPosOverflow
std::string m_containerKey4
std::vector< short > * m_phaseind
std::string m_containerKey3
std::vector< int > * m_ev_clock
std::vector< double > * m_cryov
std::vector< std::string > * m_tbDetectorName_TBADCRawCont
std::vector< bool > * m_overflow_TBADCRawCont
std::vector< int > * m_ev_type
std::vector< int > * m_tdc_TBTDC
std::string m_containerKey10
std::vector< double > * m_signals
std::vector< float > * m_dTtoWAC
std::vector< double > * m_angle
std::vector< float > * m_tableY
std::string m_containerKey5
std::string m_containerKey7
std::vector< float > * m_beam_moment
std::vector< double > * m_residualu
std::vector< std::vector< float > > * m_cPos
std::vector< bool > * m_overflow_TBBPCCont
std::vector< unsigned int > * m_triggerWord
std::vector< int > * m_hitNumberV
std::string m_containerKey2
std::vector< double > * m_vintercept
bool m_neverReturnFailure
std::vector< bool > * m_triggers
std::vector< bool > * m_signal_overflow_tCatch
std::string m_containerKey8
std::vector< bool > * m_time_overflow_tCatch
std::vector< double > * m_chi2
virtual StatusCode CBNT_initialize()
std::vector< float > * m_phase
std::vector< bool > * m_time_overflow_scint
std::vector< unsigned int > * m_channelID
std::vector< float > * m_signal_scint
std::vector< bool > * m_yPosOverflow
std::vector< int > * m_hitNumberU
std::vector< std::string > * m_tbDetectorName_TBTailCatcher
std::vector< std::string > * m_tbDetectorName_TBBPCCont
CBNTAA_TBTPValidation(const std::string &name, ISvcLocator *pSvcLocator)
std::vector< double > * m_vslope
std::vector< float > * m_signal_tCatch
std::vector< float > * m_time_signal_tCatch
std::vector< bool > * m_overflow_TBMWPCCont
std::vector< signal_type_TBBPCCont > * m_xPulse
std::vector< unsigned short > * m_nSamples
void addBranch(const std::string &branchname, T &obj, const std::string &leaflist)
CBNT_TBRecBase(const std::string &name, ISvcLocator *pSvcLocator)
DataModel_detail::const_iterator< DataVector > const_iterator
typename DataVectorBase< TBADCRaw >::Base::size_type size_type
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
This class provides general information about an event.
Container class for LArDigit.
Liquid Argon digit base class.
Data object holding adc measurement.
const std::vector< bool > & isCPosOverflow() const
"TBEvent/TBScintillatorCont.h"
Data object holding tdc measurement.
const std::vector< signal_type > & getSignals() const