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

Comparing UserCode/MitPhysics/SelMods/src/WBFExampleAnalysisMod.cc (file contents):
Revision 1.1 by ceballos, Wed Dec 22 13:40:30 2010 UTC vs.
Revision 1.2 by ceballos, Wed Dec 22 20:20:32 2010 UTC

# Line 51 | Line 51 | void WBFExampleAnalysisMod::SlaveBegin()
51    //*************************************************************************************************
52    // Selection Histograms
53    //*************************************************************************************************
54 <  AddTH1(fWBFSelection,"fWBFSelection", ";Cut Number;Number of Events", 6, -1.5, 4.5);
54 >  AddTH1(fWBFSelection,"fWBFSelection", ";Cut Number;Number of Events", 7, -1.5, 5.5);
55  
56    //***********************************************************************************************
57    // N-1 Histograms
58    //***********************************************************************************************
59    //All events
60 <  AddTH1(fWBFPtJetMax_NMinusOne, "fWBFPtJetMax_NMinusOne", ";Pt Jet Max;Number of Events",400,0.,400.);
61 <  AddTH1(fWBFPtJetMin_NMinusOne, "fWBFPtJetMin_NMinusOne", ";Pt Jet Min;Number of Events",400,0.,400.);
62 <  AddTH1(fWBFdeltaEta_NMinusOne, "fWBFdeltaEta_NMinusOne", ";Delta Eta;Number of Events",100,0.,10.);
63 <  AddTH1(fWBFdijetMass_NMinusOne,"fWBFdijetMass_NMinusOne",";DiJet Mass;Number of Events",400,0.,4000.);
60 >  AddTH1(fWBFPtJetMax_NMinusOne, "fWBFPtJetMax_NMinusOne", ";Pt Jet Max;Number of Events",300,0.,300. );
61 >  AddTH1(fWBFPtJetMin_NMinusOne, "fWBFPtJetMin_NMinusOne", ";Pt Jet Min;Number of Events",300,0.,300. );
62 >  AddTH1(fWBFEta12_NMinusOne,    "fWBFEta12_NMinusOne",    ";eta1*eta2;Number of Events", 2,-1.5,1.5  );
63 >  AddTH1(fWBFdeltaEta_NMinusOne, "fWBFdeltaEta_NMinusOne", ";Delta Eta;Number of Events", 100,0.,10.  );
64 >  AddTH1(fWBFdijetMass_NMinusOne,"fWBFdijetMass_NMinusOne",";DiJet Mass;Number of Events",300,0.,3000.);
65 >  AddTH1(fWBFZVar_NMinusOne,     "fWBFZVar_NMinusOne",     ";Z variable;Number of Events",50,0.,5.    );
66  
67    //***********************************************************************************************
68    // After all cuts Histograms
69    //***********************************************************************************************
70    AddTH1(fWBFSSMass_afterCuts,"fWBFSSMass_afterCuts",";SS dilepton Mass;Number of Events",200,0.,400);
71 <  AddTH1(fWBFSSDeltaPhi_afterCuts,"fWBFOSDeltaPhi_afterCuts",";SS DeltaPhi 2l;Number of Events",90,0.,180);
72 <  AddTH1(fWBFOSMass_afterCuts,"fWBFSSMass_afterCuts",";OS dilepton Mass;Number of Events",200,0.,400);
73 <  AddTH1(fWBFSSDeltaPhi_afterCuts,"fWBFOSDeltaPhi_afterCuts",";OS DeltaPhi 2l;Number of Events",90,0.,180);
72 <  AddTH1(fWBFDiPhotonMass_afterCuts,"fWBFDiPhotonMass_afterCuts",";DiPhoton Mass;Number of Events",400,0.,400);
71 >  AddTH1(fWBFSSDeltaPhi_afterCuts,"fWBFSSDeltaPhi_afterCuts",";SS DeltaPhi 2l;Number of Events",90,0.,180);
72 >  AddTH1(fWBFOSMass_afterCuts,"fWBFOSMass_afterCuts",";OS dilepton Mass;Number of Events",200,0.,400);
73 >  AddTH1(fWBFOSDeltaPhi_afterCuts,"fWBFOSDeltaPhi_afterCuts",";OS DeltaPhi 2l;Number of Events",90,0.,180);
74  
75   }
76  
# Line 80 | Line 81 | void WBFExampleAnalysisMod::Process()
81    fVertices = GetObjThisEvt<VertexOArr>(fVertexName);
82    ParticleOArr *CleanLeptons = dynamic_cast<mithep::ParticleOArr*>
83       (FindObjThisEvt(ModNames::gkMergedLeptonsName));
83  PhotonOArr *CleanPhotons     = GetObjThisEvt<PhotonOArr>(ModNames::gkMCPhotonsName);
84    ObjArray<Jet> *CleanJets = dynamic_cast<ObjArray<Jet>* >
85      (FindObjThisEvt(fCleanJetsName.Data()));
86    TParameter<Double_t> *NNLOWeight = GetObjThisEvt<TParameter<Double_t> >("NNLOWeight");
# Line 99 | Line 99 | void WBFExampleAnalysisMod::Process()
99    //*********************************************************************************************
100    //Define Cuts
101    //*********************************************************************************************
102 <  const int nCuts = 7;
103 <  bool passCut[nCuts] = {false, false, false, false, false};
102 >  const int nCuts = 6;
103 >  bool passCut[nCuts] = {false, false, false, false, false, false};
104    
105    // ptjet max cut
106    if(CleanJets->At(0)->Pt() >  fJetPtMax)                  passCut[0] = true;
# Line 120 | Line 120 | void WBFExampleAnalysisMod::Process()
120    dijet.AddDaughter(CleanJets->At(0));
121    dijet.AddDaughter(CleanJets->At(1));
122    if(dijet.Mass() > fDiJetMassMin)                         passCut[4] = true;
123 <
123 >  
124 >  // jet veto cut, use of zeffendeld variable
125 >  passCut[5] = true;
126 >  double zVarMin = 30.;
127 >  if(CleanJets->GetEntries() >=2 ){
128 >    for(UInt_t i=2; i<CleanJets->GetEntries(); i++){
129 >      if(CleanJets->At(i)->Pt() <= 30.0) return;
130 >      double zVar = TMath::Abs(CleanJets->At(i)->Eta()-(CleanJets->At(0)->Eta()+CleanJets->At(1)->Eta())/2)/
131 >                    TMath::Abs(CleanJets->At(0)->Eta()-CleanJets->At(1)->Eta());
132 >      if(zVar < zVarMin) zVarMin = zVar;
133 >    }
134 >    if(zVarMin < 1) passCut[5] = false;
135 >  }
136    //*********************************************************************************************
137    //Make Selection Histograms. Number of events passing each level of cut
138    //*********************************************************************************************  
# Line 154 | Line 166 | void WBFExampleAnalysisMod::Process()
166      }
167    }
168    if (pass) {
169 <    fWBFPtJetMax_NMinusOne->Fill(TMath::Min(CleanJets->At(0)->Pt(),399.999),NNLOWeight->GetVal());
169 >    fWBFPtJetMax_NMinusOne->Fill(TMath::Min(CleanJets->At(0)->Pt(),299.999),NNLOWeight->GetVal());
170    }    
171    
172    // N-1 ptjet min
# Line 165 | Line 177 | void WBFExampleAnalysisMod::Process()
177      }
178    }
179    if (pass) {
180 <    fWBFPtJetMin_NMinusOne->Fill(TMath::Min(CleanJets->At(1)->Pt(),399.999),NNLOWeight->GetVal());
180 >    fWBFPtJetMin_NMinusOne->Fill(TMath::Min(CleanJets->At(1)->Pt(),299.999),NNLOWeight->GetVal());
181 >  }    
182 >  
183 >  // N-1 eta1*eta2
184 >  pass = true;
185 >  for (int k=0;k<nCuts;k++) {
186 >    if (k != 2) {
187 >      pass = (pass && passCut[k]);      
188 >    }
189 >  }
190 >  if (pass) {
191 >    fWBFEta12_NMinusOne->Fill(CleanJets->At(0)->Eta()*CleanJets->At(1)->Eta()/
192 >                   TMath::Abs(CleanJets->At(0)->Eta()*CleanJets->At(1)->Eta()),NNLOWeight->GetVal());
193    }    
194    
195    // N-1 deltaEta
# Line 187 | Line 211 | void WBFExampleAnalysisMod::Process()
211      }
212    }
213    if (pass) {
214 <    fWBFdijetMass_NMinusOne->Fill(TMath::Min(dijet.Mass(),3999.999),NNLOWeight->GetVal());
214 >    fWBFdijetMass_NMinusOne->Fill(TMath::Min(dijet.Mass(),2999.999),NNLOWeight->GetVal());
215 >  }
216 >  
217 >  // N-1 dijet mass
218 >  pass = true;
219 >  for (int k=0;k<nCuts;k++) {
220 >    if (k != 5) {
221 >      pass = (pass && passCut[k]);      
222 >    }
223 >  }
224 >  if (pass) {
225 >    fWBFZVar_NMinusOne->Fill(TMath::Min(zVarMin,4.999),NNLOWeight->GetVal());
226    }
227  
228    //*********************************************************************************************
# Line 204 | Line 239 | void WBFExampleAnalysisMod::Process()
239        double deltaPhiLeptons = MathUtils::DeltaPhi(CleanLeptons->At(0)->Phi(),
240                                                     CleanLeptons->At(1)->Phi())* 180.0 / TMath::Pi();
241        
242 <      if(CleanLeptons->At(0)->Charge() * CleanLeptons->At(1)->Charge() > 0){
242 >      if(CleanLeptons->At(0)->Charge() * CleanLeptons->At(1)->Charge() > 0){  // same-sign
243          fWBFSSMass_afterCuts->Fill(TMath::Min(dilepton.Mass(),399.999),NNLOWeight->GetVal());
244          fWBFSSDeltaPhi_afterCuts->Fill(deltaPhiLeptons,NNLOWeight->GetVal());
245        }
246 <      else {
246 >      else { // opposite-sign
247          fWBFOSMass_afterCuts->Fill(TMath::Min(dilepton.Mass(),399.999),NNLOWeight->GetVal());
248          fWBFOSDeltaPhi_afterCuts->Fill(deltaPhiLeptons,NNLOWeight->GetVal());
249        }
250      }
216
217    // Distributions for diphotons events
218    if(CleanPhotons->GetEntries() >= 2 &&
219       CleanPhotons->At(0)->Pt()  > 30 && CleanPhotons->At(1)->Pt() > 30){
220      CompositeParticle diphoton;
221      diphoton.AddDaughter(CleanPhotons->At(0));
222      diphoton.AddDaughter(CleanPhotons->At(1));
223      fWBFDiPhotonMass_afterCuts->Fill(TMath::Min(diphoton.Mass(),399.999),NNLOWeight->GetVal());  
224    }
251    }
252    
253    return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines