CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoParticleFlow/PFRootEvent/interface/PFRootEventManager.h

Go to the documentation of this file.
00001 #ifndef RecoParticleFlow_PFRootEvent_PFRootEventManager_h
00002 #define RecoParticleFlow_PFRootEvent_PFRootEventManager_h
00003 
00004 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00005 
00006 #include "DataFormats/Provenance/interface/EventAuxiliary.h"
00007 
00008 #include "DataFormats/ParticleFlowReco/interface/PFRecHit.h"
00009 #include "DataFormats/ParticleFlowReco/interface/PFRecHitFwd.h"
00010 
00011 #include "DataFormats/ParticleFlowReco/interface/PFCluster.h"
00012 #include "DataFormats/ParticleFlowReco/interface/PFClusterFwd.h"
00013 
00014 #include "DataFormats/ParticleFlowReco/interface/PFTrajectoryPoint.h"
00015 
00016 #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h"
00017 #include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h"
00018 #include "DataFormats/TrackReco/interface/Track.h"
00019 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00020 #include "DataFormats/VertexReco/interface/VertexFwd.h"
00021 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrack.h"
00022 #include "DataFormats/ParticleFlowReco/interface/GsfPFRecTrackFwd.h"
00023 
00024 #include "DataFormats/ParticleFlowReco/interface/PFSimParticle.h"
00025 #include "DataFormats/ParticleFlowReco/interface/PFSimParticleFwd.h"
00026 
00027 #include "DataFormats/ParticleFlowReco/interface/PFBlock.h"
00028 #include "DataFormats/ParticleFlowReco/interface/PFBlockFwd.h"
00029 
00030 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
00031 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h"
00032 
00033 #include "DataFormats/MuonReco/interface/MuonFwd.h"
00034 #include "DataFormats/MuonReco/interface/Muon.h"
00035 
00036 #include "DataFormats/ParticleFlowReco/interface/PFDisplacedTrackerVertex.h"
00037 
00038 #include "DataFormats/ParticleFlowReco/interface/PFConversion.h"
00039 #include "DataFormats/ParticleFlowReco/interface/PFConversionFwd.h"
00040 #include "DataFormats/ParticleFlowReco/interface/PFV0.h"
00041 #include "DataFormats/ParticleFlowReco/interface/PFV0Fwd.h"
00042 
00043 #include "DataFormats/Candidate/interface/CandidateFwd.h"
00044 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00045 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
00046 #include "CommonTools/CandUtils/interface/pdgIdUtils.h"
00047 
00048 /* #include "DataFormats/EgammaReco/interface/BasicCluster.h" */
00049 #include "DataFormats/CaloTowers/interface/CaloTower.h"
00050 #include "DataFormats/CaloTowers/interface/CaloTowerFwd.h"
00051 
00052 #include "RecoParticleFlow/PFClusterProducer/interface/PFClusterAlgo.h"
00053 #include "RecoParticleFlow/PFProducer/interface/PFBlockAlgo.h"
00054 #include "RecoParticleFlow/PFProducer/interface/PFAlgo.h"
00055 
00056 #include "RecoParticleFlow/PFRootEvent/interface/PFJetAlgorithm.h"
00057 #include "RecoParticleFlow/Benchmark/interface/PFJetBenchmark.h"
00058 #include "RecoParticleFlow/Benchmark/interface/PFMETBenchmark.h"
00059 #include "DQMOffline/PFTau/interface/PFCandidateManager.h"
00060 
00061 #include "RecoParticleFlow/PFRootEvent/interface/FWLiteJetProducer.h"
00062 #include "DataFormats/JetReco/interface/BasicJetCollection.h"
00063 #include "DataFormats/JetReco/interface/PFJetCollection.h"
00064 #include "DataFormats/JetReco/interface/PFJet.h"
00065 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
00066 
00067 #include "DataFormats/METReco/interface/PFMETCollection.h"
00068 #include "DataFormats/METReco/interface/PFMET.h"
00069 #include "DataFormats/METReco/interface/CaloMETCollection.h"
00070 #include "DataFormats/METReco/interface/CaloMET.h"
00071 #include "DataFormats/METReco/interface/METCollection.h"
00072 #include "DataFormats/METReco/interface/MET.h"
00073 
00074 #include "RecoParticleFlow/PFRootEvent/interface/METManager.h"
00075 
00076 
00077 #include <TObject.h>
00078 #include "TEllipse.h"
00079 #include "TBox.h"
00080 
00081 #include <string>
00082 #include <map>
00083 #include <set>
00084 #include <vector>
00085 #include <memory>
00086 #include <iostream>
00087 #include <fstream>
00088 
00089 class TTree;
00090 class TBranch;
00091 class TFile;
00092 class TCanvas;
00093 class TH2F;
00094 class TH1F;
00095 
00096 
00097 class IO;
00098 
00099 
00100 class PFBlockElement;
00101 
00102 class EventColin;
00103 class PFEnergyCalibration;
00104 class PFEnergyCalibrationHF;
00105 class PFEnergyResolution;
00106 
00107 namespace pftools { 
00108   class PFClusterCalibration;
00109 }
00110 
00111 class METManager;
00112 
00113 // NEW
00114 namespace fwlite {
00115   class ChainEvent;
00116 }
00117 
00118 typedef std::pair<double, unsigned> simMatch;
00119 typedef std::list< std::pair<double, unsigned> >::iterator ITM;
00120 
00122 
00181 class PFRootEventManager {
00182 
00183  public:
00184 
00186   enum View_t { XY = 0, RZ = 1, EPE = 2, EPH = 3, NViews = 4 };
00187   enum Verbosity {SHUTUP = 0, VERBOSE};
00188 
00190   PFRootEventManager();
00191   
00193   PFRootEventManager(const char* file);
00194 
00196   virtual ~PFRootEventManager();
00197   
00198   void initializeEventInformation();
00199 
00200   virtual void write();
00201   
00203   void reset();
00204 
00206   std::string getGenParticleName(int partId,std::string &latexStringName) const;
00207   
00208                          
00211   void readOptions(const char* file, 
00212                    bool refresh=true,
00213                    bool reconnect=false);
00214 
00215 
00216   virtual void readSpecificOptions(const char* file) {}
00217   
00219   void connect(const char* infilename="");
00220 
00221   int eventToEntry(int run, int lumi, int event) const;
00222   
00224   virtual bool processEvent(int run, int lumi, int event); 
00225 
00227   virtual bool processEntry(int entry);
00228 
00230   bool readFromSimulation(int entry);
00231 
00233   bool isHadronicTau() const;
00234 
00238   bool countChargedAndPhotons() const;
00239   
00243   int chargeValue(const int& pdgId) const;
00244    
00245   
00247   void PreprocessRecTracks( reco::PFRecTrackCollection& rectracks); 
00248   void PreprocessRecTracks( reco::GsfPFRecTrackCollection& rectracks); 
00249   
00251   void PreprocessRecHits( reco::PFRecHitCollection& rechits, 
00252                           bool findNeighbours);
00253   
00257   void setRecHitNeigbours( reco::PFRecHit& rh, 
00258                            const std::map<unsigned, unsigned>& detId2index );
00259 
00261   //  bool readFromRealData(int entry);
00262 
00264   void clustering();
00265 
00267   void particleFlow();
00268 
00270   void pfCandCompare(int);
00271 
00273   void reconstructGenJets();   
00274 
00276   void reconstructCaloJets();   
00277   
00279   void reconstructPFJets();
00280   
00282   void reconstructFWLiteJets(const reco::CandidatePtrVector& Candidates,
00283                              std::vector<ProtoJet>& output);
00284 
00285   void mcTruthMatching( std::ostream& out,
00286                         const reco::PFCandidateCollection& candidates,
00287                         std::vector< std::list <simMatch> >& candSimMatchTrack,
00288                         std::vector< std::list <simMatch> >&  candSimMatchEcal) const;
00289 
00293   double tauBenchmark( const reco::PFCandidateCollection& candidates);
00294 
00295 
00297   void fillOutEventWithClusters(const reco::PFClusterCollection& clusters);
00298 
00300   void fillOutEventWithPFCandidates(const reco::PFCandidateCollection& pfCandidates );
00301 
00303   void fillOutEventWithSimParticles(const reco::PFSimParticleCollection& ptcs);
00304 
00306   void fillOutEventWithCaloTowers(const CaloTowerCollection& cts);
00307 
00309   void fillOutEventWithBlocks(const reco::PFBlockCollection& blocks);
00310   
00311 
00312 
00314   void   print(  std::ostream& out = std::cout,
00315                  int maxNLines = -1 ) const;
00316 
00318   void   printMCCalib(  std::ofstream& out ) const;
00319 
00320 
00322   TTree* tree() {return tree_;}
00323 
00324   // protected:
00325 
00326   // expand environment variable in a string
00327   std::string  expand(const std::string& oldString) const;
00328 
00330   void printRecHits(const reco::PFRecHitCollection& rechits, 
00331                     const PFClusterAlgo& clusterAlgo,
00332                     std::ostream& out = std::cout) const;
00333 
00334   void   printRecHit(const reco::PFRecHit& rh, unsigned index, 
00335                      const char* seed="    ",
00336                      std::ostream& out = std::cout) const;
00337   
00339   void   printClusters(const reco::PFClusterCollection& clusters,
00340                       std::ostream& out = std::cout) const;
00341 
00342   void   printCluster(const reco::PFCluster& cluster,
00343                       std::ostream& out = std::cout) const;
00344 
00345  
00347   void printGenParticles(std::ostream& out = std::cout,
00348                          int maxNLines = -1) const;
00349                          
00350   
00351   /*   /// is inside cut G?  */
00352   /*   bool   insideGCut(double eta, double phi) const; */
00353   
00355   bool trackInsideGCut( const reco::PFTrack& track ) const;
00356   
00358   void fillRecHitMask( std::vector<bool>& mask, 
00359                        const reco::PFRecHitCollection& rechits ) const;
00360                        
00362   void fillClusterMask( std::vector<bool>& mask, 
00363                         const reco::PFClusterCollection& clusters ) const;
00364 
00366   void fillTrackMask( std::vector<bool>& mask, 
00367                       const reco::PFRecTrackCollection& tracks ) const;
00368   void fillTrackMask( std::vector<bool>& mask, 
00369                       const reco::GsfPFRecTrackCollection& tracks ) const;
00370                        
00372   const reco::PFSimParticle& 
00373     closestParticle( reco::PFTrajectoryPoint::LayerType  layer, 
00374                      double eta, double phi, 
00375                      double& peta, double& pphi, double& pe) const;
00376                      
00377   
00378   const  reco::PFBlockCollection& blocks() const { return *pfBlocks_; }
00379 
00380   
00381   int eventNumber()   {return iEvent_;}
00382 
00383   /*   std::vector<int> getViewSizeEtaPhi() {return viewSizeEtaPhi_;} */
00384   /*   std::vector<int> getViewSize()       {return viewSize_;} */
00385   
00386   void readCMSSWJets();  
00387   
00389   bool eventAccepted() const;
00390 
00392   bool highPtJet( double ptMin ) const; 
00393 
00395   bool highPtPFCandidate( double ptMin, 
00396                           reco::PFCandidate::ParticleType type = reco::PFCandidate::X) const;
00397 
00399   edm::InputTag stringToTag(const std::vector< std::string >& tagname); 
00400   // data members -------------------------------------------------------
00401 
00403   int         iEvent_;
00404   
00406   IO*         options_;      
00407   
00409   fwlite::ChainEvent* ev_;
00410 
00412   TTree*      tree_;          
00413   
00415   TTree*      outTree_;
00416 
00419   EventColin* outEvent_;
00420 
00422   TH1F*            h_deltaETvisible_MCEHT_;
00423 
00425   TH1F*            h_deltaETvisible_MCPF_;
00426  
00427 
00428 
00429   // branches --------------------------
00430   
00431   TBranch*   eventAuxiliaryBranch_;
00432 
00434   edm::EventAuxiliary*      eventAuxiliary_;
00435 
00437   edm::Handle<reco::PFRecHitCollection> rechitsECALHandle_;
00438   edm::InputTag rechitsECALTag_;
00439   reco::PFRecHitCollection rechitsECAL_;
00440 
00442   edm::Handle<reco::PFRecHitCollection> rechitsHCALHandle_;
00443   edm::InputTag rechitsHCALTag_;
00444   reco::PFRecHitCollection rechitsHCAL_;
00445 
00447   edm::Handle<reco::PFRecHitCollection> rechitsHFEMHandle_;
00448   edm::InputTag rechitsHFEMTag_;
00449   reco::PFRecHitCollection rechitsHFEM_;
00450 
00452   edm::Handle<reco::PFRecHitCollection> rechitsHFHADHandle_;
00453   edm::InputTag rechitsHFHADTag_;
00454   reco::PFRecHitCollection rechitsHFHAD_;
00455 
00457   std::vector< reco::PFRecHitCollection > rechitsCLEANEDV_;
00458   std::vector< edm::Handle<reco::PFRecHitCollection> > rechitsCLEANEDHandles_;
00459   std::vector< edm::InputTag > rechitsCLEANEDTags_;
00460   reco::PFRecHitCollection rechitsCLEANED_;
00461 
00463   edm::Handle<reco::PFRecHitCollection> rechitsPSHandle_;
00464   edm::InputTag rechitsPSTag_;
00465   reco::PFRecHitCollection rechitsPS_;
00466 
00468   edm::Handle<reco::PFClusterCollection> clustersECALHandle_;
00469   edm::InputTag clustersECALTag_;
00470   std::auto_ptr< reco::PFClusterCollection > clustersECAL_;
00471 
00473   edm::Handle<reco::PFClusterCollection> clustersHCALHandle_;
00474   edm::InputTag clustersHCALTag_;
00475   std::auto_ptr< reco::PFClusterCollection > clustersHCAL_;
00476 
00478   edm::Handle<reco::PFClusterCollection> clustersHFEMHandle_;
00479   edm::InputTag clustersHFEMTag_;
00480   std::auto_ptr< reco::PFClusterCollection > clustersHFEM_;
00481 
00483   edm::Handle<reco::PFClusterCollection> clustersHFHADHandle_;
00484   edm::InputTag clustersHFHADTag_;
00485   std::auto_ptr< reco::PFClusterCollection > clustersHFHAD_;
00486 
00488   edm::Handle<reco::PFClusterCollection> clustersPSHandle_;
00489   edm::InputTag clustersPSTag_;
00490   std::auto_ptr< reco::PFClusterCollection > clustersPS_;
00491 
00493   edm::Handle<CaloTowerCollection> caloTowersHandle_;
00494   edm::InputTag caloTowersTag_;
00495   CaloTowerCollection     caloTowers_;
00496 
00500   reco::CandidatePtrVector caloTowersPtrs_;
00501 
00502 
00504   edm::Handle<reco::VertexCollection> primaryVerticesHandle_;
00505   edm::InputTag primaryVerticesTag_;
00506   reco::VertexCollection primaryVertices_;
00507 
00509   edm::Handle<reco::PFRecTrackCollection> recTracksHandle_;
00510   edm::Handle<reco::PFRecTrackCollection> displacedRecTracksHandle_;
00511   edm::InputTag recTracksTag_;
00512   edm::InputTag displacedRecTracksTag_;
00513   reco::PFRecTrackCollection    recTracks_;
00514   reco::PFRecTrackCollection    displacedRecTracks_;
00515 
00517   edm::Handle<reco::GsfPFRecTrackCollection> gsfrecTracksHandle_;
00518   edm::InputTag gsfrecTracksTag_;
00519   reco::GsfPFRecTrackCollection  gsfrecTracks_; 
00520   
00522   edm::Handle<reco::GsfPFRecTrackCollection> convBremGsfrecTracksHandle_;
00523   edm::InputTag convBremGsfrecTracksTag_;
00524   reco::GsfPFRecTrackCollection  convBremGsfrecTracks_; 
00525 
00527   edm::Handle<reco::TrackCollection> stdTracksHandle_;
00528   edm::InputTag stdTracksTag_;
00529   reco::TrackCollection    stdTracks_;
00530   
00532   edm::Handle<reco::MuonCollection> muonsHandle_;
00533   edm::InputTag muonsTag_;
00534   reco::MuonCollection  muons_;
00535 
00537   edm::Handle<reco::PFConversionCollection> conversionHandle_;
00538   edm::InputTag conversionTag_;
00539   reco::PFConversionCollection conversion_;
00540   
00542   edm::Handle<reco::PFV0Collection> v0Handle_;
00543   edm::InputTag v0Tag_;
00544   reco::PFV0Collection v0_;
00545 
00547   edm::Handle<reco::PFDisplacedTrackerVertexCollection> pfNuclearTrackerVertexHandle_;
00548   edm::InputTag pfNuclearTrackerVertexTag_;
00549   reco::PFDisplacedTrackerVertexCollection pfNuclearTrackerVertex_;
00550 
00552   edm::Handle<reco::PFSimParticleCollection> trueParticlesHandle_;
00553   edm::InputTag trueParticlesTag_;
00554   reco::PFSimParticleCollection trueParticles_;
00555 
00557   edm::Handle<edm::HepMCProduct> MCTruthHandle_;
00558   edm::InputTag MCTruthTag_;
00559   edm::HepMCProduct MCTruth_;
00560   
00562   edm::Handle<reco::GenParticleRefVector> genParticlesforJetsHandle_;
00563   edm::InputTag genParticlesforJetsTag_;
00564   reco::GenParticleRefVector genParticlesforJets_;
00565   
00567   reco::GenJetCollection genJets_;
00568 
00570   edm::Handle<reco::GenParticleCollection> genParticlesforMETHandle_;
00571   edm::InputTag genParticlesforMETTag_;
00572   reco::GenParticleCollection genParticlesCMSSW_;
00573 
00577   reco::CandidatePtrVector genParticlesforJetsPtrs_;
00578 
00580   std::auto_ptr< reco::PFBlockCollection >   pfBlocks_;
00581 
00583   std::auto_ptr< reco::PFCandidateCollection > pfCandidates_;
00584   
00589   reco::CandidatePtrVector pfCandidatesPtrs_;
00590 
00592   reco::PFJetCollection pfJets_;
00593 
00595   std::vector<ProtoJet> caloJets_;
00596 
00598   edm::Handle<reco::PFJetCollection> pfJetsHandle_;
00599   edm::InputTag pfJetsTag_;
00600   reco::PFJetCollection pfJetsCMSSW_;
00601 
00603   edm::Handle<reco::GenJetCollection> genJetsHandle_;
00604   edm::InputTag genJetsTag_;
00605   reco::GenJetCollection genJetsCMSSW_;
00606 
00608   edm::Handle< std::vector<reco::CaloJet> >caloJetsHandle_;
00609   edm::InputTag caloJetsTag_;
00610   std::vector<reco::CaloJet> caloJetsCMSSW_;
00611 
00613   edm::Handle< std::vector<reco::CaloJet> > corrcaloJetsHandle_;
00614   edm::InputTag corrcaloJetsTag_;
00615   std::vector<reco::CaloJet> corrcaloJetsCMSSW_;
00616 
00618   reco::PFMETCollection pfMets_;
00619 
00621   reco::CaloMETCollection caloMets_;
00622 
00624   reco::METCollection tcMets_;
00625 
00627   edm::Handle<reco::CaloMETCollection> caloMetsHandle_;
00628   edm::InputTag caloMetsTag_;
00629   reco::CaloMETCollection caloMetsCMSSW_;
00630 
00632   edm::Handle<reco::METCollection> tcMetsHandle_;
00633   edm::InputTag tcMetsTag_;
00634   reco::METCollection tcMetsCMSSW_;
00635 
00637   edm::Handle<reco::PFMETCollection> pfMetsHandle_;
00638   edm::InputTag pfMetsTag_;
00639   reco::PFMETCollection pfMetsCMSSW_;
00640 
00642   edm::Handle<reco::PFCandidateCollection> pfCandidateHandle_;
00643   edm::InputTag pfCandidateTag_;
00644   reco::PFCandidateCollection pfCandCMSSW_;
00645 
00647   TFile*     file_; 
00648 
00650   std::vector<std::string> inFileNames_;
00651 
00653   TFile*     outFile_;
00654 
00656   std::string     outFileName_;   
00657 
00658   // algos --------------------------------------------------------
00659   
00662   PFClusterAlgo   clusterAlgoECAL_;
00663 
00665   PFClusterAlgo   clusterAlgoHCAL_;
00666 
00668   PFClusterAlgo   clusterAlgoHFEM_;
00669 
00671   PFClusterAlgo   clusterAlgoHFHAD_;
00672 
00674   PFClusterAlgo   clusterAlgoPS_;
00675 
00676 
00678   PFBlockAlgo     pfBlockAlgo_;
00679 
00681   PFAlgo          pfAlgo_;
00682 
00683   // ------------------- benchmarks -------------------------------
00684   
00686   PFJetBenchmark PFJetBenchmark_;
00687 
00689   double MET1cut;
00690   double DeltaMETcut;
00691   double DeltaPhicut;
00692 
00693   PFCandidateManager   pfCandidateManager_;
00694   bool                 doPFCandidateBenchmark_;
00695 
00698   PFJetAlgorithm  jetAlgo_;
00699   
00701   FWLiteJetProducer jetMaker_;
00702 
00703 
00704   //----------------- print flags --------------------------------
00705 
00707   bool                     printRecHits_;
00708   double                   printRecHitsEMin_;
00709 
00711   bool                     printClusters_;
00712   double                   printClustersEMin_;
00713 
00715   bool                     printPFBlocks_;
00716 
00718   bool                     printPFCandidates_; 
00719   double                   printPFCandidatesPtMin_; 
00720 
00722   bool                     printPFJets_;
00723   double                   printPFJetsPtMin_;
00724   
00726   bool                     printSimParticles_;
00727   double                   printSimParticlesPtMin_;
00728 
00730   bool                     printGenParticles_;
00731   double                   printGenParticlesPtMin_;
00732 
00733   // print MC truth matching with PFCandidate yes/no
00734   bool                     printMCTruthMatching_;
00735 
00737   int                      verbosity_;
00738 
00739   //----------------- filter ------------------------------------
00740   
00741   unsigned                 filterNParticles_;
00742   
00743   bool                     filterHadronicTaus_;
00744 
00745   std::vector<int>         filterTaus_;
00746 
00747   // --------
00748 
00751   bool   doClustering_;
00752 
00754   bool   doParticleFlow_;
00755   
00757   bool   doCompare_;
00758 
00760   bool   doJets_;
00761 
00763   bool   doMet_;  
00764 
00766   bool JECinCaloMet_;
00767 
00769   int    jetAlgoType_;
00770 
00772   bool   doTauBenchmark_;
00773 
00775   bool   tauBenchmarkDebug_;
00776   
00778   bool   doPFJetBenchmark_;
00779 
00781   bool doPFMETBenchmark_; 
00782 
00784   bool   debug_;  
00785 
00787   bool   findRecHitNeighbours_;
00788 
00789   
00791   bool   jetsDebug_;
00792       
00793 
00795   bool  fastsim_;
00796 
00798   bool   usePFConversions_;  
00799 
00801   bool   usePFV0s_;
00802 
00804   bool   usePFNuclearInteractions_;
00805 
00807   bool useConvBremGsfTracks_;
00808 
00810   bool useConvBremPFRecTracks_;
00811 
00813   bool useAtHLT;
00814 
00815   // MC Truth tools              ---------------------------------------
00816 
00820   /*   TDatabasePDG*   pdgTable_; */
00821 
00822   // Needed for single particle calibration rootTuple
00823   boost::shared_ptr<pftools::PFClusterCalibration> clusterCalibration_;
00824   boost::shared_ptr<PFEnergyCalibration> calibration_;
00825   boost::shared_ptr<PFEnergyCalibrationHF> thepfEnergyCalibrationHF_;
00826 
00827   std::ofstream* calibFile_; 
00828   
00829   std::auto_ptr<METManager>   metManager_; 
00830   
00831   typedef std::map<int, int>  EventToEntry;
00832   typedef std::map<int, EventToEntry> LumisMap;
00833   typedef std::map<int, LumisMap> RunsMap;
00834   RunsMap  mapEventToEntry_;
00835 };
00836 #endif