TofCalibFit Class Reference

#include <TofCalibFit.h>

Inheritance diagram for TofCalibFit:

calib_barrel_common calib_barrel_q0 calib_barrel_sigma calib_endcap_atten calib_endcap_sigma calib_etf_bunch List of all members.

Public Member Functions

 TofCalibFit (bool isbarrel, const int npar)
 ~TofCalibFit ()
const stringname () const
virtual void calculate (RecordSet *&data, unsigned int icounter)=0
void fillTxt (const char *file)
void fillRoot (const char *file)
HepVector tcorrelation ()
void setTCorrelation (HepVector tc)

Protected Attributes

int m_npar
unsigned int nKind
unsigned int nBinPerCounter
unsigned int nHistPerCounter
unsigned int nCanvasPerCounter
std::vector< unsigned int > nGraphPerCanvasPerCounter
unsigned int nHistogram
unsigned int nCanvas
std::vector< unsigned int > nGraphPerCanvas
string m_name
HepVector X
std::vector< TH1F * > m_histograms
std::vector< TH1F * > m_graphs
std::vector< HepVector > m_result
std::vector< stringCanvasPerCounterName
std::vector< stringCanvasName
HepVector m_tcorrelation

Private Attributes

unsigned int nCounter

Detailed Description

Definition at line 21 of file TofCalibFit.h.


Constructor & Destructor Documentation

TofCalibFit::TofCalibFit ( bool  isbarrel,
const int  npar 
)

Definition at line 17 of file TofCalibFit.cxx.

References m_name, m_npar, m_tcorrelation, NBarrel, nBarrelCommon, nBinPerCounter, nCanvas, nCanvasPerCounter, nCounter, NEndcap, nHistogram, nHistPerCounter, nKind, deljobs::string, and X.

00017                                                         {
00018   if( isbarrel ) { nCounter = NBarrel; }
00019   else { nCounter = NEndcap; }
00020 
00021   nKind          = 0;
00022   nBinPerCounter = 0;
00023 
00024   nHistPerCounter   = 0;
00025   nCanvasPerCounter = 0;
00026   nHistogram        = 0;
00027   nCanvas           = 0;
00028 
00029   m_npar = npar;
00030   X = HepVector(m_npar,0);
00031   m_name = string("calibfit");
00032 
00033   m_tcorrelation = HepVector( nBarrelCommon,0);
00034 }

TofCalibFit::~TofCalibFit (  ) 

Definition at line 37 of file TofCalibFit.cxx.

References m_graphs, m_histograms, and m_result.

00037                           {
00038   std::vector<TH1F*>::iterator iter1 = m_histograms.begin();
00039   for( ; iter1 != m_histograms.end(); iter1++ ) {
00040     delete (*iter1);
00041   }
00042   m_histograms.clear();
00043   std::vector<TH1F*>::iterator iter2 = m_graphs.begin();
00044   for( ; iter2 != m_graphs.end(); iter2++ ) {
00045     delete (*iter2);
00046   }
00047   m_graphs.clear();
00048   m_result.clear();
00049 }


Member Function Documentation

virtual void TofCalibFit::calculate ( RecordSet *&  data,
unsigned int  icounter 
) [pure virtual]

Implemented in calib_barrel_common, calib_barrel_q0, calib_barrel_sigma, calib_endcap_atten, calib_endcap_sigma, and calib_etf_bunch.

void TofCalibFit::fillRoot ( const char *  file  ) 

Definition at line 80 of file TofCalibFit.cxx.

References CanvasName, CanvasPerCounterName, delete_small_size::dirname, genRecEmupikp::i, iter(), ganga-rec::j, m_graphs, m_histograms, m_name, nCanvas, nCanvasPerCounter, nCounter, nGraphPerCanvas, nGraphPerCanvasPerCounter, nHistogram, and nHistPerCounter.

