Skip to content

Commit

Permalink
Merge pull request cms-sw#86 from mariadalfonso/maria_7X_v3
Browse files Browse the repository at this point in the history
Merging now.
Full had seems to be pretty slow now, but maybe it's the machine I was running.
  • Loading branch information
gpetruc committed Jul 11, 2014
2 parents 9636e0a + 97ed644 commit 4728074
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 45 deletions.
9 changes: 2 additions & 7 deletions CMGTools/RootTools/python/physicsobjects/IsoTrack.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,12 @@ def mvaId(self):
def dxy(self, vertex=None):
if vertex is None:
vertex = self.associatedVertex
vtx = self.vertex(); # FIXME
p4 = self.p4();
return ( - (vtx.x()-vertex.position().x()) * p4.y()
+ (vtx.y()-vertex.position().y()) * p4.x() ) / p4.pt();
return self.physObj.dxy()

def dz(self, vertex=None):
if vertex is None:
vertex = self.associatedVertex
vtx = self.vertex(); # FIXME
p4 = self.p4();
return (vtx.z()-vertex.position().z()) - ((vtx.x()-vertex.position().x())*p4.x()+(vtx.y()-vertex.position().y())*p4.y())/ p4.pt() * p4.z()/ p4.pt();
return self.physObj.dz()

def __str__(self):
lep = super(IsoTrack, self).__str__()
Expand Down
103 changes: 65 additions & 38 deletions CMGTools/TTHAnalysis/python/analyzers/ttHTopoVarAnalyzer.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def beginLoop(self):
count = self.counters.counter('pairs')
count.register('all events')

def printMT(self, event):
def makeMT(self, event):
# print '==> INSIDE THE PRINT MT'
# print 'MET=',event.met.pt()

Expand All @@ -61,7 +61,7 @@ def printMT(self, event):
for myTrack in event.selectedIsoTrack:
event.mtwIsoTrack = mtw(myTrack, event.met)

def printMT2(self, event):
def makeMT2(self, event):
# print '==> INSIDE THE PRINT MT2'
# print 'MET=',event.met.pt()

Expand All @@ -70,37 +70,62 @@ def printMT2(self, event):

## ===> hadronic MT2 (as used in the SUS-13-019) below place holder

pxvec = []
pyvec = []
pzvec = []
Evec = []

for jet in event.cleanJetsAll:
pxvec.append(jet.px())
pyvec.append(jet.py())
pzvec.append(jet.pz())
Evec.append(jet.energy())

# hemisphere = Hemisphere(pxvec, pyvec, pzvec, Evec, 2, 2)
# grouping=hemisphere.getGrouping()
# print 'grouping ',len(grouping)

# event.pseudoJet1 = ROOT.reco.Particle.LorentzVector( 0, 0, 0, 0 )
# event.pseudoJet2 = ROOT.reco.Particle.LorentzVector( 0, 0, 0, 0 )

metVector = TVectorD(3,array.array('d',[0.,event.met.px(), event.met.py()]))
metVector =numpy.asarray(metVector,dtype='double')
jetVector1 = TVectorD(3,array.array('d',[0.,event.pseudoJet1.px(), event.pseudoJet1.py()]))
jetVector1 =numpy.asarray(jetVector1,dtype='double')
jetVector2 = TVectorD(3,array.array('d',[0.,event.pseudoJet2.px(), event.pseudoJet2.py()]))
jetVector2 =numpy.asarray(jetVector2,dtype='double')

davismt2.set_momenta(jetVector1,jetVector2,metVector);
davismt2.set_mn(100);

event.mt2 = davismt2.get_mt2()
if len(event.cleanJetsAll)>=2:

pxvec = ROOT.std.vector(float)()
pyvec = ROOT.std.vector(float)()
pzvec = ROOT.std.vector(float)()
Evec = ROOT.std.vector(float)()
grouping = ROOT.std.vector(int)()

