CMS 3D CMS Logo

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes

MELaserPrim Class Reference

#include <MELaserPrim.h>

List of all members.

Public Types

enum  {
  iAPD, iAPDoPN, iAPDoPNA, iAPDoPNB,
  iAPDoAPD, iAPDoAPDA, iAPDoAPDB, iTime,
  iSizeArray_apdpn
}
enum  {
  iMean, iRMS, iM3, iNevt,
  iMin, iMax, iSize_apdpn
}
enum  { iShapeCor, iSizeExtra_apdpn }
enum  {
  iAlpha, iBeta, iWidth, iChi2,
  iSize_ab
}
enum  {
  iPeak, iSigma, iFit, iAmpl,
  iTrise, iFwhm, iFw20, iFw80,
  iSlide, iSize_mtq
}
enum  {
  iGain0, iGain1, iGain2, iGain3,
  iSize_gain
}
enum  {
  iECAL, iECAL_LMR, iEB_crystal_number, iEB_LM_LMM,
  iEB_LM_PN, iEE_crystal_number, iEE_LM_LMM, iEE_LM_PN,
  iSize_cv
}

Public Member Functions

void bookHistograms ()
bool fill (const char *tname)
void fillHistograms ()
Int_t getInt (const char *, int ix, int iy)
Float_t getVal (const char *, int ix, int iy)
void init ()
 MELaserPrim (ME::Header header, ME::Settings settings, const char *inpath, const char *outfile)
void print (std::ostream &o)
bool setInt (const char *, int ix, int iy, int ival)
bool setInt (const char *tname, const char *vname, int ival)
bool setVal (const char *tname, const char *vname, float val)
bool setVal (const char *, int ix, int iy, float val)
void writeHistograms ()
virtual ~MELaserPrim ()

Static Public Member Functions

static TString channelViewName (int)
static bool getViewIds (int logicId, int &channelView, int &id1, int &id2)
static TString lmfLaserName (int table, int type, int color=ME::iBlue)
static int logicId (int channelView, int id1, int id2=0)

Public Attributes

bool init_ok

Static Public Attributes

static TString separator = "__"

Private Member Functions

void addBranchC (const char *t_name, const char *v_name)
void addBranchF (const char *t_name, const char *v_name)
void addBranchI (const char *t_name, const char *v_name)
void bookHistoF (const char *t_name, const char *v_name)
void bookHistoI (const char *t_name, const char *v_name)
void refresh ()
void setHistoStyle (TH1 *)

Private Attributes

int _color
int _dcc
int _delay
int _ecal_region
int _events
int _filter
TString _inpath
bool _isBarrel
int _lb
int _lmr
int _memgain
int _mgpagain
TString _outfile
TString _pnPrimStr
int _power
TString _primStr
TString _pulseStr
int _reg
TString _regionStr
int _run
TString _sectorStr
int _side
int _sm
TString _tpPnPrimStr
TString _tpPrimStr
ME::TimeStamp _ts
ME::TimeStamp _ts_beg
ME::TimeStamp _ts_end
int _type
Double_t ab_ab [iSize_ab]
Int_t ab_channelID
Int_t ab_dccID
TFile * ab_file
Int_t ab_flag
Int_t ab_ieta
Int_t ab_iphi
Int_t ab_towerID
TTree * ab_tree
Double_t apdpn_apdpn [iSizeArray_apdpn][iSize_apdpn]
Int_t apdpn_channelID
Int_t apdpn_dccID
TFile * apdpn_file
Int_t apdpn_flag
Int_t apdpn_ieta
Int_t apdpn_iphi
Int_t apdpn_moduleID
Double_t apdpn_ShapeCor
Int_t apdpn_side
Int_t apdpn_towerID
TTree * apdpn_tree
TBranch * b_ab_ab [iSize_ab]
TBranch * b_ab_channelID
TBranch * b_ab_dccID
TBranch * b_ab_flag
TBranch * b_ab_ieta
TBranch * b_ab_iphi
TBranch * b_ab_towerID
TBranch * b_apdpn_apdpn [iSizeArray_apdpn]
TBranch * b_apdpn_channelID
TBranch * b_apdpn_dccID
TBranch * b_apdpn_flag
TBranch * b_apdpn_ieta
TBranch * b_apdpn_iphi
TBranch * b_apdpn_moduleID
TBranch * b_apdpn_ShapeCor
TBranch * b_apdpn_side
TBranch * b_apdpn_towerID
TBranch * b_mtq_color
TBranch * b_mtq_mtq [iSize_mtq]
TBranch * b_mtq_side
TBranch * b_pn_moduleID
TBranch * b_pn_PN
TBranch * b_pn_pnID
TBranch * b_pn_PNoPN
TBranch * b_pn_PNoPNA
TBranch * b_pn_PNoPNB
TBranch * b_pn_side
TBranch * b_tpapd_APD
TBranch * b_tpapd_channelID
TBranch * b_tpapd_dccID
TBranch * b_tpapd_flag
TBranch * b_tpapd_gain
TBranch * b_tpapd_ieta
TBranch * b_tpapd_iphi
TBranch * b_tpapd_moduleID
TBranch * b_tpapd_side
TBranch * b_tpapd_towerID
TBranch * b_tppn_gain
TBranch * b_tppn_moduleID
TBranch * b_tppn_PN
TBranch * b_tppn_pnID
TBranch * b_tppn_side
std::map< TString, const char * > c_t
std::map< TString, TH2 * > f_h
std::map< TString, float > f_t
std::map< TString, TH2 * > i_h
std::map< TString, int > i_t
int ixmax
int ixmin
int iymax
int iymin
Int_t mtq_color
TFile * mtq_file
Double_t mtq_mtq [iSize_mtq]
Int_t mtq_side
TTree * mtq_tree
int nx
int ny
TFile * out_file
TFile * pn_file
Int_t pn_moduleID
Double_t pn_PN [iSize_apdpn]
Int_t pn_pnID
Double_t pn_PNoPN [iSize_apdpn]
Double_t pn_PNoPNA [iSize_apdpn]
Double_t pn_PNoPNB [iSize_apdpn]
Int_t pn_side
TTree * pn_tree
std::map< TString, TTree * > t_t
Double_t tpapd_APD [iSize_apdpn]
Int_t tpapd_channelID
Int_t tpapd_dccID
TFile * tpapd_file
Int_t tpapd_flag
Int_t tpapd_gain
Int_t tpapd_ieta
Int_t tpapd_iphi
Int_t tpapd_moduleID
Int_t tpapd_side
Int_t tpapd_towerID
TTree * tpapd_tree
Int_t tppn_gain
Int_t tppn_moduleID
Double_t tppn_PN [iSize_apdpn]
Int_t tppn_pnID
Int_t tppn_side
TTree * tppn_tree

Static Private Attributes

static TString ab_varName [iSize_ab] = { "alpha", "beta", "width", "chi2" }
static TString apdpn_arrayName [iSizeArray_apdpn] = {"APD", "APDoPN", "APDoPNA", "APDoPNB","APDoAPD","APDoAPDA", "APDoAPDB", "Time"}
static TString apdpn_extraVarName [iSizeExtra_apdpn] = { "ShapeCor" }
static TString apdpn_extraVarUnit [iSizeExtra_apdpn] = { "" }
static TString apdpn_varName [iSize_apdpn] = { "Mean", "RMS", "M3", "Nevt", "Min", "Max"}
static TString apdpn_varUnit [iSizeArray_apdpn][iSize_apdpn]
static TString mtq_varName [iSize_mtq] = {"peak", "sigma", "fit", "ampl", "trise", "fwhm", "fw20", "fw80", "sliding" }
static TString mtq_varUnit [iSize_mtq]

Detailed Description

Definition at line 18 of file MELaserPrim.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
iAPD 
iAPDoPN 
iAPDoPNA 
iAPDoPNB 
iAPDoAPD 
iAPDoAPDA 
iAPDoAPDB 
iTime 
iSizeArray_apdpn 

Definition at line 25 of file MELaserPrim.h.

anonymous enum
Enumerator:
iMean 
iRMS 
iM3 
iNevt 
iMin 
iMax 
iSize_apdpn 

Definition at line 26 of file MELaserPrim.h.

anonymous enum
Enumerator:
iShapeCor 
iSizeExtra_apdpn 

Definition at line 27 of file MELaserPrim.h.

anonymous enum
Enumerator:
iAlpha 
iBeta 
iWidth 
iChi2 
iSize_ab 

Definition at line 28 of file MELaserPrim.h.

anonymous enum
Enumerator:
iPeak 
iSigma 
iFit 
iAmpl 
iTrise 
iFwhm 
iFw20 
iFw80 
iSlide 
iSize_mtq 

Definition at line 29 of file MELaserPrim.h.

anonymous enum
Enumerator:
iGain0 
iGain1 
iGain2 
iGain3 
iSize_gain 

Definition at line 31 of file MELaserPrim.h.

anonymous enum
Enumerator:
iECAL 
iECAL_LMR 
iEB_crystal_number 
iEB_LM_LMM 
iEB_LM_PN 
iEE_crystal_number 
iEE_LM_LMM 
iEE_LM_PN 
iSize_cv 

Definition at line 34 of file MELaserPrim.h.


Constructor & Destructor Documentation

MELaserPrim::MELaserPrim ( ME::Header  header,
ME::Settings  settings,
const char *  inpath,
const char *  outfile 
)

Definition at line 32 of file MELaserPrim.cc.

References _color, _dcc, _delay, _events, _filter, _isBarrel, _lb, _lmr, _memgain, _mgpagain, _pnPrimStr, _power, _primStr, _pulseStr, _reg, _regionStr, _run, _sectorStr, _side, _sm, _tpPnPrimStr, _tpPrimStr, _ts, _ts_beg, _ts_end, _type, ab_file, ab_tree, apdpn_file, apdpn_tree, bookHistograms(), ME::iEBM, ME::iEBP, ME::iLaser, ME::iLmfLaserPnPrim, ME::iLmfLaserPrim, ME::iLmfLaserPulse, ME::iLmfTestPulsePnPrim, ME::iLmfTestPulsePrim, init(), ME::iTestPulse, ixmax, ixmin, iymax, iymin, lmfLaserName(), ME::lmr(), mtq_file, mtq_tree, pn_tree, ME::regionAndSector(), separator, ME::smName(), tpapd_file, tpapd_tree, and tppn_tree.

