9 int old_chamber_id,old_strip,new_chamber_id,new_strip;
10 float old_gainslope,old_intercpt, old_chisq;
11 std::vector<int> old_cham_id;
12 std::vector<int> old_strips;
13 std::vector<float> old_slope;
14 std::vector<float> old_intercept;
15 std::vector<float> old_chi2;
16 float new_gainslope,new_intercpt, new_chisq;
17 std::vector<int> new_cham_id;
18 std::vector<int> new_strips;
19 std::vector<float> new_slope;
20 std::vector<float> new_intercept;
21 std::vector<float> new_chi2;
26 int max_istrip,id_layer,max_ring,max_cham;
27 unsigned int old_nrlines=0;
28 unsigned int new_nrlines=0;
31 mean=6.8, min=-10.0, minchi=1.0;
33 std::ifstream olddata;
36 std::cerr <<
"Error: old_gains.dat -> no such file!"<< std::endl;
40 while (!olddata.eof() ) {
41 olddata >> old_chamber_id >> old_strip >> old_gainslope >> old_intercpt >> old_chisq ;
42 old_cham_id.push_back(old_chamber_id);
43 old_strips.push_back(old_strip);
44 old_slope.push_back(old_gainslope);
45 old_intercept.push_back(old_intercpt);
46 old_chi2.push_back(old_chisq);
51 std::ifstream newdata;
54 std::cerr <<
"Error: new_gains.txt -> no such file!"<< std::endl;
58 while (!newdata.eof() ) {
59 newdata >> new_chamber_id >> new_strip >> new_gainslope >> new_intercpt >> new_chisq ;
60 new_cham_id.push_back(new_chamber_id);
61 new_strips.push_back(new_strip);
62 new_slope.push_back(new_gainslope);
63 new_intercept.push_back(new_intercpt);
64 new_chi2.push_back(new_chisq);
76 if(istation==1) max_ring=3;
77 if(istation==2) max_ring=2;
78 if(istation==3) max_ring=2;
79 if(istation==4) max_ring=1;
81 for(
int iring=detId.
minRingId(); iring<=max_ring; iring++){
84 if(istation==1 && iring==1) max_cham=36;
85 if(istation==1 && iring==2) max_cham=36;
86 if(istation==1 && iring==3) max_cham=36;
87 if(istation==2 && iring==1) max_cham=18;
88 if(istation==2 && iring==2) max_cham=36;
89 if(istation==3 && iring==1) max_cham=18;
90 if(istation==3 && iring==2) max_cham=36;
91 if(istation==4 && iring==1) max_cham=18;
93 for(
int ichamber=detId.
minChamberId(); ichamber<=max_cham; ichamber++){
96 if(istation==1 && iring==3) max_istrip=64;
98 std::vector<CSCGains::Item> itemvector;
99 itemvector.resize(max_istrip);
100 id_layer = 100000*iendcap + 10000*istation + 1000*iring + 10*ichamber + ilayer;
102 for(
int istrip=0;istrip<max_istrip;istrip++){
103 itemvector[istrip].gain_slope=((double)
rand()/((double)(RAND_MAX)+(double)(1)))+
mean;
104 itemvector[istrip].gain_intercept=((double)
rand()/((double)(RAND_MAX)+(double)(1)))+
min;
105 itemvector[istrip].gain_chi2=((double)
rand()/((double)(RAND_MAX)+(double)(1)))+minchi;
106 cngains->
gains[id_layer]=itemvector;
116 std::vector<CSCGains::Item> itemvector;
117 itemvector.resize(80);
119 for(
unsigned int mystrip=0; mystrip<old_nrlines-1; mystrip++){
120 if(old_strips[mystrip]==0) istrip = 0;
121 itemvector[istrip].gain_slope=old_slope[mystrip];
122 itemvector[istrip].gain_intercept=old_intercept[mystrip];
123 itemvector[istrip].gain_chi2=old_chi2[mystrip];
124 cngains->
gains[old_cham_id[mystrip]]=itemvector;
129 itemvector.resize(64);
130 for(
unsigned int mystrip=0; mystrip<old_nrlines-1; mystrip++){
131 if(old_strips[mystrip]==0) istrip = 0;
132 if(old_cham_id[mystrip] >= 113000 && old_cham_id[mystrip] <= 113999){
133 itemvector[istrip].gain_slope=old_slope[mystrip];
134 itemvector[istrip].gain_intercept=old_intercept[mystrip];
135 itemvector[istrip].gain_chi2=old_chi2[mystrip];
136 cngains->
gains[old_cham_id[mystrip]]=itemvector;
141 itemvector.resize(64);
142 for(
unsigned int mystrip=0; mystrip<old_nrlines-1; mystrip++){
143 if(old_strips[mystrip]==0) istrip = 0;
144 if(old_cham_id[mystrip] >= 213000 && old_cham_id[mystrip] <= 213999){
145 itemvector[istrip].gain_slope=old_slope[mystrip];
146 itemvector[istrip].gain_intercept=old_intercept[mystrip];
147 itemvector[istrip].gain_chi2=old_chi2[mystrip];
148 cngains->
gains[old_cham_id[mystrip]]=itemvector;
154 itemvector.resize(80);
155 for(
unsigned int mystrip=0; mystrip<new_nrlines-1; mystrip++){
156 if(new_strips[mystrip]==0) istrip = 0;
157 itemvector[istrip].gain_slope=new_slope[mystrip];
158 itemvector[istrip].gain_intercept=new_intercept[mystrip];
159 itemvector[istrip].gain_chi2=new_chi2[mystrip];
160 cngains->
gains[new_cham_id[mystrip]]=itemvector;
164 itemvector.resize(64);
165 for(
unsigned int mystrip=0; mystrip<new_nrlines-1; mystrip++){
166 if(new_strips[mystrip]==0) istrip = 0;
167 if(new_cham_id[mystrip] >= 113000 && new_cham_id[mystrip] <= 113999){
168 itemvector[istrip].gain_slope=new_slope[mystrip];
169 itemvector[istrip].gain_intercept=new_intercept[mystrip];
170 itemvector[istrip].gain_chi2=new_chi2[mystrip];
171 cngains->
gains[new_cham_id[mystrip]]=itemvector;
176 itemvector.resize(64);
177 for(
unsigned int mystrip=0; mystrip<new_nrlines-1; mystrip++){
178 if(new_strips[mystrip]==0) istrip = 0;
179 if(new_cham_id[mystrip] >= 213000 && new_cham_id[mystrip] <= 213999){
180 itemvector[istrip].gain_slope=new_slope[mystrip];
181 itemvector[istrip].gain_intercept=new_intercept[mystrip];
182 itemvector[istrip].gain_chi2=new_chi2[mystrip];
183 cngains->
gains[new_cham_id[mystrip]]=itemvector;
198 findingRecord<CSCGainsRcd>();
CSCGainsConditions(const edm::ParameterSet &)
static const IOVSyncValue & endOfTime()
std::pair< Time_t, Time_t > ValidityInterval
static int maxStationId()
void setWhatProduced(T *iThis, const es::Label &iLabel=es::Label())
static int minChamberId()
static CSCGains * prefillGains()
static const IOVSyncValue & beginOfTime()
static int minStationId()
static int maxChamberId()
ReturnType produceGains(const CSCGainsRcd &)
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)