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 StEEmcDbMaker;
00036
00037 class EEmcTower;
00038
00039
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
00063 EEmcTTMMaker(const char *self = "ttmmk",
00064 class StMuDstMaker *mumaker = NULL,
00065 class StEEmcDbMaker *dbmaker = NULL);
00066
00068 virtual ~EEmcTTMMaker();
00069
00071 virtual Int_t Init();
00073 virtual Int_t Make();
00076 virtual void Clear(Option_t *option = "");
00078 virtual Int_t Finish();
00079
00081 void ResetZPositionsArray() { mZ.clear(); }
00085 void AddZPosition(const TString name, const double zpos) { mZ[zpos]=name; }
00086
00087
00089 Int_t GetMaxCTBSum () const { return mMaxCTBsum ; }
00091 void SetMaxCTBSum (Int_t v) { mMaxCTBsum=v ; }
00092
00093
00095 Int_t GetMinTrackHits () const { return mMinTrackHits; }
00097 void SetMinTrackHits (Int_t v) { mMinTrackHits=v ; }
00098
00099
00101 Double_t GetMinTrackLength() const { return mMinTrackLength ; }
00103 void SetMinTrackLength(Double_t v) { mMinTrackLength=v ; }
00104
00106 Double_t GetMinTrackPt () const { return mMinTrackPt ; }
00108 void SetMinTrackPt (Double_t v) { mMinTrackPt=v ; }
00109
00111 Double_t GetMinTrackEta () const { return mMinTrackEta ; }
00113 void SetMinTrackEta (Double_t v) { mMinTrackEta=v ; }
00114
00116 Double_t GetMaxTrackEta () const { return mMaxTrackEta ; }
00118 void SetMaxTrackEta (Double_t v) { mMaxTrackEta=v ; }
00119
00120
00122 Double_t GetDeltaPhiCut() const { return mPhiFac; }
00124 void SetDeltaPhiCut(Double_t v=1.0) { mPhiFac=v; }
00125
00127 Double_t GetDeltaEtaCut() const { return mEtaFac; }
00129 void SetDeltaEtaCut(Double_t v=1.0) { mEtaFac=v; }
00130
00132 void SetFileName( const char *string) { mFileName=TString(string); mTreeOut=true; }
00134 void WriteTree( const bool f ) { mTreeOut = f ; }
00135
00137 ULong_t GetNMatched() const { return mNMatched; };
00138
00140 TList *GetTracks() { return mTrackList; };
00142 TList *GetTowers() { return mTowerList; };
00143
00145 TList *GetMatchList() { return mMatchList ; };
00146
00147
00149 ostream& Summary ( ostream &out ) const ;
00150
00151 protected:
00153 void ResetStats() { mNMatched=mNEvents=0L; };
00155 Bool_t AcceptTrack( const StMuTrack *track);
00157 Bool_t MatchTrack ( const double dphi, const double deta, const double phihw, const double etahw);
00158
00159
00160 private:
00161 Int_t mMaxCTBsum ;
00162 Int_t mMinTrackHits ;
00163 Double_t mMinTrackLength ;
00164 Double_t mMinTrackPt ;
00165 Double_t mMinTrackEta ;
00166 Double_t mMaxTrackEta ;
00168 Double_t mPhiFac;
00169 Double_t mEtaFac;
00172
00174 TH1F *hTrackNHits;
00175 TH1F *hTrackLen;
00176 TH1F *hTrackPt ;
00177 TH1F *hTrackPtot;
00179 TH1F *hTrackDCA[3];
00180 TH1F *hVertex[3] ;
00182 StMuDstMaker *mMuDstMaker;
00183 StEEmcDbMaker *mEEmcDb;
00184
00185 EEmcGeomSimple& mGeom;
00186
00187 TString mFileName;
00188 TFile *mFile;
00189 TTree *mTree;
00190
00191 map<double,TString> mZ;
00192
00193
00194 ULong_t mNMatched;
00195 ULong_t mNEvents;
00196
00197
00198 TList *mTrackList;
00199 TList *mTowerList;
00200 TList *mMatchList;
00201
00202 StEventInfo *mEvInfo;
00203 StEventSummary *mEvSumm;
00204 StMuTriggerIdCollection *mEvTrig;
00205
00206 bool mTreeOut;
00207
00208 public:
00209
00211 virtual const char *GetCVS() const {
00212 static const char cvs[]=
00213 "Tag $Name: $ $Id: EEmcTTMMaker.h,v 1.18 2004/06/03 21:02:29 zolnie Exp $ built "__DATE__" "__TIME__ ;
00214 return cvs;
00215 }
00216
00217 ClassDef(EEmcTTMMaker, 1)
00218 };
00219
00221 ostream& operator<<(ostream &out, const EEmcTTMMaker &ttm);
00222 #endif
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