: init_ok(false), _isBarrel(true), _inpath(inpath), _outfile(outfile)
{
  apdpn_file =0;
  ab_file    =0;
  mtq_file   =0;
  tpapd_file =0;
  apdpn_tree =0;
  ab_tree    =0;
  pn_tree    =0;
  mtq_tree   =0;
  tpapd_tree =0;
  tppn_tree  =0;
  ixmin      =0;
  ixmax      =0;
  iymin      =0;
  iymax      =0;

  _dcc    = header.dcc;
  _side   = header.side;
  _run    = header.run;
  _lb     = header.lb;
  _events = header.events;
  _ts     = header.ts_beg;
  _ts_beg = header.ts_beg;
  _ts_end = header.ts_end;

  _type     = settings.type;
  _color    = settings.wavelength;
  _power    = settings.power;
  _filter   = settings.filter;
  _delay    = settings.delay;
  _mgpagain = settings.mgpagain; 
  _memgain  = settings.memgain; 

  if( _type==ME::iLaser )
    {
      _primStr     = lmfLaserName( ME::iLmfLaserPrim,   _type, _color )+separator;
      _pnPrimStr   = lmfLaserName( ME::iLmfLaserPnPrim, _type, _color )+separator;
      _pulseStr    = lmfLaserName( ME::iLmfLaserPulse,  _type, _color )+separator;
    }
  else if( _type==ME::iTestPulse )
    {
      _tpPrimStr    = lmfLaserName( ME::iLmfTestPulsePrim, _type   )+separator;
      _tpPnPrimStr  = lmfLaserName( ME::iLmfTestPulsePnPrim, _type )+separator;
    }

  _lmr = ME::lmr( _dcc, _side );
  ME::regionAndSector( _lmr, _reg, _sm, _dcc, _side );    
  _isBarrel = (_reg==ME::iEBM || _reg==ME::iEBP);
  _sectorStr  = ME::smName( _lmr );
  _regionStr  = _sectorStr;
  _regionStr += "_"; _regionStr  += _side;

  init();
  bookHistograms();
  //fillHistograms();
  //writeHistograms();
}
MELaserPrim::~MELaserPrim ( ) [virtual]

Definition at line 967 of file MELaserPrim.cc.

References ab_file, ab_tree, apdpn_file, apdpn_tree, mtq_file, mtq_tree, pn_tree, tpapd_file, tpapd_tree, and tppn_tree.

{
  delete apdpn_tree;
  delete ab_tree;
  delete pn_tree;
  delete mtq_tree;
  delete tpapd_tree;
  delete tppn_tree;
  if( apdpn_file!=0 )
    {
      //      std::cout << "Closing apdpn_file " << std::endl;
      apdpn_file->Close();
      delete apdpn_file;
      apdpn_file = 0;
    }
  if( ab_file!=0 )
    {
      //      std::cout << "Closing ab_file " << std::endl;
      ab_file->Close();
      delete ab_file;
      ab_file = 0;
    }
  if( mtq_file!=0 )
    {
      //      std::cout << "Closing mtq_file " << std::endl;
      mtq_file->Close();
      delete mtq_file;
      mtq_file = 0;
    }
  if( tpapd_file!=0 )
    {
      //      std::cout << "Closing tpapd_file " << std::endl;
      tpapd_file->Close();
      delete tpapd_file;
      tpapd_file = 0;
    }
}

Member Function Documentation

void MELaserPrim::addBranchC ( const char *  t_name,
const char *  v_name 
) [private]

Definition at line 1090 of file MELaserPrim.cc.

References c_t, separator, and t_t.

Referenced by bookHistograms().

{
  TString slashC("/C");
  TString t_name(t_name_);
  TString v_name(v_name_);
  if( t_t.count(t_name)==0 ) t_t[t_name] = new TTree(t_name, t_name);
  t_t[t_name]->Branch(v_name, &c_t[t_name+separator+v_name],v_name+slashC);
}
void MELaserPrim::addBranchF ( const char *  t_name,
const char *  v_name 
) [private]

Definition at line 1080 of file MELaserPrim.cc.

References f_t, separator, and t_t.

Referenced by bookHistograms().

{
  TString slashF("/F");
  TString t_name(t_name_);
  TString v_name(v_name_);
  if( t_t.count(t_name)==0 ) t_t[t_name] = new TTree(t_name, t_name);
  t_t[t_name]->Branch(v_name, &f_t[t_name+separator+v_name],v_name+slashF);
}
void MELaserPrim::addBranchI ( const char *  t_name,
const char *  v_name 
) [private]

Definition at line 1070 of file MELaserPrim.cc.

References i_t, separator, and t_t.

Referenced by bookHistograms().

{
  TString slashI("/i"); // Warning: always unsigned
  TString t_name(t_name_);
  TString v_name(v_name_);
  if( t_t.count(t_name)==0 ) t_t[t_name] = new TTree(t_name, t_name);
  t_t[t_name]->Branch(v_name, &i_t[t_name+separator+v_name],v_name+slashI);  
}
void MELaserPrim::bookHistoF ( const char *  t_name,
const char *  v_name 
) [private]

Definition at line 1109 of file MELaserPrim.cc.

References f_h, ixmax, ixmin, iymax, iymin, nx, ny, and setHistoStyle().

Referenced by bookHistograms().

{
  TString d_name = TString(h_name_)+TString(v_name_);
  TH2* h_ = new TH2F(d_name,d_name,nx,ixmin,ixmax,ny,iymin,iymax);
  setHistoStyle( h_ );
  f_h[d_name] = h_;
}
void MELaserPrim::bookHistograms ( )

Definition at line 326 of file MELaserPrim.cc.

References _color, _isBarrel, _primStr, _tpPrimStr, _type, addBranchC(), addBranchF(), addBranchI(), bookHistoF(), bookHistoI(), ME::iLaser, ME::iLmfLaserConfig, ME::iLmfLaserPnPrim, ME::iLmfLaserPulse, ME::iLmfTestPulseConfig, ME::iLmfTestPulsePnPrim, init_ok, ME::iTestPulse, ixmax, ixmin, iymax, iymin, lmfLaserName(), nx, ny, and refresh().

Referenced by MELaserPrim().

{
  if( !init_ok ) return;
  refresh();

  TString i_name, d_name;
      
  if( _isBarrel )
    {
      ixmin=0;
      ixmax=85;
      nx   =ixmax-ixmin;
      iymin=0;
      iymax=20;
      ny   =iymax-iymin;

//       for( int ilmod=1; ilmod<=9; ilmod++ )
//      {
//        _pn[ilmod] = MEEBGeom::pn( ilmod );
//      }
    }
  else   // fixme --- to be implemented
    {
      ixmin=1;
      ixmax=101;
      nx   =ixmax-ixmin;
      iymin=1;
      iymax=101;
      ny   =iymax-iymin;
//       for( int ilmod=1; ilmod<=21; ilmod++ )  // modules 20 and 21 are fake...
//      {
//        _pn[ilmod] = MEEEGeom::pn( ilmod );
//      }
      //      abort();
    }

  TString t_name; 

  //
  // Laser Run
  //
  t_name = "LMF_RUN_DAT";
  addBranchI( t_name, "LOGIC_ID"       );
  addBranchI( t_name, "NEVENTS"        );
  addBranchI( t_name, "QUALITY_FLAG"   );

  //
  // Laser Run IOV
  //
  t_name = "LMF_RUN_IOV";
  addBranchI( t_name, "TAG_ID"         );
  addBranchI( t_name, "SUB_RUN_NUM"    );
  addBranchI( t_name, "SUB_RUN_START_LOW"   );
  addBranchI( t_name, "SUB_RUN_START_HIGH"  );
  addBranchI( t_name, "SUB_RUN_END_LOW"     );
  addBranchI( t_name, "SUB_RUN_END_HIGH"    );
  addBranchI( t_name, "DB_TIMESTAMP_LOW"    );
  addBranchI( t_name, "DB_TIMESTAMP_HIGH"   );
  addBranchC( t_name, "SUB_RUN_TYPE"   );

  if( _type==ME::iLaser )
    {  
      //
      // Laser ADC Primitives
      //
      bookHistoI( _primStr, "LOGIC_ID" );
      bookHistoI( _primStr, "FLAG" );
      bookHistoF( _primStr, "MEAN" );
      bookHistoF( _primStr, "RMS" );
      bookHistoF( _primStr, "M3" );
      bookHistoF( _primStr, "APD_OVER_PNA_MEAN" );
      bookHistoF( _primStr, "APD_OVER_PNA_RMS" );
      bookHistoF( _primStr, "APD_OVER_PNA_M3" );
      bookHistoF( _primStr, "APD_OVER_PNB_MEAN" );
      bookHistoF( _primStr, "APD_OVER_PNB_RMS" );
      bookHistoF( _primStr, "APD_OVER_PNB_M3" );
      bookHistoF( _primStr, "APD_OVER_PN_MEAN" );
      bookHistoF( _primStr, "APD_OVER_PN_RMS" );
      bookHistoF( _primStr, "APD_OVER_PN_M3" );
      bookHistoF( _primStr, "APD_OVER_APDA_MEAN" );
      bookHistoF( _primStr, "APD_OVER_APDA_RMS" );
      bookHistoF( _primStr, "APD_OVER_APDA_M3" );
      bookHistoF( _primStr, "APD_OVER_APDB_MEAN" );
      bookHistoF( _primStr, "APD_OVER_APDB_RMS" );
      bookHistoF( _primStr, "APD_OVER_APDB_M3" );
      bookHistoF( _primStr, "SHAPE_COR" );
      bookHistoF( _primStr, "ALPHA" );
      bookHistoF( _primStr, "BETA" );
      // NEW GHM 08/06 --> SCHEMA MODIFIED?
      bookHistoF( _primStr, "TIME_MEAN" ); 
      bookHistoF( _primStr, "TIME_RMS"  );
      bookHistoF( _primStr, "TIME_M3"   );  
      bookHistoF( _primStr, "TIME_NEVT" );

      //
      // Laser PN Primitives
      //
      t_name = lmfLaserName( ME::iLmfLaserPnPrim, _type, _color );
      addBranchI( t_name, "LOGIC_ID" );
      addBranchI( t_name, "FLAG"     );
      addBranchF( t_name, "MEAN"     );
      addBranchF( t_name, "RMS"      );
      addBranchF( t_name, "M3"     );
      addBranchF( t_name, "PNA_OVER_PNB_MEAN"     );
      addBranchF( t_name, "PNA_OVER_PNB_RMS"      );
      addBranchF( t_name, "PNA_OVER_PNB_M3"       );

      //
      // Laser Pulse
      //
      t_name = lmfLaserName( ME::iLmfLaserPulse, _type, _color );
      addBranchI( t_name, "LOGIC_ID" );
      addBranchI( t_name, "FIT_METHOD"   );
      addBranchF( t_name, "MTQ_AMPL"     );
      addBranchF( t_name, "MTQ_TIME"     );
      addBranchF( t_name, "MTQ_RISE"     );
      addBranchF( t_name, "MTQ_FWHM"     );
      addBranchF( t_name, "MTQ_FW20"     );
      addBranchF( t_name, "MTQ_FW80"     );
      addBranchF( t_name, "MTQ_SLIDING"  );

      //
      // Laser Config
      //
      t_name = lmfLaserName( ME::iLmfLaserConfig, _type );
      addBranchI( t_name, "LOGIC_ID"       );
      addBranchI( t_name, "WAVELENGTH"     );
      addBranchI( t_name, "VFE_GAIN"       );
      addBranchI( t_name, "PN_GAIN"        );
      addBranchI( t_name, "LSR_POWER"      );
      addBranchI( t_name, "LSR_ATTENUATOR" );
      addBranchI( t_name, "LSR_CURRENT"    );
      addBranchI( t_name, "LSR_DELAY_1"    );
      addBranchI( t_name, "LSR_DELAY_2"    );

      //
      // Laser LaserRun config dat
      //
      t_name = "RUN_LASERRUN_CONFIG_DAT";
      addBranchI( t_name, "LOGIC_ID"       );
      addBranchC( t_name, "LASER_SEQUENCE_TYPE"    );
      addBranchC( t_name, "LASER_SEQUENCE_COND"  );

    }
  else if( _type==ME::iTestPulse )
    {
      //
      // Test Pulse ADC Primitives
      //
      bookHistoI( _tpPrimStr, "LOGIC_ID" );
      bookHistoI( _tpPrimStr, "FLAG" );
      bookHistoF( _tpPrimStr, "MEAN" );
      bookHistoF( _tpPrimStr, "RMS" );
      bookHistoF( _tpPrimStr, "M3" );
      bookHistoF( _tpPrimStr, "NEVT" );

      //
      // Test Pulse PN Primitives
      //
      t_name = lmfLaserName( ME::iLmfTestPulsePnPrim, _type );
      addBranchI( t_name, "LOGIC_ID" );
      addBranchI( t_name, "FLAG"     );
      addBranchI( t_name, "GAIN"     );
      addBranchF( t_name, "MEAN"     );
      addBranchF( t_name, "RMS"      );
      addBranchF( t_name, "M3"     );

      //
      // Test Pulse Config
      //
      t_name = lmfLaserName( ME::iLmfTestPulseConfig, _type );
      addBranchI( t_name, "LOGIC_ID"       );
      addBranchI( t_name, "VFE_GAIN"       );
      addBranchI( t_name, "PN_GAIN"        );
    }
}
void MELaserPrim::bookHistoI ( const char *  t_name,
const char *  v_name 
) [private]