00080                                              {
00081 
00082   unsigned int nhist = m_histograms.size();
00083   if( nhist != (nCounter*nHistPerCounter + nHistogram) ) {
00084     std::cout<<" tofcalgsec::TofCalibFit:" << m_name << ": the number of histograms is NOT same as the number of histograms saved!" << " nhist=" << nhist << " calculated=" << (nCounter*nHistPerCounter + nHistogram) << " nCounter=" << nCounter << " nHistPerCounter=" << nHistPerCounter << " nHistogram=" << nHistogram << std::endl;
00085     exit(0);
00086   }
00087 
00088   unsigned int numgraph1 = 0;
00089   unsigned int numgraph2 = 0;
00090   if( nCanvasPerCounter!=0 ) {
00091     std::vector<unsigned int>::iterator iter = nGraphPerCanvasPerCounter.begin();
00092     for( ; iter!=nGraphPerCanvasPerCounter.end(); iter++ ) {
00093       numgraph1 = numgraph1 + (*iter);
00094     }
00095   }
00096   if( nCanvas!=0 ) {
00097     std::vector<unsigned int>::iterator iter = nGraphPerCanvas.begin();
00098     for( ; iter!=nGraphPerCanvas.end(); iter++ ) {
00099       numgraph2 = numgraph2 + (*iter);
00100     }
00101   }
00102   unsigned int ngraph = m_graphs.size();
00103   if( ngraph != ( nCounter*numgraph1+numgraph2) ) {
00104     std::cout<<" tofcalgsec::TofCalibFit:"<< m_name << ": the number of graphs is NOT same as the number of graphs saved!"<<std::endl;
00105     exit(0);
00106   }
00107 
00108   TFile f(file,"RECREATE");
00109 
00110   gStyle->SetOptStat(2211);
00111   gStyle->SetOptFit(1111);
00112   gStyle->SetLabelSize(0.03,"x");
00113   gStyle->SetLabelSize(0.03,"y");
00114 
00115   char dirname[256];
00116   char canvasname[256];
00117   if( nHistPerCounter>0 || nCanvasPerCounter>0 ) {
00118     std::vector<TH1F*>::iterator iter1 = m_histograms.begin();
00119     std::vector<TH1F*>::iterator iter2 = m_graphs.begin();
00120     for( unsigned int i=0; i<nCounter; i++ ) {
00121       sprintf( dirname, "tofid%i", i );
00122       TDirectory* cdresult = f.mkdir( dirname );
00123       cdresult->cd();
00124       
00125       for( unsigned int j=0; j<nHistPerCounter; j++ ) {
00126         (*(iter1+j))->Write();
00127       }
00128       iter1 = iter1 + nHistPerCounter;
00129 
00130       for( unsigned int j=0; j<nCanvasPerCounter; j++ ) {
00131         std::vector<string>::iterator it1 = CanvasPerCounterName.begin() + j;
00132         std::vector<unsigned int>::iterator it2 = nGraphPerCanvasPerCounter.begin() + j;
00133         sprintf( canvasname, "%s-tofid-%i", (*it1).c_str(), i );
00134         TCanvas* c1 = new TCanvas( canvasname, canvasname, 1);
00135         c1->SetFillColor(10);
00136         for( unsigned int k=0; k<(*it2); k++ ) {
00137           if( k==0 ) {
00138             (*(iter2+k))->Draw("E");
00139           }
00140           else {
00141             (*(iter2+k))->Draw("Esame");
00142           }
00143         }
00144         iter2 = iter2 + (*it2);
00145         c1->Write();
00146       }
00147     }
00148   }
00149 
00150   if( nHistogram>0 || nCanvas>0 ) {
00151     sprintf( dirname, "summary" );
00152     TDirectory* cdresult = f.mkdir( dirname );
00153     cdresult->cd();
00154 
00155     std::vector<TH1F*>::iterator iter1 = m_histograms.begin() + nCounter*nHistPerCounter;
00156     std::vector<TH1F*>::iterator iter2 = m_graphs.begin() + nCounter*numgraph1;
00157     for( ; iter1 != m_histograms.end(); iter1++ ) {
00158       (*iter1)->Write();
00159     }
00160 
00161     for( unsigned int j=0; j<nCanvas; j++ ) {
00162       std::vector<string>::iterator it1 = CanvasName.begin() + j;
00163       std::vector<unsigned int>::iterator it2 = nGraphPerCanvas.begin() + j;
00164       sprintf( canvasname, (*it1).c_str() );
00165       TCanvas* c1 = new TCanvas( canvasname, canvasname, 1);
00166       c1->SetFillColor(10);
00167       for( unsigned int k=0; k<(*it2); k++ ) {
00168         if( k==0 ) {
00169           (*(iter2+k))->Draw("E");
00170         }
00171         else {
00172           (*(iter2+k))->Draw("Esame");
00173         }
00174       }
00175       iter2 = iter2 + (*it2);
00176       c1->Write();
00177     }
00178 
00179   }
00180 
00181   f.Close();
00182 
00183   return;
00184 }

void TofCalibFit::fillTxt ( const char *  file  ) 

Definition at line 52 of file TofCalibFit.cxx.

References genRecEmupikp::i, m_result, and name().

