-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TRestDetectorSingleChannelAnalysisProcess fixes #29
Conversation
…menting SaveGainMetadata.
…e TRestRun object to save to file
When cloned, all the metadata object inside TRestRun will be lost.
The processes will be saved in the ouput file, but not the "calibration file" here. I think we need to save this process to tell the mapping configuration from the calibration file.
Yes, it is exporting a "calibration file" here. |
So, you end up with two files? The usual output file after processing, and a second one for exporting the calibration data? Why the calibration data is not just added to the usual first file? Why this method is called at So, why cannot simply do: |
Yes
Because I don't want to save calibration data with event data or observables.
It means that after the process chain the process will summarize all its processed data, do the fitting, and generate the calibration file.
Because I don't want to save calibration data with event data or observables. |
Please @nkx, aprouve and merge this PR to fix the framework merge. |
@@ -240,6 +239,13 @@ void TRestDetectorSingleChannelAnalysisProcess::FitChannelGain() { | |||
} | |||
} | |||
|
|||
/*** This should not be done. The framework saves any metadata structure inside of the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here I am exporting a calibration file containing TRestDetectorGainMap metadata object. I think a calibration file should not contain observables. Yes, newing a TRestRun object is bad. I can use TRestRun of the process to store calibration data.
I though the discussion was not over. So is it OK to use TRestRun to store another file from the process chain? |
I see, you are creating an independent file that contains only the objects you are interested in , i.e. ,fRun, fCalib, fReadout, and the process itself.
Note that the process itself contains the information of calibration map. Perhaps it would be better that Of course, I have nothing against exporting data this way (just becoming worried about traceability because the output file becomes quite similar to an official REST file - perhaps it would be good to have a metadata member inside TRestRun that tells us that it is an exported file? But of course, it has no eventdata, I guess it is no problem). But in any case, all the calibration data is going to be included at the final output file, right? Inside I dont see a problem, but perhaps we could have a method at
or
where those classes are classes known to TRestRun. |
On the other hand, if the purpose of your processing is only to generate that calibration map. Why not add a feature at TRestRun, that allows you to chose what are finally the objects you want to be stored in the disk? Kind of "pureAnalysis" option we had before, but more specific to "pureMetadata" where you select the metadata classes you are interested to register. In that way, TRestRun will know that you asked explicitly for that. |
Ok, I just merge this PR since I believe it is not a problem for other parts of the code. I created a new issue to track the possibility of exporting using a unique common method. #30 |
Fixing compilation due to new protections of
TRestDetectorReadout
added in the parallel framework branch.TRestDetectorSingleChannelAnalysisProcess::SaveGainMetadata
has been also commented since I believe does not follow the common way to save metadata output data.