Definition at line 1100 of file MELaserPrim.cc.

References i_h, ixmax, ixmin, iymax, iymin, nx, ny, and setHistoStyle().

Referenced by bookHistograms().

{
  TString i_name = TString(h_name_)+TString(v_name_);
  TH2* h_ = new TH2I(i_name,i_name,nx,ixmin,ixmax,ny,iymin,iymax);
  setHistoStyle( h_ );
  i_h[i_name] = h_;
}
TString MELaserPrim::channelViewName ( int  iname) [static]

Definition at line 94 of file MELaserPrim.cc.

References iEB_crystal_number, iEB_LM_LMM, iEB_LM_PN, iECAL, iECAL_LMR, iEE_crystal_number, iEE_LM_LMM, and iEE_LM_PN.

{
  switch( iname )
    {
    case iECAL:                 return "ECAL";
    case iECAL_LMR:             return "ECAL_LMR";
    case iEB_crystal_number:    return "EB_crystal_number";
    case iEB_LM_LMM:            return "EB_LM_LMM";
    case iEB_LM_PN:             return "EB_LM_PN";
    case iEE_crystal_number:    return "EE_crystal_number";
    case iEE_LM_LMM:            return "EE_LM_LMM";
    case iEE_LM_PN:             return "EE_LM_PN";
    default:
      abort();
    }
  return "";
}
bool MELaserPrim::fill ( const char *  tname)

Definition at line 1210 of file MELaserPrim.cc.

References HcalObjRepresent::Fill(), and t_t.

{
  TString key_( tname );
  assert( t_t.count(key_)==1 );
  t_t[key_] -> Fill();
  return true;
}
void MELaserPrim::fillHistograms ( )

Definition at line 504 of file MELaserPrim.cc.

References _color, _delay, _events, _filter, _isBarrel, _lmr, _memgain, _mgpagain, _power, _run, _side, _sm, _ts, _ts_beg, _ts_end, _type, ab_ab, ab_tree, apdpn_apdpn, apdpn_flag, apdpn_ieta, apdpn_iphi, apdpn_ShapeCor, apdpn_side, apdpn_tree, c_t, MEEBGeom::crystal_channel(), MEEEGeom::dee(), f_t, i_t, iAlpha, iAmpl, iAPD, iAPDoAPDA, iAPDoAPDB, iAPDoPN, iAPDoPNA, iAPDoPNB, iBeta, iEB_crystal_number, iEB_LM_PN, iECAL_LMR, iEE_crystal_number, iEE_LM_PN, iFw20, iFw80, iFwhm, ME::iLaser, ME::iLmfLaserConfig, ME::iLmfLaserPnPrim, ME::iLmfLaserPulse, ME::iLmfLaserRun, iM3, iMean, iNevt, init_ok, iPeak, iRMS, iSlide, ME::iTestPulse, iTime, iTrise, lmfLaserName(), MEEBGeom::localCoord(), logicId(), sistrip::module_, mtq_mtq, mtq_side, mtq_tree, ME::pn(), pn_moduleID, pn_PN, pn_pnID, pn_PNoPNA, pn_PNoPNB, pn_side, pn_tree, separator, setInt(), setVal(), t_t, ME::time_high(), and ME::time_low().

