StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEStructMuDstReader.h
1 /**********************************************************************
2  *
3  * $Id: StEStructMuDstReader.h,v 1.13 2012/11/16 21:19:07 prindle Exp $
4  *
5  * Author: Jeff Porter
6  *
7  **********************************************************************
8  *
9  * Description: event reader class for common MuDsts
10  * Uses the StMuDstMaker for real reading
11  *
12  ***********************************************************************/
13 #ifndef __STESTRUCTMUEVENTREADER__H
14 #define __STESTRUCTMUEVENTREADER__H
15 
16 #include "TH1F.h"
17 #include "TH2F.h"
18 #include "TH3F.h"
19 #include "StBTofHeader.h"
20 #include "StEStructEventReader.h"
21 #include "StEStructPool/Pileup/Pileup.h"
22 
23 class StMuDstMaker;
24 class StMuTrack;
25 
26 class StEStructEventCuts;
27 class StEStructTrackCuts;
28 class StEStructTrack;
29 
30 
32 
33 public:
34 
35  StMuDstMaker* mMaker;
36  bool mInChain;
37  bool mAmDone;
38  bool mUseGlobalTracks;
39  int mPrimaryVertexId;
40  int mNumGoodTracks;
41  int mhasdEdxCuts;
42  int mhasToFCuts;
43  int mhasPrimaryCuts;
44  int mhasVertexRadiusCuts;
45  TH3F* dEdxBetaBefore;
46  TH3F* dEdxBetaAfter;
47  TH2F* dEdxBefore;
48  TH2F* dEdxAfter;
49  TH2F* ToFBefore;
50  TH2F* ToFAfter;
51  TH2F* PrimaryBefore;
52  TH2F* PrimaryAfter;
53  TH2F* VRadiusBefore;
54  TH2F* VRadiusAfter;
55 
56  Float_t mEta;
57  Float_t mPhi;
58 
59  Pileup *mPileup;
60 
63  StEStructEventCuts* ecuts,
64  StEStructTrackCuts* tcuts);
65  virtual ~StEStructMuDstReader();
66 
67  void setMuDstMaker(StMuDstMaker* MuDstMaker, bool inChain=true);
68  void setUseGlobalTracks(bool global=false);
69  bool setInChain(bool inChain);
70  bool InChain();
71  bool hasMaker();
72 
73  virtual StEStructEvent* next();
74  virtual bool done();
75 
76  void setEventCuts(StEStructEventCuts* cuts);
77  void setTrackCuts(StEStructTrackCuts* cuts);
78  StEStructEvent* fillEvent();
79  bool fillTracks(StEStructEvent* estructEvent);
80  bool isTrackGood(StMuTrack* track);
81  bool isTrackGoodToUse(StMuTrack* track);
82  int countGoodTracks(int *ndEdx, int *nToF);
83  void fillEStructTrack(StEStructTrack* eTrack, StMuTrack* mTrack);
84 
85  ClassDef(StEStructMuDstReader,1)
86 
87 };
88 
89 inline bool StEStructMuDstReader::done(){ return mAmDone; };
90 
91 #endif
92 
93 /***********************************************************************
94  *
95  * $Log: StEStructMuDstReader.h,v $
96  * Revision 1.13 2012/11/16 21:19:07 prindle
97  * Moved EventCuts, TrackCuts to EventReader. Affects most readers.
98  * Added support to write and read EStructEvents.
99  * Cuts: 3D histo support, switch to control filling of histogram for reading EStructEvents
100  * EventCuts: A few new cuts
101  * MuDstReader: Add 2D to some histograms, treat ToFCut, PrimaryCuts, VertexRadius histograms like other cut histograms.
102  * QAHists: Add refMult
103  * TrackCuts: Add some hijing cuts.
104  *
105  * Revision 1.12 2011/08/02 20:31:25 prindle
106  * Change string handling
107  * Added event cuts for VPD, good fraction of global tracks are primary, vertex
108  * found only from tracks on single side of TPC, good fraction of primary tracks have TOF hits..
109  * Added methods to check if cuts imposed
110  * Added 2010 200GeV and 62 GeV, 2011 19 GeV AuAu datasets, 200 GeV pp2pp 2009 dataset.
111  * Added TOF vs. dEdx vs. p_t histograms
112  * Fix participant histograms in QAHists.
113  * Added TOFEMass cut in TrackCuts although I think we want to supersede this.
114  *
115  * Revision 1.11 2010/09/02 21:20:09 prindle
116  * Cuts: Add flag to not fill histograms. Important when scanning files for sorting.
117  * EventCuts: Add radius cut on vertex, ToF fraction cut. Merge 2004 AuAu 200 GeV datasets.
118  * Add 7, 11 and 39 GeV dataset selections
119  * MuDstReader: Add 2D histograms for vertex radius and ToF fraction cuts.
120  * Modify countGoodTracks to return number of dEdx and ToF pid identified tracks.
121  * Include code to set track pid information from Dst.
122  * QAHists: New ToF QA hists. Modify dEdx to include signed momentum.
123  *
124  * Revision 1.10 2010/03/02 21:43:38 prindle
125  * Use outerHelix() for global tracks
126  * Add sensible triggerId histograms
127  * Starting to add support to sort events (available for Hijing)
128  *
129  * Revision 1.9 2008/12/02 23:35:35 prindle
130  * Added code for pileup rejection in EventCuts and MuDstReader.
131  * Modified trigger selections for some data sets in EventCuts.
132  *
133  * Revision 1.8 2008/05/01 23:35:57 prindle
134  * Found that for global tracks we sometimes have global dca = (0,0,0)
135  * Now use dca() when we are using global tracks.
136  *
137  * Revision 1.7 2006/04/11 17:50:48 prindle
138  * Remove inChain from constructor arguments (no longer used in macro)
139  *
140  * Revision 1.6 2006/04/04 22:05:06 porter
141  * a handful of changes:
142  * - changed the StEStructAnalysisMaker to contain 1 reader not a list of readers
143  * - added StEStructQAHists object to contain histograms that did exist in macros or elsewhere
144  * - made centrality event cut taken from StEStructCentrality singleton
145  * - put in ability to get any max,min val from the cut class - one must call setRange in class
146  *
147  * Revision 1.5 2006/02/22 22:03:24 prindle
148  * Removed all references to multRef
149  *
150  * Revision 1.4 2005/11/22 14:40:04 msd
151  * Changed default of useAllTracks
152  *
153  * Revision 1.3 2005/09/14 17:08:35 msd
154  * Fixed compiler warnings, a few tweaks and upgrades
155  *
156  * Revision 1.2 2005/09/07 20:18:43 prindle
157  * AnalysisMaker: Keep track of currentAnalysis (for use in doEStruct macro)
158  * EventCuts.h: Added trigger cuts including cucu and year 4.
159  * MuDstReader: Added dE/dx histograms. Re-arranged code to count tracks
160  * before making centrality cut.
161  * TrackCuts: Random changes. Moved some variables from private to public.o
162  *
163  * Revision 1.1 2003/10/15 18:20:32 porter
164  * initial check in of Estruct Analysis maker codes.
165  *
166  *
167  *********************************************************************/
Definition: Pileup.h:79