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 "DataFormats/Common/interface/EDProduct.h"
00013 #include "FWCore/Framework/interface/Event.h"
00014 #include "DataFormats/Common/interface/Handle.h"
00015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00016 #include "FWCore/Framework/interface/ESHandle.h"
00017 #include "FWCore/Framework/interface/EventSetup.h"
00018 #include "FWCore/Framework/interface/MakerMacros.h"
00019 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00020
00021 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00022 #include "SimDataFormats/EcalTestBeam/interface/PEcalTBInfo.h"
00023 #include "Geometry/EcalTestBeam/interface/EcalTBCrystalMap.h"
00024
00025 #include "Math/GenVector/Rotation3D.h"
00026
00027 #include <iostream>
00028 #include <fstream>
00029 #include <vector>
00030
00031 namespace CLHEP {
00032 class RandFlat;
00033 }
00034
00035 class EcalTBMCInfoProducer: public edm::EDProducer{
00036
00037 public:
00038
00040 EcalTBMCInfoProducer(const edm::ParameterSet& ps);
00041
00043 virtual ~EcalTBMCInfoProducer();
00044
00046 void produce(edm::Event & event, const edm::EventSetup& eventSetup);
00047
00048
00049
00050
00051
00052
00053
00054
00055 private:
00056
00057 double beamEta;
00058 double beamPhi;
00059 double beamTheta;
00060
00061 int crysNumber;
00062
00063 double beamXoff;
00064 double beamYoff;
00065
00066 double partXhodo;
00067 double partYhodo;
00068
00069 EcalTBCrystalMap * theTestMap;
00070
00071 ROOT::Math::Rotation3D * fromCMStoTB;
00072
00073 std::string GenVtxLabel;
00074
00075 CLHEP::RandFlat *flatDistribution_;
00076
00077
00078 };
00079
00080 #endif