Esempio n. 1
0
def addMCTuple(name, decayDescriptor):
    '''
    Given name and decay descriptor, add MCTuple to the main DaVinci Sequence
    '''
     # MC    
    mcTuple = MCDecayTreeTuple('MCTuple'+name) # I can put as an argument a name if I use more than a MCDecayTreeTuple
    mcTuple.Decay = decayDescriptor #'[phi(1020) -> ^(KS0 -> ^pi+ ^pi-) ^(KS0 -> ^pi+ ^pi-)]CC'
    mcTuple.ToolList = ['MCTupleToolKinematic',
                        'TupleToolEventInfo',
                        'MCTupleToolHierarchy',
                        "TupleToolMCBackgroundInfo",
                      ]
    DaVinci().UserAlgorithms += [mcTuple]
Esempio n. 2
0
    )  # I can put as an argument a name if I use more than a MCDecayTreeTuple
    mcTuple.Decay = "[J/psi(1S) -> ^(KS0 -> ^pi+ ^pi-) ^(KS0 -> ^pi+ ^pi-)]CC"
    mcTuple.Branches = {
        "JPsi": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)]CC",
        "Ks1": "[J/psi(1S) -> ^(KS0 -> pi+ pi-) (KS0 -> pi+ pi-)]CC",
        "Ks2": "[J/psi(1S) -> (KS0 -> pi+ pi-) ^(KS0 -> pi+ pi-)]CC",
        "pi1": "[J/psi(1S) -> (KS0 -> ^pi+ pi-) (KS0 -> pi+ pi-)]CC",
        "pi2": "[J/psi(1S) -> (KS0 -> pi+ ^pi-) (KS0 -> pi+ pi-)]CC",
        "pi3": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> ^pi+ pi-)]CC",
        "pi4": "[J/psi(1S) -> (KS0 -> pi+ pi-) (KS0 -> pi+ ^pi-)]CC",
    }

    mcTuple.addBranches(mcTuple.Branches)
    mcTuple.ToolList = [
        "MCTupleToolKinematic",
        "TupleToolEventInfo",
        "MCTupleToolHierarchy",
        "TupleToolMCBackgroundInfo",
    ]


from Configurables import DaVinci

# Name of tuple file you want to write out.
DaVinci().TupleFile = "JPsi2KsKs.root"
DaVinci().EvtMax = -1
DaVinci().DataType = "2012"
DaVinci().Simulation = isMC

# This is very useful to make sure you didn't accidently miss some data.
# Adds tuple in same file with lumi (units are pb-1).
DaVinci().Lumi = not isMC
Esempio n. 3
0
  mcTuple.Decay = '[D_s+ -> ^(phi(1020) -> ^(KS0 -> ^pi+ ^pi-) ^(KS0 -> ^pi+ ^pi-)) ^pi+]CC'
  mcTuple.Branches = {'Ds' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC',
                                        'phi' : '[D_s+ -> ^(phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC',
                                        'Ks1' : '[D_s+ -> (phi(1020) -> ^(KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC',
                                        'Ks2' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) ^(KS0 -> pi+ pi-)) pi+]CC',
                                        'pi1' : '[D_s+ -> (phi(1020) -> (KS0 -> ^pi+ pi-) (KS0 -> pi+ pi-)) pi+]CC',
                                        'pi2' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ ^pi-) (KS0 -> pi+ pi-)) pi+]CC',
                                        'pi3' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> ^pi+ pi-)) pi+]CC',
                                        'pi4' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ ^pi-)) pi+]CC',
                                        'pis' : '[D_s+ -> (phi(1020) -> (KS0 -> pi+ pi-) (KS0 -> pi+ pi-)) ^pi+]CC',
                                          }

  mcTuple.addBranches(mcTuple.Branches)
  mcTuple.ToolList = ['MCTupleToolKinematic',
                        'TupleToolEventInfo',
                        'MCTupleToolHierarchy',
                        "TupleToolMCBackgroundInfo",
                      ]

Ds_sequence.sequence().Members += [tuple]



from Configurables import DaVinci

