00001
00002
00003
00004
00005
00006
00007
00008
00009 void pi0nsweeper( int nEve = 10,
00010 char *file = "/star/data04/sim/MuDst/minbias_pp200_pythia6.203_2003_hadronicon_trsic/rcf1200_2576_2000evts.MuDst.root",
00011 Int_t nFiles = 1,
00012 char *inDir = "NONE",
00013 char *dbFlavor = "NONE",
00014 char *outfile = "pi0ns.hist.root",
00015 float scaleFactor = 0.8
00016 ) {
00017
00018
00019 std::cout << "Running EEMC Tower Only pi0 Finder" << std::endl;
00020 std::cout << "Processing: " << nEve << " events" << std::endl;
00021 std::cout << "Input file: " << file << std::endl;
00022 std::cout << "DB Flavor: " << dbFlavor << std::endl;
00023 std::cout << "Output file: " << outfile << std::endl;
00024 std::cout << "scaleFactor: " << scaleFactor << std::endl;
00025 std::cout << std::flush;
00026
00027
00028 LoadLibs();
00029
00030
00031 chain = new StChain("StChain");
00032
00033
00034 TH1F *nclust = new TH1F("nclust","Number of clusters",10,0,10);
00035
00036
00037
00038
00039
00040
00041 std::cout << "Instantiating muDstMk: " << file << std::endl;
00042 StMuDstMaker *muDstMk = new StMuDstMaker(0,0,"",file,"",nFiles);
00043 StMuDbReader *muDb = StMuDbReader::instance();
00044
00045
00046
00047
00048
00049
00050
00051 if ( dbFlavor != "NONE" &&
00052 dbFlavor != "none" ) {
00053
00054
00055 St_db_Maker *dbMk = new St_db_Maker("StarDb", "MySQL:StarDb");
00056 StEEmcDbMaker *myMk = new StEEmcDbMaker("eemcDb");
00057
00058 dbMk -> setTimeStampDay(20030516);
00059
00060 }
00061
00062
00063
00064 StMuEETowerClusterMaker
00065 *muEEClusterMaker = new StMuEETowerClusterMaker("muEEClusterMaker","MuDst");
00066
00067
00068
00069 muEEClusterMaker -> setSeedThreshold(0.6);
00070 muEEClusterMaker -> setScaleFactor(scaleFactor);
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 StMuEETowerPi0nMaker *muPi0nMaker =
00087 new StMuEETowerPi0nMaker("muPi0nMaker","MuDst","muEEClusterMaker");
00088
00089
00090
00091 chain->Init();
00092 chain->ls(3);
00093
00094 StEEmcDb *eemcDb = (StEEmcDb*)chain->GetDataSet("StEEmcDb");
00095
00096 eemcDb -> setSectors(5,8);
00097
00098 eemcDb -> setPreferedFlavor( dbFlavor, "eemcPMTcal" );
00099
00100 int eventCounter=0;
00101 int stat=0;
00102
00103
00104 while ( stat==0 ) {
00105
00106 if(eventCounter>=nEve) break;
00107 chain->Clear();
00108
00109 std::cout << "Processing event number " << eventCounter << std::endl;
00110 stat = chain->Make();
00111
00112
00113 nclust -> Fill( muEEClusterMaker -> getNClusters() );
00114
00115
00116
00117
00118 if ( muEEClusterMaker -> getNClusters() > 1 ) {
00119 muEEClusterMaker -> Print();
00120 muPi0nMaker -> Print();
00121 }
00122
00123 eventCounter++;
00124
00125 }
00126
00127
00128 if ( stat != 0 ) std::cout << "Loop terminated w/ stat = " << stat << std::endl;
00129
00130 TFile f( outfile, "RECREATE" );
00131 f.cd();
00132
00133
00134
00135 muPi0nMaker -> GetHistList() -> FindObject("mEventStats") -> Write();
00136 muPi0nMaker -> GetHistList() -> FindObject("mMass_real_int") -> Write();
00137 muPi0nMaker -> GetHistList() -> FindObject("mMass_mixed_int") -> Write();
00138 muPi0nMaker -> GetHistList() -> FindObject("mEnergy_real_int") -> Write();
00139 muPi0nMaker -> GetHistList() -> FindObject("mEnergy_mixed_int") -> Write();
00140 muPi0nMaker -> GetHistList() -> FindObject("mZ_real_int") -> Write();
00141 muPi0nMaker -> GetHistList() -> FindObject("mZ_mixed_int") -> Write();
00142
00143
00144
00146
00147 }
00148
00149
00150 void LoadLibs() {
00151
00152 std::cout << "Loading libraries" << std::endl;
00153
00154 if (gClassTable->GetID("TTable") < 0)
00155 gSystem->Load("libStar");
00156 gSystem->Load("St_base");
00157 gSystem->Load("StChain");
00158 gSystem->Load("St_Tables");
00159 gSystem->Load("StMagF");
00160 gSystem->Load("StUtilities");
00161 gSystem->Load("StTreeMaker");
00162 gSystem->Load("StIOMaker");
00163 gSystem->Load("StarClassLibrary");
00164 gSystem->Load("StTpcDb");
00165 gSystem->Load("StDbUtilities");
00166 gSystem->Load("StEvent");
00167 gSystem->Load("StEventUtilities");
00168 gSystem->Load("StMcEvent");
00169 gSystem->Load("StMcEventMaker");
00170 gSystem->Load("StAssociationMaker");
00171 gSystem->Load("StMcAnalysisMaker");
00172 gSystem->Load("StStrangeMuDstMaker");
00173 gSystem->Load("StDbLib");
00174 gSystem->Load("StDbBroker");
00175 gSystem->Load("St_db_Maker");
00176 gSystem->Load("libgeometry_Tables");
00177 gSystem->Load("StDaqLib");
00178 gSystem->Load("StEmcUtil");
00179 gSystem->Load("StEmcADCtoEMaker");
00180 gSystem->Load("StPreEclMaker");
00181 gSystem->Load("StEpcMaker");
00182
00183 assert(gSystem->Load("StMuDSTMaker")==0);
00184 assert(gSystem->Load("StEEmcUtil")==0);
00185 assert(gSystem->Load("StEEmcPoolmuDst")==0 );
00186 assert(gSystem->Load("StEEmcPoolTowerOnly")==0 );
00187
00188 }