CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | Private Member Functions | Private Attributes
TrackerMap Class Reference

#include <TrackerMap.h>

Public Types

typedef std::multimap< TmCcu *, TmModule * > FecModule
 
typedef std::map< const int, TmModule * > ImoduleMap
 
typedef std::map< const int, TmCcu * > MapCcu
 
typedef std::map< const int, TmPsu * > MapPsu
 
typedef std::multimap< const int, TmApvPair * > ModApvPair
 
typedef std::multimap< TmPsu *, TmModule * > PsuModule
 
typedef std::map< const int, TmModule * > SmoduleMap
 
typedef std::map< const int, TmApvPair * > SvgApvPair
 
typedef std::map< const int, int > SvgFed
 

Public Member Functions

void addPixel (bool addPixelfl)
 
void build ()
 
void defcwindow (int num_crate)
 
void deffecwindow (int num_crate)
 
void defpsuwindow (int num_rack)
 
void defwindow (int num_lay)
 
void drawApvPair (int crate, int numfed_incrate, bool total, TmApvPair *apvPair, std::ofstream *file, bool useApvPairValue)
 
void drawCcu (int crate, int numfed_incrate, bool total, TmCcu *ccu, std::ofstream *file, bool useCcuValue)
 
void drawHV2 (int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
 
void drawHV3 (int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
 
void drawModule (TmModule *mod, int key, int layer, bool total, std::ofstream *file)
 
void drawPalette (std::ofstream *file, int xoffset=3660, int yoffset=1540)
 
void drawPsu (int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
 
void fill (int layer, int ring, int nmod, float x)
 
void fill (int idmod, float qty)
 
void fill_all_blank ()
 
void fill_current_val (int idmod, float current_val)
 
void fill_current_val_fed_channel (int fedId, int fedCh, float current_val)
 
void fill_fec_channel (int crate, int slot, int ring, int addr, float qty)
 
void fill_fed_channel (int fedId, int fedCh, float qty)
 
void fill_fed_channel (int modId, float qty)
 
void fill_hv_channel2 (int rack, int crate, int board, float qty)
 
void fill_hv_channel3 (int rack, int crate, int board, float qty)
 
void fill_lv_channel (int rack, int crate, int board, float qty)
 
void fillc (int idmod, int RGBcode)
 
void fillc (int idmod, int red, int green, int blue)
 
void fillc (int layer, int ring, int nmod, int red, int green, int blue)
 
void fillc_all_blank ()
 
void fillc_fec_channel (int crate, int slot, int ring, int addr, int red, int green, int blue)
 
void fillc_fed_channel (int fedId, int fedCh, int red, int green, int blue)
 
void fillc_hv_channel2 (int rack, int crate, int board, int red, int green, int blue)
 
void fillc_hv_channel3 (int rack, int crate, int board, int red, int green, int blue)
 
void fillc_lv_channel (int rack, int crate, int board, int red, int green, int blue)
 
int find_layer (int ix, int iy)
 
std::ifstream * findfile (std::string filename)
 
std::pair< float, float > getAutomaticRange ()
 
int getcolor (float value, int palette)
 
int getlayerCount (int subdet, int partdet)
 
int getmoduleCount (int subdet, int partdet, int layer, int ring)
 
int getNumMod ()
 
int getringCount (int subdet, int partdet, int layer)
 
int getxsize ()
 
int getysize ()
 
void init ()
 
std::string layername (int layer)
 
void load (std::string s="tmap.svg")
 
int module (int fedId, int fedCh)
 
int nlayer (int det, int part, int lay)
 
void onlyPixel (bool onlyPixelfl)
 
double phival (double x, double y)
 
void print (bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap")
 
void printall (bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap", int width=6000, int height=3200)
 
void printlayers (bool print_total=true, float minval=0., float maxval=0., std::string s="layer")
 
void printonline ()
 
void reset ()
 
void save (bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
 
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 save_as_fedtrackermap (bool print_total=true, float minval=0., float maxval=0., std::string s="fed_svgmap.svg", int width=100+(90+100) *31+300, int height=150+(2940+150) *1+300)
 
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)
 
void save_as_psutrackermap (bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=100+(360+100) *5+300, int height=50+(150+50) *6+300)
 
void setPalette (int numpalette)
 
void setRange (float min, float max)
 
void setText (int idmod, std::string s)
 
void setText (int layer, int ring, int nmod, std::string s)
 
void setTitle (std::string s)
 
void showPalette (bool printflag1)
 
 TrackerMap (std::string s=" ", int xsize1=340, int ysize1=200)
 
 TrackerMap (const edm::ParameterSet &iConfig)
 
 TrackerMap (const edm::ParameterSet &iConfig, const SiStripFedCabling *tkFed, const TrackerTopology *const topology)
 
double xdpixel (double x)
 
double xdpixelc (double x)
 
double xdpixelfec (double x)
 
double xdpixelpsu (double x)
 
double ydpixel (double y)
 
double ydpixelc (double y)
 
double ydpixelfec (double y)
 
double ydpixelpsu (double y)
 
 ~TrackerMap ()
 default destructor More...
 

Static Public Member Functions

static bool isRingStereo (int key)
 
static int layerno (int subdet, int leftright, int layer)
 

Public Attributes

SvgApvPair apvMap
 
ModApvPair apvModuleMap
 
MapCcu ccuMap
 
bool enableFecProcessing
 
bool enableFedProcessing
 
bool enableHVProcessing
 
bool enableLVProcessing
 
FecModule fecModuleMap
 
SvgFed fedMap
 
int firstRing [43]
 
ImoduleMap imoduleMap
 
std::string infilename
 
std::string jsfilename
 
std::string jsPath
 
int ndet
 
int npart
 
int ntotRing [43]
 
int palette
 
bool printflag
 
bool psetAvailable
 
MapPsu psuMap
 
PsuModule psuModuleMap
 
bool saveGeoTrackerMap
 
bool saveWebInterface
 
SvgFed slotMap
 
SmoduleMap smoduleMap
 
std::string title
 
bool tkMapLog
 
std::vector< TColor * > vc
 

Protected Attributes

std::ifstream * ccufile
 
bool firstcall
 
int firstcrate
 
float gmaxvalue
 
float gminvalue
 
std::ifstream * inputfile
 
int ix
 
int iy
 
std::ifstream * jsfile
 
float maxvalue
 
float minvalue
 
int ncrates
 
int nfeccrates
 
int nlay
 
int npsuracks
 
int number_modules
 
bool posrel
 
std::ofstream * savefile
 
std::ofstream * svgfile
 
bool temporary_file
 
double xmax
 
double xmin
 
int xsize
 
double ymax
 
double ymin
 
int ysize
 

Private Member Functions

TLegend * buildLegend ()
 

Private Attributes

bool addPixelFlag
 
std::vector< TPolyLine * > legInfos_
 
std::vector< std::string > legKeys_
 
float oldz
 
bool onlyPixelFlag
 
bool saveAsSingleLayer
 

Detailed Description

Definition at line 76 of file TrackerMap.h.

Member Typedef Documentation

◆ FecModule

typedef std::multimap<TmCcu*, TmModule*> TrackerMap::FecModule

Definition at line 184 of file TrackerMap.h.

◆ ImoduleMap

typedef std::map<const int, TmModule*> TrackerMap::ImoduleMap

Definition at line 173 of file TrackerMap.h.

◆ MapCcu

typedef std::map<const int, TmCcu*> TrackerMap::MapCcu

Definition at line 182 of file TrackerMap.h.

◆ MapPsu

typedef std::map<const int, TmPsu*> TrackerMap::MapPsu

Definition at line 186 of file TrackerMap.h.

◆ ModApvPair

typedef std::multimap<const int, TmApvPair*> TrackerMap::ModApvPair

Definition at line 177 of file TrackerMap.h.

◆ PsuModule

typedef std::multimap<TmPsu*, TmModule*> TrackerMap::PsuModule

Definition at line 188 of file TrackerMap.h.

◆ SmoduleMap

typedef std::map<const int, TmModule*> TrackerMap::SmoduleMap

Definition at line 171 of file TrackerMap.h.

◆ SvgApvPair

typedef std::map<const int, TmApvPair*> TrackerMap::SvgApvPair

Definition at line 175 of file TrackerMap.h.

◆ SvgFed

typedef std::map<const int, int> TrackerMap::SvgFed

Definition at line 179 of file TrackerMap.h.

Constructor & Destructor Documentation

◆ TrackerMap() [1/3]

TrackerMap::TrackerMap ( std::string  s = " ",
int  xsize1 = 340,
int  ysize1 = 200 
)

Definition at line 443 of file TrackerMap.cc.

References enableFecProcessing, enableFedProcessing, enableHVProcessing, enableLVProcessing, infilename, init(), jsfilename, jsPath, psetAvailable, alignCSCRings::s, saveAsSingleLayer, saveGeoTrackerMap, saveWebInterface, title, tkMapLog, xsize, and ysize.

443  {
444  psetAvailable = false;
445  xsize = xsize1;
446  ysize = ysize1;
447  title = s;
448  jsfilename = "CommonTools/TrackerMap/data/trackermap.txt";
449  infilename = "CommonTools/TrackerMap/data/tracker.dat";
450  saveWebInterface = false;
451  saveGeoTrackerMap = true;
452  tkMapLog = false;
453  jsPath = "CommonTools/TrackerMap/data/";
454  enableFedProcessing = false;
455  enableFecProcessing = false;
456  enableLVProcessing = false;
457  enableHVProcessing = false;
458  saveAsSingleLayer = false;
459  init();
460 }
bool tkMapLog
Definition: TrackerMap.h:198
bool psetAvailable
Definition: TrackerMap.h:204
bool saveGeoTrackerMap
Definition: TrackerMap.h:193
bool enableFecProcessing
Definition: TrackerMap.h:195
bool saveWebInterface
Definition: TrackerMap.h:192
std::string infilename
Definition: TrackerMap.h:202
bool enableFedProcessing
Definition: TrackerMap.h:194
std::string jsPath
Definition: TrackerMap.h:203
bool enableHVProcessing
Definition: TrackerMap.h:197
bool saveAsSingleLayer
Definition: TrackerMap.h:681
void init()
Definition: TrackerMap.cc:472
std::string title
Definition: TrackerMap.h:201
bool enableLVProcessing
Definition: TrackerMap.h:196
std::string jsfilename
Definition: TrackerMap.h:202

◆ TrackerMap() [2/3]

TrackerMap::TrackerMap ( const edm::ParameterSet iConfig)

Definition at line 418 of file TrackerMap.cc.

References gather_cfg::cout, enableFedProcessing, firstcrate, edm::ParameterSet::getUntrackedParameter(), infilename, init(), jsfilename, ncrates, psetAvailable, saveAsSingleLayer, saveGeoTrackerMap, saveWebInterface, AlCaHLTBitMon_QueryRunRegistry::string, title, tkMapLog, xsize, and ysize.

418  {
419  psetAvailable = true;
420  xsize = 340;
421  ysize = 200;
422  title = " ";
423  jsfilename = "CommonTools/TrackerMap/data/trackermap.txt";
424  infilename = "CommonTools/TrackerMap/data/tracker.dat";
425  enableFedProcessing = true;
426  ncrates = 0;
427  firstcrate = 0;
428  saveAsSingleLayer = false;
429  tkMapLog = tkmapPset.getUntrackedParameter<bool>("logScale", false);
430  saveWebInterface = tkmapPset.getUntrackedParameter<bool>("saveWebInterface", false);
431  saveGeoTrackerMap = tkmapPset.getUntrackedParameter<bool>("saveGeoTrackerMap", true);
432  // if(tkmapPset.exists("trackermaptxtPath")){
433  jsfilename = tkmapPset.getUntrackedParameter<std::string>("trackermaptxtPath", "CommonTools/TrackerMap/data/") +
434  "trackermap.txt";
435  std::cout << jsfilename << std::endl;
436  infilename =
437  tkmapPset.getUntrackedParameter<std::string>("trackerdatPath", "CommonTools/TrackerMap/data/") + "tracker.dat";
438  std::cout << infilename << std::endl;
439  // } else std::cout << "no parameters found" << std::endl;
440  init();
441 }
bool tkMapLog
Definition: TrackerMap.h:198
bool psetAvailable
Definition: TrackerMap.h:204
bool saveGeoTrackerMap
Definition: TrackerMap.h:193
bool saveWebInterface
Definition: TrackerMap.h:192
std::string infilename
Definition: TrackerMap.h:202
bool enableFedProcessing
Definition: TrackerMap.h:194
bool saveAsSingleLayer
Definition: TrackerMap.h:681
void init()
Definition: TrackerMap.cc:472
int firstcrate
Definition: TrackerMap.h:662
std::string title
Definition: TrackerMap.h:201
std::string jsfilename
Definition: TrackerMap.h:202

◆ TrackerMap() [3/3]

TrackerMap::TrackerMap ( const edm::ParameterSet iConfig,
const SiStripFedCabling tkFed,
const TrackerTopology *const  topology 
)

Definition at line 36 of file TrackerMap.cc.

References generateTowerEtThresholdLUT::addr, apvMap, apvModuleMap, MicroEventContent_cff::branch, TmModule::CcuId, ccuMap, TmCcu::cmodid, TmPsu::cmodid_HV2, TmPsu::cmodid_HV3, TmPsu::cmodid_LV, gather_cfg::cout, TmApvPair::crate, SiStripFecCabling::crates(), enableFecProcessing, enableFedProcessing, enableHVProcessing, enableLVProcessing, fecModuleMap, SiStripFedCabling::fedConnections(), SiStripFedCabling::fedIds(), fedMap, l1tstage2emulator_dqm_sourceclient-live_cfg::feds, firstcrate, contentValuesFiles::fullPath, TmCcu::getCcuCrate(), TmCcu::getCcuRing(), TmCcu::getCcuSlot(), SiStripDetCabling::getConnections(), TmApvPair::getFedCh(), TmApvPair::getFedId(), TmPsu::getPsuBoard(), TmPsu::getPsuBranch(), TmPsu::getPsuCrate(), TmPsu::getPsuDcs(), TmPsu::getPsuRack(), edm::ParameterSet::getUntrackedParameter(), TmModule::HVchannel, TmPsu::idex, TmCcu::idex, TmApvPair::idex, B2GTnPMonitor_cfi::idmod, imoduleMap, recoMuon::in, infilename, init(), sistrip::invalid32_, sistrip::invalid_, jsfilename, jsPath, crabWrapper::key, TmCcu::layer, nano_mu_digi_cff::layer, TmModule::layer, mod(), TmApvPair::mod, TmApvPair::mpos, TmCcu::mpos, ncrates, nfeccrates, TmCcu::nmod, TmPsu::nmod, TmPsu::nmodHV2, TmPsu::nmodHV3, npsuracks, psetAvailable, TmPsu::psId, TmModule::PsuId, TmModule::psuIdex, psuMap, psuModuleMap, runTheMatrix::ret, relativeConstraints::ring, alignCSCRings::s, saveAsSingleLayer, saveGeoTrackerMap, saveWebInterface, slotMap, AlCaHLTBitMon_QueryRunRegistry::string, TmCcu::text, TmApvPair::text, TmPsu::text, TmPsu::textHV2, TmPsu::textHV3, title, tkMapLog, xsize, and ysize.

38  {
39  psetAvailable = true;
40  xsize = 340;
41  ysize = 200;
42 
43  title = " ";
44  jsPath = "";
45  jsfilename = "CommonTools/TrackerMap/data/trackermap.txt";
46  infilename = "CommonTools/TrackerMap/data/tracker.dat";
47  saveAsSingleLayer = false;
48  tkMapLog = false;
49  // if(tkmapPset.exists("trackermaptxtPath")){
50  jsPath = tkmapPset.getUntrackedParameter<std::string>("trackermaptxtPath", "CommonTools/TrackerMap/data/");
51  jsfilename = jsPath + "trackermap.txt";
52  std::cout << jsfilename << std::endl;
53  infilename =
54  tkmapPset.getUntrackedParameter<std::string>("trackerdatPath", "CommonTools/TrackerMap/data/") + "tracker.dat";
55  std::cout << infilename << std::endl;
56  saveWebInterface = tkmapPset.getUntrackedParameter<bool>("saveWebInterface", false);
57  saveGeoTrackerMap = tkmapPset.getUntrackedParameter<bool>("saveGeoTrackerMap", true);
58  ncrates = 0;
59  firstcrate = 0;
60  enableFedProcessing = tkmapPset.getUntrackedParameter<bool>("loadFedCabling", false);
61  if (tkFed == nullptr && enableFedProcessing) {
62  enableFedProcessing = false;
63  std::cout << "ERROR:fed trackermap requested but no valid fedCabling is available!!!" << std::endl;
64  }
65  nfeccrates = 0;
66  enableFecProcessing = tkmapPset.getUntrackedParameter<bool>("loadFecCabling", false);
67  if (tkFed == nullptr && enableFecProcessing) {
68  enableFecProcessing = false;
69  std::cout << "ERROR:fec trackermap requested but no valid fedCabling is available!!!" << std::endl;
70  }
71  // std::cout << "loadFecCabling " << enableFecProcessing << std::endl;
72  npsuracks = 0;
73  enableLVProcessing = tkmapPset.getUntrackedParameter<bool>("loadLVCabling", false);
74  // std::cout << "loadLVCabling " << enableLVProcessing << std::endl;
75  enableHVProcessing = tkmapPset.getUntrackedParameter<bool>("loadHVCabling", false);
76  // std::cout << "loadHVCabling " << enableHVProcessing << std::endl;
77  tkMapLog = tkmapPset.getUntrackedParameter<bool>("logScale", false);
78  // } else std::cout << "no parameters found" << std::endl;
79 
80  init();
81  // Now load fed cabling information
82  if (enableFedProcessing) {
83  auto feds = tkFed->fedIds();
84  std::cout << "SiStripFedCabling has " << feds.size() << " active FEDS" << std::endl;
85  // int num_board=0;
86  // int num_crate=0;
87  for (std::vector<unsigned short>::const_iterator ifed = feds.begin(); ifed < feds.end(); ifed++) {
88  auto theconn = tkFed->fedConnections(*ifed);
89  int num_conn = 0;
90  for (auto iconn = theconn.begin(); iconn < theconn.end(); iconn++) {
91  if (iconn->fedId() == sistrip::invalid_ || iconn->detId() == sistrip::invalid_ ||
92  iconn->detId() == sistrip::invalid32_ || iconn->apvPairNumber() == sistrip::invalid_ ||
93  iconn->nApvPairs() == sistrip::invalid_) {
94  continue;
95  }
96 
97  TmModule *imod = imoduleMap[iconn->detId()];
98  int key = iconn->fedId() * 1000 + iconn->fedCh();
99  TmApvPair *apvpair = apvMap[key];
100  if (apvpair != nullptr)
101  std::cout << "Fed " << iconn->fedId() << " channel " << iconn->fedCh() << " seem to be already loaded!"
102  << std::endl;
103  else {
104  num_conn++;
105  if (num_conn == 1) {
106  // if(fedMap[iconn->fedId()]==0){num_crate=num_board/18+1;fedMap[iconn->fedId()]=num_crate;num_board++;}
107  if (fedMap[iconn->fedId()] == 0) {
108  fedMap[iconn->fedId()] = iconn->fedCrate();
109  }
110  if (slotMap[iconn->fedId()] == 0) {
111  slotMap[iconn->fedId()] = iconn->fedSlot();
112  }
113  if (ncrates == 0 || ncrates < iconn->fedCrate())
114  ncrates = iconn->fedCrate();
115  if (firstcrate == 0 || firstcrate > iconn->fedCrate())
116  firstcrate = iconn->fedCrate();
117  }
118 
119  // apvpair = new TmApvPair(key,num_crate);
120  apvpair = new TmApvPair(key, iconn->fedCrate());
121  apvpair->mod = imod;
122  apvpair->mpos = iconn->apvPairNumber();
123  apvMap[key] = apvpair;
124  apvModuleMap.insert(std::make_pair(iconn->detId(), apvpair));
125  std::stringstream s;
126  iconn->print(s);
127  apvpair->text = s.str();
128  }
129  }
130  }
131  // ncrates=num_crate;
132  std::cout << "from " << firstcrate << " to " << ncrates << " crates used " << std::endl;
133  //Now add APv information to module name
134  std::map<int, TmModule *>::iterator i_mod;
135  for (i_mod = imoduleMap.begin(); i_mod != imoduleMap.end(); i_mod++) {
136  TmModule *mod = i_mod->second;
137  if (mod != nullptr) {
138  std::ostringstream outs, outs1;
139  outs << " connected to ";
140  outs1 << "(";
141 
142  int idmod = mod->idex;
143  int nchan = 0;
144  std::multimap<const int, TmApvPair *>::iterator pos;
145  for (pos = apvModuleMap.lower_bound(idmod); pos != apvModuleMap.upper_bound(idmod); ++pos) {
146  TmApvPair *apvpair = pos->second;
147  if (apvpair != nullptr) {
148  outs << apvpair->mpos << " " << apvpair->getFedId() << "/" << apvpair->getFedCh() << " ";
149  outs1 << apvpair->idex + apvpair->crate * 1000000 << ",";
150  nchan++;
151  }
152  }
153  outs << "(" << nchan << ")";
154  mod->name = mod->name + outs.str();
155  std::string s = outs1.str();
156  s.erase(s.end() - 1, s.end());
157  mod->capvids = s + ")";
158  }
159  }
160  }
161  // Now load fec cabling information
162  if (enableFecProcessing) {
163  int nccu;
164  int nmod;
165  int crate, slot, ring, addr, pos;
166  SiStripFecCabling *fecCabling_;
167  fecCabling_ = new SiStripFecCabling(*tkFed);
168  std::string Ccufilename = tkmapPset.getUntrackedParameter<std::string>("trackerdatPath", "") + "cculist.txt";
169  std::ifstream Ccufile(edm::FileInPath(Ccufilename).fullPath().c_str(), std::ios::in);
170  std::string dummys;
171  while (!Ccufile.eof()) {
172  Ccufile >> crate >> slot >> ring >> addr >> pos;
173  getline(Ccufile, dummys);
174  int key = crate * 10000000 + slot * 100000 + ring * 1000 + addr;
175  TmCcu *ccu = ccuMap[key];
176  if (ccu == nullptr) {
177  ccu = new TmCcu(crate, slot, ring, addr);
178  ccu->mpos = pos, ccuMap[key] = ccu;
179  }
180  }
181 
182  for (std::vector<SiStripFecCrate>::const_iterator icrate = fecCabling_->crates().begin();
183  icrate != fecCabling_->crates().end();
184  icrate++) {
185  for (std::vector<SiStripFec>::const_iterator ifec = icrate->fecs().begin(); ifec != icrate->fecs().end();
186  ifec++) {
187  for (std::vector<SiStripRing>::const_iterator iring = ifec->rings().begin(); iring != ifec->rings().end();
188  iring++) {
189  nccu = 0;
190  for (std::vector<SiStripCcu>::const_iterator iccu = iring->ccus().begin(); iccu != iring->ccus().end();
191  iccu++) {
192  nccu++;
193  nmod = 0;
194  int key =
195  icrate->fecCrate() * 10000000 + ifec->fecSlot() * 100000 + iring->fecRing() * 1000 + iccu->ccuAddr();
196  int layer = 0;
197  TmCcu *ccu = ccuMap[key];
198  for (std::vector<SiStripModule>::const_iterator imod = iccu->modules().begin();
199  imod != iccu->modules().end();
200  imod++) {
201  nmod++;
202  TmModule *imod1 = imoduleMap[imod->detId()];
203  layer = imod1->layer;
204  fecModuleMap.insert(std::make_pair(ccu, imod1));
205  if (imod1 != nullptr)
206  imod1->CcuId = key; //imod1->ccuId=key+Crate*1000000
207  }
208  if (ccu == nullptr)
209  std::cout << key << " This ccu seems to have not been stored! " << std::endl;
210  else {
211  ccu->nmod = nmod;
212  ccu->layer = layer;
213  }
214  }
215  }
216  }
217  }
218 
219  std::map<int, TmCcu *>::iterator i_ccu;
220  std::multimap<TmCcu *, TmModule *>::iterator it;
221  std::pair<std::multimap<TmCcu *, TmModule *>::iterator, std::multimap<TmCcu *, TmModule *>::iterator> ret;
222  nccu = 0;
223  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
224  TmCcu *ccu = i_ccu->second;
225  nccu++;
226  if (ccu != nullptr) {
227  std::ostringstream outs;
228  std::ostringstream outs1;
229  outs << "CCU " << ccu->idex << " connected to fec,ring " << ccu->getCcuSlot() << "," << ccu->getCcuRing()
230  << " in crate " << ccu->getCcuCrate() << " at position " << ccu->mpos << " with " << ccu->nmod
231  << " modules: ";
232  outs1 << "(";
233  ret = fecModuleMap.equal_range(ccu);
234  for (it = ret.first; it != ret.second; ++it) {
235  outs << (*it).second->idex << " ";
236  outs1 << (*it).second->getKey() << ",";
237  }
238  outs1 << ")";
239  ccu->text = outs.str();
240  ccu->cmodid = outs1.str();
241  //std::cout << ccu->text << std::endl;
242  }
243  }
244  nfeccrates = 4;
245  std::cout << nccu << " ccu stored in " << nfeccrates << " crates" << std::endl;
246 
247  delete fecCabling_;
248  }
249  //load Psu cabling info
250  //load Psu cabling info
252  SiStripDetCabling *detCabling = nullptr;
254  detCabling = new SiStripDetCabling(*tkFed, topology);
255 
256  int npsu = 0;
257  int nmod, nmodHV2, nmodHV3;
258  int modId1, dcuId; // ,modId2;
259  int dcs, branch, crate, board;
260  int rack = 0;
261  std::string channelstr1;
262  short int channel;
263  std::string psinfo;
264  std::string psIdinfo;
265  int rack_order[54] = {0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 6, 0, 7, 8, 0, 9, 10, 0,
266  11, 12, 0, 13, 14, 0, 15, 0, 0, 0, 0, 0, 0, 16, 0, 17, 18, 0,
267  19, 20, 0, 21, 0, 22, 0, 23, 0, 24, 25, 0, 26, 27, 0, 28, 0, 29};
268  // std::ifstream *LVfile;
269  // std::ifstream *HVfile;
270 
271  std::string LVfilename =
272  tkmapPset.getUntrackedParameter<std::string>("trackerdatPath", "CommonTools/TrackerMap/data/") + "psdcumap.dat";
273  //std::string HVfilename=tkmapPset.getUntrackedParameter<std::string>("trackerdatPath","")+"hvmap.dat";
274 
275  std::ifstream LVfile(edm::FileInPath(LVfilename).fullPath().c_str(), std::ios::in);
276 
277  std::cout << LVfilename << std::endl;
278 
279  /*
280  if(enableHVProcessing){
281  std::ifstream HVfile(edm::FileInPath(HVfilename).fullPath().c_str(),std::ios::in);
282  while(!HVfile.eof()) {
283  HVfile >> modId2 >> channelstr1;
284  std::string channelstr2 = channelstr1.substr(9,1);
285  channel= atoi(channelstr2.c_str());
286  TmModule *imod = imoduleMap[modId2];
287  // if(modId1==modId2){
288  imod->HVchannel=channel;
289 
290  }
291 
292  }
293 */
294 
295  while (!LVfile.eof()) {
296  LVfile >> modId1 >> dcuId >> psIdinfo >> psinfo;
297 
298  if (detCabling && detCabling->getConnections(modId1).empty())
299  continue;
300 
301  // int length=psinfo.length();
302  std::string dcsinfo = psinfo.substr(39, 1);
303  std::string branchinfo = psinfo.substr(57, 2);
304  std::string crateinfo = psinfo.substr(69, 1);
305  std::string boardinfo = psinfo.substr(80, 2);
306  std::string channelinfo = psinfo.substr(90, 3);
307 
308  dcs = atoi(dcsinfo.c_str());
309  branch = atoi(branchinfo.c_str());
310  crate = atoi(crateinfo.c_str()) + 1;
311  board = atoi(boardinfo.c_str()) + 1;
312  rack = (branch + 1) + (dcs - 1) * 6;
313  rack = rack_order[rack];
314  channel = atoi(channelinfo.c_str());
315  // std::cout << dcs << " " << branch<< " " <<crate<< " " << board<<" " << rack << std::endl;
316  int key = rack * 1000 + crate * 100 + board;
317 
318  TmPsu *psu = psuMap[key];
319  TmModule *imod = imoduleMap[modId1];
320  if (psu == nullptr) {
321  psu = new TmPsu(dcs, branch, rack, crate, board);
322  psuMap[key] = psu;
323  psu->psId = psIdinfo;
324  }
325 
326  psuModuleMap.insert(std::make_pair(psu, imod));
327  if (imod != nullptr) {
328  imod->PsuId = psIdinfo;
329  imod->psuIdex = psu->idex;
330  imod->HVchannel = channel;
331  }
332  }
333 
334  // int nmax=0;
335  std::map<int, TmPsu *>::iterator ipsu;
336  std::multimap<TmPsu *, TmModule *>::iterator it;
337  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
338  npsu = 0;
339 
340  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
341  TmPsu *psu = ipsu->second;
342  npsu++;
343 
344  if (psu != nullptr) {
345  std::ostringstream outs;
346  std::ostringstream outs1;
347 
348  std::ostringstream outs3;
349  std::ostringstream outs4;
350 
351  std::ostringstream outs5;
352  std::ostringstream outs6;
353 
354  outs << "PSU " << psu->psId << " connected to Mainframe " << psu->getPsuDcs() << " BranchController "
355  << psu->getPsuBranch() << " (Rack " << psu->getPsuRack() << "), crate " << psu->getPsuCrate()
356  << " in position " << psu->getPsuBoard() << " with modules: ";
357  outs1 << "(";
358 
359  if (enableHVProcessing) {
360  outs3 << "PSU " << psu->psId << " connected to Mainframe " << psu->getPsuDcs() << " BranchController "
361  << psu->getPsuBranch() << " (Rack " << psu->getPsuRack() << "),crate " << psu->getPsuCrate()
362  << " in position " << psu->getPsuBoard() << " and HV channel 002 with modules: ";
363  outs4 << "(";
364 
365  outs5 << "PSU " << psu->psId << " connected to Mainframe " << psu->getPsuDcs() << " BranchController "
366  << psu->getPsuBranch() << " (Rack " << psu->getPsuRack() << "), crate " << psu->getPsuCrate()
367  << " in position " << psu->getPsuBoard() << " and HV channel 002 with modules: ";
368  outs6 << "(";
369  }
370 
371  ret = psuModuleMap.equal_range(psu);
372  nmod = 0;
373  nmodHV2 = 0;
374  nmodHV3 = 0;
375  for (it = ret.first; it != ret.second; ++it) {
376  nmod++;
377  outs << (*it).second->idex << ", ";
378  outs1 << (*it).second->getKey() << ",";
379 
380  if (enableHVProcessing) {
381  if ((*it).second->HVchannel == 2) {
382  nmodHV2++;
383  outs3 << (*it).second->idex << ", ";
384  outs4 << (*it).second->getKey() << ",";
385  } else if ((*it).second->HVchannel == 3) {
386  nmodHV3++;
387  outs5 << (*it).second->idex << ", ";
388  outs6 << (*it).second->getKey() << ",";
389  }
390  }
391  }
392 
393  outs1 << ")";
394  psu->nmod = nmod;
395  outs << "(" << psu->nmod << ")";
396  psu->text = outs.str();
397  psu->cmodid_LV = outs1.str();
398  if (enableHVProcessing) {
399  outs4 << ")";
400  outs6 << ")";
401  psu->nmodHV2 = nmodHV2;
402  psu->nmodHV3 = nmodHV3;
403  outs3 << "(" << psu->nmodHV2 << ")";
404  outs5 << "(" << psu->nmodHV3 << ")";
405  psu->textHV2 = outs3.str();
406  psu->textHV3 = outs5.str();
407  psu->cmodid_HV2 = outs4.str();
408  psu->cmodid_HV3 = outs6.str();
409  }
410  }
411  }
412 
413  npsuracks = 29;
414  std::cout << npsu << " psu stored in " << npsuracks << " racks" << std::endl;
415  }
416 }
TmModule * mod
Definition: TmApvPair.h:16
bool tkMapLog
Definition: TrackerMap.h:198
std::string text
Definition: TmApvPair.h:12
int getPsuBranch()
Definition: TmPsu.h:17
ModApvPair apvModuleMap
Definition: TrackerMap.h:178
int nfeccrates
Definition: TrackerMap.h:663
MapCcu ccuMap
Definition: TrackerMap.h:183
int mpos
Definition: TmApvPair.h:17
std::string cmodid_HV2
Definition: TmPsu.h:50
int nmodHV3
Definition: TmPsu.h:48
bool psetAvailable
Definition: TrackerMap.h:204
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
int idex
Definition: TmPsu.h:11
std::string cmodid
Definition: TmCcu.h:15
static const uint32_t invalid32_
Definition: Constants.h:15
bool saveGeoTrackerMap
Definition: TrackerMap.h:193
ret
prodAgent to be discontinued
bool enableFecProcessing
Definition: TrackerMap.h:195
int layer
Definition: TmCcu.h:16
int getCcuRing()
Definition: TmCcu.h:27
bool saveWebInterface
Definition: TrackerMap.h:192
std::string infilename
Definition: TrackerMap.h:202
int npsuracks
Definition: TrackerMap.h:664
int getPsuBoard()
Definition: TmPsu.h:31
bool enableFedProcessing
Definition: TrackerMap.h:194
int layer
Definition: TmModule.h:27
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
int nmod
Definition: TmCcu.h:14
std::string jsPath
Definition: TrackerMap.h:203
bool enableHVProcessing
Definition: TrackerMap.h:197
int getFedId()
Definition: TmApvPair.h:22
int getPsuDcs()
Definition: TmPsu.h:13
int getCcuSlot()
Definition: TmCcu.h:22
int nmod
Definition: TmPsu.h:46
std::string PsuId
Definition: TmModule.h:17
bool saveAsSingleLayer
Definition: TrackerMap.h:681
int getCcuCrate()
Definition: TmCcu.h:18
const std::vector< SiStripFecCrate > & crates() const
int getPsuRack()
Definition: TmPsu.h:22
int nmodHV2
Definition: TmPsu.h:47
void init()
Definition: TrackerMap.cc:472
std::string psId
Definition: TmPsu.h:12
int psuIdex
Definition: TmModule.h:18
SvgFed slotMap
Definition: TrackerMap.h:181
int mpos
Definition: TmCcu.h:17
short int HVchannel
Definition: TmModule.h:19
int CcuId
Definition: TmModule.h:16
SvgFed fedMap
Definition: TrackerMap.h:180
PsuModule psuModuleMap
Definition: TrackerMap.h:189
std::string cmodid_HV3
Definition: TmPsu.h:51
static const uint16_t invalid_
Definition: Constants.h:16
int crate
Definition: TmApvPair.h:15
int firstcrate
Definition: TrackerMap.h:662
FecModule fecModuleMap
Definition: TrackerMap.h:185
std::string title
Definition: TrackerMap.h:201
int idex
Definition: TmCcu.h:12
std::string textHV3
Definition: TmPsu.h:54
SvgApvPair apvMap
Definition: TrackerMap.h:176
std::string text
Definition: TmPsu.h:52
int idex
Definition: TmApvPair.h:14
std::string cmodid_LV
Definition: TmPsu.h:49
bool enableLVProcessing
Definition: TrackerMap.h:196
std::string textHV2
Definition: TmPsu.h:53
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmCcu.h:4
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
std::string text
Definition: TmCcu.h:10
Definition: TmPsu.h:6
FedsConstIterRange fedIds() const
ConnsConstIterRange fedConnections(uint16_t fed_id) const
int getFedCh()
Definition: TmApvPair.h:18
int getPsuCrate()
Definition: TmPsu.h:26
std::string jsfilename
Definition: TrackerMap.h:202

◆ ~TrackerMap()

TrackerMap::~TrackerMap ( )

default destructor

Definition at line 525 of file TrackerMap.cc.

References apvMap, ccuMap, firstRing, crabWrapper::key, nano_mu_digi_cff::layer, mod(), module(), ntotRing, psuMap, relativeConstraints::ring, and smoduleMap.

525  {
526  for (int layer = 1; layer < 44; layer++) {
527  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
528  for (int module = 1; module < 200; module++) {
529  int key = layer * 100000 + ring * 1000 + module;
531  if (mod != nullptr)
532  delete mod;
533  }
534  }
535  }
536 
537  //std::map<int , TmModule *>::iterator i_mod;
538  // for( i_mod=imoduleMap.begin();i_mod !=imoduleMap.end(); i_mod++){
539  // TmModule * mod= i_mod->second;
540  // delete mod;
541  // }
542  std::map<int, TmApvPair *>::iterator i_apv;
543  for (i_apv = apvMap.begin(); i_apv != apvMap.end(); i_apv++) {
544  TmApvPair *apvPair = i_apv->second;
545  delete apvPair;
546  }
547 
548  std::map<int, TmCcu *>::iterator i_ccu;
549  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
550  TmCcu *ccu = i_ccu->second;
551  delete ccu;
552  }
553 
554  std::map<int, TmPsu *>::iterator ipsu;
555  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
556  TmPsu *psu = ipsu->second;
557  delete psu;
558  }
559 }
MapCcu ccuMap
Definition: TrackerMap.h:183
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
int firstRing[43]
Definition: TrackerMap.h:655
SvgApvPair apvMap
Definition: TrackerMap.h:176
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmCcu.h:4
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
Definition: TmPsu.h:6
int ntotRing[43]
Definition: TrackerMap.h:654

