Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:21

0001 /** \class PixelDCSObjectReader
0002  *
0003  *  Class to dump Pixel DCS object from database to ROOT file.
0004  *
0005  *  $Date: 2009/05/09 22:21:34 $
0006  *  $Revision: 1.1 $
0007  *  \author Chung Khim Lae
0008  */
0009 
0010 #include "TTree.h"
0011 
0012 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0013 #include "FWCore/Framework/interface/EventSetup.h"
0014 #include "FWCore/Framework/interface/Frameworkfwd.h"
0015 #include "FWCore/ServiceRegistry/interface/Service.h"
0016 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0017 
0018 template <class Record>
0019 class PixelDCSObjectReader : public edm::one::EDAnalyzer<edm::one::SharedResources> {
0020   typedef typename Record::Object Object;
0021 
0022 public:
0023   PixelDCSObjectReader(const edm::ParameterSet&) : esToken(esConsumes()) {
0024     usesResource(TFileService::kSharedResource);
0025   }
0026 
0027   void analyze(const edm::Event&, const edm::EventSetup&) override;
0028 
0029 private:
0030   const edm::ESGetToken<Object, Record> esToken;
0031 };
0032 
0033 template <class Record>
0034 void PixelDCSObjectReader<Record>::analyze(const edm::Event&, const edm::EventSetup& setup) {
0035   const Object* object = &setup.getData(esToken);
0036 
0037   edm::Service<TFileService> fs;
0038 
0039   TTree* tree = fs->make<TTree>("tree", "");
0040 
0041   tree->Branch("object", &object);
0042   tree->Fill();
0043 }
0044 
0045 #include "FWCore/Framework/interface/MakerMacros.h"
0046 #include "CondFormats/DataRecord/interface/PixelDCSRcds.h"
0047 #include "CondFormats/SiPixelObjects/interface/PixelDCSObject.h"
0048 
0049 DEFINE_FWK_MODULE(PixelDCSObjectReader<PixelCaenChannelRcd>);