00001 void DoHiPt(const char* inDir = "links/P02gc.productionCentral.FullField.2001.313.mdst",
00002 const char* outFile = "HiPt.Test.hist.root",
00003 Int_t cut = 99999999,
00004 const char* analysis = "StHiJennsAnalysis",
00005 const char* extra="hello",
00006 char half = 0,
00007 float vertexZSkip=0,
00008 float hitAvoid=0,
00009 char geomHalf=0)
00010 {
00011
00012 gSystem->Load("StHiMicroEvent");
00013 gSystem->Load("StHiMicroAnalysis");
00014
00015 Int_t nevent = 99999;
00016 Int_t nfile = 99999;
00017
00018 cout << "inDir : " << inDir << endl;
00019 cout << "outFile : " << outFile << endl;
00020
00021 cout << "*********** Using cut type : " << cut << endl;
00022
00023 cout << "*********** Analysis type : " << analysis << endl;
00024
00025
00026
00027 StHiBaseAnalysis* hi =0 ;
00028
00029 if(strcmp(analysis,"StHiJennsAnalysis")==0){
00030 hi = new StHiJennsAnalysis(inDir,outFile);
00031 }
00032 else if(strcmp(analysis,"StHiSpectra")==0){
00033 hi = new StHiSpectra(inDir,outFile,extra);
00034 StHiSpectra* hiSpectra=dynamic_cast<StHiSpectra*>(hi);
00035 Cut::mDoSpectraCent=1;
00036
00037
00038
00039
00040
00041
00042 }
00043 else if(strcmp(analysis,"StDcaAnalysis")==0){
00044 hi = new StDcaAnalysis(inDir,outFile);
00045 }
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 Cut::SetCut(cut);
00061
00062 if(half){
00063 if(hitAvoid || Cut::mHitAvoid){
00064 cout << "Using hit half : " << half << endl;
00065 Cut::SetHitHalf(half);
00066 }
00067 else{
00068 cout << "Using half : " << half << endl;
00069 Cut::SetHalf(half);
00070 }
00071 }
00072 if(geomHalf){
00073 cout << "Using geom half : " << geomHalf << endl;
00074 Cut::SetGeomHalf(geomHalf);
00075 }
00076
00077 if(vertexZSkip){
00078 cout << "Skipping vertex region " << vertexZSkip << endl;
00079 Cut::SetVertexZSkip(vertexZSkip);
00080 }
00081 else if(hitAvoid){
00082 cout << "Avoiding hits " << hitAvoid << endl;
00083 Cut::SetHitAvoid(hitAvoid);
00084 }
00085
00086 hi->setNEvent(nevent);
00087 hi->setNFile(nfile);
00088
00089
00090 Int_t stat = hi->Init();
00091 if(stat){
00092 cout << "Trouble with Init()" << endl;
00093 return;
00094 }
00095
00096 hi->Run();
00097 hi->Finish();
00098
00099 }