diff --git a/doc/release.notes b/doc/release.notes index b316c791fdc954256d26f26ab8c29848b8d3ef2c..e0788b558eae603633937ac35eefc30793db3dc8 100644 --- a/doc/release.notes +++ b/doc/release.notes @@ -3,6 +3,14 @@ ! Responsible : Jessy Daniel, Yuya Shimizu ! Purpose : Script repository for B2OC configurables ----------------------------------------------------------------------------- +=========================== 2022-09-06 B2OCConfig v1r140 ========================= +!2022-09-06 - Linxuan Zhu +- Added options/MCFiltering/Lb02D0DsmP_strip21r1_filter_mDST.py +- Added options/MCFiltering/Lb02D0DsmP_strip21_filter_mDST.py +- Added options/MCFiltering/Lb02D0DsmP_strip24r2_filter_mDST.py +- Added options/MCFiltering/Lb02D0DsmP_strip28r2_filter_mDST.py +- Added options/MCFiltering/Lb02D0DsmP_strip29r2_filter_mDST.py +- Added options/MCFiltering/Lb02D0DsmP_strip34_filter_mDST.py =========================== 2022-06-23 B2OCConfig v1r139 ========================= !2022-06-23 - Lei Hao - Added options/MCFiltering/Filter_B2OC_bdh_strip24r2_mdst.py diff --git a/options/MCFiltering/Lb02D0DsmP_strip21_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip21_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..22cc135cbaffce27f2b4355799326eee6f50aff2 --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip21_filter_mDST.py @@ -0,0 +1,172 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping21' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +# +''' +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +''' + +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x361121) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2011' +IOHelper().inputFiles([ + '2011/B2DD0KK3PiPHSP/00039303_00000008_2.AllStreams.dst' +], clear=True) +################################################################## +""" + + diff --git a/options/MCFiltering/Lb02D0DsmP_strip21r1_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip21r1_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..9e7579780af5e276b663f80c907ba67cec420afc --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip21r1_filter_mDST.py @@ -0,0 +1,172 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping21r1' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +# +""" +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +""" + +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x3611211) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2011' +IOHelper().inputFiles([ + '2011/B2DD0KK3PiPHSP/00039303_00000008_2.AllStreams.dst' +], clear=True) +################################################################## +""" + + diff --git a/options/MCFiltering/Lb02D0DsmP_strip24r2_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip24r2_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..1afdfd446a517281e5d97b14a4332b421eb2495c --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip24r2_filter_mDST.py @@ -0,0 +1,177 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping24r2' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine', + 'StrippingB02D0DPiBeauty2CharmLine', + 'StrippingB02D0DPiD02K3PiBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD02K3PiBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD2HHBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +''' +# +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +''' + +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x44105242) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2016' +IOHelper().inputFiles([ + '2016/B2DD0KPHSP/00059985_00000043_7.AllStreams.dst' +], clear=True) +################################################################## +""" + + diff --git a/options/MCFiltering/Lb02D0DsmP_strip28r2_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip28r2_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..8eb970f2e7d90c96c2476a336616d0c7a28f8420 --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip28r2_filter_mDST.py @@ -0,0 +1,175 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping28r2' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine', + 'StrippingB02D0DPiBeauty2CharmLine', + 'StrippingB02D0DPiD02K3PiBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD02K3PiBeauty2CharmLine', + 'StrippingLb2DD0pD2HHHD2HHBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +# +''' +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +''' +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x44105282) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2016' +IOHelper().inputFiles([ + '2016/B2DD0KPHSP/00059985_00000043_7.AllStreams.dst' +], clear=True) +################################################################## +""" + + diff --git a/options/MCFiltering/Lb02D0DsmP_strip29r2_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip29r2_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..f0161e9159f76b76428527d83f027fa8a6adb573 --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip29r2_filter_mDST.py @@ -0,0 +1,175 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping29r2' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine', + 'StrippingB02D0DPiBeauty2CharmLine', + 'StrippingB02D0DPiD02K3PiBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +# +''' +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +''' + +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x4272292) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2016' +IOHelper().inputFiles([ + '2016/B2DD0KPHSP/00059985_00000043_7.AllStreams.dst' +], clear=True) +################################################################## +""" + + diff --git a/options/MCFiltering/Lb02D0DsmP_strip34_filter_mDST.py b/options/MCFiltering/Lb02D0DsmP_strip34_filter_mDST.py new file mode 100644 index 0000000000000000000000000000000000000000..6d7cd2325acbba6bc3ba8fa848768aded2fbb8f7 --- /dev/null +++ b/options/MCFiltering/Lb02D0DsmP_strip34_filter_mDST.py @@ -0,0 +1,175 @@ +""" +Stripping filtering Template for B2OC filtering requests +stripping for Lb02D0DsmP in mDST +@author Linxuan Zhu +@date 2022-09-06 +""" +################################################################## +# ONLY THESE SECTIONS NEED TO BE MODIFIED FOR STANDARD FILTERING +################################################################## + +#stripping version +################################################################## +stripping='stripping34' +################################################################## + +#use CommonParticlesArchive +from CommonParticlesArchive import CommonParticlesArchiveConf +CommonParticlesArchiveConf().redirect(stripping) + +from Gaudi.Configuration import * +MessageSvc().Format = "% F%30W%S%7W%R%T %0W%M" + +#Raw event juggler to split Other/RawEvent into Velo/RawEvent and Tracker/RawEvent +# +from Configurables import RawEventJuggler +juggler = RawEventJuggler( DataOnDemand=True, Input=2.0, Output=4.0 ) +# +# Build the streams and stripping object +# +from StrippingConf.Configuration import StrippingConf, StrippingStream +from StrippingSettings.Utils import strippingConfiguration +from StrippingArchive.Utils import buildStreams, cloneLinesFromStream +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) +# Select my lines +#OUTPUT STREAM NAME +################################################################## +AllStreams = StrippingStream("Lb02D0DsmP.Strip") +################################################################## +linesToAdd = [] + +#LIST OF FILTERED LINES +################################################################## +MyLines = [ 'StrippingB02D0DKBeauty2CharmLine', + 'StrippingB02D0DKD02K3PiBeauty2CharmLine', + 'StrippingB02D0DPiBeauty2CharmLine', + 'StrippingB02D0DPiD02K3PiBeauty2CharmLine'] +################################################################## + + +for stream in streams: + if 'Bhadron' in stream.name(): + for line in stream.lines: + line._prescale = 1.0 + if line.name() in MyLines: + linesToAdd.append(line) +AllStreams.appendLines(linesToAdd) + + + +sc = StrippingConf( Streams = [ AllStreams ], + MaxCandidates = 2000, + TESPrefix = 'Strip' + ) + + +AllStreams.sequence().IgnoreFilterPassed = False # so that we do not get all events written out + +# + +# Configuration of SelDSTWriter +# +''' +#STANDARD CONFIGURATION FOR FULL DST OUTPUT +#(change this for the following commented section for mDST output) +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements + ) + +SelDSTWriterElements = { + 'default' : stripDSTElements(pack=enablePacking) + } + +SelDSTWriterConf = { + 'default' : stripDSTStreamConf(pack=enablePacking) + } +################################################################## +''' + +#STANDARD CONFIGURATION FOR MDST OUTPUT +################################################################## +enablePacking = True +from DSTWriters.microdstelements import * +from DSTWriters.Configuration import (SelDSTWriter, + stripDSTStreamConf, + stripDSTElements, + stripMicroDSTStreamConf, + stripMicroDSTElements, + stripCalibMicroDSTStreamConf + ) + +SelDSTWriterElements = { + 'default' : stripMicroDSTElements(pack=enablePacking,isMC=True) + } + +SelDSTWriterConf = { + 'default' : stripMicroDSTStreamConf(pack=enablePacking, isMC=True) + } +################################################################## + + + +#Items that might get lost when running the CALO+PROTO ReProcessing in DV +caloProtoReprocessLocs = [ "/Event/pRec/ProtoP#99", "/Event/pRec/Calo#99" ] + +# Make sure they are present on full DST streams +SelDSTWriterConf['default'].extraItems += caloProtoReprocessLocs + +dstWriter = SelDSTWriter( "MyDSTWriter", + StreamConf = SelDSTWriterConf, + MicroDSTElements = SelDSTWriterElements, + OutputFileSuffix ='Filtered', + SelectionSequences = sc.activeStreams() + ) + +# Add stripping TCK +from Configurables import StrippingTCK + +#TCK IN THE FOLLOWING FORMAT: DaVinci version (XXrXpX) Stripping version (XXrXpX) (i.e. DaVinci 41r4p5 with Stripping28r1p1 -> TCK:41452811) +#you can find the associated DaVinci version for each stripping in: https://twiki.cern.ch/twiki/bin/view/Main/ProcessingPasses +################################################################## +stck = StrippingTCK(HDRLocation = '/Event/Strip/Phys/DecReports', TCK=0x44434) +################################################################## + +# +# DaVinci Configuration +# +from Configurables import DaVinci +DaVinci().Simulation = True +DaVinci().EvtMax = -1 # Number of events +DaVinci().HistogramFile = "DVHistos.root" +DaVinci().appendToMainSequence( [ sc.sequence() ] ) +DaVinci().appendToMainSequence( [ stck ] ) +DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) +DaVinci().ProductionType = "Stripping" + +# Change the column size of Timing table +from Configurables import TimingAuditor, SequencerTimerTool +TimingAuditor().addTool(SequencerTimerTool,name="TIMER") +TimingAuditor().TIMER.NameSize = 60 + + +""" +#Testing on local data +################################################################## +from GaudiConf import IOHelper +DaVinci().DataType = '2016' +IOHelper().inputFiles([ + '2016/B2DD0KPHSP/00059985_00000043_7.AllStreams.dst' +], clear=True) +################################################################## +""" + +