Member Function Documentation

◆ addPixel()

void TrackerMap::addPixel ( bool  addPixelfl)
inline

Definition at line 161 of file TrackerMap.h.

References addPixelFlag.

Referenced by DetIdSelectorTest::DetIdSelectorTest().

161 { addPixelFlag = addPixelfl; };
bool addPixelFlag
Definition: TrackerMap.h:682

◆ build()

void TrackerMap::build ( )

Definition at line 3470 of file TrackerMap.cc.

References gather_cfg::cout, contentValuesFiles::fullPath, imoduleMap, recoMuon::in, timingPdfMaker::infile, infilename, crabWrapper::key, nano_mu_digi_cff::layer, mod(), Skims_PA_cff::name, number_modules, relativeConstraints::ring, smoduleMap, AlCaHLTBitMon_QueryRunRegistry::string, Calorimetry_cff::thickness, and ApeEstimator_cff::width.

Referenced by init(), and psClasses.BuildThread::run().

3470  {
3471  // std::ifstream* infile;
3472 
3473  int nmods, pix_sil, fow_bar, ring, nmod, layer;
3474  unsigned int idex;
3475  float posx, posy, posz, length, width, thickness, widthAtHalfLength;
3476  int old_layer = 0, ntotMod = 0;
3477  std::string name, dummys;
3478  std::ifstream infile(edm::FileInPath(infilename).fullPath().c_str(), std::ios::in);
3479  while (!infile.eof()) {
3480  infile >> nmods >> pix_sil >> fow_bar >> layer >> ring >> nmod >> posx >> posy >> posz >> length >> width >>
3481  thickness >> widthAtHalfLength >> idex;
3482  getline(infile, dummys); //necessary to reach end of record
3483  getline(infile, name);
3484  if (old_layer != layer) {
3485  old_layer = layer;
3486  }
3487  ntotMod++;
3488  int key = layer * 100000 + ring * 1000 + nmod;
3489  TmModule *mod = smoduleMap[key];
3490 
3491  imoduleMap[idex] = mod;
3492 
3493  if (mod == nullptr)
3494  std::cout << "error in module " << key << std::endl;
3495  else {
3496  mod->posx = posx;
3497  mod->posy = posy;
3498  mod->setUsed();
3499  mod->value = 0;
3500  mod->count = 0;
3501  mod->posz = posz;
3502  mod->length = length;
3503  mod->width = width;
3504  mod->thickness = thickness;
3505  mod->widthAtHalfLength = widthAtHalfLength;
3506  mod->idex = idex;
3507  mod->name = name;
3508  }
3509  }
3510  infile.close();
3511  number_modules = ntotMod - 1;
3512 }
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int number_modules
Definition: TrackerMap.h:676
std::string infilename
Definition: TrackerMap.h:202
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ buildLegend()

TLegend * TrackerMap::buildLegend ( )
private

Definition at line 4449 of file TrackerMap.cc.

References mps_fire::i, legInfos_, and legKeys_.

Referenced by save().

4449  {
4450  if (legInfos_.empty()) {
4451  legInfos_.reserve(8);
4452 
4453  legInfos_.push_back(new TPolyLine(0));
4454  legInfos_.back()->SetFillColor(kGreen);
4455  legInfos_.push_back(new TPolyLine(0));
4456  legInfos_.back()->SetFillColor(kBlue - 9);
4457  legInfos_.push_back(new TPolyLine(0));
4458  legInfos_.back()->SetFillColor(kRed + 2);
4459  legInfos_.push_back(new TPolyLine(0));
4460  legInfos_.back()->SetFillColor(kPink - 9);
4461  legInfos_.push_back(new TPolyLine(0));
4462  legInfos_.back()->SetFillColor(kOrange + 2);
4463  legInfos_.push_back(new TPolyLine(0));
4464  legInfos_.back()->SetFillColor(kYellow);
4465  legInfos_.push_back(new TPolyLine(0));
4466  legInfos_.back()->SetFillColor(kRed + 1);
4467  legInfos_.push_back(new TPolyLine(0));
4468  legInfos_.back()->SetFillColor(kViolet - 5);
4469  legKeys_ = {"Good Modules",
4470  "Excluded FED",
4471  "FED errors",
4472  "# Clusters",
4473  "# Digis",
4474  "PCL bad",
4475  "# Clusters & Digis",
4476  "DCS Error"};
4477  }
4478 
4479  TLegend *myL = new TLegend(0.56, 0.87, 0.95, 0.99);
4480  myL->SetNColumns(2);
4481  myL->SetBorderSize(0);
4482  myL->SetFillColor(38);
4483  for (unsigned int i = 0; i < legInfos_.size(); i++) {
4484  myL->AddEntry((TObject *)legInfos_[i], legKeys_[i].c_str(), "f");
4485  }
4486  // myL->Draw();
4487  return myL;
4488 }
std::vector< TPolyLine * > legInfos_
Definition: TrackerMap.h:685
std::vector< std::string > legKeys_
Definition: TrackerMap.h:686

◆ defcwindow()

void TrackerMap::defcwindow ( int  num_crate)
inline

Definition at line 358 of file TrackerMap.h.

References ix, iy, NUMFED_INCOLUMN, NUMFED_INROW, NUMFEDCH_INCOLUMN, NUMFEDCH_INROW, NUMFEDCRATE_INCOLUMN, XFEDCSIZE, XFEDOFFSET, xmax, xmin, EcalSCDynamicDPhiParametersESProducer_cfi::xoffset, YFEDCSIZE, YFEDOFFSET, ymax, ymin, and EcalSCDynamicDPhiParametersESProducer_cfi::yoffset.

Referenced by save_as_fedtrackermap().

358  {
359  // ncrate = num_crate;
360  int xoffset = XFEDOFFSET;
361  int yoffset = YFEDOFFSET;
362  xmin = 0.;
364  ymin = 0.;
365  ymax = (NUMFEDCH_INROW + 1) * NUMFED_INROW;
366 
367  ix = xoffset + ((NUMFEDCRATE_INCOLUMN - 1) - ((num_crate - 1) % NUMFEDCRATE_INCOLUMN)) * (XFEDCSIZE + XFEDOFFSET);
368  iy = yoffset + ((num_crate - 1) / NUMFEDCRATE_INCOLUMN) * (YFEDCSIZE + YFEDOFFSET);
369  }
#define NUMFEDCRATE_INCOLUMN
Definition: TrackerMap.h:60
#define YFEDOFFSET
Definition: TrackerMap.h:67
double xmin
Definition: TrackerMap.h:665
#define NUMFEDCH_INCOLUMN
Definition: TrackerMap.h:54
#define YFEDCSIZE
Definition: TrackerMap.h:65
double ymax
Definition: TrackerMap.h:665
#define NUMFED_INCOLUMN
Definition: TrackerMap.h:56
#define XFEDCSIZE
Definition: TrackerMap.h:64
double xmax
Definition: TrackerMap.h:665
double ymin
Definition: TrackerMap.h:665
#define NUMFED_INROW
Definition: TrackerMap.h:57
#define XFEDOFFSET
Definition: TrackerMap.h:66
#define NUMFEDCH_INROW
Definition: TrackerMap.h:55

◆ deffecwindow()

void TrackerMap::deffecwindow ( int  num_crate)
inline

Definition at line 370 of file TrackerMap.h.

References ix, iy, xmax, xmin, EcalSCDynamicDPhiParametersESProducer_cfi::xoffset, xsize, ymax, ymin, EcalSCDynamicDPhiParametersESProducer_cfi::yoffset, and ysize.

Referenced by save_as_fectrackermap().

370  {
371  // ncrate = num_crate;
372  int xoffset = xsize / 3;
373  int yoffset = 2 * ysize;
374  xmin = -1.;
375  xmax = 37.;
376  ymin = -10.;
377  ymax = 40.;
378  if (num_crate == 1 || num_crate == 3)
379  ix = xoffset + xsize * 2;
380  if (num_crate == 2 || num_crate == 4)
381  ix = xoffset;
382  iy = yoffset + ((num_crate - 1) / 2) * ysize * 4;
383  }
double xmin
Definition: TrackerMap.h:665
double ymax
Definition: TrackerMap.h:665
double xmax
Definition: TrackerMap.h:665
double ymin
Definition: TrackerMap.h:665

◆ defpsuwindow()

void TrackerMap::defpsuwindow ( int  num_rack)
inline

Definition at line 384 of file TrackerMap.h.

References ix, iy, NUMPSUCH_INROW, NUMPSUCRATE_INCOLUMN, NUMPSURACK_INCOLUMN, xmax, xmin, EcalSCDynamicDPhiParametersESProducer_cfi::xoffset, XPSUOFFSET, XPSURSIZE, ymax, ymin, EcalSCDynamicDPhiParametersESProducer_cfi::yoffset, YPSUOFFSET, and YPSURSIZE.

Referenced by save_as_HVtrackermap(), and save_as_psutrackermap().

384  {
385  // nrack = num_rack;
386  int xoffset = XPSUOFFSET;
387  int yoffset = YPSUOFFSET;
388  xmin = 0;
389  xmax = (NUMPSUCRATE_INCOLUMN)*1.5;
390  ymin = 0;
392 
393  ix = xoffset + ((NUMPSURACK_INCOLUMN - 1) - ((num_rack - 1) % NUMPSURACK_INCOLUMN)) * (XPSURSIZE + XPSUOFFSET);
394  iy = yoffset + ((num_rack - 1) / NUMPSURACK_INCOLUMN) * (YPSURSIZE + YPSUOFFSET);
395  }
#define NUMPSURACK_INCOLUMN
Definition: TrackerMap.h:47
double xmin
Definition: TrackerMap.h:665
#define XPSURSIZE
Definition: TrackerMap.h:49
double ymax
Definition: TrackerMap.h:665
double xmax
Definition: TrackerMap.h:665
double ymin
Definition: TrackerMap.h:665
#define YPSUOFFSET
Definition: TrackerMap.h:52
#define NUMPSUCRATE_INCOLUMN
Definition: TrackerMap.h:46
#define YPSURSIZE
Definition: TrackerMap.h:50
#define XPSUOFFSET
Definition: TrackerMap.h:51
#define NUMPSUCH_INROW
Definition: TrackerMap.h:45

◆ defwindow()

void TrackerMap::defwindow ( int  num_lay)
inline

Definition at line 397 of file TrackerMap.h.

References createfilelist::int, ix, iy, posrel, xmax, xmin, xsize, ymax, ymin, and ysize.

Referenced by print(), printlayers(), and save().

397  {
398  // nlay = num_lay;
399  if (posrel) { // separated modules
400  xmin = -2.;
401  ymin = -2.;
402  xmax = 2.;
403  ymax = 2.;
404  if (num_lay > 12 && num_lay < 19) {
405  xmin = -.40;
406  xmax = .40;
407  ymin = -.40;
408  ymax = .40;
409  }
410  if (num_lay > 30) {
411  xmin = -0.1;
412  xmax = 3.;
413  ymin = -0.1;
414  ymax = 8.5;
415  if (num_lay < 34) {
416  xmin = -0.3;
417  xmax = 1.0;
418  }
419  if (num_lay > 33 && num_lay < 38) {
420  xmax = 2.0;
421  }
422  if (num_lay > 37) {
423  ymax = 8.;
424  } //inner
425  }
426  } else { //overlayed modules
427  xmin = -1.3;
428  ymin = -1.3;
429  xmax = 1.3;
430  ymax = 1.3;
431  if (num_lay > 12 && num_lay < 19) {
432  xmin = -.20;
433  xmax = .20;
434  ymin = -.20;
435  ymax = .20;
436  }
437  if (num_lay > 30) {
438  xmin = -1.5;
439  xmax = 1.5;
440  ymin = -1.;
441  ymax = 28.;
442  if (num_lay < 34) {
443  xmin = -0.5;
444  xmax = 0.5;
445  }
446  if (num_lay > 33 && num_lay < 38) {
447  xmin = -1.;
448  xmax = 1.;
449  }
450  }
451  }
452  if (num_lay < 16) {
453  ix = 0;
454  if (num_lay == 15 || num_lay == 14)
455  iy = (15 - num_lay) * 2 * ysize;
456  else {
457  if (num_lay > 9 && num_lay < 13)
458  iy = 4 * ysize - (int)(ysize / 2.) + (12 - num_lay) * (int)(ysize / 1.50);
459  else
460  iy = 6 * ysize + (9 - num_lay) * (int)(ysize * 1.3);
461  }
462  }
463  if (num_lay > 15 && num_lay < 31) {
464  ix = 3 * xsize;
465  if (num_lay == 16 || num_lay == 17)
466  iy = (num_lay - 16) * 2 * ysize;
467  else {
468  if (num_lay > 18 && num_lay < 22)
469  iy = 4 * ysize - (int)(ysize / 2.) + (num_lay - 19) * (int)(ysize / 1.50);
470  else
471  iy = 6 * ysize + (num_lay - 22) * (int)(ysize * 1.3);
472  }
473  }
474  if (num_lay > 30) {
475  if (num_lay == 31) {
476  ix = (int)(1.5 * xsize);
477  iy = 0;
478  }
479  if (num_lay == 32) {
480  int il = (num_lay - 30) / 2;
481  ix = xsize;
482  iy = il * 2 * ysize;
483  }
484  if (num_lay == 33) {
485  int il = (num_lay - 30) / 2;
486  ix = 2 * xsize;
487  iy = il * 2 * ysize;
488  }
489  if (num_lay == 34) {
490  int il = (num_lay - 30) / 2;
491  ix = xsize;
492  iy = il * (int)(2.57 * ysize);
493  }
494  if (num_lay > 34 && num_lay % 2 == 0) {
495  int il = (num_lay - 30) / 2;
496  ix = xsize;
497  iy = il * (int)(2.5 * ysize);
498  }
499  if (num_lay > 34 && num_lay % 2 != 0) {
500  int il = (num_lay - 30) / 2;
501  ix = 2 * xsize;
502  iy = il * (int)(2.5 * ysize);
503  }
504  }
505  }
double xmin
Definition: TrackerMap.h:665
bool posrel
Definition: TrackerMap.h:667
double ymax
Definition: TrackerMap.h:665
double xmax
Definition: TrackerMap.h:665
double ymin
Definition: TrackerMap.h:665

◆ drawApvPair()

void TrackerMap::drawApvPair ( int  crate,
int  numfed_incrate,
bool  total,
TmApvPair apvPair,
std::ofstream *  file,
bool  useApvPairValue 
)

Definition at line 1242 of file TrackerMap.cc.

References TmApvPair::blue, TmModule::blue, DivergingColor::blue, edmScanValgrind::buffer, TmModule::count, TmApvPair::count, PVValHelper::dx, PVValHelper::dy, getcolor(), TmApvPair::getFedCh(), TmApvPair::getFedId(), TmModule::getKey(), TmModule::green, TmApvPair::green, TmApvPair::idex, TmModule::idex, createfilelist::int, dqmiolumiharvest::j, dqmdumpme::k, TmApvPair::mod, TmModule::name, np, NUMFED_INCOLUMN, NUMFED_INROW, NUMFEDCH_INCOLUMN, NUMFEDCH_INROW, palette, TmApvPair::red, TmModule::red, DivergingColor::red, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, TmApvPair::value, TmModule::value, xdpixelc(), and ydpixelc().

Referenced by save_as_fedtrackermap().

1243  {
1244  double xp[4], yp[4];
1245  int color;
1246  int green = 0;
1247  int red = 0;
1248  int blue = 0;
1249  double xd[4], yd[4];
1250  int np = 4;
1251  double boxinitx = 0., boxinity = 0.;
1252  double dx = .9, dy = .9;
1253  /*
1254  int numfedch_incolumn = 12;
1255  int numfedch_inrow = 8;
1256  int numfed_incolumn = 6;
1257  int numfed_inrow = 4;
1258  */
1259  boxinitx = boxinitx + (NUMFED_INCOLUMN - 1 - (numfed_incrate - 1) / NUMFED_INROW) * (NUMFEDCH_INCOLUMN + 2);
1260  boxinity = boxinity + (NUMFED_INROW - 1 - (numfed_incrate - 1) % NUMFED_INROW) * (NUMFEDCH_INROW + 1);
1261  boxinity = boxinity + NUMFEDCH_INROW - (apvPair->getFedCh() / NUMFEDCH_INCOLUMN);
1262  boxinitx = boxinitx + NUMFEDCH_INCOLUMN - (int)(apvPair->getFedCh() % NUMFEDCH_INCOLUMN);
1263  // std::cout << crate << " " << numfed_incrate << " " << apvPair->getFedCh()<<" "<<boxinitx<< " " << boxinity << std::endl; ;
1264  xp[0] = boxinitx;
1265  yp[0] = boxinity;
1266  xp[1] = boxinitx + dx;
1267  yp[1] = boxinity;
1268  xp[2] = boxinitx + dx;
1269  yp[2] = boxinity + dy;
1270  xp[3] = boxinitx;
1271  yp[3] = boxinity + dy;
1272  for (int j = 0; j < 4; j++) {
1273  xd[j] = xdpixelc(xp[j]);
1274  yd[j] = ydpixelc(yp[j]);
1275  //std::cout << boxinity << " "<< ymax << " "<< yp[j] << std::endl;
1276  }
1277 
1278  char buffer[20];
1279  sprintf(buffer, "%X", apvPair->mod->idex);
1280  std::string s = apvPair->mod->name;
1281  s.erase(s.begin() + s.find("connected"), s.end());
1282 
1283  if (useApvPairValue) {
1284  if (apvPair->red < 0) { //use count to compute color
1285  if (apvPair->count > 0) {
1286  float vals = apvPair->value;
1287  std::string nams = "nams_apv";
1288 
1289  color = getcolor(apvPair->value, palette);
1290  red = (color >> 16) & 0xFF;
1291  green = (color >> 8) & 0xFF;
1292  blue = (color)&0xFF;
1293  if (!print_total)
1294  apvPair->value = apvPair->value * apvPair->count; //restore mod->value
1295  if (temporary_file)
1296  *svgfile << nams << " " << vals << " " << red << " " << green << " " << blue << " ";
1297  else
1298  *svgfile
1299  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1300  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1301  << apvPair->mod->getKey()
1302  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1303  "\" POS=\"Fed/Ch "
1304  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1305  << " \" fill=\"rgb(" << red << "," << green << "," << blue << ")\" points=\"";
1306  } else {
1307  if (temporary_file)
1308  *svgfile << 0 << " " << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1309  else
1310  *svgfile
1311  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1312  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1313  << apvPair->mod->getKey()
1314  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1315  "\" POS=\"Fed/Ch "
1316  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1317  << " \" fill=\"white\" points=\"";
1318  }
1319  } else { //color defined with fillc
1320  if (apvPair->red > 255)
1321  apvPair->red = 255;
1322  if (apvPair->green > 255)
1323  apvPair->green = 255;
1324  if (apvPair->blue > 255)
1325  apvPair->blue = 255;
1326  if (temporary_file)
1327  *svgfile << 0 << " " << 0 << " " << apvPair->red << " " << apvPair->green << " " << apvPair->blue << " ";
1328  else
1329  *svgfile
1330  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1331  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1332  << apvPair->mod->getKey()
1333  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1334  "\" POS=\"Fed/Ch "
1335  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1336  << " \" fill=\"rgb(" << apvPair->red << "," << apvPair->green << "," << apvPair->blue << ")\" points=\"";
1337  }
1338  } else {
1339  if (apvPair->mod->red < 0) { //use count to compute color
1340  if (apvPair->mod->count > 0) {
1341  float vals = apvPair->mod->value;
1342  std::string nams = "nams_apv2";
1343 
1344  color = getcolor(apvPair->mod->value, palette);
1345  red = (color >> 16) & 0xFF;
1346  green = (color >> 8) & 0xFF;
1347  blue = (color)&0xFF;
1348  if (temporary_file)
1349  *svgfile << nams << " " << vals << " " << red << " " << green << " " << blue << " ";
1350  else
1351  *svgfile
1352  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1353  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1354  << apvPair->mod->getKey()
1355  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1356  "\" POS=\"Fed/Ch "
1357  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1358  << " \" fill=\"rgb(" << red << "," << green << "," << blue << ")\" points=\"";
1359  } else {
1360  if (temporary_file)
1361  *svgfile << 0 << " " << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1362  else
1363  *svgfile
1364  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1365  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1366  << apvPair->mod->getKey()
1367  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1368  "\" POS=\"Fed/Ch "
1369  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1370  << " \" fill=\"white\" points=\"";
1371  }
1372  } else { //color defined with fillc
1373  if (apvPair->mod->red > 255)
1374  apvPair->mod->red = 255;
1375  if (apvPair->mod->green > 255)
1376  apvPair->mod->green = 255;
1377  if (apvPair->mod->blue > 255)
1378  apvPair->mod->blue = 255;
1379  if (temporary_file)
1380  *svgfile << 0 << " " << 0 << " " << apvPair->mod->red << " " << apvPair->mod->green << " " << apvPair->mod->blue
1381  << " ";
1382  else
1383  *svgfile
1384  << "<svg:polygon detid=\"" << apvPair->idex << "\" count=\"" << apvPair->count << "\" value=\""
1385  << apvPair->value << "\" id=\"" << apvPair->idex + crate * 1000000 << "\" cmodid=\""
1386  << apvPair->mod->getKey()
1387  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1388  "\" POS=\"Fed/Ch "
1389  << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connected to " << s << " Id " << buffer
1390  << " \" fill=\"rgb(" << apvPair->mod->red << "," << apvPair->mod->green << "," << apvPair->mod->blue
1391  << ")\" points=\"";
1392  }
1393  }
1394  if (temporary_file)
1395  *svgfile << np << " ";
1396  for (int k = 0; k < np; k++) {
1397  if (temporary_file)
1398  *svgfile << xd[k] << " " << yd[k] << " ";
1399  else
1400  *svgfile << xd[k] << "," << yd[k] << " ";
1401  }
1402  if (temporary_file)
1403  *svgfile << std::endl;
1404  else
1405  *svgfile << "\" />" << std::endl;
1406 }
TmModule * mod
Definition: TmApvPair.h:16
double ydpixelc(double y)
Definition: TrackerMap.h:311
float value
Definition: TmModule.h:11
int green
Definition: TmApvPair.h:10
#define NUMFEDCH_INCOLUMN
Definition: TrackerMap.h:54
double xdpixelc(double x)
Definition: TrackerMap.h:303
int getFedId()
Definition: TmApvPair.h:22
int red
Definition: TmApvPair.h:10
unsigned int idex
Definition: TmModule.h:28
int np
Definition: AMPTWrapper.h:43
#define NUMFED_INCOLUMN
Definition: TrackerMap.h:56
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int blue
Definition: TmApvPair.h:10
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
int count
Definition: TmModule.h:12
int getKey()
Definition: TmModule.h:22
int green
Definition: TmModule.h:10
int count
Definition: TmApvPair.h:13
int red
Definition: TmModule.h:10
int blue
Definition: TmModule.h:10
#define NUMFED_INROW
Definition: TrackerMap.h:57
int idex
Definition: TmApvPair.h:14
float value
Definition: TmApvPair.h:11
std::string name
Definition: TmModule.h:14
int getFedCh()
Definition: TmApvPair.h:18
#define NUMFEDCH_INROW
Definition: TrackerMap.h:55

◆ drawCcu()

void TrackerMap::drawCcu ( int  crate,
int  numfed_incrate,
bool  total,
TmCcu ccu,
std::ofstream *  file,
bool  useCcuValue 
)

Definition at line 1407 of file TrackerMap.cc.

References TmCcu::blue, DivergingColor::blue, edmScanValgrind::buffer, TmCcu::cmodid, TmCcu::count, PVValHelper::dx, PVValHelper::dy, TmCcu::getCcuRing(), TmCcu::getCcuSlot(), getcolor(), TmCcu::green, TmCcu::idex, createfilelist::int, dqmiolumiharvest::j, dqmdumpme::k, TmCcu::layer, TmCcu::mpos, np, palette, TmCcu::red, DivergingColor::red, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, TmCcu::text, TmCcu::value, xdpixelfec(), and ydpixelfec().

Referenced by save_as_fectrackermap().

1408  {
1409  double xp[4], yp[4];
1410  int color;
1411  int green = 0;
1412  int red = 0;
1413  int blue = 0;
1414  double xd[4], yd[4];
1415  int np = 4;
1416  double boxinitx = 0., boxinity = 0.;
1417  double dx = .9, dy = .9;
1418  int numccu_incolumn = 8;
1419  int numccu_inrow = 15;
1420  int numfec_incolumn = 5;
1421  int numfec_inrow = 4;
1422  boxinitx = boxinitx + (numfec_incolumn - (numfec_incrate - 1) / numfec_inrow) * 14.;
1423  boxinity = boxinity + (numfec_inrow - (numfec_incrate - 1) % numfec_inrow) * 16.;
1424  boxinity = boxinity + numccu_inrow - ccu->mpos;
1425  boxinitx = boxinitx + numccu_incolumn - (int)(ccu->getCcuRing() % numccu_incolumn);
1426  //std::cout << crate << " " << numfec_incrate << " " << ccu->getCcuRing()<<" "<<ccu->mpos<<" "<<boxinitx<< " " << boxinity << std::endl; ;
1427  xp[0] = boxinitx;
1428  yp[0] = boxinity;
1429  xp[1] = boxinitx + dx;
1430  yp[1] = boxinity;
1431  xp[2] = boxinitx + dx;
1432  yp[2] = boxinity + dy;
1433  xp[3] = boxinitx;
1434  yp[3] = boxinity + dy;
1435  for (int j = 0; j < 4; j++) {
1436  xd[j] = xdpixelfec(xp[j]);
1437  yd[j] = ydpixelfec(yp[j]);
1438  //std::cout << boxinity << " "<< ymax << " "<< yp[j] << std::endl;
1439  }
1440 
1441  char buffer[20];
1442  sprintf(buffer, "%X", ccu->idex);
1443  //sprintf(buffer,"%X",ccu->mod->idex);
1444  //std::string s = ccu->mod->name;
1445  std::string s = ccu->text;
1446  s.erase(s.begin() + s.find("connected"), s.end());
1447 
1448  if (ccu->red < 0) { //use count to compute color
1449  if (ccu->count > 0) {
1450  float vals = ccu->value;
1451  std::string nams = "nams_ccu";
1452 
1453  color = getcolor(ccu->value, palette);
1454  red = (color >> 16) & 0xFF;
1455  green = (color >> 8) & 0xFF;
1456  blue = (color)&0xFF;
1457  if (!print_total)
1458  ccu->value = ccu->value * ccu->count; //restore mod->value
1459  if (temporary_file)
1460  *svgfile << nams << " " << vals << " " << red << " " << green << " " << blue << " ";
1461  else
1462  *svgfile
1463  << "<svg:polygon detid=\"" << ccu->idex << "\" count=\"" << ccu->count << "\" value=\"" << ccu->value
1464  << "\" id=\"" << ccu->idex + crate * 1000000 << "\" cmodid=\"" << ccu->cmodid << "\" layer=\"" << ccu->layer
1465  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1466  "\" POS=\"Slot/Ring"
1467  << ccu->getCcuSlot() << "/" << ccu->getCcuRing() << " connected to " << s << " Id " << buffer
1468  << " \" fill=\"rgb(" << red << "," << green << "," << blue << ")\" points=\"";
1469  } else {
1470  if (temporary_file)
1471  *svgfile << 0 << " " << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1472  else
1473  *svgfile
1474  << "<svg:polygon detid=\"" << ccu->idex << "\" count=\"" << ccu->count << "\" value=\"" << ccu->value
1475  << "\" id=\"" << ccu->idex + crate * 1000000 << "\" cmodid=\"" << ccu->cmodid << "\" layer=\""
1476  << ccu->layer
1477  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1478  "\" POS=\"Slot/Ring "
1479  << ccu->getCcuSlot() << "/" << ccu->getCcuRing() << " connected to " << s << " Id " << buffer
1480  << " \" fill=\"white\" points=\"";
1481  }
1482  } else { //color defined with fillc
1483  if (ccu->red > 255)
1484  ccu->red = 255;
1485  if (ccu->green > 255)
1486  ccu->green = 255;
1487  if (ccu->blue > 255)
1488  ccu->blue = 255;
1489  if (temporary_file)
1490  *svgfile << 0 << " " << 0 << " " << ccu->red << " " << ccu->green << " " << ccu->blue << " ";
1491  else
1492  *svgfile
1493  << "<svg:polygon detid=\"" << ccu->idex << "\" count=\"" << ccu->count << "\" value=\"" << ccu->value
1494  << "\" id=\"" << ccu->idex + crate * 1000000 << "\" cmodid=\"" << ccu->cmodid << "\" layer=\"" << ccu->layer
1495  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1496  "\" POS=\"Slot/Ring "
1497  << ccu->getCcuSlot() << "/" << ccu->getCcuRing() << " connected to " << s << " Id " << buffer
1498  << " \" fill=\"rgb(" << ccu->red << "," << ccu->green << "," << ccu->blue << ")\" points=\"";
1499  }
1500  if (temporary_file)
1501  *svgfile << np << " ";
1502  for (int k = 0; k < np; k++) {
1503  if (temporary_file)
1504  *svgfile << xd[k] << " " << yd[k] << " ";
1505  else
1506  *svgfile << xd[k] << "," << yd[k] << " ";
1507  }
1508  if (temporary_file)
1509  *svgfile << std::endl;
1510  else
1511  *svgfile << "\" />" << std::endl;
1512 }
double ydpixelfec(double y)
Definition: TrackerMap.h:329
std::string cmodid
Definition: TmCcu.h:15
int layer
Definition: TmCcu.h:16
int getCcuRing()
Definition: TmCcu.h:27
int count
Definition: TmCcu.h:11
double xdpixelfec(double x)
Definition: TrackerMap.h:321
int getCcuSlot()
Definition: TmCcu.h:22
int np
Definition: AMPTWrapper.h:43
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int green
Definition: TmCcu.h:8
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
int mpos
Definition: TmCcu.h:17
float value
Definition: TmCcu.h:9
int idex
Definition: TmCcu.h:12
int red
Definition: TmCcu.h:8
int blue
Definition: TmCcu.h:8
std::string text
Definition: TmCcu.h:10

◆ drawHV2()

void TrackerMap::drawHV2 ( int  rack,
int  numcrate_inrack,
bool  print_total,
TmPsu psu,
std::ofstream *  svgfile,
bool  usePsuValue 
)

Definition at line 1627 of file TrackerMap.cc.

References TmPsu::blueHV2, edmScanValgrind::buffer, TmPsu::cmodid_HV2, TmPsu::countHV2, PVValHelper::dx, PVValHelper::dy, getcolor(), TmPsu::getPsuBoard(), TmPsu::getPsuCrate(), TmPsu::greenHV2, TmPsu::idex, dqmiolumiharvest::j, dqmdumpme::k, np, palette, TmPsu::redHV2, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, TmPsu::textHV2, TmPsu::valueHV2, xdpixelpsu(), and ydpixelpsu().

Referenced by save_as_HVtrackermap().

1628  {
1629  double xp[4], yp[4];
1630  int color;
1631  int greenHV2 = 0;
1632  int redHV2 = 0;
1633  int blueHV2 = 0;
1634  double xd[4], yd[4];
1635  int np = 4;
1636  double boxinitx = 35, boxinity = 12;
1637  double dx = 1.1, dy = 1.3;
1638 
1639  boxinitx = boxinitx + (5 - psu->getPsuCrate()) * 5;
1640  boxinity = boxinity + (18 - psu->getPsuBoard()) * 1.75;
1641 
1642  xp[0] = boxinitx;
1643  yp[0] = boxinity;
1644  xp[1] = boxinitx + dx;
1645  yp[1] = boxinity;
1646  xp[2] = boxinitx + dx;
1647  yp[2] = boxinity + dy;
1648  xp[3] = boxinitx;
1649  yp[3] = boxinity + dy;
1650 
1651  for (int j = 0; j < 4; j++) {
1652  xd[j] = xdpixelpsu(xp[j]);
1653  yd[j] = ydpixelpsu(yp[j]);
1654  //std::cout << boxinity << " "<< ymax << " "<< yp[j] << std::endl;
1655  }
1656 
1657  char buffer[20];
1658  sprintf(buffer, "%X", psu->idex);
1659  std::string s = psu->textHV2;
1660  s.erase(s.begin() + s.find("connected"), s.end());
1661 
1662  if (psu->redHV2 < 0) { //use count to compute color
1663 
1664  if (psu->valueHV2 > 0) {
1665  float vals = psu->valueHV2;
1666  std::string nams = "nams_hv2";
1667 
1668  color = getcolor(psu->valueHV2, palette);
1669  redHV2 = (color >> 16) & 0xFF;
1670  greenHV2 = (color >> 8) & 0xFF;
1671  blueHV2 = (color)&0xFF;
1672  if (!print_total)
1673  psu->valueHV2 = psu->valueHV2 * psu->countHV2; //restore mod->value
1674  if (temporary_file)
1675  *svgfile << nams << " " << vals << " " << redHV2 << " " << greenHV2 << " " << blueHV2 << " ";
1676  else
1677  *svgfile
1678  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV2 << "\" value=\"" << psu->valueHV2
1679  << "\" id=\"" << psu->idex * 10 + 2 << "\" cmodid=\"" << psu->cmodid_HV2
1680  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1681  "\" POS=\"easyCrate/easyBoard "
1682  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb(" << redHV2
1683  << "," << greenHV2 << "," << blueHV2 << ")\" points=\"";
1684  } else {
1685  if (temporary_file)
1686  *svgfile << 0 << " " << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1687  else
1688  *svgfile
1689  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV2 << "\" value=\"" << psu->valueHV2
1690  << "\" id=\"" << psu->idex * 10 + 2 << "\" cmodid=\"" << psu->cmodid_HV2
1691  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1692  "\" POS=\"easyCrate/easyBoard "
1693  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s
1694  << " \" fill=\"white\" points=\"";
1695  }
1696  }
1697 
1698  else { //color defined with fillc
1699  if (psu->redHV2 > 255)
1700  psu->redHV2 = 255;
1701  if (psu->greenHV2 > 255)
1702  psu->greenHV2 = 255;
1703  if (psu->blueHV2 > 255)
1704  psu->blueHV2 = 255;
1705  if (temporary_file)
1706  *svgfile << 0 << " " << 0 << " " << psu->redHV2 << " " << psu->greenHV2 << " " << psu->blueHV2 << " ";
1707  else
1708  *svgfile
1709  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV2 << "\" value=\"" << psu->valueHV2
1710  << "\" id=\"" << psu->idex * 10 + 2 << "\" cmodid=\"" << psu->cmodid_HV2
1711  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1712  "\" POS=\"easyCrate/easyBoard "
1713  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb("
1714  << psu->redHV2 << "," << psu->greenHV2 << "," << psu->blueHV2 << ")\" points=\"";
1715  }
1716 
1717  if (temporary_file)
1718  *svgfile << np << " ";
1719  for (int k = 0; k < np; k++) {
1720  if (temporary_file)
1721  *svgfile << xd[k] << " " << yd[k] << " ";
1722  else
1723  *svgfile << xd[k] << "," << yd[k] << " ";
1724  }
1725  if (temporary_file)
1726  *svgfile << std::endl;
1727  else
1728  *svgfile << "\" />" << std::endl;
1729 }
int redHV2
Definition: TmPsu.h:38
std::string cmodid_HV2
Definition: TmPsu.h:50
int idex
Definition: TmPsu.h:11
int countHV2
Definition: TmPsu.h:44
int getPsuBoard()
Definition: TmPsu.h:31
int np
Definition: AMPTWrapper.h:43
double xdpixelpsu(double x)
Definition: TrackerMap.h:339
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int greenHV2
Definition: TmPsu.h:38
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
float valueHV2
Definition: TmPsu.h:42
std::string textHV2
Definition: TmPsu.h:53
int blueHV2
Definition: TmPsu.h:38
double ydpixelpsu(double y)
Definition: TrackerMap.h:347
int getPsuCrate()
Definition: TmPsu.h:26

◆ drawHV3()

void TrackerMap::drawHV3 ( int  rack,
int  numcrate_inrack,
bool  print_total,
TmPsu psu,
std::ofstream *  svgfile,
bool  usePsuValue 
)

Definition at line 1731 of file TrackerMap.cc.

References TmPsu::blueHV3, edmScanValgrind::buffer, TmPsu::cmodid_HV3, TmPsu::countHV3, PVValHelper::dx, PVValHelper::dy, getcolor(), TmPsu::getPsuBoard(), TmPsu::getPsuCrate(), TmPsu::greenHV3, TmPsu::idex, dqmiolumiharvest::j, dqmdumpme::k, np, palette, TmPsu::redHV3, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, TmPsu::textHV3, TmPsu::valueHV3, xdpixelpsu(), and ydpixelpsu().

Referenced by save_as_HVtrackermap().

1732  {
1733  double xp[4], yp[4];
1734  int color;
1735  int greenHV3 = 0;
1736  int redHV3 = 0;
1737  int blueHV3 = 0;
1738  double xd[4], yd[4];
1739  int np = 4;
1740  double boxinitx = 36.5, boxinity = 12;
1741  double dx = 1.1, dy = 1.3;
1742 
1743  boxinitx = boxinitx + (5 - psu->getPsuCrate()) * 5;
1744  boxinity = boxinity + (18 - psu->getPsuBoard()) * 1.75;
1745 
1746  xp[0] = boxinitx;
1747  yp[0] = boxinity;
1748  xp[1] = boxinitx + dx;
1749  yp[1] = boxinity;
1750  xp[2] = boxinitx + dx;
1751  yp[2] = boxinity + dy;
1752  xp[3] = boxinitx;
1753  yp[3] = boxinity + dy;
1754 
1755  for (int j = 0; j < 4; j++) {
1756  xd[j] = xdpixelpsu(xp[j]);
1757  yd[j] = ydpixelpsu(yp[j]);
1758  //std::cout << boxinity << " "<< ymax << " "<< yp[j] << std::endl;
1759  }
1760 
1761  char buffer[20];
1762  sprintf(buffer, "%X", psu->idex);
1763  std::string s = psu->textHV3;
1764  s.erase(s.begin() + s.find("connected"), s.end());
1765 
1766  if (psu->redHV3 < 0) { //use count to compute color
1767  if (psu->valueHV3 > 0) {
1768  float vals = psu->valueHV3;
1769  std::string nams = "nams_hv3";
1770 
1771  color = getcolor(psu->valueHV3, palette);
1772  redHV3 = (color >> 16) & 0xFF;
1773  greenHV3 = (color >> 8) & 0xFF;
1774  blueHV3 = (color)&0xFF;
1775  if (!print_total)
1776  psu->valueHV3 = psu->valueHV3 * psu->countHV3; //restore mod->value
1777  if (temporary_file)
1778  *svgfile << nams << " " << vals << " " << redHV3 << " " << greenHV3 << " " << blueHV3 << " ";
1779  else
1780  *svgfile
1781  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV3 << "\" value=\"" << psu->valueHV3
1782  << "\" id=\"" << psu->idex * 10 + 3 << "\" cmodid=\"" << psu->cmodid_HV3
1783  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1784  "\" POS=\"easyCrate/easyBoard"
1785  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb(" << redHV3
1786  << "," << greenHV3 << "," << blueHV3 << ")\" points=\"";
1787  } else {
1788  if (temporary_file)
1789  *svgfile << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1790  else
1791  *svgfile
1792  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV3 << "\" value=\"" << psu->valueHV3
1793  << "\" id=\"" << psu->idex * 10 + 3 << "\" cmodid=\"" << psu->cmodid_HV3
1794  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1795  "\" POS=\"easyCrate/easyBoard "
1796  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s
1797  << " \" fill=\"white\" points=\"";
1798  }
1799  }
1800 
1801  else { //color defined with fillc
1802  if (psu->redHV3 > 255)
1803  psu->redHV3 = 255;
1804  if (psu->greenHV3 > 255)
1805  psu->greenHV3 = 255;
1806  if (psu->blueHV3 > 255)
1807  psu->blueHV3 = 255;
1808  if (temporary_file)
1809  *svgfile << 0 << " " << 0 << " " << psu->redHV3 << " " << psu->greenHV3 << " " << psu->blueHV3 << " ";
1810  else
1811  *svgfile
1812  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->countHV3 << "\" value=\"" << psu->valueHV3
1813  << "\" id=\"" << psu->idex * 10 + 3 << "\" cmodid=\"" << psu->cmodid_HV3
1814  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1815  "\" POS=\"easyCrate/easyBoard "
1816  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb("
1817  << psu->redHV3 << "," << psu->greenHV3 << "," << psu->blueHV3 << ")\" points=\"";
1818  }
1819 
1820  if (temporary_file)
1821  *svgfile << np << " ";
1822  for (int k = 0; k < np; k++) {
1823  if (temporary_file)
1824  *svgfile << xd[k] << " " << yd[k] << " ";
1825  else
1826  *svgfile << xd[k] << "," << yd[k] << " ";
1827  }
1828  if (temporary_file)
1829  *svgfile << std::endl;
1830  else
1831  *svgfile << "\" />" << std::endl;
1832 }
int idex
Definition: TmPsu.h:11
int getPsuBoard()
Definition: TmPsu.h:31
int greenHV3
Definition: TmPsu.h:39
int np
Definition: AMPTWrapper.h:43
double xdpixelpsu(double x)
Definition: TrackerMap.h:339
int blueHV3
Definition: TmPsu.h:39
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
int redHV3
Definition: TmPsu.h:39
std::string cmodid_HV3
Definition: TmPsu.h:51
std::string textHV3
Definition: TmPsu.h:54
int countHV3
Definition: TmPsu.h:45
float valueHV3
Definition: TmPsu.h:41
double ydpixelpsu(double y)
Definition: TrackerMap.h:347
int getPsuCrate()
Definition: TmPsu.h:26

◆ drawModule()

void TrackerMap::drawModule ( TmModule mod,
int  key,
int  layer,
bool  total,
std::ofstream *  file 
)

Definition at line 561 of file TrackerMap.cc.

References DivergingColor::blue, edmScanValgrind::buffer, HltBtagPostValidation_cff::c, funct::cos(), PVValHelper::dx, PVValHelper::dy, newFWLiteAna::found, getcolor(), CommonMethods::isnan(), isRingStereo(), dqmiolumiharvest::j, dqmdumpme::k, crabWrapper::key, M_PI, mod(), nlay, np, palette, phi, phival(), posrel, alignCSCRings::r, DivergingColor::red, funct::sin(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, xdpixel(), and ydpixel().

Referenced by print(), printlayers(), and save().

561  {
562  //int x,y;
563  nlay = mlay;
564  double phi, r, dx, dy, dy1;
565  double xp[4], yp[4], xp1, yp1;
566  double vhbot, vhtop, vhapo;
567  double rmedio[] = {0.041, 0.0701, 0.0988, 0.255, 0.340, 0.430, 0.520, 0.610, 0.696, 0.782, 0.868, 0.965, 1.080};
568  double xt1, yt1, xs1 = 0., ys1 = 0., xt2, yt2, xs2, ys2, pv1, pv2;
569  int green = 0;
570  int red = 0;
571  int blue = 0;
572  double xd[4], yd[4];
573  int np = 4;
574  //int numrec=0;
575  int numod = 0;
576  phi = phival(mod->posx, mod->posy);
577  r = sqrt(mod->posx * mod->posx + mod->posy * mod->posy);
578  vhtop = mod->width;
579  vhapo = mod->length;
580  if (mlay < 31) { //endcap
581  vhbot = mod->widthAtHalfLength / 2. - (mod->width / 2. - mod->widthAtHalfLength / 2.);
582  vhtop = mod->width / 2.;
583  vhapo = mod->length / 2.;
584  if (mlay > 12 && mlay < 19) {
585  if (posrel)
586  r = r + r;
587  xp[0] = r - vhtop;
588  yp[0] = -vhapo;
589  xp[1] = r + vhtop;
590  yp[1] = -vhapo;
591  xp[2] = r + vhtop;
592  yp[2] = vhapo;
593  xp[3] = r - vhtop;
594  yp[3] = vhapo;
595  } else {
596  if (posrel)
597  r = r + r / 3.;
598  xp[0] = r - vhapo;
599  yp[0] = -vhbot;
600  xp[1] = r + vhapo;
601  yp[1] = -vhtop;
602  xp[2] = r + vhapo;
603  yp[2] = vhtop;
604  xp[3] = r - vhapo;
605  yp[3] = vhbot;
606  }
607  for (int j = 0; j < 4; j++) {
608  xp1 = xp[j] * cos(phi) - yp[j] * sin(phi);
609  yp1 = xp[j] * sin(phi) + yp[j] * cos(phi);
610  xp[j] = xp1;
611  yp[j] = yp1;
612  }
613  } else { //barrel
614  numod = mod->idModule;
615  if (numod > 100)
616  numod = numod - 100;
617  int vane = mod->ring;
618  if (posrel) {
619  dx = vhapo;
620  phi = M_PI;
621  xt1 = rmedio[mlay - 31];
622  yt1 = -vhtop / 2.;
623  xs1 = xt1 * cos(phi) - yt1 * sin(phi);
624  ys1 = xt1 * sin(phi) + yt1 * cos(phi);
625  xt2 = rmedio[mlay - 31];
626  yt2 = vhtop / 2.;
627  xs2 = xt2 * cos(phi) - yt2 * sin(phi);
628  ys2 = xt2 * sin(phi) + yt2 * cos(phi);
629  dy = phival(xs2, ys2) - phival(xs1, ys1);
630  dy1 = dy;
631  if (mlay == 31)
632  dy1 = 0.39;
633  if (mlay == 32)
634  dy1 = 0.23;
635  if (mlay == 33)
636  dy1 = 0.16;
637  xp[0] = vane * (dx + dx / 8.);
638  yp[0] = numod * (dy1);
639  xp[1] = vane * (dx + dx / 8.) + dx;
640  yp[1] = numod * (dy1);
641  xp[2] = vane * (dx + dx / 8.) + dx;
642  yp[2] = numod * (dy1) + dy;
643  xp[3] = vane * (dx + dx / 8.);
644  yp[3] = numod * (dy1) + dy;
645  } else {
646  xt1 = r;
647  yt1 = -vhtop / 2.;
648  xs1 = xt1 * cos(phi) - yt1 * sin(phi);
649  ys1 = xt1 * sin(phi) + yt1 * cos(phi);
650  xt2 = r;
651  yt2 = vhtop / 2.;
652  xs2 = xt2 * cos(phi) - yt2 * sin(phi);
653  ys2 = xt2 * sin(phi) + yt2 * cos(phi);
654  pv1 = phival(xs1, ys1);
655  pv2 = phival(xs2, ys2);
656  if (fabs(pv1 - pv2) > M_PI && numod == 1)
657  pv1 = pv1 - 2. * M_PI;
658  if (fabs(pv1 - pv2) > M_PI && numod != 1)
659  pv2 = pv2 + 2. * M_PI;
660  xp[0] = mod->posz - vhapo / 2.;
661  yp[0] = 4.2 * pv1;
662  xp[1] = mod->posz + vhapo / 2.;
663  yp[1] = 4.2 * pv1;
664  xp[2] = mod->posz + vhapo / 2.;
665  yp[2] = 4.2 * pv2;
666  xp[3] = mod->posz - vhapo / 2.;
667  yp[3] = 4.2 * pv2;
668  }
669  }
670  if (isRingStereo(key)) {
671  np = 3;
672  if (mod->idModule > 100) {
673  for (int j = 0; j < 3; j++) {
674  xd[j] = xdpixel(xp[j]);
675  yd[j] = ydpixel(yp[j]);
676  }
677  } else {
678  xd[0] = xdpixel(xp[2]);
679  yd[0] = ydpixel(yp[2]);
680  xd[1] = xdpixel(xp[3]);
681  yd[1] = ydpixel(yp[3]);
682  xd[2] = xdpixel(xp[0]);
683  yd[2] = ydpixel(yp[0]);
684  }
685  } else {
686  for (int j = 0; j < 4; j++) {
687  xd[j] = xdpixel(xp[j]);
688  yd[j] = ydpixel(yp[j]);
689  }
690  }
691  char buffer[20];
692  sprintf(buffer, "%X", mod->idex);
693 
694  //Get value and name for TH2Poly bin
695  float vals = mod->value;
696  if (std::isnan(vals))
697  vals = 0; //Avoid nan values
698  std::string nams = mod->name;
699 
700  //Format TH2Poly bin name = short_name_(detId)_FED
701  //Original name = TOB- Layer 5 Rod 61 Module 6 r-phi (436295608) connected to 0 413/48 1 413/49 2 413/50 (3)^C
702  //Bin name = TOB-_L_5_R_61_M_6_(436295608)_413
703  nams.erase(std::remove_if(nams.begin(), nams.end(), [](char c) { return std::islower(c); }), nams.end());
704  size_t found = nams.find('/');
705  if (found != std::string::npos) {
706  nams.erase(found, nams.length() - found);
707  } else {
708  found = nams.find(')');
709  nams.erase(found + 1, nams.length() - found);
710  }
711  found = nams.find(") ");
712  while (found != std::string::npos) {
713  nams.erase(found + 1, 4);
714  found = nams.find(") ", found);
715  }
716  found = nams.find(" -");
717  while (found != std::string::npos) {
718  nams.erase(found, 2);
719  found = nams.find(" -", found);
720  }
721  found = nams.find(" ");
722  while (found != std::string::npos) {
723  nams.erase(found, 2);
724  found = nams.find(" ", found);
725  }
726  found = nams.find(" ");
727  while (found != std::string::npos) {
728  nams.erase(found, 1);
729  found = nams.find(" ", found);
730  }
731  std::replace_if(
732  nams.begin(), nams.end(), [](char c) { return c == ' '; }, '_');
733 
734  if (mod->red < 0) { //use count to compute color
735  int color = getcolor(mod->value, palette);
736  red = (color >> 16) & 0xFF;
737  green = (color >> 8) & 0xFF;
738  blue = (color)&0xFF;
739 
740  if (!print_total)
741  mod->value = mod->value * mod->count; //restore mod->value
742 
743  if (mod->count > 0)
744  if (temporary_file)
745  //Add TH2Poly bin name and value to temporary .coor file
746  *svgfile << nams << " " << vals << " " << red << " " << green << " " << blue << " ";
747  else
748  *svgfile
749  << "<svg:polygon detid=\"" << mod->idex << "\" count=\"" << mod->count << "\" value=\"" << mod->value
750  << "\" id=\"" << key << "\" capvids=\"" << mod->capvids << "\" lv=\"" << mod->psuIdex << "\" hv=\""
751  << mod->psuIdex * 10 + mod->HVchannel << "\" fec=\"" << mod->CcuId
752  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
753  << mod->text << "\" POS=\"" << mod->name << " \" fill=\"rgb(" << red << "," << green << "," << blue
754  << ")\" points=\"";
755  else if (temporary_file)
756  *svgfile << nams << " " << vals << " " << 255 << " " << 255 << " " << 255 << " ";
757  else
758  *svgfile
759  << "<svg:polygon detid=\"" << mod->idex << "\" count=\"" << mod->count << "\" value=\"" << mod->value
760  << "\" id=\"" << key << "\" capvids=\"" << mod->capvids << "\" lv=\"" << mod->psuIdex << "\" hv=\""
761  << mod->psuIdex * 10 + mod->HVchannel << "\" fec=\"" << mod->CcuId
762  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
763  << mod->text << "\" POS=\"" << mod->name << " \" fill=\"white\" points=\"";
764  if (temporary_file)
765  *svgfile << np << " ";
766  for (int k = 0; k < np; k++) {
767  if (temporary_file)
768  *svgfile << xd[k] << " " << yd[k] << " ";
769  else
770  *svgfile << xd[k] << "," << yd[k] << " ";
771  }
772  if (temporary_file)
773  *svgfile << std::endl;
774  else
775  *svgfile << "\" />" << std::endl;
776  } else { //color defined with fillc
777  if (mod->red > 255)
778  mod->red = 255;
779  if (mod->green > 255)
780  mod->green = 255;
781  if (mod->blue > 255)
782  mod->blue = 255;
783  if (temporary_file)
784  *svgfile << nams << " " << vals << " " << mod->red << " " << mod->green << " " << mod->blue << " ";
785  else
786  *svgfile
787  << "<svg:polygon detid=\"" << mod->idex << "\" count=\"" << mod->count << "\" value=\"" << mod->value
788  << "\" id=\"" << key << "\" capvids=\"" << mod->capvids << "\" lv=\"" << mod->psuIdex << "\" hv=\""
789  << mod->psuIdex * 10 + mod->HVchannel << "\" fec=\"" << mod->CcuId
790  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
791  << mod->text << "\" POS=\"" << mod->name << " \" fill=\"rgb(" << mod->red << "," << mod->green << ","
792  << mod->blue << ")\" points=\"";
793  if (temporary_file)
794  *svgfile << np << " ";
795  for (int k = 0; k < np; k++) {
796  if (temporary_file)
797  *svgfile << xd[k] << " " << yd[k] << " ";
798  else
799  *svgfile << xd[k] << "," << yd[k] << " ";
800  }
801  if (temporary_file)
802  *svgfile << std::endl;
803  else
804  *svgfile << "\" />" << std::endl;
805  }
806 }
def isnan(num)
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
bool posrel
Definition: TrackerMap.h:667
double phival(double x, double y)
Definition: TrackerMap.h:205
int np
Definition: AMPTWrapper.h:43
T sqrt(T t)
Definition: SSEVec.h:19
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
double ydpixel(double y)
Definition: TrackerMap.h:286
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
#define M_PI
double xdpixel(double x)
Definition: TrackerMap.h:278
static bool isRingStereo(int key)
Definition: TrackerMap.h:596
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ drawPalette()

void TrackerMap::drawPalette ( std::ofstream *  file,
int  xoffset = 3660,
int  yoffset = 1540 
)

Definition at line 3167 of file TrackerMap.cc.

References DivergingColor::blue, gather_cfg::cout, nano_mu_digi_cff::float, getcolor(), mps_fire::i, createfilelist::int, maxvalue, minvalue, palette, DivergingColor::red, svgfile, temporary_file, tkMapLog, heppy_batch::val, ApeEstimator_cff::width, EcalSCDynamicDPhiParametersESProducer_cfi::xoffset, and EcalSCDynamicDPhiParametersESProducer_cfi::yoffset.

Referenced by print(), save(), save_as_fectrackermap(), save_as_fedtrackermap(), save_as_HVtrackermap(), and save_as_psutrackermap().

3167  {
3168  std::cout << "preparing the palette" << std::endl;
3169 
3170  int color, red, green, blue;
3171  float val = minvalue;
3172  int paletteLength = 250;
3173  int width = 50 * (yoffset - 40) / 1500;
3174  float dval = (maxvalue - minvalue) / (float)paletteLength;
3175  bool rtkMapLog = tkMapLog;
3176  if (tkMapLog)
3177  tkMapLog = false;
3178  float step = float(yoffset - 40) / float(paletteLength);
3179  for (int i = 1; i < paletteLength + 1; i++) {
3180  color = getcolor(val, palette);
3181  red = (color >> 16) & 0xFF;
3182  green = (color >> 8) & 0xFF;
3183  blue = (color)&0xFF;
3184  // if(!temporary_file)*svgfile <<"<svg:rect x=\"3010\" y=\""<<(1550-6*i)<<"\" width=\"50\" height=\"6\" fill=\"rgb("<<red<<","<<green<<","<<blue<<")\" />\n";
3185  // else *svgfile << red << " " << green << " " << blue << " 4 " << (6*i)+40 << " 3010. " <<//
3186  // (6*i)+40 << " 3060. " <<//
3187  // (6*(i-1))+40 << " 3060. " <<//
3188  // (6*(i-1))+40 <<" 3010. " << std::endl; //
3189 
3190  // if(i%50 == 0){
3191  // if(!temporary_file)*svgfile <<"<svg:rect x=\"3010\" y=\""<<(1550-6*i)<<"\" width=\"50\" height=\"1\" fill=\"black\" />\n";
3192  // if(i%50==0&&!temporary_file)*svgfile << " <svg:text class=\"normalText\" x=\"3060\" y=\""<<(1560-6*i)<<"\">" <<val<<"</svg:text>"<<std::endl;
3193 
3194  if (!temporary_file)
3195  *svgfile << "<svg:rect x=\"3610\" y=\"" << (1550 - 6 * i) << "\" width=\"50\" height=\"6\" fill=\"rgb(" << red
3196  << "," << green << "," << blue << ")\" />\n";
3197  else
3198  *svgfile << 0 << " " << 0 << " " << red << " " << green << " " << blue << " 4 " << int(step * i) + 34 << " "
3199  << xoffset - width << ". " << //
3200  int(step * i) + 34 << " " << xoffset << ". " << //
3201  int(step * (i - 1)) + 34 << " " << xoffset << ". " << //
3202  int(step * (i - 1)) + 34 << " " << xoffset - width << ". " << std::endl; //
3203 
3204  if (i % 50 == 0) {
3205  if (!temporary_file)
3206  *svgfile << "<svg:rect x=\"3610\" y=\"" << (1550 - 6 * i)
3207  << "\" width=\"50\" height=\"1\" fill=\"black\" />\n";
3208  if (i % 50 == 0 && !temporary_file)
3209  *svgfile << " <svg:text class=\"normalText\" x=\"3660\" y=\"" << (1560 - 6 * i) << "\">" << val
3210  << "</svg:text>" << std::endl;
3211  }
3212  val = val + dval;
3213  }
3214  tkMapLog = rtkMapLog;
3215 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
float maxvalue
Definition: TrackerMap.h:675
step
Definition: StallMonitor.cc:98

◆ drawPsu()

void TrackerMap::drawPsu ( int  rack,
int  numcrate_inrack,
bool  print_total,
TmPsu psu,
std::ofstream *  svgfile,
bool  usePsuValue 
)

Definition at line 1513 of file TrackerMap.cc.

References TmPsu::blue, DivergingColor::blue, edmScanValgrind::buffer, TmPsu::cmodid_LV, TmPsu::count, PVValHelper::dx, PVValHelper::dy, getcolor(), TmPsu::getPsuBoard(), TmPsu::getPsuCrate(), TmPsu::green, TmPsu::idex, dqmiolumiharvest::j, dqmdumpme::k, np, NUMPSUCH_INROW, NUMPSUCRATE_INCOLUMN, palette, TmPsu::red, DivergingColor::red, alignCSCRings::s, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, TmPsu::text, TmPsu::value, xdpixelpsu(), and ydpixelpsu().

Referenced by save_as_psutrackermap().

1514  {
1515  double xp[4], yp[4];
1516  int color;
1517  int green = 0;
1518  int red = 0;
1519  int blue = 0;
1520  double xd[4], yd[4];
1521  int np = 4;
1522  double boxinitx = 0., boxinity = 0.;
1523  double dx = .9, dy = .9;
1524 
1525  boxinitx = boxinitx + (NUMPSUCRATE_INCOLUMN - psu->getPsuCrate()) * 1.5;
1526  boxinity = boxinity + (NUMPSUCH_INROW - psu->getPsuBoard());
1527 
1528  xp[0] = boxinitx;
1529  yp[0] = boxinity;
1530  xp[1] = boxinitx + dx;
1531  yp[1] = boxinity;
1532  xp[2] = boxinitx + dx;
1533  yp[2] = boxinity + dy;
1534  xp[3] = boxinitx;
1535  yp[3] = boxinity + dy;
1536 
1537  for (int j = 0; j < 4; j++) {
1538  xd[j] = xdpixelpsu(xp[j]);
1539  yd[j] = ydpixelpsu(yp[j]);
1540  //std::cout << boxinity << " "<< ymax << " "<< yp[j] << std::endl;
1541  }
1542 
1543  // lines needed to prepare the clickable maps: understand why I get twice the full list of channels (HV1 and HV0?)
1544  /*
1545  double scalex=2695./2700.;
1546  double scaley=1520./1550.;
1547  std::cout << "<area shape=\"rect\" coords=\" "
1548  << int(scalex*yd[2]) << "," << int(1520-scaley*xd[2])
1549  << "," << int(scalex*yd[0]) << "," << int(1520-scaley*xd[0])
1550  << "\" title=\" " << psu->psId << "\" /> " << std::endl;
1551  */
1552  //
1553 
1554  char buffer[20];
1555  sprintf(buffer, "%X", psu->idex);
1556  std::string s = psu->text;
1557  s.erase(s.begin() + s.find("connected"), s.end());
1558 
1559  if (psu->red < 0) { //use count to compute color
1560  if (psu->count > 0) {
1561  float vals = psu->value;
1562  std::string nams = "nams_psu";
1563 
1564  color = getcolor(psu->value, palette);
1565  red = (color >> 16) & 0xFF;
1566  green = (color >> 8) & 0xFF;
1567  blue = (color)&0xFF;
1568  if (!print_total)
1569  psu->value = psu->value * psu->count; //restore mod->value
1570  if (temporary_file)
1571  *svgfile << nams << " " << vals << " " << red << " " << green << " " << blue << " ";
1572  else
1573  *svgfile
1574  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->count << "\" value=\"" << psu->value
1575  << "\" id=\"" << psu->idex << "\" cmodid=\"" << psu->cmodid_LV
1576  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1577  "\" POS=\"easyCrate/easyBoard "
1578  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb(" << red
1579  << "," << green << "," << blue << ")\" points=\"";
1580  } else {
1581  if (temporary_file)
1582  *svgfile << 0 << " " << 0 << " " << 255 << " " << 255 << " " << 255 << " ";
1583  else
1584  *svgfile
1585  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->count << "\" value=\"" << psu->value
1586  << "\" id=\"" << psu->idex << "\" cmodid=\"" << psu->cmodid_LV
1587  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1588  "\" POS=\"easyCrate/easyBoard "
1589  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s
1590  << " \" fill=\"white\" points=\"";
1591  }
1592  }
1593 
1594  else { //color defined with fillc
1595  if (psu->red > 255)
1596  psu->red = 255;
1597  if (psu->green > 255)
1598  psu->green = 255;
1599  if (psu->blue > 255)
1600  psu->blue = 255;
1601  if (temporary_file)
1602  *svgfile << 0 << " " << 0 << " " << psu->red << " " << psu->green << " " << psu->blue << " ";
1603  else
1604  *svgfile
1605  << "<svg:polygon detid=\"" << psu->idex << "\" count=\"" << psu->count << "\" value=\"" << psu->value
1606  << "\" id=\"" << psu->idex << "\" cmodid=\"" << psu->cmodid_LV
1607  << "\" onclick=\"showData(evt);\" onmouseover=\"showData(evt);\" onmouseout=\"showData(evt);\" MESSAGE=\""
1608  "\" POS=\"easyCrate/easyBoard "
1609  << psu->getPsuCrate() << "/" << psu->getPsuBoard() << " connected to " << s << " \" fill=\"rgb(" << psu->red
1610  << "," << psu->green << "," << psu->blue << ")\" points=\"";
1611  }
1612 
1613  if (temporary_file)
1614  *svgfile << np << " ";
1615  for (int k = 0; k < np; k++) {
1616  if (temporary_file)
1617  *svgfile << xd[k] << " " << yd[k] << " ";
1618  else
1619  *svgfile << xd[k] << "," << yd[k] << " ";
1620  }
1621  if (temporary_file)
1622  *svgfile << std::endl;
1623  else
1624  *svgfile << "\" />" << std::endl;
1625 }
int count
Definition: TmPsu.h:43
int idex
Definition: TmPsu.h:11
float value
Definition: TmPsu.h:40
int getPsuBoard()
Definition: TmPsu.h:31
int red
Definition: TmPsu.h:37
int np
Definition: AMPTWrapper.h:43
double xdpixelpsu(double x)
Definition: TrackerMap.h:339
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
int green
Definition: TmPsu.h:37
int getcolor(float value, int palette)
Definition: TrackerMap.cc:3513
#define NUMPSUCRATE_INCOLUMN
Definition: TrackerMap.h:46
std::string text
Definition: TmPsu.h:52
std::string cmodid_LV
Definition: TmPsu.h:49
int blue
Definition: TmPsu.h:37
#define NUMPSUCH_INROW
Definition: TrackerMap.h:45
double ydpixelpsu(double y)
Definition: TrackerMap.h:347
int getPsuCrate()
Definition: TmPsu.h:26

◆ fill() [1/2]

void TrackerMap::fill ( int  layer,
int  ring,
int  nmod,
float  x 
)

Definition at line 3443 of file TrackerMap.cc.

References gather_cfg::cout, crabWrapper::key, nano_mu_digi_cff::layer, mod(), relativeConstraints::ring, and smoduleMap.

Referenced by SiStripCorrelateNoise::DoAnalysis(), SiStripPlotGain::DoAnalysis(), TkHistoMap::dumpInTkMap(), SiStripBaseCondObjDQM::fillTkMap(), SiStripCondObjectRepresent::SiStripDataContainer< Item, type >::fillTrackerMap(), load(), SiStripHitResolFromCalibTree::makeTKMap(), SiStripHitEffFromCalibTree::makeTKMap(), and SiStripQualityStatistics::updateAndSave().

3443  {
3444  int key = layer * 100000 + ring * 1000 + nmod;
3445  TmModule *mod = smoduleMap[key];
3446  if (mod != nullptr) {
3447  mod->value = mod->value + qty;
3448  mod->count++;
3449  } else
3450  std::cout << "**************************error in SvgModuleMap **************";
3451 }
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ fill() [2/2]

void TrackerMap::fill ( int  idmod,
float  qty 
)

Definition at line 3423 of file TrackerMap.cc.

References TmModule::count, gather_cfg::cout, B2GTnPMonitor_cfi::idmod, imoduleMap, mod(), and TmModule::value.

3423  {
3425  if (mod != nullptr) {
3426  mod->value = mod->value + qty;
3427  mod->count++;
3428  return;
3429  } else {
3430  TmModule *mod1 = imoduleMap[idmod + 1];
3431  TmModule *mod2 = imoduleMap[idmod + 2];
3432  if (mod1 != nullptr && mod2 != nullptr) {
3433  mod1->value = mod1->value + qty;
3434  mod1->count++;
3435  mod2->value = mod2->value + qty;
3436  mod2->count++;
3437  return;
3438  }
3439  }
3440  std::cout << "**************************error in fill method **************module " << idmod << std::endl;
3441 }
float value
Definition: TmModule.h:11
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
int count
Definition: TmModule.h:12
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ fill_all_blank()

void TrackerMap::fill_all_blank ( )

Definition at line 3406 of file TrackerMap.cc.

References fill_current_val(), and imoduleMap.

3406  {
3407  std::map<const int, TmModule *>::iterator imod;
3408  for (imod = imoduleMap.begin(); imod != imoduleMap.end(); imod++) {
3409  fill_current_val(imod->first, 0);
3410  }
3411 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
void fill_current_val(int idmod, float current_val)
Definition: TrackerMap.cc:3413

◆ fill_current_val()

void TrackerMap::fill_current_val ( int  idmod,
float  current_val 
)

Definition at line 3413 of file TrackerMap.cc.

References gather_cfg::cout, B2GTnPMonitor_cfi::idmod, imoduleMap, and mod().

Referenced by DetIdSelectorTest::analyze(), TrackerDpgAnalysis::beginRun(), and fill_all_blank().

3413  {
3415  if (mod != nullptr) {
3416  mod->value = current_val;
3417  mod->count = 1;
3418  mod->red = -1;
3419  } else
3420  std::cout << "**error in fill_current_val method ***module " << idmod << std::endl;
3421 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ fill_current_val_fed_channel()

void TrackerMap::fill_current_val_fed_channel ( int  fedId,
int  fedCh,
float  current_val 
)

Definition at line 3242 of file TrackerMap.cc.

References apvMap, TmApvPair::count, gather_cfg::cout, l1tstage2_dqm_sourceclient-live_cfg::fedId, crabWrapper::key, TmApvPair::red, and TmApvPair::value.

3242  {
3243  int key = fedId * 1000 + fedCh;
3244  TmApvPair *apvpair = apvMap[key];
3245 
3246  if (apvpair != nullptr) {
3247  apvpair->value = current_val;
3248  apvpair->count = 1;
3249  apvpair->red = -1;
3250  } else
3251  std::cout << "*** error in FedTrackerMap fill_current_val method ***";
3252 }
int red
Definition: TmApvPair.h:10
int count
Definition: TmApvPair.h:13
SvgApvPair apvMap
Definition: TrackerMap.h:176
float value
Definition: TmApvPair.h:11

◆ fill_fec_channel()

void TrackerMap::fill_fec_channel ( int  crate,
int  slot,
int  ring,
int  addr,
float  qty 
)

Definition at line 3268 of file TrackerMap.cc.

References generateTowerEtThresholdLUT::addr, ccuMap, TmCcu::count, gather_cfg::cout, crabWrapper::key, relativeConstraints::ring, and TmCcu::value.

3268  {
3269  int key = crate * 10000000 + slot * 100000 + ring * 1000 + addr;
3270  TmCcu *ccu = ccuMap[key];
3271  if (ccu != nullptr) {
3272  ccu->count++;
3273  ccu->value = ccu->value + qty;
3274  return;
3275  }
3276 
3277  std::cout << "*** error in FecTrackerMap fill by module method ***";
3278 }
MapCcu ccuMap
Definition: TrackerMap.h:183
int count
Definition: TmCcu.h:11
float value
Definition: TmCcu.h:9
Definition: TmCcu.h:4

◆ fill_fed_channel() [1/2]

void TrackerMap::fill_fed_channel ( int  fedId,
int  fedCh,
float  qty 
)

Definition at line 3365 of file TrackerMap.cc.

References apvMap, TmApvPair::count, gather_cfg::cout, l1tstage2_dqm_sourceclient-live_cfg::fedId, crabWrapper::key, and TmApvPair::value.

3365  {
3366  int key = fedId * 1000 + fedCh;
3367  TmApvPair *apvpair = apvMap[key];
3368  if (apvpair != nullptr) {
3369  apvpair->value = apvpair->value + qty;
3370  apvpair->count++;
3371  return;
3372  }
3373  std::cout << "*** error inFedTrackerMap fill method ***";
3374 }
int count
Definition: TmApvPair.h:13
SvgApvPair apvMap
Definition: TrackerMap.h:176
float value
Definition: TmApvPair.h:11

◆ fill_fed_channel() [2/2]

void TrackerMap::fill_fed_channel ( int  modId,
float  qty 
)

Definition at line 3229 of file TrackerMap.cc.

References apvModuleMap, TmApvPair::count, gather_cfg::cout, B2GTnPMonitor_cfi::idmod, and TmApvPair::value.

3229  {
3230  std::multimap<const int, TmApvPair *>::iterator pos;
3231  for (pos = apvModuleMap.lower_bound(idmod); pos != apvModuleMap.upper_bound(idmod); ++pos) {
3232  TmApvPair *apvpair = pos->second;
3233  if (apvpair != nullptr) {
3234  apvpair->value = apvpair->value + qty;
3235  apvpair->count++;
3236  }
3237  }
3238  return;
3239  std::cout << "*** error in FedTrackerMap fill by module method ***";
3240 }
ModApvPair apvModuleMap
Definition: TrackerMap.h:178
int count
Definition: TmApvPair.h:13
float value
Definition: TmApvPair.h:11

◆ fill_hv_channel2()

void TrackerMap::fill_hv_channel2 ( int  rack,
int  crate,
int  board,
float  qty 
)

Definition at line 3333 of file TrackerMap.cc.

References TmPsu::countHV2, gather_cfg::cout, crabWrapper::key, psuMap, and TmPsu::valueHV2.

3333  {
3334  int key = rack * 1000 + crate * 100 + board;
3335  TmPsu *psu = psuMap[key];
3336  if (psu != nullptr) {
3337  psu->countHV2++;
3338  psu->valueHV2 = psu->valueHV2 + qty;
3339  return;
3340  }
3341 
3342  std::cout << "*** error in HVTrackerMap fill by module method ***";
3343 }
int countHV2
Definition: TmPsu.h:44
float valueHV2
Definition: TmPsu.h:42
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6

◆ fill_hv_channel3()

void TrackerMap::fill_hv_channel3 ( int  rack,
int  crate,
int  board,
float  qty 
)

Definition at line 3344 of file TrackerMap.cc.

References TmPsu::countHV3, gather_cfg::cout, crabWrapper::key, psuMap, and TmPsu::valueHV3.

3344  {
3345  int key = rack * 1000 + crate * 100 + board;
3346  TmPsu *psu = psuMap[key];
3347  if (psu != nullptr) {
3348  psu->countHV3++;
3349  psu->valueHV3 = psu->valueHV3 + qty;
3350  return;
3351  }
3352 
3353  std::cout << "*** error in HVTrackerMap fill by module method ***";
3354 }
int countHV3
Definition: TmPsu.h:45
float valueHV3
Definition: TmPsu.h:41
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6

◆ fill_lv_channel()

void TrackerMap::fill_lv_channel ( int  rack,
int  crate,
int  board,
float  qty 
)

Definition at line 3294 of file TrackerMap.cc.

References TmPsu::count, gather_cfg::cout, crabWrapper::key, psuMap, and TmPsu::value.

3294  {
3295  int key = rack * 1000 + crate * 100 + board;
3296  TmPsu *psu = psuMap[key];
3297  if (psu != nullptr) {
3298  psu->count++;
3299  psu->value = psu->value + qty;
3300  return;
3301  }
3302 
3303  std::cout << "*** error in LVTrackerMap fill by module method ***";
3304 }
int count
Definition: TmPsu.h:43
float value
Definition: TmPsu.h:40
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6

◆ fillc() [1/3]

void TrackerMap::fillc ( int  idmod,
int  RGBcode 
)
inline

◆ fillc() [2/3]

void TrackerMap::fillc ( int  idmod,
int  red,
int  green,
int  blue 
)

Definition at line 3376 of file TrackerMap.cc.

References DivergingColor::blue, gather_cfg::cout, B2GTnPMonitor_cfi::idmod, imoduleMap, mod(), and DivergingColor::red.

3376  {
3378  if (mod != nullptr) {
3379  mod->red = red;
3380  mod->green = green;
3381  mod->blue = blue;
3382  return;
3383  }
3384  std::cout << "**************************error in fill method **************module " << idmod << std::endl;
3385 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ fillc() [3/3]

void TrackerMap::fillc ( int  layer,
int  ring,
int  nmod,
int  red,
int  green,
int  blue 
)

Definition at line 3386 of file TrackerMap.cc.

References DivergingColor::blue, gather_cfg::cout, crabWrapper::key, nano_mu_digi_cff::layer, mod(), DivergingColor::red, relativeConstraints::ring, and smoduleMap.

3386  {
3387  int key = layer * 10000 + ring * 1000 + nmod;
3388  TmModule *mod = smoduleMap[key];
3389 
3390  if (mod != nullptr) {
3391  mod->red = red;
3392  mod->green = green;
3393  mod->blue = blue;
3394  return;
3395  }
3396  std::cout << "**************************error in fill method **************" << std::endl;
3397 }
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ fillc_all_blank()

void TrackerMap::fillc_all_blank ( )

Definition at line 3399 of file TrackerMap.cc.

References fillc(), and imoduleMap.

3399  {
3400  std::map<const int, TmModule *>::iterator imod;
3401  for (imod = imoduleMap.begin(); imod != imoduleMap.end(); imod++) {
3402  fillc(imod->first, 255, 255, 255);
3403  }
3404 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
void fillc(int idmod, int RGBcode)
Definition: TrackerMap.h:135

◆ fillc_fec_channel()

void TrackerMap::fillc_fec_channel ( int  crate,
int  slot,
int  ring,
int  addr,
int  red,
int  green,
int  blue 
)

Definition at line 3254 of file TrackerMap.cc.

References generateTowerEtThresholdLUT::addr, TmCcu::blue, DivergingColor::blue, ccuMap, gather_cfg::cout, TmCcu::green, crabWrapper::key, TmCcu::red, DivergingColor::red, and relativeConstraints::ring.

3254  {
3255  int key = crate * 10000000 + slot * 100000 + ring * 1000 + addr;
3256 
3257  TmCcu *ccu = ccuMap[key];
3258 
3259  if (ccu != nullptr) {
3260  ccu->red = red;
3261  ccu->green = green;
3262  ccu->blue = blue;
3263  return;
3264  }
3265  std::cout << "*** error in FecTrackerMap fillc method ***";
3266 }
MapCcu ccuMap
Definition: TrackerMap.h:183
int green
Definition: TmCcu.h:8
int red
Definition: TmCcu.h:8
int blue
Definition: TmCcu.h:8
Definition: TmCcu.h:4

◆ fillc_fed_channel()

void TrackerMap::fillc_fed_channel ( int  fedId,
int  fedCh,
int  red,
int  green,
int  blue 
)

Definition at line 3216 of file TrackerMap.cc.

References apvMap, TmApvPair::blue, DivergingColor::blue, gather_cfg::cout, l1tstage2_dqm_sourceclient-live_cfg::fedId, TmApvPair::green, crabWrapper::key, TmApvPair::red, and DivergingColor::red.

3216  {
3217  int key = fedId * 1000 + fedCh;
3218  TmApvPair *apvpair = apvMap[key];
3219 
3220  if (apvpair != nullptr) {
3221  apvpair->red = red;
3222  apvpair->green = green;
3223  apvpair->blue = blue;
3224  return;
3225  }
3226  std::cout << "*** error in FedTrackerMap fillc method ***";
3227 }
int green
Definition: TmApvPair.h:10
int red
Definition: TmApvPair.h:10
int blue
Definition: TmApvPair.h:10
SvgApvPair apvMap
Definition: TrackerMap.h:176

◆ fillc_hv_channel2()

void TrackerMap::fillc_hv_channel2 ( int  rack,
int  crate,
int  board,
int  red,
int  green,
int  blue 
)

Definition at line 3306 of file TrackerMap.cc.

References DivergingColor::blue, TmPsu::blueHV2, gather_cfg::cout, TmPsu::greenHV2, crabWrapper::key, psuMap, DivergingColor::red, and TmPsu::redHV2.

3306  {
3307  int key = rack * 1000 + crate * 100 + board;
3308 
3309  TmPsu *psu = psuMap[key];
3310 
3311  if (psu != nullptr) {
3312  psu->redHV2 = red;
3313  psu->greenHV2 = green;
3314  psu->blueHV2 = blue;
3315  return;
3316  }
3317  std::cout << "*** error in HVTrackerMap (channel 2) fillc method ***";
3318 }
int redHV2
Definition: TmPsu.h:38
int greenHV2
Definition: TmPsu.h:38
MapPsu psuMap
Definition: TrackerMap.h:187
int blueHV2
Definition: TmPsu.h:38
Definition: TmPsu.h:6

◆ fillc_hv_channel3()

void TrackerMap::fillc_hv_channel3 ( int  rack,
int  crate,
int  board,
int  red,
int  green,
int  blue 
)

Definition at line 3319 of file TrackerMap.cc.

References DivergingColor::blue, TmPsu::blueHV3, gather_cfg::cout, TmPsu::greenHV3, crabWrapper::key, psuMap, DivergingColor::red, and TmPsu::redHV3.

3319  {
3320  int key = rack * 1000 + crate * 100 + board;
3321 
3322  TmPsu *psu = psuMap[key];
3323 
3324  if (psu != nullptr) {
3325  psu->redHV3 = red;
3326  psu->greenHV3 = green;
3327  psu->blueHV3 = blue;
3328  return;
3329  }
3330  std::cout << "*** error in HVTrackerMap (channel 3) fillc method ***";
3331 }
int greenHV3
Definition: TmPsu.h:39
int blueHV3
Definition: TmPsu.h:39
int redHV3
Definition: TmPsu.h:39
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6

◆ fillc_lv_channel()

void TrackerMap::fillc_lv_channel ( int  rack,
int  crate,
int  board,
int  red,
int  green,
int  blue 
)

Definition at line 3280 of file TrackerMap.cc.

References TmPsu::blue, DivergingColor::blue, gather_cfg::cout, TmPsu::green, crabWrapper::key, psuMap, TmPsu::red, and DivergingColor::red.

3280  {
3281  int key = rack * 1000 + crate * 100 + board;
3282 
3283  TmPsu *psu = psuMap[key];
3284 
3285  if (psu != nullptr) {
3286  psu->red = red;
3287  psu->green = green;
3288  psu->blue = blue;
3289  return;
3290  }
3291  std::cout << "*** error in LVTrackerMap fillc method ***";
3292 }
int red
Definition: TmPsu.h:37
int green
Definition: TmPsu.h:37
int blue
Definition: TmPsu.h:37
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6

◆ find_layer()

int TrackerMap::find_layer ( int  ix,
int  iy 
)
inline

Definition at line 225 of file TrackerMap.h.

References PVValHelper::add(), ix, iy, nano_mu_digi_cff::layer, xsize, and ysize.

225  {
226  int add;
227  int layer = 0;
228  if (iy <= xsize) { //endcap+z
229  add = 15;
230  layer = ix / ysize;
231  layer = layer + add + 1;
232  }
233  if (iy > xsize && iy < 3 * xsize) { //barrel
234  add = 30;
235  if (ix < 2 * ysize) {
236  layer = 1;
237  } else {
238  layer = ix / (2 * ysize);
239  if (iy < 2 * xsize)
240  layer = layer * 2 + 1;
241  else
242  layer = layer * 2;
243  }
244  layer = layer + add;
245  }
246  if (iy >= 3 * xsize) { //endcap-z
247  layer = ix / ysize;
248  layer = 15 - layer;
249  }
250  return layer;
251  }
void add(std::map< std::string, TH1 *> &h, TH1 *hist)

◆ findfile()

std::ifstream * TrackerMap::findfile ( std::string  filename)

Definition at line 4293 of file TrackerMap.cc.

References gather_cfg::cout, corrVsCorr::filename, contentValuesFiles::fullPath, recoMuon::in, jsPath, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by printall(), and printonline().

4293  {
4294  std::ifstream *ifilename;
4295  std::string ifname;
4296  if (!jsPath.empty()) {
4297  ifname = jsPath + filename;
4298  ifilename = new std::ifstream(edm::FileInPath(ifname).fullPath().c_str(), std::ios::in);
4299  if (!ifilename) {
4300  ifname = "CommonTools/TrackerMap/data/" + filename;
4301  ifilename = new std::ifstream(edm::FileInPath(ifname).fullPath().c_str(), std::ios::in);
4302  }
4303  } else {
4304  ifname = "CommonTools/TrackerMap/data/" + filename;
4305  ifilename = new std::ifstream(edm::FileInPath(ifname).fullPath().c_str(), std::ios::in);
4306  }
4307  if (!ifilename)
4308  std::cout << "File " << filename << " missing" << std::endl;
4309  return ifilename;
4310 }
std::string jsPath
Definition: TrackerMap.h:203

◆ getAutomaticRange()

std::pair< float, float > TrackerMap::getAutomaticRange ( )

Definition at line 816 of file TrackerMap.cc.

References firstRing, crabWrapper::key, nano_mu_digi_cff::layer, dqm-mbProfile::log, mod(), module(), ntotRing, relativeConstraints::ring, smoduleMap, and tkMapLog.

816  {
817  float minval, maxval;
818  minval = 9999999.;
819  maxval = -9999999.;
820  for (int layer = 1; layer < 44; layer++) {
821  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
822  for (int module = 1; module < 200; module++) {
823  int key = layer * 100000 + ring * 1000 + module;
825  if (mod != nullptr && !mod->notInUse() && mod->count > 0) {
826  if (minval > mod->value)
827  minval = mod->value;
828  if (maxval < mod->value)
829  maxval = mod->value;
830  }
831  }
832  }
833  }
834  if (tkMapLog) {
835  minval = log(minval) / log(10);
836  maxval = log(maxval) / log(10);
837  }
838  return std::make_pair(minval, maxval);
839 }
bool tkMapLog
Definition: TrackerMap.h:198
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
int firstRing[43]
Definition: TrackerMap.h:655
Definition: value.py:1
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
int ntotRing[43]
Definition: TrackerMap.h:654

◆ getcolor()

int TrackerMap::getcolor ( float  value,
int  palette 
)

Definition at line 3513 of file TrackerMap.cc.

References DivergingColor::blue, dumpMFGeometry_cfg::delta, createfilelist::int, dqm-mbProfile::log, maxvalue, minvalue, palette, DivergingColor::red, tkMapLog, and x.

Referenced by drawApvPair(), drawCcu(), drawHV2(), drawHV3(), drawModule(), drawPalette(), and drawPsu().

3513  {
3514  int red, green, blue;
3515  float lminvalue, lmaxvalue;
3516  lminvalue = minvalue;
3517  lmaxvalue = maxvalue;
3518  if (tkMapLog) {
3519  lminvalue = log(minvalue) / log(10);
3520  lmaxvalue = log(maxvalue) / log(10);
3521  value = log(value) / log(10);
3522  }
3523 
3524  red = 0;
3525  green = 0;
3526  blue = 0;
3527  if (palette == 1) { //palette1 1 - raibow
3528  float delta = (lmaxvalue - lminvalue);
3529  float x = (value - lminvalue);
3530  if (value < lminvalue) {
3531  red = 0;
3532  green = 0;
3533  blue = 255;
3534  }
3535  if (value > lmaxvalue) {
3536  red = 255;
3537  green = 0;
3538  blue = 0;
3539  }
3540  if (value >= lminvalue && value <= lmaxvalue) {
3541  red = (int)(x < (delta / 2) ? 0 : (x > ((3. / 4.) * delta) ? 255 : 255 / (delta / 4) * (x - (2. / 4.) * delta)));
3542  green =
3543  (int)(x < delta / 4 ? (x * 255 / (delta / 4))
3544  : (x > ((3. / 4.) * delta) ? 255 - 255 / (delta / 4) * (x - (3. / 4.) * delta) : 255));
3545  blue = (int)(x < delta / 4 ? 255
3546  : (x > ((1. / 2.) * delta) ? 0 : 255 - 255 / (delta / 4) * (x - (1. / 4.) * delta)));
3547  }
3548  }
3549  if (palette == 2) { //palette 2 yellow-green
3550  green = (int)((value - lminvalue) / (lmaxvalue - lminvalue) * 256.);
3551  if (green > 255)
3552  green = 255;
3553  red = 255;
3554  blue = 0;
3555  green = 255 - green;
3556  }
3557  // std::cout<<red<<" "<<green<<" "<<blue<<" "<<value <<" "<<lminvalue<<" "<< lmaxvalue<<std::endl;
3558  return (blue | (green << 8) | (red << 16));
3559 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
Definition: value.py:1
float maxvalue
Definition: TrackerMap.h:675

◆ getlayerCount()

int TrackerMap::getlayerCount ( int  subdet,
int  partdet 
)
inline

Definition at line 253 of file TrackerMap.h.

Referenced by init().

253  {
254  int ncomponent = 0;
255  if (subdet == 1) { //1=pixel
256  if (partdet == 1 || partdet == 3) { //1-3=encap
257  ncomponent = 3;
258  } else {
259  ncomponent = 3;
260  } //barrel
261  }
262  if (subdet == 2) { //2=inner silicon
263  if (partdet == 1 || partdet == 3) { //1-3=encap
264  ncomponent = 3;
265  } else {
266  ncomponent = 4;
267  } //barrel
268  }
269  if (subdet == 3) { //3=outer silicon
270  if (partdet == 1 || partdet == 3) { //1-3=encap
271  ncomponent = 9;
272  } else {
273  ncomponent = 6;
274  } //barrel
275  }
276  return (ncomponent);
277  }

◆ getmoduleCount()

int TrackerMap::getmoduleCount ( int  subdet,
int  partdet,
int  layer,
int  ring 
)
inline

Definition at line 550 of file TrackerMap.h.

References nano_mu_digi_cff::layer, and relativeConstraints::ring.

Referenced by init().

550  {
551  int ncomponent = 0;
552  int spicchif[] = {24, 24, 40, 56, 40, 56, 80};
553  int spicchib[] = {20, 32, 44, 30, 38, 46, 56, 42, 48, 54, 60, 66, 74};
554  int numero_layer = 0;
555 
556  if (partdet == 2) { //barrel
557  numero_layer = layer - 1;
558  if (subdet == 2) { //inner
559  numero_layer = numero_layer + 3;
560  }
561  if (subdet == 3) { //outer
562  numero_layer = numero_layer + 7;
563  }
564  ncomponent = spicchib[numero_layer];
565  }
566  if (partdet != 2) { //endcap
567  if (subdet == 1)
568  ncomponent = 24; //pixel
569  else
570  ncomponent = spicchif[ring - 1];
571  }
572  return (ncomponent);
573  }

◆ getNumMod()

int TrackerMap::getNumMod ( )
inline

Definition at line 169 of file TrackerMap.h.

169 { return number_modules; };
int number_modules
Definition: TrackerMap.h:676

◆ getringCount()

int TrackerMap::getringCount ( int  subdet,
int  partdet,
int  layer 
)
inline

Definition at line 507 of file TrackerMap.h.

References nano_mu_digi_cff::layer.

Referenced by init().

507  {
508  int ncomponent = 0;
509  if (subdet == 1) { //1=pixel
510  if (partdet == 1 || partdet == 3) { //end-cap
511  ncomponent = 7;
512  } else {
513  ncomponent = 8;
514  } //barrel
515  }
516  if (subdet == 2) { //inner-silicon
517  if (partdet == 1 || partdet == 3) { //end-cap
518  ncomponent = 3;
519  } else {
520  ncomponent = 12;
521  } //barrel
522  }
523  if (subdet == 3) { //outer-silicon
524  if (partdet == 1) { //end-cap-z
525  if (layer == 1)
526  ncomponent = 4;
527  if (layer == 2 || layer == 3)
528  ncomponent = 5;
529  if (layer == 4 || layer == 5 || layer == 6)
530  ncomponent = 6;
531  if (layer == 7 || layer == 8 || layer == 9)
532  ncomponent = 7;
533  }
534  if (partdet == 3) { //endcap+z
535  if (layer == 9)
536  ncomponent = 4;
537  if (layer == 8 || layer == 7)
538  ncomponent = 5;
539  if (layer == 6 || layer == 5 || layer == 4)
540  ncomponent = 6;
541  if (layer == 3 || layer == 2 || layer == 1)
542  ncomponent = 7;
543  }
544  if (partdet == 2) { //barrel
545  ncomponent = 12;
546  }
547  }
548  return (ncomponent);
549  }

◆ getxsize()

int TrackerMap::getxsize ( )
inline

Definition at line 165 of file TrackerMap.h.

References xsize.

165 { return xsize; };

◆ getysize()

int TrackerMap::getysize ( )
inline

Definition at line 166 of file TrackerMap.h.

References ysize.

166 { return ysize; };

◆ init()

void TrackerMap::init ( void  )

Definition at line 472 of file TrackerMap.cc.

References addPixelFlag, build(), firstcall, firstRing, getlayerCount(), getmoduleCount(), getringCount(), gmaxvalue, gminvalue, isRingStereo(), ix, iy, crabWrapper::key, nano_mu_digi_cff::layer, maxvalue, minvalue, module(), ndet, nlayer(), nlayers, npart, ntotRing, onlyPixelFlag, palette, posrel, printflag, relativeConstraints::ring, smoduleMap, and temporary_file.

Referenced by TrackerMap().

472  {
473  ix = 0;
474  iy = 0; //used to compute the place of each layer in the tracker map
475  firstcall = true;
476  minvalue = 0.;
477  maxvalue = minvalue;
478  posrel = true;
479  palette = 1;
480  printflag = true;
481  addPixelFlag = false;
482  onlyPixelFlag = false;
483  temporary_file = false;
484  gminvalue = 0.;
485  gmaxvalue = 0.; //default global range for online rendering
486 
487  ndet = 3; // number of detectors: pixel, inner silicon, outer silicon
488  npart = 3; // number of detector parts: endcap -z, barrel, endcap +z
489 
490  //allocate module map
491  for (int subdet = 1; subdet < ndet + 1; subdet++) { //loop on subdetectors
492  for (int detpart = 1; detpart < npart + 1; detpart++) { //loop on subdetectors parts
493  int nlayers = getlayerCount(subdet, detpart); // compute number of layers
494  for (int layer = 1; layer < nlayers + 1; layer++) { //loop on layers
495  int nrings = getringCount(subdet, detpart, layer); // compute number of rings
496  //fill arrays used to do the loop on the rings
497  int layer_g = nlayer(subdet, detpart, layer);
498  ntotRing[layer_g - 1] = nrings;
499  firstRing[layer_g - 1] = 1;
500  if (subdet == 3 && detpart != 2)
501  firstRing[layer_g - 1] = 8 - nrings; //special numbering for TEC
502  for (int ring = firstRing[layer_g - 1]; ring < ntotRing[layer_g - 1] + firstRing[layer_g - 1];
503  ring++) { //loop on rings
504  int nmodules = getmoduleCount(subdet, detpart, layer, ring); // compute number of modules
505  int key = 0;
506  TmModule *smodule;
507  for (int module = 1; module < nmodules + 1; module++) { //loop on modules
508  smodule = new TmModule(module, ring, layer_g);
509  key = layer_g * 100000 + ring * 1000 + module; //key identifying module
510  smoduleMap[key] = smodule;
511  }
512  if (isRingStereo(key))
513  for (int module = 1; module < nmodules + 1; module++) { //loop on stereo modules
514  smodule = new TmModule(module + 100, ring, layer_g);
515  int key = layer_g * 100000 + ring * 1000 + module + 100;
516  smoduleMap[key] = smodule;
517  }
518  }
519  }
520  }
521  }
522  build();
523 }
void build()
Definition: TrackerMap.cc:3470
float minvalue
Definition: TrackerMap.h:675
int getmoduleCount(int subdet, int partdet, int layer, int ring)
Definition: TrackerMap.h:550
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
bool addPixelFlag
Definition: TrackerMap.h:682
int getlayerCount(int subdet, int partdet)
Definition: TrackerMap.h:253
int firstRing[43]
Definition: TrackerMap.h:655
float gminvalue
Definition: TrackerMap.h:674
bool posrel
Definition: TrackerMap.h:667
int getringCount(int subdet, int partdet, int layer)
Definition: TrackerMap.h:507
bool temporary_file
Definition: TrackerMap.h:677
bool onlyPixelFlag
Definition: TrackerMap.h:683
bool printflag
Definition: TrackerMap.h:191
int nlayer(int det, int part, int lay)
Definition: TrackerMap.h:607
float gmaxvalue
Definition: TrackerMap.h:674
float maxvalue
Definition: TrackerMap.h:675
bool firstcall
Definition: TrackerMap.h:668
static bool isRingStereo(int key)
Definition: TrackerMap.h:596
int ntotRing[43]
Definition: TrackerMap.h:654

◆ isRingStereo()

static bool TrackerMap::isRingStereo ( int  key)
inlinestatic

Definition at line 596 of file TrackerMap.h.

References crabWrapper::key, nano_mu_digi_cff::layer, and relativeConstraints::ring.

Referenced by drawModule(), and init().

596  {
597  int layer = key / 100000;
598  int ring = key - layer * 100000;
599  ring = ring / 1000;
600  if (layer == 34 || layer == 35 || layer == 38 || layer == 39)
601  return true;
602  if (layer < 13 || (layer > 18 && layer < 31))
603  if (ring == 1 || ring == 2 || ring == 5)
604  return true;
605  return false;
606  }

◆ layername()

std::string TrackerMap::layername ( int  layer)
inline

Definition at line 629 of file TrackerMap.h.

References nano_mu_digi_cff::layer, alignCSCRings::s, and AlCaHLTBitMon_QueryRunRegistry::string.

629  {
630  std::string s = " ";
631  std::ostringstream ons;
632 
633  if (layer < 10)
634  ons << "TEC -z Layer " << layer;
635  if (layer < 13 && layer > 9)
636  ons << "TID -z Layer " << layer - 9;
637  if (layer < 16 && layer > 12)
638  ons << "FPIX -z Layer " << layer - 12;
639  if (layer < 19 && layer > 15)
640  ons << "FPIX +z Layer " << layer - 15;
641  if (layer < 22 && layer > 18)
642  ons << "TID +z Layer " << layer - 18;
643  if (layer < 31 && layer > 21)
644  ons << "TEC +z Layer " << layer - 21;
645  if (layer < 34 && layer > 30)
646  ons << "TPB Layer " << layer - 30;
647  if (layer < 38 && layer > 33)
648  ons << "TIB Layer " << layer - 33;
649  if (layer > 37)
650  ons << "TOB Layer " << layer - 37;
651  s = ons.str();
652  return s;
653  }

◆ layerno()

static int TrackerMap::layerno ( int  subdet,
int  leftright,
int  layer 
)
inlinestatic

Definition at line 574 of file TrackerMap.h.

References cms::cuda::assert(), and nano_mu_digi_cff::layer.

574  {
575  if (subdet == 6 && leftright == 1)
576  return (10 - layer);
577  if (subdet == 6 && leftright == 2)
578  return (layer + 21);
579  if (subdet == 4 && leftright == 1)
580  return (4 - layer + 9);
581  if (subdet == 4 && leftright == 2)
582  return (layer + 18);
583  if (subdet == 2 && leftright == 1)
584  return (4 - layer + 12);
585  if (subdet == 2 && leftright == 2)
586  return (layer + 15);
587  if (subdet == 1)
588  return (layer + 30);
589  if (subdet == 3)
590  return (layer + 33);
591  if (subdet == 5)
592  return (layer + 37);
593  assert(false);
594  }
assert(be >=bs)

◆ load()

void TrackerMap::load ( std::string  s = "tmap.svg")

Definition at line 3062 of file TrackerMap.cc.

References gather_cfg::cout, fill(), recoMuon::in, inputfile, mps_splice::line, AlCaHLTBitMon_QueryRunRegistry::string, heppy_batch::val, and relativeConstraints::value.

Referenced by MatrixToProcess.MatrixToProcess::getProcess(), MatrixToProcess.MatrixToProcess::listAll(), and ConfigBuilder.ConfigBuilder::prepare_FILTER().

3062  {
3063  inputfile = new std::ifstream(inputfilename.c_str(), std::ios::in);
3065  int ipos, ipos1, ipos2, id = 0, val = 0;
3066  int nline = 0;
3067  while (getline(*inputfile, line)) {
3068  ipos1 = line.find("value=\"");
3069  if (ipos1 > 0) {
3070  value = line.substr(ipos1 + 7, 10);
3071  ipos = value.find('\"');
3072  value = value.substr(0, ipos);
3073  val = atoi(value.c_str());
3074  }
3075  ipos2 = line.find("detid=\"");
3076  if (ipos2 > 0) {
3077  value = line.substr(ipos2 + 7, 10);
3078  ipos = value.find('\"');
3079  value = value.substr(0, ipos);
3080  id = atoi(value.c_str());
3081  }
3082  if (ipos1 > 0 && ipos2 > 0 && val > 0)
3083  this->fill(id, val);
3084  if (ipos1 > 0 && ipos2 > 0)
3085  nline++;
3086  //if(ipos1>0 && ipos2>0)std::cout << nline << " " << id << " " << val << std::endl;
3087  }
3088  std::cout << nline << " modules found in this svg file " << std::endl;
3089  inputfile->close();
3090  delete inputfile;
3091 }
std::ifstream * inputfile
Definition: TrackerMap.h:672
Definition: value.py:1
void fill(int layer, int ring, int nmod, float x)
Definition: TrackerMap.cc:3443

◆ module()

int TrackerMap::module ( int  fedId,
int  fedCh 
)

Definition at line 3356 of file TrackerMap.cc.

References apvMap, gather_cfg::cout, l1tstage2_dqm_sourceclient-live_cfg::fedId, TmModule::idex, crabWrapper::key, and TmApvPair::mod.

Referenced by getAutomaticRange(), init(), print(), printall(), printlayers(), printonline(), save(), and ~TrackerMap().

3356  {
3357  int key = fedId * 1000 + fedCh;
3358  TmApvPair *apvpair = apvMap[key];
3359  if (apvpair != nullptr) {
3360  return (apvpair->mod->idex);
3361  }
3362  return (0);
3363  std::cout << "*** error in FedTrackerMap module method ***";
3364 }
TmModule * mod
Definition: TmApvPair.h:16
unsigned int idex
Definition: TmModule.h:28
SvgApvPair apvMap
Definition: TrackerMap.h:176

◆ nlayer()

int TrackerMap::nlayer ( int  det,
int  part,
int  lay 
)
inline

Definition at line 607 of file TrackerMap.h.

Referenced by init().

607  {
608  if (det == 3 && part == 1)
609  return lay;
610  if (det == 2 && part == 1)
611  return lay + 9;
612  if (det == 1 && part == 1)
613  return lay + 12;
614  if (det == 1 && part == 3)
615  return lay + 15;
616  if (det == 2 && part == 3)
617  return lay + 18;
618  if (det == 3 && part == 3)
619  return lay + 21;
620  if (det == 1 && part == 2)
621  return lay + 30;
622  if (det == 2 && part == 2)
623  return lay + 33;
624  if (det == 3 && part == 2)
625  return lay + 37;
626  return -1;
627  }
part
Definition: HCALResponse.h:20

◆ onlyPixel()

void TrackerMap::onlyPixel ( bool  onlyPixelfl)
inline

Definition at line 162 of file TrackerMap.h.

References onlyPixelFlag.

162 { onlyPixelFlag = onlyPixelfl; };
bool onlyPixelFlag
Definition: TrackerMap.h:683

◆ phival()

double TrackerMap::phival ( double  x,
double  y 
)
inline

Definition at line 205 of file TrackerMap.h.

References M_PI, phi, x, and y.

Referenced by drawModule().

205  {
206  double phi;
207  double phi1 = atan(y / x);
208  phi = phi1;
209  if (y < 0. && x > 0)
210  phi = phi1 + 2. * M_PI;
211  if (x < 0.)
212  phi = phi1 + M_PI;
213  if (fabs(y) < 0.000001 && x > 0)
214  phi = 0;
215  if (fabs(y) < 0.000001 && x < 0)
216  phi = M_PI;
217  if (fabs(x) < 0.000001 && y > 0)
218  phi = M_PI / 2.;
219  if (fabs(x) < 0.000001 && y < 0)
220  phi = 3. * M_PI / 2.;
221 
222  return phi;
223  }
#define M_PI

◆ print()

void TrackerMap::print ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "svgmap" 
)

Definition at line 3096 of file TrackerMap.cc.

References defwindow(), drawModule(), drawPalette(), firstRing, contentValuesFiles::fullPath, recoMuon::in, jsfile, jsfilename, crabWrapper::key, nano_mu_digi_cff::layer, mps_splice::line, maxvalue, minvalue, mod(), module(), ntotRing, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, relativeConstraints::ring, smoduleMap, AlCaHLTBitMon_QueryRunRegistry::string, svgfile, temporary_file, and title.

Referenced by SiStripQualityStatistics::dqmEndJob(), and SiStripQualityStatistics::updateAndSave().

3096  {
3097  temporary_file = false;
3098  std::ostringstream outs;
3099  minvalue = minval;
3100  maxvalue = maxval;
3101  outs << outputfilename << ".xml";
3102  svgfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3103  jsfile = new std::ifstream(edm::FileInPath(jsfilename).fullPath().c_str(), std::ios::in);
3104 
3105  //copy javascript interface from trackermap.txt file
3106  std::string line;
3107  while (getline(*jsfile, line)) {
3108  *svgfile << line << std::endl;
3109  }
3110  jsfile->close();
3111  delete jsfile;
3112  //
3113  if (!print_total) {
3114  for (int layer = 1; layer < 44; layer++) {
3115  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
3116  for (int module = 1; module < 200; module++) {
3117  int key = layer * 100000 + ring * 1000 + module;
3118  TmModule *mod = smoduleMap[key];
3119  if (mod != nullptr && !mod->notInUse()) {
3120  mod->value = mod->value / mod->count;
3121  }
3122  }
3123  }
3124  }
3125  }
3126  if (minvalue >= maxvalue) {
3127  minvalue = 9999999.;
3128  maxvalue = -9999999.;
3129  for (int layer = 1; layer < 44; layer++) {
3130  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
3131  for (int module = 1; module < 200; module++) {
3132  int key = layer * 100000 + ring * 1000 + module;
3133  TmModule *mod = smoduleMap[key];
3134  if (mod != nullptr && !mod->notInUse()) {
3135  if (minvalue > mod->value)
3136  minvalue = mod->value;
3137  if (maxvalue < mod->value)
3138  maxvalue = mod->value;
3139  }
3140  }
3141  }
3142  }
3143  }
3144  for (int layer = 1; layer < 44; layer++) {
3145  // nlay=layer;
3146  defwindow(layer);
3147  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
3148  for (int module = 1; module < 200; module++) {
3149  int key = layer * 100000 + ring * 1000 + module;
3150  TmModule *mod = smoduleMap[key];
3151  if (mod != nullptr && !mod->notInUse()) {
3152  drawModule(mod, key, layer, print_total, svgfile);
3153  }
3154  }
3155  }
3156  }
3157  *svgfile << "</svg:g></svg:svg>" << std::endl;
3158  *svgfile << " <svg:text id=\"Title\" class=\"normalText\" x=\"300\" y=\"0\">" << title << "</svg:text>" << std::endl;
3159  if (printflag)
3161  *svgfile << "</svg:svg>" << std::endl;
3162  *svgfile << "</body></html>" << std::endl;
3163  svgfile->close();
3164  delete svgfile;
3165 }
float minvalue
Definition: TrackerMap.h:675
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
void defwindow(int num_lay)
Definition: TrackerMap.h:397
int firstRing[43]
Definition: TrackerMap.h:655
bool temporary_file
Definition: TrackerMap.h:677
std::ofstream * svgfile
Definition: TrackerMap.h:669
Definition: value.py:1
void drawModule(TmModule *mod, int key, int layer, bool total, std::ofstream *file)
Definition: TrackerMap.cc:561
bool printflag
Definition: TrackerMap.h:191
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
std::string title
Definition: TrackerMap.h:201
float maxvalue
Definition: TrackerMap.h:675
std::ifstream * jsfile
Definition: TrackerMap.h:671
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
int ntotRing[43]
Definition: TrackerMap.h:654
std::string jsfilename
Definition: TrackerMap.h:202

◆ printall()

void TrackerMap::printall ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "svgmap",
int  width = 6000,
int  height = 3200 
)

Definition at line 3903 of file TrackerMap.cc.

References apvMap, apvModuleMap, ccuMap, mps_check::command, gather_cfg::cout, enableFecProcessing, enableFedProcessing, enableHVProcessing, enableLVProcessing, fecModuleMap, l1tstage2_dqm_sourceclient-live_cfg::fedId, fedMap, symbols::filetype, findfile(), firstcrate, firstRing, newFWLiteAna::found, TmCcu::getCcuCrate(), TmApvPair::getFedCh(), TmApvPair::getFedId(), TmPsu::getPsuBoard(), TmPsu::getPsuRack(), TmPsu::idex, TmCcu::idex, TmApvPair::idex, TmModule::idex, B2GTnPMonitor_cfi::idmod, crabWrapper::key, nano_mu_digi_cff::layer, mps_splice::line, mod(), TmApvPair::mod, module(), TmCcu::mpos, ncrates, nfeccrates, TmCcu::nmod, TmPsu::nmod, TmPsu::nmodHV2, TmPsu::nmodHV3, npsuracks, ntotRing, haddnano::ofname, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, conifer::pow(), printlayers(), psuMap, psuModuleMap, runTheMatrix::ret, relativeConstraints::ring, alignCSCRings::s, save(), save_as_fectrackermap(), save_as_fedtrackermap(), save_as_HVtrackermap(), save_as_psutrackermap(), saveGeoTrackerMap, saveWebInterface, smoduleMap, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, TmCcu::text, TmApvPair::text, TmPsu::text, TmPsu::textHV2, TmPsu::textHV3, title, tkMapLog, makeMuonMisalignmentScenario::txtfile, and ApeEstimator_cff::width.

3903  {
3904  //Copy interface
3905  float minval, maxval;
3906  minval = minval1;
3907  maxval = maxval1;
3908  if (tkMapLog && (minval < maxval)) {
3909  minval = pow(10., minval1);
3910  maxval = pow(10., maxval1);
3911  }
3913  if (saveWebInterface) {
3914  width = 6000;
3915  height = 3200;
3916  } else {
3917  size_t found = filetype.find_last_of('.');
3918  filetype = filetype.substr(found + 1);
3919  found = outputfilename.find_last_of('.');
3920  outputfilename = outputfilename.substr(0, found);
3921  }
3922  std::ofstream *ofilename;
3923  std::ifstream *ifilename;
3924  std::ostringstream ofname;
3925  std::string ifname;
3926  std::string line;
3928  if (saveWebInterface) {
3929  ifilename = findfile("viewerHeader.xhtml");
3930  ofname << outputfilename << "viewer.html";
3931  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3932  while (getline(*ifilename, line)) {
3933  *ofilename << line << std::endl;
3934  }
3935  *ofilename << " var tmapname=\"" << outputfilename << "\"" << std::endl;
3936  *ofilename << " var tmaptitle=\"" << title << "\"" << std::endl;
3937  *ofilename << " var ncrates=" << ncrates << ";" << std::endl;
3938  *ofilename << " var nfeccrates=" << nfeccrates << ";" << std::endl;
3939  *ofilename << " var npsuracks=" << npsuracks << ";" << std::endl;
3940  ifilename->close();
3941  delete ifilename;
3942  ifilename = findfile("viewerTrailer.xhtml");
3943  while (getline(*ifilename, line)) {
3944  *ofilename << line << std::endl;
3945  }
3946  ofilename->close();
3947  delete ofilename;
3948  ifilename->close();
3949  delete ifilename;
3950  command = "sed -i \"s/XtmapnameX/" + outputfilename + "/g\" " + ofname.str();
3951  std::cout << "Executing " << command << std::endl;
3952  system(command.c_str());
3953  command = "sed -i \"s/XtmaptitleX/" + title + "/g\" " + ofname.str();
3954  std::cout << "Executing " << command << std::endl;
3955  system(command.c_str());
3956  ofname.str("");
3957 
3958  ifilename = findfile("jqviewer.js");
3959  ofname << "jqviewer.js";
3960  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3961  while (getline(*ifilename, line)) {
3962  *ofilename << line << std::endl;
3963  }
3964  ofilename->close();
3965  delete ofilename;
3966  ifilename->close();
3967  delete ifilename;
3968 
3969  ofname.str("");
3970  ifilename = findfile("crate.js");
3971  ofname << "crate.js";
3972  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3973  while (getline(*ifilename, line)) {
3974  *ofilename << line << std::endl;
3975  }
3976  ofilename->close();
3977  delete ofilename;
3978  ifilename->close();
3979  delete ifilename;
3980 
3981  ofname.str("");
3982  ifilename = findfile("feccrate.js");
3983  ofname << "feccrate.js";
3984  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3985  while (getline(*ifilename, line)) {
3986  *ofilename << line << std::endl;
3987  }
3988  ofilename->close();
3989  delete ofilename;
3990  ifilename->close();
3991  delete ifilename;
3992 
3993  ofname.str("");
3994  ifilename = findfile("rack.js");
3995  ofname << "rack.js";
3996  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3997  while (getline(*ifilename, line)) {
3998  *ofilename << line << std::endl;
3999  }
4000  ofilename->close();
4001  delete ofilename;
4002  ifilename->close();
4003  delete ifilename;
4004 
4005  ofname.str("");
4006  ifilename = findfile("rackhv.js");
4007  ofname << "rackhv.js";
4008  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
4009  while (getline(*ifilename, line)) {
4010  *ofilename << line << std::endl;
4011  }
4012  ofilename->close();
4013  delete ofilename;
4014  ifilename->close();
4015  delete ifilename;
4016 
4017  ofname.str("");
4018  ifilename = findfile("layer.js");
4019  ofname << "layer.js";
4020  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
4021  while (getline(*ifilename, line)) {
4022  *ofilename << line << std::endl;
4023  }
4024  ofilename->close();
4025  delete ofilename;
4026  ifilename->close();
4027  delete ifilename;
4028 
4029  command = "scp -r ../../DQM/TrackerCommon/test/jquery/ .";
4030  std::cout << "Executing " << command << std::endl;
4031  system(command.c_str());
4032  command = "scp -r ../../CommonTools/TrackerMap/data/images/ .";
4033  std::cout << "Executing " << command << std::endl;
4034  system(command.c_str());
4035  }
4036 
4037  std::ostringstream outs;
4038  outs << outputfilename << ".png";
4039  if (saveWebInterface)
4040  save(true, minval, maxval, outs.str(), 3000, 1600);
4041  else {
4042  if (saveGeoTrackerMap)
4043  save(true, minval, maxval, s, width, height);
4044  }
4045  if (saveWebInterface) {
4046  std::ostringstream outs;
4047  outs << outputfilename << ".png";
4048  temporary_file = false;
4049  printlayers(true, minval, maxval, outputfilename);
4050 
4051  //Now print a text file for each layer
4052  std::ofstream *txtfile;
4053  for (int layer = 1; layer < 44; layer++) {
4054  std::ostringstream outs;
4055  outs << outputfilename << "layer" << layer << ".html";
4056  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4057  *txtfile << "<html><head></head> <body>" << std::endl;
4058  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
4059  for (int module = 1; module < 200; module++) {
4060  int key = layer * 100000 + ring * 1000 + module;
4061  TmModule *mod = smoduleMap[key];
4062  if (mod != nullptr && !mod->notInUse()) {
4063  int idmod = mod->idex;
4064  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
4065  std::multimap<const int, TmApvPair *>::iterator pos;
4066  for (pos = apvModuleMap.lower_bound(idmod); pos != apvModuleMap.upper_bound(idmod); ++pos) {
4067  TmApvPair *apvpair = pos->second;
4068  if (apvpair != nullptr) {
4069  *txtfile << apvpair->text << std::endl;
4070  }
4071  }
4072  *txtfile << "</pre><h3>" << mod->name << "</h3>" << std::endl;
4073  }
4074  }
4075  }
4076  *txtfile << "</body></html>" << std::endl;
4077  txtfile->close();
4078  delete txtfile;
4079  }
4080  }
4081  if (enableFedProcessing) {
4082  std::ostringstream outs1, outs2;
4083  if (saveWebInterface)
4084  outs1 << outputfilename << "fed.png";
4085  else
4086  outs1 << outputfilename << "fed." << filetype;
4087  save_as_fedtrackermap(true, 0., 0., outs1.str(), width, height);
4088  if (saveWebInterface) {
4089  outs2 << outputfilename << ".xml";
4090  save_as_fedtrackermap(true, 0., 0., outs2.str(), 3000, 1600);
4091  //And a text file for each crate
4092  std::map<int, int>::iterator i_fed;
4093  std::ofstream *txtfile;
4094  for (int crate = firstcrate; crate < (ncrates + 1); crate++) {
4095  std::ostringstream outs;
4096  outs << outputfilename << "crate" << crate << ".html";
4097  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4098  *txtfile << "<html><head></head> <body>" << std::endl;
4099  for (i_fed = fedMap.begin(); i_fed != fedMap.end(); i_fed++) {
4100  if (i_fed->second == crate) {
4101  int fedId = i_fed->first;
4102  for (int nconn = 0; nconn < 96; nconn++) {
4103  int key = fedId * 1000 + nconn;
4104  TmApvPair *apvPair = apvMap[key];
4105  if (apvPair != nullptr) {
4106  int idmod = apvPair->idex;
4107  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
4108  *txtfile << apvPair->text << std::endl;
4109  std::ostringstream outs;
4110  outs << "fedchannel " << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connects to module "
4111  << apvPair->mod->idex;
4112  *txtfile << "</pre><h3>" << outs.str() << "</h3>" << std::endl;
4113  }
4114  }
4115  }
4116  }
4117  *txtfile << "</body></html>" << std::endl;
4118  txtfile->close();
4119  delete txtfile;
4120  }
4121  }
4122  }
4123  if (enableFecProcessing) {
4124  std::ostringstream outs1, outs2;
4125  if (saveWebInterface)
4126  outs1 << outputfilename << "fec.png";
4127  else
4128  outs1 << outputfilename << "fec." << filetype;
4129  save_as_fectrackermap(true, 0., 0., outs1.str(), width, height);
4130  if (saveWebInterface) {
4131  outs2 << outputfilename << ".xml";
4132  save_as_fectrackermap(true, 0., 0., outs2.str(), 3000, 1600);
4133  //And a text file for each crate
4134  std::ofstream *txtfile;
4135  std::map<int, TmCcu *>::iterator i_ccu;
4136  std::multimap<TmCcu *, TmModule *>::iterator it;
4137  std::pair<std::multimap<TmCcu *, TmModule *>::iterator, std::multimap<TmCcu *, TmModule *>::iterator> ret;
4138  for (int crate = 1; crate < (nfeccrates + 1); crate++) {
4139  std::ostringstream outs;
4140  outs << outputfilename << "feccrate" << crate << ".html";
4141  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4142  *txtfile << "<html><head></head> <body>" << std::endl;
4143  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
4144  TmCcu *ccu = i_ccu->second;
4145  if (ccu != nullptr && ccu->getCcuCrate() == crate) {
4146  int idmod = ccu->idex;
4147  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
4148  *txtfile << ccu->text << std::endl;
4149  std::ostringstream outs;
4150  if (ccu->nmod == 0)
4151  outs << "ccu is in position" << ccu->mpos << "in ring but doesn't seem to have any module connected";
4152  else {
4153  outs << "ccu is in position " << ccu->mpos << " in ring and connects " << ccu->nmod << " modules"
4154  << std::endl;
4155  ret = fecModuleMap.equal_range(ccu);
4156  for (it = ret.first; it != ret.second; ++it) {
4157  outs << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value << "\n\n";
4158  }
4159 
4160  *txtfile << "</pre><h4>" << outs.str() << "</h4>" << std::endl;
4161  } //ifccu->nmod==0
4162  } //if ccu!=0
4163  } //for i_ccu
4164  *txtfile << "</body></html>" << std::endl;
4165  txtfile->close();
4166  } //for int crate
4167  }
4168  }
4169  if (enableLVProcessing) {
4170  std::ostringstream outs3, outs4;
4171  if (saveWebInterface)
4172  outs3 << outputfilename << "psu.png";
4173  else
4174  outs3 << outputfilename << "psu." << filetype;
4175  save_as_psutrackermap(true, 0., 0., outs3.str(), width, height);
4176  if (saveWebInterface) {
4177  outs4 << outputfilename << ".xml";
4178  save_as_psutrackermap(true, 0., 0., outs4.str(), 3000, 1600);
4179  //And a text file for each rack
4180 
4181  std::ofstream *txtfile;
4182  std::map<int, TmPsu *>::iterator ipsu;
4183  std::multimap<TmPsu *, TmModule *>::iterator it;
4184  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
4185  for (int rack = 1; rack < (npsuracks + 1); rack++) {
4186  std::ostringstream outs;
4187 
4188  outs << outputfilename << "psurack" << rack << ".html";
4189  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4190  *txtfile << "<html><head></head> <body>" << std::endl;
4191  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
4192  TmPsu *psu = ipsu->second;
4193  if (psu != nullptr && psu->getPsuRack() == rack) {
4194  *txtfile << "<a name=" << psu->idex << "><pre>" << std::endl;
4195  *txtfile << psu->text << std::endl;
4196  std::ostringstream outs;
4197  if (psu->nmod == 0)
4198  outs << "Ps is in position" << psu->getPsuBoard()
4199  << "in crate but doesn't seem to have any module connected";
4200  else {
4201  outs << "PS is in position " << psu->getPsuBoard() << " in crate and connects to " << psu->nmod
4202  << " modules. " << std::endl;
4203 
4204  ret = psuModuleMap.equal_range(psu);
4205  for (it = ret.first; it != ret.second; ++it) {
4206  outs << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value << " <br>"
4207  << std::endl;
4208  }
4209  *txtfile << "</pre><h4>" << outs.str() << "</h4>" << std::endl;
4210  }
4211  }
4212  }
4213  *txtfile << "</body></html>" << std::endl;
4214  txtfile->close();
4215  }
4216  }
4217  }
4218 
4219  if (enableHVProcessing) {
4220  std::ostringstream outs5, outs6;
4221  if (saveWebInterface)
4222  outs5 << outputfilename << "hv.png";
4223  else
4224  outs5 << outputfilename << "hv." << filetype;
4225  save_as_HVtrackermap(true, 0., 0., outs5.str(), width, height);
4226  if (saveWebInterface) {
4227  outs6 << outputfilename << ".xml";
4228  save_as_HVtrackermap(true, 0., 0., outs6.str(), 3000, 1600);
4229  //And a text file for each rack
4230 
4231  std::ofstream *txtfile;
4232  std::map<int, TmPsu *>::iterator ipsu;
4233  std::multimap<TmPsu *, TmModule *>::iterator it;
4234  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
4235  for (int rack = 1; rack < (npsuracks + 1); rack++) {
4236  std::ostringstream outs;
4237 
4238  outs << outputfilename << "HVrack" << rack << ".html";
4239  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4240  *txtfile << "<html><head></head> <body>" << std::endl;
4241  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
4242  TmPsu *psu = ipsu->second;
4243  if (psu != nullptr && psu->getPsuRack() == rack) {
4244  *txtfile << "<a name=" << psu->idex << "><pre>" << std::endl;
4245  *txtfile << psu->textHV2 << std::endl;
4246  std::ostringstream outsHV2;
4247  if (psu->nmodHV2 == 0)
4248  outsHV2 << "HV Channel002 is in position" << psu->getPsuBoard()
4249  << "in crate but doesn't seem to have any module connected";
4250  else {
4251  outsHV2 << "HV Channel002 is in position " << psu->getPsuBoard() << " in crate and connects to "
4252  << psu->nmodHV2 << " modules. "
4253  << " <br>" << std::endl;
4254 
4255  ret = psuModuleMap.equal_range(psu);
4256  for (it = ret.first; it != ret.second; ++it) {
4257  if ((*it).second->HVchannel == 2) {
4258  outsHV2 << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value
4259  << " <br>" << std::endl;
4260  }
4261  }
4262  *txtfile << "</pre><h4>" << outsHV2.str() << "</h4>" << std::endl;
4263  }
4264 
4265  *txtfile << psu->textHV3 << std::endl;
4266  std::ostringstream outsHV3;
4267  if (psu->nmodHV3 == 0)
4268  outsHV3 << "HV Channel003 is in position" << psu->getPsuBoard()
4269  << "in crate but doesn't seem to have any module connected";
4270  else {
4271  outsHV3 << "HV Channel003 is in position " << psu->getPsuBoard() << " in crate and connects to "
4272  << psu->nmodHV3 << " modules. "
4273  << " <br>" << std::endl;
4274 
4275  ret = psuModuleMap.equal_range(psu);
4276  for (it = ret.first; it != ret.second; ++it) {
4277  if ((*it).second->HVchannel == 3) {
4278  outsHV3 << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value
4279  << " <br>" << std::endl;
4280  }
4281  }
4282  *txtfile << "</pre><h4>" << outsHV3.str() << "</h4>" << std::endl;
4283  }
4284  }
4285  }
4286  *txtfile << "</body></html>" << std::endl;
4287  txtfile->close();
4288  }
4289  }
4290  }
4291 }
TmModule * mod
Definition: TmApvPair.h:16
bool tkMapLog
Definition: TrackerMap.h:198
std::string text
Definition: TmApvPair.h:12
ModApvPair apvModuleMap
Definition: TrackerMap.h:178
std::ifstream * findfile(std::string filename)
Definition: TrackerMap.cc:4293
int nfeccrates
Definition: TrackerMap.h:663
MapCcu ccuMap
Definition: TrackerMap.h:183
int nmodHV3
Definition: TmPsu.h:48
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int idex
Definition: TmPsu.h:11
bool saveGeoTrackerMap
Definition: TrackerMap.h:193
ret
prodAgent to be discontinued
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
bool enableFecProcessing
Definition: TrackerMap.h:195
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)
Definition: TrackerMap.cc:2124
bool saveWebInterface
Definition: TrackerMap.h:192
int npsuracks
Definition: TrackerMap.h:664
int getPsuBoard()
Definition: TmPsu.h:31
constexpr int pow(int x)
Definition: conifer.h:24
bool enableFedProcessing
Definition: TrackerMap.h:194
int firstRing[43]
Definition: TrackerMap.h:655
int nmod
Definition: TmCcu.h:14
bool enableHVProcessing
Definition: TrackerMap.h:197
int getFedId()
Definition: TmApvPair.h:22
txtfile
Delete all three files at once to make sure the user never sees stale data (e.g.
unsigned int idex
Definition: TmModule.h:28
void save_as_psutrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=100+(360+100) *5+300, int height=50+(150+50) *6+300)
Definition: TrackerMap.cc:2447
int nmod
Definition: TmPsu.h:46
void save_as_fedtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fed_svgmap.svg", int width=100+(90+100) *31+300, int height=150+(2940+150) *1+300)
Definition: TrackerMap.cc:2755
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
Definition: TrackerMap.cc:844
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
int getCcuCrate()
Definition: TmCcu.h:18
int getPsuRack()
Definition: TmPsu.h:22
int nmodHV2
Definition: TmPsu.h:47
void printlayers(bool print_total=true, float minval=0., float maxval=0., std::string s="layer")
Definition: TrackerMap.cc:4311
int mpos
Definition: TmCcu.h:17
SvgFed fedMap
Definition: TrackerMap.h:180
PsuModule psuModuleMap
Definition: TrackerMap.h:189
int firstcrate
Definition: TrackerMap.h:662
FecModule fecModuleMap
Definition: TrackerMap.h:185
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
int idex
Definition: TmCcu.h:12
std::string textHV3
Definition: TmPsu.h:54
SvgApvPair apvMap
Definition: TrackerMap.h:176
std::string text
Definition: TmPsu.h:52
int idex
Definition: TmApvPair.h:14
bool enableLVProcessing
Definition: TrackerMap.h:196
std::string textHV2
Definition: TmPsu.h:53
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmCcu.h:4
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
std::string text
Definition: TmCcu.h:10
Definition: TmPsu.h:6
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)
Definition: TrackerMap.cc:1834
int getFedCh()
Definition: TmApvPair.h:18
int ntotRing[43]
Definition: TrackerMap.h:654