{
  TString t_name; 

  if( !init_ok ) return;

  Long64_t nb       = 0;
  Long64_t nentries = 0;
  Long64_t ientry   = 0;

  int channelView_(0);
  int id1_(0), id2_(0);
  int logic_id_(0);

  if( _type==ME::iLaser )
    {

      nentries = apdpn_tree->GetEntriesFast();
      for( Long64_t jentry=0; jentry<nentries; jentry++ ) 
        {      
          ientry = apdpn_tree->LoadTree( jentry );
          assert( ientry>=0 );
          nb     = apdpn_tree->GetEntry( jentry );

          if(ab_tree){
            ientry = ab_tree->LoadTree( jentry );
            assert( ientry>=0 );
            nb     = ab_tree->GetEntry( jentry );
          }


          if( apdpn_iphi<0 ) continue;      

          // fixme remove until coordinated are fine
          //if(ab_tree) assert( apdpn_ieta==ab_ieta && apdpn_iphi==ab_iphi );
      
          int ix(0);
          int iy(0);
          if( _isBarrel )
            {
              // Barrel, global coordinates
              id1_ = _sm;   
              if ( apdpn_side != _side ) continue; 
              int ieta=apdpn_ieta;
              int iphi=apdpn_iphi;
              MEEBGeom::XYCoord xy_ = MEEBGeom::localCoord( ieta, iphi );
              ix = xy_.first;
              iy = xy_.second;
              id2_ = MEEBGeom::crystal_channel( ix, iy ); 
              channelView_ = iEB_crystal_number;
            }
          else
            {
              // EndCaps, global coordinates
              id1_ = apdpn_iphi;
              id2_ = apdpn_ieta; 
              ix = id1_;
              iy = id2_;
              channelView_ = iEE_crystal_number;
            }

          logic_id_ = logicId( channelView_, id1_, id2_ );

          int flag = apdpn_flag;

          setInt( "LOGIC_ID",           ix, iy,  logic_id_ );
          setInt( "FLAG",               ix, iy,  flag );
          setVal( "MEAN",               ix, iy,  apdpn_apdpn[iAPD][iMean] );
          setVal( "RMS",                ix, iy,  apdpn_apdpn[iAPD][iRMS] );
          setVal( "M3",                 ix, iy,  apdpn_apdpn[iAPD][iM3] );  // fixme --- peak?
          setVal( "APD_OVER_PNA_MEAN",  ix, iy,  apdpn_apdpn[iAPDoPNA][iMean] );
          setVal( "APD_OVER_PNA_RMS",   ix, iy,  apdpn_apdpn[iAPDoPNA][iRMS] );
          setVal( "APD_OVER_PNA_M3",    ix, iy,  apdpn_apdpn[iAPDoPNA][iM3] );  // fixme
          setVal( "APD_OVER_PNB_MEAN",  ix, iy,  apdpn_apdpn[iAPDoPNB][iMean] );
          setVal( "APD_OVER_PNB_RMS",   ix, iy,  apdpn_apdpn[iAPDoPNB][iRMS] );
          setVal( "APD_OVER_PNB_M3",    ix, iy,  apdpn_apdpn[iAPDoPNB][iM3] );  // fixme
          setVal( "APD_OVER_PN_MEAN",   ix, iy,  apdpn_apdpn[iAPDoPN][iMean] );
          setVal( "APD_OVER_PN_RMS",    ix, iy,  apdpn_apdpn[iAPDoPN][iRMS] );
          setVal( "APD_OVER_PN_M3",     ix, iy,  apdpn_apdpn[iAPDoPN][iM3] );  // fixme
          // JM
          setVal( "APD_OVER_APD_MEAN",  ix, iy,  apdpn_apdpn[iAPDoAPDA][iMean] );
          setVal( "APD_OVER_APD_RMS",   ix, iy,  apdpn_apdpn[iAPDoAPDA][iRMS] );
          setVal( "APD_OVER_APD_M3",    ix, iy,  apdpn_apdpn[iAPDoAPDA][iM3] );  // fixme
          setVal( "APD_OVER_APDA_MEAN",  ix, iy,  apdpn_apdpn[iAPDoAPDA][iMean] );
          setVal( "APD_OVER_APDA_RMS",   ix, iy,  apdpn_apdpn[iAPDoAPDA][iRMS] );
          setVal( "APD_OVER_APDA_M3",    ix, iy,  apdpn_apdpn[iAPDoAPDA][iM3] );  // fixme
          setVal( "APD_OVER_APDB_MEAN",  ix, iy,  apdpn_apdpn[iAPDoAPDB][iMean] );
          setVal( "APD_OVER_APDB_RMS",   ix, iy,  apdpn_apdpn[iAPDoAPDB][iRMS] );
          setVal( "APD_OVER_APDB_M3",    ix, iy,  apdpn_apdpn[iAPDoAPDB][iM3] );  // fixme
          // JM
          setVal( "SHAPE_COR",          ix, iy,  apdpn_ShapeCor );
          if(ab_tree){
            setVal( "ALPHA",              ix, iy,  ab_ab[iAlpha] );
            setVal( "BETA",               ix, iy,  ab_ab[iBeta] );
          }else{
            setVal( "ALPHA",              ix, iy,  0. );
            setVal( "BETA",               ix, iy,  0. );
          }
          // NEW GHM 08/06
          setVal( "TIME_MEAN",          ix, iy,  apdpn_apdpn[iTime][iMean] );
          setVal( "TIME_RMS",           ix, iy,  apdpn_apdpn[iTime][iRMS]  );
          setVal( "TIME_M3",            ix, iy,  apdpn_apdpn[iTime][iM3]   );
          setVal( "TIME_NEVT",          ix, iy,  apdpn_apdpn[iTime][iNevt] );

        }


      //
      // PN primitives
      //
      t_name = lmfLaserName( ME::iLmfLaserPnPrim, _type, _color );

      nentries = pn_tree->GetEntriesFast();
      assert( nentries%2==0 );
      int module_(0);
      id1_=_sm; id2_=0;
  
      Long64_t jentry=0;

      while( jentry<nentries ) 
        {      
          for( int jj=0; jj<2; jj++ )
            {
              // jj=0 --> PNA
              // jj=1 --> PNB
              
              int zentry = jentry+jj;
              assert( zentry<nentries );
              
              ientry = pn_tree->LoadTree( zentry );
              assert( ientry>=0 );
              nb     = pn_tree->GetEntry( zentry );
              
              if( _side!=pn_side ) break;
                  
              if( jj==1 ) assert( pn_moduleID==module_ );
              module_ = pn_moduleID;
              assert( pn_pnID==jj );
              
              // get the PN number
              std::pair<int,int> memPn_ = ME::pn( _lmr, module_, (ME::PN)jj );
              if( _isBarrel )
                {
                  //              assert( memPn_.first%600==_dcc%600 );
                  id1_ = _sm;
                  id2_ = memPn_.second;
                }
              else
                {
                  int dee_ = MEEEGeom::dee( _lmr );
                  //              int mem_ = memPn_.first%600;
//                if(      dee_==1 )
//                  {
//                    if( jj==ME::iPNA ) assert( mem_==50 );
//                    else               assert( mem_==51 );
//                  }
//                else if( dee_==2 )
//                  {
//                    if( jj==ME::iPNA ) assert( mem_==47 );  // warning !
//                    else               assert( mem_==46 );
//                    //                      assert( mem_==46 || mem_==47 );
//                  }
//                else if( dee_==3 )
//                  {
//                    if( jj==ME::iPNA ) assert( mem_==1 );
//                    else               assert( mem_==2 );
//                  }
//                else if( dee_==4 )
//                  {
//                    if( jj==ME::iPNA ) assert( mem_==5 );
//                    else               assert( mem_==6 );
//                  }
                  id1_ = dee_;
                  id2_ = (jj+1)*100+memPn_.second;
                }
              
              if( _isBarrel )
                {
                  channelView_ = iEB_LM_PN;
                }
              else
                {
                  channelView_ = iEE_LM_PN;
                }
              logic_id_ = logicId( channelView_, id1_, id2_ );
              
              i_t[t_name+separator+"LOGIC_ID"] = logic_id_;
              f_t[t_name+separator+"MEAN"]  = pn_PN[iMean];
              f_t[t_name+separator+"RMS"]   = pn_PN[iRMS];
              f_t[t_name+separator+"M3"]  = pn_PN[iM3];    
              f_t[t_name+separator+"PNA_OVER_PNB_MEAN"]  = (jj==0) ? pn_PNoPNB[iMean] : pn_PNoPNA[iMean];
              f_t[t_name+separator+"PNA_OVER_PNB_RMS" ]  = (jj==0) ? pn_PNoPNB[iRMS]  : pn_PNoPNA[iRMS];
              f_t[t_name+separator+"PNA_OVER_PNB_M3"]  = (jj==0) ? pn_PNoPNB[iM3] : pn_PNoPNA[iM3];
              
              t_t[t_name]->Fill();
              
            }
          //      std::cout << "Module=" << module_ << "\tPNA=" << pn_[0] << "\tPNB=" << pn_[1] << std::endl;

//        if( _isBarrel )
//          jentry += 4;
//        else
//          jentry += 2;
          jentry += 2;
        }

      logic_id_  = logicId( iECAL_LMR, _lmr );

      //
      // MATACQ primitives
      //

      if(mtq_tree){

        t_name = lmfLaserName( ME::iLmfLaserPulse, _type, _color );
    
        nentries = mtq_tree->GetEntriesFast();
        assert( nentries==2 );
        for( Long64_t jentry=0; jentry<nentries; jentry++ ) 
          {        
            ientry = mtq_tree->LoadTree( jentry );
            assert( ientry>=0 );
            nb     = mtq_tree->GetEntry( jentry );
            
            if ( mtq_side != _side ) continue; 
            
            i_t[t_name+separator+"LOGIC_ID"]       = logic_id_;
            i_t[t_name+separator+"FIT_METHOD"]     = 0 ;   // fixme  --- what's this? ? ?
            f_t[t_name+separator+"MTQ_AMPL"]       = mtq_mtq[iAmpl];
            f_t[t_name+separator+"MTQ_TIME"]       = mtq_mtq[iPeak];
            f_t[t_name+separator+"MTQ_RISE"]       = mtq_mtq[iTrise];
            f_t[t_name+separator+"MTQ_FWHM"]       = mtq_mtq[iFwhm];
            f_t[t_name+separator+"MTQ_FW20"]       = mtq_mtq[iFw20];
            f_t[t_name+separator+"MTQ_FW80"]       = mtq_mtq[iFw80];
            f_t[t_name+separator+"MTQ_SLIDING"]    = mtq_mtq[iSlide];      // fixme  --- sliding: max of average in sliding window
        
            t_t[t_name]->Fill();
          }
      }else{

        t_name = lmfLaserName( ME::iLmfLaserPulse, _type, _color );

        i_t[t_name+separator+"LOGIC_ID"]       = logic_id_;
        i_t[t_name+separator+"FIT_METHOD"]     =  0 ;   // fixme 
        f_t[t_name+separator+"MTQ_AMPL"]       = 0.0;
        f_t[t_name+separator+"MTQ_TIME"]       = 0.0;
        f_t[t_name+separator+"MTQ_RISE"]       = 0.0;
        f_t[t_name+separator+"MTQ_FWHM"]       = 0.0;
        f_t[t_name+separator+"MTQ_FW20"]       = 0.0;
        f_t[t_name+separator+"MTQ_FW80"]       = 0.0;
        f_t[t_name+separator+"MTQ_SLIDING"]    = 0.0;  

        t_t[t_name]->Fill();
      }

      //
      // Laser Run
      //
      t_name = lmfLaserName( ME::iLmfLaserRun, _type );
      //std::cout << "Fill "<< t_name << std::endl;
      i_t[t_name+separator+"LOGIC_ID"]       = logic_id_; 
      i_t[t_name+separator+"NEVENTS"]        =  _events;
      i_t[t_name+separator+"QUALITY_FLAG"]   = 1;                // fixme
      t_t[t_name]->Fill();
  
      //
      // Laser Config
      //
      t_name = lmfLaserName( ME::iLmfLaserConfig, _type );
      //std::cout << "Fill "<< t_name << std::endl;
      i_t[t_name+separator+"LOGIC_ID"]        = logic_id_;
      i_t[t_name+separator+"WAVELENGTH"]      = _color;
      i_t[t_name+separator+"VFE_GAIN"]        = _mgpagain; // fixme 
      i_t[t_name+separator+"PN_GAIN"]         = _memgain;  // fixme
      i_t[t_name+separator+"LSR_POWER"]       = _power; // will be available from MATACQ data
      i_t[t_name+separator+"LSR_ATTENUATOR"]  = _filter; // idem
      i_t[t_name+separator+"LSR_CURRENT"]     = 0; // idem
      i_t[t_name+separator+"LSR_DELAY_1"]     = _delay; // idem
      i_t[t_name+separator+"LSR_DELAY_2"]     = 0; // idem
      t_t[t_name]->Fill();

    }
  else if( _type==ME::iTestPulse )
    {

//       nentries = tpapd_tree->GetEntriesFast();
//       for( Long64_t jentry=0; jentry<nentries; jentry++ ) 
//      {      
//        ientry = tpapd_tree->LoadTree( jentry );
//        assert( ientry>=0 );
//        nb     = tpapd_tree->GetEntry( jentry );

//        if( tpapd_iphi<0 ) continue;      

//        const bool new_= true;
      
//        int ix;
//        int iy;
//        int id2;
//        if( new_ )
//          {
//            // for Cruzet3 , global coordinates
//            if ( tpapd_side != _side ) continue; 
//            int ieta=tpapd_ieta;
//            int iphi=tpapd_iphi;
//            MEEBGeom::XYCoord xy_ = MEEBGeom::localCoord( ieta, iphi );
//            ix = xy_.first;
//            iy = xy_.second;
//            id2 = ix*20 + iy;  // !!! TO BE CHECKED !!!
//          }
//        else
//          {
//            // for Cruzet2 , local coordinates
//            ix = tpapd_ieta;
//            iy = 19-tpapd_iphi;
//            id2 = ix*20 + (20 - iy);  // !!! TO BE CHECKED !!!
//          }
//        // 

//        int id1 = _sm;   // fixme --- this is for barrel
//        int logic_id_ = 1011000000;    // fixme
//        logic_id_ += 10000*id1 + id2;

//        int flag = tpapd_flag;

//        setInt( "LOGIC_ID",           ix, iy,  logic_id_ );
//        setInt( "FLAG",               ix, iy,  flag );
//        setVal( "MEAN",               ix, iy,  tpapd_APD[iMean] );
//        setVal( "RMS",                ix, iy,  tpapd_APD[iRMS] );
//        setVal( "M3",                 ix, iy,  tpapd_APD[iM3] ); 
//        setVal( "NEVT",               ix, iy,  tpapd_APD[iNevt] );
//      }

//       //
//       // PN primitives
//       //
//       t_name = lmfLaserName( ME::iLmfTestPulsePnPrim, _type );

//       nentries = tppn_tree->GetEntriesFast();
//       assert( nentries%2==0 );
//       int module_, pn_[2];
//       int id1_(_sm), id2_(0);
//       int logic_id_(0);
  
//       Long64_t jentry=0;
//       if( _side==1 ) jentry+=2;  // fixme : true also for endcaps?
//       while( jentry<nentries ) 
//      {      
//        for( int jj=0; jj<2; jj++ )
//          {
//            // jj=0 --> PNA
//            // jj=1 --> PNB
          
//            int zentry = jentry+jj;
//            assert( zentry<nentries );
          
//            ientry = tppn_tree->LoadTree( zentry );
//            assert( ientry>=0 );
//            nb     = tppn_tree->GetEntry( zentry );

//            if( jj==1 ) assert( tppn_moduleID==module_ );
//            module_ = tppn_moduleID;
//            assert( tppn_pnID==jj );
          
//            pn_[jj] = ( jj==0 ) ? _pn[module_].first : _pn[module_].second;
//            id2_ = pn_[jj];
//            logic_id_ = 1131000000 ;
//            //          logic_id_ = 0;    // fixme
//            logic_id_ += 10000*id1_ + id2_;
          
//            i_t[t_name+separator+"LOGIC_ID"] = logic_id_;
//            i_t[t_name+separator+"GAIN"]  = tppn_gain;
//            f_t[t_name+separator+"MEAN"]  = tppn_PN[iMean];
//            f_t[t_name+separator+"RMS"]   = tppn_PN[iRMS];
//            f_t[t_name+separator+"M3"]    = tppn_PN[iM3];     // fixme --- peak?

//            t_t[t_name]->Fill();

//          }

//        //      std::cout << "Module=" << module_ << "\tPNA=" << pn_[0] << "\tPNB=" << pn_[1] << std::endl;

//        jentry += 4;
//      }

//       logic_id_ = 1041000000;
//       logic_id_ += 10000*id1_;
//       logic_id_ += id1_;
  
//       //
//       // Test Pulse Run
//       //
//       t_name = lmfLaserName( ME::iLmfTestPulseRun, _type );
//       //std::cout << "Fill "<< t_name << std::endl;
//       i_t[t_name+separator+"LOGIC_ID"]       = logic_id_;  // fixme --- is there a channelview for this?
//       i_t[t_name+separator+"NEVENTS"]        =  _events;
//       i_t[t_name+separator+"QUALITY_FLAG"]   = 1;                // fixme
//       t_t[t_name]->Fill();
  
//       //
//       // Test Pulse Config
//       //
//       t_name = lmfLaserName( ME::iLmfTestPulseConfig, _type );
//       //std::cout << "Fill "<< t_name << std::endl;
//       i_t[t_name+separator+"LOGIC_ID"]        = logic_id_;  // fixme
//       i_t[t_name+separator+"VFE_GAIN"]        = _mgpagain; // fixme 
//       i_t[t_name+separator+"PN_GAIN"]         = _memgain;  // fixme
//       t_t[t_name]->Fill();
    }

  //
  // Laser Run IOV
  //
  t_name = "LMF_RUN_IOV";
  //std::cout << "Fill "<< t_name << std::endl;
  i_t[t_name+separator+"TAG_ID"]        = 0;       // fixme
  i_t[t_name+separator+"SUB_RUN_NUM"]   = _run;      // fixme
  i_t[t_name+separator+"SUB_RUN_START_LOW" ] = ME::time_low( _ts_beg );
  i_t[t_name+separator+"SUB_RUN_START_HIGH"] = ME::time_high( _ts_beg );
  i_t[t_name+separator+"SUB_RUN_END_LOW"   ] = ME::time_low( _ts_end );
  i_t[t_name+separator+"SUB_RUN_END_HIGH"  ] = ME::time_high( _ts_end );
  i_t[t_name+separator+"DB_TIMESTAMP_LOW"  ] = ME::time_low( _ts ); 
  i_t[t_name+separator+"DB_TIMESTAMP_HIGH" ] = ME::time_high( _ts );
  c_t[t_name+separator+"SUB_RUN_TYPE"]  = "LASER TEST CRUZET"; //fixme
  t_t[t_name]->Fill();

}
Int_t MELaserPrim::getInt ( const char *  name,
int  ix,
int  iy 
)

