Project

General

Profile

Feature #11031

Milestone #10477: ANUB Startup

Milestone #11019: Cycle devices for anub

Extraction sample device

Added by John Diamond almost 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Start date:
11/30/2015
Due date:
% Done:

100%

Estimated time:
8.00 h
Spent time:
Duration:

Description

:BEAMXn[0:7]

Similar to #11028 but each element represents a sample right before extraction.

History

#1 Updated by John Diamond almost 5 years ago

Possible implementation based on a circular buffer of the last n samples:
  • reset() -
    1. Clear circular buffer
    2. Reset extraction samples to 0
    3. Attach to $07
    4. Attach to extraction event
  • sample() -
    1. Sample intensity device
    2. Push sample into the circular buffer
  • exSample() -
    1. sample() one more time
    2. search backwards through circular buffer for extraction edge
    3. push edge sample into the sample buffer
  • endOfBeam() -
    1. Detach from $07
    2. Detach from extraction event

#2 Updated by John Diamond almost 5 years ago

  • % Done changed from 0 to 20

Implemented CircularBuffer class and began implementing CycleDeviceEx.

#3 Updated by John Diamond almost 5 years ago

  • % Done changed from 20 to 80

Complete implementation of extraction cycle device support.
Merged into origin/mirrdcct_master.
Added configurations for MI and RR extraction devices to anubstartup.
Ready to test on anub.

#4 Updated by John Diamond almost 5 years ago

  • % Done changed from 80 to 20

Refactored CycleDeviceEx and CycleDeviceInj to use a std::vector for the sample buffer instead of a native array.
Removed the size parameter from their constructors and cli commands.

#5 Updated by John Diamond almost 5 years ago

  • % Done changed from 20 to 80

#6 Updated by John Diamond almost 5 years ago

  • % Done changed from 80 to 90

Implemented ClassACNet accessors for CycleDeviceInj and CycleDeviceEx.

#7 Updated by John Diamond almost 5 years ago

Added a sanity check to CycleDeviceInj::sample() and CycleDeviceEx::exSample() to make sure we're not recording an infinite number of injection/extraction samples.

#8 Updated by John Diamond almost 5 years ago

Fixed a program exception bug in the circular buffer implementation.
Verified that the CB is being filled but don't have events at the moment to test edge detection...

#9 Updated by John Diamond almost 5 years ago

Beams & events came backs this evening and it appears that the extraction sample on the $E3 is being taken:
        4: Machine: Recycler, reset: $e3, eob: $e6, inten ID: 1
                Injection: event: $e4, delay: 5, n: 6, samples: [20629,21661,22651,23548,24457,25347]
                Extraction: event: $f3, delay: 0, CB cap/size: 50/50, n: 1, samples: [32502]
                0:  event: $e4 delay: 0 sample: 31265
                1:  event: $e4 delay: 60 sample: 30238
                2:  event: $fe delay: 0 sample: 0
                3:  event: $fe delay: 0 sample: 0
                4:  event: $fe delay: 0 sample: 0
                5:  event: $f3 delay: 0 sample: 31401

However, the MI DCCT digitizer is returning 0xffffs for intensity at the moment so CycleDeviceEx::exSample() can't find an edge:
       3: Machine: Main Injector, reset: $2a, eob: $26, inten ID: 0
               Injection: event: $a3, delay: 5, n: 0, samples: []
               Extraction: event: $a9, delay: 0, CB cap/size: 50/50, n: 0, samples: []
               0:  event: $a3 delay: 0 sample: 0
               1:  event: $22 delay: 0 sample: -1
               2:  event: $25 delay: 0 sample: -1
               3:  event: $fe delay: 0 sample: 0
               4:  event: $a9 delay: 0 sample: -1
               5:  event: $2f delay: 0 sample: -1

So it appears that the algorithm is working properly. Also, the extraction array device is reporting correctly:
ACL> read R:DCCTX3[0:7]

R:DCCTX3 =  1637.05    0          0          0          0          0
            0          0         E12

The anub startup script is configured for and the following extraction array devices have been created:
  • I:DCCTX0
  • I:DCCTX1
  • I:DCCTX3
  • I:DCCTXA
  • R:DCCTX3

#10 Updated by John Diamond almost 5 years ago

  • Status changed from Assigned to Closed
  • % Done changed from 90 to 100


Also available in: Atom PDF