00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef StTofrNtupleMaker_hh
00026 #define StTofrNtupleMaker_hh
00027 #include "StMaker.h"
00028
00029 #define __SIGMA_SCALE__ 1000.
00030 #include <string>
00031 #ifndef ST_NO_NAMESPACES
00032 using std::string;
00033 #endif
00034 #include "StTofrCellData.h"
00035 #include <StPhysicalHelixD.hh>
00036
00037 class StEvent;
00038 class StTofCollection;
00039 class StTofDataCollection;
00040 class StSPtrVecTofData;
00041 class StTofrGeometry;
00042
00043 class TFile;
00044 class TTree;
00045 class TNtuple;
00046
00047 class StTofrNtupleMaker : public StMaker {
00048 public:
00049 StTofrNtupleMaker(const Char_t *name, const Char_t *outname);
00050 ~StTofrNtupleMaker();
00051
00052 Int_t Init();
00053 Int_t InitRun(int runnumber);
00054 Int_t Make();
00055 Int_t FinishRun(int runnumber);
00056 Int_t Finish();
00057
00058 void SetNtupleFileName(Char_t*);
00059 void setOuterTrackGeometry();
00060 void setStandardTrackGeometry();
00061 void setValidAdcRange(Int_t, Int_t);
00062 void setValidTdcRange(Int_t, Int_t);
00063 void setInitGeomFromOther(const Bool_t);
00064
00065 void bookNtuples();
00066
00067 bool strobeEvent(StSPtrVecTofData&);
00068
00069 bool validAdc(float const);
00070 bool validTdc(float const);
00071
00072 private:
00073 static const Int_t mNTOFR = 120;
00074 static const Int_t mNPVPD = 3;
00075
00076 Bool_t mYear2;
00077 Bool_t mYear3;
00078 Bool_t mYear4;
00079
00080 StPhysicalHelixD* mBeamHelix;
00081 float mBeamX, mBeamY;
00082
00083 StTofrGeometry *mTofrGeom;
00084 Bool_t mInitGeomFromOther;
00085
00086 Bool_t mOuterTrackGeometry;
00087
00088 Int_t mStrobeTdcMin[mNPVPD];
00089 Int_t mStrobeTdcMax[mNPVPD];
00090
00091
00092 float mMinValidTdc;
00093 float mMaxValidTdc;
00094 float mMinValidAdc;
00095 float mMaxValidAdc;
00096 Float_t mPvpdAdc[mNPVPD];
00097 Float_t mPvpdTdc[mNPVPD];
00098 Float_t mPvpdAdcLoRes[mNPVPD];
00099
00100
00101 Int_t mAcceptedEvents;
00102 Int_t mPvpdEntries;
00103 Int_t mTofrEvents;
00104 Int_t mTofrEntries;
00105
00106 string mTupleFileName;
00107 TFile *mTupleFile;
00108
00109 StTofrCellData mCellData;
00110
00111 Bool_t doPrintMemoryInfo;
00112 Bool_t doPrintCpuInfo;
00113
00114 TTree *mPvpdTuple;
00115 TTree *mCellTuple;
00116 TTree *mMatchTuple;
00117 TTree *mNoMatchTuple;
00118 TNtuple *mHitPosTuple;
00119
00120 virtual const char *GetCVS() const
00121 {static const char cvs[]="Tag $Name: $ $Id: StTofrNtupleMaker.h,v 1.4 2008/05/06 18:42:09 dongx Exp $ built "__DATE__" "__TIME__ ; return cvs;}
00122
00123 ClassDef(StTofrNtupleMaker,2)
00124 };
00125
00126 inline void StTofrNtupleMaker::setOuterTrackGeometry(){mOuterTrackGeometry=true;}
00127 inline void StTofrNtupleMaker::setStandardTrackGeometry(){mOuterTrackGeometry=false;}
00128 inline void StTofrNtupleMaker::SetNtupleFileName(Char_t* filename){mTupleFileName=filename;}
00129
00130 inline void StTofrNtupleMaker::setValidAdcRange(Int_t min, Int_t max){
00131 mMinValidAdc=min;
00132 mMaxValidAdc=max;
00133 }
00134
00135 inline void StTofrNtupleMaker::setValidTdcRange(Int_t min, Int_t max){
00136 mMinValidTdc=min;
00137 mMaxValidTdc=max;
00138 }
00139
00140 inline bool StTofrNtupleMaker::validAdc(const float adc){return((adc>=mMinValidAdc) && (adc<=mMaxValidAdc));}
00141 inline bool StTofrNtupleMaker::validTdc(const float tdc){return((tdc>=mMinValidTdc) && (tdc<=mMaxValidTdc));}
00142
00143 inline void StTofrNtupleMaker::setInitGeomFromOther(const Bool_t init) { mInitGeomFromOther = init; }
00144
00145 #endif