#Name of tuple file you want to write out.
DaVinci().TupleFile = "Phi2KsKs.root"
DaVinci().EvtMax = 10000
DaVinci().DataType = '2012'
DaVinci().Simulation = isMC
Esempio n. 4
0
                       'X' : '[ D+ => ( (phi(1020) => K+ K- ) ) ^pi+  ]CC'}
        numbers_phi_X = [2,1]
    else:
        MC_DecayDescriptor = '[ Xc => ( ^(phi(1020) => ^K+ ^K- ) ) ^X+ ^X0]CC'
        MC_branches = {'Head' : '[ Xc => ( (phi(1020) => K+ K- ) ) X+ X0]CC',
                       'Phi' : '[ Xc => ( ^(phi(1020) => K+ K- ) ) X+ X0]CC',
                       'KPlus' : '[ Xc => ( (phi(1020) => ^K+ K- ) ) X+ X0]CC',
                       'KMinus' : '[ Xc => ( (phi(1020) => K+ ^K- ) ) X+ X0]CC',
                       'X' : '[ Xc => ( (phi(1020) => K+ K- ) ) ^X+ X0]CC',
                       'X0' : '[ Xc => ( (phi(1020) => K+ K- ) ) X+ ^X0]CC'}
        numbers_phi_X = [2,1]
        
    mcTuple = MCDecayTreeTuple() # I can put as an argument a name if I use more than a MCDecayTreeTuple
    mcTuple.Decay = MC_DecayDescriptor
    mcTuple.ToolList = ['MCTupleToolKinematic',
                        'TupleToolEventInfo',
                        'MCTupleToolHierarchy',
                      ]

    mcTuple.addTupleTool("LoKi::Hybrid::MCTupleTool/LoKi_All")
    mcTuple.LoKi_All.Variables =  {
        'TRUEID' : 'MCID'
        }
    
    mcTuple.addBranches(MC_branches)

    mcTuple.Head.addTupleTool("LoKi::Hybrid::MCTupleTool/LoKi_Head")
    mcTuple.Head.LoKi_Head.Preambulo = [
        "from LoKiCore.math import sqrt",
        "Phi_E  = MCCHILD(MCE,  {})".format(numbers_phi_X[0]),
        "Phi_PX = MCCHILD(MCPX, {})".format(numbers_phi_X[0]),
        "Phi_PY = MCCHILD(MCPY, {})".format(numbers_phi_X[0]),
Esempio n. 5
0
        elif   0 <= key.find ( 'Prev/'   )                  : bad.add ( key )
        elif   0 <= key.find ( 'Next/'   )                  : bad.add ( key )
        elif   0 <= key.find ( '/MC/'    ) and 'GEN' == ext : bad.add ( key )
    for b in bad :
        del algs[b]

    dod.AlgMap = algs

    from Configurables import EventClockSvc, CondDB 
    EventClockSvc ( EventTimeDecoder = "FakeEventTime" )
    CondDB  ( IgnoreHeartBeat = True )

appendPostConfigAction( doIt)
mctl=[  'MCTupleToolHierarchy', 'MCTupleToolKinematic', 'MCTupleToolPrimaries']
#mctl=[  'MCTupleToolKinematic']
mct.ToolList=mctl 
#mctB.ToolList=mctl 

printMC = PrintMCTree()
printMC.ParticleNames = ["Lambda_c+","Lambda_c~-"]
printMC.ParticleNames = ["D0","D~0"]
printMC.ParticleNames = ["Xi_cc++","Xi_cc~--"]
printMC.ParticleNames = ["B0","B~0"]
printMC.ParticleNames = ["B+","B-"]




########################################################################
from Configurables import DaVinci
DaVinci().EvtMax = -1
Esempio n. 6
0
# For a quick and dirty check, you don't need to edit anything below here.
##########################################################################

# Create an MC DTT containing any candidates matching the decay descriptor
mctuple = MCDecayTreeTuple("MCDecayTreeTuple")
mctuple.Decay = decay
mctuple.addBranches({
    "KSO": "[KS0 ==> pi+ pi-  e+ e-]CC",
    "e+": "[KS0 ==> pi+ pi-  ^e+ e-]CC",
    "e-": "[KS0 ==> pi+ pi-  e+ ^e-]CC",
    "pi+": "[KS0 ==> ^pi+ pi-  e+ e-]CC",
    "pi-": "[KS0 ==> pi+ ^pi-  e+ e-]CC"
})

mctuple.ToolList = [
    "MCTupleToolHierarchy", "LoKi::Hybrid::MCTupleTool/LoKi_Photos"
]
# Add a 'number of photons' branch
mctuple.addTupleTool("MCTupleToolKinematic").Verbose = True
mctuple.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_Photos").Variables = {
    "nPhotos": "MCNINTREE(('gamma' == MCABSID))"
}

