![]() |
![]() |
00001 #ifndef FP420ClusterMain_h 00002 #define FP420ClusterMain_h 00003 00004 #include <string> 00005 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00006 #include "FWCore/Framework/interface/ESHandle.h" 00007 #include "FWCore/Framework/interface/Frameworkfwd.h" 00008 #include "FWCore/Framework/interface/EDProducer.h" 00009 #include "FWCore/Framework/interface/EDAnalyzer.h" 00010 #include "FWCore/Framework/interface/Event.h" 00011 #include "FWCore/Framework/interface/EventSetup.h" 00012 #include "FWCore/Framework/interface/MakerMacros.h" 00013 00014 #include "DataFormats/FP420Digi/interface/DigiCollectionFP420.h" 00015 #include "DataFormats/FP420Cluster/interface/ClusterCollectionFP420.h" 00016 #include "RecoRomanPot/RecoFP420/interface/ClusterNoiseFP420.h" 00017 #include "DataFormats/FP420Cluster/interface/ClusterFP420.h" 00018 #include <iostream> 00019 #include <vector> 00020 using namespace std; 00021 00022 class ClusterNoiseFP420; 00023 class ClusterProducerFP420; 00024 00025 class FP420ClusterMain 00026 { 00027 public: 00028 00029 00030 FP420ClusterMain(const edm::ParameterSet& conf, int dn, int sn, int pn); 00031 // FP420ClusterMain(); 00032 00033 ~FP420ClusterMain(); 00034 00036 00037 // void run(const DigiCollectionFP420 &input, 00038 // ClusterCollectionFP420 &soutput, 00039 // const std::vector<ClusterNoiseFP420>& noise 00040 // ); 00041 void run(edm::Handle<DigiCollectionFP420> &input, 00042 std::auto_ptr<ClusterCollectionFP420> &soutput, 00043 std::vector<ClusterNoiseFP420>& noise 00044 ); 00045 00046 private: 00047 00048 00049 ClusterProducerFP420 *threeThreshold_; 00050 std::string clusterMode_; 00051 00052 //std::vector<HDigiFP420> collector; 00053 edm::ParameterSet conf_; 00054 00055 00056 bool validClusterizer_; 00057 double ElectronPerADC_; 00058 double ENC_; 00059 double BadElectrodeProbability_; 00060 bool UseNoiseBadElectrodeFlagFromDB_; 00061 00062 00063 double ChannelThreshold; 00064 double SeedThreshold; 00065 double ClusterThreshold; 00066 int MaxVoidsInCluster; 00067 00068 double ldriftX; 00069 double ldriftY; 00070 double ldrift; 00071 double pitchX; // pitchX 00072 double pitchY; // pitchY 00073 double pitch; // pitch automatic 00074 float moduleThicknessX; // plate thicknessX 00075 float moduleThicknessY; // plate thicknessY 00076 float moduleThickness; // plate thickness 00077 int numStripsX, numStripsXW; // number of strips in the moduleX 00078 int numStripsY, numStripsYW; // number of strips in the moduleY 00079 int numStrips; // number of strips in the module 00080 00081 float Thick300; 00082 00083 // Number of Detectors: 00084 int dn0; 00085 // Number of Stations: 00086 int sn0; 00087 // Number of planes: 00088 int pn0; 00089 // Type of planes: 00090 int xytype; 00091 00092 int verbosity; 00093 00094 //float sigma1_; 00095 //float sigma2_; 00096 00097 }; 00098 00099 #endif