◆ printlayers()

void TrackerMap::printlayers ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "layer" 
)

Definition at line 4311 of file TrackerMap.cc.

References defwindow(), drawModule(), firstRing, crabWrapper::key, nano_mu_digi_cff::layer, maxvalue, minvalue, mod(), module(), ntotRing, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, relativeConstraints::ring, saveAsSingleLayer, smoduleMap, and makeMuonMisalignmentScenario::xmlfile.

Referenced by printall(), and printonline().

4311  {
4312  std::ofstream *xmlfile;
4313  saveAsSingleLayer = true;
4314  if (!print_total) {
4315  for (int layer = 1; layer < 44; layer++) {
4316  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
4317  for (int module = 1; module < 200; module++) {
4318  int key = layer * 100000 + ring * 1000 + module;
4319  TmModule *mod = smoduleMap[key];
4320  if (mod != nullptr && !mod->notInUse()) {
4321  mod->value = mod->value / mod->count;
4322  }
4323  }
4324  }
4325  }
4326  }
4327  if (minvalue >= maxvalue) {
4328  minvalue = 9999999.;
4329  maxvalue = -9999999.;
4330  for (int layer = 1; layer < 44; layer++) {
4331  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
4332  for (int module = 1; module < 200; module++) {
4333  int key = layer * 100000 + ring * 1000 + module;
4334  TmModule *mod = smoduleMap[key];
4335  if (mod != nullptr && !mod->notInUse()) {
4336  if (minvalue > mod->value)
4337  minvalue = mod->value;
4338  if (maxvalue < mod->value)
4339  maxvalue = mod->value;
4340  }
4341  }
4342  }
4343  }
4344  }
4345  for (int layer = 1; layer < 44; layer++) {
4346  std::ostringstream outs;
4347  outs << outputfilename << "layer" << layer << ".xml";
4348  xmlfile = new std::ofstream(outs.str().c_str(), std::ios::out);
4349  *xmlfile << "<?xml version=\"1.0\" standalone=\"no\"?>" << std::endl;
4350  *xmlfile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
4351  *xmlfile << "xmlns:svg=\"http://www.w3.org/2000/svg\"" << std::endl;
4352  *xmlfile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\" >" << std::endl;
4353  *xmlfile << "<script type=\"text/ecmascript\" xlink:href=\"layer.js\" />" << std::endl;
4354  *xmlfile << "<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" "
4355  "onload=\"TrackerLayer.init()\">"
4356  << std::endl;
4357  if (layer < 31)
4358  *xmlfile << "<g id=\"layer\" transform=\" translate(0,400) rotate(270) scale(1.,1.)\" > " << std::endl;
4359  else
4360  *xmlfile << "<g id=\"layer\" transform=\" translate(0,400) rotate(270) scale(1.,0.8)\" > " << std::endl;
4361  *xmlfile << "<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />" << std::endl;
4362  *xmlfile << "<svg:polygon id=\"fed\" mapAttribute=\"fed\" points=\"250,40 250,10 230,10 230,40\" "
4363  "onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" "
4364  "fill=\"rgb(0,127,255)\"/>"
4365  << std::endl;
4366  *xmlfile << "<svg:polygon id=\"fec\" mapAttribute=\"fec\" points=\"228,40 228,10 208,10 208,40\" "
4367  "onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" "
4368  "fill=\"rgb(0,127,255)\"/>"
4369  << std::endl;
4370  *xmlfile << "<svg:polygon id=\"lv\" mapAttribute=\"lv\" points=\"206,40 206,10 186,10 186,40\" "
4371  "onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" "
4372  "fill=\"rgb(0,127,255)\"/>"
4373  << std::endl;
4374  *xmlfile << "<svg:polygon id=\"hv\" mapAttribute=\"hv\" points=\"184,40 184,10 164,10 164,40\" "
4375  "onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" "
4376  "fill=\"rgb(0,127,255)\"/>"
4377  << std::endl;
4378  *xmlfile << "<svg:polygon id=\"plot\" mapAttribute=\"plot\" points=\"155,45 155,5 135,5 135,45\" "
4379  "onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" onmouseout=\"chooseMap(evt);\" "
4380  "fill=\"rgb(200,0,0)\"/>"
4381  << std::endl;
4382 
4383  // nlay=layer;
4384  defwindow(layer);
4385  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
4386  for (int module = 1; module < 200; module++) {
4387  int key = layer * 100000 + ring * 1000 + module;
4388  TmModule *mod = smoduleMap[key];
4389  if (mod != nullptr && !mod->notInUse()) {
4390  drawModule(mod, key, layer, print_total, xmlfile);
4391  }
4392  }
4393  }
4394  *xmlfile << "</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\">" << std::endl;
4395  *xmlfile << "<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
4396  *xmlfile << "<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
4397  *xmlfile << "<tspan id=\"line3\" x=\"40\" y=\"90\"> </tspan> " << std::endl;
4398  *xmlfile << "<tspan id=\"line4\" x=\"40\" y=\"120\"> </tspan> " << std::endl;
4399  if (layer > 33) {
4400  *xmlfile << "<tspan mapAttribute=\"fed\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4401  "onmouseout=\"chooseMap(evt);\" x=\"15\" y=\"228\" font-size=\"12\" font-family=\"arial\" "
4402  "fill=\"white\">FED</tspan> "
4403  << std::endl;
4404  *xmlfile << "<tspan mapAttribute=\"fec\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4405  "onmouseout=\"chooseMap(evt);\" x=\"15\" y=\"258\" font-size=\"12\" font-family=\"arial\" "
4406  "fill=\"white\">FEC</tspan> "
4407  << std::endl;
4408  *xmlfile << "<tspan mapAttribute=\"lv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4409  "onmouseout=\"chooseMap(evt);\" x=\"18\" y=\"289\" font-size=\"12\" font-family=\"arial\" "
4410  "fill=\"white\">LV</tspan> "
4411  << std::endl;
4412  *xmlfile << "<tspan mapAttribute=\"hv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4413  "onmouseout=\"chooseMap(evt);\" x=\"18\" y=\"319\" font-size=\"12\" font-family=\"arial\" "
4414  "fill=\"white\">HV</tspan> "
4415  << std::endl;
4416  *xmlfile << "<tspan mapAttribute=\"plot\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4417  "onmouseout=\"chooseMap(evt);\" x=\"12\" y=\"360\" font-size=\"12\" font-family=\"arial\" "
4418  "fill=\"white\">PLOT</tspan> "
4419  << std::endl;
4420  } else {
4421  *xmlfile << "<tspan mapAttribute=\"fed\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4422  "onmouseout=\"chooseMap(evt);\" x=\"21\" y=\"228\" font-size=\"12\" font-family=\"arial\" "
4423  "fill=\"white\">FED</tspan> "
4424  << std::endl;
4425  *xmlfile << "<tspan mapAttribute=\"fec\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4426  "onmouseout=\"chooseMap(evt);\" x=\"21\" y=\"258\" font-size=\"12\" font-family=\"arial\" "
4427  "fill=\"white\">FEC</tspan> "
4428  << std::endl;
4429  *xmlfile << "<tspan mapAttribute=\"lv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4430  "onmouseout=\"chooseMap(evt);\" x=\"24\" y=\"289\" font-size=\"12\" font-family=\"arial\" "
4431  "fill=\"white\">LV</tspan> "
4432  << std::endl;
4433  *xmlfile << "<tspan mapAttribute=\"hv\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4434  "onmouseout=\"chooseMap(evt);\" x=\"24\" y=\"319\" font-size=\"12\" font-family=\"arial\" "
4435  "fill=\"white\">HV</tspan> "
4436  << std::endl;
4437  *xmlfile << "<tspan mapAttribute=\"plot\" onclick=\"chooseMap(evt);\" onmouseover=\"chooseMap(evt);\" "
4438  "onmouseout=\"chooseMap(evt);\" x=\"17\" y=\"360\" font-size=\"12\" font-family=\"arial\" "
4439  "fill=\"white\">PLOT</tspan> "
4440  << std::endl;
4441  }
4442  *xmlfile << " </text> </svg>" << std::endl;
4443  xmlfile->close();
4444  delete xmlfile;
4445  }
4446  saveAsSingleLayer = false;
4447 }
float minvalue
Definition: TrackerMap.h:675
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
void defwindow(int num_lay)
Definition: TrackerMap.h:397
int firstRing[43]
Definition: TrackerMap.h:655
bool saveAsSingleLayer
Definition: TrackerMap.h:681
Definition: value.py:1
void drawModule(TmModule *mod, int key, int layer, bool total, std::ofstream *file)
Definition: TrackerMap.cc:561
xmlfile
Make an XML representation of the misalignment.
float maxvalue
Definition: TrackerMap.h:675
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
int ntotRing[43]
Definition: TrackerMap.h:654

