From 31b58e59b77a48f7667db2e93ab7fbf0a0ca85b4 Mon Sep 17 00:00:00 2001
From: malexand <michael.alexander@glasgow.ac.uk>
Date: Wed, 13 Sep 2017 21:04:38 +0200
Subject: [PATCH] Add StrippingCache for S29r1

---
 Phys/StrippingCache/CMakeLists.txt            |   2 +-
 Phys/StrippingCache/doc/release.notes         |   5 +
 .../options/DV-Stripping29r1-Stripping.py     | 124 ++++++++++++++++++
 3 files changed, 130 insertions(+), 1 deletion(-)
 create mode 100644 Phys/StrippingCache/options/DV-Stripping29r1-Stripping.py

diff --git a/Phys/StrippingCache/CMakeLists.txt b/Phys/StrippingCache/CMakeLists.txt
index 05df5d641..d0ff4f4a4 100644
--- a/Phys/StrippingCache/CMakeLists.txt
+++ b/Phys/StrippingCache/CMakeLists.txt
@@ -42,7 +42,7 @@ if ( NOT "$ENV{CMTCONFIG}" STREQUAL "x86_64-slc6-gcc48-do0" )
  set ( conf_deps ${deps} DaVinciConfUserDB )
 
  # Build the cache only for the most recent stripping.
- foreach(strip 29)
+ foreach(strip 29r1)
  
   # Stripping cache name
   set ( sname S${strip}FunctorCache )
diff --git a/Phys/StrippingCache/doc/release.notes b/Phys/StrippingCache/doc/release.notes
index 2255c98f2..96b90247c 100644
--- a/Phys/StrippingCache/doc/release.notes
+++ b/Phys/StrippingCache/doc/release.notes
@@ -5,6 +5,11 @@
 ! Created     : 2015-02-04
 ! -----------------------------------------------------------------------------
 
+!======================== StrippingCache v1r10p1 2017-09-13 =====================
+
+! 2017-09-13 - Michael Alexander
+ - Add cache for S29r1.
+
 !======================== StrippingCache v1r10 2017-06-13 =======================
 
 ! 2017-05-30 - Michael Alexander
diff --git a/Phys/StrippingCache/options/DV-Stripping29r1-Stripping.py b/Phys/StrippingCache/options/DV-Stripping29r1-Stripping.py
new file mode 100644
index 000000000..6a1be5af7
--- /dev/null
+++ b/Phys/StrippingCache/options/DV-Stripping29r1-Stripping.py
@@ -0,0 +1,124 @@
+"""
+Options for building Stripping29r1. 
+"""
+
+stripping='stripping29r1'
+
+#use CommonParticlesArchive
+from CommonParticlesArchive import CommonParticlesArchiveConf
+CommonParticlesArchiveConf().redirect(stripping)
+
+
+from Gaudi.Configuration import *
+MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M"
+
+#
+# Disable the cache in Tr/TrackExtrapolators 
+#
+from Configurables import TrackStateProvider
+TrackStateProvider().CacheStatesOnDemand = False
+
+#
+# Fix for TrackEff lines
+#
+from Configurables import DecodeRawEvent
+DecodeRawEvent().setProp("OverrideInputs",4.2)
+
+#
+# Build the streams and stripping object
+#
+from StrippingConf.Configuration import StrippingConf, StrippingStream
+from StrippingSettings.Utils import strippingConfiguration
+from StrippingArchive.Utils import buildStreams
+from StrippingArchive import strippingArchive
+
+#get the configuration dictionary from the database
+config  = strippingConfiguration(stripping)
+#get the line builders from the archive
+archive = strippingArchive(stripping)
+
+streams = buildStreams(stripping = config, archive = archive)
+	
+leptonicMicroDSTname   = 'Leptonic'
+charmMicroDSTname      = 'Charm'
+pidMicroDSTname        = 'PID'
+bhadronMicroDSTname    = 'Bhadron'
+mdstStreams = [ leptonicMicroDSTname,charmMicroDSTname,pidMicroDSTname,bhadronMicroDSTname ]
+dstStreams  = [ "BhadronCompleteEvent", "CharmCompleteEvent", "Dimuon",
+                "EW", "Semileptonic", "Calibration", "MiniBias", "Radiative" ]
+
+stripTESPrefix = 'Strip'
+
+from Configurables import ProcStatusCheck
+
+# Fix for removal of default constructor for AALLSAMEBPV after DV v41r3.
+# Thi has been fixed from S28 onwards.
+#from Gaudi.Configuration import allConfigurables
+#for conf in allConfigurables.values() :
+#    if hasattr(conf, 'CombinationCut') and 'AALLSAMEBPV' in conf.CombinationCut :
+#        conf.CombinationCut = conf.CombinationCut.replace('AALLSAMEBPV', 'AALLSAMEBPV(-1, -1, -1)')
+
+sc = StrippingConf( Streams = streams,
+                    MaxCandidates = 2000,
+                    MaxCombinations = 10000000,
+                    AcceptBadEvents = False,
+                    BadEventSelection = ProcStatusCheck(),
+                    TESPrefix = stripTESPrefix,
+                    ActiveMDSTStream = True,
+                    Verbose = True,
+                    DSTStreams = dstStreams,
+                    MicroDSTStreams = mdstStreams )
+
+from Configurables import ApplicationMgr, AuditorSvc, SequencerTimerTool
+	
+# Initial IOV time
+# http://www.onlineconversion.com/unix_time.htm
+# values in ns (so multiply values from above link by 1e9)
+#from Configurables import EventClockSvc
+#EventClockSvc().EventTimeDecoder = "OdinTimeDecoder"
+
+appMgr = ApplicationMgr()
+appMgr.OutputLevel = 6
+appMgr.ExtSvc += [ 'ToolSvc', 'AuditorSvc' ]
+
+appMgr.HistogramPersistency = "ROOT"
+ntSvc = NTupleSvc()
+appMgr.ExtSvc += [ ntSvc ]
+
+from Configurables import ( LHCbApp, PhysConf, AnalysisConf,
+                            DstConf, LumiAlgsConf, DDDBConf )
+
+LHCbApp().DDDBtag   = "dddb-20150724"
+LHCbApp().CondDBtag = "cond-20170510"
+
+# Can be enabled for next full stack release
+PhysConf().OutputLevel     = appMgr.OutputLevel
+#AnalysisConf().OutputLevel = appMgr.OutputLevel
+
+datatype =  "2017"
+PhysConf().DataType      = datatype
+AnalysisConf().DataType  = datatype
+LumiAlgsConf().DataType  = datatype
+DDDBConf().DataType      = datatype
+
+inputType = "RDST"
+LumiAlgsConf().InputType = inputType
+PhysConf().InputType     = inputType
+
+unPack = ["Reconstruction"]
+PhysConf().EnableUnpack = unPack
+DstConf().EnableUnpack  = unPack
+
+lumiSeq = GaudiSequencer("LumiSeq")
+LumiAlgsConf().LumiSequencer = lumiSeq
+
+appMgr.TopAlg += [ PhysConf().initSequence(),
+                   AnalysisConf().initSequence(),
+                   sc.sequence(), lumiSeq ]
+
+#from Configurables import DaVinci
+#DaVinci().ProductionType = "Stripping"
+#DaVinci().DataType   = datatype
+#DaVinci().DDDBtag    = LHCbApp().DDDBtag
+#DaVinci().CondDBtag  = LHCbApp().CondDBtag
+#DaVinci().appendToMainSequence( [ sc.sequence() ] )
-- 
GitLab