00052                                             {
00053   std::ofstream out(file,ios::out);
00054   if( out ) {
00055     std::vector<HepVector>::iterator it;
00056     for( it=m_result.begin(); it!=m_result.end(); it++ ) {
00057       for( int i=0; i<(*it).num_row(); i++ ) {
00058         out << (*it)[i] << " ";
00059       }
00060       out << std::endl;
00061     }
00062     out.close();
00063   }
00064   else{
00065     cerr << "error when open file " << file << " for write in " << name() << "::fillTxt()" << std::endl;
00066     cout << "print all parameters to srceen: in total " << m_result.size() << " items" << std::endl;
00067     std::vector<HepVector>::iterator it;
00068     for( it=m_result.begin(); it!=m_result.end(); it++ ) {
00069       for( int i=0; i<(*it).num_row(); i++ ) {
00070         cout << (*it)[i] << " ";
00071       }
00072       cout << std::endl;
00073     }
00074   }
00075 
00076   return;
00077 }

const string& TofCalibFit::name ( void   )  const [inline]

Definition at line 27 of file TofCalibFit.h.

References m_name.

Referenced by TofCalibManager::addCalib(), calib_etf_bunch::calculate(), calib_endcap_sigma::calculate(), calib_endcap_atten::calculate(), calib_barrel_sigma::calculate(), calib_barrel_q0::calculate(), calib_barrel_common::calculate(), and fillTxt().

00027 { return m_name; }

void TofCalibFit::setTCorrelation ( HepVector  tc  )  [inline]

Definition at line 35 of file TofCalibFit.h.

References m_tcorrelation.

00035 { m_tcorrelation = tc; }

HepVector TofCalibFit::tcorrelation (  )  [inline]

Definition at line 34 of file TofCalibFit.h.

References X.

00034 { return X;            }


Member Data Documentation

std::vector<string> TofCalibFit::CanvasName [protected]

Definition at line 58 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_endcap_atten::calib_endcap_atten(), calib_etf_bunch::calib_etf_bunch(), calib_barrel_q0::fillGraph(), and fillRoot().

std::vector<string> TofCalibFit::CanvasPerCounterName [protected]

Definition at line 57 of file TofCalibFit.h.

Referenced by calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), and fillRoot().

std::vector<TH1F*> TofCalibFit::m_graphs [protected]

Definition at line 54 of file TofCalibFit.h.

Referenced by calib_etf_bunch::fillGraph(), calib_endcap_sigma::fillGraph(), calib_endcap_atten::fillGraph(), calib_barrel_sigma::fillGraph(), calib_barrel_q0::fillGraph(), calib_barrel_common::fillGraph(), calib_endcap_atten::fillGraphQ0(), calib_barrel_sigma::fillGraphT0(), fillRoot(), calib_etf_bunch::fitGraph(), calib_endcap_sigma::fitGraph(), calib_endcap_atten::fitGraph(), calib_barrel_sigma::fitGraph(), calib_barrel_common::fitGraph(), calib_barrel_sigma::fitGraphT0(), and ~TofCalibFit().

std::vector<TH1F*> TofCalibFit::m_histograms [protected]

Definition at line 53 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), calib_etf_bunch::fillRecord(), calib_endcap_sigma::fillRecord(), calib_endcap_atten::fillRecord(), calib_barrel_sigma::fillRecord(), calib_barrel_q0::fillRecord(), calib_barrel_common::fillRecord(), calib_endcap_atten::fillRecordQ0(), calib_barrel_sigma::fillRecordT0(), fillRoot(), calib_etf_bunch::fitHistogram(), calib_endcap_sigma::fitHistogram(), calib_endcap_atten::fitHistogram(), calib_barrel_sigma::fitHistogram(), calib_barrel_q0::fitHistogram(), calib_barrel_common::fitHistogram(), calib_endcap_atten::fitHistogramQ0(), calib_barrel_sigma::fitHistogramT0(), and ~TofCalibFit().

string TofCalibFit::m_name [protected]

Definition at line 50 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), fillRoot(), name(), and TofCalibFit().

int TofCalibFit::m_npar [protected]

Definition at line 38 of file TofCalibFit.h.

Referenced by calib_endcap_sigma::fitGraph(), calib_endcap_atten::fitGraph(), calib_barrel_sigma::fitGraph(), and TofCalibFit().

std::vector<HepVector> TofCalibFit::m_result [protected]

Definition at line 55 of file TofCalibFit.h.

