Skip to content

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 and vector<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.

Tagging @akraszna and @jcatmore for info.

Edited by Johannes Elmsheuser

Merge request reports