StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StEEmcIUPi0Analysis.h
1 #ifndef __StEEmcIUPi0Analysis_h__
2 #define __StEEmcIUPi0Analysis_h__
3 
4 #include "StMaker.h"
5 
6 #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
7 #include "StMuDSTMaker/COMMON/StMuDst.h"
8 #include "StMuDSTMaker/COMMON/StMuEvent.h"
9 #include "StMuDSTMaker/COMMON/StMuTriggerIdCollection.h"
10 #include "StMuDSTMaker/COMMON/StMuPrimaryVertex.h"
11 #include "StEvent/StTriggerId.h"
12 
13 #include "StSpinPool/StSpinDbMaker/StSpinDbMaker.h"
14 
15 #include "StEEmcIUMixEvent.h"
16 //#include "StEEmcMcReadMaker/StMcOutputMaker.h"
17 
18 class StEEmcIUMixMaker;
19 class StEEmcIUPointMaker;
20 class StRFEmcTrigMaker;
21 class TH1F;
22 class TH2F;
23 class TH2D;
24 class TFile;
25 class SpinCutsIU;
26 class EEmcGeomSimple;
27 class StEEmcA2EMaker;
28 class TTree;
29 //class StMcOutputMaker;
30 #include <vector>
31 #include "StEEmcIUPair.h"
32 #include "SpinIUHistos.h"
33 #include "TString.h"
34 
36 {
37 
38  public:
40  StEEmcIUPi0Analysis(const Char_t *name);
42  ~StEEmcIUPi0Analysis(){ /* nada */ };
43 
45  Int_t Init();
47  Int_t Make();
49  Int_t InitRun(Int_t);
50 
51  Int_t numbofcutCandidate();
53  void Clear(Option_t *opts="");
56  void mixer(const Char_t *name);
58  void points(const Char_t *name);
60  void mudst(const Char_t *name);
62  void analysis(const Char_t *name);
64  void spin(const Char_t *name);
65 
67  void trigger(Int_t trig){ mTriggerList.push_back(trig); }
68 
70  void minbias(Int_t trig){ mMinBias = trig; }
71 
72  SpinCutsIU *cuts(){ return mCuts; }
73 
74  void filename(const Char_t *fname){ mFilename=fname; }
75 
76  void triggerSim( const Char_t *name, Int_t t ) { mTrigSim=(StRFEmcTrigMaker*)GetMaker(name); mTrigSimThreshold=t; }
77 
78  private:
79  protected:
80 
83  Bool_t twoBodyCut( StEEmcIUPair &p );
84 
95 
96  std::vector<Int_t> mTriggerList;
97  Int_t mMinBias;
99  enum SpinStates { kAny=0, kUpUp, kUpDn, kDnUp, kDnDn };
100 
103  SpinIUHistos *mBackgrounds[5];
104  SpinCutsIU *mCuts;
106  TH1F *hSpin4;
107  TH1F *hBx7;
108  TH1F *hBx48;
109  TH2F *hBx7diffBx48;
110  TH1F *hBxStar;
111  TH1F *hBxStarPi0;
112  TH1F *hPi0Mass;
113  TH1F *hPTvsPiNum; // pi0# vs pt
114  TH1F *hMcEta;
115  TH1F *hMcPhi;
116  TH1F *hMcPt;
117  TH2F *hREtaPhi;
118  TH1F *hReconEta;
119  TH1F *hReconPhi;
120  TH1F *hEEmcEta;
121  TH1F *hResoEta;
122  TH1F *hResoPhi;
123  TH1F *hResoPt;
124  TH2F *hResoPtvsG;
125  TH1F *hMcEnergy;
126  TH1F *hResoEnergy;
127  TH2F *hResoEnergyvsG;
128  TH1F *hRecoEnergy;
129  TH1F *hZvert;
130  TH2F *hMassBx;
131  TH2F *hZvertBx;
133  TH2F *hZggBx;
134  TH2F *hEtaBx;
136  TH1F *hSpin4mb;
137  TH1F *hRealMcPD;
138  TH1F *hRealMcPR;
139  TH2F *McEvsMass;
140  TH2F *DEtaMass;
141  TH2F *DPhiMass;
142 
143  TH2D *dUvsdV;
144  TH2D *dUvsdVGood;
145  TH1F *dUVzeroE;
146  TH1F *dUVzeroEta;
147  TH2F *dUvsRatio;
148  TH2F *dUvsRatioGood;
149  TH2F *dVvsRatio;
150  TH2F *dVvsRatioGood;
151 
152  TH2F *GoodPiGeo;
153  TH1F *GoodPiPt;
154  TH1F *EventCounter;
155  TH1F *hPi0Counter;
156  enum EventCutTypes {
157  kEvent=0,
158  kMinBias,
159  kTrig,
160  kSoftTrig,
161  kSoftTrig36,
162  kVertex,
163  kCandidate
164  };
165 
166  enum PairCutTypes {
167  kPair=1,
168  kTwoBody,
169  kAdcTow,
170  kEtTow,
171  kKinematics
172  };
173 
176 
178  TH1F *hPairCounter;
179 
181  Bool_t accept(StMuDst *mu);
182  Bool_t accept(StEEmcIUPair pair, Bool_t fill=true );
183 
185  Int_t getSpinState(StMuDst *mu, Int_t &bxs);
186 
187  TString mFilename;
188  TFile *mFile;
189 
192  Int_t mTrigSimThreshold;
193 
194  Int_t mRunNumber;
195  Bool_t mSpinSort;
196  Int_t numcutCan;
197  Int_t numoacceptedpair;
200 
201  StEEmcIUMixEvent *mRealEvent;
202  StEEmcIUMixEvent *mMixedEvent;
203 
204 
205  TTree *mRealTree;
206  TTree *mMixedTree;
207 
210 
211 };
212 inline Int_t StEEmcIUPi0Analysis::numbofcutCandidate(){return (Int_t) numcutCan;}
213 #endif
void spin(const Char_t *name)
specifies the name of the spin db maker
StEEmcIUPointMaker * mEEpoints
pointer to the point maker
void points(const Char_t *name)
specifies the name of the point maker
~StEEmcIUPi0Analysis()
destructor
EEmc ADC –&gt; energy maker.
StEEmcA2EMaker * mEEanalysis
pointer to analysis maker
A class for mixing pi0 candidates.
StSpinDbMaker * mSpinDb
pointer to the spin database
void trigger(Int_t trig)
Add trigger ID to process.
void minbias(Int_t trig)
Sets the appropriate minbias trig id.
SpinIUHistos * mHistograms[5]
Spin-sorted pi0 histograms.
void analysis(const Char_t *name)
specifies the name of the analysis maker
Bool_t accept(StMuDst *mu)
method to cut events
A maker for creating pi0 histograms \Weihong He The StEEmcIUPi0Analysis takes as input the list of pi...
void mudst(const Char_t *name)
specifies the name of the mudst maker
Class for building points from smd clusters.
TH1F * hPairCounter
histogram to keep track of where candidates get cut
Int_t Make()
processes a single event
Int_t InitRun(Int_t)
init run
void Clear(Option_t *opts="")
clears the maker
Int_t getSpinState(StMuDst *mu, Int_t &bxs)
method to retrieve 4bit spin state
TH1F * hEventCounter
histogram to keep track of where events get cut
StRFEmcTrigMaker * mTrigSim
Trigger simulation for MC.
void mixer(const Char_t *name)
StMuDstMaker * mMuDst
pointer to mudst
EEMC simple geometry.
ClassDef(StEEmcIUPi0Analysis, 1)
Makes class availabel to root.
StEEmcIUPi0Analysis(const Char_t *name)
constructor
StEEmcIUMixMaker * mEEmixer
Pointer to the pi0 mixer.
EEmcGeomSimple * mEEgeom
EEMC tower geometry.
Spin sorted pi0 histograms.
Definition: SpinIUHistos.h:22
Bool_t twoBodyCut(StEEmcIUPair &p)
Int_t Init()
initializes the maker
std::vector< Int_t > mTriggerList