CMS 3D CMS Logo

SiStripRecHitsValid.h

Go to the documentation of this file.
00001 #ifndef SiStripRecHitsValid_h
00002 #define SiStripRecHitsValid_h
00003 
00004 /* \class SiStripRecHitsValid
00005  *
00006  * Analyzer to validate RecHits in the Strip tracker
00007  *
00008  * \author Patrizia Azzi, INFN PD
00009  *
00010  * \version   1st version May 2006
00011  *
00012  ************************************************************/
00013 
00014 #include "FWCore/Framework/interface/Frameworkfwd.h"
00015 #include "FWCore/Framework/interface/EDAnalyzer.h"
00016 #include "FWCore/Framework/interface/Event.h"
00017 #include "FWCore/Framework/interface/EventSetup.h"
00018 #include "FWCore/Framework/interface/ESHandle.h"
00019 //only mine
00020 #include "DataFormats/Common/interface/Handle.h"
00021 #include "FWCore/Framework/interface/MakerMacros.h"
00022 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00023 #include "DataFormats/Common/interface/EDProduct.h"
00024 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00025 
00026 //DQM services for histogram
00027 #include "DQMServices/Core/interface/DQMStore.h"
00028 
00029 #include "FWCore/ServiceRegistry/interface/Service.h"
00030 
00031 //--- for SimHit association
00032 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"  
00033 #include "SimTracker/TrackerHitAssociation/interface/TrackerHitAssociator.h" 
00034 
00035 #include "Geometry/CommonTopologies/interface/PixelTopology.h"
00036 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00037 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
00038 #include "Geometry/CommonDetUnit/interface/GeomDetType.h" 
00039 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h" 
00040 #include "Geometry/TrackerGeometryBuilder/interface/GluedGeomDet.h"
00041 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00042 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00043 #include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h"
00044 #include "Geometry/TrackerGeometryBuilder/interface/PixelGeomDetType.h"
00045 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetType.h"
00046 #include "FWCore/ParameterSet/interface/InputTag.h"
00047 
00048 #include <string>
00049 #include "DQMServices/Core/interface/MonitorElement.h"
00050 
00051 class SiStripRecHitsValid : public edm::EDAnalyzer {
00052 
00053  public:
00054   
00055   SiStripRecHitsValid(const edm::ParameterSet& conf);
00056   
00057   ~SiStripRecHitsValid();
00058 
00059  protected:
00060 
00061   virtual void analyze(const edm::Event& e, const edm::EventSetup& c);
00062   void beginJob(const edm::EventSetup& c);
00063   void endJob();
00064   
00065  private: 
00066   //Back-End Interface
00067   DQMStore* dbe_;
00068   std::string outputFile_;
00069   MonitorElement*  meNumTotRphi;
00070   MonitorElement*  meNumTotSas;
00071   MonitorElement*  meNumTotMatched;
00072   MonitorElement*  meNumRphiTIB;
00073   MonitorElement*  meNumSasTIB;
00074   MonitorElement*  meNumMatchedTIB;
00075   MonitorElement*  meNumRphiTOB;
00076   MonitorElement*  meNumSasTOB;
00077   MonitorElement*  meNumMatchedTOB;
00078   MonitorElement*  meNumRphiTID;
00079   MonitorElement*  meNumSasTID;
00080   MonitorElement*  meNumMatchedTID;
00081   MonitorElement*  meNumRphiTEC;
00082   MonitorElement*  meNumSasTEC;
00083   MonitorElement*  meNumMatchedTEC;
00084 
00085   //TIB
00086   MonitorElement* meNstpRphiTIB[4];
00087   MonitorElement* meAdcRphiTIB[4];
00088   MonitorElement* mePosxRphiTIB[4];
00089   MonitorElement* meErrxRphiTIB[4];
00090   MonitorElement* meResRphiTIB[4];
00091   MonitorElement* mePullLFRphiTIB[4];
00092   MonitorElement* mePullMFRphiTIB[4];
00093   MonitorElement* meChi2RphiTIB[4];
00094   MonitorElement* meNstpSasTIB[4];
00095   MonitorElement* meAdcSasTIB[4];
00096   MonitorElement* mePosxSasTIB[4];
00097   MonitorElement* meErrxSasTIB[4];
00098   MonitorElement* meResSasTIB[4];
00099   MonitorElement* mePullLFSasTIB[4];
00100   MonitorElement* mePullMFSasTIB[4];
00101   MonitorElement* meChi2SasTIB[4];
00102   MonitorElement* mePosxMatchedTIB[2];
00103   MonitorElement* mePosyMatchedTIB[2];
00104   MonitorElement* meErrxMatchedTIB[2];
00105   MonitorElement* meErryMatchedTIB[2];
00106   MonitorElement* meResxMatchedTIB[2];
00107   MonitorElement* meResyMatchedTIB[2];
00108   MonitorElement* meChi2MatchedTIB[2];
00109   //TOB
00110   MonitorElement* meNstpRphiTOB[6];
00111   MonitorElement* meAdcRphiTOB[6];
00112   MonitorElement* mePosxRphiTOB[6];
00113   MonitorElement* meErrxRphiTOB[6];
00114   MonitorElement* meResRphiTOB[6];
00115   MonitorElement* mePullLFRphiTOB[6];
00116   MonitorElement* mePullMFRphiTOB[6];
00117   MonitorElement* meChi2RphiTOB[6];
00118   MonitorElement* meNstpSasTOB[2];
00119   MonitorElement* meAdcSasTOB[2];
00120   MonitorElement* mePosxSasTOB[2];
00121   MonitorElement* meErrxSasTOB[2];
00122   MonitorElement* meResSasTOB[2];
00123   MonitorElement* mePullLFSasTOB[2];
00124   MonitorElement* mePullMFSasTOB[2];
00125   MonitorElement* meChi2SasTOB[2];
00126   MonitorElement* mePosxMatchedTOB[2];
00127   MonitorElement* mePosyMatchedTOB[2];
00128   MonitorElement* meErrxMatchedTOB[2];
00129   MonitorElement* meErryMatchedTOB[2];
00130   MonitorElement* meResxMatchedTOB[2];
00131   MonitorElement* meResyMatchedTOB[2];
00132   MonitorElement* meChi2MatchedTOB[2];
00133   //TID
00134   MonitorElement* meNstpRphiTID[3];
00135   MonitorElement* meAdcRphiTID[3];
00136   MonitorElement* mePosxRphiTID[3];
00137   MonitorElement* meErrxRphiTID[3];
00138   MonitorElement* meResRphiTID[3];
00139   MonitorElement* mePullLFRphiTID[3];
00140   MonitorElement* mePullMFRphiTID[3];
00141   MonitorElement* meChi2RphiTID[3];
00142   MonitorElement* meNstpSasTID[2];
00143   MonitorElement* meAdcSasTID[2];
00144   MonitorElement* mePosxSasTID[2];
00145   MonitorElement* meErrxSasTID[2];
00146   MonitorElement* meResSasTID[2];
00147   MonitorElement* mePullLFSasTID[2];
00148   MonitorElement* mePullMFSasTID[2];
00149   MonitorElement* meChi2SasTID[2];
00150 
00151   MonitorElement* mePosxMatchedTID[2];
00152   MonitorElement* mePosyMatchedTID[2];
00153   MonitorElement* meErrxMatchedTID[2];
00154   MonitorElement* meErryMatchedTID[2];
00155   MonitorElement* meResxMatchedTID[2];
00156   MonitorElement* meResyMatchedTID[2];
00157   MonitorElement* meChi2MatchedTID[2];
00158   //TEC
00159   MonitorElement* meNstpRphiTEC[7];
00160   MonitorElement* meAdcRphiTEC[7];
00161   MonitorElement* mePosxRphiTEC[7];
00162   MonitorElement* meErrxRphiTEC[7];
00163   MonitorElement* meResRphiTEC[7];
00164   MonitorElement* mePullLFRphiTEC[7];
00165   MonitorElement* mePullMFRphiTEC[7];
00166   MonitorElement* meChi2RphiTEC[7];
00167   MonitorElement* meNstpSasTEC[5];
00168   MonitorElement* meAdcSasTEC[5];
00169   MonitorElement* mePosxSasTEC[5];
00170   MonitorElement* meErrxSasTEC[5];
00171   MonitorElement* meResSasTEC[5];
00172   MonitorElement* mePullLFSasTEC[5];
00173   MonitorElement* mePullMFSasTEC[5];
00174   MonitorElement* meChi2SasTEC[5];
00175   MonitorElement* mePosxMatchedTEC[5];
00176   MonitorElement* mePosyMatchedTEC[5];
00177   MonitorElement* meErrxMatchedTEC[5];
00178   MonitorElement* meErryMatchedTEC[5];
00179   MonitorElement* meResxMatchedTEC[5];
00180   MonitorElement* meResyMatchedTEC[5];
00181   MonitorElement* meChi2MatchedTEC[5];
00182 
00183   std::vector<PSimHit> matched;
00184   std::pair<LocalPoint,LocalVector> projectHit( const PSimHit& hit, const StripGeomDetUnit* stripDet,
00185                                                         const BoundPlane& plane);
00186   edm::ParameterSet conf_;
00187   //const StripTopology* topol;
00188 
00189   static const int MAXHIT = 1000;
00190   float rechitrphix[MAXHIT];
00191   float rechitrphierrx[MAXHIT];
00192   float rechitrphiy[MAXHIT];
00193   float rechitrphiz[MAXHIT];
00194   float rechitrphiphi[MAXHIT];
00195   float rechitrphires[MAXHIT];
00196   float rechitrphipullMF[MAXHIT];
00197   int   clusizrphi[MAXHIT];
00198   float cluchgrphi[MAXHIT];
00199   float rechitsasx[MAXHIT];
00200   float rechitsaserrx[MAXHIT];
00201   float rechitsasy[MAXHIT];
00202   float rechitsasz[MAXHIT];
00203   float rechitsasphi[MAXHIT];
00204   float rechitsasres[MAXHIT];
00205   float rechitsaspullMF[MAXHIT];
00206   int   clusizsas[MAXHIT];
00207   float cluchgsas[MAXHIT];
00208   float chi2rphi[MAXHIT];
00209   float chi2sas[MAXHIT];
00210   float chi2matched[MAXHIT];
00211   float rechitmatchedx[MAXHIT];
00212   float rechitmatchedy[MAXHIT];
00213   float rechitmatchedz[MAXHIT];
00214   float rechitmatchederrxx[MAXHIT];
00215   float rechitmatchederrxy[MAXHIT];
00216   float rechitmatchederryy[MAXHIT];
00217   float rechitmatchedphi[MAXHIT];
00218   float rechitmatchedresx[MAXHIT];
00219   float rechitmatchedresy[MAXHIT];
00220   float rechitmatchedchi2[MAXHIT];
00221 
00222 
00223   edm::InputTag matchedRecHits_, rphiRecHits_, stereoRecHits_;
00224 };
00225 
00226 #endif

Generated on Tue Jun 9 17:49:44 2009 for CMSSW by  doxygen 1.5.4