diff --git a/Phys/Tesla/python/Tesla/Configuration.py b/Phys/Tesla/python/Tesla/Configuration.py index bffbcc7dc70fe4e9721499a3d929edffd1f0909b..6df7c89f49c738ee0eeef81d0cdf3f00184a87a6 100644 --- a/Phys/Tesla/python/Tesla/Configuration.py +++ b/Phys/Tesla/python/Tesla/Configuration.py @@ -288,32 +288,6 @@ class Tesla(LHCbConfigurableUser): if self.getProp('DuplicateCheck'): TeslaReportAlgoSeq.Members += [dplic] - if self.getProp('Pack'): - packer = PackParticlesAndVertices( name = "TurboPacker", - InputStream = "/Event"+"/"+self.base.rstrip('/'), - DeleteInput = False, - EnableCheck = False, - AlwaysCreateOutput = True) - TeslaReportAlgoSeq.Members +=[packer] - - from Configurables import PackCaloHypo as PackCaloHypos - hypopacker = PackCaloHypos( name = "PackCaloHypos", - AlwaysCreateOutput = True, - DeleteInput = False, - OutputLevel = self.getProp('OutputLevel'), - InputName = self.base+"CaloHypos", - OutputName = self.base+"pRec/neutral/Hypos" ) - from Configurables import DataPacking__Pack_LHCb__CaloClusterPacker_ as PackCaloClusters - clusterpacker = PackCaloClusters( name = "PackCaloClusters", - AlwaysCreateOutput = True, - DeleteInput = False, - OutputLevel = self.getProp('OutputLevel'), - InputName = self.base+"CaloClusters", - OutputName = self.base+"pRec/neutral/Clusters" ) - TeslaReportAlgoSeq.Members +=[hypopacker,clusterpacker] - - packer.OutputLevel = min(self.getProp('OutputLevel'),self.getProp('PackerOutputLevel')) - # Make protoparticle -> truth tables ***************************************** inputType = self.getProp('InputType') if (inputType=='XDST') or (inputType=='LDST'): @@ -337,6 +311,9 @@ class Tesla(LHCbConfigurableUser): assocpp.VetoEmpty=True tesROOT="/Event/"+self.base assocpp.RootInTES=tesROOT + # Start with an empty input list, so we don't accidentally create + # relations for non-Turbo/non-PersistReco objects + assocpp.InputData = [] # Add Turbo++ track and protoparticle locations truthSeqStandard = self._configureTrackTruth(assocpp,trackcont) @@ -352,6 +329,13 @@ class Tesla(LHCbConfigurableUser): assocpp.InputData += [ matchedProtos[0] ] ChargedProtoSeq.Members+=[trackTruthSeq] + # Add container of merged long and downstream PersistReco PPs + # TODO this should be in the list in the configuration file + assocpp.InputData += ['Hlt2/Protos/Charged'] + print("Adding additional PR protoparticles for truth matching: "+assocpp.InputData[-1]) + trackTruthSeq = self._configureTrackTruth(assocpp, '/Event/Hlt2/TrackFitted/Charged') + ChargedProtoSeq.Members += [trackTruthSeq] + # Add standard Turbo ProtoParticles assocpp.InputData += [ protocont ] @@ -405,6 +389,32 @@ class Tesla(LHCbConfigurableUser): # Add final sequences TeslaReportAlgoSeq.Members+=[ChargedProtoSeq,NeutralProtoSeq] + if self.getProp('Pack'): + packer = PackParticlesAndVertices( name = "TurboPacker", + InputStream = "/Event"+"/"+self.base.rstrip('/'), + DeleteInput = False, + EnableCheck = False, + AlwaysCreateOutput = True) + TeslaReportAlgoSeq.Members +=[packer] + + from Configurables import PackCaloHypo as PackCaloHypos + hypopacker = PackCaloHypos( name = "PackCaloHypos", + AlwaysCreateOutput = True, + DeleteInput = False, + OutputLevel = self.getProp('OutputLevel'), + InputName = self.base+"CaloHypos", + OutputName = self.base+"pRec/neutral/Hypos" ) + from Configurables import DataPacking__Pack_LHCb__CaloClusterPacker_ as PackCaloClusters + clusterpacker = PackCaloClusters( name = "PackCaloClusters", + AlwaysCreateOutput = True, + DeleteInput = False, + OutputLevel = self.getProp('OutputLevel'), + InputName = self.base+"CaloClusters", + OutputName = self.base+"pRec/neutral/Clusters" ) + TeslaReportAlgoSeq.Members +=[hypopacker,clusterpacker] + + packer.OutputLevel = min(self.getProp('OutputLevel'),self.getProp('PackerOutputLevel')) + TeslaOutputStreamsSequence = GaudiSequencer('TeslaOutputStreamsSequence') TeslaOutputStreamsSequence.ModeOR = True; @@ -607,6 +617,9 @@ class Tesla(LHCbConfigurableUser): if self.getProp('Simulation')==True: self._unpackMC() TurboConf().setProp("PersistReco",True) + # We don't want the PersistReco reconstruction under + # /Event/Turbo, else it will be packed + TurboConf().setProp("RootInTES", "/Event") self._configureOutput() #