DVCS Trigger System: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
Boiarino (talk | contribs)
No edit summary
Boiarino (talk | contribs)
m Text replacement - "clonwiki.jlab.org" to "clonwiki0.jlab.org"
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
Current section contains DVCS Calorimeter Trigger System development materials.
Current section contains DVCS Calorimeter Trigger System development materials.
Coordinator: Sergey Boyarinov
Leading developer: Benjamin Raydo
Support: Stepan Stepanyan, Rustam Niyazov


'''Project in progress'''
'''Project in progress'''


First approach to System Requirements (September 2007) ([http://clonweb/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger.ppt PowerPoint],
First approach to System Requirements (September 2007) ([https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger.ppt PowerPoint],
[http://clonweb/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger.htm HTML]).
[https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger.htm HTML]).


Ben's presentation on CLON meeting 3-Oct-2007: [http://clonweb/wiki/clondocs/DVCS_Trigger/PreliminaryDesign.ppt preliminary design].
Ben's presentation on CLON meeting 3-Oct-2007: [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/PreliminaryDesign.ppt preliminary design].


Ben (8-Oct-2007):
Ben's first approach to the [[DVCS Cluster finding 8-Oct-2007]].
 
    Attached are some images of the program that interfaces to the V1495
module. This let me make a pattern, send it to the V1495, and retrieves
the processed information from the V1495 that would be used for generating
the trigger.
    [http://clonweb/wiki/clondocs/DVCS_Trigger/Trigger_Regular.png Trigger_Regular] is the algorithm as described in the specification
document that I received. It looks at all possible 3x3 windows and
determines if there are more hit towers than the programmed threshold
(here the threshold was set to 4 - there had to be more than 4 hits in a
3x3 window to define a cluster). As you can see 4 clusters were found in
the sample image (the cluster count is also reported by the V1495 unit).
The one in the bottom left has overlapping 3x3 windows that meet the
cluster definition criteria. In this case, some logic could be used to
determine that a neighboring cluster has fewer hits than the other
neighber and so it could supress that report.
    Next, I played around a little more and wrote a simple algorithm that just
just ran in my program (on my PC, not the V1495) that took the same data
and caused adjacent hit towers (Up/down/left/right/all diagonals) to
attract to each other. So if more hits were on the left side of a cluster,
that cluster value would hop left if the weight was larger than its own
(or any other direction if the weight were arragned so). I took the same
data set as in the last image, and ran 3 iterations through this algorithm
([http://clonweb/wiki/clondocs/DVCS_Trigger/Trigger_Alg_Step1.png fig1] [http://clonweb/wiki/clondocs/DVCS_Trigger/Trigger_Alg_Step2.png fig2] [http://clonweb/wiki/clondocs/DVCS_Trigger/Trigger_Alg_Step3.png fig3]) and you can see the hits clump together and increase in count when two
hits go to the same cell. The idea here would be to run this algorithm,
and then apply a threshold to each cell to determine if it is a cluster or
not. Anyway, you can see now the bottom left cell clumps together to a
single point where the "center of mass" would have been for those original
hits. So does the upper left. The upper right fails to clump into a single
point because there is not bias to move either way because there is equal
pull in both directions (this would be something that can be overcome by
forcing them to always go a particular direction when pulls are equal).
    For the heck of it I sythesized this algorithm on the FPGA and found it
will need about 3 times the available resources (not really a surprise)!
This, or something of similar complexity could work if spread over more
that one board. I've got some ideas for dealing with that if it is of
interest.
    Determining the X/Y location of the clusters is actually a bit more
difficult (especially if the latency needs to be kept low). This should be
feasible, but it will take several more, at least, clock cycles beyond
when a trigger has been determined. This is because all 424 potential
clusters will have to be looked at and probably sorted. Just a guess is
that it could take about 40ns beyond the assertion of the ASYNC trigger.
If there is any flexibility here it may be of some use. I'll certainly
find out more when I get around to implementing this feature. Currently,
I'm planning to focus on "properly" finding clusters.
    I'm interested in seeing what some real data looks like. There's probably
no need to format it because I can just read it in with some standard file
I/O in c++.
    I need clarification on how to deal with adjacent cluster hits (whether to
count them individually or not, or if we need to do further processing).


Sergey, Rustam (Oct-9-2007 through Oct-16-2007):
Sergey, Rustam (Oct-9-2007 through Oct-16-2007):


  Calibration data: 10000 events ascii [http://clonweb/wiki/clondocs/DVCS_Trigger/dvcs_047213_10000events.txt.bz2 file] generated from ''dvcs_047213.A00''. Pedestals were used as for the run 46595 with
  Calibration data: 10000 events ascii [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/dvcs_047213_10000events.txt.bz2 file] generated from ''dvcs_047213.A00''. Pedestals were used as for the run 46595 with
  the beam current=20 nA (presented on [http://clonweb/wiki/clondocs/DVCS_Trigger/ped_mean.gif this] plot).
  the beam current=20 nA (presented on [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/ped_mean.gif this] plot).


  Calibration data subset: About 3200 events ascii [http://clonweb/wiki/clondocs/DVCS_Trigger/dvcs_047213_pi0.txt.bz2 file] contains pi0 events only. That file can be considered as a sample
  Calibration data subset: About 3200 events ascii [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/dvcs_047213_pi0.txt.bz2 file] contains pi0 events only. That file can be considered as a sample
  of 'good' events, trigger system should pass all of them.
  of 'good' events, trigger system should pass all of them.


  Production data: 10000 events ascii [http://clonweb/wiki/clondocs/DVCS_Trigger/clas_047210.txt.bz2 file] generated from ''clas_047210.A01'' using pedestals for run 46595.
  Production data: 10000 events ascii [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/clas_047210.txt.bz2 file] generated from ''clas_047210.A01'' using pedestals for run 46595.
  ASCII file containing all [http://clonweb/wiki/clondocs/DVCS_Trigger/clas_047210_good.txt.bz2 'good' events] from the same datafile (actually all events from so-called skim file ''egg_47210_pass1_a01.bos'').
  ASCII file containing all [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/clas_047210_good.txt.bz2 'good' events] from the same datafile (actually all events from so-called
skim file ''egg_47210_pass1_a01.bos'').
 
Ben's presentation on CLON meeting 10-Oct-2007: [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/ClusterFinding_1.ppt Cluster Finding].
 
Ben's observations on [[DVCS data processing 10-Oct-2007]].
 
Ben's preliminary results on [[DVCS Trigger efficiency studies 11-Oct-2007]].
 
Ben's results on [[DVCS Trigger efficiency studies 17-Oct-2007]].
 
Updated System Requirements on 19-Oct-2007 ([https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger_Requirements_Oct2007.ppt PowerPoint],
[https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger_Requirements_Oct2007.htm HTML], [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/DVCS_Calorimeter_Trigger_Requirements_Oct2007.pdf pdf]).
 
Ben's ideas on [[DVCS-Hodoscope trigger system design 19-Oct-2007]].
 
Ben's preliminary design for DVCS-Hodoscope trigger system ([https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/TriggerSystem_Delays.ppt ppt]).
 
Sergey ordered CAEN hardware 7-Nov-2007 based on Ben's recent design, quotation is [https://clonwiki0.jlab.org/wiki/clondocs/Quotes/7137_JLAB_Bojarinov.pdf here].
 
Ben's "semi-final" design for DVCS-Hodoscope trigger system (9-Nov-2007): [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/JLabHallB6GeVDVCSTriggerDesign9Nov2007/JLabHallB6GeVDVCSTriggerDesign.pdf generic scheme (pdf)], [https://clonwiki0.jlab.org/wiki/clondocs/DVCS_Trigger/JLabHallB6GeVDVCSTriggerDesign9Nov2007/HDLSource.tar.bz2 Altera Project (tar.bz2)]. Some changes may be applied, in particular Ben is working to resolve some timing issues: measure V1495 channel skews, lock in timing requirements on the synchronous bus and compile a "final" FPGA design. These timing details will determine the LEMO/Coax cable length that were left unspecified. More accurate timing information will be provided also on the trigger propagation delay.


Ben's presentation on CLON meeting 10-Oct-2007: [http://clonweb/wiki/clondocs/DVCS_Trigger/ClusterFinding_1.ppt Cluster Finding].
9-Nov-2007: project posponded until receiving CAEN hardware in February 2008.


'''Useful documentation'''
'''Useful documentation'''


CAEN V895 Discriminator Manual [http://clonweb/wiki/clondocs/Docs/v895_rev2.pdf Revision 2, September 2002, pdf].
CAEN V895 Discriminator Manual [https://clonwiki0.jlab.org/wiki/clondocs/Docs/v895_rev2.pdf Revision 2, September 2002, pdf].


CAEN V1495 Logic Unit Manual [http://clonweb/wiki/clondocs/Docs/V1495_REV4.pdf Revision 4, January 2007, pdf].
CAEN V1495 Logic Unit Manual [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495_REV4.pdf Revision 4, January 2007, pdf].


V1495-related software downloaded from CAEN site on September 25, 2007 (check CAEN for newer versions !):
V1495-related software downloaded from CAEN site on September 25, 2007 (check CAEN for newer versions !):


* [http://clonweb/wiki/clondocs/Docs/V1495_USRDEMO_FW_PACK_1_0.zip V1495 DEMO USER FPGA Firmware]
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495_USRDEMO_FW_PACK_1_0.zip V1495 DEMO USER FPGA Firmware]


* [http://clonweb/wiki/clondocs/Docs/V1495_VME_FW_PACK_0_2.zip V1495 VME FPGA Firmware]
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495_VME_FW_PACK_0_2.zip V1495 VME FPGA Firmware]


* [http://clonweb/wiki/clondocs/Docs/V1495_USER_DEMO_QUARTUSII_PROJECT_REV_1_0.zip Quartus2 Project]
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495_USER_DEMO_QUARTUSII_PROJECT_REV_1_0.zip Quartus2 Project]


* [http://clonweb/wiki/clondocs/Docs/V1495Upgrade.exe Firmware upgrade tool (Windows executable file]
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495Upgrade.exe Firmware upgrade tool (Windows executable file]


* [http://clonweb/wiki/clondocs/Docs/V1495Upgrade_1_1_VC++_PROJ.zip V1495 Firmware Upgrade Tool (source code and VC++ project)]
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495Upgrade_1_1_VC++_PROJ.zip V1495 Firmware Upgrade Tool (source code and VC++ project)]


Our materials:
Our materials:


* [http://clonweb/wiki/clondocs/Docs/V1495_UPGRADE_CLAS_VERSION_1.tar CLAS version of V1495 Firmware Upgrade Program] - CAEN version slightly modified by Sergey Boyarinov, see usage example inside; runs from VxWorks prompt
* [https://clonwiki0.jlab.org/wiki/clondocs/Docs/V1495_UPGRADE_CLAS_VERSION_1.tar CLAS version of V1495 Firmware Upgrade Program] - CAEN version slightly modified by Sergey Boyarinov, see usage example inside; runs from VxWorks prompt

Latest revision as of 15:06, 17 April 2015

Current section contains DVCS Calorimeter Trigger System development materials.

Coordinator: Sergey Boyarinov

Leading developer: Benjamin Raydo

Support: Stepan Stepanyan, Rustam Niyazov

Project in progress

First approach to System Requirements (September 2007) (PowerPoint, HTML).

Ben's presentation on CLON meeting 3-Oct-2007: preliminary design.

Ben's first approach to the DVCS Cluster finding 8-Oct-2007.

Sergey, Rustam (Oct-9-2007 through Oct-16-2007):

Calibration data: 10000 events ascii file generated from dvcs_047213.A00. Pedestals were used as for the run 46595 with
the beam current=20 nA (presented on this plot).
Calibration data subset: About 3200 events ascii file contains pi0 events only. That file can be considered as a sample
of 'good' events, trigger system should pass all of them.
Production data: 10000 events ascii file generated from clas_047210.A01 using pedestals for run 46595.
ASCII file containing all 'good' events from the same datafile (actually all events from so-called
skim file egg_47210_pass1_a01.bos).

Ben's presentation on CLON meeting 10-Oct-2007: Cluster Finding.

Ben's observations on DVCS data processing 10-Oct-2007.

Ben's preliminary results on DVCS Trigger efficiency studies 11-Oct-2007.

Ben's results on DVCS Trigger efficiency studies 17-Oct-2007.

Updated System Requirements on 19-Oct-2007 (PowerPoint, HTML, pdf).

Ben's ideas on DVCS-Hodoscope trigger system design 19-Oct-2007.

Ben's preliminary design for DVCS-Hodoscope trigger system (ppt).

Sergey ordered CAEN hardware 7-Nov-2007 based on Ben's recent design, quotation is here.

Ben's "semi-final" design for DVCS-Hodoscope trigger system (9-Nov-2007): generic scheme (pdf), Altera Project (tar.bz2). Some changes may be applied, in particular Ben is working to resolve some timing issues: measure V1495 channel skews, lock in timing requirements on the synchronous bus and compile a "final" FPGA design. These timing details will determine the LEMO/Coax cable length that were left unspecified. More accurate timing information will be provided also on the trigger propagation delay.

9-Nov-2007: project posponded until receiving CAEN hardware in February 2008.

Useful documentation

CAEN V895 Discriminator Manual Revision 2, September 2002, pdf.

CAEN V1495 Logic Unit Manual Revision 4, January 2007, pdf.

V1495-related software downloaded from CAEN site on September 25, 2007 (check CAEN for newer versions !):

Our materials: