CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MTVHistoProducerAlgo.h
Go to the documentation of this file.
1 #ifndef Validation_RecoTrack_MTVHistoProducerAlgo_h
2 #define Validation_RecoTrack_MTVHistoProducerAlgo_h
3 
4 /* \author B.Mangano, UCSD
5  *
6  * Base class which defines the interface of a generic HistoProducerAlogs
7  * to be used within the MultiTrackValidator module.
8  * The concrete algorithms will be plugged into the MTV to produce all
9  * the validation plots that the user wants.
10  */
12 
16 
19 
22 
23 #include <TH1F.h>
24 #include <TH2F.h>
25 
27  public:
28 
30  virtual ~MTVHistoProducerAlgo() {}
31  // to be implemented in the concrete classes
32  virtual void initialize()=0;
33 
34  void setDQMStore(DQMStore* dbe) {dbe_ = dbe;}
35 
36  virtual void bookSimHistos()=0;
37  virtual void bookRecoHistos()=0;
38  virtual void bookRecoHistosForStandaloneRunning()=0;
39 
40  virtual void fill_generic_simTrack_histos(int counter,const TrackingParticle::Vector&,const TrackingParticle::Point& vertex, int bx)=0;
41 
43  const TrackingParticle& tp,
44  const TrackingParticle::Vector& momentumTP, const TrackingParticle::Point& vertexTP,
45  double dxy, double dz, int nSimHits,
46  const reco::Track* track,
47  int numVertices, double vertz)=0;
48 
50  const reco::GenParticle& tp,
51  const TrackingParticle::Vector & momentumTP, const TrackingParticle::Point & vertexTP,
52  double dxy, double dz, int nSimHits,
53  const reco::Track* track,
54  int numVertices, double vertz)=0;
55 
56  virtual void fill_generic_recoTrack_histos(int count,
57  const reco::Track& track,
58  const math::XYZPoint& bsPosition,
59  bool isMatched,
60  bool isSigMatched,
61  bool isChargeMatched,
62  int numAssocRecoTracks,
63  int numVertices,
64  int tpbunchcrossing,
65  int nSimHits,
66  double sharedFraction)=0;
67 
68  virtual void fill_dedx_recoTrack_histos(int count, edm::RefToBase<reco::Track>& trackref,const std::vector< edm::ValueMap<reco::DeDxData> >& v_dEdx)=0;
69  // virtual void fill_dedx_recoTrack_histos(reco::TrackRef trackref, std::vector< edm::ValueMap<reco::DeDxData> > v_dEdx)=0;
70 
72  const reco::Track& track)=0;
73 
74  virtual void fill_trackBased_histos(int count,
75  int assTracks,
76  int numRecoTracks,
77  int numSimTracks)=0;
78 
80  const TrackingParticle::Vector& momentumTP,
81  const TrackingParticle::Point& vertexTP,
82  int chargeTP,
83  const reco::Track& track,
84  const math::XYZPoint& bsPosition)=0;
85 
86  virtual void finalHistoFits(int counter)=0;
87 
88 
89  virtual void fillHistosFromVectors(int counter)=0;
90  virtual void fillProfileHistosFromVectors(int counter)=0;
91 
92 
93  protected:
94  //protected functions
95 
96  virtual double getEta(double eta)=0;
97 
98  virtual double getPt(double pt)=0;
99 
100  void doProfileX(TH2 * th2, MonitorElement* me);
101 
103  doProfileX(th2m->getTH2F(), me);
104  }
105 
106  void fillPlotFromVector(MonitorElement* h, std::vector<int>& vec);
107 
109  std::vector<int>& numerator,
110  std::vector<int>& denominator,
111  std::string type);
112 
113  void BinLogX(TH1*h);
114 
116  private:
117  //private data members
119 
120 
121 };
122 
123 #endif
type
Definition: HCALResponse.h:21
void fillPlotFromVectors(MonitorElement *h, std::vector< int > &numerator, std::vector< int > &denominator, std::string type)
list numerator
Definition: cuy.py:483
void doProfileX(TH2 *th2, MonitorElement *me)
void fillPlotFromVector(MonitorElement *h, std::vector< int > &vec)
void doProfileX(MonitorElement *th2m, MonitorElement *me)
virtual void fill_dedx_recoTrack_histos(int count, edm::RefToBase< reco::Track > &trackref, const std::vector< edm::ValueMap< reco::DeDxData > > &v_dEdx)=0
MTVHistoProducerAlgo(const edm::ParameterSet &pset)
virtual void bookSimHistos()=0
const edm::ParameterSet & pset_
virtual double getEta(double eta)=0
virtual void fill_ResoAndPull_recoTrack_histos(int count, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, int chargeTP, const reco::Track &track, const math::XYZPoint &bsPosition)=0
T eta() const
void setDQMStore(DQMStore *dbe)
virtual void bookRecoHistos()=0
math::XYZPointD Point
point in the space
virtual void fill_recoAssociated_simTrack_histos(int count, const TrackingParticle &tp, const TrackingParticle::Vector &momentumTP, const TrackingParticle::Point &vertexTP, double dxy, double dz, int nSimHits, const reco::Track *track, int numVertices, double vertz)=0
list denominator
Definition: cuy.py:484
virtual void fill_generic_recoTrack_histos(int count, const reco::Track &track, const math::XYZPoint &bsPosition, bool isMatched, bool isSigMatched, bool isChargeMatched, int numAssocRecoTracks, int numVertices, int tpbunchcrossing, int nSimHits, double sharedFraction)=0
bool isMatched(TrackingRecHit const &hit)
virtual void fillProfileHistosFromVectors(int counter)=0
virtual void initialize()=0
virtual void finalHistoFits(int counter)=0
virtual void fill_simAssociated_recoTrack_histos(int count, const reco::Track &track)=0
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:13
virtual void fillHistosFromVectors(int counter)=0
virtual void fill_trackBased_histos(int count, int assTracks, int numRecoTracks, int numSimTracks)=0
virtual double getPt(double pt)=0
virtual void bookRecoHistosForStandaloneRunning()=0
Monte Carlo truth information used for tracking validation.
math::XYZVectorD Vector
point in the space
TH2F * getTH2F(void) const
virtual void fill_generic_simTrack_histos(int counter, const TrackingParticle::Vector &, const TrackingParticle::Point &vertex, int bx)=0