Definition at line 1156 of file MELaserPrim.cc.

References i_h.

Referenced by setInt().

{
  Int_t ival=-99;
  if( i_h.count(name)==1 )
    {
      TH2I* h_ = (TH2I*) i_h[name];
      assert( h_!=0 );
      int binx = h_->GetXaxis()->FindBin( ix+0.5 );
      int biny = h_->GetYaxis()->FindBin( iy+0.5 );
      ival =  (Int_t) h_->GetCellContent( binx, biny );
    }
  return ival;
}
Float_t MELaserPrim::getVal ( const char *  name,
int  ix,
int  iy 
)

Definition at line 1171 of file MELaserPrim.cc.

References f_h.

Referenced by setVal().

{
  Float_t val=-99.;
  if( f_h.count(name)==1 )
    {
      TH2F* h_ = (TH2F*) f_h[name];
      assert( h_!=0 );
      int binx = h_->GetXaxis()->FindBin( ix+0.5 );
      int biny = h_->GetYaxis()->FindBin( iy+0.5 );
      val =  h_->GetCellContent( binx, biny );
    }
  return val;
}
bool MELaserPrim::getViewIds ( int  logicId,
int &  channelView,
int &  id1,
int &  id2 
) [static]

Definition at line 120 of file MELaserPrim.cc.

References dbtoconf::out.

{
  bool out = true;
  int channelView_ = logic_id/1000000;
  if( channelView!=0 && channelView_!=channelView ) out=false;
  channelView = channelView_;
  id1 = (logic_id%1000000)/10000;
  id2 = logic_id%10000;
  return out;
}
void MELaserPrim::init ( )

Definition at line 132 of file MELaserPrim.cc.

References _color, _inpath, _type, ab_ab, ab_channelID, ab_dccID, ab_file, ab_flag, ab_ieta, ab_iphi, ab_towerID, ab_tree, ab_varName, apdpn_apdpn, apdpn_arrayName, apdpn_channelID, apdpn_dccID, apdpn_file, apdpn_flag, apdpn_ieta, apdpn_iphi, apdpn_moduleID, apdpn_ShapeCor, apdpn_side, apdpn_towerID, apdpn_tree, b_ab_ab, b_ab_channelID, b_ab_dccID, b_ab_flag, b_ab_ieta, b_ab_iphi, b_ab_towerID, b_apdpn_apdpn, b_apdpn_channelID, b_apdpn_dccID, b_apdpn_flag, b_apdpn_ieta, b_apdpn_iphi, b_apdpn_moduleID, b_apdpn_ShapeCor, b_apdpn_side, b_apdpn_towerID, b_mtq_mtq, b_mtq_side, b_pn_moduleID, b_pn_PN, b_pn_pnID, b_pn_PNoPN, b_pn_PNoPNA, b_pn_PNoPNB, b_pn_side, b_tpapd_APD, b_tpapd_channelID, b_tpapd_dccID, b_tpapd_flag, b_tpapd_gain, b_tpapd_ieta, b_tpapd_iphi, b_tpapd_moduleID, b_tpapd_side, b_tpapd_towerID, b_tppn_gain, b_tppn_moduleID, b_tppn_PN, b_tppn_pnID, b_tppn_side, gather_cfg::cout, ME::iBlue, ME::iIRed, ME::iLaser, init_ok, iSize_ab, iSize_mtq, iSizeArray_apdpn, ME::iTestPulse, mtq_file, mtq_mtq, mtq_side, mtq_tree, mtq_varName, pn_moduleID, pn_PN, pn_pnID, pn_PNoPN, pn_PNoPNA, pn_PNoPNB, pn_side, pn_tree, MultipleCompare::test, tpapd_APD, tpapd_channelID, tpapd_dccID, tpapd_file, tpapd_flag, tpapd_gain, tpapd_ieta, tpapd_iphi, tpapd_moduleID, tpapd_side, tpapd_towerID, tpapd_tree, tppn_gain, tppn_moduleID, tppn_PN, tppn_pnID, tppn_side, and tppn_tree.

Referenced by MELaserPrim().

{
  bool verbose_ = false;

  if( _inpath=="0" )
    {
      if( verbose_ ) std::cout << "no input file" << std::endl;
      init_ok = true;
      return; // GHM
    }

  TString cur(_inpath);
  if( !cur.EndsWith("/") ) cur+="/";

  if( _type==ME::iLaser )
    {
      TString _APDPN_fname =cur; _APDPN_fname += "APDPN_LASER.root";
      TString _AB_fname    =cur; _AB_fname    += "AB.root"; 
      TString _MTQ_fname   =cur; _MTQ_fname   += "MATACQ.root";

      bool apdpn_ok, ab_ok, pn_ok, mtq_ok;
      apdpn_ok=false; ab_ok=false; pn_ok=false; mtq_ok=false;

      FILE *test; 
      test = fopen( _APDPN_fname,"r");  
      if (test) {
        apdpn_ok = true;
        pn_ok = true;
        fclose( test );
      }
      test = fopen( _AB_fname,"r");  
      if (test) 
        {
          ab_ok = true;
          fclose( test );
        }
      test = fopen( _MTQ_fname,"r");  
      if (test) 
        {
          mtq_ok = true;
          fclose( test );
        }

      if(apdpn_ok) apdpn_file = TFile::Open( _APDPN_fname );
      if(ab_ok)    ab_file    = TFile::Open(    _AB_fname );
      if(mtq_ok)  mtq_file   = TFile::Open(   _MTQ_fname );

      if( verbose_ )
        {
          std::cout << _APDPN_fname << " ok=" << apdpn_ok << std::endl;
          std::cout << _AB_fname    << " ok=" << ab_ok    << std::endl;
          std::cout << _MTQ_fname   << " ok=" << mtq_ok    << std::endl;
        }
      if (!apdpn_ok || !pn_ok ) return; // FIXME !
  
      TString apdpn_tree_name;
      TString    ab_tree_name;
      TString    pn_tree_name;
      TString   mtq_tree_name; 

      apdpn_tree_name = "APDCol";
      ab_tree_name    = "ABCol";
      pn_tree_name    = "PNCol";   
      mtq_tree_name   = "MatacqCol";
  
      apdpn_tree_name += _color;
      ab_tree_name    += _color;
      pn_tree_name    += _color;
      mtq_tree_name   += _color;

      if(mtq_ok)  {
        TTree *ckeckMtq = (TTree*) mtq_file->Get(mtq_tree_name);
        if( ckeckMtq ==0 ) mtq_ok = false;
      }

      if( _color != ME::iIRed && _color != ME::iBlue ){ 
        std::cout << "MELaserPrim::init() -- Fatal Error -- Wrong Laser Color : " << _color << " ---- Abort " << std::endl;
        return;
      }
      
      apdpn_tree = (TTree*) apdpn_file->Get(apdpn_tree_name);
      assert( apdpn_tree!=0 );
      apdpn_tree->SetMakeClass(1);
      apdpn_tree->SetBranchAddress("dccID", &apdpn_dccID, &b_apdpn_dccID);
      apdpn_tree->SetBranchAddress("towerID", &apdpn_towerID, &b_apdpn_towerID);
      apdpn_tree->SetBranchAddress("channelID", &apdpn_channelID, &b_apdpn_channelID);
      apdpn_tree->SetBranchAddress("moduleID", &apdpn_moduleID, &b_apdpn_moduleID);
      apdpn_tree->SetBranchAddress("side", &apdpn_side, &b_apdpn_side);
      apdpn_tree->SetBranchAddress("ieta", &apdpn_ieta, &b_apdpn_ieta);
      apdpn_tree->SetBranchAddress("iphi", &apdpn_iphi, &b_apdpn_iphi);
      apdpn_tree->SetBranchAddress("flag", &apdpn_flag, &b_apdpn_flag);
      if( apdpn_tree->GetBranchStatus("ShapeCor")) apdpn_tree->SetBranchAddress("ShapeCor", &apdpn_ShapeCor, &b_apdpn_ShapeCor);
      else apdpn_ShapeCor = 0.0;
      for( int jj=0; jj<iSizeArray_apdpn; jj++ )
        {
          TString name_ = apdpn_arrayName[jj];
          apdpn_tree->SetBranchAddress(name_, apdpn_apdpn[jj], &b_apdpn_apdpn[jj]);
        }
  
      if(ab_ok)  {
      ab_tree = (TTree*) ab_file->Get(ab_tree_name);
      assert( ab_tree!=0 );
      ab_tree->SetMakeClass(1);
      ab_tree->SetBranchAddress("dccID",     &ab_dccID,     &b_ab_dccID     );
      ab_tree->SetBranchAddress("towerID",   &ab_towerID,   &b_ab_towerID   );
      ab_tree->SetBranchAddress("channelID", &ab_channelID, &b_ab_channelID );
      ab_tree->SetBranchAddress("ieta",      &ab_ieta,      &b_ab_ieta      );
      ab_tree->SetBranchAddress("iphi",      &ab_iphi,      &b_ab_iphi      );
      ab_tree->SetBranchAddress("flag",      &ab_flag,      &b_ab_flag      );
      for( int ii=0; ii<iSize_ab; ii++ )
        {
          ab_tree->SetBranchAddress( ab_varName[ii], &ab_ab[ii], &b_ab_ab[ii] );
        }
      }

      pn_tree = (TTree*) apdpn_file->Get(pn_tree_name);
      assert( pn_tree!=0 );
      pn_tree->SetMakeClass(1);
      pn_tree->SetBranchAddress( "side",     &pn_side,     &b_pn_side     );
      pn_tree->SetBranchAddress( "pnID",     &pn_pnID,     &b_pn_pnID     );
      pn_tree->SetBranchAddress( "moduleID", &pn_moduleID, &b_pn_moduleID );
      pn_tree->SetBranchAddress( "PN",        pn_PN,       &b_pn_PN       );
      pn_tree->SetBranchAddress( "PNoPN",     pn_PNoPN,    &b_pn_PNoPN    );
      pn_tree->SetBranchAddress( "PNoPNA",    pn_PNoPNA,   &b_pn_PNoPNA   );
      pn_tree->SetBranchAddress( "PNoPNB",    pn_PNoPNB,   &b_pn_PNoPNB   );


      if( mtq_ok ) {
        mtq_tree = (TTree*) mtq_file->Get(mtq_tree_name);
        assert( mtq_tree!=0 );
        mtq_tree->SetMakeClass(1);
        mtq_tree->SetBranchAddress("side",        &mtq_side,       &b_mtq_side  );
    
        for( int ii=0; ii<iSize_mtq; ii++ )
          {
            mtq_tree->SetBranchAddress( mtq_varName[ii],  &mtq_mtq[ii], &b_mtq_mtq[ii] );
          }
      }
    }
  else if( _type==ME::iTestPulse )
    {
      TString _TPAPD_fname =cur; _TPAPD_fname += "APDPN_TESTPULSE.root";

      bool tpapd_ok;
      tpapd_ok=false; 

      FILE *test; 
      test = fopen( _TPAPD_fname,"r");  
      if (test) {
        tpapd_ok = true;
        fclose( test );
      }

      if(tpapd_ok) tpapd_file = TFile::Open( _TPAPD_fname );

      if( verbose_ )
        {
          std::cout << _TPAPD_fname << " ok=" << tpapd_ok << std::endl;
        }
      if (!tpapd_ok ) return;
  
      TString tpapd_tree_name;
      TString tppn_tree_name;

      tpapd_tree_name = "TPAPD";
      tppn_tree_name  = "TPPN";   
    
      tpapd_tree = (TTree*) tpapd_file->Get(tpapd_tree_name);
      assert( tpapd_tree!=0 );
      tpapd_tree->SetMakeClass(1);
      tpapd_tree->SetBranchAddress("ieta", &tpapd_ieta, &b_tpapd_ieta);
      tpapd_tree->SetBranchAddress("iphi", &tpapd_iphi, &b_tpapd_iphi);
      tpapd_tree->SetBranchAddress("dccID", &tpapd_dccID, &b_tpapd_dccID);
      tpapd_tree->SetBranchAddress("side", &tpapd_side, &b_tpapd_side);
      tpapd_tree->SetBranchAddress("towerID", &tpapd_towerID, &b_tpapd_towerID);
      tpapd_tree->SetBranchAddress("channelID", &tpapd_channelID, &b_tpapd_channelID);
      tpapd_tree->SetBranchAddress("moduleID", &tpapd_moduleID, &b_tpapd_moduleID);
      tpapd_tree->SetBranchAddress("flag", &tpapd_flag, &b_tpapd_flag);
      tpapd_tree->SetBranchAddress("gain", &tpapd_gain, &b_tpapd_gain);
      tpapd_tree->SetBranchAddress("APD",   tpapd_APD,  &b_tpapd_APD );

      tppn_tree = (TTree*) tpapd_file->Get(tppn_tree_name);
      assert( tppn_tree!=0 );
      tppn_tree->SetMakeClass(1);
      tppn_tree->SetBranchAddress( "side",     &tppn_side,     &b_tppn_side     );
      tppn_tree->SetBranchAddress( "pnID",     &tppn_pnID,     &b_tppn_pnID     );
      tppn_tree->SetBranchAddress( "moduleID", &tppn_moduleID, &b_tppn_moduleID );
      tppn_tree->SetBranchAddress( "gain",     &tppn_gain,     &b_tppn_gain     );
      tppn_tree->SetBranchAddress( "PN",        tppn_PN,       &b_tppn_PN       );
    }
  init_ok = true;
}
TString MELaserPrim::lmfLaserName ( int  table,
int  type,
int  color = ME::iBlue 
) [static]

Definition at line 1025 of file MELaserPrim.cc.

References ME::iBlue, ME::iGreen, ME::iIRed, ME::iLaser, ME::iLmfLaserConfig, ME::iLmfLaserPnPrim, ME::iLmfLaserPrim, ME::iLmfLaserPulse, ME::iLmfLaserRun, ME::iLmfTestPulseConfig, ME::iLmfTestPulsePnPrim, ME::iLmfTestPulsePrim, ME::iLmfTestPulseRun, ME::iRed, ME::iSizeC, ME::iSizeLmf, and ME::iTestPulse.

Referenced by bookHistograms(), fillHistograms(), and MELaserPrim().

{
  TString str("LMF_ERROR");
  if( table<0 || table>=ME::iSizeLmf )  return str;
  if( color<0 || color>=ME::iSizeC )    return str;

  if( type==ME::iLaser )
    {
      TString colstr;
      switch( color )
        {
        case ME::iBlue:   colstr = "_BLUE"; break;
        case ME::iGreen:  colstr = "_GREEN"; break;
        case ME::iRed:    colstr = "_RED";  break;
        case ME::iIRed:   colstr = "_IRED";  break;
        default:  abort();
        }
      str = "LMF_LASER";
      switch( table )
        {
        case ME::iLmfLaserRun:      str  = "LMF_RUN";                 break; 
        case ME::iLmfLaserConfig:   str += "_CONFIG";                 break; 
        case ME::iLmfLaserPulse:    str += colstr; str += "_PULSE";   break; 
        case ME::iLmfLaserPrim:     str += colstr; str += "_PRIM";    break; 
        case ME::iLmfLaserPnPrim:   str += colstr; str += "_PN_PRIM"; break; 
        default:  abort();
        }
    }
  else if( type==ME::iTestPulse )
    {
      str = "LMF_TEST_PULSE";
      switch( table )
        {
        case ME::iLmfTestPulseRun:     str = "LMF_RUN";     break;
        case ME::iLmfTestPulseConfig:  str += "_CONFIG";    break;
        case ME::iLmfTestPulsePrim:    str += "_PRIM";      break;        
        case ME::iLmfTestPulsePnPrim:  str += "_PN_PRIM";   break;
        default: abort();
        }
    }
  str += "_DAT";
  return str;
}
int MELaserPrim::logicId ( int  channelView,
int  id1,
int  id2 = 0 
) [static]

Definition at line 113 of file MELaserPrim.cc.

References iECAL, and iSize_cv.

Referenced by fillHistograms().

{
  assert( channelView>=iECAL && channelView<iSize_cv );
  return 1000000*channelView + 10000*id1 + id2;
}
void MELaserPrim::print ( std::ostream &  o)
void MELaserPrim::refresh ( ) [private]

Definition at line 1247 of file MELaserPrim.cc.

References f_h, i_h, and t_t.

Referenced by bookHistograms().

{
  std::map< TString, TH2* >::iterator it;

  for( it=i_h.begin(); it!=i_h.end(); it++ )
    {
      delete it->second;
      it->second = 0;
    }
  i_h.clear();

  for( it=f_h.begin(); it!=f_h.end(); it++ )
    {
      delete it->second;
      it->second = 0;
    }
  f_h.clear();

  std::map< TString, TTree* >::iterator it_t;
  for( it_t=t_t.begin(); it_t!=t_t.end(); it_t++ )
    {
      delete it_t->second;
      it->second = 0;
    }
  t_t.clear();
}
void MELaserPrim::setHistoStyle ( TH1 *  h) [private]

Definition at line 1219 of file MELaserPrim.cc.

References a.

Referenced by bookHistoF(), and bookHistoI().

{
  if( h==0 ) return;
  
  float _scale = 1;

  h->SetLineColor(4);
  h->SetLineWidth(1);
  h->SetFillColor(38);
  TAxis* axis[3];
  axis[0] = h->GetXaxis();
  axis[1] = h->GetYaxis();
  axis[2] = h->GetZaxis();
  for( int ii=0; ii<3; ii++ )
    {
      TAxis* a = axis[ii];
      if( !a ) continue;
      a->SetLabelFont(132);
      a->SetLabelOffset(_scale*0.005);
      a->SetLabelSize(_scale*0.04);
      a->SetTitleFont(132);
      a->SetTitleOffset(_scale*1);
      a->SetTitleSize(_scale*0.04);
    } 
  h->SetStats( kTRUE );
}
bool MELaserPrim::setInt ( const char *  tname,
const char *  vname,
int  ival 
)

Definition at line 1186 of file MELaserPrim.cc.

References i_t, and separator.

{
  TString key_(tname); key_ += separator; key_ += vname;
  assert( i_t.count(key_)==1 );
  i_t[key_] = ival;
  return true;
}
bool MELaserPrim::setInt ( const char *  name,
int  ix,
int  iy,
int  ival 
)

Definition at line 1119 of file MELaserPrim.cc.

References _primStr, _tpPrimStr, _type, getInt(), i_h, ME::iLaser, ME::iTestPulse, and mergeVDriftHistosByStation::name.

Referenced by fillHistograms().

{
  TString name_;
  if( _type==ME::iLaser ) name_=_primStr+name;
  else if( _type==ME::iTestPulse ) name_=_tpPrimStr+name;
 
  int _ival = getInt( name_, ix, iy );
  assert( _ival!=-99 );
  if( _ival!=0 ) return false; 

  TH2I* h_ = (TH2I*) i_h[name_];
  assert( h_!=0 );
  h_->Fill( ix+0.5, iy+0.5, ival );

  return true;
}
bool MELaserPrim::setVal ( const char *  name,
int  ix,
int  iy,
float  val 
)

Definition at line 1137 of file MELaserPrim.cc.

References _primStr, _tpPrimStr, _type, f_h, getVal(), ME::iLaser, ME::iTestPulse, and mergeVDriftHistosByStation::name.

Referenced by fillHistograms().

{
  TString name_;
  if( _type==ME::iLaser ) name_=_primStr+name;
  else if( _type==ME::iTestPulse ) name_=_tpPrimStr+name;
 
  float _val = getVal( name_, ix, iy );
  assert( _val!=-99 );
  if( _val!=0 ) return false; 

  TH2F* h_ = (TH2F*) f_h[name_];
  assert( h_!=0 );
  
  h_->Fill( ix+0.5, iy+0.5, val );

  return true;
}
bool MELaserPrim::setVal ( const char *  tname,
const char *  vname,
float  val 
)

Definition at line 1195 of file MELaserPrim.cc.

References gather_cfg::cout, f_t, and separator.

{
  TString key_(tname); key_ += separator; key_ += vname;

  // ghm
  if( f_t.count(key_)!=1 )
    {
      std::cout << key_ << std::endl;
    }
  assert( f_t.count(key_)==1 );
  f_t[key_]  = val;
  return true;
}
void MELaserPrim::writeHistograms ( )

Definition at line 933 of file MELaserPrim.cc.

References _outfile, f_h, i_h, init_ok, out_file, and t_t.

{
  if( !init_ok ) return;

  out_file = new TFile( _outfile, "RECREATE" );
  //  out_file->cd();

  std::map< TString, TH2* >::iterator it;

  for( it=i_h.begin(); it!=i_h.end(); it++ )
    {
      it->second->Write();
      delete it->second;
    }

  for( it=f_h.begin(); it!=f_h.end(); it++ )
    {
      it->second->Write();
      delete it->second;
    }

  std::map< TString, TTree* >::iterator it_t;
  for( it_t=t_t.begin(); it_t!=t_t.end(); it_t++ )
    {
      it_t->second->Write();
      delete it_t->second;
    }

  //  std::cout << "Closing " << _outfile << std::endl;
  out_file->Close();
  delete out_file;
  out_file=0;
}

Member Data Documentation

int MELaserPrim::_color [private]

Definition at line 89 of file MELaserPrim.h.

Referenced by bookHistograms(), fillHistograms(), init(), and MELaserPrim().

int MELaserPrim::_dcc [private]

Definition at line 82 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_delay [private]

Definition at line 92 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

Definition at line 103 of file MELaserPrim.h.

int MELaserPrim::_events [private]

Definition at line 86 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

int MELaserPrim::_filter [private]

Definition at line 91 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

TString MELaserPrim::_inpath [private]

Definition at line 132 of file MELaserPrim.h.

Referenced by init().

bool MELaserPrim::_isBarrel [private]

Definition at line 80 of file MELaserPrim.h.

Referenced by bookHistograms(), fillHistograms(), and MELaserPrim().

int MELaserPrim::_lb [private]

Definition at line 85 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_lmr [private]

Definition at line 81 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

int MELaserPrim::_memgain [private]

Definition at line 100 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

int MELaserPrim::_mgpagain [private]

Definition at line 99 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

TString MELaserPrim::_outfile [private]

Definition at line 135 of file MELaserPrim.h.

Referenced by writeHistograms().

TString MELaserPrim::_pnPrimStr [private]

Definition at line 110 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_power [private]

Definition at line 90 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

TString MELaserPrim::_primStr [private]

Definition at line 109 of file MELaserPrim.h.

Referenced by bookHistograms(), MELaserPrim(), setInt(), and setVal().

TString MELaserPrim::_pulseStr [private]

Definition at line 111 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_reg [private]

Definition at line 79 of file MELaserPrim.h.

Referenced by MELaserPrim().

TString MELaserPrim::_regionStr [private]

Definition at line 108 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_run [private]

Definition at line 84 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

TString MELaserPrim::_sectorStr [private]

Definition at line 107 of file MELaserPrim.h.

Referenced by MELaserPrim().

int MELaserPrim::_side [private]

Definition at line 83 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

int MELaserPrim::_sm [private]

Definition at line 104 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

TString MELaserPrim::_tpPnPrimStr [private]

Definition at line 113 of file MELaserPrim.h.

Referenced by MELaserPrim().

TString MELaserPrim::_tpPrimStr [private]

Definition at line 112 of file MELaserPrim.h.

Referenced by bookHistograms(), MELaserPrim(), setInt(), and setVal().

Definition at line 95 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

Definition at line 96 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

Definition at line 97 of file MELaserPrim.h.

Referenced by fillHistograms(), and MELaserPrim().

int MELaserPrim::_type [private]

Definition at line 88 of file MELaserPrim.h.

Referenced by bookHistograms(), fillHistograms(), init(), MELaserPrim(), setInt(), and setVal().

Double_t MELaserPrim::ab_ab[iSize_ab] [private]

Definition at line 175 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::ab_channelID [private]

Definition at line 171 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::ab_dccID [private]

Definition at line 169 of file MELaserPrim.h.

Referenced by init().

TFile* MELaserPrim::ab_file [private]

Definition at line 117 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().

Int_t MELaserPrim::ab_flag [private]

Definition at line 174 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::ab_ieta [private]

Definition at line 172 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::ab_iphi [private]

Definition at line 173 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::ab_towerID [private]

Definition at line 170 of file MELaserPrim.h.

Referenced by init().

TTree* MELaserPrim::ab_tree [private]

Definition at line 125 of file MELaserPrim.h.

Referenced by fillHistograms(), init(), MELaserPrim(), and ~MELaserPrim().

TString MELaserPrim::ab_varName = { "alpha", "beta", "width", "chi2" } [static, private]

Definition at line 270 of file MELaserPrim.h.

Referenced by init().