mctuple.addTupleTool("LoKi::Hybrid::MCTupleTool/LoKi_All")
mctuple.LoKi_All.Variables = {
    'TRUEID': 'MCID',
    'M': 'MCMASS',
    'THETA': 'MCTHETA',
    'PT': 'MCPT',
    'PX': 'MCPX',
    'PY': 'MCPY',
Esempio n. 7
0
## @file DVTrueKs.py
#
#  See DecayTreeTuple documentation
#
#  @author P. Koppenburg
#  @date 2009-01-22
#
########################################################################
#
# The MC truth Tuple
#
from Configurables import MCDecayTreeTuple
mcTuple = MCDecayTreeTuple("MCTuple")
mcTuple.Decay = "[KS0 -> ^pi+ ^pi- {, gamma}{, gamma}]cc"
mcTuple.ToolList = [
    "MCTupleToolKinematic", "TupleToolEventInfo", "MCTupleToolReconstructed",
    "MCTupleToolAngles"
]
#mcTuple.OutputLevel = 1
########################################################################
#
# The reconstructed tuple
#
from Configurables import DecayTreeTuple
tuple = DecayTreeTuple("Tuple")
tuple.ToolList += [
    "TupleToolMCTruth", "TupleToolMCBackgroundInfo", "TupleToolAngles",
    "TupleToolPrimaries", "TupleToolGeometry", "TupleToolKinematic",
    "TupleToolEventInfo", "TupleToolTrackInfo"
]
tuple.InputLocations = ["StdLooseKsLL", "StdLooseKsDD"]
tuple.Decay = "[KS0 -> ^pi+ ^pi-]cc"
Esempio n. 8
0
from Configurables import ( DaVinci
#                          , EventSelector # Uncomment when running locally
                          , MCDecayTreeTuple
                          , LHCbApp
                          )
from DecayTreeTuple.Configuration import *
LHCbApp().XMLSummary='summary.xml'

# Create an MC DTT containing any candidates matching the decay descriptor
mctuple = MCDecayTreeTuple()
mctuple.Decay = "[B_s0 => ^(phi(1020) ==> ^K+ ^K-) ^(phi(1020) ==> ^K+ ^K-)]CC"
mctuple.addBranches({
   "KK" : " [B_s0 => (phi(1020) ==> K+ K-) ^(phi(1020) ==> K+ K-)]CC "
})
mctuple.ToolList = []
mctuple.addTupleTool("MCTupleToolKinematic").Verbose = True


# Name of the .xgen file produced by Gauss
#ev = EventSelector()
#ev.Input = ["DATAFILE='Gauss-13104013-100000ev-20160407.xgen' TYP='POOL_ROOTTREE' Opt='READ'"]

# Configure DaVinci
dv = DaVinci( HistogramFile = "histo.root"
            , TupleFile = "DVntuple.root"
            , UserAlgorithms = [mctuple]
            , Simulation = True
            , Lumi = False
            , DataType = "2012"
            , EvtMax = -1
            )
Esempio n. 9
0
        elif   0 <= key.find ( 'Prev/'   )                  : bad.add ( key )
        elif   0 <= key.find ( 'Next/'   )                  : bad.add ( key )
        elif   0 <= key.find ( '/MC/'    ) and 'GEN' == ext : bad.add ( key )
    for b in bad :
        del algs[b]

    dod.AlgMap = algs

    from Configurables import EventClockSvc, CondDB 
    EventClockSvc ( EventTimeDecoder = "FakeEventTime" )
    CondDB  ( IgnoreHeartBeat = True )

appendPostConfigAction( doIt)
mctl=[  'MCTupleToolHierarchy', 'MCTupleToolKinematic', 'MCTupleToolPrimaries']
mctl=[  'MCTupleToolKinematic']
mct.ToolList=mctl 
mctB.ToolList=mctl 

printMC = PrintMCTree()
printMC.ParticleNames = ["Lambda_c+","Lambda_c~-"]
printMC.ParticleNames = ["D0","D~0"]
printMC.ParticleNames = ["Xi_cc++","Xi_cc~--"]
printMC.ParticleNames = ["B0","B~0"]
printMC.ParticleNames = ["B+","B-"]




########################################################################
from Configurables import DaVinci
DaVinci().EvtMax = -1
Esempio n. 10
0
decay = "[B_s0 => ^(J/psi(1S) ==> ^mu+ ^mu-) ^(phi(1020) ==> ^K+ ^K-)]CC"
decay_heads = ["B_s0", "B_s~0"]

dir = "/Disk/speyside8/lhcb/gcowan1/generation/Bs2JpsiPhi/"
datafiles = glob.glob(dir + "/*1000ev*xgen")
# datafiles = [datafiles[-1]]
print datafiles
year = 2012

# For a quick and dirty check, you don't need to edit anything below here.
##########################################################################

# Create an MC DTT containing any candidates matching the decay descriptor
mctuple = MCDecayTreeTuple("MCDecayTreeTuple")
mctuple.Decay = decay
mctuple.ToolList = ["MCTupleToolHierarchy", "LoKi::Hybrid::MCTupleTool/LoKi_Photos"]
# Add a 'number of photons' branch
# mctuple.addTupleTool("MCTupleToolReconstructed").Associate = False
# mctuple.MCTupleToolReconstructed.FillPID = False
mctuple.addTupleTool("MCTupleToolKinematic").Verbose = True
mctuple.addTupleTool("LoKi::Hybrid::TupleTool/LoKi_Photos").Variables = {"nPhotos": "MCNINTREE(('gamma' == MCABSID))"}
mctuple.addTupleTool("MCTupleToolP2VV").Calculator = "MCBs2JpsiPhiAngleCalculator"

# Print the decay tree for any particle in decay_heads
printMC = PrintMCTree()
printMC.ParticleNames = decay_heads

# Name of the .xgen file produced by Gauss
EventSelector().Input = ["DATAFILE='{0}' TYP='POOL_ROOTTREE' Opt='READ'".format(datafile) for datafile in datafiles]

# Configure DaVinci