00001
00002
00003 #ifndef STAR_EEmcTTMMaker
00004 #define STAR_EEmcTTMMaker
00005
00006 #ifndef StMaker_H
00007 #include "StMaker.h"
00008 #endif
00009
00010 #include <ostream>
00011 #include <map>
00012
00013 #include "TString.h"
00014
00015 #if !defined(ST_NO_NAMESPACES)
00016 using std::map;
00017 using std::ostream;
00018 #endif
00019
00020 class TH1F;
00021 class TTree;
00022 class TFile;
00023 class TString;
00024 class TList;
00025
00026 class StChain;
00027 class StMuTrack;
00028 class EEmcGeomSimple;
00029
00030 class StEventInfo;
00031 class StEventSummary;
00032 class StMuTriggerIdCollection;
00033
00034 class StMuDstMaker;
00035 class StEEmcDb;
00036
00037 class EEmcTower;
00038
00040 class EEmcTTMMaker : public StMaker {
00041 public:
00043 static const Int_t kDefMaxCTBsum ;
00045 static const Int_t kDefMinTrackHits ;
00047 static const Double_t kDefMinTrackLength ;
00049 static const Double_t kDefMinTrackPt ;
00051 static const Double_t kDefMinTrackEta ;
00053 static const Double_t kDefMaxTrackEta ;
00055 static const Double_t kDefDeltaPhiCut ;
00057 static const Double_t kDefDeltaEtaCut ;
00058
00062 EEmcTTMMaker(const char *self = "ttmmk",
00063 class StMuDstMaker *mumaker = NULL);
00064
00066 virtual ~EEmcTTMMaker();
00067
00069 virtual Int_t Init();
00071 virtual Int_t Make();
00074 virtual void Clear(Option_t *option = "");
00076 virtual Int_t Finish();
00077
00079 void ResetZPositionsArray() { mZ.clear(); }
00083 void AddZPosition(const TString name, const double zpos) { mZ[zpos]=name; }
00084
00085
00087 Int_t GetMaxCTBSum () const { return mMaxCTBsum ; }
00089 void SetMaxCTBSum (Int_t v) { mMaxCTBsum=v ; }
00090
00091
00093 Int_t GetMinTrackHits () const { return mMinTrackHits; }
00095 void SetMinTrackHits (Int_t v) { mMinTrackHits=v ; }
00096
00097
00099 Double_t GetMinTrackLength() const { return mMinTrackLength ; }
00101 void SetMinTrackLength(Double_t v) { mMinTrackLength=v ; }
00102
00104 Double_t GetMinTrackPt () const { return mMinTrackPt ; }
00106 void SetMinTrackPt (Double_t v) { mMinTrackPt=v ; }
00107
00109 Double_t GetMinTrackEta () const { return mMinTrackEta ; }
00111 void SetMinTrackEta (Double_t v) { mMinTrackEta=v ; }
00112
00114 Double_t GetMaxTrackEta () const { return mMaxTrackEta ; }
00116 void SetMaxTrackEta (Double_t v) { mMaxTrackEta=v ; }
00117
00118
00120 Double_t GetDeltaPhiCut() const { return mPhiFac; }
00122 void SetDeltaPhiCut(Double_t v=1.0) { mPhiFac=v; }
00123
00125 Double_t GetDeltaEtaCut() const { return mEtaFac; }
00127 void SetDeltaEtaCut(Double_t v=1.0) { mEtaFac=v; }
00128
00130 void SetFileName( const char *string) { mFileName=TString(string); mTreeOut=true; }
00132 void WriteTree( const bool f ) { mTreeOut = f ; }
00133
00135 ULong_t GetNMatched() const { return mNMatched; };
00136
00138 TList *GetTracks() { return mTrackList; };
00140 TList *GetTowers() { return mTowerList; };
00141
00143 TList *GetMatchList() { return mMatchList ; };
00144
00145
00147 ostream& Summary ( ostream &out ) const ;
00148
00149 protected:
00151 void ResetStats() { mNMatched=mNEvents=0L; };
00153 Bool_t AcceptTrack( const StMuTrack *track);
00155 Bool_t MatchTrack ( const double dphi, const double deta, const double phihw, const double etahw);
00156
00157
00158 private:
00159 Int_t mMaxCTBsum ;
00160 Int_t mMinTrackHits ;
00161 Double_t mMinTrackLength ;
00162 Double_t mMinTrackPt ;
00163 Double_t mMinTrackEta ;
00164 Double_t mMaxTrackEta ;
00166 Double_t mPhiFac;
00167 Double_t mEtaFac;
00170
00172 TH1F *hTrackNHits;
00173 TH1F *hTrackLen;
00174 TH1F *hTrackPt ;
00175 TH1F *hTrackPtot;
00177 TH1F *hTrackDCA[3];
00178 TH1F *hVertex[3] ;
00180 StMuDstMaker *mMuDstMaker;
00181 StEEmcDb *mEEmcDb;
00182
00183 EEmcGeomSimple& mGeom;
00184
00185 TString mFileName;
00186 TFile *mFile;
00187 TTree *mTree;
00188
00189 map<double,TString> mZ;
00190
00191
00192 ULong_t mNMatched;
00193 ULong_t mNEvents;
00194
00195
00196 TList *mTrackList;
00197 TList *mTowerList;
00198 TList *mMatchList;
00199
00200 StEventInfo *mEvInfo;
00201 StEventSummary *mEvSumm;
00202 StMuTriggerIdCollection *mEvTrig;
00203
00204 bool mTreeOut;
00205
00206 public:
00207
00209 virtual const char *GetCVS() const {
00210 static const char cvs[]=
00211 "Tag $Name: $ $Id: EEmcTTMMaker.h,v 1.19 2009/02/04 20:33:24 ogrebeny Exp $ built "__DATE__" "__TIME__ ;
00212 return cvs;
00213 }
00214
00215 ClassDef(EEmcTTMMaker, 1)
00216 };
00217
00219 ostream& operator<<(ostream &out, const EEmcTTMMaker &ttm);
00220 #endif
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00280