""" Options for building Stripping21 on MC, """ #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" # Tighten Trk Chi2 to <3 from CommonParticles.Utils import DefaultTrackingCuts DefaultTrackingCuts().Cuts = { "Chi2Cut" : [ 0, 3 ], "CloneDistCut" : [5000, 9e+99 ] } # #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) # # Merge into one stream # AllStreams = StrippingStream("AllStreams21") for stream in streams : if stream.name() == 'Bhadron' : lines = [] for line in stream.lines : if 'B2KShh' in line.name() : lines.append(line) AllStreams.appendLines( lines ) sc = StrippingConf( Streams = [ AllStreams ], MaxCandidates = 2000, TESPrefix = 'Strip21' ) # so that we get only events selected by our stripping lines written out AllStreams.sequence().IgnoreFilterPassed = False # # Configuration of SelDSTWriter # enablePacking = True from DSTWriters.microdstelements import * from DSTWriters.Configuration import (SelDSTWriter, stripDSTStreamConf, stripDSTElements ) stripPrefixes = ['Strip','Strip21'] SelDSTWriterElements = { 'default' : stripDSTElements(pack=enablePacking,stripPrefix=stripPrefixes) } SelDSTWriterConf = { 'default' : stripDSTStreamConf(pack=enablePacking,selectiveRawEvent=False,stripPrefix=stripPrefixes) } #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 ='000000', SelectionSequences = sc.activeStreams() ) # Add stripping TCK from Configurables import StrippingTCK stck = StrippingTCK(HDRLocation = '/Event/Strip21/Phys/DecReports', TCK=0x36112100) # # DaVinci Configuration # from Configurables import DaVinci DaVinci().Simulation = True DaVinci().EvtMax = 1000 # Number of events DaVinci().HistogramFile = "DVHistos.root" DaVinci().appendToMainSequence( [ sc.sequence() ] ) DaVinci().appendToMainSequence( [ stck ] ) DaVinci().appendToMainSequence( [ dstWriter.sequence() ] ) DaVinci().ProductionType = "Stripping" DaVinci().DataType = "2012" DaVinci().InputType = "DST" #DaVinci().DDDBtag = 'dddb-20140729' #DaVinci().CondDBtag = 'sim-20140730-vc-md100' # Change the column size of Timing table from Configurables import TimingAuditor, SequencerTimerTool TimingAuditor().addTool(SequencerTimerTool,name="TIMER") TimingAuditor().TIMER.NameSize = 60