◆ printonline()

void TrackerMap::printonline ( )

Definition at line 3560 of file TrackerMap.cc.

References apvMap, apvModuleMap, ccuMap, mps_check::command, gather_cfg::cout, enableFecProcessing, enableFedProcessing, enableHVProcessing, enableLVProcessing, fecModuleMap, l1tstage2_dqm_sourceclient-live_cfg::fedId, fedMap, findfile(), firstcrate, firstRing, TmCcu::getCcuCrate(), TmApvPair::getFedCh(), TmApvPair::getFedId(), TmPsu::getPsuBoard(), TmPsu::getPsuRack(), gmaxvalue, gminvalue, TmPsu::idex, TmCcu::idex, TmApvPair::idex, TmModule::idex, B2GTnPMonitor_cfi::idmod, crabWrapper::key, nano_mu_digi_cff::layer, mps_splice::line, mod(), TmApvPair::mod, module(), TmCcu::mpos, ncrates, nfeccrates, TmCcu::nmod, TmPsu::nmod, TmPsu::nmodHV2, TmPsu::nmodHV3, npsuracks, ntotRing, haddnano::ofname, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printlayers(), psuMap, psuModuleMap, runTheMatrix::ret, relativeConstraints::ring, save(), save_as_fectrackermap(), save_as_fedtrackermap(), save_as_HVtrackermap(), save_as_psutrackermap(), smoduleMap, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, TmCcu::text, TmApvPair::text, TmPsu::text, TmPsu::textHV2, TmPsu::textHV3, title, and makeMuonMisalignmentScenario::txtfile.

