Linear Collider Forum



Home » Analysis and Reconstruction » Tracking & Vertexing » Recent Changes in MarlinTPC trunk
Recent Changes in MarlinTPC trunk [message #2033] Wed, 11 August 2010 08:51 Go to previous message
ralf
Messages: 43
Registered: August 2007
Location: DESY Hamburg
Hello everyone,

following the latest changes of the MarlinTPC trunk, I have found some problems and some suggestions/discussion topics.


---------------------------------------

In the latest trunk version (r2207), there seems to be an error in the tools/Field/FindCGA.cmake file. The path to the CGAPack library seems to look in the Geant4 lib directory. This kept this version from compiling at my place. After I changed the line
PATHS $ENV{G4LIB}/$ENV{G4SYSTEM}/

to
PATHS ${Mokka_HOME}/lib/$ENV{G4SYSTEM}/

it works for me.

---------------------------------------

On my computer, using latest trunk (r2207), a simple chain using the ConditionsProcessor, the TrackerRawDataToDataConverterProcessor and the PedestalSubtractorProcessor does always stop with:
*** glibc detected *** Marlin: double free or corruption

and then some more messages.
This worked in the last trunk revision before (r2198). Haven't yet figured out why this happens.

---------------------------------------

In the PedestalSubstractor, I think the renaming of the override parameter from "MaximumADCValue" to "MaximumADCValueOverride" is a good idea. Maybe we should make this a convention to append to optional parameters like this the word "Override"?

---------------------------------------

Regarding the use of the ConditionsMap for e.g. the Pedestals instead of the PedestalHandler:
To my surprise, this works even faster than the use of the two nested maps that were used before in the handler (although speed was one of the ideas behind that approach). And I like the idea with the default key_type types.

Nevertheless, I would still vote to use the PedestalHandler (or other "Handlers", which should probably all be renamed into sth. with ChangeListener, since they are derived from the IConditionsChangeListener); probably using the ConditionsMap approach inside.
The reason for this being that you can then handle in a consistent way missing conditions data for single channel in an event or even missing conditions for a whole time span.

For example: in the Pedestal"Handler", if a pedestal for a channel is missing, you get the value 0 for the value and -1 for the width. So your processor goes on processing without doing basically anything to the data. With the map solution, an exception will be thrown.
Of course, we would have to discuss what behavior is wanted in such a case (only a warning or really stopping the processing). This would of course also depend on the condition in question.

Also, using the latest versions of LCCD/CondDBMySQL, there is finally a solution how to treat times when a certain condition(s) is missing in the database. As far as I understood it, the proposed solution is to use a class derived from the ChangeListener and implement the handling of this case there.
With these changes, you can implement if to use in such a case a default value, the last valid conditions collection or stop processing. Also checks for which time span a condition is allowed to be missing (and probably the last valid one would be used) should be possible. From experience of other groups using real data, the case, that a condition missing for a short period of time, will happen.

---------------------------------------

Related to this and referring to this older thread:
I would still vote to use only one approach throughout MarlinTPC to access conditions data. In my opinion, using the ConditionsProcessor would be the cleanest way.
Using two ways makes making errors easier and finding errors harder. Also, the ConditionsProcessor does in principle the same thing as is done in the backup solution.

---------------------------------------


So, after going on for probably too long: tell me what you think Smile

Cheers, Ralf.
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic:Measurement of Impact parameter
Next Topic:Inconsistencies with "Transience Flag"
Goto Forum:
  


Current Time: Thu Aug 16 13:02:03 Pacific Daylight Time 2018
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.1.
Copyright ©2001-2010 FUDforum Bulletin Board Software