From 103288f6ea9bcd81d8644308472182f8a29cefe8 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Thu, 23 Sep 2021 20:52:03 +0200
Subject: [PATCH 1/8] first trial

---
 .../LArCafJobs/python/LArNoiseConfig.py       | 66 +++++++++++++++++++
 .../LArCafJobs/python/LArNoiseFlags.py        | 16 +++++
 .../LArCafJobs/python/LArNoiseSkeleton.py     | 59 +++++++++++++++++
 .../python/LArShapeDumperSkeleton.py          |  4 ++
 .../share/LArNoiseBursts_fromraw_tf.py        | 13 +---
 .../LArCafJobs/share/LArNoiseBursts_tf.py     | 19 +-----
 6 files changed, 151 insertions(+), 26 deletions(-)
 create mode 100644 LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
 create mode 100644 LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
 create mode 100644 LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
new file mode 100644
index 000000000000..57ac3df1ea4c
--- /dev/null
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -0,0 +1,66 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+from AthenaConfiguration.ComponentFactory import CompFactory 
+
+def LArNoiseCfg(flags):
+
+    result=ComponentAccumulator()
+
+    
+    from LArGeoAlgsNV.LArGMConfig import LArGMCfg
+    result.merge(LArGMCfg(flags))
+    from TileGeoModel.TileGMConfig import TileGMCfg
+    result.merge(TileGMCfg(flags))
+
+    #Setup cabling
+    from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
+    result.merge(LArOnOffIdMappingCfg(flags))
+    # setup bad chan and missing febs
+    from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg,LArBadFebCfg
+    LArBadChannelCfg(flags)
+    LArBadFebCfg(flags)
+
+    from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
+    result.merge(BunchCrossingCondAlgCfg(flags))
+    
+    from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
+    result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
+
+    from AthenaMonitoring.TriggerInterface import getTrigDecisionTool
+    result.merge(getTrigDecisionTool(flags))
+    result.getPublicTool("TrigDecisionTool").TrigConfigSvc="TrigConf::TrigConfigSvc/TrigConfigSvc"
+
+    
+    noiseAlg=CompFactory.LArNoiseBursts("LArNoiseBursts")
+    noiseAlg.SigmaCut = flags.LArNoise.SigmaCut
+    noiseAlg.NumberOfBunchesInFront = flags.LArNoise.NumberOfBunchesInFront
+    noiseAlg.KeepOnlyCellID = flags.LArNoise.KeepOnlyCellID
+    result.addEventAlgo(noiseAlg)
+
+    if (flags.LArNoise.outNtupLAr!=""):
+        result.addService(CompFactory.THistSvc(Output=["TTREE DATAFILE='"+flags.LArNoise.outNtupLAr+"' OPT='RECREATE'",]))
+
+    if (flags.LArNoise.HECNoiseNtup!=""):
+        result.addEventAlgo(CompFactory.LArHECNoise())
+        if result.getService("THistSvc") != None:
+           result.getService("THistSvc").Output += ["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]
+        else:   
+           result.addService(CompFactory.THistSvc(Output=["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]))
+
+    return result
+
+
+if __name__=="__main__":
+    
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags
+    from LArNoiseFlags import addNoiseFlags
+    addNoiseFlags(ConfigFlags)
+    ConfigFlags.Input.Files=['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MetadataTests/data18/data18_13TeV.00363979.physics_Main.daq.ESD.0750._0001.pool.root']
+
+    from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+    
+    cfg=MainServicesCfg(ConfigFlags)
+    cfg.merge(LArNoiseCfg(ConfigFlags))
+
+    cfg.run(10)
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
new file mode 100644
index 000000000000..06367b4b6edd
--- /dev/null
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+def addNoiseFlags(flags):
+    
+    flags.Input.isMC=False
+
+    flags.addFlag("LArNoise.outNtupLAr","")
+    flags.addFlag("LArNoise.outHistLAr","")
+    flags.addFlag("LArNoise.HECNoiseNtup","")
+    flags.addFlag("LArNoise.SigmaCut",3.0)
+    flags.addFlag("LArNoise.NumberOfBunchesInFront",30)
+    flags.addFlag("LArNoise.KeepOnlyCellID",False)
+    
+
+
+
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py
new file mode 100644
index 000000000000..ea359742d82a
--- /dev/null
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+import sys
+
+from PyJobTransforms.CommonRunArgsToFlags import commonRunArgsToFlags
+from PyJobTransforms.TransformUtils import processPreExec, processPreInclude, processPostExec, processPostInclude
+from LArCafJobs.LArNoiseConfig import LArNoiseCfg
+from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+
+
+def fromRunArgs(runArgs):
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags    
+
+    from LArCafJobs.LArNoiseFlags import addNoiseFlags
+    addNoiseFlags(ConfigFlags)
+
+    commonRunArgsToFlags(runArgs, ConfigFlags)
+
+    processPreInclude(runArgs, ConfigFlags)
+    processPreExec(runArgs, ConfigFlags)
+
+    ConfigFlags.Input.Files=runArgs.inputESDFile
+    if hasattr(runArgs,"outputNTUP_LARNOISEFile"):
+       ConfigFlags.LArNoise.outNtupLAr=runArgs.outputNTUP_LARNOISEFile
+
+    if hasattr(runArgs,"outputNTUP_HECNOISEFile"):
+        ConfigFlags.LArNoise.HECNoiseNtup=runArgs.outputNTUP_HECNOISEFile
+
+    if not hasattr(runArgs,"conditionsTag") or runArgs.conditionsTag=="CURRENT":
+        print("Resolving 'CURRENT' express conditions tag ...")
+        #sys.path.append('/afs/cern.ch/user/a/atlcond/utils/python/')
+        #from AtlCoolBKLib import resolveAlias
+        #resolver=resolveAlias()
+        #currentGlobalES=resolver.getCurrentES().replace("*","ST")
+        #printfunc ("Found ",currentGlobalES)
+        #ConfigFlags.IOVDbSvc.GlobalTag=currentGlobalES
+        #ConfigFlags.IOVDb.GlobalTag="CURRENT"
+    else:
+        ConfigFlags.IOVDb.GlobalTag=runArgs.conditionsTag
+
+    if hasattr(runArgs,"skipEvents"):
+        ConfigFlags.Exec.SkipEvents=runArgs.skipEvents
+
+    if hasattr(runArgs,"maxEvents"):
+        ConfigFlags.Exec.MaxEvents=runArgs.maxEvents
+
+    ConfigFlags.Trigger.doID=False
+
+    ConfigFlags.lock()
+    
+    cfg=MainServicesCfg(ConfigFlags)
+    cfg.merge(LArNoiseCfg(ConfigFlags))
+
+    processPostInclude(runArgs, ConfigFlags, cfg)
+    processPostExec(runArgs, ConfigFlags, cfg)
+
+    # Run the final accumulator
+    sc = cfg.run()
+    sys.exit(not sc.isSuccess())
diff --git a/LArCalorimeter/LArCafJobs/python/LArShapeDumperSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArShapeDumperSkeleton.py
index 499a270059ef..0e48760082dd 100644
--- a/LArCalorimeter/LArCafJobs/python/LArShapeDumperSkeleton.py
+++ b/LArCalorimeter/LArCafJobs/python/LArShapeDumperSkeleton.py
@@ -26,6 +26,10 @@ def fromRunArgs(runArgs):
     if hasattr(runArgs,"outputNTUP_HECNOISEFile"):
         ConfigFlags.LArShapeDump.HECNoiseNtup=runArgs.outputNTUP_HECNOISEFile
         
+    #protection for LArPEB event:
+    ConfigFlags.Trigger.L1.doMuon=False
+    ConfigFlags.Trigger.L1.doCalo=False
+    ConfigFlags.Trigger.L1.doTopo=False
 
     ConfigFlags.lock()
     
diff --git a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
index 62d987e98c6d..b49e7d30fcab 100755
--- a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
+++ b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
@@ -1,8 +1,6 @@
 #!/usr/bin/env python
 
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-from __future__ import print_function
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
 __doc__ = """JobTransform to run LAr Noise Burst jobs"""
 
@@ -16,7 +14,8 @@ import PyJobTransforms.trfArgClasses as trfArgClasses
 if __name__ == '__main__':
 
     executorSet = set()
-    executorSet.add(athenaExecutor(name = 'LArNoiseBursts_from_raw', skeletonFile = 'LArCafJobs/skeleton.LArNoise_fromraw.py',
+    executorSet.add(athenaExecutor(name = 'LArNoiseBursts_from_raw', skeletonFile = None,
+                                   skeletonCA='LArCafJobs.LArNoiseFromRawSkeleton.py',
                                    substep = 'r2e', inData = ['BS',], outData = ['NTUP_LARNOISE','NTUP_HECNOISE','HIST_LARNOISE']))
    
     trf = transform(executor = executorSet) 
@@ -40,11 +39,5 @@ if __name__ == '__main__':
                             help='Output Noise hist file', group='Hist Files')
 
     trf.parseCmdLineArgs(sys.argv[1:])
-
-
     trf.execute()
-    print ("DataDict:")
-    print (trf.dataDictionary)
-
-
     trf.generateReport()
diff --git a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py
index 872b2369c792..636b97395248 100755
--- a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py
+++ b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_tf.py
@@ -1,8 +1,6 @@
 #!/usr/bin/env python
 
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
-
-from __future__ import print_function
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 
 __doc__ = """JobTransform to run LAr Noise Burst jobs"""
 
@@ -16,9 +14,8 @@ import PyJobTransforms.trfArgClasses as trfArgClasses
 if __name__ == '__main__':
 
     executorSet = set()
-    executorSet.add(athenaExecutor(name = 'LArNoiseBursts_from_raw', skeletonFile = 'LArCafJobs/skeleton.LArNoise.py',
-                                   substep = 'r2e', inData = ['BS',], outData = ['NTUP_LARNOISE','NTUP_HECNOISE']))
-    executorSet.add(athenaExecutor(name = 'LArNoiseBursts', skeletonFile = 'LArCafJobs/skeleton.LArNoise.py',
+    executorSet.add(athenaExecutor(name = 'LArNoiseBursts', skeletonFile = None,
+                                   skeletonCA='LArCafJobs.LArNoiseSkeleton',
                                    substep = 'e2a', inData = ['ESD',], outData = ['NTUP_LARNOISE','NTUP_HECNOISE']))
    
     trf = transform(executor = executorSet) 
@@ -28,10 +25,6 @@ if __name__ == '__main__':
                             type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='input'),
                             help='Input pool file', group='Reco Files')
    
-    trf.parser.add_argument('--inputBSFile', nargs='+',
-                            type=trfArgClasses.argFactory(trfArgClasses.argPOOLFile, io='input'),
-                            help='Input BS file', group='Reco Files')
-   
     trf.parser.add_argument('--outputNTUP_LARNOISEFile', nargs='+',
                             type=trfArgClasses.argFactory(trfArgClasses.argNTUPFile, io='output'),
                             help='Output LAr Noise Burst file', group='Ntuple Files')
@@ -41,11 +34,5 @@ if __name__ == '__main__':
                             help='Output HECNoise file', group='Ntuple Files')
 
     trf.parseCmdLineArgs(sys.argv[1:])
-
-
     trf.execute()
-    print ("DataDict:")
-    print (trf.dataDictionary)
-
-
     trf.generateReport()
-- 
GitLab


From 2252b2c5fd89ccaf25c641c8f0101c8a2ba9b0f0 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Fri, 24 Sep 2021 17:18:45 +0200
Subject: [PATCH 2/8] LArNoise from ESD running

---
 .../LArCafJobs/python/LArNoiseConfig.py       | 12 +++-
 .../LArCafJobs/python/LArNoiseFlags.py        |  3 +
 .../python/LArNoiseFromRawSkeleton.py         | 58 +++++++++++++++++++
 .../LArCafJobs/python/LArNoiseSkeleton.py     | 13 ++---
 .../LArCafJobs/src/LArNoiseBursts.cxx         |  1 +
 5 files changed, 79 insertions(+), 8 deletions(-)
 create mode 100644 LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index 57ac3df1ea4c..b9717bcd24b7 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -7,6 +7,8 @@ def LArNoiseCfg(flags):
 
     result=ComponentAccumulator()
 
+    from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
+    result.merge(PoolReadCfg(flags))
     
     from LArGeoAlgsNV.LArGMConfig import LArGMCfg
     result.merge(LArGMCfg(flags))
@@ -42,7 +44,15 @@ def LArNoiseCfg(flags):
         result.addService(CompFactory.THistSvc(Output=["TTREE DATAFILE='"+flags.LArNoise.outNtupLAr+"' OPT='RECREATE'",]))
 
     if (flags.LArNoise.HECNoiseNtup!=""):
-        result.addEventAlgo(CompFactory.LArHECNoise())
+        hecAlg=CompFactory.LArHECNoise("LArHECNoise")
+        hecAlg.MinDigitADC = flags.LArNoise.MinDigitADC
+        hecAlg.MaxDeltaT = flags.LArNoise.MaxDeltaT
+        from IOVDbSvc.IOVDbSvcConfig import addFolders
+        result.merge(addFolders(flags, "/LAR/ElecCalibFlat/Pedestal", "LAR_ONL", className="CondAttrListCollection", db="CONDBR2"))
+        LArPedestalCondAlg =  CompFactory.getComp("LArFlatConditionsAlg<LArPedestalFlat>")
+        result.addCondAlgo(LArPedestalCondAlg(ReadKey="/LAR/ElecCalibFlat/Pedestal", WriteKey="LArPedestal"))
+
+        result.addEventAlgo(hecAlg)
         if result.getService("THistSvc") != None:
            result.getService("THistSvc").Output += ["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]
         else:   
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
index 06367b4b6edd..90649ff51efe 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFlags.py
@@ -10,6 +10,9 @@ def addNoiseFlags(flags):
     flags.addFlag("LArNoise.SigmaCut",3.0)
     flags.addFlag("LArNoise.NumberOfBunchesInFront",30)
     flags.addFlag("LArNoise.KeepOnlyCellID",False)
+    #these are for LArHECNoise alg:
+    flags.addFlag("LArNoise.MinDigitADC",20)
+    flags.addFlag("LArNoise.MaxDeltaT",5)
     
 
 
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
new file mode 100644
index 000000000000..55139c6d1a11
--- /dev/null
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
@@ -0,0 +1,58 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+
+import sys
+
+from PyJobTransforms.CommonRunArgsToFlags import commonRunArgsToFlags
+from PyJobTransforms.TransformUtils import processPreExec, processPreInclude, processPostExec, processPostInclude
+from LArCafJobs.LArNoiseConfig import LArNoiseFromRawCfg
+from AthenaConfiguration.MainServicesConfig import MainServicesCfg
+
+
+def fromRunArgs(runArgs):
+    from AthenaConfiguration.AllConfigFlags import ConfigFlags    
+
+    from LArCafJobs.LArNoiseFlags import addNoiseFlags
+    addNoiseFlags(ConfigFlags)
+
+    commonRunArgsToFlags(runArgs, ConfigFlags)
+
+    processPreInclude(runArgs, ConfigFlags)
+    processPreExec(runArgs, ConfigFlags)
+
+    ConfigFlags.Input.Files=runArgs.inputESDFile
+    if hasattr(runArgs,"outputNTUP_LARNOISEFile"):
+       ConfigFlags.LArNoise.outNtupLAr=runArgs.outputNTUP_LARNOISEFile
+
+    if hasattr(runArgs,"outputNTUP_HECNOISEFile"):
+        ConfigFlags.LArNoise.HECNoiseNtup=runArgs.outputNTUP_HECNOISEFile
+
+    if not hasattr(runArgs,"conditionsTag") or runArgs.conditionsTag=="CURRENT":
+        print("Resolving 'CURRENT' express conditions tag ...")
+        sys.path.append('/afs/cern.ch/user/a/atlcond/utils22/CondUtilsLib/')
+        from AtlCoolBKLib import resolveAlias
+        resolver=resolveAlias()
+        currentGlobalES=resolver.getCurrentES().replace("*","ST")
+        print("Found ",currentGlobalES)
+        ConfigFlags.IOVDb.GlobalTag=currentGlobalES
+    else:
+        ConfigFlags.IOVDb.GlobalTag=runArgs.conditionsTag
+
+    if hasattr(runArgs,"skipEvents"):
+        ConfigFlags.Exec.SkipEvents=runArgs.skipEvents
+
+    if hasattr(runArgs,"maxEvents"):
+        ConfigFlags.Exec.MaxEvents=runArgs.maxEvents
+
+    ConfigFlags.Trigger.doID=False
+
+    ConfigFlags.lock()
+    
+    cfg=MainServicesCfg(ConfigFlags)
+    cfg.merge(LArNoiseFromRawCfg(ConfigFlags))
+
+    processPostInclude(runArgs, ConfigFlags, cfg)
+    processPostExec(runArgs, ConfigFlags, cfg)
+
+    # Run the final accumulator
+    sc = cfg.run()
+    sys.exit(not sc.isSuccess())
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py
index ea359742d82a..2098132c8a10 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseSkeleton.py
@@ -28,13 +28,12 @@ def fromRunArgs(runArgs):
 
     if not hasattr(runArgs,"conditionsTag") or runArgs.conditionsTag=="CURRENT":
         print("Resolving 'CURRENT' express conditions tag ...")
-        #sys.path.append('/afs/cern.ch/user/a/atlcond/utils/python/')
-        #from AtlCoolBKLib import resolveAlias
-        #resolver=resolveAlias()
-        #currentGlobalES=resolver.getCurrentES().replace("*","ST")
-        #printfunc ("Found ",currentGlobalES)
-        #ConfigFlags.IOVDbSvc.GlobalTag=currentGlobalES
-        #ConfigFlags.IOVDb.GlobalTag="CURRENT"
+        sys.path.append('/afs/cern.ch/user/a/atlcond/utils22/')
+        from CondUtilsLib.AtlCoolBKLib import resolveAlias
+        resolver=resolveAlias()
+        currentGlobalES=resolver.getCurrentES().replace("*","ST")
+        print("Found ",currentGlobalES)
+        ConfigFlags.IOVDb.GlobalTag=currentGlobalES
     else:
         ConfigFlags.IOVDb.GlobalTag=runArgs.conditionsTag
 
diff --git a/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx b/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx
index fd09a31192c9..f2b6bec21ff6 100644
--- a/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx
+++ b/LArCalorimeter/LArCafJobs/src/LArNoiseBursts.cxx
@@ -265,6 +265,7 @@ StatusCode LArNoiseBursts::initialize() {
   ATH_CHECK( m_cablingKey.initialize() );
   ATH_CHECK( m_BCKey.initialize() );
   ATH_CHECK( m_totalNoiseKey.initialize() );
+  ATH_CHECK( m_bcDataKey.initialize() );
 
   // Retrieve online ID helper
   const LArOnlineID* LArOnlineIDHelper = nullptr;
-- 
GitLab


From ff98509f6e068adeae4f6fc8a86a8a70eb7b6c40 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Sun, 26 Sep 2021 12:48:20 +0200
Subject: [PATCH 3/8] noise from raw

---
 .../LArCafJobs/python/LArNoiseConfig.py       | 83 ++++++++++++++++++-
 .../python/LArNoiseFromRawSkeleton.py         | 12 ++-
 2 files changed, 90 insertions(+), 5 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index b9717bcd24b7..ba3eb8a7dd9c 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -26,8 +26,8 @@ def LArNoiseCfg(flags):
     from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
     result.merge(BunchCrossingCondAlgCfg(flags))
     
-    from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
-    result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
+    from LArCellRec.LArCollisionTimeConfig import LArCollisionTimeCfg
+    result.merge(LArCollisionTimeCfg(flags))
 
     from AthenaMonitoring.TriggerInterface import getTrigDecisionTool
     result.merge(getTrigDecisionTool(flags))
@@ -60,17 +60,92 @@ def LArNoiseCfg(flags):
 
     return result
 
+def LArNoiseFromRawCfg(flags):
+
+    result=ComponentAccumulator()
+
+    from LArByteStream.LArRawDataReadingConfig import LArRawDataReadingCfg
+    result.merge(LArRawDataReadingCfg(flags))
+
+    #Setup cabling
+    from LArCabling.LArCablingConfig import LArOnOffIdMappingCfg
+    result.merge(LArOnOffIdMappingCfg(flags))
+    # setup bad chan and missing febs
+    from LArBadChannelTool.LArBadChannelConfig import LArBadChannelCfg,LArBadFebCfg
+    LArBadChannelCfg(flags)
+    LArBadFebCfg(flags)
+
+    from CaloRec.CaloRecoConfig import CaloRecoCfg
+    result.merge(CaloRecoCfg(ConfigFlags))
+
+    from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
+    result.merge(LArNoisyROSummaryCfg(ConfigFlags))
+    
+    from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
+    result.merge(BunchCrossingCondAlgCfg(flags))
+    
+    from CaloTools.CaloNoiseCondAlgConfig import CaloNoiseCondAlgCfg
+    result.merge(CaloNoiseCondAlgCfg(flags,"totalNoise"))
+
+    from LArROD.LArFebErrorSummaryMakerConfig import LArFebErrorSummaryMakerCfg
+    result.merge(LArFebErrorSummaryMakerCfg(flags))
+    result.getEventAlgo("LArFebErrorSummaryMaker").CheckAllFEB=False
+
+    if (flags.LArNoise.outNtupLAr != "" or flags.LArNoise.HECNoiseNtup!=""):
+       from LArCellRec.LArTimeVetoAlgConfig import LArTimeVetoAlgCfg
+       result.merge(LArTimeVetoAlgCfg(flags))
+
+       from AthenaMonitoring.TriggerInterface import getTrigDecisionTool
+       result.merge(getTrigDecisionTool(flags))
+       result.getPublicTool("TrigDecisionTool").TrigConfigSvc="TrigConf::TrigConfigSvc/TrigConfigSvc"
+
+
+    if (flags.LArNoise.outNtupLAr != ""):
+       noiseAlg=CompFactory.LArNoiseBursts("LArNoiseBursts")
+       noiseAlg.SigmaCut = flags.LArNoise.SigmaCut
+       noiseAlg.NumberOfBunchesInFront = flags.LArNoise.NumberOfBunchesInFront
+       noiseAlg.KeepOnlyCellID = flags.LArNoise.KeepOnlyCellID
+       result.addEventAlgo(noiseAlg)
+
+       result.addService(CompFactory.THistSvc(Output=["TTREE DATAFILE='"+flags.LArNoise.outNtupLAr+"' OPT='RECREATE'",]))
+
+    if (flags.LArNoise.HECNoiseNtup!=""):
+       hecAlg=CompFactory.LArHECNoise("LArHECNoise")
+       hecAlg.MinDigitADC = flags.LArNoise.MinDigitADC
+       hecAlg.MaxDeltaT = flags.LArNoise.MaxDeltaT
+       from IOVDbSvc.IOVDbSvcConfig import addFolders
+       result.merge(addFolders(flags, "/LAR/ElecCalibFlat/Pedestal", "LAR_ONL", className="CondAttrListCollection", db="CONDBR2"))
+       LArPedestalCondAlg =  CompFactory.getComp("LArFlatConditionsAlg<LArPedestalFlat>")
+       result.addCondAlgo(LArPedestalCondAlg(ReadKey="/LAR/ElecCalibFlat/Pedestal", WriteKey="LArPedestal"))
+
+       result.addEventAlgo(hecAlg)
+       if result.getService("THistSvc") != None:
+           result.getService("THistSvc").Output += ["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]
+       else:   
+           result.addService(CompFactory.THistSvc(Output=["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]))
+
+    if (flags.LArNoise.outHistLAr != ""):
+       from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
+       result.merge(LArNoisyROSummaryCfg(flags,OutputKey="LArNoisyROSummary"))
+       from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfig 
+       result.merge(LArNoisyROMonConfig(flags, inKey="LArNoisyROSummary"))
+
+    return result
+
+
 
 if __name__=="__main__":
     
     from AthenaConfiguration.AllConfigFlags import ConfigFlags
     from LArNoiseFlags import addNoiseFlags
     addNoiseFlags(ConfigFlags)
-    ConfigFlags.Input.Files=['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MetadataTests/data18/data18_13TeV.00363979.physics_Main.daq.ESD.0750._0001.pool.root']
+    #ConfigFlags.Input.Files=['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/MetadataTests/data18/data18_13TeV.00363979.physics_Main.daq.ESD.0750._0001.pool.root']
+    ConfigFlags.Input.Files=['/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/RecExOnline/data16_13TeV.00302347.express_express.merge.RAW._lb0432._SFO-ALL._0001.1']
 
     from AthenaConfiguration.MainServicesConfig import MainServicesCfg
     
     cfg=MainServicesCfg(ConfigFlags)
-    cfg.merge(LArNoiseCfg(ConfigFlags))
+    #cfg.merge(LArNoiseCfg(ConfigFlags))
+    cfg.merge(LArNoiseFromRawCfg(ConfigFlags))
 
     cfg.run(10)
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
index 55139c6d1a11..c127b4e37708 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
@@ -19,7 +19,11 @@ def fromRunArgs(runArgs):
     processPreInclude(runArgs, ConfigFlags)
     processPreExec(runArgs, ConfigFlags)
 
-    ConfigFlags.Input.Files=runArgs.inputESDFile
+    ConfigFlags.Input.Files=runArgs.inputBSFile
+
+    if hasattr(runArgs,"outputHIST_LARNOISEFile"):
+       ConfigFlags.LArNoise.outHistLAr=runArgs.outputHIST_LARNOISEFile
+
     if hasattr(runArgs,"outputNTUP_LARNOISEFile"):
        ConfigFlags.LArNoise.outNtupLAr=runArgs.outputNTUP_LARNOISEFile
 
@@ -44,6 +48,12 @@ def fromRunArgs(runArgs):
         ConfigFlags.Exec.MaxEvents=runArgs.maxEvents
 
     ConfigFlags.Trigger.doID=False
+    ConfigFlags.Trigger.doMuon=False
+    ConfigFlags.Trigger.doLVL1=False
+    ConfigFlags.Trigger.doL1Topo=False
+    ConfigFlags.Trigger.doHLT=False
+
+    ConfigFlags.Calo.Cell.doDeadCellCorr=True
 
     ConfigFlags.lock()
     
-- 
GitLab


From 9f5dd70cc0a22f273cc837d4828260ca12ccd6c9 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Sun, 26 Sep 2021 14:36:54 +0200
Subject: [PATCH 4/8] fixes

---
 .../LArCafJobs/python/LArNoiseConfig.py       | 22 ++++++++++++-------
 .../python/LArNoiseFromRawSkeleton.py         |  6 +++--
 .../share/LArNoiseBursts_fromraw_tf.py        |  2 +-
 3 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index ba3eb8a7dd9c..445d647b109e 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -63,6 +63,7 @@ def LArNoiseCfg(flags):
 def LArNoiseFromRawCfg(flags):
 
     result=ComponentAccumulator()
+    result.debugMode = "trackCA trackEventAlgo"
 
     from LArByteStream.LArRawDataReadingConfig import LArRawDataReadingCfg
     result.merge(LArRawDataReadingCfg(flags))
@@ -76,11 +77,8 @@ def LArNoiseFromRawCfg(flags):
     LArBadFebCfg(flags)
 
     from CaloRec.CaloRecoConfig import CaloRecoCfg
-    result.merge(CaloRecoCfg(ConfigFlags))
+    result.merge(CaloRecoCfg(flags))
 
-    from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
-    result.merge(LArNoisyROSummaryCfg(ConfigFlags))
-    
     from LumiBlockComps.BunchCrossingCondAlgConfig import BunchCrossingCondAlgCfg
     result.merge(BunchCrossingCondAlgCfg(flags))
     
@@ -95,9 +93,10 @@ def LArNoiseFromRawCfg(flags):
        from LArCellRec.LArTimeVetoAlgConfig import LArTimeVetoAlgCfg
        result.merge(LArTimeVetoAlgCfg(flags))
 
-       from AthenaMonitoring.TriggerInterface import getTrigDecisionTool
-       result.merge(getTrigDecisionTool(flags))
-       result.getPublicTool("TrigDecisionTool").TrigConfigSvc="TrigConf::TrigConfigSvc/TrigConfigSvc"
+       if (flags.LArNoise.outHistLAr == ""):
+          from AthenaMonitoring.TriggerInterface import getTrigDecisionTool
+          result.merge(getTrigDecisionTool(flags))
+          result.getPublicTool("TrigDecisionTool").TrigConfigSvc="TrigConf::TrigConfigSvc/TrigConfigSvc"
 
 
     if (flags.LArNoise.outNtupLAr != ""):
@@ -126,9 +125,16 @@ def LArNoiseFromRawCfg(flags):
 
     if (flags.LArNoise.outHistLAr != ""):
        from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
-       result.merge(LArNoisyROSummaryCfg(flags,OutputKey="LArNoisyROSummary"))
+       result.merge(LArNoisyROSummaryCfg(flags))
        from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfig 
+       from AthenaCommon.Constants import DEBUG
        result.merge(LArNoisyROMonConfig(flags, inKey="LArNoisyROSummary"))
+       result.getEventAlgo("larNoisyROMonAlg").OutputLevel=DEBUG
+
+       if result.getService("THistSvc") != None:
+           result.getService("THistSvc").Output += [" DATAFILE='"+flags.LArNoise.outHistLAr+"' OPT='RECREATE'",]
+       else:   
+           result.addService(CompFactory.THistSvc(Output=[flags.DQ.FileKey+" DATAFILE='"+flags.LArNoise.outHistLAr+"' OPT='RECREATE'",]))
 
     return result
 
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
index c127b4e37708..551cdaa18d39 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
@@ -32,8 +32,8 @@ def fromRunArgs(runArgs):
 
     if not hasattr(runArgs,"conditionsTag") or runArgs.conditionsTag=="CURRENT":
         print("Resolving 'CURRENT' express conditions tag ...")
-        sys.path.append('/afs/cern.ch/user/a/atlcond/utils22/CondUtilsLib/')
-        from AtlCoolBKLib import resolveAlias
+        sys.path.append('/afs/cern.ch/user/a/atlcond/utils22/')
+        from CondUtilsLib.AtlCoolBKLib import resolveAlias
         resolver=resolveAlias()
         currentGlobalES=resolver.getCurrentES().replace("*","ST")
         print("Found ",currentGlobalES)
@@ -60,6 +60,8 @@ def fromRunArgs(runArgs):
     cfg=MainServicesCfg(ConfigFlags)
     cfg.merge(LArNoiseFromRawCfg(ConfigFlags))
 
+    #OFL LUMI tag not connected to ES tak, doing it here:
+    cfg.getService("IOVDbSvc").overrideTags+=['<prefix>/TRIGGER/OFLLUMI/OflPrefLumi</prefix><tag>OflPrefLumi-RUN2-UPD4-12</tag>']
     processPostInclude(runArgs, ConfigFlags, cfg)
     processPostExec(runArgs, ConfigFlags, cfg)
 
diff --git a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
index b49e7d30fcab..de03fc7adef2 100755
--- a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
+++ b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
@@ -15,7 +15,7 @@ if __name__ == '__main__':
 
     executorSet = set()
     executorSet.add(athenaExecutor(name = 'LArNoiseBursts_from_raw', skeletonFile = None,
-                                   skeletonCA='LArCafJobs.LArNoiseFromRawSkeleton.py',
+                                   skeletonCA='LArCafJobs.LArNoiseFromRawSkeleton',
                                    substep = 'r2e', inData = ['BS',], outData = ['NTUP_LARNOISE','NTUP_HECNOISE','HIST_LARNOISE']))
    
     trf = transform(executor = executorSet) 
-- 
GitLab


From ee4d4991c59d2006be5b0f1c52e247f581cbeff5 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Sun, 26 Sep 2021 21:46:55 +0200
Subject: [PATCH 5/8] fixing output hist file

---
 LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py          | 5 -----
 LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py | 1 +
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index 445d647b109e..7b35dbaa1f71 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -131,11 +131,6 @@ def LArNoiseFromRawCfg(flags):
        result.merge(LArNoisyROMonConfig(flags, inKey="LArNoisyROSummary"))
        result.getEventAlgo("larNoisyROMonAlg").OutputLevel=DEBUG
 
-       if result.getService("THistSvc") != None:
-           result.getService("THistSvc").Output += [" DATAFILE='"+flags.LArNoise.outHistLAr+"' OPT='RECREATE'",]
-       else:   
-           result.addService(CompFactory.THistSvc(Output=[flags.DQ.FileKey+" DATAFILE='"+flags.LArNoise.outHistLAr+"' OPT='RECREATE'",]))
-
     return result
 
 
diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
index 551cdaa18d39..5eb8d9526ba2 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseFromRawSkeleton.py
@@ -23,6 +23,7 @@ def fromRunArgs(runArgs):
 
     if hasattr(runArgs,"outputHIST_LARNOISEFile"):
        ConfigFlags.LArNoise.outHistLAr=runArgs.outputHIST_LARNOISEFile
+       ConfigFlags.Output.HISTFileName =runArgs.outputHIST_LARNOISEFile
 
     if hasattr(runArgs,"outputNTUP_LARNOISEFile"):
        ConfigFlags.LArNoise.outNtupLAr=runArgs.outputNTUP_LARNOISEFile
-- 
GitLab


From 01e5e3c1d583e25d505dc077775dfc85715ca126 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Sun, 26 Sep 2021 21:49:27 +0200
Subject: [PATCH 6/8] removing debug

---
 LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index 7b35dbaa1f71..7781ddd16fb7 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -127,9 +127,9 @@ def LArNoiseFromRawCfg(flags):
        from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
        result.merge(LArNoisyROSummaryCfg(flags))
        from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfig 
-       from AthenaCommon.Constants import DEBUG
+       #from AthenaCommon.Constants import DEBUG
        result.merge(LArNoisyROMonConfig(flags, inKey="LArNoisyROSummary"))
-       result.getEventAlgo("larNoisyROMonAlg").OutputLevel=DEBUG
+       #result.getEventAlgo("larNoisyROMonAlg").OutputLevel=DEBUG
 
     return result
 
-- 
GitLab


From b4a6dd22558d2601beee19208b8e2760ec89208c Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Tue, 28 Sep 2021 08:15:46 +0200
Subject: [PATCH 7/8] fixing output

---
 LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py           | 2 --
 LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index 7781ddd16fb7..3173302eb4a0 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -127,9 +127,7 @@ def LArNoiseFromRawCfg(flags):
        from LArCellRec.LArNoisyROSummaryConfig import LArNoisyROSummaryCfg
        result.merge(LArNoisyROSummaryCfg(flags))
        from LArMonitoring.LArNoisyROMonAlg import LArNoisyROMonConfig 
-       #from AthenaCommon.Constants import DEBUG
        result.merge(LArNoisyROMonConfig(flags, inKey="LArNoisyROSummary"))
-       #result.getEventAlgo("larNoisyROMonAlg").OutputLevel=DEBUG
 
     return result
 
diff --git a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
index de03fc7adef2..b7887da5c155 100755
--- a/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
+++ b/LArCalorimeter/LArCafJobs/share/LArNoiseBursts_fromraw_tf.py
@@ -35,7 +35,7 @@ if __name__ == '__main__':
                             help='Output HECNoise file', group='Ntuple Files')
 
     trf.parser.add_argument('--outputHIST_LARNOISEFile', nargs='+',
-                            type=trfArgClasses.argFactory(trfArgClasses.argHISTFile, io='output'),
+                            type=trfArgClasses.argFactory(trfArgClasses.argHISTFile, io='output',countable=False),
                             help='Output Noise hist file', group='Hist Files')
 
     trf.parseCmdLineArgs(sys.argv[1:])
-- 
GitLab


From 07557c9380b31517cc92ae39ed2c0872ca785590 Mon Sep 17 00:00:00 2001
From: Pavol Strizenec <pavol.strizenec@cern.ch>
Date: Sat, 2 Oct 2021 17:14:23 +0200
Subject: [PATCH 8/8] warning fix

---
 LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
index 3173302eb4a0..8da1782b7c32 100644
--- a/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
+++ b/LArCalorimeter/LArCafJobs/python/LArNoiseConfig.py
@@ -53,7 +53,7 @@ def LArNoiseCfg(flags):
         result.addCondAlgo(LArPedestalCondAlg(ReadKey="/LAR/ElecCalibFlat/Pedestal", WriteKey="LArPedestal"))
 
         result.addEventAlgo(hecAlg)
-        if result.getService("THistSvc") != None:
+        if result.getService("THistSvc") is not None:
            result.getService("THistSvc").Output += ["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]
         else:   
            result.addService(CompFactory.THistSvc(Output=["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]))
@@ -118,7 +118,7 @@ def LArNoiseFromRawCfg(flags):
        result.addCondAlgo(LArPedestalCondAlg(ReadKey="/LAR/ElecCalibFlat/Pedestal", WriteKey="LArPedestal"))
 
        result.addEventAlgo(hecAlg)
-       if result.getService("THistSvc") != None:
+       if result.getService("THistSvc") is not None:
            result.getService("THistSvc").Output += ["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]
        else:   
            result.addService(CompFactory.THistSvc(Output=["HEC DATAFILE='"+flags.LArNoise.HECNoiseNtup+"' OPT='RECREATE'",]))
-- 
GitLab