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

Comparing UserCode/MitPhysics/Utils/src/MetTools.cc (file contents):
Revision 1.1 by mzanetti, Mon Mar 14 18:05:56 2011 UTC vs.
Revision 1.2 by ceballos, Tue Mar 15 08:35:01 2011 UTC

# Line 51 | Line 51 | MetTools::MetTools(const MuonCol *fMuons
51    }
52  
53    mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
54 <
54 >  mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY);
55   }
56  
57
57   MetTools::MetTools(const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates, const Vertex *fVertex,
58                     float deltaZCut, float ptCut, float etaCut) {
59  
# Line 74 | Line 73 | MetTools::MetTools(const ElectronCol *fE
73      if (fPFCandidates->At(i)->TrackerTrk()){
74        bool isElectronTrack = false;
75        for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
76 <        if (fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk() or
77 <            fElectrons->At(m)->GsfTrk() == fPFCandidates->At(i)->GsfTrk() ) {
76 >        if ((fElectrons->At(m)->TrackerTrk() && fPFCandidates->At(i)->TrackerTrk() && fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
77 >            (fElectrons->At(m)->GsfTrk()     && fPFCandidates->At(i)->GsfTrk()     && fElectrons->At(m)->GsfTrk()     == fPFCandidates->At(i)->GsfTrk())) {
78            isElectronTrack = true;
79            break;
80          }
# Line 97 | Line 96 | MetTools::MetTools(const ElectronCol *fE
96      }
97    }
98    mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
99 <
99 >  mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY);
100   }
101  
102 + MetTools::MetTools(const MuonCol *fMuons, const ElectronCol *fElectrons, const PFCandidateCol *fPFCandidates,
103 +                   const Vertex *fVertex, float deltaZCut, float ptCut, float etaCut) {
104 +
105 +  float trackNumeratorX  =0, trackNumeratorY  =0;
106 +  float neutralNumeratorX=0, neutralNumeratorY=0;
107 +
108 +  // muons Pt
109 +  for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
110 +    trackNumeratorX -= fMuons->At(m)->Px();
111 +    trackNumeratorY -= fMuons->At(m)->Py();
112 +  }
113 +
114 +  // electrons Pt
115 +  for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
116 +    trackNumeratorX -= fElectrons->At(m)->Px();
117 +    trackNumeratorY -= fElectrons->At(m)->Py();
118 +  }
119 +
120 +  // PF candidates pT
121 +  for (UInt_t i=0; i<fPFCandidates->GetEntries(); ++i) {
122 +
123 +    // charged
124 +    if (fPFCandidates->At(i)->TrackerTrk()){
125 +      bool isMuonTrack = false;
126 +      for (UInt_t m = 0; m < fMuons->GetEntries(); ++m) {
127 +        if (fMuons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) {
128 +          isMuonTrack = true;
129 +          break;
130 +        }
131 +      }      
132 +      if (isMuonTrack) continue;
133 +      
134 +      bool isElectronTrack = false;
135 +      for (UInt_t m = 0; m < fElectrons->GetEntries(); ++m) {
136 +        if ((fElectrons->At(m)->TrackerTrk() && fPFCandidates->At(i)->TrackerTrk() && fElectrons->At(m)->TrackerTrk() == fPFCandidates->At(i)->TrackerTrk()) or
137 +            (fElectrons->At(m)->GsfTrk()     && fPFCandidates->At(i)->GsfTrk()     && fElectrons->At(m)->GsfTrk()     == fPFCandidates->At(i)->GsfTrk())) {
138 +          isElectronTrack = true;
139 +          break;
140 +        }
141 +      }      
142 +      if (isElectronTrack) continue;
143 +
144 +      if (fabs(fPFCandidates->At(i)->TrackerTrk()->DzCorrected(*fVertex)) < deltaZCut) {
145 +        trackNumeratorX -= fPFCandidates->At(i)->Px();
146 +        trackNumeratorY -= fPFCandidates->At(i)->Py();
147 +      }
148 +    }
149  
150 +    // neutral    
151 +    if (fPFCandidates->At(i)->PFType()== PFCandidate::eNeutralHadron || fPFCandidates->At(i)->PFType()== PFCandidate::eGamma) {
152 +      if (fPFCandidates->At(i)->Pt() > ptCut and fabs(fPFCandidates->At(i)->Eta()) < etaCut ) {
153 +        neutralNumeratorX -= fPFCandidates->At(i)->Px();
154 +        neutralNumeratorY -= fPFCandidates->At(i)->Py();
155 +      }
156 +    }
157 +  }
158 +  mithep::Met fCorrectedMet(trackNumeratorX+neutralNumeratorX, trackNumeratorY+neutralNumeratorY);
159 +  mithep::Met fCorrectedTrackMet(trackNumeratorX, trackNumeratorY);
160 + }
161  
162   Met MetTools::GetMimumMet(const Met *UncorrectedMet) {
163  
164    return (fCorrectedMet.Pt() < UncorrectedMet->Pt()) ?  fCorrectedMet : *UncorrectedMet;
165   }
166  
167 + Met MetTools::GetMimumTrackMet(const Met *UncorrectedMet) {
168 +
169 +  return (fCorrectedTrackMet.Pt() < UncorrectedMet->Pt()) ?  fCorrectedTrackMet : *UncorrectedMet;
170 + }
171  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines