StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFgtPedPlotter.h
1 
6 /***************************************************************************
7  *
8  * $Id: StFgtPedPlotter.h,v 1.5 2011/09/30 19:09:07 sgliske Exp $
9  * Author: S. Gliske, Sept 2011
10  *
11  ***************************************************************************
12  *
13  * Description: Makes a plot of the pedistals, reading from either a
14  * file. Make a child class which overwrites the fillData function to
15  * make plots from peds in the DB. Note: is not a maker, nor does it
16  * need StChain.
17  *
18  ***************************************************************************
19  *
20  * $Log: StFgtPedPlotter.h,v $
21  * Revision 1.5 2011/09/30 19:09:07 sgliske
22  * general update
23  *
24  * Revision 1.4 2011/09/29 18:39:43 sgliske
25  * Update for geoId->elecCoord function now in StFgtCosmicTestStandGeom
26  *
27  * Revision 1.3 2011/09/27 00:49:00 sgliske
28  * cosmic QA update
29  *
30  * Revision 1.2 2011/09/24 02:14:10 sgliske
31  * updated FGT cosmic QA
32  *
33  * Revision 1.1 2011/09/22 21:22:01 sgliske
34  * creation
35  *
36  *
37  **************************************************************************/
38 
39 #ifndef _ST_FGT_PED_PLOTTER_
40 #define _ST_FGT_PED_PLOTTER_
41 
42 #include <string>
43 #include <vector>
44 #include <map>
45 #include <Rtypes.h>
46 #include <TGraph.h>
47 
49  public:
50  // constructors
52 
53  // default OK
54  // StFgtPedPlotter(const StFgtPedPlotter&);
55 
56  // equals operator -- default OK
57  // StFgtPedPlotter& operator=(const StFgtPedPlotter&);
58 
59  // deconstructor
60  virtual ~StFgtPedPlotter();
61 
62  // make all plots
63  Int_t makePlots();
64 
65  // accessor
66  const TGraph* getGraph( Int_t timebin ) const;
67  Float_t getMaxX() const;
68  Float_t getMaxY() const;
69 
70  // modifiers
71  void setReadFromFile( const Char_t* filename );
72  void setTimeBinMask( Short_t mask = 0xFF );
73  void setPlotVsStrip( Char_t type = 'R' );
74  void setPlotStDev( Bool_t doId );
75  void setDisc( Short_t discId );
76  void setQuad( Short_t quadId );
77  void setQuadName( const Char_t *name );
78 
79  // typedef
80  typedef std::vector< std::vector< Float_t > > VecVec_t;
81 
82  protected:
83  // since this isn't saved anywhere else
84  static const Int_t mMaxNumTimeBins;
85 
86  // input filename
87  std::string mFileNameIn;
88 
89  // mask for which time bins to save
90  Short_t mTimeBinMask;
91 
92  // what to plot
93  Short_t mDiscId, mQuadId;
94  Char_t mPlotVsStrip;
95  Bool_t mDoPlotStDev;
96  std::string mQuadName;
97 
98  // to load the data
99  virtual Int_t fillData( VecVec_t& X, VecVec_t& Y, VecVec_t& E );
100 
101  // for each time bin
102  TGraph* makePlot( std::vector< Float_t >& x, std::vector< Float_t >& y, std::vector< Float_t >& e, Int_t timebin );
103 
104  // storing the graphs (ped +/- st. dev.)
105  std::vector< TGraph* > mGraphVec;
106 
107  // for keeping track of time bins
108  std::map< Int_t, Int_t > mTimeBinMap;
109 
110  // for ease in plotting
111  Float_t mMaxY, mMaxX;
112 
113  private:
114  ClassDef(StFgtPedPlotter,1);
115 
116 };
117 
118 // inline functions
119 
120 // constructor
121 inline StFgtPedPlotter::StFgtPedPlotter() :
122  mTimeBinMask( 0x8 ), mMaxY(0), mMaxX(0) { /* */ };
123 
124 // deconstructor
125 inline StFgtPedPlotter::~StFgtPedPlotter(){ /* */ };
126 
127 inline void StFgtPedPlotter::setTimeBinMask( Short_t mask ){ mTimeBinMask = mask; };
128 inline void StFgtPedPlotter::setDisc( Short_t discId ){ mDiscId = discId; };
129 inline void StFgtPedPlotter::setQuad( Short_t quadId ){ mQuadId = quadId; };
130 inline void StFgtPedPlotter::setQuadName( const Char_t* name ){ mQuadName = name; };
131 inline void StFgtPedPlotter::setReadFromFile( const Char_t* filename ){ mFileNameIn = filename; };
132 
133 inline void StFgtPedPlotter::setPlotVsStrip( Char_t strip ){
134  mPlotVsStrip = ( (strip == 'R' || strip == 'r' || strip == 'P') ? strip : 'c' );
135 };
136 
137 inline void StFgtPedPlotter::setPlotStDev( Bool_t doIt ){ mDoPlotStDev = doIt; };
138 
139 inline Float_t StFgtPedPlotter::getMaxX() const { return mMaxX; };
140 inline Float_t StFgtPedPlotter::getMaxY() const { return mMaxY; };
141 
142 #endif