3560  {
3561  //Copy interface
3562  std::ofstream *ofilename;
3563  std::ifstream *ifilename;
3564  std::ostringstream ofname;
3565  std::string ifname;
3567  std::string line;
3568  std::string outputfilename = "dqmtmap";
3569  ifilename = findfile("viewerHeader.xhtml");
3570  ofname << outputfilename << "viewer.html";
3571  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3572  while (getline(*ifilename, line)) {
3573  *ofilename << line << std::endl;
3574  }
3575  *ofilename << " var tmapname=\"" << outputfilename << "\"" << std::endl;
3576  *ofilename << " var tmaptitle=\"" << title << "\"" << std::endl;
3577  *ofilename << " var ncrates=" << ncrates << ";" << std::endl;
3578  *ofilename << " var nfeccrates=" << nfeccrates << ";" << std::endl;
3579  *ofilename << " var npsuracks=" << npsuracks << ";" << std::endl;
3580 
3581  ifilename->close();
3582  delete ifilename;
3583 
3584  ifilename = findfile("viewerTrailer.xhtml");
3585  while (getline(*ifilename, line)) {
3586  *ofilename << line << std::endl;
3587  }
3588  ofilename->close();
3589  delete ofilename;
3590  command = "sed -i \"s/XtmapnameX/" + outputfilename + "/g\" " + ofname.str();
3591  std::cout << "Executing " << command << std::endl;
3592  system(command.c_str());
3593  command = "sed -i \"s/XtmaptitleX/" + title + "/g\" " + ofname.str();
3594  std::cout << "Executing " << command << std::endl;
3595  system(command.c_str());
3596  ofname.str("");
3597  ifilename->close();
3598  delete ifilename;
3599 
3600  ifilename = findfile("jqviewer.js");
3601  ofname << "jqviewer.js";
3602  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3603  while (getline(*ifilename, line)) {
3604  *ofilename << line << std::endl;
3605  }
3606  ofname.str("");
3607  ofilename->close();
3608  delete ofilename;
3609  ifilename->close();
3610  delete ifilename;
3611 
3612  ifilename = findfile("crate.js");
3613  ofname << "crate.js";
3614  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3615  while (getline(*ifilename, line)) {
3616  *ofilename << line << std::endl;
3617  }
3618  ofname.str("");
3619  ofilename->close();
3620  delete ofilename;
3621  ifilename->close();
3622  delete ifilename;
3623 
3624  ifilename = findfile("feccrate.js");
3625  ofname << "feccrate.js";
3626  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3627  while (getline(*ifilename, line)) {
3628  *ofilename << line << std::endl;
3629  }
3630  ofname.str("");
3631  ofilename->close();
3632  delete ofilename;
3633  ifilename->close();
3634  delete ifilename;
3635 
3636  ifilename = findfile("layer.js");
3637  ofname << "layer.js";
3638  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3639  while (getline(*ifilename, line)) {
3640  *ofilename << line << std::endl;
3641  }
3642  ofname.str("");
3643  ofilename->close();
3644  delete ofilename;
3645  ifilename->close();
3646  delete ifilename;
3647 
3648  ifilename = findfile("rack.js");
3649  ofname << "rack.js";
3650  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3651  while (getline(*ifilename, line)) {
3652  *ofilename << line << std::endl;
3653  }
3654  ofname.str("");
3655  ofilename->close();
3656  delete ofilename;
3657  ifilename->close();
3658  delete ifilename;
3659  ofname.str("");
3660 
3661  ifilename = findfile("rackhv.js");
3662  ofname << "rackhv.js";
3663  ofilename = new std::ofstream(ofname.str().c_str(), std::ios::out);
3664  while (getline(*ifilename, line)) {
3665  *ofilename << line << std::endl;
3666  }
3667  ofname.str("");
3668  ofilename->close();
3669  delete ofilename;
3670  ifilename->close();
3671  delete ifilename;
3672 
3673  std::ostringstream outs, outs1, outs2;
3674  outs << outputfilename << ".png";
3675  save(true, gminvalue, gmaxvalue, outs.str(), 3000, 1600);
3676  temporary_file = false;
3678 
3679  //Now print a text file for each layer
3680  std::ofstream *txtfile;
3681  for (int layer = 1; layer < 44; layer++) {
3682  std::ostringstream outs;
3683  outs << outputfilename << "layer" << layer << ".html";
3684  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3685  *txtfile << "<html><head></head> <body>" << std::endl;
3686  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
3687  for (int module = 1; module < 200; module++) {
3688  int key = layer * 100000 + ring * 1000 + module;
3689  TmModule *mod = smoduleMap[key];
3690  if (mod != nullptr && !mod->notInUse()) {
3691  int idmod = mod->idex;
3692  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
3693  std::multimap<const int, TmApvPair *>::iterator pos;
3694  for (pos = apvModuleMap.lower_bound(idmod); pos != apvModuleMap.upper_bound(idmod); ++pos) {
3695  TmApvPair *apvpair = pos->second;
3696  if (apvpair != nullptr) {
3697  *txtfile << apvpair->text << std::endl;
3698  }
3699  }
3700  *txtfile << "</pre><h3>" << mod->name << "</h3>" << std::endl;
3701  }
3702  }
3703  }
3704  *txtfile << "</body></html>" << std::endl;
3705  txtfile->close();
3706  delete txtfile;
3707  }
3708  if (enableFedProcessing) {
3709  outs1 << outputfilename << "fed.png";
3710  save_as_fedtrackermap(true, gminvalue, gmaxvalue, outs1.str(), 6000, 3200);
3711  outs2 << outputfilename << ".xml";
3712  save_as_fedtrackermap(true, gminvalue, gmaxvalue, outs2.str(), 3000, 1600);
3713  //And a text file for each crate
3714  std::map<int, int>::iterator i_fed;
3715  std::ofstream *txtfile;
3716  for (int crate = firstcrate; crate < (ncrates + 1); crate++) {
3717  std::ostringstream outs;
3718  outs << outputfilename << "crate" << crate << ".html";
3719  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3720  *txtfile << "<html><head></head> <body>" << std::endl;
3721  for (i_fed = fedMap.begin(); i_fed != fedMap.end(); i_fed++) {
3722  if (i_fed->second == crate) {
3723  int fedId = i_fed->first;
3724  for (int nconn = 0; nconn < 96; nconn++) {
3725  int key = fedId * 1000 + nconn;
3726  TmApvPair *apvPair = apvMap[key];
3727  if (apvPair != nullptr) {
3728  int idmod = apvPair->idex;
3729  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
3730  *txtfile << apvPair->text << std::endl;
3731  std::ostringstream outs;
3732  outs << "fedchannel " << apvPair->getFedId() << "/" << apvPair->getFedCh() << " connects to module "
3733  << apvPair->mod->idex;
3734  *txtfile << "</pre><h3>" << outs.str() << "</h3>" << std::endl;
3735  }
3736  }
3737  }
3738  }
3739  *txtfile << "</body></html>" << std::endl;
3740  txtfile->close();
3741  delete txtfile;
3742  }
3743  }
3744  if (enableFecProcessing) {
3745  std::ostringstream outs1, outs2;
3746  outs1 << outputfilename << "fec.png";
3747  save_as_fectrackermap(true, gminvalue, gmaxvalue, outs1.str(), 6000, 3200);
3748  outs2 << outputfilename << ".xml";
3749  save_as_fectrackermap(true, gminvalue, gmaxvalue, outs2.str(), 3000, 1600);
3750  //And a text file for each crate
3751  std::ofstream *txtfile;
3752  std::map<int, TmCcu *>::iterator i_ccu;
3753  std::multimap<TmCcu *, TmModule *>::iterator it;
3754  std::pair<std::multimap<TmCcu *, TmModule *>::iterator, std::multimap<TmCcu *, TmModule *>::iterator> ret;
3755  for (int crate = 1; crate < (nfeccrates + 1); crate++) {
3756  std::ostringstream outs;
3757  outs << outputfilename << "feccrate" << crate << ".html";
3758  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3759  *txtfile << "<html><head></head> <body>" << std::endl;
3760  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
3761  TmCcu *ccu = i_ccu->second;
3762  if (ccu != nullptr && ccu->getCcuCrate() == crate) {
3763  int idmod = ccu->idex;
3764  *txtfile << "<a name=" << idmod << "><pre>" << std::endl;
3765  *txtfile << ccu->text << std::endl;
3766  std::ostringstream outs;
3767  if (ccu->nmod == 0)
3768  outs << "ccu is in position" << ccu->mpos << "in ring but doesn't seem to have any module connected";
3769  else {
3770  outs << "ccu is in position " << ccu->mpos << " in ring and connects " << ccu->nmod << " modules"
3771  << std::endl;
3772  ret = fecModuleMap.equal_range(ccu);
3773  for (it = ret.first; it != ret.second; ++it) {
3774  outs << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value << "\n\n";
3775  }
3776 
3777  *txtfile << "</pre><h4>" << outs.str() << "</h4>" << std::endl;
3778  } //ifccu->nmod==0
3779  } //if ccu!=0
3780  } //for i_ccu
3781  *txtfile << "</body></html>" << std::endl;
3782  txtfile->close();
3783  delete txtfile;
3784  } //for int crate
3785  }
3786  if (enableLVProcessing) {
3787  std::ostringstream outs3, outs4;
3788  outs3 << outputfilename << "psu.png";
3789  save_as_psutrackermap(true, gminvalue, gmaxvalue, outs3.str(), 6000, 3200);
3790 
3791  outs4 << outputfilename << ".xml";
3792  save_as_psutrackermap(true, gminvalue, gmaxvalue, outs4.str(), 3000, 1600);
3793  //And a text file for each rack
3794 
3795  std::ofstream *txtfile;
3796  std::map<int, TmPsu *>::iterator ipsu;
3797  std::multimap<TmPsu *, TmModule *>::iterator it;
3798  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
3799  for (int rack = 1; rack < (npsuracks + 1); rack++) {
3800  std::ostringstream outs;
3801 
3802  outs << outputfilename << "psurack" << rack << ".html";
3803  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3804  *txtfile << "<html><head></head> <body>" << std::endl;
3805  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
3806  TmPsu *psu = ipsu->second;
3807  if (psu != nullptr && psu->getPsuRack() == rack) {
3808  *txtfile << "<a name=" << psu->idex << "><pre>" << std::endl;
3809  *txtfile << psu->text << std::endl;
3810  std::ostringstream outs;
3811  if (psu->nmod == 0)
3812  outs << "Ps is in position" << psu->getPsuBoard()
3813  << "in crate but doesn't seem to have any module connected";
3814  else {
3815  outs << "PS is in position " << psu->getPsuBoard() << " in crate and connects to " << psu->nmod
3816  << " modules. " << std::endl;
3817 
3818  ret = psuModuleMap.equal_range(psu);
3819  for (it = ret.first; it != ret.second; ++it) {
3820  outs << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value << " <br>"
3821  << std::endl;
3822  }
3823  *txtfile << "</pre><h4>" << outs.str() << "</h4>" << std::endl;
3824  }
3825  }
3826  }
3827  *txtfile << "</body></html>" << std::endl;
3828  txtfile->close();
3829  delete txtfile;
3830  }
3831  }
3832 
3833  if (enableHVProcessing) {
3834  std::ostringstream outs5, outs6;
3835  outs5 << outputfilename << "hv.png";
3836  save_as_HVtrackermap(true, gminvalue, gmaxvalue, outs5.str(), 6000, 3200);
3837 
3838  outs6 << outputfilename << ".xml";
3839  save_as_HVtrackermap(true, gminvalue, gmaxvalue, outs6.str(), 3000, 1600);
3840  //And a text file for each rack
3841 
3842  std::ofstream *txtfile;
3843  std::map<int, TmPsu *>::iterator ipsu;
3844  std::multimap<TmPsu *, TmModule *>::iterator it;
3845  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
3846  for (int rack = 1; rack < (npsuracks + 1); rack++) {
3847  std::ostringstream outs;
3848 
3849  outs << outputfilename << "HVrack" << rack << ".html";
3850  txtfile = new std::ofstream(outs.str().c_str(), std::ios::out);
3851  *txtfile << "<html><head></head> <body>" << std::endl;
3852  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
3853  TmPsu *psu = ipsu->second;
3854  if (psu != nullptr && psu->getPsuRack() == rack) {
3855  *txtfile << "<a name=" << psu->idex << "><pre>" << std::endl;
3856  *txtfile << psu->textHV2 << std::endl;
3857  std::ostringstream outsHV2;
3858  if (psu->nmodHV2 == 0)
3859  outsHV2 << "HV Channel002 is in position" << psu->getPsuBoard()
3860  << "in crate but doesn't seem to have any module connected";
3861  else {
3862  outsHV2 << "HV Channel002 is in position " << psu->getPsuBoard() << " in crate and connects to "
3863  << psu->nmodHV2 << " modules. "
3864  << " <br>" << std::endl;
3865 
3866  ret = psuModuleMap.equal_range(psu);
3867  for (it = ret.first; it != ret.second; ++it) {
3868  if ((*it).second->HVchannel == 2) {
3869  outsHV2 << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value
3870  << " <br>" << std::endl;
3871  }
3872  }
3873  *txtfile << "</pre><h4>" << outsHV2.str() << "</h4>" << std::endl;
3874  }
3875 
3876  *txtfile << psu->textHV3 << std::endl;
3877  std::ostringstream outsHV3;
3878  if (psu->nmodHV3 == 0)
3879  outsHV3 << "HV Channel003 is in position" << psu->getPsuBoard()
3880  << "in crate but doesn't seem to have any module connected";
3881  else {
3882  outsHV3 << "HV Channel003 is in position " << psu->getPsuBoard() << " in crate and connects to "
3883  << psu->nmodHV3 << " modules. "
3884  << " <br>" << std::endl;
3885 
3886  ret = psuModuleMap.equal_range(psu);
3887  for (it = ret.first; it != ret.second; ++it) {
3888  if ((*it).second->HVchannel == 3) {
3889  outsHV3 << (*it).second->idex << " " << (*it).second->name << " value= " << (*it).second->value
3890  << " <br>" << std::endl;
3891  }
3892  }
3893  *txtfile << "</pre><h4>" << outsHV3.str() << "</h4>" << std::endl;
3894  }
3895  }
3896  }
3897  *txtfile << "</body></html>" << std::endl;
3898  txtfile->close();
3899  delete txtfile;
3900  }
3901  }
3902 }
TmModule * mod
Definition: TmApvPair.h:16
std::string text
Definition: TmApvPair.h:12
ModApvPair apvModuleMap
Definition: TrackerMap.h:178
std::ifstream * findfile(std::string filename)
Definition: TrackerMap.cc:4293
int nfeccrates
Definition: TrackerMap.h:663
MapCcu ccuMap
Definition: TrackerMap.h:183
int nmodHV3
Definition: TmPsu.h:48
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
int idex
Definition: TmPsu.h:11
ret
prodAgent to be discontinued
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
bool enableFecProcessing
Definition: TrackerMap.h:195
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)
Definition: TrackerMap.cc:2124
int npsuracks
Definition: TrackerMap.h:664
int getPsuBoard()
Definition: TmPsu.h:31
bool enableFedProcessing
Definition: TrackerMap.h:194
int firstRing[43]
Definition: TrackerMap.h:655
float gminvalue
Definition: TrackerMap.h:674
int nmod
Definition: TmCcu.h:14
bool enableHVProcessing
Definition: TrackerMap.h:197
int getFedId()
Definition: TmApvPair.h:22
txtfile
Delete all three files at once to make sure the user never sees stale data (e.g.
unsigned int idex
Definition: TmModule.h:28
void save_as_psutrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="psu_svgmap.svg", int width=100+(360+100) *5+300, int height=50+(150+50) *6+300)
Definition: TrackerMap.cc:2447
int nmod
Definition: TmPsu.h:46
void save_as_fedtrackermap(bool print_total=true, float minval=0., float maxval=0., std::string s="fed_svgmap.svg", int width=100+(90+100) *31+300, int height=150+(2940+150) *1+300)
Definition: TrackerMap.cc:2755
void save(bool print_total=true, float minval=0., float maxval=0., std::string s="svgmap.svg", int width=1500, int height=800)
Definition: TrackerMap.cc:844
bool temporary_file
Definition: TrackerMap.h:677
int getCcuCrate()
Definition: TmCcu.h:18
int getPsuRack()
Definition: TmPsu.h:22
int nmodHV2
Definition: TmPsu.h:47
void printlayers(bool print_total=true, float minval=0., float maxval=0., std::string s="layer")
Definition: TrackerMap.cc:4311
int mpos
Definition: TmCcu.h:17
SvgFed fedMap
Definition: TrackerMap.h:180
PsuModule psuModuleMap
Definition: TrackerMap.h:189
int firstcrate
Definition: TrackerMap.h:662
FecModule fecModuleMap
Definition: TrackerMap.h:185
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
int idex
Definition: TmCcu.h:12
std::string textHV3
Definition: TmPsu.h:54
SvgApvPair apvMap
Definition: TrackerMap.h:176
std::string text
Definition: TmPsu.h:52
float gmaxvalue
Definition: TrackerMap.h:674
int idex
Definition: TmApvPair.h:14
bool enableLVProcessing
Definition: TrackerMap.h:196
std::string textHV2
Definition: TmPsu.h:53
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmCcu.h:4
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
std::string text
Definition: TmCcu.h:10
Definition: TmPsu.h:6
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)
Definition: TrackerMap.cc:1834
int getFedCh()
Definition: TmApvPair.h:18
int ntotRing[43]
Definition: TrackerMap.h:654

◆ reset()

void TrackerMap::reset ( void  )

Definition at line 462 of file TrackerMap.cc.

References imoduleMap, and mod().

Referenced by MatrixReader.MatrixReader::__init__(), data_sources.json_list::__next__(), and MatrixReader.MatrixReader::showRaw().

462  {
463  std::map<int, TmModule *>::iterator i_mod;
464  for (i_mod = imoduleMap.begin(); i_mod != imoduleMap.end(); i_mod++) {
465  TmModule *mod = i_mod->second;
466  mod->count = 0;
467  mod->value = 0;
468  mod->red = -1;
469  }
470 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ save()

void TrackerMap::save ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "svgmap.svg",
int  width = 1500,
int  height = 800 
)

Definition at line 844 of file TrackerMap.cc.

References addPixelFlag, newFWLiteAna::bin, DivergingColor::blue, buildLegend(), HltBtagPostValidation_cff::c, cuy::col, mps_check::command, Skims_PA_cff::content, gather_cfg::cout, defwindow(), drawModule(), drawPalette(), corrVsCorr::filename, symbols::filetype, firstRing, newFWLiteAna::found, mps_fire::i, recoMuon::in, crabWrapper::key, MainPageGenerator::l, nano_mu_digi_cff::layer, dqm-mbProfile::log, maxvalue, minvalue, mod(), module(), npoints, ntotRing, onlyPixelFlag, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, DivergingColor::red, relativeConstraints::ring, cond::runnumber, alignCSCRings::s, savefile, saveGeoTrackerMap, smoduleMap, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, title, tkMapLog, vc, ApeEstimator_cff::width, x, and y.

Referenced by SiStripDetVOffTkMapPlotter::analyze(), TkVoltageMapCreator::beginRun(), TrackerDpgAnalysis::beginRun(), SiStripCorrelateNoise::DoPlots(), SiStripQualityStatistics::dqmEndJob(), SiStripCorrelateBadStripAndNoise::endJob(), SiStripPlotGain::endJob(), DetIdSelectorTest::endJob(), BuildTrackerMapPlugin::endJob(), SiStripHitResolFromCalibTree::makeTKMap(), SiStripHitEffFromCalibTree::makeTKMap(), printall(), printonline(), SpecificationBuilder_cfi.Specification::saveAll(), SiStripBaseCondObjDQM::saveTkMap(), and SiStripQualityStatistics::updateAndSave().

