00001 // $Id: StEEmcFilterMaker.h,v 1.4 2008/05/12 15:33:01 balewski Exp $ 00002 00003 #ifndef STAR_StEEmcFilterMaker 00004 #define STAR_StEEmcFilterMaker 00005 00020 #ifndef StMaker_H 00021 #include "StMaker.h" 00022 #endif 00023 00024 class TH1F; 00025 class EEmcGeomSimple; 00026 class StEEmcTower; 00027 00028 class StEEmcFilterMaker : public StMaker { 00029 private: 00030 enum {kUnknown=1, kUseFixedVertex, kUseRecoVertex}; 00031 int myMode; 00032 int nInpEve, nRecVert,nZverOK, nAccEve; 00033 TH1F * mH0; 00034 EEmcGeomSimple* mGeomE; 00035 Float_t transverseNRG(Float_t vertexPosZ, StEEmcTower * tower); 00036 Int_t triggerCondition( Float_t vertexPosZ, StEEmcTower *highTow, Float_t &patchEt); 00037 float par_Et_thres, par_Z0_vert, par_delZ_vert; 00038 00039 public: 00040 void setEtThres(float x) { par_Et_thres=x;} 00041 void setZvertCut(float z0, float dz) { par_Z0_vert=z0; par_delZ_vert=dz;myMode=kUseRecoVertex;} 00042 void setFixedVertex(float z0) { par_Z0_vert=z0; myMode=kUseFixedVertex;} 00043 00044 StEEmcFilterMaker(const char *name="EEmcFilter"); 00045 virtual ~StEEmcFilterMaker(); 00046 virtual Int_t Init(); 00047 virtual Int_t Make(); 00048 00049 // virtual Int_t InitRun (int runumber){return 0;}; // Overload empty StMaker::InitRun 00050 virtual Int_t FinishRun(int runumber); 00051 00053 virtual const char *GetCVS() const { 00054 static const char cvs[]="Tag $Name: $ $Id: StEEmcFilterMaker.h,v 1.4 2008/05/12 15:33:01 balewski Exp $ built "__DATE__" "__TIME__ ; 00055 return cvs; 00056 } 00057 00058 ClassDef(StEEmcFilterMaker,0) 00059 }; 00060 00061 #endif 00062 00063 00064 /* =================================== 00065 00066 #if 1 00067 gSystem->Load("StEEmcA2EMaker"); 00068 gSystem->Load("StEEmcPoolEEmcFilterMaker"); 00069 00070 StEEmcA2EMaker *EEa2eMK=new StEEmcA2EMaker("EE_A2E"); 00071 EEa2eMK->database("eeDb"); // sets db connection 00072 EEa2eMK->source("StEventMaker",2); 00073 EEa2eMK->scale(1.0); // scale reco Endcap energy by a factor 00074 00075 // this filter-1 _assumes_ fixed Zvertex, 00076 // needs only Endcap slow simu 00077 StEEmcFilterMaker *eeFlt1Mk=new StEEmcFilterMaker("EEmcFilterPreTPC"); 00078 eeFlt1Mk->setEtThres(14.);// (GeV), event-eta used 00079 eeFlt1Mk->setFixedVertex(-60.); // (cm), Z0 00080 00081 // this filter-2 requires reco vertex 00082 StEEmcFilterMaker *eeFlt2Mk=new StEEmcFilterMaker("EEmcFilterPostTPC"); 00083 eeFlt2Mk->setEtThres(16.);// (GeV), event-eta used 00084 eeFlt2Mk->setZvertCut(-60.,15.); // (cm), Z0, delatZ 00085 00086 // position makers at the right location in the chain 00087 // WARN, order of operations below is important 00088 StMaker *tpcMk = chain->GetMaker("tpcChain"); 00089 chain->AddAfter("eefs",tpcMk); // now TPC-chain is after EMC-makers 00090 00091 chain->AddAfter("eefs",eeFlt1Mk); 00092 chain->AddAfter("eefs",EEa2eMK); // filter 1 is before TPC-chain 00093 chain->AddBefore("MuDst",eeFlt2Mk); // filter 2 is after vertex finder 00094 chain->ls(3); 00095 #endif 00096 00097 00098 ========================== */ 00099 // $Log: StEEmcFilterMaker.h,v $ 00100 // Revision 1.4 2008/05/12 15:33:01 balewski 00101 // *** empty log message *** 00102 // 00103 // Revision 1.3 2008/05/11 18:49:18 balewski 00104 // merged 2 makers, now one can us it before and after TPC tracking, run 2 independent copies 00105 // 00106 // Revision 1.2 2008/05/09 22:14:35 balewski 00107 // new there are 2 filters 00108 // 00109 // Revision 1.1 2008/04/21 15:47:09 balewski 00110 // star 00111 //
1.5.9