From 6fc9415d70fe2f22cec88ee2199c068d2119af5b Mon Sep 17 00:00:00 2001 From: Michel De Cian <michel.de.cian@cern.ch> Date: Fri, 27 Oct 2017 17:15:25 +0200 Subject: [PATCH] Commit latest try for neutral association in TurboSP --- Phys/Tesla/python/Tesla/Configuration.py | 67 ++++++++++++++++++++---- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/Phys/Tesla/python/Tesla/Configuration.py b/Phys/Tesla/python/Tesla/Configuration.py index c0bea1330..3712f9b85 100644 --- a/Phys/Tesla/python/Tesla/Configuration.py +++ b/Phys/Tesla/python/Tesla/Configuration.py @@ -224,19 +224,21 @@ class Tesla(LHCbConfigurableUser): assocdigits = CaloDigit2MCLinks2Table("TurboDigitAssoc") return - def _configureClustersAndProtosTruth(self,digits,clusters,protos) : + def _configureClustersAndProtosTruth(self,digits,clusters,protos, protoTabLoc = "Relations/Turbo/NeutralPP2MC" ) : retSeq = GaudiSequencer("NeutralTruth") clusterTabLoc = self.base + "Relations/CaloClusters" assoccluster = CaloClusterMCTruth("TurboClusterAssoc") - assoccluster.OutputLevel = self.getProp('OutputLevel') - assoccluster.Input = digits - assoccluster.Output = clusterTabLoc - assoccluster.Clusters+=clusters + #assoccluster.OutputLevel = self.getProp('OutputLevel') + #assoccluster.OutputLevel = 1 + assoccluster.Input = digits + assoccluster.Output = clusterTabLoc + #assoccluster.Clusters += clusters + assoccluster.Clusters += [ "/Event/Turbo/PID/Calo/EcalClusters", "/Event/Turbo/PID/Calo/EcalSplitClusters", "/Event/Turbo/PID/Calo/CaloClusters" ] # When filtering MC, the relations table cloners will copy the tables # to /Event/Turbo for us. Otherwise we create them there directly - protoTabLoc = "Relations/Turbo/NeutralPP2MC" + #protoTabLoc = "Relations/Turbo/NeutralPP2MC" if not self.getProp("FilterMC"): protoTabLoc = os.path.join(self.base, protoTabLoc) assocneutral = NeutralPP2MC("TurboNeutralPP2MC") @@ -476,6 +478,7 @@ class Tesla(LHCbConfigurableUser): assocdigits.OutputLevel = self.getProp('OutputLevel') outputiDigiLoc = tesROOT + "Relations/CaloDigits" assocdigits.Output = outputDigiLoc + ## Add the cluster associator ## Finally configure the neutral PP2MC associator @@ -606,6 +609,7 @@ class Tesla(LHCbConfigurableUser): assocpp.OutputLevel = self.getProp('OutputLevel') #assocpp.OutputLevel = 1 assocpp.VetoEmpty=True + #assocpp.RootInTES = '/Event/Turbo' # Make all track -> MCParticle linker tables for loc in track_locs: truthSeq = self._configureTrackTruth(assocpp,loc) @@ -621,13 +625,52 @@ class Tesla(LHCbConfigurableUser): relationsLocations = [ loc.replace('/Event', '/Event/Relations') for loc in proto_locs ] print relationsLocations print "++++++++++++++++" - #relationsLocations = [ "/Event/Relations/Turbo/Long/Protos" ] - filterMCSeq = self._filterMCParticlesSequence(relationsLocations) ChargedProtoSeq.Members += [filterMCSeq] - return ChargedProtoSeq + # NEUTRAL STUFF ################################################################ + NeutralProtoSeq = GaudiSequencer("NeutralTruthSequencer") + + ## Add the digits associator + assocdigits = CaloDigit2MCLinks2Table("TurboDigitAssoc") + #assocdigits.OutputLevel = self.getProp('OutputLevel') + #assocdigits.OutputLevel = 1 + outputDigiLoc = self.base+"Relations/CaloDigits" + assocdigits.Output = outputDigiLoc + assocdigits.Inputs = [ "Turbo/Raw/Ecal/Digits", "Turbo/Raw/Hcal/Digits"] + + ## Finally configure the neutral PP2MC associator + NeutralProtoSeq.Members+=[assocdigits] + + # Gather all protos and clusters + neutralClustersTot=[] + neutralProtosTot=[] + + print " ------> Neutral stuff <-------------" + print self.base + print " ------> Neutral stuff <-------------" + + # Add standard Turbo + #neutralClustersTot+=[self.base+"Hlt2/Rec/Neutral/CaloClusters"] + neutralClustersTot+=[self.base+"CaloClusters"] + neutralProtosTot+=[self.base+"Protos"] + + print " ------> Neutral stuff <-------------" + print neutralClustersTot + print " ------> Neutral stuff <-------------" + + + # Configure + self._configureDigitsTruth() + protoneutral, retSeq = self._configureClustersAndProtosTruth(outputDigiLoc,neutralClustersTot,neutralProtosTot, "Turbo/Relations/NeutralPP2MC") + NeutralProtoSeq.Members+=[retSeq] + + + + + + return NeutralProtoSeq def _configureOutputStream(self, stream, lines_dict): @@ -814,6 +857,7 @@ class Tesla(LHCbConfigurableUser): for name in decoder_names: from DAQSys.Decoders import DecoderDB decoder = DecoderDB[name].setup() + #decoder.OutputLevel = 1 decoders_seq.Members.append(decoder) DecodeRawEvent().DataOnDemand = False @@ -826,6 +870,9 @@ class Tesla(LHCbConfigurableUser): prpacking = PersistRecoConf.PersistRecoPacking(datatype) prunpackers = prpacking.unpackers() + #for p in prunpackers: + # p.OutputLevel = 1 + unpackers_seq = GaudiSequencer('TeslaUnpackers') # Need to run the packers in reverse order, due to object dependencies unpackers_seq.Members += prunpackers[::-1] @@ -1212,7 +1259,7 @@ class Tesla(LHCbConfigurableUser): # if self.getProp('Mode') is "Online": self.setProp('WriteFSR',True) - self._configureLumi() + #self._configureLumi() else: DecodeRawEvent().DataOnDemand=True -- GitLab