/////////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////// #include "TFile.h" #include "TTree.h" #include "TBranch.h" #include "CompModel/Tevatron.hh" #include "CompModel/Tevatron.hh" ClassImp(Tevatron) // I'm not sure about inst lumi numbers for 2002-2003 namespace { int kYear [] = { 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -1}; float kTotalDeliered [] = { 0.08, 0.33, 0.67, 1.27, 2.14, 3.95, 5.90, 8.05, -1}; float kDeliveredLumi [] = { 0.08, 0.25, 0.34, 0.60, 0.87, 1.81, 1.95, 2.15, -1}; float kAverageInstLumi[] = { 0.10, 0.15, 0.27, 0.40, 0.60, 0.90, 1.2, 1.3, -1}; float kShutdownWeeks [] = { 12, 12, 12, 12, 14, 12, 12, 10, -1}; float kRunningEff [] = { 1, 1, 1, 1, 1, 1, 1, 1, -1}; }; //_____________________________________________________________________________ Tevatron::Tevatron() { } //_____________________________________________________________________________ Tevatron::~Tevatron() { } //_____________________________________________________________________________ float Tevatron::AverageInstLumi(int Year) { float lumi(0); int i = Year-kYear[0]; lumi = kAverageInstLumi[i]; return lumi; } //_____________________________________________________________________________ float Tevatron::OpsEff(int Year) { // ops efficiency: 100 hours per week (roughly speaking, 60%) int loc = Year-kYear[0]; float eff = (100./24./7)*(1-kShutdownWeeks[loc]/52.)*kRunningEff[loc]; return eff; } //_____________________________________________________________________________ float Tevatron::TotalDeliveredLumi(int Year) { // total delivered lumi including 'Year' float lumi (0); for (int i=0; (kYear[i] > 0) && (kYear[i] <= Year); i++) { lumi += kDeliveredLumi[i]; } return lumi; } //_____________________________________________________________________________ float Tevatron::DeliveredLumi(int Year) { // total delivered lumi including 'Year' int i = Year-kYear[0]; return kDeliveredLumi[i]; }