21.2 floatcompression
This is a FloatCompressioAlg in derivation production and is an extension of @ksuruliz code and is going beyond what is discussed in the following AMSG-R3 presentation. The WIP MR is R&D code and mainly to exchange ideas first.
Features:
- Compression of
float
andvector<float>
- Compress a list of aux containers (hard coded to 7 bit)
- Compress a list single variables, compression rate configurable
- Compress a full AODs in the derivation PASSTHR mode.
- Support for
double
variables are currently missing
Configuration for a variable list (MINI1.py
):
# Float compression
SeqCompress = CfgMgr.AthSequencer("SeqCompress")
DerivationFrameworkJob += SeqCompress
SeqCompress += CfgMgr.DerivationFramework__FloatCompressionAlg(
"CompressFloatCompression",
Vars = [ "AntiKt4EMTopoJetsAux.pt:7",
"AntiKt4EMTopoJetsAux.eta:15",
])
where it's ContainernameAux.variable:compressbits
Configuration for the full aux containers (hardcoded 7 bits float compression) (MINI2.py
):
# Float compression
SeqCompress = CfgMgr.AthSequencer("SeqCompress")
DerivationFrameworkJob += SeqCompress
SeqCompress += CfgMgr.DerivationFramework__FloatCompressionAlg(
"CompressFloatCompression", SGKeys=[
"AntiKt4EMTopoJetsAux.", "AntiKt4LCTopoJetsAux.",
] )
Create a DAOD_PHYS derivation with:
Reco_tf.py --preExec 'rec.doApplyAODFix.set_Value_and_Lock(True);from BTagging.BTaggingFlags import BTaggingFlags;BTaggingFlags.CalibrationTag = "BTagCalibRUN12-08-40" ' --postInclude MINI1.py --inputAODFile $INPUT --outputDAODFile $OUTPUT --maxEvents $NEVT --reductionConf MINI
Currently only float and vector are supported, but double and vector could be added eventually.
The code sill contains lots of commented out lines with std::cout debug messages.
Edited by Johannes Elmsheuser