23 TrackerMap(std::string
s=
" ",
int xsize1=340,
int ysize1=200);
31 void print(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"svgmap");
32 void printall(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"svgmap");
34 void printlayers(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"layer");
35 void save(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"svgmap.svg",
int width=1500,
int height=800);
36 void save_as_fedtrackermap(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"fed_svgmap.svg",
int width=1500,
int height=800);
37 void save_as_fectrackermap(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"fec_svgmap.svg",
int width=1500,
int height=800);
38 void save_as_psutrackermap(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"psu_svgmap.svg",
int width=1500,
int height=800);
39 void save_as_HVtrackermap(
bool print_total=
true,
float minval=0.,
float maxval=0.,std::string
s=
"psu_svgmap.svg",
int width=1500,
int height=800);
40 void drawApvPair(
int crate,
int numfed_incrate,
bool total,
TmApvPair* apvPair,std::ofstream * file,
bool useApvPairValue);
41 void drawCcu(
int crate,
int numfed_incrate,
bool total,
TmCcu* ccu,std::ofstream * file,
bool useCcuValue);
42 void drawPsu(
int rack,
int numcrate_inrack,
bool print_total,
TmPsu* psu,ofstream *
svgfile,
bool usePsuValue);
43 void drawHV2(
int rack,
int numcrate_inrack,
bool print_total,
TmPsu* psu,ofstream * svgfile,
bool usePsuValue);
44 void drawHV3(
int rack,
int numcrate_inrack,
bool print_total,
TmPsu* psu,ofstream * svgfile,
bool usePsuValue);
46 void fill(
int layer ,
int ring,
int nmod,
float x );
47 void fill(
int idmod,
float qty );
48 void fillc(
int idmod,
int RGBcode) {
fillc(idmod,(RGBcode>>16) & 0xFF , (RGBcode>>8) & 0xFF, RGBcode & 0xFF);}
50 void fillc(
int layer,
int ring,
int nmod,
int red,
int green,
int blue);
65 int module(
int fedId,
int fedCh);
66 void setText(
int idmod , std::string
s );
67 void setText(
int layer,
int ring,
int nmod , std::string
s );
75 void load(std::string
s=
"tmap.svg");
81 std::vector<TColor*>
vc;
88 typedef std::multimap<const int , TmApvPair*>
ModApvPair;
90 typedef std::map<const int , int>
SvgFed;
92 typedef std::map<const int , TmCcu*>
MapCcu;
94 typedef std::multimap<TmCcu* , TmModule*>
FecModule;
96 typedef std::map<const int , TmPsu*>
MapPsu;
98 typedef std::multimap<TmPsu* , TmModule*>
PsuModule;
114 double phi1=atan(y/x);
116 if(y<0. && x>0) phi = phi1+2.*
M_PI;
117 if(x<0.)phi=phi1+
M_PI;
118 if(fabs(y)<0.000001 && x>0)phi=0;
119 if(fabs(y)<0.000001&&x<0)phi=
M_PI;
120 if(fabs(x)<0.000001&&y>0)phi=M_PI/2.;
121 if(fabs(x)<0.000001&&y<0)phi=3.*M_PI/2.;
140 layer = ix/(2*
ysize);
141 if(iy < 2*
xsize)layer=layer*2+1;
else layer=layer*2;
155 if(partdet == 1 || partdet == 3){
158 else { ncomponent = 3; }
161 if(partdet == 1 || partdet == 3){
164 else { ncomponent = 4; }
167 if(partdet == 1 || partdet == 3){
170 else { ncomponent = 6; }
319 if(partdet== 1 || partdet== 3){
322 else{ncomponent = 8;}
325 if(partdet== 1 || partdet== 3){
328 else{ncomponent = 12;}
332 if (layer== 1) ncomponent = 4;
333 if (layer== 2 || layer== 3) ncomponent = 5;
334 if (layer== 4 || layer== 5 || layer== 6) ncomponent = 6;
335 if (layer== 7 || layer== 8 || layer== 9) ncomponent = 7;
338 if (layer== 9) ncomponent = 4;
339 if (layer== 8 || layer== 7) ncomponent = 5;
340 if (layer== 6 || layer== 5 || layer== 4) ncomponent = 6;
341 if (layer== 3 || layer== 2 || layer== 1) ncomponent = 7;
351 int spicchif[] ={24,24,40,56,40,56,80};
352 int spicchib[] ={20,32,44,30,38,46,56,42,48,54,60,66,74};
353 int numero_layer = 0;
356 numero_layer = layer-1;
358 numero_layer = numero_layer+3;
361 numero_layer = numero_layer+7;
363 ncomponent = spicchib[numero_layer];
366 if(subdet== 1)ncomponent=24;
368 ncomponent = spicchif[ring-1];
372 static int layerno(
int subdet,
int leftright,
int layer){
373 if(subdet==6&&leftright==1)
return(10-layer);
374 if(subdet==6&&leftright==2)
return(layer+21);
375 if(subdet==4&&leftright==1)
return(4-layer+9);
376 if(subdet==4&&leftright==2)
return(layer+18);
377 if(subdet==2&&leftright==1)
return(4-layer+12);
378 if(subdet==2&&leftright==2)
return(layer+15);
379 if(subdet==1)
return(layer+30);
380 if(subdet==3)
return(layer+33);
381 if(subdet==5)
return(layer+37);
385 int layer=key/100000;
386 int ring = key - layer*100000;
388 if(layer==34 || layer==35 || layer==38 || layer==39)
return true;
389 if(layer<13 || (layer>18&&layer<31))
390 if(ring==1 || ring==2 || ring==5)
return true;
394 if(det==3 && part==1)
return lay;
395 if(det==2 && part==1)
return lay+9;
396 if(det==1 && part==1)
return lay+12;
397 if(det==1 && part==3)
return lay+15;
398 if(det==2 && part==3)
return lay+18;
399 if(det==3 && part==3)
return lay+21;
400 if(det==1 && part==2)
return lay+30;
401 if(det==2 && part==2)
return lay+33;
402 if(det==3 && part==2)
return lay+37;
408 std::ostringstream ons;
410 if(layer < 10) ons <<
"TEC -z Layer " << layer;
411 if(layer < 13 && layer > 9) ons <<
"TID -z Layer " << layer-9;
412 if(layer < 16 && layer > 12) ons <<
"FPIX -z Layer " << layer-12;
413 if(layer < 19 && layer > 15) ons <<
"FPIX +z Layer " << layer-15;
414 if(layer < 22 && layer > 18) ons <<
"TID +z Layer " << layer-18;
415 if(layer < 31 && layer > 21) ons <<
"TEC +z Layer " << layer-21;
416 if(layer < 34 && layer > 30) ons <<
"TPB Layer " << layer-30;
417 if(layer < 38 && layer > 33) ons <<
"TIB Layer " << layer-33;
418 if(layer > 37) ons <<
"TOB Layer " << layer-37;
void drawHV3(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
void fill_hv_channel2(int rack, int crate, int board, float qty)
TrackerMap(std::string s=" ", int xsize1=340, int ysize1=200)
double ydpixelc(double y)
std::ifstream * findfile(std::string filename)
double ydpixelfec(double y)
std::string layername(int layer)
int getmoduleCount(int subdet, int partdet, int layer, int ring)
void save_as_psutrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=1500, int height=800)
void fillc_hv_channel2(int rack, int crate, int board, int red, int green, int blue)
std::ifstream * inputfile
void addPixel(bool addPixelfl)
~TrackerMap()
default destructor
void drawPsu(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
int module(int fedId, int fedCh)
std::multimap< const int, TmApvPair * > ModApvPair
void defwindow(int num_lay)
void save_as_HVtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=1500, int height=800)
std::map< const int, int > SvgFed
double xdpixelc(double x)
void defpsuwindow(int num_rack)
int getlayerCount(int subdet, int partdet)
void fill_current_val_fed_channel(int fedId, int fedCh, float current_val)
void add(const std::vector< const T * > &source, std::vector< const T * > &dest)
std::multimap< TmPsu *, TmModule * > PsuModule
void fillc_fec_channel(int crate, int slot, int ring, int addr, int red, int green, int blue)
void setTitle(std::string s)
double xdpixelfec(double x)
double phival(double x, double y)
std::map< const int, TmPsu * > MapPsu
void fillc_lv_channel(int rack, int crate, int board, int red, int green, int blue)
std::map< const int, TmApvPair * > SvgApvPair
void showPalette(bool printflag1)
int getringCount(int subdet, int partdet, int layer)
double xdpixelpsu(double x)
const T & max(const T &a, const T &b)
std::map< const int, TmModule * > SmoduleMap
void setPalette(int numpalette)
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
void drawHV2(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, ofstream *svgfile, bool usePsuValue)
void deffecwindow(int num_crate)
void drawPalette(std::ofstream *file)
void load(std::string s="tmap.svg")
list mod
Load physics model.
std::map< const int, TmCcu * > MapCcu
void drawModule(TmModule *mod, int key, int layer, bool total, std::ofstream *file)
void drawApvPair(int crate, int numfed_incrate, bool total, TmApvPair *apvPair, std::ofstream *file, bool useApvPairValue)
void fillc_fed_channel(int fedId, int fedCh, int red, int green, int blue)
int getcolor(float value, int palette)
void fillc(int idmod, int RGBcode)
static int layerno(int subdet, int leftright, int layer)
void printlayers(bool print_total=true, float minval=0., float maxval=0., std::string s="layer")
void drawCcu(int crate, int numfed_incrate, bool total, TmCcu *ccu, std::ofstream *file, bool useCcuValue)
void fill_hv_channel3(int rack, int crate, int board, float qty)
void setRange(float min, float max)
int nlayer(int det, int part, int lay)
int find_layer(int ix, int iy)
void print(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
void save_as_fedtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fed_svgmap.svg", int width=1500, int height=800)
void fill_fec_channel(int crate, int slot, int ring, int addr, float qty)
void fill_current_val(int idmod, float current_val)
void setText(int idmod, std::string s)
static bool isRingStereo(int key)
void defcwindow(int num_crate)
void fill_lv_channel(int rack, int crate, int board, float qty)
std::map< const int, TmModule * > ImoduleMap
std::vector< TColor * > vc
void fill(int layer, int ring, int nmod, float x)
double ydpixelpsu(double y)
void save_as_fectrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fec_svgmap.svg", int width=1500, int height=800)
void printall(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
void fill_fed_channel(int fedId, int fedCh, float qty)
std::multimap< TmCcu *, TmModule * > FecModule
void fillc_hv_channel3(int rack, int crate, int board, int red, int green, int blue)