1 #ifndef _CSCFAKEDBCROSSTALK_H
2 #define _CSCFAKEDBCROSSTALK_H
19 #include <boost/shared_ptr.hpp>
28 typedef boost::shared_ptr<CSCDBCrosstalk>
Pointer;
50 const int MAX_SIZE = 217728;
51 const int SLOPE_FACTOR=10000000;
52 const int INTERCEPT_FACTOR=100000;
55 cndbcrosstalk->
crosstalk.resize(MAX_SIZE);
59 mean=-0.0009, min=0.035, minchi=1.5, M=1000;
60 ii=0,jj=0,iii=0,jjj=0;
65 for(
int i=0;
i<MAX_SIZE;
i++){
66 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right = (
short int) ((-((
double)
rand()/((
double)(RAND_MAX)+(
double)(1)))/10000+mean)*SLOPE_FACTOR+0.5);
67 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right= (
short int) ((((
double)
rand()/((
double)(RAND_MAX)+(
double)(1)))/100+
min)*INTERCEPT_FACTOR+0.5);
68 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left= (
short int) ((-((
double)
rand()/((double)(RAND_MAX)+(double)(1)))/10000+
mean)*SLOPE_FACTOR+0.5);
69 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=(
short int) ((((
double)
rand()/((double)(RAND_MAX)+(double)(1)))/100+
min)*INTERCEPT_FACTOR+0.5);
73 if(
i<34561 &&
i%80==0){
74 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left=0;
75 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=0;
78 if(
i!=0 &&
i<34561 && (
i+1)%80==0){
79 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right=0;
80 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right=0;
84 if(
i>34560 &&
i<48385 &&
i%64==0){
85 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left=0;
86 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=0;
89 if(
i>34560 &&
i<48385 && (
i+1)%64==0){
90 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right=0;
91 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right=0;
95 if(
i>48384 &&
i<143425){
97 if(
i>48384 &&
i<143425 && ii%80==0){
98 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left=0;
99 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=0;
103 if(
i>48384 &&
i<143425){
105 if(
i>48384 &&
i<143425 && (jj+1)%80==0){
106 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right=0;
107 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right=0;
112 if(
i>143424 &&
i<157249 &&
i%64==0){
113 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left=0;
114 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=0;
117 if(
i>143424 &&
i<157249 && (
i+1)%64==0){
118 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right=0;
119 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right=0;
126 if(
i>157248 && iii%80==0){
127 cndbcrosstalk->
crosstalk[
i].xtalk_slope_left=0;
128 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_left=0;
134 if(
i>157248 && (jjj+1)%80==0){
135 cndbcrosstalk->
crosstalk[
i].xtalk_slope_right=0;
136 cndbcrosstalk->
crosstalk[
i].xtalk_intercept_right=0;
140 return cndbcrosstalk;
static CSCDBCrosstalk * prefillDBCrosstalk()
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &)
boost::shared_ptr< CSCDBCrosstalk > Pointer
CSCFakeDBCrosstalk(const edm::ParameterSet &)
Pointer produceDBCrosstalk(const CSCDBCrosstalkRcd &)
CrosstalkContainer crosstalk