ARA ROOT Test BEd Software

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 doxygen 1.4.7