844  {
845  printflag = true;
846  bool rangefound = true;
847  if (saveGeoTrackerMap) {
849  std::vector<TPolyLine *> vp;
850  TGaxis *axis = nullptr;
851  size_t found = filetype.find_last_of('.');
852  filetype = filetype.substr(found + 1);
853  found = outputfilename.find_last_of('.');
854  outputfilename = outputfilename.substr(0, found);
855  //outputfilename.erase(outputfilename.begin()+outputfilename.find("."),outputfilename.end());
856  temporary_file = true;
857 
858  //Dev option to produce only one plot
859  //if(outputfilename != "StoNCorrOnTrack")
860  // return;
861 
862  if (filetype == "svg")
863  temporary_file = false;
864  std::ostringstream outs;
865  minvalue = minval;
866  maxvalue = maxval;
867  outs << outputfilename << ".coor";
868  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
869  if (!print_total) {
870  for (int layer = 1; layer < 44; layer++) {
871  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
872  for (int module = 1; module < 200; module++) {
873  int key = layer * 100000 + ring * 1000 + module;
875  if (mod != nullptr && !mod->notInUse()) {
876  mod->value = mod->value / mod->count;
877  }
878  }
879  }
880  }
881  }
882 
883  if (minvalue >= maxvalue) {
884  minvalue = 9999999.;
885  maxvalue = -9999999.;
886  rangefound = false;
887  for (int layer = 1; layer < 44; layer++) {
888  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
889  for (int module = 1; module < 200; module++) {
890  int key = layer * 100000 + ring * 1000 + module;
892  if (mod != nullptr && !mod->notInUse() && mod->count > 0) {
893  rangefound = true;
894  if (minvalue > mod->value)
895  minvalue = mod->value;
896  if (maxvalue < mod->value)
897  maxvalue = mod->value;
898  }
899  }
900  }
901  }
902  }
903  if ((title.find("QTestAlarm") != std::string::npos) || (maxvalue == minvalue) || !rangefound)
904  printflag = false;
905  if (!temporary_file) {
906  *savefile << "<?xml version=\"1.0\" standalone=\"no\" ?>" << std::endl;
907  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
908  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\" " << std::endl;
909  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\">" << std::endl;
910  *savefile << "<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3100 1600"
911  << "\" width=\"" << width << "\" height=\"" << height << "\">" << std::endl;
912  *savefile << "<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3100\" height=\"1600\" /> "
913  << std::endl;
914  *savefile << "<svg:g id=\"tracker\" transform=\"translate(10,1500) rotate(270)\" "
915  "style=\"fill:none;stroke:black;stroke-width:0;\"> "
916  << std::endl;
917  }
918  for (int layer = 1; layer < 44; layer++) {
919  // nlay=layer;
920  defwindow(layer);
921  for (int ring = firstRing[layer - 1]; ring < ntotRing[layer - 1] + firstRing[layer - 1]; ring++) {
922  for (int module = 1; module < 200; module++) {
923  int key = layer * 100000 + ring * 1000 + module;
925  if (mod != nullptr && !mod->notInUse()) {
926  drawModule(mod, key, layer, print_total, savefile);
927  }
928  }
929  }
930  }
931 
932  if (!temporary_file) {
933  *savefile << "</svg:g>" << std::endl;
934  *savefile << " <svg:text id=\"Title\" class=\"normalText\" x=\"300\" y=\"0\">" << title << "</svg:text>"
935  << std::endl;
936  }
937 
938  if (printflag) {
939  if (onlyPixelFlag) {
940  drawPalette(savefile, -30);
941  } else {
943  }
944  }
945  if (!temporary_file) {
946  *savefile << "</svg:svg>" << std::endl;
947  *savefile << "</svg>" << std::endl;
948  }
949  savefile->close();
950  delete savefile;
951 
952  const char *command1;
953  std::string tempfilename = outputfilename + ".coor";
954  if (filetype == "svg") {
955  std::string command = "mv " + tempfilename + " " + outputfilename + ".svg";
956  command1 = command.c_str();
957  std::cout << "Executing " << command1 << std::endl;
958  system(command1);
959  }
960 
961  if (temporary_file) { // create root trackermap image
962  //Variables for TH2Poly bin content and name from temporary .coor file
963  float content;
964  std::string named;
965 
966  int red, green, blue, npoints, colindex, ncolor;
967  double x[4], y[4];
968  std::ifstream tempfile(tempfilename.c_str(), std::ios::in);
969  TCanvas *MyC = new TCanvas("MyC", "TrackerMap", width, height);
970  gPad->SetFillColor(38);
971 
972  if (addPixelFlag) {
973  gPad->Range(0, 0, 3800, 1600);
974  } else if (onlyPixelFlag) {
975  gPad->Range(-100, 0, 800, 1600);
976  } else {
977  gPad->Range(800, 0, 3800, 1600);
978  }
979 
980  //First build palette
981  ncolor = 0;
982  typedef std::map<int, int> ColorList;
983  ColorList colorList;
984  ColorList::iterator pos;
985  TColor *col, *c;
986  std::cout << "tempfilename " << tempfilename << std::endl;
987  while (!tempfile.eof()) {
988  tempfile >> named >> content >> red >> green >> blue >> npoints;
989  colindex = red + green * 1000 + blue * 1000000;
990  pos = colorList.find(colindex);
991  if (pos == colorList.end()) {
992  colorList[colindex] = ncolor + 100;
993  col = gROOT->GetColor(ncolor + 100);
994  if (col)
995  col->SetRGB((Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
996  else
997  c = new TColor(ncolor + 100, (Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
998  vc.push_back(c);
999  ncolor++;
1000  }
1001  for (int i = 0; i < npoints; i++) {
1002  tempfile >> x[i] >> y[i];
1003  }
1004  }
1005 
1006  if (ncolor > 0 && ncolor < 10000) {
1007  Int_t colors[10000];
1008  for (int i = 0; i < ncolor; i++) {
1009  colors[i] = i + 100;
1010  }
1011  gStyle->SetPalette(ncolor, colors);
1012  }
1013 
1014  tempfile.clear();
1015  tempfile.seekg(0, std::ios::beg);
1016  std::cout << "created palette with " << ncolor << " colors" << std::endl;
1017 
1018  //TH2Poly Tracker Map for Strip
1019  TH2Poly *StripMap = new TH2Poly("StripSummary", "", 775, 3600, 0, 1350);
1020  StripMap->SetFloat(true);
1021  StripMap->GetXaxis()->SetTitle("");
1022  StripMap->GetYaxis()->SetTitle("");
1023  StripMap->SetStats(false);
1024  int siterator = 0;
1025 
1026  while (!tempfile.eof()) { //create polylines
1027  siterator++;
1028  //Get TH2Poly bin name and content from temporary .coor file
1029  tempfile >> named >> content >> red >> green >> blue >> npoints;
1030 
1031  for (int i = 0; i < npoints; i++) {
1032  tempfile >> x[i] >> y[i];
1033  }
1034  colindex = red + green * 1000 + blue * 1000000;
1035  pos = colorList.find(colindex);
1036  if (pos != colorList.end()) {
1037  TPolyLine *pline = new TPolyLine(npoints, y, x);
1038  vp.push_back(pline);
1039  pline->SetFillColor(colorList[colindex]);
1040 
1041  TGraph *bin = new TGraph(npoints, y, x);
1042  //Fill only 15145 TH2Poly bins (Strip only), instead of 16588 bins (Pixel+Strip, old)
1043  if ((siterator >= 1 && siterator <= 3608) || (siterator >= 4281 && siterator <= 7888) ||
1044  (siterator >= 8657 && siterator <= 16588)) {
1045  bin->SetName(named.c_str());
1046  StripMap->AddBin(bin);
1047  StripMap->Fill(named.c_str(), content);
1048  }
1049 
1050  pline->SetLineWidth(0);
1051  pline->Draw("f");
1052  }
1053  }
1054  if (printflag) {
1055  float lminvalue = minvalue;
1056  float lmaxvalue = maxvalue;
1057  if (tkMapLog) {
1058  lminvalue = log(minvalue) / log(10);
1059  lmaxvalue = log(maxvalue) / log(10);
1060  }
1061  if (onlyPixelFlag) {
1062  axis = new TGaxis(-30, 36, -30, 1530, lminvalue, lmaxvalue, 510, "+L");
1063  } else {
1064  axis = new TGaxis(3660, 36, 3660, 1530, lminvalue, lmaxvalue, 510, "+L");
1065  }
1066  axis->SetLabelSize(0.02);
1067  axis->Draw();
1068  }
1069  TLatex l;
1070  l.SetTextSize(0.03);
1071  l.DrawLatex(950, 1330, "TID");
1072  l.DrawLatex(2300, 1330, "TEC");
1073  l.DrawLatex(300, 1330, "FPIX");
1074  l.DrawLatex(20, 560, "BPIX L1");
1075  l.DrawLatex(500, 385, "BPIX L2");
1076  l.DrawLatex(500, 945, "BPIX L3");
1077  l.SetTextSize(0.04);
1078  std::string fulltitle = title;
1079  if (tkMapLog && (fulltitle.find("Log10 scale") == std::string::npos))
1080  fulltitle += ": Log10 scale";
1081  if (onlyPixelFlag) {
1082  l.DrawLatex(30, 1500, fulltitle.c_str());
1083  } else {
1084  l.DrawLatex(850, 1500, fulltitle.c_str());
1085  }
1086  if (onlyPixelFlag) {
1087  l.DrawLatex(380, 40, "-z");
1088  } else {
1089  l.DrawLatex(1730, 40, "-z");
1090  }
1091  if (onlyPixelFlag) {
1092  l.DrawLatex(380, 1330, "+z");
1093  } else {
1094  l.DrawLatex(1730, 1360, "+z");
1095  }
1096  l.DrawLatex(1085, 330, "TIB L1");
1097  l.DrawLatex(1085, 1000, "TIB L2");
1098  l.DrawLatex(1585, 330, "TIB L3");
1099  l.DrawLatex(1585, 1000, "TIB L4");
1100  l.DrawLatex(2085, 330, "TOB L1");
1101  l.DrawLatex(2085, 1000, "TOB L2");
1102  l.DrawLatex(2585, 330, "TOB L3");
1103  l.DrawLatex(2585, 1000, "TOB L4");
1104  l.DrawLatex(3085, 330, "TOB L5");
1105  l.DrawLatex(3085, 1000, "TOB L6");
1106  TArrow arx(3448, 1190, 3448, 1350, 0.01, "|>");
1107  l.DrawLatex(3460, 1350, "x");
1108  TArrow ary(3448, 1190, 3312, 1190, 0.01, "|>");
1109  l.DrawLatex(3312, 1210, "y");
1110  TArrow arz(3485, 373, 3485, 676, 0.01, "|>");
1111  l.DrawLatex(3510, 667, "z");
1112  TArrow arphi(3485, 511, 3037, 511, 0.01, "|>");
1113  l.DrawLatex(3023, 520, "#Phi");
1114  arx.SetLineWidth(3);
1115  ary.SetLineWidth(3);
1116  arz.SetLineWidth(3);
1117  arphi.SetLineWidth(3);
1118  if (onlyPixelFlag) {
1119  arx.SetX1(570);
1120  arx.SetX2(570);
1121  arx.SetY1(1190);
1122  arx.SetY2(1350);
1123  l.DrawLatex(570 + 12, 1190 + 160, "x");
1124  ary.SetX1(570);
1125  ary.SetX2(570 - 160);
1126  ary.SetY1(1190);
1127  ary.SetY2(1190);
1128  l.DrawLatex(570 - 160, 1190 + 30, "y");
1129  arz.SetX1(380);
1130  arz.SetX2(380);
1131  arz.SetY1(683 - 100);
1132  arz.SetY2(683 + 100);
1133  l.DrawLatex(380 + 15, 683 + 100 - 9, "z");
1134  arphi.SetX1(380);
1135  arphi.SetX2(380 - 390);
1136  arphi.SetY1(683);
1137  arphi.SetY2(683);
1138  l.DrawLatex(380 - 390 - 14, 683 + 9, "#Phi");
1139  }
1140  arx.Draw();
1141  ary.Draw();
1142  arz.Draw();
1143  arphi.Draw();
1144  TLegend *MyL = buildLegend();
1145 
1146  if (title.find("QTestAlarm") != std::string::npos) {
1147  MyL->Draw();
1148  }
1149  MyC->Update();
1150  if (filetype == "png") {
1151  std::string filename = outputfilename + ".png";
1152  std::cout << "printing " << filename << std::endl;
1153  MyC->Print(filename.c_str());
1154  }
1155  if (filetype == "jpg") {
1156  std::string filename = outputfilename + ".jpg";
1157  MyC->Print(filename.c_str());
1158  }
1159  if (filetype == "pdf") {
1160  std::string filename = outputfilename + ".pdf";
1161  MyC->Print(filename.c_str());
1162  }
1163  std::string command = "rm " + tempfilename;
1164  command1 = command.c_str();
1165  std::cout << "Executing " << command1 << std::endl;
1166  system(command1);
1167  MyC->Clear();
1168  delete MyC;
1169  delete MyL;
1170 
1171  //Canvas name = MyT for both Pixel and Strip Tracker Maps
1172  TCanvas *MyT = new TCanvas("MyT", "MyT", 3500, 1500);
1173  //gPad->SetFillColor(38);//Fill pad
1174  StripMap->SetLineColor(kBlack);
1175  StripMap->SetLineWidth(0);
1176  StripMap->Draw("AL COLZ");
1177  MyT->Update();
1178 
1179  //Rainbow palette, fix pad margin and palette position
1180  gStyle->SetPalette(kRainBow);
1181  TPaletteAxis *realPalette = (TPaletteAxis *)StripMap->GetListOfFunctions()->FindObject("palette");
1182  realPalette->SetX1NDC(0.92);
1183  realPalette->SetX2NDC(0.94);
1184  realPalette->SetY1NDC(0.02);
1185  realPalette->SetY2NDC(0.91);
1186  gPad->SetRightMargin(0.08);
1187  gPad->SetLeftMargin(0.01);
1188  gPad->SetTopMargin(0.09);
1189  gPad->SetBottomMargin(0.02);
1190  gPad->Update();
1191 
1192  //Fill pad with text and arrows
1193  TLatex l2;
1194  l2.SetTextSize(0.06);
1196  for (char c : title)
1197  if (std::isdigit(c))
1198  runnumber.push_back(c);
1199  std::string striptitle = "Run " + runnumber + ": Strip " + outputfilename;
1200  l2.DrawLatex(800, 1380, striptitle.c_str());
1201  l2.SetTextSize(0.05);
1202  l2.DrawLatex(1200, 40, "-z");
1203  l2.DrawLatex(1200, 1300, "+z");
1204  l2.DrawLatex(1085, 310, "TIB L1");
1205  l2.DrawLatex(1085, 1000, "TIB L2");
1206  l2.DrawLatex(1585, 310, "TIB L3");
1207  l2.DrawLatex(1585, 1000, "TIB L4");
1208  l2.DrawLatex(2085, 310, "TOB L1");
1209  l2.DrawLatex(2085, 1000, "TOB L2");
1210  l2.DrawLatex(2585, 310, "TOB L3");
1211  l2.DrawLatex(2585, 1000, "TOB L4");
1212  l2.DrawLatex(3085, 310, "TOB L5");
1213  l2.DrawLatex(3085, 1000, "TOB L6");
1214  l2.DrawLatex(3460, 1320, "x");
1215  l2.DrawLatex(3315, 1210, "y");
1216  l2.DrawLatex(3510, 667, "z");
1217  l2.DrawLatex(3023, 530, "#Phi");
1218  arx.SetY2(1320);
1219  ary.SetX2(3320);
1220  arz.SetX1(3490);
1221  arz.SetX2(3490);
1222  arphi.SetX1(3490);
1223  arx.Draw();
1224  ary.Draw();
1225  arz.Draw();
1226  arphi.Draw();
1227  MyT->Update();
1228 
1229  std::string filename = outputfilename + ".root";
1230  MyT->Print(filename.c_str());
1231  delete MyT;
1232 
1233  if (printflag)
1234  delete axis;
1235  for (std::vector<TPolyLine *>::iterator pos1 = vp.begin(); pos1 != vp.end(); pos1++) {
1236  delete (*pos1);
1237  }
1238  }
1239  }
1240  return;
1241 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
std::ofstream * savefile
Definition: TrackerMap.h:670
bool saveGeoTrackerMap
Definition: TrackerMap.h:193
int module(int fedId, int fedCh)
Definition: TrackerMap.cc:3356
void defwindow(int num_lay)
Definition: TrackerMap.h:397
bool addPixelFlag
Definition: TrackerMap.h:682
int firstRing[43]
Definition: TrackerMap.h:655
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
bool onlyPixelFlag
Definition: TrackerMap.h:683
static const int npoints
Definition: value.py:1
void drawModule(TmModule *mod, int key, int layer, bool total, std::ofstream *file)
Definition: TrackerMap.cc:561
bool printflag
Definition: TrackerMap.h:191
TLegend * buildLegend()
Definition: TrackerMap.cc:4449
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
Definition: colors.py:1
col
Definition: cuy.py:1009
float maxvalue
Definition: TrackerMap.h:675
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
std::vector< TColor * > vc
Definition: TrackerMap.h:169
int ntotRing[43]
Definition: TrackerMap.h:654

◆ save_as_fectrackermap()

void TrackerMap::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 
)

Definition at line 1834 of file TrackerMap.cc.

References TmCcu::blue, DivergingColor::blue, HltBtagPostValidation_cff::c, ccuMap, cuy::col, mps_check::command, Skims_PA_cff::content, TmCcu::count, gather_cfg::cout, deffecwindow(), drawCcu(), drawPalette(), enableFecProcessing, fecModuleMap, corrVsCorr::filename, symbols::filetype, newFWLiteAna::found, TmCcu::getCcuCrate(), TmCcu::getCcuSlot(), TmCcu::green, mps_fire::i, recoMuon::in, MainPageGenerator::l, dqm-mbProfile::log, maxvalue, minvalue, nfeccrates, TmCcu::nmod, npoints, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, TmCcu::red, DivergingColor::red, runTheMatrix::ret, alignCSCRings::s, saveAsSingleLayer, savefile, saveWebInterface, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, title, tkMapLog, TmCcu::value, vc, ApeEstimator_cff::width, x, and y.

Referenced by printall(), and printonline().

1835  {
1836  if (enableFecProcessing) {
1838  std::vector<TPolyLine *> vp;
1839  TGaxis *axis = nullptr;
1840  size_t found = filetype.find_last_of('.');
1841  filetype = filetype.substr(found + 1);
1842  found = outputfilename.find_last_of('.');
1843  outputfilename = outputfilename.substr(0, found);
1844  temporary_file = true;
1845  if (filetype == "xml" || filetype == "svg")
1846  temporary_file = false;
1847  std::ostringstream outs;
1848  minvalue = minval;
1849  maxvalue = maxval;
1850  outs << outputfilename << ".coor";
1851  if (temporary_file)
1852  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
1853  std::map<int, TmCcu *>::iterator i_ccu;
1854  std::multimap<TmCcu *, TmModule *>::iterator it;
1855  std::pair<std::multimap<TmCcu *, TmModule *>::iterator, std::multimap<TmCcu *, TmModule *>::iterator> ret;
1856  //Decide if we must use Module or Ccu value
1857  bool useCcuValue = false;
1858 
1859  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1860  TmCcu *ccu = i_ccu->second;
1861  if (ccu != nullptr) {
1862  if (ccu->count > 0 || ccu->red != -1) {
1863  useCcuValue = true;
1864  break;
1865  }
1866  }
1867  }
1868 
1869  if (!useCcuValue) //store mean of connected modules value{
1870  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1871  TmCcu *ccu = i_ccu->second;
1872  if (ccu != nullptr) {
1873  ret = fecModuleMap.equal_range(ccu);
1874  for (it = ret.first; it != ret.second; ++it) {
1875  if ((*it).second->count > 0) {
1876  ccu->value = ccu->value + (*it).second->value;
1877  ccu->count++;
1878  }
1879  }
1880  if (ccu->count > 0)
1881  ccu->value = ccu->value / ccu->count;
1882  if (ccu->nmod == 0) {
1883  ccu->red = 0;
1884  ccu->green = 0;
1885  ccu->blue = 0;
1886  }
1887  }
1888  }
1889 
1890  if (title.find("QTestAlarm") != std::string::npos) {
1891  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1892  TmCcu *ccu = i_ccu->second;
1893  if (ccu != nullptr) {
1894  ret = fecModuleMap.equal_range(ccu);
1895  ccu->red = 0;
1896  ccu->green = 255;
1897  ccu->blue = 0;
1898  for (it = ret.first; it != ret.second; ++it) {
1899  if (!((*it).second->red == 0 && (*it).second->green == 255 && (*it).second->blue == 0) &&
1900  !((*it).second->red == 255 && (*it).second->green == 255 && (*it).second->blue == 255)) {
1901  ccu->red = 255;
1902  ccu->green = 0;
1903  ccu->blue = 0;
1904  }
1905  }
1906  }
1907  }
1908  }
1909 
1910  if (!print_total) {
1911  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1912  TmCcu *ccu = i_ccu->second;
1913  if (ccu != nullptr) {
1914  if (useCcuValue)
1915  ccu->value = ccu->value / ccu->count;
1916  }
1917  }
1918  }
1919 
1920  if (minvalue >= maxvalue) {
1921  minvalue = 9999999.;
1922  maxvalue = -9999999.;
1923  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1924  TmCcu *ccu = i_ccu->second;
1925  if (ccu != nullptr && ccu->count > 0) {
1926  if (minvalue > ccu->value)
1927  minvalue = ccu->value;
1928  if (maxvalue < ccu->value)
1929  maxvalue = ccu->value;
1930  }
1931  }
1932  }
1933 
1934  if (filetype == "svg") {
1935  saveAsSingleLayer = false;
1936  std::ostringstream outs;
1937  outs << outputfilename << ".svg";
1938  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
1939  *savefile << "<?xml version=\"1.0\" standalone=\"no\" ?>" << std::endl;
1940  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
1941  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\" " << std::endl;
1942  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\">" << std::endl;
1943  *savefile << "<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"
1944  << "\" width=\"" << width << "\" height=\"" << height << "\">" << std::endl;
1945  *savefile << "<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "
1946  << std::endl;
1947  *savefile << "<svg:g id=\"fedtrackermap\" transform=\"translate(10,1500) rotate(270)\" "
1948  "style=\"fill:none;stroke:black;stroke-width:0;\"> "
1949  << std::endl;
1950  }
1951  for (int crate = 1; crate < (nfeccrates + 1); crate++) {
1952  if (filetype == "xml") {
1953  saveAsSingleLayer = true;
1954  std::ostringstream outs;
1955  outs << outputfilename << "feccrate" << crate << ".xml";
1956  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
1957  *savefile << "<?xml version=\"1.0\" standalone=\"no\"?>" << std::endl;
1958  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
1959  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\"" << std::endl;
1960  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\" >" << std::endl;
1961  *savefile << "<script type=\"text/ecmascript\" xlink:href=\"feccrate.js\" />" << std::endl;
1962  *savefile << "<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" "
1963  "onload=\"TrackerCrate.init()\">"
1964  << std::endl;
1965  *savefile << "<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"
1966  << std::endl;
1967  *savefile << "<g id=\"crate\" transform=\" translate(280,580) rotate(270) scale(.7,.8)\" > " << std::endl;
1968  }
1969  // ncrate=crate;
1970  deffecwindow(crate);
1971 
1972  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1973  TmCcu *ccu = i_ccu->second;
1974  if (ccu != nullptr) {
1975  if (ccu->getCcuCrate() == crate) {
1976  drawCcu(crate, ccu->getCcuSlot() - 2, print_total, ccu, savefile, useCcuValue);
1977  }
1978  }
1979  }
1980 
1981  if (!temporary_file) {
1982  if (filetype == "xml") {
1983  *savefile << "</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
1984  *savefile << "<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
1985  *savefile << "<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
1986  *savefile << " </text> </svg>" << std::endl;
1987  savefile->close();
1988  saveAsSingleLayer = false;
1989  }
1990  }
1991  }
1992  if (filetype == "svg") {
1993  *savefile << "</g> </svg> </svg> " << std::endl;
1994  savefile->close();
1995  }
1996  if (!print_total && !useCcuValue) {
1997  //Restore ccu value
1998  for (i_ccu = ccuMap.begin(); i_ccu != ccuMap.end(); i_ccu++) {
1999  TmCcu *ccu = i_ccu->second;
2000  if (ccu != nullptr) {
2001  ccu->value = ccu->value * ccu->count;
2002  }
2003  }
2004  }
2005  if (temporary_file) {
2006  if (printflag && !saveWebInterface)
2008  savefile->close();
2009 
2010  float content;
2011  std::string named;
2012  const char *command1;
2013  std::string tempfilename = outputfilename + ".coor";
2014  int red, green, blue, npoints, colindex, ncolor;
2015  double x[4], y[4];
2016  std::ifstream tempfile(tempfilename.c_str(), std::ios::in);
2017  TCanvas *MyC = new TCanvas("MyC", "TrackerMap", width, height);
2018  gPad->SetFillColor(38);
2019 
2020  if (saveWebInterface)
2021  gPad->Range(0, 0, 3700, 1600);
2022  else
2023  gPad->Range(0, 0, 3800, 1600);
2024 
2025  //First build palette
2026  ncolor = 0;
2027  typedef std::map<int, int> ColorList;
2028  ColorList colorList;
2029  ColorList::iterator pos;
2030  TColor *col, *c;
2031  while (!tempfile.eof()) {
2032  tempfile >> named >> content >> red >> green >> blue >> npoints;
2033  colindex = red + green * 1000 + blue * 1000000;
2034  pos = colorList.find(colindex);
2035  if (pos == colorList.end()) {
2036  colorList[colindex] = ncolor + 100;
2037  col = gROOT->GetColor(ncolor + 100);
2038  if (col)
2039  col->SetRGB((Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2040  else {
2041  c = new TColor(ncolor + 100, (Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2042  vc.push_back(c);
2043  }
2044  ncolor++;
2045  }
2046  for (int i = 0; i < npoints; i++) {
2047  tempfile >> x[i] >> y[i];
2048  }
2049  }
2050  if (ncolor > 0 && ncolor < 10000) {
2051  Int_t colors[10000];
2052  for (int i = 0; i < ncolor; i++) {
2053  colors[i] = i + 100;
2054  }
2055  gStyle->SetPalette(ncolor, colors);
2056  }
2057  tempfile.clear();
2058  tempfile.seekg(0, std::ios::beg);
2059  std::cout << "created palette with " << ncolor << " colors" << std::endl;
2060  while (!tempfile.eof()) { //create polylines
2061  tempfile >> named >> content >> red >> green >> blue >> npoints;
2062  for (int i = 0; i < npoints; i++) {
2063  tempfile >> x[i] >> y[i];
2064  }
2065  colindex = red + green * 1000 + blue * 1000000;
2066  pos = colorList.find(colindex);
2067  if (pos != colorList.end()) {
2068  TPolyLine *pline = new TPolyLine(npoints, y, x);
2069  vp.push_back(pline);
2070  pline->SetFillColor(colorList[colindex]);
2071  pline->SetLineWidth(0);
2072  pline->Draw("f");
2073  }
2074  }
2075  if (printflag && !saveWebInterface) {
2076  float lminvalue = minvalue;
2077  float lmaxvalue = maxvalue;
2078  if (tkMapLog) {
2079  lminvalue = log(minvalue) / log(10);
2080  lmaxvalue = log(maxvalue) / log(10);
2081  }
2082  axis = new TGaxis(3660, 36, 3660, 1530, lminvalue, lmaxvalue, 510, "+L");
2083  axis->SetLabelSize(0.02);
2084  axis->Draw();
2085  }
2086 
2087  if (!saveWebInterface) {
2088  TLatex l;
2089  l.SetTextSize(0.05);
2090  std::string fulltitle = title;
2091  if (tkMapLog && (fulltitle.find("Log10 scale") == std::string::npos))
2092  fulltitle += ": Log10 scale";
2093  l.DrawLatex(50, 1530, fulltitle.c_str());
2094  }
2095  MyC->Update();
2096  std::cout << "Filetype " << filetype << std::endl;
2097  if (filetype == "png") {
2098  std::string filename = outputfilename + ".png";
2099  MyC->Print(filename.c_str());
2100  }
2101  if (filetype == "jpg") {
2102  std::string filename = outputfilename + ".jpg";
2103  MyC->Print(filename.c_str());
2104  }
2105  if (filetype == "pdf") {
2106  std::string filename = outputfilename + ".pdf";
2107  MyC->Print(filename.c_str());
2108  }
2109  std::string command = "rm " + tempfilename;
2110  command1 = command.c_str();
2111  std::cout << "Executing " << command1 << std::endl;
2112  system(command1);
2113  MyC->Clear();
2114  delete MyC;
2115  if (printflag && !saveWebInterface)
2116  delete axis;
2117  for (std::vector<TPolyLine *>::iterator pos1 = vp.begin(); pos1 != vp.end(); pos1++) {
2118  delete (*pos1);
2119  }
2120 
2121  } //if(temporary_file)
2122  } //if(enabledFecProcessing)
2123 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
int nfeccrates
Definition: TrackerMap.h:663
MapCcu ccuMap
Definition: TrackerMap.h:183
std::ofstream * savefile
Definition: TrackerMap.h:670
ret
prodAgent to be discontinued
bool enableFecProcessing
Definition: TrackerMap.h:195
bool saveWebInterface
Definition: TrackerMap.h:192
int count
Definition: TmCcu.h:11
int nmod
Definition: TmCcu.h:14
int getCcuSlot()
Definition: TmCcu.h:22
bool saveAsSingleLayer
Definition: TrackerMap.h:681
void deffecwindow(int num_crate)
Definition: TrackerMap.h:370
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
static const int npoints
Definition: value.py:1
int getCcuCrate()
Definition: TmCcu.h:18
int green
Definition: TmCcu.h:8
void drawCcu(int crate, int numfed_incrate, bool total, TmCcu *ccu, std::ofstream *file, bool useCcuValue)
Definition: TrackerMap.cc:1407
float value
Definition: TmCcu.h:9
bool printflag
Definition: TrackerMap.h:191
FecModule fecModuleMap
Definition: TrackerMap.h:185
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
Definition: colors.py:1
int red
Definition: TmCcu.h:8
col
Definition: cuy.py:1009
float maxvalue
Definition: TrackerMap.h:675
int blue
Definition: TmCcu.h:8
Definition: TmCcu.h:4
std::vector< TColor * > vc
Definition: TrackerMap.h:169

◆ save_as_fedtrackermap()

void TrackerMap::save_as_fedtrackermap ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "fed_svgmap.svg",
int  width = 100 + ( 90  +  100 ) * 31 + 300,
int  height = 150 + ( 2940  +  150 ) * 1 + 300 
)

Definition at line 2755 of file TrackerMap.cc.

References apvMap, DivergingColor::blue, HltBtagPostValidation_cff::c, cuy::col, mps_check::command, Skims_PA_cff::content, TmModule::count, TmApvPair::count, gather_cfg::cout, defcwindow(), drawApvPair(), drawPalette(), enableFedProcessing, l1tstage2_dqm_sourceclient-live_cfg::fedId, fedMap, corrVsCorr::filename, symbols::filetype, firstcrate, newFWLiteAna::found, mps_fire::i, recoMuon::in, crabWrapper::key, MainPageGenerator::l, dqm-mbProfile::log, maxvalue, minvalue, TmApvPair::mod, TmApvPair::mpos, ncrates, TmModule::notInUse(), npoints, NUMFEDCRATE_INCOLUMN, NUMFEDCRATE_INROW, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, TmApvPair::red, DivergingColor::red, alignCSCRings::s, saveAsSingleLayer, savefile, saveWebInterface, slotMap, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, title, tkMapLog, TmApvPair::value, TmModule::value, vc, ApeEstimator_cff::width, x, XFEDCSIZE, XFEDOFFSET, y, YFEDCSIZE, and YFEDOFFSET.

Referenced by BuildTrackerMapPlugin::endJob(), printall(), and printonline().

2756  {
2757  if (enableFedProcessing) {
2758  printflag = true;
2759  bool rangefound = true;
2761  std::vector<TPolyLine *> vp;
2762  TGaxis *axis = nullptr;
2763 
2764  size_t found = filetype.find_last_of('.');
2765  filetype = filetype.substr(found + 1);
2766  found = outputfilename.find_last_of('.');
2767  outputfilename = outputfilename.substr(0, found);
2768 
2769  temporary_file = true;
2770  if (filetype == "xml" || filetype == "svg")
2771  temporary_file = false;
2772  std::ostringstream outs;
2773  minvalue = minval;
2774  maxvalue = maxval;
2775  outs << outputfilename << ".coor";
2776  if (temporary_file)
2777  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2778  std::map<int, TmApvPair *>::iterator i_apv;
2779  std::map<int, int>::iterator i_fed;
2780  //Decide if we must use Module or ApvPair value
2781  bool useApvPairValue = false;
2782  for (i_apv = apvMap.begin(); i_apv != apvMap.end(); i_apv++) {
2783  TmApvPair *apvPair = i_apv->second;
2784  if (apvPair != nullptr) {
2785  TmModule *apv_mod = apvPair->mod;
2786  if (apv_mod != nullptr && !apv_mod->notInUse()) {
2787  if (apvPair->count > 0 || apvPair->red != -1) {
2788  useApvPairValue = true;
2789  break;
2790  }
2791  }
2792  }
2793  }
2794  if (!print_total) {
2795  for (i_apv = apvMap.begin(); i_apv != apvMap.end(); i_apv++) {
2796  TmApvPair *apvPair = i_apv->second;
2797  if (apvPair != nullptr) {
2798  TmModule *apv_mod = apvPair->mod;
2799  if (apv_mod != nullptr && !apv_mod->notInUse()) {
2800  if (useApvPairValue)
2801  apvPair->value = apvPair->value / apvPair->count;
2802  else if (apvPair->mpos == 0 && apv_mod->count > 0)
2803  apv_mod->value = apv_mod->value / apv_mod->count;
2804  }
2805  }
2806  }
2807  }
2808  if (minvalue >= maxvalue) {
2809  minvalue = 9999999.;
2810  maxvalue = -9999999.;
2811  rangefound = false;
2812  for (i_apv = apvMap.begin(); i_apv != apvMap.end(); i_apv++) {
2813  TmApvPair *apvPair = i_apv->second;
2814  if (apvPair != nullptr) {
2815  TmModule *apv_mod = apvPair->mod;
2816  if (apv_mod != nullptr && !apv_mod->notInUse()) {
2817  if (useApvPairValue) {
2818  rangefound = true;
2819  if (minvalue > apvPair->value)
2820  minvalue = apvPair->value;
2821  if (maxvalue < apvPair->value)
2822  maxvalue = apvPair->value;
2823  } else {
2824  if (apv_mod->count > 0) {
2825  rangefound = true;
2826  if (minvalue > apv_mod->value)
2827  minvalue = apv_mod->value;
2828  if (maxvalue < apv_mod->value)
2829  maxvalue = apv_mod->value;
2830  }
2831  }
2832  }
2833  }
2834  }
2835  }
2836  if ((title.find("QTestAlarm") != std::string::npos) || (maxvalue == minvalue) || !rangefound)
2837  printflag = false;
2838 
2839  if (filetype == "svg") {
2840  saveAsSingleLayer = false;
2841  std::ostringstream outs;
2842  outs << outputfilename << ".svg";
2843  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2844  *savefile << "<?xml version=\"1.0\" standalone=\"no\" ?>" << std::endl;
2845  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2846  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\" " << std::endl;
2847  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\">" << std::endl;
2848  *savefile << "<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"
2849  << "\" width=\"" << width << "\" height=\"" << height << "\">" << std::endl;
2850  *savefile << "<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "
2851  << std::endl;
2852  *savefile << "<svg:g id=\"fedtrackermap\" transform=\"translate(10,1500) rotate(270)\" "
2853  "style=\"fill:none;stroke:black;stroke-width:0;\"> "
2854  << std::endl;
2855  }
2856  for (int crate = firstcrate; crate < (ncrates + 1); crate++) {
2857  if (filetype == "xml") {
2858  saveAsSingleLayer = true;
2859  std::ostringstream outs;
2860  outs << outputfilename << "crate" << crate << ".xml";
2861  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2862  *savefile << "<?xml version=\"1.0\" standalone=\"no\"?>" << std::endl;
2863  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2864  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\"" << std::endl;
2865  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\" >" << std::endl;
2866  *savefile << "<script type=\"text/ecmascript\" xlink:href=\"crate.js\" />" << std::endl;
2867  *savefile << "<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" "
2868  "onload=\"TrackerCrate.init()\">"
2869  << std::endl;
2870  *savefile << "<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"
2871  << std::endl;
2872  *savefile << "<g id=\"crate\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > " << std::endl;
2873  }
2874  // ncrate=crate;
2875  defcwindow(crate);
2876  int numfed_incrate = 0;
2877  for (i_fed = fedMap.begin(); i_fed != fedMap.end(); i_fed++) {
2878  if (i_fed->second == crate) {
2879  int fedId = i_fed->first;
2880  // numfed_incrate++;
2881  numfed_incrate = slotMap[fedId];
2882  // the following piece of code is used to prepare the HTML clickable map
2883  /*
2884  double scalex=6285./6290.;
2885  double scaley=3510./3540.;
2886  double boxinitix=(NUMFED_INCOLUMN-1-(numfed_incrate-1)/NUMFED_INROW)*(NUMFEDCH_INCOLUMN+2)+NUMFEDCH_INCOLUMN+0.9;
2887  double boxinitiy=(NUMFED_INROW-1-(numfed_incrate-1)%NUMFED_INROW)*(NUMFEDCH_INROW+1)+NUMFEDCH_INROW+0.9;
2888  double boxendix=boxinitix-(NUMFEDCH_INCOLUMN-1)-0.9;
2889  double boxendiy=boxinitiy-(NUMFEDCH_INROW-1)-0.9;
2890 
2891  std::cout << "<area shape=\"rect\" coords=\" "
2892  << int(scalex*ydpixelc(boxinitiy)) << "," << int(3510-scaley*xdpixelc(boxinitix))
2893  << "," << int(scalex*ydpixelc(boxendiy)) << "," << int(3510-scaley*xdpixelc(boxendix))
2894  << "\" href=\"\" title=\"crate " << crate << " slot " << numfed_incrate << " FED " << fedId << "\" /> " << std::endl;
2895  */
2896  //
2897  for (int nconn = 0; nconn < 96; nconn++) {
2898  int key = fedId * 1000 + nconn;
2899  TmApvPair *apvPair = apvMap[key];
2900  if (apvPair != nullptr) {
2901  TmModule *apv_mod = apvPair->mod;
2902  if (apv_mod != nullptr && !apv_mod->notInUse()) {
2903  drawApvPair(crate, numfed_incrate, print_total, apvPair, savefile, useApvPairValue);
2904  }
2905  }
2906  }
2907  }
2908  }
2909  if (!temporary_file) {
2910  if (filetype == "xml") {
2911  *savefile << "</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
2912  *savefile << "<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
2913  *savefile << "<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
2914  *savefile << " </text> </svg>" << std::endl;
2915  savefile->close();
2916  delete savefile;
2917  saveAsSingleLayer = false;
2918  }
2919  }
2920  }
2921  if (filetype == "svg") {
2922  *savefile << "</g> </svg> </svg> " << std::endl;
2923  savefile->close();
2924  delete savefile;
2925  }
2926  if (!print_total && !useApvPairValue) {
2927  //Restore module value
2928  for (i_apv = apvMap.begin(); i_apv != apvMap.end(); i_apv++) {
2929  TmApvPair *apvPair = i_apv->second;
2930  if (apvPair != nullptr) {
2931  TmModule *apv_mod = apvPair->mod;
2932  if (apv_mod != nullptr && apvPair->mpos == 0 && !apv_mod->notInUse()) {
2933  apv_mod->value = apv_mod->value * apv_mod->count;
2934  }
2935  }
2936  }
2937  }
2938 
2939  int rangex = YFEDOFFSET + (YFEDCSIZE + YFEDOFFSET) * NUMFEDCRATE_INROW + 300;
2940  int rangey = XFEDOFFSET + (XFEDCSIZE + XFEDOFFSET) * NUMFEDCRATE_INCOLUMN + 300;
2941 
2942  if (temporary_file) {
2943  if (printflag && !saveWebInterface)
2944  drawPalette(savefile, rangex - 140, rangey - 100);
2945  savefile->close();
2946  delete savefile;
2947 
2948  float content;
2949  std::string named;
2950  const char *command1;
2951  std::string tempfilename = outputfilename + ".coor";
2952  int red, green, blue, npoints, colindex, ncolor;
2953  double x[4], y[4];
2954  std::ifstream tempfile(tempfilename.c_str(), std::ios::in);
2955  TCanvas *MyC = new TCanvas("MyC", "TrackerMap", width, height);
2956  gPad->SetFillColor(38);
2957 
2958  // if(saveWebInterface)gPad->Range(0,0,3750,1600); else gPad->Range(0,0,3800,1600);
2959  std::cout << " range x " << rangex << std::endl;
2960  std::cout << " range y " << rangey << std::endl;
2961  gPad->Range(0, 0, rangex, rangey);
2962 
2963  //First build palette
2964  ncolor = 0;
2965  typedef std::map<int, int> ColorList;
2966  ColorList colorList;
2967  ColorList::iterator pos;
2968  TColor *col, *c;
2969  while (!tempfile.eof()) {
2970  tempfile >> named >> content >> red >> green >> blue >> npoints;
2971  colindex = red + green * 1000 + blue * 1000000;
2972  pos = colorList.find(colindex);
2973  if (pos == colorList.end()) {
2974  colorList[colindex] = ncolor + 100;
2975  col = gROOT->GetColor(ncolor + 100);
2976  if (col)
2977  col->SetRGB((Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2978  else
2979  c = new TColor(ncolor + 100, (Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2980  vc.push_back(c);
2981  ncolor++;
2982  }
2983  for (int i = 0; i < npoints; i++) {
2984  tempfile >> x[i] >> y[i];
2985  }
2986  }
2987  if (ncolor > 0 && ncolor < 10000) {
2988  Int_t colors[10000];
2989  for (int i = 0; i < ncolor; i++) {
2990  colors[i] = i + 100;
2991  }
2992  gStyle->SetPalette(ncolor, colors);
2993  }
2994  tempfile.clear();
2995  tempfile.seekg(0, std::ios::beg);
2996  std::cout << "created palette with " << ncolor << " colors" << std::endl;
2997  while (!tempfile.eof()) { //create polylines
2998  tempfile >> named >> content >> red >> green >> blue >> npoints;
2999  for (int i = 0; i < npoints; i++) {
3000  tempfile >> x[i] >> y[i];
3001  }
3002  colindex = red + green * 1000 + blue * 1000000;
3003  pos = colorList.find(colindex);
3004  if (pos != colorList.end()) {
3005  TPolyLine *pline = new TPolyLine(npoints, y, x);
3006  vp.push_back(pline);
3007  pline->SetFillColor(colorList[colindex]);
3008  pline->SetLineWidth(0);
3009  pline->Draw("f");
3010  }
3011  }
3012  if (printflag && !saveWebInterface) {
3013  float lminvalue = minvalue;
3014  float lmaxvalue = maxvalue;
3015  if (tkMapLog) {
3016  lminvalue = log(minvalue) / log(10);
3017  lmaxvalue = log(maxvalue) / log(10);
3018  }
3019  axis = new TGaxis(rangex - 140, 34, rangex - 140, rangey - 106, lminvalue, lmaxvalue, 510, "+L");
3020  axis->SetLabelSize(0.02);
3021  axis->Draw();
3022  }
3023 
3024  if (!saveWebInterface) {
3025  TLatex l;
3026  l.SetTextSize(0.05);
3027  std::string fulltitle = title;
3028  if (tkMapLog && (fulltitle.find("Log10 scale") == std::string::npos))
3029  fulltitle += ": Log10 scale";
3030  l.DrawLatex(50, rangey - 200, fulltitle.c_str());
3031  }
3032  MyC->Update();
3033  std::cout << "Filetype " << filetype << std::endl;
3034  if (filetype == "png") {
3035  std::string filename = outputfilename + ".png";
3036  MyC->Print(filename.c_str());
3037  }
3038  if (filetype == "jpg") {
3039  std::string filename = outputfilename + ".jpg";
3040  MyC->Print(filename.c_str());
3041  }
3042  if (filetype == "pdf") {
3043  std::string filename = outputfilename + ".pdf";
3044  MyC->Print(filename.c_str());
3045  }
3046  std::string command = "rm " + tempfilename;
3047  command1 = command.c_str();
3048  std::cout << "Executing " << command1 << std::endl;
3049  system(command1);
3050  MyC->Clear();
3051  delete MyC;
3052  if (printflag && !saveWebInterface)
3053  delete axis;
3054  for (std::vector<TPolyLine *>::iterator pos1 = vp.begin(); pos1 != vp.end(); pos1++) {
3055  delete (*pos1);
3056  }
3057 
3058  } //if(temporary_file)
3059  } //if(enabledFedProcessing)
3060 }
TmModule * mod
Definition: TmApvPair.h:16
bool tkMapLog
Definition: TrackerMap.h:198
#define NUMFEDCRATE_INCOLUMN
Definition: TrackerMap.h:60
float minvalue
Definition: TrackerMap.h:675
float value
Definition: TmModule.h:11
int mpos
Definition: TmApvPair.h:17
std::ofstream * savefile
Definition: TrackerMap.h:670
#define YFEDOFFSET
Definition: TrackerMap.h:67
bool saveWebInterface
Definition: TrackerMap.h:192
#define YFEDCSIZE
Definition: TrackerMap.h:65
bool enableFedProcessing
Definition: TrackerMap.h:194
#define NUMFEDCRATE_INROW
Definition: TrackerMap.h:61
int red
Definition: TmApvPair.h:10
bool saveAsSingleLayer
Definition: TrackerMap.h:681
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
#define XFEDCSIZE
Definition: TrackerMap.h:64
static const int npoints
Definition: value.py:1
void drawApvPair(int crate, int numfed_incrate, bool total, TmApvPair *apvPair, std::ofstream *file, bool useApvPairValue)
Definition: TrackerMap.cc:1242
int count
Definition: TmModule.h:12
SvgFed slotMap
Definition: TrackerMap.h:181
int count
Definition: TmApvPair.h:13
SvgFed fedMap
Definition: TrackerMap.h:180
bool printflag
Definition: TrackerMap.h:191
int firstcrate
Definition: TrackerMap.h:662
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
bool notInUse()
Definition: TmModule.h:23
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
Definition: colors.py:1
SvgApvPair apvMap
Definition: TrackerMap.h:176
col
Definition: cuy.py:1009
float maxvalue
Definition: TrackerMap.h:675
#define XFEDOFFSET
Definition: TrackerMap.h:66
void defcwindow(int num_crate)
Definition: TrackerMap.h:358
std::vector< TColor * > vc
Definition: TrackerMap.h:169
float value
Definition: TmApvPair.h:11

◆ save_as_HVtrackermap()

void TrackerMap::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 
)

Definition at line 2124 of file TrackerMap.cc.

References DivergingColor::blue, TmPsu::blueHV2, TmPsu::blueHV3, HltBtagPostValidation_cff::c, cuy::col, mps_check::command, Skims_PA_cff::content, TmPsu::countHV2, TmPsu::countHV3, gather_cfg::cout, defpsuwindow(), drawHV2(), drawHV3(), drawPalette(), enableHVProcessing, corrVsCorr::filename, symbols::filetype, newFWLiteAna::found, TmPsu::getPsuCrate(), TmPsu::getPsuRack(), TmPsu::greenHV2, TmPsu::greenHV3, mps_fire::i, recoMuon::in, MainPageGenerator::l, dqm-mbProfile::log, SiStripPI::max, maxvalue, SiStripPI::min, minvalue, TmPsu::nmodHV2, TmPsu::nmodHV3, npoints, npsuracks, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, psuMap, psuModuleMap, DivergingColor::red, TmPsu::redHV2, TmPsu::redHV3, runTheMatrix::ret, alignCSCRings::s, saveAsSingleLayer, savefile, saveWebInterface, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, title, tkMapLog, TmPsu::valueHV2, TmPsu::valueHV3, vc, ApeEstimator_cff::width, x, and y.

Referenced by printall(), and printonline().

2125  {
2126  if (enableHVProcessing) {
2128  std::vector<TPolyLine *> vp;
2129  TGaxis *axis = nullptr;
2130  size_t found = filetype.find_last_of('.');
2131  filetype = filetype.substr(found + 1);
2132  found = outputfilename.find_last_of('.');
2133  outputfilename = outputfilename.substr(0, found);
2134 
2135  temporary_file = true;
2136 
2137  if (filetype == "xml" || filetype == "svg")
2138  temporary_file = false;
2139 
2140  std::ostringstream outs;
2141  minvalue = minval;
2142  maxvalue = maxval;
2143  outs << outputfilename << ".coor";
2144  if (temporary_file)
2145  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2146 
2147  std::map<int, TmPsu *>::iterator ipsu;
2148  std::multimap<TmPsu *, TmModule *>::iterator it;
2149  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
2150 
2151  bool usePsuValue = false;
2152 
2153  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2154  TmPsu *psu = ipsu->second;
2155  if (psu != nullptr) {
2156  if (psu->countHV2 > 0 || psu->redHV2 != -1 || psu->countHV3 > 0 || psu->redHV3 != -1) {
2157  usePsuValue = true;
2158  break;
2159  }
2160  }
2161  }
2162 
2163  if (!usePsuValue) { //store mean of connected modules value{
2164 
2165  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2166  TmPsu *psu = ipsu->second;
2167  if (psu != nullptr) {
2168  ret = psuModuleMap.equal_range(psu);
2169  int nconn1 = 0;
2170  int nconn2 = 0;
2171  for (it = ret.first; it != ret.second; ++it) {
2172  if ((*it).second->HVchannel == 2 && (*it).second->count > 0) {
2173  nconn1++;
2174  psu->valueHV2 = psu->valueHV2 + (*it).second->value;
2175  }
2176  if ((*it).second->HVchannel == 3 && (*it).second->count > 0) {
2177  nconn2++;
2178  psu->valueHV3 = psu->valueHV3 + (*it).second->value;
2179  }
2180  }
2181  if (psu->nmodHV2 != 0 && nconn1 > 0) {
2182  psu->valueHV2 = psu->valueHV2 / psu->nmodHV2;
2183  psu->countHV2 = 1;
2184  }
2185  if (psu->nmodHV3 != 0 && nconn2 > 0) {
2186  psu->valueHV3 = psu->valueHV3 / psu->nmodHV3;
2187  psu->countHV3 = 1;
2188  }
2189  }
2190  }
2191  }
2192 
2193  if (title.find("QTestAlarm") != std::string::npos) {
2194  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2195  TmPsu *psu = ipsu->second;
2196  if (psu != nullptr) {
2197  ret = psuModuleMap.equal_range(psu);
2198  psu->redHV2 = 0;
2199  psu->greenHV2 = 255;
2200  psu->blueHV2 = 0;
2201  psu->redHV3 = 0;
2202  psu->greenHV3 = 255;
2203  psu->blueHV3 = 0;
2204  for (it = ret.first; it != ret.second; ++it) {
2205  if ((*it).second->HVchannel == 2) {
2206  if (!((*it).second->red == 0 && (*it).second->green == 255 && (*it).second->blue == 0) &&
2207  !((*it).second->red == 255 && (*it).second->green == 255 && (*it).second->blue == 255)) {
2208  psu->redHV2 = 255;
2209  psu->greenHV2 = 0;
2210  psu->blueHV2 = 0;
2211  }
2212  }
2213  if ((*it).second->HVchannel == 3) {
2214  if (!((*it).second->red == 0 && (*it).second->green == 255 && (*it).second->blue == 0) &&
2215  !((*it).second->red == 255 && (*it).second->green == 255 && (*it).second->blue == 255)) {
2216  psu->redHV3 = 255;
2217  psu->greenHV3 = 0;
2218  psu->blueHV3 = 0;
2219  }
2220  }
2221  }
2222  }
2223  }
2224  }
2225 
2226  if (!print_total) {
2227  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2228  TmPsu *psu = ipsu->second;
2229  if (psu != nullptr) {
2230  if (usePsuValue) {
2231  psu->valueHV2 = psu->valueHV2 / psu->countHV2;
2232  psu->valueHV3 = psu->valueHV3 / psu->countHV3;
2233  }
2234  }
2235  }
2236  }
2237 
2238  if (minvalue >= maxvalue) {
2239  minvalue = 9999999.;
2240  maxvalue = -9999999.;
2241 
2242  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2243  TmPsu *psu = ipsu->second;
2244  if (psu != nullptr && psu->countHV2 > 0 && psu->countHV3 > 0) {
2245  if (minvalue > psu->valueHV2 || minvalue > psu->valueHV3)
2246  minvalue = std::min(psu->valueHV2, psu->valueHV3);
2247  if (maxvalue < psu->valueHV2 || maxvalue < psu->valueHV3)
2248  maxvalue = std::max(psu->valueHV2, psu->valueHV3);
2249  }
2250  }
2251  }
2252 
2253  if (filetype == "svg") {
2254  saveAsSingleLayer = false;
2255  std::ostringstream outs;
2256  outs << outputfilename << ".svg";
2257  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2258  *savefile << "<?xml version=\"1.0\" standalone=\"no\" ?>" << std::endl;
2259  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2260  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\" " << std::endl;
2261  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\">" << std::endl;
2262  *savefile << "<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"
2263  << "\" width=\"" << width << "\" height=\"" << height << "\">" << std::endl;
2264  *savefile << "<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "
2265  << std::endl;
2266  *savefile << "<svg:g id=\"HVtrackermap\" transform=\"translate(10,1500) rotate(270)\" "
2267  "style=\"fill:none;stroke:black;stroke-width:0;\"> "
2268  << std::endl;
2269  }
2270 
2271  for (int irack = 1; irack < (npsuracks + 1); irack++) {
2272  if (filetype == "xml") {
2273  saveAsSingleLayer = true;
2274  std::ostringstream outs;
2275  outs << outputfilename << "HVrack" << irack << ".xml";
2276  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2277  *savefile << "<?xml version=\"1.0\" standalone=\"no\"?>" << std::endl;
2278  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2279  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\"" << std::endl;
2280  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\" >" << std::endl;
2281  *savefile << "<script type=\"text/ecmascript\" xlink:href=\"rackhv.js\" />" << std::endl;
2282  *savefile << "<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" "
2283  "onload=\"TrackerRackhv.init()\">"
2284  << std::endl;
2285  *savefile << "<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"
2286  << std::endl;
2287  *savefile << "<g id=\"rackhv\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > " << std::endl;
2288  }
2289 
2290  // nrack=irack;
2291  defpsuwindow(irack);
2292  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2293  TmPsu *psu = ipsu->second;
2294  if (psu->getPsuRack() == irack) {
2295  drawHV2(irack, psu->getPsuCrate(), print_total, psu, savefile, usePsuValue);
2296  drawHV3(irack, psu->getPsuCrate(), print_total, psu, savefile, usePsuValue);
2297  }
2298  }
2299 
2300  if (!temporary_file) {
2301  if (filetype == "xml") {
2302  *savefile << "</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
2303  *savefile << "<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
2304  *savefile << "<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
2305  *savefile << " </text> </svg>" << std::endl;
2306  savefile->close();
2307  saveAsSingleLayer = false;
2308  }
2309  }
2310  }
2311  if (filetype == "svg") {
2312  *savefile << "</g> </svg> </svg> " << std::endl;
2313  savefile->close();
2314  }
2315 
2316  //Restore psu value
2317  if (!print_total && !usePsuValue) {
2318  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2319  TmPsu *psu = ipsu->second;
2320  if (psu != nullptr) {
2321  psu->valueHV2 = psu->valueHV2 * psu->countHV2;
2322  psu->valueHV3 = psu->valueHV3 * psu->countHV3;
2323  }
2324  }
2325  }
2326 
2327  if (temporary_file) {
2328  if (printflag && !saveWebInterface)
2330  savefile->close();
2331 
2332  float content;
2333  std::string named;
2334  const char *command1;
2335  std::string tempfilename = outputfilename + ".coor";
2336  int red, green, blue, npoints, colindex, ncolor;
2337  double x[4], y[4];
2338  std::ifstream tempfile(tempfilename.c_str(), std::ios::in);
2339  TCanvas *MyC = new TCanvas("MyC", "TrackerMap", width, height);
2340  gPad->SetFillColor(38);
2341 
2342  if (saveWebInterface)
2343  gPad->Range(0, 0, 3700, 1600);
2344  else
2345  gPad->Range(0, 0, 3800, 1600);
2346 
2347  //First build palette
2348  ncolor = 0;
2349  typedef std::map<int, int> ColorList;
2350  ColorList colorList;
2351  ColorList::iterator pos;
2352  TColor *col, *c;
2353  while (!tempfile.eof()) {
2354  tempfile >> named >> content >> red >> green >> blue >> npoints;
2355  colindex = red + green * 1000 + blue * 1000000;
2356  pos = colorList.find(colindex);
2357  if (pos == colorList.end()) {
2358  colorList[colindex] = ncolor + 100;
2359  col = gROOT->GetColor(ncolor + 100);
2360  if (col)
2361  col->SetRGB((Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2362  else {
2363  c = new TColor(ncolor + 100, (Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2364  vc.push_back(c);
2365  }
2366  ncolor++;
2367  }
2368  for (int i = 0; i < npoints; i++) {
2369  tempfile >> x[i] >> y[i];
2370  }
2371  }
2372  if (ncolor > 0 && ncolor < 10000) {
2373  Int_t colors[10000];
2374  for (int i = 0; i < ncolor; i++) {
2375  colors[i] = i + 100;
2376  }
2377  gStyle->SetPalette(ncolor, colors);
2378  }
2379  tempfile.clear();
2380  tempfile.seekg(0, std::ios::beg);
2381  std::cout << "created palette with " << ncolor << " colors" << std::endl;
2382  while (!tempfile.eof()) { //create polylines
2383  tempfile >> named >> content >> red >> green >> blue >> npoints;
2384  for (int i = 0; i < npoints; i++) {
2385  tempfile >> x[i] >> y[i];
2386  }
2387  colindex = red + green * 1000 + blue * 1000000;
2388  pos = colorList.find(colindex);
2389  if (pos != colorList.end()) {
2390  TPolyLine *pline = new TPolyLine(npoints, y, x);
2391  vp.push_back(pline);
2392  pline->SetFillColor(colorList[colindex]);
2393  pline->SetLineWidth(0);
2394  pline->Draw("f");
2395  }
2396  }
2397  if (printflag && !saveWebInterface) {
2398  float lminvalue = minvalue;
2399  float lmaxvalue = maxvalue;
2400  if (tkMapLog) {
2401  lminvalue = log(minvalue) / log(10);
2402  lmaxvalue = log(maxvalue) / log(10);
2403  }
2404  axis = new TGaxis(3660, 36, 3660, 1530, lminvalue, lmaxvalue, 510, "+L");
2405  axis->SetLabelSize(0.02);
2406  axis->Draw();
2407  }
2408 
2409  if (!saveWebInterface) {
2410  TLatex l;
2411  l.SetTextSize(0.05);
2412  std::string fulltitle = title;
2413  if (tkMapLog && (fulltitle.find("Log10 scale") == std::string::npos))
2414  fulltitle += ": Log10 scale";
2415  l.DrawLatex(50, 1530, fulltitle.c_str());
2416  }
2417  MyC->Update();
2418  std::cout << "Filetype " << filetype << std::endl;
2419  if (filetype == "png") {
2420  std::string filename = outputfilename + ".png";
2421  MyC->Print(filename.c_str());
2422  }
2423  if (filetype == "jpg") {
2424  std::string filename = outputfilename + ".jpg";
2425  MyC->Print(filename.c_str());
2426  }
2427  if (filetype == "pdf") {
2428  std::string filename = outputfilename + ".pdf";
2429  MyC->Print(filename.c_str());
2430  }
2431  std::string command = "rm " + tempfilename;
2432  command1 = command.c_str();
2433  std::cout << "Executing " << command1 << std::endl;
2434  system(command1);
2435  MyC->Clear();
2436  delete MyC;
2437  if (printflag && !saveWebInterface)
2438  delete axis;
2439  for (std::vector<TPolyLine *>::iterator pos1 = vp.begin(); pos1 != vp.end(); pos1++) {
2440  delete (*pos1);
2441  }
2442 
2443  } //if(temporary_file)
2444  } //if(enabledHVProcessing)
2445 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
int redHV2
Definition: TmPsu.h:38
int nmodHV3
Definition: TmPsu.h:48
std::ofstream * savefile
Definition: TrackerMap.h:670
int countHV2
Definition: TmPsu.h:44
ret
prodAgent to be discontinued
void defpsuwindow(int num_rack)
Definition: TrackerMap.h:384
bool saveWebInterface
Definition: TrackerMap.h:192
int npsuracks
Definition: TrackerMap.h:664
int greenHV3
Definition: TmPsu.h:39
bool enableHVProcessing
Definition: TrackerMap.h:197
void drawHV3(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
Definition: TrackerMap.cc:1731
bool saveAsSingleLayer
Definition: TrackerMap.h:681
int blueHV3
Definition: TmPsu.h:39
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
int greenHV2
Definition: TmPsu.h:38
static const int npoints
int getPsuRack()
Definition: TmPsu.h:22
int nmodHV2
Definition: TmPsu.h:47
void drawHV2(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
Definition: TrackerMap.cc:1627
int redHV3
Definition: TmPsu.h:39
PsuModule psuModuleMap
Definition: TrackerMap.h:189
float valueHV2
Definition: TmPsu.h:42
bool printflag
Definition: TrackerMap.h:191
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
Definition: colors.py:1
col
Definition: cuy.py:1009
int countHV3
Definition: TmPsu.h:45
float maxvalue
Definition: TrackerMap.h:675
float valueHV3
Definition: TmPsu.h:41
MapPsu psuMap
Definition: TrackerMap.h:187
int blueHV2
Definition: TmPsu.h:38
Definition: TmPsu.h:6
std::vector< TColor * > vc
Definition: TrackerMap.h:169
int getPsuCrate()
Definition: TmPsu.h:26

◆ save_as_psutrackermap()

void TrackerMap::save_as_psutrackermap ( bool  print_total = true,
float  minval = 0.,
float  maxval = 0.,
std::string  s = "psu_svgmap.svg",
int  width = 100 + ( 360  +  100 ) * 5 + 300,
int  height = 50 + ( 150  +  50 ) * 6 + 300 
)

Definition at line 2447 of file TrackerMap.cc.

References DivergingColor::blue, HltBtagPostValidation_cff::c, cuy::col, mps_check::command, Skims_PA_cff::content, TmPsu::count, gather_cfg::cout, defpsuwindow(), drawPalette(), drawPsu(), enableLVProcessing, corrVsCorr::filename, symbols::filetype, newFWLiteAna::found, TmPsu::getPsuCrate(), TmPsu::getPsuRack(), mps_fire::i, recoMuon::in, MainPageGenerator::l, dqm-mbProfile::log, maxvalue, minvalue, TmPsu::nmod, npoints, npsuracks, NUMPSURACK_INCOLUMN, NUMPSURACK_INROW, MillePedeFileConverter_cfg::out, createfilelist::outputfilename, printflag, psuMap, psuModuleMap, TmPsu::red, DivergingColor::red, runTheMatrix::ret, alignCSCRings::s, saveAsSingleLayer, savefile, saveWebInterface, AlCaHLTBitMon_QueryRunRegistry::string, temporary_file, title, tkMapLog, TmPsu::value, vc, ApeEstimator_cff::width, x, XPSUOFFSET, XPSURSIZE, y, YPSUOFFSET, and YPSURSIZE.

Referenced by printall(), and printonline().

2448  {
2449  if (enableLVProcessing) {
2450  printflag = true;
2451  bool rangefound = true;
2453  std::vector<TPolyLine *> vp;
2454  TGaxis *axis = nullptr;
2455 
2456  size_t found = filetype.find_last_of('.');
2457  filetype = filetype.substr(found + 1);
2458  found = outputfilename.find_last_of('.');
2459  outputfilename = outputfilename.substr(0, found);
2460 
2461  temporary_file = true;
2462 
2463  if (filetype == "xml" || filetype == "svg")
2464  temporary_file = false;
2465 
2466  std::ostringstream outs;
2467  minvalue = minval;
2468  maxvalue = maxval;
2469  outs << outputfilename << ".coor";
2470  if (temporary_file)
2471  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2472 
2473  std::map<int, TmPsu *>::iterator ipsu;
2474  std::multimap<TmPsu *, TmModule *>::iterator it;
2475  std::pair<std::multimap<TmPsu *, TmModule *>::iterator, std::multimap<TmPsu *, TmModule *>::iterator> ret;
2476 
2477  //Decide if we must use Module or Power Psupply value
2478  bool usePsuValue = false;
2479 
2480  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2481  TmPsu *psu = ipsu->second;
2482  if (psu != nullptr) {
2483  if (psu->count > 0 || psu->red != -1) {
2484  usePsuValue = true;
2485  break;
2486  }
2487  }
2488  }
2489 
2490  if (!usePsuValue) { //store mean of connected modules value{
2491  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2492  TmPsu *psu = ipsu->second;
2493  if (psu != nullptr) {
2494  ret = psuModuleMap.equal_range(psu);
2495  int nconn = 0;
2496  for (it = ret.first; it != ret.second; ++it) {
2497  if ((*it).second->count > 0) {
2498  nconn++;
2499  psu->value = psu->value + (*it).second->value;
2500  }
2501  }
2502  if (nconn > 0) {
2503  psu->value = psu->value / psu->nmod;
2504  psu->count = 1;
2505  }
2506  }
2507  }
2508  }
2509 
2510  if (title.find("QTestAlarm") != std::string::npos) {
2511  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2512  TmPsu *psu = ipsu->second;
2513  if (psu != nullptr) {
2514  ret = psuModuleMap.equal_range(psu);
2515  // psu->red=255;psu->green=255;psu->blue=255;
2516  psu->red = -1;
2517  int nconn = 0;
2518  for (it = ret.first; it != ret.second; ++it) {
2519  if (!((*it).second->red == 0 && (*it).second->green == 255 && (*it).second->blue == 0) &&
2520  !((*it).second->red == 255 && (*it).second->green == 255 && (*it).second->blue == 255)) {
2521  nconn++;
2522  psu->value++;
2523  }
2524  }
2525  if (nconn > 0) {
2526  psu->value = psu->value / psu->nmod;
2527  psu->count = 1;
2528  }
2529  }
2530  }
2531  }
2532 
2533  if (!print_total) {
2534  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2535  TmPsu *psu = ipsu->second;
2536  if (psu != nullptr) {
2537  if (usePsuValue)
2538  psu->value = psu->value / psu->count;
2539  }
2540  }
2541  }
2542 
2543  if (minvalue >= maxvalue) {
2544  minvalue = 9999999.;
2545  maxvalue = -9999999.;
2546  rangefound = false;
2547  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2548  TmPsu *psu = ipsu->second;
2549  if (psu != nullptr && psu->count > 0) {
2550  rangefound = true;
2551  if (minvalue > psu->value)
2552  minvalue = psu->value;
2553  if (maxvalue < psu->value)
2554  maxvalue = psu->value;
2555  }
2556  }
2557  }
2558  if ((maxvalue == minvalue) || !rangefound)
2559  printflag = false;
2560 
2561  if (filetype == "svg") {
2562  saveAsSingleLayer = false;
2563  std::ostringstream outs;
2564  outs << outputfilename << ".svg";
2565  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2566  *savefile << "<?xml version=\"1.0\" standalone=\"no\" ?>" << std::endl;
2567  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2568  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\" " << std::endl;
2569  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\">" << std::endl;
2570  *savefile << "<svg:svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 3000 1600"
2571  << "\" width=\"" << width << "\" height=\"" << height << "\">" << std::endl;
2572  *savefile << "<svg:rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"3000\" height=\"1600\" /> "
2573  << std::endl;
2574  *savefile << "<svg:g id=\"psutrackermap\" transform=\"translate(10,1500) rotate(270)\" "
2575  "style=\"fill:none;stroke:black;stroke-width:0;\"> "
2576  << std::endl;
2577  }
2578 
2579  for (int irack = 1; irack < (npsuracks + 1); irack++) {
2580  if (filetype == "xml") {
2581  saveAsSingleLayer = true;
2582  std::ostringstream outs;
2583  outs << outputfilename << "psurack" << irack << ".xml";
2584  savefile = new std::ofstream(outs.str().c_str(), std::ios::out);
2585  *savefile << "<?xml version=\"1.0\" standalone=\"no\"?>" << std::endl;
2586  *savefile << "<svg xmlns=\"http://www.w3.org/2000/svg\"" << std::endl;
2587  *savefile << "xmlns:svg=\"http://www.w3.org/2000/svg\"" << std::endl;
2588  *savefile << "xmlns:xlink=\"http://www.w3.org/1999/xlink\" >" << std::endl;
2589  *savefile << "<script type=\"text/ecmascript\" xlink:href=\"rack.js\" />" << std::endl;
2590  *savefile << "<svg id=\"mainMap\" x=\"0\" y=\"0\" viewBox=\"0 0 500 500\" width=\"700\" height=\"700\" "
2591  "onload=\"TrackerCrate.init()\">"
2592  << std::endl;
2593  *savefile << "<rect fill=\"lightblue\" stroke=\"none\" x=\"0\" y=\"0\" width=\"700\" height=\"700\" />"
2594  << std::endl;
2595  *savefile << "<g id=\"rack\" transform=\" translate(150,500) rotate(270) scale(1.,1.)\" > " << std::endl;
2596  }
2597 
2598  // nrack=irack;
2599  defpsuwindow(irack);
2600  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2601  TmPsu *psu = ipsu->second;
2602  if (psu->getPsuRack() == irack) {
2603  drawPsu(irack, psu->getPsuCrate(), print_total, psu, savefile, usePsuValue);
2604  }
2605  }
2606 
2607  if (!temporary_file) {
2608  if (filetype == "xml") {
2609  *savefile << "</g> </svg> <text id=\"currentElementText\" x=\"40\" y=\"30\"> " << std::endl;
2610  *savefile << "<tspan id=\"line1\" x=\"40\" y=\"30\"> </tspan> " << std::endl;
2611  *savefile << "<tspan id=\"line2\" x=\"40\" y=\"60\"> </tspan> " << std::endl;
2612  *savefile << " </text> </svg>" << std::endl;
2613  savefile->close();
2614  saveAsSingleLayer = false;
2615  }
2616  }
2617  }
2618  if (filetype == "svg") {
2619  *savefile << "</g> </svg> </svg> " << std::endl;
2620  savefile->close();
2621  }
2622 
2623  //Restore psu value
2624  if (!print_total && !usePsuValue) {
2625  for (ipsu = psuMap.begin(); ipsu != psuMap.end(); ipsu++) {
2626  TmPsu *psu = ipsu->second;
2627  if (psu != nullptr) {
2628  psu->value = psu->value * psu->count;
2629  }
2630  }
2631  }
2632 
2633  int rangex = YPSUOFFSET + (YPSURSIZE + YPSUOFFSET) * NUMPSURACK_INROW + 300;
2634  int rangey = XPSUOFFSET + (XPSURSIZE + XPSUOFFSET) * NUMPSURACK_INCOLUMN + 300;
2635 
2636  if (temporary_file) {
2637  if (printflag && !saveWebInterface)
2638  drawPalette(savefile, rangex - 140, rangey - 100);
2639  savefile->close();
2640 
2641  float content;
2642  std::string named;
2643  const char *command1;
2644  std::string tempfilename = outputfilename + ".coor";
2645  int red, green, blue, npoints, colindex, ncolor;
2646  double x[4], y[4];
2647  std::ifstream tempfile(tempfilename.c_str(), std::ios::in);
2648  TCanvas *MyC = new TCanvas("MyC", "TrackerMap", width, height);
2649  gPad->SetFillColor(38);
2650 
2651  // if(saveWebInterface)gPad->Range(0,0,3700,1600); else gPad->Range(0,0,3800,1600);
2652  std::cout << " range x " << rangex << std::endl;
2653  std::cout << " range y " << rangey << std::endl;
2654  gPad->Range(0, 0, rangex, rangey);
2655 
2656  //First build palette
2657  ncolor = 0;
2658  typedef std::map<int, int> ColorList;
2659  ColorList colorList;
2660  ColorList::iterator pos;
2661  TColor *col, *c;
2662  while (!tempfile.eof()) {
2663  tempfile >> named >> content >> red >> green >> blue >> npoints;
2664  colindex = red + green * 1000 + blue * 1000000;
2665  pos = colorList.find(colindex);
2666  if (pos == colorList.end()) {
2667  colorList[colindex] = ncolor + 100;
2668  col = gROOT->GetColor(ncolor + 100);
2669  if (col)
2670  col->SetRGB((Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2671  else
2672  c = new TColor(ncolor + 100, (Double_t)(red / 255.), (Double_t)(green / 255.), (Double_t)(blue / 255.));
2673  vc.push_back(c);
2674  ncolor++;
2675  }
2676  for (int i = 0; i < npoints; i++) {
2677  tempfile >> x[i] >> y[i];
2678  }
2679  }
2680  if (ncolor > 0 && ncolor < 10000) {
2681  Int_t colors[10000];
2682  for (int i = 0; i < ncolor; i++) {
2683  colors[i] = i + 100;
2684  }
2685  gStyle->SetPalette(ncolor, colors);
2686  }
2687  tempfile.clear();
2688  tempfile.seekg(0, std::ios::beg);
2689  std::cout << "created palette with " << ncolor << " colors" << std::endl;
2690  while (!tempfile.eof()) { //create polylines
2691  tempfile >> named >> content >> red >> green >> blue >> npoints;
2692  for (int i = 0; i < npoints; i++) {
2693  tempfile >> x[i] >> y[i];
2694  }
2695  colindex = red + green * 1000 + blue * 1000000;
2696  pos = colorList.find(colindex);
2697  if (pos != colorList.end()) {
2698  TPolyLine *pline = new TPolyLine(npoints, y, x);
2699  vp.push_back(pline);
2700  pline->SetFillColor(colorList[colindex]);
2701  pline->SetLineWidth(0);
2702  pline->Draw("f");
2703  }
2704  }
2705  if (printflag && !saveWebInterface) {
2706  float lminvalue = minvalue;
2707  float lmaxvalue = maxvalue;
2708  if (tkMapLog) {
2709  lminvalue = log(minvalue) / log(10);
2710  lmaxvalue = log(maxvalue) / log(10);
2711  }
2712  axis = new TGaxis(rangex - 140, 34, rangex - 140, rangey - 106, lminvalue, lmaxvalue, 510, "+L");
2713  axis->SetLabelSize(0.02);
2714  axis->Draw();
2715  }
2716 
2717  if (!saveWebInterface) {
2718  TLatex l;
2719  l.SetTextSize(0.05);
2720  std::string fulltitle = title;
2721  if (tkMapLog && (fulltitle.find("Log10 scale") == std::string::npos))
2722  fulltitle += ": Log10 scale";
2723  l.DrawLatex(50, rangey - 200, fulltitle.c_str());
2724  }
2725  MyC->Update();
2726  std::cout << "Filetype " << filetype << std::endl;
2727  if (filetype == "png") {
2728  std::string filename = outputfilename + ".png";
2729  MyC->Print(filename.c_str());
2730  }
2731  if (filetype == "jpg") {
2732  std::string filename = outputfilename + ".jpg";
2733  MyC->Print(filename.c_str());
2734  }
2735  if (filetype == "pdf") {
2736  std::string filename = outputfilename + ".pdf";
2737  MyC->Print(filename.c_str());
2738  }
2739  std::string command = "rm " + tempfilename;
2740  command1 = command.c_str();
2741  std::cout << "Executing " << command1 << std::endl;
2742  system(command1);
2743  MyC->Clear();
2744  delete MyC;
2745  if (printflag && !saveWebInterface)
2746  delete axis;
2747  for (std::vector<TPolyLine *>::iterator pos1 = vp.begin(); pos1 != vp.end(); pos1++) {
2748  delete (*pos1);
2749  }
2750 
2751  } //if(temporary_file)
2752  } //if(enabledFedProcessing)
2753 }
bool tkMapLog
Definition: TrackerMap.h:198
float minvalue
Definition: TrackerMap.h:675
#define NUMPSURACK_INCOLUMN
Definition: TrackerMap.h:47
std::ofstream * savefile
Definition: TrackerMap.h:670
int count
Definition: TmPsu.h:43
ret
prodAgent to be discontinued
#define XPSURSIZE
Definition: TrackerMap.h:49
void defpsuwindow(int num_rack)
Definition: TrackerMap.h:384
bool saveWebInterface
Definition: TrackerMap.h:192
int npsuracks
Definition: TrackerMap.h:664
float value
Definition: TmPsu.h:40
int red
Definition: TmPsu.h:37
int nmod
Definition: TmPsu.h:46
bool saveAsSingleLayer
Definition: TrackerMap.h:681
filetype
Definition: symbols.py:55
bool temporary_file
Definition: TrackerMap.h:677
static const int npoints
Definition: value.py:1
int getPsuRack()
Definition: TmPsu.h:22
PsuModule psuModuleMap
Definition: TrackerMap.h:189
#define YPSUOFFSET
Definition: TrackerMap.h:52
bool printflag
Definition: TrackerMap.h:191
void drawPalette(std::ofstream *file, int xoffset=3660, int yoffset=1540)
Definition: TrackerMap.cc:3167
#define YPSURSIZE
Definition: TrackerMap.h:50
list command
Definition: mps_check.py:25
std::string title
Definition: TrackerMap.h:201
Definition: colors.py:1
col
Definition: cuy.py:1009
float maxvalue
Definition: TrackerMap.h:675
bool enableLVProcessing
Definition: TrackerMap.h:196
#define NUMPSURACK_INROW
Definition: TrackerMap.h:48
MapPsu psuMap
Definition: TrackerMap.h:187
Definition: TmPsu.h:6
#define XPSUOFFSET
Definition: TrackerMap.h:51
std::vector< TColor * > vc
Definition: TrackerMap.h:169
void drawPsu(int rack, int numcrate_inrack, bool print_total, TmPsu *psu, std::ofstream *svgfile, bool usePsuValue)
Definition: TrackerMap.cc:1513
int getPsuCrate()
Definition: TmPsu.h:26

◆ setPalette()

void TrackerMap::setPalette ( int  numpalette)
inline

◆ setRange()

void TrackerMap::setRange ( float  min,
float  max 
)

Definition at line 807 of file TrackerMap.cc.

References gmaxvalue, gminvalue, SiStripPI::max, SiStripPI::min, conifer::pow(), and tkMapLog.

807  {
808  gminvalue = min;
809  gmaxvalue = max;
810  if (tkMapLog) {
811  gminvalue = pow(10., min);
812  gmaxvalue = pow(10., max);
813  }
814 }
bool tkMapLog
Definition: TrackerMap.h:198
constexpr int pow(int x)
Definition: conifer.h:24
float gminvalue
Definition: TrackerMap.h:674
float gmaxvalue
Definition: TrackerMap.h:674

◆ setText() [1/2]

void TrackerMap::setText ( int  idmod,
std::string  s 
)

Definition at line 3453 of file TrackerMap.cc.

References gather_cfg::cout, B2GTnPMonitor_cfi::idmod, imoduleMap, mod(), and alignCSCRings::s.

3453  {
3455  if (mod != nullptr) {
3456  mod->text = s;
3457  } else
3458  std::cout << "**************************error in IdModuleMap **************";
3459 }
ImoduleMap imoduleMap
Definition: TrackerMap.h:174
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ setText() [2/2]

void TrackerMap::setText ( int  layer,
int  ring,
int  nmod,
std::string  s 
)

Definition at line 3461 of file TrackerMap.cc.

References gather_cfg::cout, crabWrapper::key, nano_mu_digi_cff::layer, mod(), relativeConstraints::ring, alignCSCRings::s, and smoduleMap.

3461  {
3462  int key = layer * 100000 + ring * 1000 + nmod;
3463  TmModule *mod = smoduleMap[key];
3464  if (mod != nullptr) {
3465  mod->text = s;
3466  } else
3467  std::cout << "**************************error in SvgModuleMap **************";
3468 }
SmoduleMap smoduleMap
Definition: TrackerMap.h:172
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4

◆ setTitle()

void TrackerMap::setTitle ( std::string  s)
inline

◆ showPalette()

void TrackerMap::showPalette ( bool  printflag1)
inline

Definition at line 157 of file TrackerMap.h.

References printflag.

Referenced by BuildTrackerMapPlugin::endJob(), and SiStripBaseCondObjDQM::saveTkMap().

157 { printflag = printflag1; };
bool printflag
Definition: TrackerMap.h:191

◆ xdpixel()

double TrackerMap::xdpixel ( double  x)
inline

Definition at line 278 of file TrackerMap.h.

References ix, saveAsSingleLayer, x, xmax, xmin, and xsize.

Referenced by drawModule().

278  {
279  double res;
280  if (saveAsSingleLayer)
281  res = ((x - xmin) / (xmax - xmin) * xsize);
282  else
283  res = ((x - xmin) / (xmax - xmin) * xsize) + ix;
284  return res;
285  }
double xmin
Definition: TrackerMap.h:665
Definition: Electron.h:6
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double xmax
Definition: TrackerMap.h:665

◆ xdpixelc()

double TrackerMap::xdpixelc ( double  x)
inline

Definition at line 303 of file TrackerMap.h.

References ix, saveAsSingleLayer, x, XFEDCSIZE, xmax, and xmin.

Referenced by drawApvPair().

303  {
304  double res;
305  if (saveAsSingleLayer)
306  res = ((x - xmin) / (xmax - xmin) * XFEDCSIZE);
307  else
308  res = ((x - xmin) / (xmax - xmin) * XFEDCSIZE) + ix;
309  return res;
310  }
double xmin
Definition: TrackerMap.h:665
Definition: Electron.h:6
bool saveAsSingleLayer
Definition: TrackerMap.h:681
#define XFEDCSIZE
Definition: TrackerMap.h:64
double xmax
Definition: TrackerMap.h:665

◆ xdpixelfec()

double TrackerMap::xdpixelfec ( double  x)
inline

Definition at line 321 of file TrackerMap.h.

References ix, saveAsSingleLayer, x, xmax, xmin, and xsize.

Referenced by drawCcu().

321  {
322  double res;
323  if (saveAsSingleLayer)
324  res = ((x - xmin) / (xmax - xmin) * xsize);
325  else
326  res = ((x - xmin) / (xmax - xmin) * xsize) + ix;
327  return res;
328  }
double xmin
Definition: TrackerMap.h:665
Definition: Electron.h:6
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double xmax
Definition: TrackerMap.h:665

◆ xdpixelpsu()

double TrackerMap::xdpixelpsu ( double  x)
inline

Definition at line 339 of file TrackerMap.h.

References ix, saveAsSingleLayer, x, xmax, xmin, and XPSURSIZE.

Referenced by drawHV2(), drawHV3(), and drawPsu().

339  {
340  double res;
341  if (saveAsSingleLayer)
342  res = ((x - xmin) / (xmax - xmin) * XPSURSIZE);
343  else
344  res = ((x - xmin) / (xmax - xmin) * XPSURSIZE) + ix;
345  return res;
346  }
double xmin
Definition: TrackerMap.h:665
#define XPSURSIZE
Definition: TrackerMap.h:49
Definition: Electron.h:6
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double xmax
Definition: TrackerMap.h:665

◆ ydpixel()

double TrackerMap::ydpixel ( double  y)
inline

Definition at line 286 of file TrackerMap.h.

References iy, nlay, saveAsSingleLayer, xsize, y, testProducerWithPsetDescEmpty_cfi::y1, ymax, ymin, and ysize.

Referenced by drawModule().

286  {
287  double res = 0;
288  double y1;
289  y1 = (y - ymin) / (ymax - ymin);
290  if (nlay > 30) {
291  if (nlay < 34)
292  res = 2 * ysize - (y1 * 2 * ysize);
293  if (nlay == 34)
294  res = 2.4 * ysize - (y1 * 2.4 * ysize);
295  if (nlay > 34)
296  res = 2.5 * ysize - (y1 * 2.5 * ysize);
297  } else
298  res = xsize - (y1 * xsize);
299  if (!saveAsSingleLayer)
300  res = res + iy;
301  return res;
302  }
Definition: Electron.h:6
double ymax
Definition: TrackerMap.h:665
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double ymin
Definition: TrackerMap.h:665

◆ ydpixelc()

double TrackerMap::ydpixelc ( double  y)
inline

Definition at line 311 of file TrackerMap.h.

References iy, saveAsSingleLayer, y, testProducerWithPsetDescEmpty_cfi::y1, YFEDCSIZE, ymax, and ymin.

Referenced by drawApvPair().

311  {
312  double res;
313  double y1;
314  y1 = (y - ymin) / (ymax - ymin);
315  if (saveAsSingleLayer)
316  res = YFEDCSIZE - (y1 * YFEDCSIZE);
317  else
318  res = YFEDCSIZE - (y1 * YFEDCSIZE) + iy;
319  return res;
320  }
#define YFEDCSIZE
Definition: TrackerMap.h:65
Definition: Electron.h:6
double ymax
Definition: TrackerMap.h:665
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double ymin
Definition: TrackerMap.h:665

◆ ydpixelfec()

double TrackerMap::ydpixelfec ( double  y)
inline

Definition at line 329 of file TrackerMap.h.

References iy, saveAsSingleLayer, y, testProducerWithPsetDescEmpty_cfi::y1, ymax, ymin, and ysize.

Referenced by drawCcu().

329  {
330  double res;
331  double y1;
332  y1 = (y - ymin) / (ymax - ymin);
333  if (saveAsSingleLayer)
334  res = 2 * ysize - (y1 * 2 * ysize);
335  else
336  res = 2 * ysize - (y1 * 2 * ysize) + iy;
337  return res;
338  }
Definition: Electron.h:6
double ymax
Definition: TrackerMap.h:665
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double ymin
Definition: TrackerMap.h:665

◆ ydpixelpsu()

double TrackerMap::ydpixelpsu ( double  y)
inline

Definition at line 347 of file TrackerMap.h.

References iy, saveAsSingleLayer, y, testProducerWithPsetDescEmpty_cfi::y1, ymax, ymin, and YPSURSIZE.

Referenced by drawHV2(), drawHV3(), and drawPsu().

347  {
348  double res;
349  double y1;
350  y1 = (y - ymin) / (ymax - ymin);
351  if (saveAsSingleLayer)
352  res = YPSURSIZE - (y1 * YPSURSIZE);
353  else
354  res = YPSURSIZE - (y1 * YPSURSIZE) + iy;
355  return res;
356  }
Definition: Electron.h:6
double ymax
Definition: TrackerMap.h:665
bool saveAsSingleLayer
Definition: TrackerMap.h:681
double ymin
Definition: TrackerMap.h:665
#define YPSURSIZE
Definition: TrackerMap.h:50

Member Data Documentation

◆ addPixelFlag

bool TrackerMap::addPixelFlag
private

Definition at line 682 of file TrackerMap.h.

Referenced by addPixel(), init(), and save().

◆ apvMap

SvgApvPair TrackerMap::apvMap

◆ apvModuleMap

ModApvPair TrackerMap::apvModuleMap

Definition at line 178 of file TrackerMap.h.

Referenced by fill_fed_channel(), printall(), printonline(), and TrackerMap().

◆ ccufile

std::ifstream* TrackerMap::ccufile
protected

Definition at line 673 of file TrackerMap.h.

◆ ccuMap

MapCcu TrackerMap::ccuMap

◆ enableFecProcessing

bool TrackerMap::enableFecProcessing

Definition at line 195 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fectrackermap(), and TrackerMap().

◆ enableFedProcessing

bool TrackerMap::enableFedProcessing

Definition at line 194 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fedtrackermap(), and TrackerMap().

◆ enableHVProcessing

bool TrackerMap::enableHVProcessing

Definition at line 197 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_HVtrackermap(), and TrackerMap().

◆ enableLVProcessing

bool TrackerMap::enableLVProcessing

Definition at line 196 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_psutrackermap(), and TrackerMap().

◆ fecModuleMap

FecModule TrackerMap::fecModuleMap

Definition at line 185 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fectrackermap(), and TrackerMap().

◆ fedMap

SvgFed TrackerMap::fedMap

Definition at line 180 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fedtrackermap(), and TrackerMap().

◆ firstcall

bool TrackerMap::firstcall
protected

Definition at line 668 of file TrackerMap.h.

Referenced by init().

◆ firstcrate

int TrackerMap::firstcrate
protected

Definition at line 662 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fedtrackermap(), and TrackerMap().

◆ firstRing

int TrackerMap::firstRing[43]

◆ gmaxvalue

float TrackerMap::gmaxvalue
protected

Definition at line 674 of file TrackerMap.h.

Referenced by init(), printonline(), and setRange().

◆ gminvalue

float TrackerMap::gminvalue
protected

Definition at line 674 of file TrackerMap.h.

Referenced by init(), printonline(), and setRange().

◆ imoduleMap

ImoduleMap TrackerMap::imoduleMap

◆ infilename

std::string TrackerMap::infilename

Definition at line 202 of file TrackerMap.h.

Referenced by build(), and TrackerMap().

◆ inputfile

std::ifstream* TrackerMap::inputfile
protected

Definition at line 672 of file TrackerMap.h.

Referenced by load().

◆ ix

int TrackerMap::ix
protected

◆ iy

int TrackerMap::iy
protected

◆ jsfile

std::ifstream* TrackerMap::jsfile
protected

Definition at line 671 of file TrackerMap.h.

Referenced by print().

◆ jsfilename

std::string TrackerMap::jsfilename

Definition at line 202 of file TrackerMap.h.

Referenced by print(), and TrackerMap().

◆ jsPath

std::string TrackerMap::jsPath

Definition at line 203 of file TrackerMap.h.

Referenced by findfile(), and TrackerMap().

◆ legInfos_

std::vector<TPolyLine*> TrackerMap::legInfos_
private

Definition at line 685 of file TrackerMap.h.

Referenced by buildLegend().

◆ legKeys_

std::vector<std::string> TrackerMap::legKeys_
private

Definition at line 686 of file TrackerMap.h.

Referenced by buildLegend().

◆ maxvalue

float TrackerMap::maxvalue
protected

◆ minvalue

float TrackerMap::minvalue
protected

◆ ncrates

int TrackerMap::ncrates
protected

Definition at line 661 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fedtrackermap(), and TrackerMap().

◆ ndet

int TrackerMap::ndet

Definition at line 199 of file TrackerMap.h.

Referenced by init().

◆ nfeccrates

int TrackerMap::nfeccrates
protected

Definition at line 663 of file TrackerMap.h.

Referenced by printall(), printonline(), save_as_fectrackermap(), and TrackerMap().

◆ nlay

int TrackerMap::nlay
protected

Definition at line 658 of file TrackerMap.h.

Referenced by drawModule(), and ydpixel().

◆ npart

int TrackerMap::npart

Definition at line 200 of file TrackerMap.h.

Referenced by init().

◆ npsuracks

int TrackerMap::npsuracks
protected

◆ ntotRing

int TrackerMap::ntotRing[43]

◆ number_modules

int TrackerMap::number_modules
protected

Definition at line 676 of file TrackerMap.h.

Referenced by build().

◆ oldz

float TrackerMap::oldz
private

Definition at line 680 of file TrackerMap.h.

◆ onlyPixelFlag

bool TrackerMap::onlyPixelFlag
private

Definition at line 683 of file TrackerMap.h.

Referenced by init(), onlyPixel(), and save().

◆ palette

int TrackerMap::palette

◆ posrel

bool TrackerMap::posrel
protected

Definition at line 667 of file TrackerMap.h.

Referenced by defwindow(), drawModule(), and init().

◆ printflag

bool TrackerMap::printflag

◆ psetAvailable

bool TrackerMap::psetAvailable

Definition at line 204 of file TrackerMap.h.

Referenced by TrackerMap().

◆ psuMap

MapPsu TrackerMap::psuMap

◆ psuModuleMap

PsuModule TrackerMap::psuModuleMap

◆ saveAsSingleLayer

bool TrackerMap::saveAsSingleLayer
private

◆ savefile

std::ofstream* TrackerMap::savefile
protected

◆ saveGeoTrackerMap

bool TrackerMap::saveGeoTrackerMap

Definition at line 193 of file TrackerMap.h.

Referenced by printall(), save(), and TrackerMap().

◆ saveWebInterface

bool TrackerMap::saveWebInterface

◆ slotMap

SvgFed TrackerMap::slotMap

Definition at line 181 of file TrackerMap.h.

Referenced by save_as_fedtrackermap(), and TrackerMap().

◆ smoduleMap

SmoduleMap TrackerMap::smoduleMap

◆ svgfile

std::ofstream* TrackerMap::svgfile
protected

Definition at line 669 of file TrackerMap.h.

Referenced by drawApvPair(), drawCcu(), drawHV2(), drawHV3(), drawModule(), drawPalette(), drawPsu(), and print().

◆ temporary_file

bool TrackerMap::temporary_file
protected

◆ title

std::string TrackerMap::title

◆ tkMapLog

bool TrackerMap::tkMapLog

◆ vc

std::vector<TColor*> TrackerMap::vc

◆ xmax

double TrackerMap::xmax
protected

◆ xmin

double TrackerMap::xmin
protected

◆ xsize

int TrackerMap::xsize
protected

◆ ymax

double TrackerMap::ymax
protected

◆ ymin

double TrackerMap::ymin
protected

◆ ysize

int TrackerMap::ysize
protected