for jet in event.cleanJetsAll:
pxvec.push_back(jet.px())
pyvec.push_back(jet.py())
pzvec.push_back(jet.pz())
Evec.push_back(jet.energy())

hemisphere = Hemisphere(pxvec, pyvec, pzvec, Evec, 2, 2)
grouping=hemisphere.getGrouping()
## print 'grouping ',len(grouping)

pseudoJet1px = 0
pseudoJet1py = 0
pseudoJet1pz = 0
pseudoJet1energy = 0

pseudoJet2px = 0
pseudoJet2py = 0
pseudoJet2pz = 0
pseudoJet2energy = 0

for index in range(0, len(pxvec)):
if(grouping[index])==1:
pseudoJet1px += pxvec[index]
pseudoJet1py += pyvec[index]
pseudoJet1pz += pzvec[index]
pseudoJet1energy += Evec[index]
if(grouping[index])==2:
pseudoJet2px += pxvec[index]
pseudoJet2py += pyvec[index]
pseudoJet2pz += pzvec[index]
pseudoJet2energy += Evec[index]

event.pseudoJet1 = ROOT.reco.Particle.LorentzVector( pseudoJet1px, pseudoJet1py, pseudoJet1pz, pseudoJet1energy)
event.pseudoJet2 = ROOT.reco.Particle.LorentzVector( pseudoJet2px, pseudoJet2py, pseudoJet2pz, pseudoJet2energy)

## ===> leptonic MT2 (as used in the SUS-13-025 ) below just a placeHolder
metVector = TVectorD(3,array.array('d',[0.,event.met.px(), event.met.py()]))
metVector =numpy.asarray(metVector,dtype='double')
jetVector1 = TVectorD(3,array.array('d',[0.,event.pseudoJet1.px(), event.pseudoJet1.py()]))
jetVector1 =numpy.asarray(jetVector1,dtype='double')
jetVector2 = TVectorD(3,array.array('d',[0.,event.pseudoJet2.px(), event.pseudoJet2.py()]))
jetVector2 =numpy.asarray(jetVector2,dtype='double')

davismt2.set_momenta(jetVector1,jetVector2,metVector);
davismt2.set_mn(100);

event.mt2 = davismt2.get_mt2()

## ===> leptonic MT2 (as used in the SUS-13-025 )

if len(event.selectedLeptons)>=2:

Expand All @@ -115,10 +140,11 @@ def printMT2(self, event):
davismt2.set_momenta(visaVector,visbVector,metVector);
davismt2.set_mn(100);

event.mt2 = davismt2.get_mt2()
event.mt2lep = davismt2.get_mt2()


## ===> hadronic MT2w (as used in the SUS-13-011) below just a placeHolder to be coded properly

## ===> hadronic MT2w (as used in the SUS-13-011) below just a placeHolder
if len(event.selectedLeptons)>=1:

metVector = TVectorD(3,array.array('d',[0.,event.met.px(), event.met.py()]))
Expand All @@ -141,17 +167,18 @@ def process(self, iEvent, event):
event.mtw=-999
event.mtwTau=-999
event.mtwIsoTrack=-999
event.mt2=-999

event.mt2=-999
event.mt2lept=-999
event.mt2w=-999
event.pseudoJet1 = ROOT.reco.Particle.LorentzVector( -999, -999, -999, -999 )
event.pseudoJet2 = ROOT.reco.Particle.LorentzVector( -999, -999, -999, -999 )

self.printMT(event)
self.printMT2(event)
self.makeMT(event)
self.makeMT2(event)

# print 'variables computed: MT=',event.mtw,'MT2=',event.mt2,'MT2W=',event.mt2w
# print 'pseudoJet1 px=',event.pseudoJet1.px(),' py=',event.pseudoJet1.py(),' pz=',event.pseudoJet1.pz()
# print 'pseudoJet2 px=',event.pseudoJet2.px(),' py=',event.pseudoJet2.py(),' pz=',event.pseudoJet2.pz()

# self.printMT2(event)
return True

0 comments on commit 4728074

Please sign in to comment.