Home - PNapi90/DESPEC-Analysis-Framework GitHub Wiki

Welcome to the DESPEC-Analysis-Framework wiki!

This wiki provides a rudimentary introduction into the DESPEC-Analysis-Framework. All important functions and their respective classes are listed and (roughly) explained here. If you have any questions, please feel free to contact either Matt or Philipp (room SH4 2.008). Please refrain from "git pushing" anything to the framework. If you have any suggestions regarding the program, contact us.

Program structure

All important operations are done inside the Bool_t TSCNUnpackProc::BuildEvent(TGo4EventElement* dest) function of the MBS stream unpacker (at the moment: First_Test.cxx/h). Inside, the while ((psubevt = inp_evt->NextSubEvent()) != 0) loop will loop over all subevents inside each event (normally, there is only one subevent). For each system, the White Rabbit time stamp is fetched by the White_Rabbit* WR object before any system specific operations are done. The corresponding Detector Systems are then identified by their Process ID (Int_t PrcID). Afterwards, the MBS stream is sent to the respective detector system via the function Detector_Sysmtem[id]->Process_MBS(int* pdata).


images/process_mbs.png


After internal processing, the calibrated data is fetched using the Raw_Event* RAW object via the function Detector_System[id]->get_Event_data(RAW).


images/process_mbs2.png


The RAW data is then sent to the Event Builder.

Detector Systems

Each detector system (FRS,AIDA,PLASTIC,FATIMA and GALILEO/DEGAS) is inheriting from the abstract interface class Detector_System defined in Detector_System.cxx. They can be modified as wished, but have to contain the functions

  • void Process_MBS(int* pdata) (to provide the MBS stream to the unpacker)
  • void get_Event_data(Raw_Event* RAW) (to get the unpacked and calibrated data)
  • int* get_pdata() (which returns the modified pdata pointer)

Event Builder

After extracting the data from the respective Detector System using the Raw Event object, the Event-Builder is called.

There exist two different kinds of event builders:

  • A time based Event-Builder
  • An AIDA-trigger based Event-Builder

The time based Event-Builder (see TEB) uses user defined White Rabbit time differences to get "coincidences" between various detector systems.

After the Event-Building, events are passed to respective processors, where histograms can be created. An example case of such a processor for PLASTIC and FATIMA is given in PLASTIC-FATIMA-Processor.