analysis/eventRate.cxx
00001 #include <iostream> 00002 #include <fstream> 00003 00004 #include "RawAraEvent.h" 00005 #include "RawAraHeader.h" 00006 00007 #include "TFile.h" 00008 #include "TTree.h" 00009 00010 TFile *fpIn=0; 00011 TTree *evTree=0; 00012 RawAraEvent *evPtr=0; 00013 00014 using namespace std; 00015 00016 int openRootFile(int run); 00017 00018 int main(int argc, char **argv){ 00019 00020 if(argc<5){ 00021 printf("Usage %s <minRun> <maxRun> <outFileName> <stepSize>\n", argv[0]); 00022 return -1; 00023 } 00024 00025 int minRun = atoi(argv[1]); 00026 int maxRun = atoi(argv[2]); 00027 int stepSize = atoi(argv[4]); 00028 00029 ofstream myfile; 00030 myfile.open (argv[3]); 00031 myfile << "Writing this to a file.\n"; 00032 00033 int starEvery = (maxRun-minRun)/80; 00034 00035 for(int runNo=minRun;runNo<=maxRun;runNo+=stepSize){ 00036 if(runNo%starEvery==0) std::cerr << "*"; 00037 if(openRootFile(runNo)!=0){ 00038 continue; 00039 } 00040 int noEntries = evTree->GetEntries(); 00041 evTree->GetEntry(0); 00042 Long64_t minT = evPtr->head.unixTime; 00043 double minEvNo = evPtr->head.eventNumber; 00044 00045 evTree->GetEntry(noEntries-1); 00046 Long64_t maxT = evPtr->head.unixTime; 00047 int maxEvNo = evPtr->head.eventNumber; 00048 double temp7 = evPtr->hk.getTemperature(7); 00049 double temp6 = evPtr->hk.getTemperature(6); 00050 double temp5 = evPtr->hk.getTemperature(5); 00051 00052 double eventRate = (maxEvNo - minEvNo) / (maxT - minT); 00053 00054 myfile << runNo << "\t" << maxT << "\t" << eventRate << "\t" << noEntries << "\t" << temp7 << "\t" << temp6 << "\t" << temp5 << "\t" << maxEvNo << endl; 00055 00056 } 00057 00058 myfile.close(); 00059 00060 00061 00062 return 0; 00063 } 00064 00065 00066 int openRootFile(int run){ 00067 00068 00069 if(fpIn) 00070 fpIn->Close(); 00071 00072 char runFile[260]; 00073 sprintf(runFile, "/unix/ara/data/fromWisconsin/root/run%06i/event%06i.root", run, run); 00074 fpIn = TFile::Open(runFile); 00075 if(!fpIn){ 00076 printf("Unable to open %s\n", runFile); 00077 return -1; 00078 } 00079 evTree = (TTree*) fpIn->Get("eventTree"); 00080 if(!evTree){ 00081 printf("Unable to open %s event tree\n", runFile); 00082 return -1; 00083 } 00084 evTree->SetBranchAddress("event", &evPtr); 00085 00086 return 0; 00087 00088 }
Generated on Wed Aug 8 16:18:55 2012 for ARA ROOT Test Bed Software by
