CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/CalibFormats/SiPixelObjects/src/PixelDACScanRange.cc

Go to the documentation of this file.
00001 //
00002 // This class collects the information
00003 // about the range of DAC settings used
00004 // in scans of the DACs.
00005 //
00006 //
00007 //
00008 
00009 #include "CalibFormats/SiPixelObjects/interface/PixelDACScanRange.h"
00010 #include "CalibFormats/SiPixelObjects/interface/PixelDACNames.h"
00011 #include <iostream>
00012 #include <assert.h>
00013 
00014 using namespace pos;
00015 
00016 PixelDACScanRange::PixelDACScanRange(std::string name, unsigned int first, 
00017                                      unsigned int last, unsigned int step,
00018                                      unsigned int index, bool mixValuesAcrossROCs){
00019 
00020   uniformSteps_=true;
00021   relative_=false;
00022   negative_=false;
00023 
00024   first_=first;
00025   last_=last;
00026   step_=step;
00027   
00028   name_=name;
00029   index_=index;
00030   mixValuesAcrossROCs_=mixValuesAcrossROCs;
00031   if (first_==last_) assert( mixValuesAcrossROCs==false );
00032   while(first<=last){
00033     values_.push_back(first);
00034     first+=step;
00035     //FIXME should have a better reporting
00036     assert(values_.size()<1000);
00037   }
00038 
00039   setDACChannel(name);
00040 
00041 }
00042 
00043 PixelDACScanRange::PixelDACScanRange(std::string name, 
00044                                      std::vector<unsigned int> values,
00045                                      unsigned int index, bool mixValuesAcrossROCs){
00046 
00047   uniformSteps_=false;
00048   relative_=false;
00049   negative_=false;
00050 
00051   name_=name;
00052   values_=values;
00053   mixValuesAcrossROCs_=mixValuesAcrossROCs;
00054   assert( mixValuesAcrossROCs==false );
00055 
00056   setDACChannel(name);
00057 
00058 }
00059 
00060 
00061 void PixelDACScanRange::setDACChannel(std::string name){
00062 
00063   if (name==pos::k_DACName_Vdd)                {
00064     dacchannel_=pos::k_DACAddress_Vdd          ;
00065   } else if (name==pos::k_DACName_Vana)        {
00066     dacchannel_=pos::k_DACAddress_Vana         ;
00067   } else if (name==pos::k_DACName_Vsf)         {
00068     dacchannel_=pos::k_DACAddress_Vsf          ;
00069   } else if (name==pos::k_DACName_Vcomp)       {
00070     dacchannel_=pos::k_DACAddress_Vcomp        ;
00071   } else if (name==pos::k_DACName_Vleak)       {
00072     dacchannel_=pos::k_DACAddress_Vleak        ;
00073   } else if (name==pos::k_DACName_VrgPr)       {
00074     dacchannel_=pos::k_DACAddress_VrgPr        ;
00075   } else if (name==pos::k_DACName_VwllPr)      {
00076     dacchannel_=pos::k_DACAddress_VwllPr       ;
00077   } else if (name==pos::k_DACName_VrgSh)       {
00078     dacchannel_=pos::k_DACAddress_VrgSh        ;
00079   } else if (name==pos::k_DACName_VwllSh)      {
00080     dacchannel_=pos::k_DACAddress_VwllSh       ;
00081   } else if (name==pos::k_DACName_VHldDel)     {
00082     dacchannel_=pos::k_DACAddress_VHldDel      ;
00083   } else if (name==pos::k_DACName_Vtrim)       {
00084     dacchannel_=pos::k_DACAddress_Vtrim        ;
00085   } else if (name==pos::k_DACName_VcThr)       {
00086     dacchannel_=pos::k_DACAddress_VcThr        ;
00087   } else if (name==pos::k_DACName_VIbias_bus)  {
00088     dacchannel_=pos::k_DACAddress_VIbias_bus   ;
00089   } else if (name==pos::k_DACName_VIbias_sf)   {
00090     dacchannel_=pos::k_DACAddress_VIbias_sf    ;
00091   } else if (name==pos::k_DACName_VOffsetOp)   {
00092     dacchannel_=pos::k_DACAddress_VOffsetOp    ;
00093   } else if (name==pos::k_DACName_VbiasOp)     {
00094     dacchannel_=pos::k_DACAddress_VbiasOp      ;
00095   } else if (name==pos::k_DACName_VOffsetRO)   {
00096     dacchannel_=pos::k_DACAddress_VOffsetRO    ;
00097   } else if (name==pos::k_DACName_VIon)        {
00098     dacchannel_=pos::k_DACAddress_VIon         ;
00099   } else if (name==pos::k_DACName_VIbias_PH)   {
00100     dacchannel_=pos::k_DACAddress_VIbias_PH    ;
00101   } else if (name==pos::k_DACName_VIbias_DAC)  {
00102     dacchannel_=pos::k_DACAddress_VIbias_DAC   ;
00103   } else if (name==pos::k_DACName_VIbias_roc)  {
00104     dacchannel_=pos::k_DACAddress_VIbias_roc   ;
00105   } else if (name==pos::k_DACName_VIColOr)     {
00106     dacchannel_=pos::k_DACAddress_VIColOr      ;
00107   } else if (name==pos::k_DACName_Vnpix)       {
00108     dacchannel_=pos::k_DACAddress_Vnpix        ;
00109   } else if (name==pos::k_DACName_VsumCol)     {
00110     dacchannel_=pos::k_DACAddress_VsumCol      ;
00111   } else if (name==pos::k_DACName_Vcal)        {
00112     dacchannel_=pos::k_DACAddress_Vcal         ;
00113   } else if (name==pos::k_DACName_CalDel)      {
00114     dacchannel_=pos::k_DACAddress_CalDel       ;
00115   } else if (name==pos::k_DACName_WBC)         {
00116     dacchannel_=pos::k_DACAddress_WBC          ;
00117   } else if (name==pos::k_DACName_ChipContReg) {
00118     dacchannel_=pos::k_DACAddress_ChipContReg  ;
00119   } else {
00120     std::cout << __LINE__ << "]\t[PixelDACScanRange::setDACChannel()]\t\t\t    " 
00121               << "The dac name: " << name << " is unknown!" << std::endl;
00122     assert(0);
00123   }
00124 }
00125