Referenced by calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_endcap_atten::fillGraphQ0(), fillTxt(), calib_etf_bunch::fitGraph(), calib_endcap_sigma::fitGraph(), calib_endcap_atten::fitGraph(), calib_barrel_sigma::fitGraph(), calib_barrel_q0::fitGraph(), calib_barrel_common::fitGraph(), calib_barrel_sigma::fitGraphT0(), calib_endcap_atten::updateData(), calib_barrel_sigma::updateData(), and ~TofCalibFit().

HepVector TofCalibFit::m_tcorrelation [protected]

Definition at line 60 of file TofCalibFit.h.

Referenced by setTCorrelation(), TofCalibFit(), and calib_barrel_sigma::updateData().

unsigned int TofCalibFit::nBinPerCounter [protected]

Definition at line 41 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), calib_etf_bunch::fillGraph(), calib_endcap_sigma::fillGraph(), calib_endcap_atten::fillGraph(), calib_barrel_sigma::fillGraph(), calib_barrel_common::fillGraph(), calib_endcap_atten::fillGraphQ0(), calib_barrel_sigma::fillGraphT0(), calib_etf_bunch::fillRecord(), calib_endcap_sigma::fillRecord(), calib_endcap_atten::fillRecord(), calib_barrel_sigma::fillRecord(), calib_barrel_common::fillRecord(), calib_endcap_atten::fillRecordQ0(), calib_barrel_sigma::fillRecordT0(), calib_endcap_sigma::fitHistogram(), calib_endcap_atten::fitHistogram(), calib_barrel_sigma::fitHistogram(), calib_endcap_atten::fitHistogramQ0(), calib_barrel_sigma::fitHistogramT0(), and TofCalibFit().

unsigned int TofCalibFit::nCanvas [protected]

Definition at line 47 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), fillRoot(), and TofCalibFit().

unsigned int TofCalibFit::nCanvasPerCounter [protected]

Definition at line 44 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), fillRoot(), and TofCalibFit().

unsigned int TofCalibFit::nCounter [private]

Definition at line 63 of file TofCalibFit.h.

Referenced by fillRoot(), and TofCalibFit().

std::vector<unsigned int> TofCalibFit::nGraphPerCanvas [protected]

Definition at line 48 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_endcap_atten::calib_endcap_atten(), calib_etf_bunch::calib_etf_bunch(), and fillRoot().

std::vector<unsigned int> TofCalibFit::nGraphPerCanvasPerCounter [protected]

Definition at line 45 of file TofCalibFit.h.

Referenced by calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), fillRoot(), calib_barrel_sigma::fitGraph(), and calib_barrel_sigma::fitGraphT0().

unsigned int TofCalibFit::nHistogram [protected]

Definition at line 46 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), fillRoot(), and TofCalibFit().

unsigned int TofCalibFit::nHistPerCounter [protected]

Definition at line 43 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), fillRoot(), and TofCalibFit().

unsigned int TofCalibFit::nKind [protected]

Definition at line 40 of file TofCalibFit.h.

Referenced by calib_barrel_common::calib_barrel_common(), calib_barrel_q0::calib_barrel_q0(), calib_barrel_sigma::calib_barrel_sigma(), calib_endcap_atten::calib_endcap_atten(), calib_endcap_sigma::calib_endcap_sigma(), calib_etf_bunch::calib_etf_bunch(), calib_etf_bunch::fillGraph(), calib_endcap_sigma::fillGraph(), calib_endcap_atten::fillGraph(), calib_barrel_sigma::fillGraph(), calib_barrel_common::fillGraph(), calib_barrel_sigma::fillGraphT0(), calib_endcap_sigma::fillRecord(), calib_endcap_atten::fillRecord(), calib_barrel_sigma::fillRecord(), calib_barrel_common::fillRecord(), calib_endcap_atten::fillRecordQ0(), calib_barrel_sigma::fillRecordT0(), calib_endcap_sigma::fitHistogram(), calib_endcap_atten::fitHistogram(), calib_barrel_sigma::fitHistogram(), calib_endcap_atten::fitHistogramQ0(), calib_barrel_sigma::fitHistogramT0(), and TofCalibFit().

HepVector TofCalibFit::X [protected]

Definition at line 51 of file TofCalibFit.h.

Referenced by calib_etf_bunch::fitGraph(), calib_endcap_sigma::fitGraph(), calib_endcap_atten::fitGraph(), calib_barrel_sigma::fitGraph(), calib_barrel_common::fitGraph(), calib_barrel_common::fitHistogram(), tcorrelation(), and TofCalibFit().


Generated on Tue Nov 29 23:36:03 2016 for BOSS_7.0.2 by  doxygen 1.4.7