ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Mods/src/MuonIDMod.cc
(Generate patch)

Comparing UserCode/MitPhysics/Mods/src/MuonIDMod.cc (file contents):
Revision 1.41 by ceballos, Fri Mar 11 15:13:09 2011 UTC vs.
Revision 1.45 by ceballos, Tue Apr 5 05:03:47 2011 UTC

# Line 19 | Line 19 | ClassImp(mithep::MuonIDMod)
19    fNonIsolatedMuonsName("random"),  
20    fNonIsolatedElectronsName("random"),  
21    fVertexName(ModNames::gkGoodVertexesName),
22 +  fBeamSpotName(Names::gkBeamSpotBrn),
23    fTrackName(Names::gkTrackBrn),
24    fPFCandidatesName(Names::gkPFCandidatesBrn),
25    fMuonIDType("WWMuId"),
# Line 29 | Line 30 | ClassImp(mithep::MuonIDMod)
30    fCombIsolationCut(0.15),
31    fMuonPtMin(10),
32    fApplyD0Cut(kTRUE),
33 +  fApplyDZCut(kTRUE),
34    fD0Cut(0.020),
35 +  fDZCut(0.20),
36 +  fWhichVertex(-1),
37    fEtaCut(2.4),
34  fReverseIsoCut(kFALSE),
35  fReverseD0Cut(kFALSE),
38    fMuIDType(kIdUndef),
39    fMuIsoType(kIsoUndef),
40    fMuClassType(kClassUndef),
41    fMuons(0),
42    fVertices(0),
43 +  fBeamSpot(0),
44    fTracks(0),
45    fPFCandidates(0),
46    fNonIsolatedMuons(0),
# Line 59 | Line 62 | void MuonIDMod::Process()
62    else {
63      fMuons = GetObjThisEvt<MuonOArr>(fMuonBranchName);
64    }
65 +  LoadEventObject(fBeamSpotName, fBeamSpot);
66    LoadEventObject(fTrackName, fTracks);
67    LoadEventObject(fPFCandidatesName, fPFCandidates);
68    if(fMuIsoType == kTrackCaloSliding) {
# Line 208 | Line 212 | void MuonIDMod::Process()
212          break;
213        case kTrackCaloSliding:
214          {
211          //Double_t beta = IsolationTools::BetaM(fTracks, mu, fVertices->At(0), 0.0, 0.2, 0.3, 0.02);
212          //if(beta == 0) beta = 1.0;
215            const PileupEnergyDensity *rho =  fPileupEnergyDensity->At(0);
216            Double_t totalIso =  mu->IsoR03SumPt() + TMath::Max(mu->IsoR03EmEt() + mu->IsoR03HadEt() - rho->Rho() * TMath::Pi() * 0.3 * 0.3, 0.0);
217 <          if (totalIso < (mu->Pt()*fCombIsolationCut) )
217 >          if      (mu->Pt() >  20.0 && totalIso < (mu->Pt()*0.15) )
218 >            isocut = kTRUE;
219 >          else if (mu->Pt() <= 20.0 && totalIso < (mu->Pt()*0.10) )
220              isocut = kTRUE;
217
218          if     (fReverseIsoCut == kTRUE &&
219                  isocut == kFALSE && totalIso < 10)
220            isocut = kTRUE;
221          else if(fReverseIsoCut == kTRUE)
222            isocut = kFALSE;
221          }
222          break;
223        case kTrackCaloSlidingNoCorrection:
# Line 263 | Line 261 | void MuonIDMod::Process()
261      if (isocut == kFALSE)
262        continue;
263  
264 +    // apply d0 cut
265      if (fApplyD0Cut) {
266 <      Bool_t passD0cut = MuonTools::PassD0Cut(mu, fVertices, fD0Cut);
266 >      Bool_t passD0cut = kTRUE;
267 >      if      (mu->Pt() >  20.0) fD0Cut = 0.02;
268 >      else if (mu->Pt() <= 20.0) fD0Cut = 0.01;
269 >      if(fWhichVertex >= -1) passD0cut = MuonTools::PassD0Cut(mu, fVertices, fD0Cut, fWhichVertex);
270 >      else                   passD0cut = MuonTools::PassD0Cut(mu, fBeamSpot, fD0Cut);
271        if (!passD0cut)
272          continue;
273      }
274  
275 +    // apply dz cut
276 +    if (fApplyDZCut) {
277 +      Bool_t passDZcut = MuonTools::PassDZCut(mu, fVertices, fDZCut, fWhichVertex);
278 +      if (!passDZcut)
279 +        continue;
280 +    }
281 +
282      // add good muon
283      CleanMuons->Add(mu);
284    }
# Line 290 | Line 300 | void MuonIDMod::SlaveBegin()
300    if (fMuonIsoType.CompareTo("PFIsoNoL") != 0) {
301      ReqEventObject(fMuonBranchName, fMuons, kTRUE);
302    }
303 +  ReqEventObject(fBeamSpotName, fBeamSpot, kTRUE);
304    ReqEventObject(fTrackName, fTracks, kTRUE);
305    ReqEventObject(fPFCandidatesName, fPFCandidates, kTRUE);
306    if (fMuonIsoType.CompareTo("TrackCaloSliding") == 0) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines