ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/AnaTools/plugins/OSUAnalysis.cc
(Generate patch)

Comparing UserCode/OSUT3Analysis/AnaTools/plugins/OSUAnalysis.cc (file contents):
Revision 1.49 by wulsin, Wed Apr 17 15:39:43 2013 UTC vs.
Revision 1.51 by lantonel, Thu Apr 25 08:39:52 2013 UTC

# Line 71 | Line 71 | OSUAnalysis::OSUAnalysis (const edm::Par
71  
72      string tempInputCollection = histogramSets_.at(currentHistogramSet).getParameter<string> ("inputCollection");
73      if(tempInputCollection == "muon-electron pairs") tempInputCollection = "electron-muon pairs";
74 +    if(tempInputCollection == "jet-electron pairs") tempInputCollection = "electron-jet pairs";
75 +    if(tempInputCollection == "jet-muon pairs") tempInputCollection = "muon-jet pairs";
76      if(tempInputCollection == "event-track pairs")   tempInputCollection = "track-event pairs";
77      if(tempInputCollection == "secondary muon-muon pairs")   tempInputCollection = "muon-secondary muon pairs";
78 +    if(tempInputCollection == "secondary electron-electron pairs")   tempInputCollection = "electron-secondary electron pairs";
79      if(tempInputCollection.find("pairs")==std::string::npos){ //just a single object
80        if(tempInputCollection.find("secondary")!=std::string::npos){//secondary object
81          int spaceIndex = tempInputCollection.find(" ");
# Line 127 | Line 130 | OSUAnalysis::OSUAnalysis (const edm::Par
130    for(uint currentObjectIndex = 0; currentObjectIndex != objectsToPlot.size(); currentObjectIndex++){
131  
132      string currentObject = objectsToPlot.at(currentObjectIndex);
133 <    if(currentObject != "muons" && currentObject != "secondary muons" && currentObject != "electrons" && currentObject != "taus" && currentObject != "tracks" && currentObject != "photons" && currentObject != "superclusters") continue;
133 >    if(currentObject != "muons" && currentObject != "secondary muons" && currentObject != "secondary electrons" && currentObject != "electrons" && currentObject != "taus" && currentObject != "tracks" && currentObject != "photons" && currentObject != "superclusters") continue;
134  
135      histogram tempIdHisto;
136      histogram tempMomIdHisto;
137      histogram tempGmaIdHisto;
138      histogram tempIdVsMomIdHisto;
139 +    histogram tempIdVsGmaIdHisto;
140  
141      tempIdHisto.inputCollection = currentObject;
142      tempMomIdHisto.inputCollection = currentObject;
143      tempGmaIdHisto.inputCollection = currentObject;
144      tempIdVsMomIdHisto.inputCollection = currentObject;
145 +    tempIdVsGmaIdHisto.inputCollection = currentObject;
146  
147      if(currentObject == "secondary muons") currentObject = "secondaryMuons";
148 +    if(currentObject == "secondary electrons") currentObject = "secondaryElectrons";
149  
150      currentObject = currentObject.substr(0, currentObject.size()-1);
151      tempIdHisto.name = currentObject+"GenMatchId";
152      tempMomIdHisto.name = currentObject+"GenMatchMotherId";
153      tempGmaIdHisto.name = currentObject+"GenMatchGrandmotherId";
154      tempIdVsMomIdHisto.name = currentObject+"GenMatchIdVsMotherId";
155 +    tempIdVsGmaIdHisto.name = currentObject+"GenMatchIdVsGrandmotherId";
156  
157      currentObject.at(0) = toupper(currentObject.at(0));
158      tempIdHisto.title = currentObject+" Gen-matched Particle";
159      tempMomIdHisto.title = currentObject+" Gen-matched Particle's Mother";
160      tempGmaIdHisto.title = currentObject+" Gen-matched Particle's Grandmother";
161      tempIdVsMomIdHisto.title = currentObject+" Gen-matched Particle's Mother vs. Particle;Particle;Mother";
162 +    tempIdVsGmaIdHisto.title = currentObject+" Gen-matched Particle's Grandmother vs. Particle;Particle;Grandmother";
163 +
164  
165      int maxNum = 24;
166      vector<double> binVector;
# Line 171 | Line 180 | OSUAnalysis::OSUAnalysis (const edm::Par
180      tempIdVsMomIdHisto.bins = binVector;
181      tempIdVsMomIdHisto.inputVariables.push_back("genMatchedId");
182      tempIdVsMomIdHisto.inputVariables.push_back("genMatchedMotherIdReverse");
183 +    tempIdVsGmaIdHisto.bins = binVector;
184 +    tempIdVsGmaIdHisto.inputVariables.push_back("genMatchedId");
185 +    tempIdVsGmaIdHisto.inputVariables.push_back("genMatchedGrandmotherIdReverse");
186  
187      histograms.push_back(tempIdHisto);
188      histograms.push_back(tempMomIdHisto);
189      histograms.push_back(tempGmaIdHisto);
190      histograms.push_back(tempIdVsMomIdHisto);
191 +    histograms.push_back(tempIdVsGmaIdHisto);
192    }
193  
194  
# Line 295 | Line 308 | OSUAnalysis::OSUAnalysis (const edm::Par
308        labelArray.push_back("other");
309  
310        for(int bin = 0; bin !=currentHistogram.bins.at(0); bin++){
311 <        if(currentHistogram.name.find("GenMatchIdVsMotherId")==std::string::npos) {
311 >        if(currentHistogram.name.find("GenMatchIdVsMotherId")==std::string::npos && currentHistogram.name.find("GenMatchIdVsGrandmotherId")==std::string::npos) {
312            oneDHists_.at(currentChannel)[currentHistogram.name]->GetXaxis()->SetBinLabel(bin+1,labelArray.at(bin));
313          }
314          else {
# Line 303 | Line 316 | OSUAnalysis::OSUAnalysis (const edm::Par
316            twoDHists_.at(currentChannel)[currentHistogram.name]->GetXaxis()->SetBinLabel(bin+1,labelArray.at(bin));
317          }
318        }
319 <      if(currentHistogram.name.find("GenMatchIdVsMotherId")!=std::string::npos) {
319 >      if(currentHistogram.name.find("GenMatchIdVsMotherId")!=std::string::npos || currentHistogram.name.find("GenMatchIdVsGrandmotherId")!=std::string::npos) {
320          twoDHists_.at(currentChannel)[currentHistogram.name]->GetXaxis()->CenterTitle();
321          twoDHists_.at(currentChannel)[currentHistogram.name]->GetYaxis()->CenterTitle();
322        }
# Line 321 | Line 334 | OSUAnalysis::OSUAnalysis (const edm::Par
334        if(currentObject == "muon-muon pairs")                currentObject = "dimuonPairs";
335        else if(currentObject == "electron-electron pairs")   currentObject = "dielectronPairs";
336        else if(currentObject == "electron-muon pairs")       currentObject = "electronMuonPairs";
337 +      else if(currentObject == "electron-jet pairs")        currentObject = "electronJetPairs";
338 +      else if(currentObject == "muon-jet pairs")            currentObject = "muonJetPairs";
339        else if(currentObject == "track-event pairs")         currentObject = "trackEventPairs";
340        else if(currentObject == "electron-track pairs")      currentObject = "electronTrackPairs";        
341        else if(currentObject == "muon-track pairs")          currentObject = "muonTrackPairs";    
# Line 329 | Line 344 | OSUAnalysis::OSUAnalysis (const edm::Par
344        else if(currentObject == "tau-track pairs")           currentObject = "tauTrackPairs";
345        else if(currentObject == "muon-secondary muon pairs") currentObject = "muonSecondaryMuonPairs";
346        else if(currentObject == "secondary muons")           currentObject = "secondaryMuons";
347 +      else if(currentObject == "electron-secondary electron pairs") currentObject = "electronSecondaryElectronPairs";
348 +      else if(currentObject == "secondary electrons")           currentObject = "secondaryElectrons";
349  
350        currentObject.at(0) = toupper(currentObject.at(0));  
351        string histoName = "num" + currentObject;
# Line 355 | Line 372 | OSUAnalysis::OSUAnalysis (const edm::Par
372        //store input collection for cut
373        string tempInputCollection = cuts_.at(currentCut).getParameter<string> ("inputCollection");
374        if(tempInputCollection == "muon-electron pairs") tempInputCollection = "electron-muon pairs";
375 +      if(tempInputCollection == "jet-electron pairs") tempInputCollection = "electron-jet pairs";
376 +      if(tempInputCollection == "jet-muon pairs") tempInputCollection = "muon-jet pairs";
377        if(tempInputCollection == "event-track pairs")   tempInputCollection = "track-event pairs";
378        if(tempInputCollection == "secondary muon-muon pairs")   tempInputCollection = "muon-secondary muon pairs";
379 +      if(tempInputCollection == "secondary electron-electron pairs")   tempInputCollection = "electron-secondary electron pairs";
380        tempCut.inputCollection = tempInputCollection;
381        if(tempInputCollection.find("pairs")==std::string::npos){ //just a single object
382          if(tempInputCollection.find("secondary")!=std::string::npos){//secondary object
# Line 514 | Line 534 | OSUAnalysis::analyze (const edm::Event &
534    if (std::find(objectsToGet.begin(), objectsToGet.end(), "superclusters") != objectsToGet.end())
535      event.getByLabel (superclusters_, superclusters);
536  
537 +  if (datasetType_ == "signalMC"){
538 +    if (std::find(objectsToGet.begin(), objectsToGet.end(), "stops") != objectsToGet.end())
539 +      event.getByLabel (stops_, stops);
540 +  }
541 +
542 +
543    if (useTrackCaloRhoCorr_) {  
544      // Used only for pile-up correction of by-hand calculation of isolation energy.  
545      // This rho collection is not available in all BEANs.  
# Line 576 | Line 602 | OSUAnalysis::analyze (const edm::Event &
602          else if(currentObject == "muons") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,muons.product(),"muons");
603  
604          else if(currentObject == "secondary muons") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,muons.product(),"secondary muons");
605 +        else if(currentObject == "secondary electrons") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,electrons.product(),"secondary electrons");
606          else if(currentObject == "electrons") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,electrons.product(),"electrons");
607          else if(currentObject == "events") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,events.product(),"events");
608          else if(currentObject == "taus") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,taus.product(),"taus");
# Line 588 | Line 615 | OSUAnalysis::analyze (const edm::Event &
615          else if(currentObject == "photons") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,photons.product(),"photons");
616          else if(currentObject == "superclusters") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,superclusters.product(),"superclusters");
617  
618 +        else if(currentObject == "stops" && datasetType_ == "signalMC") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,stops.product(),"stops");
619 +
620  
621          else if(currentObject == "muon-muon pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,muons.product(),muons.product(), \
622                                                                     cumulativeFlags.at("muons").at(flagsForPairCutsIndex), \
# Line 599 | Line 628 | OSUAnalysis::analyze (const edm::Event &
628                                                                     cumulativeFlags.at("secondary muons").at(flagsForPairCutsIndex), \
629                                                                     "muon-secondary muon pairs");
630  
631 +        else if(currentObject == "electron-secondary electron pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,electrons.product(),electrons.product(), \
632 +                                                                   cumulativeFlags.at("electrons").at(flagsForPairCutsIndex), \
633 +                                                                   cumulativeFlags.at("secondary electrons").at(flagsForPairCutsIndex), \
634 +                                                                   "electron-secondary electron pairs");
635 +
636          else if(currentObject == "electron-electron pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,electrons.product(),electrons.product(), \
637                                                                             cumulativeFlags.at("electrons").at(flagsForPairCutsIndex), \
638                                                                             cumulativeFlags.at("electrons").at(flagsForPairCutsIndex), \
# Line 607 | Line 641 | OSUAnalysis::analyze (const edm::Event &
641                                                                         cumulativeFlags.at("electrons").at(flagsForPairCutsIndex), \
642                                                                         cumulativeFlags.at("muons").at(flagsForPairCutsIndex), \
643                                                                         "electron-muon pairs");
644 +        else if(currentObject == "electron-jet pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,electrons.product(),jets.product(), \
645 +                                                                       cumulativeFlags.at("electrons").at(flagsForPairCutsIndex), \
646 +                                                                       cumulativeFlags.at("jets").at(flagsForPairCutsIndex), \
647 +                                                                       "electron-jet pairs");
648 +        else if(currentObject == "muon-jet pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,muons.product(),jets.product(), \
649 +                                                                       cumulativeFlags.at("muons").at(flagsForPairCutsIndex), \
650 +                                                                       cumulativeFlags.at("jets").at(flagsForPairCutsIndex), \
651 +                                                                       "muon-jet pairs");
652          else if(currentObject == "track-event pairs") setObjectFlags(currentCut,currentCutIndex,individualFlags,cumulativeFlags,tracks.product(),events.product(),
653                                                                       cumulativeFlags.at("tracks").at(flagsForPairCutsIndex),
654                                                                       cumulativeFlags.at("events").at(flagsForPairCutsIndex),
# Line 695 | Line 737 | OSUAnalysis::analyze (const edm::Event &
737          if(currentHistogram.inputCollection == "jets") fill1DHistogram(histo,currentHistogram,jets.product(),cumulativeFlags.at("jets").back(),scaleFactor);
738          else if(currentHistogram.inputCollection == "muons") fill1DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("muons").back(),scaleFactor);
739          else if(currentHistogram.inputCollection == "secondary muons") fill1DHistogram(histo,currentHistogram,muons.product(),cumulativeFlags.at("secondary muons").back(),scaleFactor);
740 +        else if(currentHistogram.inputCollection == "secondary electrons") fill1DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").back(),scaleFactor);
741          else if(currentHistogram.inputCollection == "muon-muon pairs") fill1DHistogram(histo,currentHistogram,muons.product(),muons.product(), \
742                                                                                         cumulativeFlags.at("muons").back(),cumulativeFlags.at("muons").back(), \
743                                                                                         cumulativeFlags.at("muon-muon pairs").back(),scaleFactor);
# Line 705 | Line 748 | OSUAnalysis::analyze (const edm::Event &
748          else if(currentHistogram.inputCollection == "electron-electron pairs") fill1DHistogram(histo,currentHistogram,electrons.product(),electrons.product(),\
749                                                                                                 cumulativeFlags.at("electrons").back(),cumulativeFlags.at("electrons").back(),\
750                                                                                                 cumulativeFlags.at("electron-electron pairs").back(),scaleFactor);
751 +        else if(currentHistogram.inputCollection == "electron-secondary electron pairs") fill1DHistogram(histo,currentHistogram,electrons.product(),electrons.product(), \
752 +                                                                                       cumulativeFlags.at("electrons").back(),cumulativeFlags.at("secondary electrons").back(), \
753 +                                                                                       cumulativeFlags.at("electron-secondary electron pairs").back(),scaleFactor);
754          else if(currentHistogram.inputCollection == "electron-muon pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),muons.product(), \
755                                                                                             cumulativeFlags.at("electrons").back(),cumulativeFlags.at("muons").back(),
756                                                                                             cumulativeFlags.at("electron-muon pairs").back(),scaleFactor);
757 +        else if(currentHistogram.inputCollection == "electron-jet pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),jets.product(), \
758 +                                                                                           cumulativeFlags.at("electrons").back(),cumulativeFlags.at("jets").back(),
759 +                                                                                           cumulativeFlags.at("electron-jet pairs").back(),scaleFactor);
760 +        else if(currentHistogram.inputCollection == "muon-jet pairs") fill1DHistogram(histo,currentHistogram, muons.product(),jets.product(), \
761 +                                                                                           cumulativeFlags.at("muons").back(),cumulativeFlags.at("jets").back(),
762 +                                                                                           cumulativeFlags.at("muon-jet pairs").back(),scaleFactor);
763          else if(currentHistogram.inputCollection == "electron-track pairs") fill1DHistogram(histo,currentHistogram, electrons.product(),tracks.product(),        
764                                                                                              cumulativeFlags.at("electrons").back(),cumulativeFlags.at("tracks").back(),  
765                                                                                              cumulativeFlags.at("electron-track pairs").back(),scaleFactor);      
# Line 734 | Line 786 | OSUAnalysis::analyze (const edm::Event &
786          else if(currentHistogram.inputCollection == "bxlumis") fill1DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").back(),scaleFactor);
787          else if(currentHistogram.inputCollection == "photons") fill1DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").back(),scaleFactor);
788          else if(currentHistogram.inputCollection == "superclusters") fill1DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").back(),scaleFactor);
789 +        else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill1DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").back(),scaleFactor);
790 +
791        }
792        else if(currentHistogram.inputVariables.size() == 2){
793          TH2D* histo;
# Line 745 | Line 799 | OSUAnalysis::analyze (const edm::Event &
799          else if(currentHistogram.inputCollection == "muon-muon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),muons.product(), \
800                                                                                         cumulativeFlags.at("muons").back(),cumulativeFlags.at("muons").back(), \
801                                                                                         cumulativeFlags.at("muon-muon pairs").back(),scaleFactor);
802 <        else if(currentHistogram.inputCollection == "muon-muon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),muons.product(), \
802 >        else if(currentHistogram.inputCollection == "muon-secondary muon pairs") fill2DHistogram(histo,currentHistogram,muons.product(),muons.product(), \
803                                                                                         cumulativeFlags.at("muons").back(),cumulativeFlags.at("secondary muons").back(), \
804                                                                                         cumulativeFlags.at("muon-secondary muon pairs").back(),scaleFactor);
805          else if(currentHistogram.inputCollection == "electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("electrons").back(),scaleFactor);
806 +        else if(currentHistogram.inputCollection == "secondary electrons") fill2DHistogram(histo,currentHistogram,electrons.product(),cumulativeFlags.at("secondary electrons").back(),scaleFactor);
807          else if(currentHistogram.inputCollection == "electron-electron pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),electrons.product(), \
808                                                                                                 cumulativeFlags.at("electrons").back(),cumulativeFlags.at("electrons").back(), \
809                                                                                                 cumulativeFlags.at("electron-electron pairs").back(),scaleFactor);
810 +        else if(currentHistogram.inputCollection == "electron-secondary electron pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),electrons.product(), \
811 +                                                                                       cumulativeFlags.at("electrons").back(),cumulativeFlags.at("secondary electrons").back(), \
812 +                                                                                       cumulativeFlags.at("electron-secondary electron pairs").back(),scaleFactor);
813          else if(currentHistogram.inputCollection == "electron-muon pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),muons.product(), \
814                                                                                             cumulativeFlags.at("electrons").back(),cumulativeFlags.at("muons").back(), \
815                                                                                             cumulativeFlags.at("electron-muon pairs").back(),scaleFactor);
816 +        else if(currentHistogram.inputCollection == "electron-jet pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),jets.product(), \
817 +                                                                                           cumulativeFlags.at("electrons").back(),cumulativeFlags.at("jets").back(), \
818 +                                                                                           cumulativeFlags.at("electron-jet pairs").back(),scaleFactor);
819 +        else if(currentHistogram.inputCollection == "muon-jet pairs") fill2DHistogram(histo,currentHistogram,muons.product(),jets.product(), \
820 +                                                                                           cumulativeFlags.at("muons").back(),cumulativeFlags.at("jets").back(), \
821 +                                                                                           cumulativeFlags.at("muon-jet pairs").back(),scaleFactor);
822          else if(currentHistogram.inputCollection == "electron-track pairs") fill2DHistogram(histo,currentHistogram,electrons.product(),tracks.product(),        
823                                                                                              cumulativeFlags.at("electrons").back(),cumulativeFlags.at("tracks").back(),          
824                                                                                              cumulativeFlags.at("electron-track pairs").back(),scaleFactor);      
# Line 783 | Line 847 | OSUAnalysis::analyze (const edm::Event &
847          else if(currentHistogram.inputCollection == "bxlumis") fill2DHistogram(histo,currentHistogram,bxlumis.product(),cumulativeFlags.at("bxlumis").back(),scaleFactor);
848          else if(currentHistogram.inputCollection == "photons") fill2DHistogram(histo,currentHistogram,photons.product(),cumulativeFlags.at("photons").back(),scaleFactor);
849          else if(currentHistogram.inputCollection == "superclusters") fill2DHistogram(histo,currentHistogram,superclusters.product(),cumulativeFlags.at("superclusters").back(),scaleFactor);
850 +        else if(currentHistogram.inputCollection == "stops" && datasetType_ == "signalMC") fill2DHistogram(histo,currentHistogram,stops.product(),cumulativeFlags.at("stops").back(),scaleFactor);
851 +
852        }
853      }
854  
# Line 796 | Line 862 | OSUAnalysis::analyze (const edm::Event &
862        string objectToPlot = "";  
863  
864        // Name of objectToPlot here must match the name specified in OSUAnalysis::OSUAnalysis().  
865 <      if(currentObject == "muon-muon pairs") objectToPlot = "dimuonPairs";
866 <      else if(currentObject == "electron-electron pairs") objectToPlot = "dielectronPairs";
867 <      else if(currentObject == "electron-muon pairs")     objectToPlot = "electronMuonPairs";
868 <      else if(currentObject == "electron-track pairs")    objectToPlot = "electronTrackPairs";
869 <      else if(currentObject == "muon-track pairs")        objectToPlot = "muonTrackPairs";      
870 <      else if(currentObject == "muon-tau pairs")          objectToPlot = "muonTauPairs";        
871 <      else if(currentObject == "tau-tau pairs")           objectToPlot = "ditauPairs";
872 <      else if(currentObject == "tau-track pairs")         objectToPlot = "tauTrackPairs";
873 <      else if(currentObject == "track-event pairs")       objectToPlot = "trackEventPairs";  
874 <      else if(currentObject == "muon-secondary muon pairs")       objectToPlot = "muonSecondaryMuonPairs";  
875 <      else if(currentObject == "secondary muons")         objectToPlot = "secondaryMuons";  
865 >      if(currentObject == "muon-muon pairs")                         objectToPlot = "dimuonPairs";
866 >      else if(currentObject == "electron-electron pairs")            objectToPlot = "dielectronPairs";
867 >      else if(currentObject == "electron-muon pairs")                objectToPlot = "electronMuonPairs";
868 >      else if(currentObject == "electron-jet pairs")                 objectToPlot = "electronJetPairs";
869 >      else if(currentObject == "muon-jet pairs")                     objectToPlot = "muonJetPairs";
870 >      else if(currentObject == "electron-track pairs")               objectToPlot = "electronTrackPairs";
871 >      else if(currentObject == "muon-track pairs")                   objectToPlot = "muonTrackPairs";    
872 >      else if(currentObject == "muon-tau pairs")                     objectToPlot = "muonTauPairs";      
873 >      else if(currentObject == "tau-tau pairs")                      objectToPlot = "ditauPairs";
874 >      else if(currentObject == "tau-track pairs")                    objectToPlot = "tauTrackPairs";
875 >      else if(currentObject == "track-event pairs")                  objectToPlot = "trackEventPairs";  
876 >      else if(currentObject == "muon-secondary muon pairs")          objectToPlot = "muonSecondaryMuonPairs";  
877 >      else if(currentObject == "secondary muons")                    objectToPlot = "secondaryMuons";  
878 >      else if(currentObject == "electron-secondary electron pairs")  objectToPlot = "electronSecondaryElectronPairs";  
879 >      else if(currentObject == "secondary electrons")                objectToPlot = "secondaryElectrons";  
880        else objectToPlot = currentObject;
881  
882        string tempCurrentObject = objectToPlot;
# Line 834 | Line 904 | OSUAnalysis::analyze (const edm::Event &
904        else if(objectToPlot == "dimuonPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(muons->size()*(muons->size()-1)/2,scaleFactor);
905        else if(objectToPlot == "muonSecondaryMuonPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(muons->size()*(muons->size()-1)/2,scaleFactor);
906        else if(objectToPlot == "electrons") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size(),scaleFactor);
907 +      else if(objectToPlot == "secondaryElectrons") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size(),scaleFactor);
908        else if(objectToPlot == "dielectronPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size()*(electrons->size()-1)/2,scaleFactor);
909 +      else if(objectToPlot == "electronSecondaryElectronPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size()*(electrons->size()-1)/2,scaleFactor);
910        else if(objectToPlot == "electronMuonPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size()*muons->size(),scaleFactor);
911 +      else if(objectToPlot == "electronJetPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size()*jets->size(),scaleFactor);
912 +      else if(objectToPlot == "muonJetPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(muons->size()*jets->size(),scaleFactor);
913        else if(objectToPlot == "electronTrackPairs") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(electrons->size()*tracks->size(),scaleFactor);
914        else if(objectToPlot == "events") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(events->size(),scaleFactor);
915        else if(objectToPlot == "taus") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(taus->size(),scaleFactor);
# Line 846 | Line 920 | OSUAnalysis::analyze (const edm::Event &
920        else if(objectToPlot == "bxlumis") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(bxlumis->size(),scaleFactor);
921        else if(objectToPlot == "photons") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(photons->size(),scaleFactor);
922        else if(objectToPlot == "superclusters") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(superclusters->size(),scaleFactor);
923 +      else if(objectToPlot == "stops" && datasetType_ == "signalMC") oneDHists_.at(currentChannelIndex).at(histoName)->Fill(stops->size(),scaleFactor);
924        else if(objectToPlot == "primaryvertexs"){
925          oneDHists_.at(currentChannelIndex).at(histoName+"BeforePileupCorrection")->Fill(primaryvertexs->size());
926          oneDHists_.at(currentChannelIndex).at(histoName+"AfterPileupCorrection")->Fill(primaryvertexs->size(),scaleFactor);
# Line 935 | Line 1010 | string OSUAnalysis::getObjToGet(string o
1010   }  
1011  
1012  
1013 <
1013 > //!jet valueLookup
1014   double
1015   OSUAnalysis::valueLookup (const BNjet* object, string variable, string function){
1016  
# Line 1065 | Line 1140 | OSUAnalysis::valueLookup (const BNjet* o
1140   }
1141  
1142  
1143 <
1143 > //!muon valueLookup
1144   double
1145   OSUAnalysis::valueLookup (const BNmuon* object, string variable, string function){
1146  
# Line 1389 | Line 1464 | OSUAnalysis::valueLookup (const BNmuon*
1464    else if(variable == "genMatchedMotherIdReverse"){
1465      int index = getGenMatchedParticleIndex(object);
1466      if(index == -1) value = 23;
1467 <    else value = 23 -getPdgIdBinValue(mcparticles->at(index).motherId);
1467 >    else value = 23 - getPdgIdBinValue(mcparticles->at(index).motherId);
1468    }
1469    else if(variable == "genMatchedGrandmotherId"){
1470      int index = getGenMatchedParticleIndex(object);
# Line 1401 | Line 1476 | OSUAnalysis::valueLookup (const BNmuon*
1476      }
1477      else value = getPdgIdBinValue(mcparticles->at(index).grandMotherId);
1478    }
1479 +  else if(variable == "genMatchedGrandmotherIdReverse"){
1480 +    int index = getGenMatchedParticleIndex(object);
1481 +    if(index == -1) value = 23;
1482 +    else if(fabs(mcparticles->at(index).motherId) == 15){
1483 +      int motherIndex = findTauMotherIndex(&mcparticles->at(index));
1484 +      if(motherIndex == -1) value = 23;
1485 +      else value = 23 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
1486 +    }
1487 +    else value = 23 - getPdgIdBinValue(mcparticles->at(index).grandMotherId);
1488 +  }
1489  
1490  
1491  
# Line 1411 | Line 1496 | OSUAnalysis::valueLookup (const BNmuon*
1496    return value;
1497   }
1498  
1499 <
1499 > //!electron valueLookup
1500   double
1501   OSUAnalysis::valueLookup (const BNelectron* object, string variable, string function){
1502  
# Line 1784 | Line 1869 | OSUAnalysis::valueLookup (const BNelectr
1869      }
1870      else value = getPdgIdBinValue(mcparticles->at(index).grandMotherId);
1871    }
1872 +  else if(variable == "genMatchedGrandmotherIdReverse"){
1873 +    int index = getGenMatchedParticleIndex(object);
1874 +    if(index == -1) value = 23;
1875 +    else if(fabs(mcparticles->at(index).motherId) == 15){
1876 +      int motherIndex = findTauMotherIndex(&mcparticles->at(index));
1877 +      if(motherIndex == -1) value = 23;
1878 +      else value = 23 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
1879 +    }
1880 +    else value = 23 - getPdgIdBinValue(mcparticles->at(index).grandMotherId);
1881 +  }
1882  
1883  
1884  
# Line 1794 | Line 1889 | OSUAnalysis::valueLookup (const BNelectr
1889    return value;
1890   }
1891  
1892 <
1892 > //!event valueLookup
1893   double
1894   OSUAnalysis::valueLookup (const BNevent* object, string variable, string function){
1895  
# Line 1894 | Line 1989 | OSUAnalysis::valueLookup (const BNevent*
1989    return value;
1990   }
1991  
1992 + //!tau valueLookup
1993   double
1994   OSUAnalysis::valueLookup (const BNtau* object, string variable, string function){
1995  
# Line 1974 | Line 2070 | OSUAnalysis::valueLookup (const BNtau* o
2070      }
2071      else value = getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2072    }
2073 +  else if(variable == "genMatchedGrandmotherIdReverse"){
2074 +    int index = getGenMatchedParticleIndex(object);
2075 +    if(index == -1) value = 23;
2076 +    else if(fabs(mcparticles->at(index).motherId) == 15){
2077 +      int motherIndex = findTauMotherIndex(&mcparticles->at(index));
2078 +      if(motherIndex == -1) value = 23;
2079 +      else value = 23 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
2080 +    }
2081 +    else value = 23 - getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2082 +  }
2083  
2084  
2085    else{std::cout << "WARNING: invalid variable '" << variable << "'\n"; value = -999;}
# Line 1983 | Line 2089 | OSUAnalysis::valueLookup (const BNtau* o
2089    return value;
2090   }
2091  
2092 + //!met valueLookup
2093   double
2094   OSUAnalysis::valueLookup (const BNmet* object, string variable, string function){
2095  
# Line 2055 | Line 2162 | OSUAnalysis::valueLookup (const BNmet* o
2162    return value;
2163   }
2164  
2165 + //!track valueLookup
2166   double
2167   OSUAnalysis::valueLookup (const BNtrack* object, string variable, string function){
2168  
# Line 2158 | Line 2266 | OSUAnalysis::valueLookup (const BNtrack*
2266      }
2267      else value = getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2268    }
2269 +  else if(variable == "genMatchedGrandmotherIdReverse"){
2270 +    int index = getGenMatchedParticleIndex(object);
2271 +    if(index == -1) value = 23;
2272 +    else if(fabs(mcparticles->at(index).motherId) == 15){
2273 +      int motherIndex = findTauMotherIndex(&mcparticles->at(index));
2274 +      if(motherIndex == -1) value = 23;
2275 +      else value = 23 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
2276 +    }
2277 +    else value = 23 - getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2278 +  }
2279  
2280  
2281  
# Line 2168 | Line 2286 | OSUAnalysis::valueLookup (const BNtrack*
2286    return value;
2287   }
2288  
2289 + //!genjet valueLookup
2290   double
2291   OSUAnalysis::valueLookup (const BNgenjet* object, string variable, string function){
2292  
# Line 2196 | Line 2315 | OSUAnalysis::valueLookup (const BNgenjet
2315    return value;
2316   }
2317  
2318 + //!mcparticle valueLookup
2319   double
2320   OSUAnalysis::valueLookup (const BNmcparticle* object, string variable, string function){
2321  
# Line 2329 | Line 2449 | OSUAnalysis::valueLookup (const BNmcpart
2449    return value;
2450   }
2451  
2452 + //!primaryvertex valueLookup
2453   double
2454   OSUAnalysis::valueLookup (const BNprimaryvertex* object, string variable, string function){
2455  
# Line 2356 | Line 2477 | OSUAnalysis::valueLookup (const BNprimar
2477    return value;
2478   }
2479  
2480 + //!bxlumi valueLookup
2481   double
2482   OSUAnalysis::valueLookup (const BNbxlumi* object, string variable, string function){
2483  
# Line 2373 | Line 2495 | OSUAnalysis::valueLookup (const BNbxlumi
2495    return value;
2496   }
2497  
2498 + //!photon valueLookup
2499   double
2500   OSUAnalysis::valueLookup (const BNphoton* object, string variable, string function){
2501  
# Line 2486 | Line 2609 | OSUAnalysis::valueLookup (const BNphoton
2609      }
2610      else value = getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2611    }
2612 +  else if(variable == "genMatchedGrandmotherIdReverse"){
2613 +    int index = getGenMatchedParticleIndex(object);
2614 +    if(index == -1) value = 23;
2615 +    else if(fabs(mcparticles->at(index).motherId) == 15){
2616 +      int motherIndex = findTauMotherIndex(&mcparticles->at(index));
2617 +      if(motherIndex == -1) value = 23;
2618 +      else value = 23 - getPdgIdBinValue(mcparticles->at(motherIndex).motherId);
2619 +    }
2620 +    else value = 23 - getPdgIdBinValue(mcparticles->at(index).grandMotherId);
2621 +  }
2622  
2623  
2624    else{std::cout << "WARNING: invalid variable '" << variable << "'\n"; value = -999;}
# Line 2495 | Line 2628 | OSUAnalysis::valueLookup (const BNphoton
2628    return value;
2629   }
2630  
2631 + //!supercluster valueLookup
2632   double
2633   OSUAnalysis::valueLookup (const BNsupercluster* object, string variable, string function){
2634  
# Line 2517 | Line 2651 | OSUAnalysis::valueLookup (const BNsuperc
2651    return value;
2652   }
2653  
2654 <
2654 > //!muon-muon pair valueLookup
2655   double
2656   OSUAnalysis::valueLookup (const BNmuon* object1, const BNmuon* object2, string variable, string function){
2657  
# Line 2588 | Line 2722 | OSUAnalysis::valueLookup (const BNmuon*
2722    return value;
2723   }
2724  
2725 + //!electron-electron pair valueLookup
2726   double
2727   OSUAnalysis::valueLookup (const BNelectron* object1, const BNelectron* object2, string variable, string function){
2728  
# Line 2643 | Line 2778 | OSUAnalysis::valueLookup (const BNelectr
2778    return value;
2779   }
2780  
2781 + //!electron-muon pair valueLookup
2782   double
2783   OSUAnalysis::valueLookup (const BNelectron* object1, const BNmuon* object2, string variable, string function){
2784  
# Line 2710 | Line 2846 | OSUAnalysis::valueLookup (const BNelectr
2846    return value;
2847   }
2848  
2849 + //!electron-jet pair valueLookup
2850 + double
2851 + OSUAnalysis::valueLookup (const BNelectron* object1, const BNjet* object2, string variable, string function){
2852 +
2853 +  double value = 0.0;
2854 +
2855 +  if(variable == "deltaPhi") value = fabs(deltaPhi(object1->phi,object2->phi));
2856 +  else if(variable == "deltaEta") value = fabs(object1->eta - object2->eta);
2857 +  else if(variable == "deltaR") value = deltaR(object1->eta,object1->phi,object2->eta,object2->phi);
2858 +  else if(variable == "invMass"){
2859 +    TLorentzVector fourVector1(object1->px, object1->py, object1->pz, object1->energy);
2860 +    TLorentzVector fourVector2(object2->px, object2->py, object2->pz, object2->energy);
2861 +    value = (fourVector1 + fourVector2).M();
2862 +  }
2863 +  else if(variable == "pt"){
2864 +    TLorentzVector fourVector1(object1->px, object1->py, object1->pz, object1->energy);
2865 +    TLorentzVector fourVector2(object2->px, object2->py, object2->pz, object2->energy);
2866 +    value = (fourVector1 + fourVector2).Pt();
2867 +  }
2868 +  else if(variable == "threeDAngle")
2869 +    {
2870 +      TVector3 threeVector1(object1->px, object1->py, object1->pz);
2871 +      TVector3 threeVector2(object2->px, object2->py, object2->pz);
2872 +      value = (threeVector1.Angle(threeVector2));
2873 +    }
2874 +  else if(variable == "chargeProduct"){
2875 +    value = object1->charge*object2->charge;
2876 +  }
2877 +
2878 +  else{std::cout << "WARNING: invalid variable '" << variable << "'\n"; value = -999;}
2879 +
2880 +  value = applyFunction(function, value);
2881 +
2882 +  return value;
2883 + }
2884 +
2885 + //!muon-jet pair valueLookup
2886 + double
2887 + OSUAnalysis::valueLookup (const BNmuon* object1, const BNjet* object2, string variable, string function){
2888 +
2889 +  double value = 0.0;
2890  
2891 +  if(variable == "deltaPhi") value = fabs(deltaPhi(object1->phi,object2->phi));
2892 +  else if(variable == "deltaEta") value = fabs(object1->eta - object2->eta);
2893 +  else if(variable == "deltaR") value = deltaR(object1->eta,object1->phi,object2->eta,object2->phi);
2894 +  else if(variable == "invMass"){
2895 +    TLorentzVector fourVector1(object1->px, object1->py, object1->pz, object1->energy);
2896 +    TLorentzVector fourVector2(object2->px, object2->py, object2->pz, object2->energy);
2897 +    value = (fourVector1 + fourVector2).M();
2898 +  }
2899 +  else if(variable == "pt"){
2900 +    TLorentzVector fourVector1(object1->px, object1->py, object1->pz, object1->energy);
2901 +    TLorentzVector fourVector2(object2->px, object2->py, object2->pz, object2->energy);
2902 +    value = (fourVector1 + fourVector2).Pt();
2903 +  }
2904 +  else if(variable == "threeDAngle")
2905 +    {
2906 +      TVector3 threeVector1(object1->px, object1->py, object1->pz);
2907 +      TVector3 threeVector2(object2->px, object2->py, object2->pz);
2908 +      value = (threeVector1.Angle(threeVector2));
2909 +    }
2910 +  else if(variable == "chargeProduct"){
2911 +    value = object1->charge*object2->charge;
2912 +  }
2913 +
2914 +  else{std::cout << "WARNING: invalid variable '" << variable << "'\n"; value = -999;}
2915 +
2916 +  value = applyFunction(function, value);
2917 +
2918 +  return value;
2919 + }
2920 +
2921 + //!electron-track pair valueLookup
2922   double  
2923   OSUAnalysis::valueLookup (const BNelectron* object1, const BNtrack* object2, string variable, string function){  
2924    double electronMass = 0.000511;        
# Line 2732 | Line 2940 | OSUAnalysis::valueLookup (const BNelectr
2940   }
2941  
2942  
2943 <
2943 > //!muon-track pair valueLookup
2944   double
2945   OSUAnalysis::valueLookup (const BNmuon* object1, const BNtrack* object2, string variable, string function){
2946    double pionMass = 0.140;
# Line 2755 | Line 2963 | OSUAnalysis::valueLookup (const BNmuon*
2963    return value;
2964   }
2965  
2966 <
2966 > //!tau-tau pair valueLookup
2967   double
2968   OSUAnalysis::valueLookup (const BNtau* object1, const BNtau* object2, string variable, string function){
2969    double value = 0.0;
# Line 2773 | Line 2981 | OSUAnalysis::valueLookup (const BNtau* o
2981    return value;
2982   }
2983  
2984 <
2984 > //!muon-tau pair valueLookup
2985   double
2986   OSUAnalysis::valueLookup (const BNmuon* object1, const BNtau* object2, string variable, string function){
2987    double value = 0.0;
# Line 2791 | Line 2999 | OSUAnalysis::valueLookup (const BNmuon*
2999    return value;
3000   }
3001  
3002 + //!tau-track pair valueLookup
3003   double
3004   OSUAnalysis::valueLookup (const BNtau* object1, const BNtrack* object2, string variable, string function){
3005    double value = 0.0;
# Line 2803 | Line 3012 | OSUAnalysis::valueLookup (const BNtau* o
3012   }
3013  
3014  
3015 <
3015 > //!track-event pair valueLookup
3016   double
3017   OSUAnalysis::valueLookup (const BNtrack* object1, const BNevent* object2, string variable, string function){
3018  
# Line 2823 | Line 3032 | OSUAnalysis::valueLookup (const BNtrack*
3032  
3033    return value;
3034  
3035 + }
3036 +
3037 + //!stop valueLookup
3038 + double
3039 + OSUAnalysis::valueLookup (const BNstop* object, string variable, string function){
3040 +
3041 +
3042 +  double value = 0.0;
3043 +
3044 +  if(variable == "ctau") value = object->ctau;
3045 +
3046 +  else if (variable == "d0"){
3047 +    double vx = object->vx - chosenVertex ()->x,
3048 +      vy = object->vy - chosenVertex ()->y,
3049 +      px = object->px,
3050 +      py = object->py,
3051 +      pt = object->pt;
3052 +    value = (-vx * py + vy * px) / pt;
3053 +  }
3054 +
3055 +  else if (variable == "dz"){
3056 +    double vx = object->vx - chosenVertex ()->x,
3057 +      vy = object->vy - chosenVertex ()->y,
3058 +      vz = object->vz - chosenVertex ()->z,
3059 +      px = object->px,
3060 +      py = object->py,
3061 +      pz = object->pz,
3062 +      pt = object->pt;
3063 +    value = vz - (vx * px + vy * py)/pt * (pz/pt);
3064 +  }
3065 +
3066 +  else if (variable == "minD0"){
3067 +    double minD0=999;
3068 +    for(BNprimaryvertexCollection::const_iterator vertex = primaryvertexs->begin (); vertex != primaryvertexs->end (); vertex++){
3069 +      double vx = object->vx - vertex->x,
3070 +        vy = object->vy - vertex->y,
3071 +        px = object->px,
3072 +        py = object->py,
3073 +        pt = object->pt;
3074 +      value = (-vx * py + vy * px) / pt;
3075 +      if(abs(value) < abs(minD0)) minD0 = value;
3076 +    }
3077 +    value = minD0;
3078 +  }
3079 +  else if (variable == "minDz"){
3080 +    double minDz=999;
3081 +    for(BNprimaryvertexCollection::const_iterator vertex = primaryvertexs->begin (); vertex != primaryvertexs->end (); vertex++){
3082 +      double vx = object->vx - vertex->x,
3083 +        vy = object->vy - vertex->y,
3084 +        vz = object->vz - vertex->z,
3085 +        px = object->px,
3086 +        py = object->py,
3087 +        pz = object->pz,
3088 +        pt = object->pt;
3089 +      value = vz - (vx * px + vy * py)/pt * (pz/pt);
3090 +      if(abs(value) < abs(minDz)) minDz = value;
3091 +    }
3092 +    value = minDz;
3093 +  }
3094 +  else if(variable == "distToVertex"){
3095 +    value = sqrt((object->vx-chosenVertex()->x)*(object->vx-chosenVertex()->x) + \
3096 +                 (object->vy-chosenVertex()->y)*(object->vy-chosenVertex()->y) + \
3097 +                 (object->vz-chosenVertex()->z)*(object->vz-chosenVertex()->z));
3098 +  }
3099 +  else if (variable == "minDistToVertex"){
3100 +    double minDistToVertex=999;
3101 +    for(BNprimaryvertexCollection::const_iterator vertex = primaryvertexs->begin (); vertex != primaryvertexs->end (); vertex++){
3102 +      value = sqrt((object->vx-vertex->x)*(object->vx-vertex->x) + \
3103 +                   (object->vy-vertex->y)*(object->vy-vertex->y) + \
3104 +                   (object->vz-vertex->z)*(object->vz-vertex->z));
3105 +      
3106 +      if(abs(value) < abs(minDistToVertex)) minDistToVertex = value;
3107 +    }
3108 +    value = minDistToVertex;
3109 +  }
3110 +  else if (variable == "distToVertexDifference"){
3111 +    double minDistToVertex=999;
3112 +    for(BNprimaryvertexCollection::const_iterator vertex = primaryvertexs->begin (); vertex != primaryvertexs->end (); vertex++){
3113 +      value = sqrt((object->vx-vertex->x)*(object->vx-vertex->x) + \
3114 +                   (object->vy-vertex->y)*(object->vy-vertex->y) + \
3115 +                   (object->vz-vertex->z)*(object->vz-vertex->z));
3116 +      
3117 +      if(abs(value) < abs(minDistToVertex)) minDistToVertex = value;
3118 +    }
3119 +    double distToChosenVertex = sqrt((object->vx-chosenVertex()->x)*(object->vx-chosenVertex()->x) + \
3120 +                                     (object->vy-chosenVertex()->y)*(object->vy-chosenVertex()->y) + \
3121 +                                     (object->vz-chosenVertex()->z)*(object->vz-chosenVertex()->z));
3122 +
3123 +    value = distToChosenVertex - minDistToVertex;
3124 +  }
3125 +
3126 +  else if (variable == "closestVertexRank"){
3127 +    double minDistToVertex=999;
3128 +    int vertex_rank = 0;
3129 +    for(BNprimaryvertexCollection::const_iterator vertex = primaryvertexs->begin (); vertex != primaryvertexs->end (); vertex++){
3130 +      vertex_rank++;
3131 +      int dist = sqrt((object->vx-vertex->x)*(object->vx-vertex->x) + \
3132 +                   (object->vy-vertex->y)*(object->vy-vertex->y) + \
3133 +                   (object->vz-vertex->z)*(object->vz-vertex->z));
3134 +      
3135 +      if(abs(dist) < abs(minDistToVertex)){
3136 +        value = vertex_rank;
3137 +        minDistToVertex = dist;
3138 +      }
3139 +    }
3140 +  }
3141 +
3142 +
3143 +
3144 +
3145 +  else { std::cout << "WARNING: invalid variable '" << variable << "'\n"; value = -999; }
3146 +
3147 +  value = applyFunction(function, value);
3148 +
3149 +  return value;
3150 +
3151   }  
3152  
3153 +
3154 +
3155 +
3156   // Calculate the number of tracks in cone of DeltaR<0.5 around track1.
3157   // Return true iff no other tracks are found in this cone.
3158   int

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines