//------------------------------------------------------------------------------ // initialization routine, usage: // // .L m60_prop.C // m = m60_prop(); // // // 'proportional' model with 60 MB/sec out of CSL //------------------------------------------------------------------------------ TCompModel* m80_prop() { float data [] = { //--------------------------------------------------------------------------------------------- // CSL // year int_lum inst_lum l3_rate ops_eff l3_rate N(L3) N(CSL) event total data processed // fb-1 1e32 MB/sec (Hz) size size (TB) fraction // unused KB //--------------------------------------------------------------------------------------------- 2002, 0.08, 0.10, 20., 0.50, 34., 238.e6, 266.e6, 270.9, 0.0696 , 0.73, 2003, 0.22, 0.15, 20., 0.50, 48., 306.e6, 338.e6, 224.5, 0.0715 , 0.75, 2004, 0.38, 0.27, 20., 0.65, 53., 492.e6, 550.e6, 146.0, 0.1024 , 0.68, 2005, 0.67, 0.40, 30., 0.85, 64., 773.e6, 855.e6, 135.5, 0.1285 , 0.82, 2006, 0.87, 0.60, 60., 0.90, 132., -1, -1., -1., -1. , 0.82, 2007, 1.81, 1.00, 80., 0.90, 200., -1, -1., -1., -1. , 0.82, 2008, 1.95, 1.20, 80., 0.90, 200., -1, -1., -1., -1. , 0.82, 2009, 2.15, 1.30, 80., 0.90, 200., -1, -1., -1., -1. , 0.82, -1, -1., -1., -1., -1., -1., -1, -1., -1., -1. , 0.82 }; TCompModel* m = new TCompModel(); m->SetModel(1); m->SetT0(2005); TDetectorModel::Data_t* Data = m->fCdf->fData; int loc; for (int i=0; i<1000; i++) { loc = 11*i; if (data[loc] < 0) break; Data[i].fYear = data[loc ]; Data[i].fDeliveredLumi = data[loc+ 1]; Data[i].fAverageInstLumi = data[loc+ 2]; Data[i].fL3MBytesSec = data[loc+ 3]; Data[i].fL3Rate = data[loc+ 4]; Data[i].fOpsEff = data[loc+ 5]; Data[i].fNL3Events = data[loc+ 6]; Data[i].fNCslEvents = data[loc+ 7]; Data[i].fCslEventSize = data[loc+ 8]; Data[i].fTotalDataSize = data[loc+ 9]; Data[i].fProcessedFract = data[loc+10]; } return m; }