Double_t MELaserPrim::apdpn_apdpn[iSizeArray_apdpn][iSize_apdpn] [private]

Definition at line 166 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

TString MELaserPrim::apdpn_arrayName = {"APD", "APDoPN", "APDoPNA", "APDoPNB","APDoAPD","APDoAPDA", "APDoAPDB", "Time"} [static, private]

Definition at line 265 of file MELaserPrim.h.

Referenced by init().

Definition at line 158 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::apdpn_dccID [private]

Definition at line 156 of file MELaserPrim.h.

Referenced by init().

TString MELaserPrim::apdpn_extraVarName = { "ShapeCor" } [static, private]

Definition at line 268 of file MELaserPrim.h.

TString MELaserPrim::apdpn_extraVarUnit = { "" } [static, private]

Definition at line 269 of file MELaserPrim.h.

TFile* MELaserPrim::apdpn_file [private]

Definition at line 116 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().

Int_t MELaserPrim::apdpn_flag [private]

Definition at line 164 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::apdpn_ieta [private]

Definition at line 162 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::apdpn_iphi [private]

Definition at line 163 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::apdpn_moduleID [private]

Definition at line 159 of file MELaserPrim.h.

Referenced by init().

Double_t MELaserPrim::apdpn_ShapeCor [private]

Definition at line 165 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::apdpn_side [private]

Definition at line 161 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::apdpn_towerID [private]

Definition at line 157 of file MELaserPrim.h.

Referenced by init().

TTree* MELaserPrim::apdpn_tree [private]

Definition at line 124 of file MELaserPrim.h.

Referenced by fillHistograms(), init(), MELaserPrim(), and ~MELaserPrim().

TString MELaserPrim::apdpn_varName = { "Mean", "RMS", "M3", "Nevt", "Min", "Max"} [static, private]

Definition at line 266 of file MELaserPrim.h.

TString MELaserPrim::apdpn_varUnit [static, private]
Initial value:
 
 
  { { " (ADC Counts)", " (ADC Counts)", " (ADC Counts)" ,"", " (ADC Counts)", " (ADC Counts)"},
    {"", "", "", "", "", ""},
    {"", "", "", "", "", ""},
    {"", "", "", "", "", ""},
    {"", "", "", "", "", ""},
    {"", "", "", "", "", ""},
    {" (25 ns)", " (25 ns)", " (25 ns)", "", " (25 ns)", " (25 ns)"} }

Definition at line 267 of file MELaserPrim.h.

TBranch* MELaserPrim::b_ab_ab[iSize_ab] [private]

Definition at line 230 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_channelID [private]

Definition at line 226 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_dccID [private]

Definition at line 224 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_flag [private]

Definition at line 229 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_ieta [private]

Definition at line 227 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_iphi [private]

Definition at line 228 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_ab_towerID [private]

Definition at line 225 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_apdpn[iSizeArray_apdpn] [private]

Definition at line 221 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_channelID [private]

Definition at line 213 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_dccID [private]

Definition at line 211 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_flag [private]

Definition at line 219 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_ieta [private]

Definition at line 217 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_iphi [private]

Definition at line 218 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_moduleID [private]

Definition at line 214 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_ShapeCor [private]

Definition at line 220 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_side [private]

Definition at line 216 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_apdpn_towerID [private]

Definition at line 212 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_mtq_color [private]

Definition at line 243 of file MELaserPrim.h.

TBranch* MELaserPrim::b_mtq_mtq[iSize_mtq] [private]

Definition at line 244 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_mtq_side [private]

Definition at line 242 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_moduleID [private]

Definition at line 235 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_PN [private]

Definition at line 236 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_pnID [private]

Definition at line 234 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_PNoPN [private]

Definition at line 237 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_PNoPNA [private]

Definition at line 238 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_PNoPNB [private]

Definition at line 239 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_pn_side [private]

Definition at line 233 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_APD [private]

Definition at line 256 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_channelID [private]

Definition at line 252 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_dccID [private]

Definition at line 249 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_flag [private]

Definition at line 254 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_gain [private]

Definition at line 255 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_ieta [private]

Definition at line 248 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_iphi [private]

Definition at line 247 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_moduleID [private]

Definition at line 253 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_side [private]

Definition at line 250 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tpapd_towerID [private]

Definition at line 251 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tppn_gain [private]

Definition at line 262 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tppn_moduleID [private]

Definition at line 261 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tppn_PN [private]

Definition at line 263 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tppn_pnID [private]

Definition at line 260 of file MELaserPrim.h.

Referenced by init().

TBranch* MELaserPrim::b_tppn_side [private]

Definition at line 259 of file MELaserPrim.h.

Referenced by init().

std::map< TString, const char* > MELaserPrim::c_t [private]

Definition at line 153 of file MELaserPrim.h.

Referenced by addBranchC(), and fillHistograms().

std::map< TString, TH2* > MELaserPrim::f_h [private]

Definition at line 147 of file MELaserPrim.h.

Referenced by bookHistoF(), getVal(), refresh(), setVal(), and writeHistograms().

std::map< TString, float > MELaserPrim::f_t [private]

Definition at line 152 of file MELaserPrim.h.

Referenced by addBranchF(), fillHistograms(), and setVal().

std::map< TString, TH2* > MELaserPrim::i_h [private]

Definition at line 146 of file MELaserPrim.h.

Referenced by bookHistoI(), getInt(), refresh(), setInt(), and writeHistograms().

std::map< TString, int > MELaserPrim::i_t [private]

Definition at line 151 of file MELaserPrim.h.

Referenced by addBranchI(), fillHistograms(), and setInt().

Definition at line 49 of file MELaserPrim.h.

Referenced by bookHistograms(), fillHistograms(), init(), and writeHistograms().

int MELaserPrim::ixmax [private]

Definition at line 140 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), bookHistoI(), and MELaserPrim().

int MELaserPrim::ixmin [private]

Definition at line 139 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), bookHistoI(), and MELaserPrim().

int MELaserPrim::iymax [private]

Definition at line 143 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), bookHistoI(), and MELaserPrim().

int MELaserPrim::iymin [private]

Definition at line 142 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), bookHistoI(), and MELaserPrim().

Int_t MELaserPrim::mtq_color [private]

Definition at line 188 of file MELaserPrim.h.

TFile* MELaserPrim::mtq_file [private]

Definition at line 119 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().

Double_t MELaserPrim::mtq_mtq[iSize_mtq] [private]

Definition at line 189 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::mtq_side [private]

Definition at line 187 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

TTree* MELaserPrim::mtq_tree [private]

Definition at line 127 of file MELaserPrim.h.

Referenced by fillHistograms(), init(), MELaserPrim(), and ~MELaserPrim().

TString MELaserPrim::mtq_varName = {"peak", "sigma", "fit", "ampl", "trise", "fwhm", "fw20", "fw80", "sliding" } [static, private]

Definition at line 271 of file MELaserPrim.h.

Referenced by init().

TString MELaserPrim::mtq_varUnit [static, private]
Initial value:
 
  {"(nanoseconds)", "(nanoseconds)", "(nanoseconds)", 
   "(ADC counts)", "(nanoseconds)",
   "(nanoseconds)", "(nanoseconds)", "(nanoseconds)", "(ADC counts)"}

Definition at line 272 of file MELaserPrim.h.

int MELaserPrim::nx [private]

Definition at line 138 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), and bookHistoI().

int MELaserPrim::ny [private]

Definition at line 141 of file MELaserPrim.h.

Referenced by bookHistoF(), bookHistograms(), and bookHistoI().

TFile* MELaserPrim::out_file [private]

Definition at line 121 of file MELaserPrim.h.

Referenced by writeHistograms().

TFile* MELaserPrim::pn_file [private]

Definition at line 118 of file MELaserPrim.h.

Int_t MELaserPrim::pn_moduleID [private]

Definition at line 180 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Double_t MELaserPrim::pn_PN[iSize_apdpn] [private]

Definition at line 181 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::pn_pnID [private]

Definition at line 179 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Double_t MELaserPrim::pn_PNoPN[iSize_apdpn] [private]

Definition at line 182 of file MELaserPrim.h.

Referenced by init().

Double_t MELaserPrim::pn_PNoPNA[iSize_apdpn] [private]

Definition at line 183 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Double_t MELaserPrim::pn_PNoPNB[iSize_apdpn] [private]

Definition at line 184 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

Int_t MELaserPrim::pn_side [private]

Definition at line 178 of file MELaserPrim.h.

Referenced by fillHistograms(), and init().

TTree* MELaserPrim::pn_tree [private]

Definition at line 126 of file MELaserPrim.h.

Referenced by fillHistograms(), init(), MELaserPrim(), and ~MELaserPrim().

TString MELaserPrim::separator = "__" [static]
std::map< TString, TTree* > MELaserPrim::t_t [private]
Double_t MELaserPrim::tpapd_APD[iSize_apdpn] [private]

Definition at line 201 of file MELaserPrim.h.

Referenced by init().

Definition at line 197 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_dccID [private]

Definition at line 194 of file MELaserPrim.h.

Referenced by init().

TFile* MELaserPrim::tpapd_file [private]

Definition at line 120 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().

Int_t MELaserPrim::tpapd_flag [private]

Definition at line 199 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_gain [private]

Definition at line 200 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_ieta [private]

Definition at line 193 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_iphi [private]

Definition at line 192 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_moduleID [private]

Definition at line 198 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_side [private]

Definition at line 195 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tpapd_towerID [private]

Definition at line 196 of file MELaserPrim.h.

Referenced by init().

TTree* MELaserPrim::tpapd_tree [private]

Definition at line 128 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().

Int_t MELaserPrim::tppn_gain [private]

Definition at line 207 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tppn_moduleID [private]

Definition at line 206 of file MELaserPrim.h.

Referenced by init().

Double_t MELaserPrim::tppn_PN[iSize_apdpn] [private]

Definition at line 208 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tppn_pnID [private]

Definition at line 205 of file MELaserPrim.h.

Referenced by init().

Int_t MELaserPrim::tppn_side [private]

Definition at line 204 of file MELaserPrim.h.

Referenced by init().

TTree* MELaserPrim::tppn_tree [private]

Definition at line 129 of file MELaserPrim.h.

Referenced by init(), MELaserPrim(), and ~MELaserPrim().