evovch / ACCULINNA_go4_user_library

1 stars 6 forks source link

create online analysis for repacked data (data from DetMessage) #25

Open himyss opened 5 years ago

himyss commented 5 years ago

It is necessaty to cunduct the online analysis using at least repacked data. (may be in the nearest future we will alsoi include calibration methods) That's why at least one example of creating and filling histogram from DetMessage is needed.

At the moment it seems that these lines in the file UserProcAdvMonitoring.cxx seems to be wrong:

Bool_t UserProcAdvMonitoring::BuildEvent(TGo4EventElement* p_dest) { Bool_t v_isValid = kFALSE;

UserEventUnpacking* v_input = (UserEventUnpacking*)GetInputEvent("stepUnpackedProvider1");
if (v_input == NULL)
{
    cerr << "[WARN  ] " << "UserProcAdvMonitoring::BuildEvent(): no input event!" << endl;
    return v_isValid;
}
v_isValid = kTRUE;

#ifdef DEBUGADVMON
cerr << "[DEBUG ] " << "UserProcAdvMonitoring: Event " << fEventCounter
     << " ======================================================================================================"
     << endl;
#endif

// --------------------------

fEventCounter++;

return v_isValid;

}

I am expecting to read UserEventRepacking instead of UserEventUnpacking there.

I am trying to make this issue done at the moment but not sure when and how beutiful my methods will be

evovch commented 5 years ago

See commit 6ec80e3b407dd2be6ad6d78b550e268c50aaddd1

I've implemented automatic histograms for all channels mapped in the setup configuration XML file. This is far not perfect but it is a fast solution which allows evaluation of the data taking process. One still has to think about and implement the following: 1) Correct ranges for histograms. It looks like the program can not automatically determine them without any external information provided by the user. We could, in principle, use ranges implicitly known from the electronics block type (MESYTEC m*DC, CAEN V***). 2) Numerous 1D histograms into less 2D histograms. This is possible but requires some programming effort => need time. 3) Performance evaluation and most probably optimization.

evovch commented 5 years ago

See commit b2bb01decf4b2930cd41ba50647ee779d910541b

Item 1 regarding ranges has been implemented. Item 2 was rejected by the users. Item 3 still to be studied.