Go to the documentation of this file.00001 #ifndef EcalTBMCInfoProducer_H
00002 #define EcalTBMCInfoProducer_H
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include "FWCore/Framework/interface/EDProducer.h"
00012 #include "FWCore/Framework/interface/Event.h"
00013 #include "DataFormats/Common/interface/Handle.h"
00014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00015 #include "FWCore/Framework/interface/ESHandle.h"
00016 #include "FWCore/Framework/interface/EventSetup.h"
00017 #include "FWCore/Framework/interface/MakerMacros.h"
00018 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00019
00020 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00021 #include "SimDataFormats/EcalTestBeam/interface/PEcalTBInfo.h"
00022 #include "Geometry/EcalTestBeam/interface/EcalTBCrystalMap.h"
00023
00024 #include "Math/GenVector/Rotation3D.h"
00025
00026 #include <iostream>
00027 #include <fstream>
00028 #include <vector>
00029
00030 namespace CLHEP {
00031 class RandFlat;
00032 }
00033
00034 class EcalTBMCInfoProducer: public edm::EDProducer{
00035
00036 public:
00037
00039 EcalTBMCInfoProducer(const edm::ParameterSet& ps);
00040
00042 virtual ~EcalTBMCInfoProducer();
00043
00045 void produce(edm::Event & event, const edm::EventSetup& eventSetup);
00046
00047
00048
00049
00050
00051
00052
00053
00054 private:
00055
00056 double beamEta;
00057 double beamPhi;
00058 double beamTheta;
00059
00060 int crysNumber;
00061
00062 double beamXoff;
00063 double beamYoff;
00064
00065 double partXhodo;
00066 double partYhodo;
00067
00068 EcalTBCrystalMap * theTestMap;
00069
00070 ROOT::Math::Rotation3D * fromCMStoTB;
00071
00072 std::string GenVtxLabel;
00073
00074 CLHEP::RandFlat *flatDistribution_;
00075
00076
00077 };
00078
00079 #endif