ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitProd/TreeFiller/interface/BaseFiller.h
(Generate patch)

Comparing UserCode/MitProd/TreeFiller/interface/BaseFiller.h (file contents):
Revision 1.7 by loizides, Mon Jul 7 16:14:01 2008 UTC vs.
Revision 1.8 by loizides, Tue Jul 8 12:38:19 2008 UTC

# Line 12 | Line 12
12   #define TREEFILLER_BASEFILLER_H
13  
14   #include "FWCore/Framework/interface/Event.h"
15 #include "FWCore/ParameterSet/interface/ParameterSet.h"
15   #include "FWCore/Framework/interface/Frameworkfwd.h"
16 + #include "FWCore/ParameterSet/interface/ParameterSet.h"
17 + #include "FWCore/MessageLogger/interface/MessageLogger.h"
18 + #include "DataFormats/Common/interface/Handle.h"
19   #include "MitAna/DataUtil/interface/TreeWriter.h"
20  
21   namespace mithep
# Line 32 | Line 34 | namespace mithep
34  
35      protected:
36        const edm::ParameterSet &Conf()   const { return config_; }
37 +      void                     PrintErrorAndExit(const char *msg) const;
38 +      template <typename TYPE>
39 +      void                     GetProduct(const std::string name, edm::Handle<TYPE> &product,
40 +                                          const edm::Event &event) const;    
41  
42        const std::string        name_;    //name of this filler
43        const edm::ParameterSet  config_;  //parameter set for this filler
44        const bool               active_;  //=1 if active
45    };
46   }
47 +
48 + //--------------------------------------------------------------------------------------------------
49 + template <typename TYPE>
50 + inline void mithep::BaseFiller::GetProduct(const std::string edmname, edm::Handle<TYPE> &product,
51 +                                           const edm::Event &event) const
52 + {
53 +  // Try to access data collection from EDM file. We check if we really get just one
54 +  // product with the given name. If not we print an error and exit.
55 +
56 +  try {
57 +    event.getByLabel(edm::InputTag(edmname),product);
58 +    if (!product.isValid())
59 +      throw edm::Exception(edm::errors::Configuration, "BaseFiller::GetProduct()\n")
60 +        << "Cannot get collection with label " << edmname << std::endl;
61 +  } catch (...) {
62 +    edm::LogError("BaseFiller") << "Cannot get collection with label "
63 +                                << edmname << std::endl;
64 +    PrintErrorAndExit(Form("Cannot get collection with label %s", edmname.c_str()));
65 +  }
66 + }
67   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines