/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Mdc/DedxCalibAlg/DedxCalibAlg-00-01-15/src/DedxCalibCostheta.cxx

Go to the documentation of this file.
00001 #include "GaudiKernel/MsgStream.h"
00002 
00003 #include <sstream>
00004 #include <string>
00005 #include "TFile.h"
00006 #include "TF1.h"
00007 #include "TH1F.h"
00008 #include "TTree.h"
00009 #include "TStyle.h"
00010 #include "TCanvas.h"
00011 
00012 #include "DedxCalibAlg/DedxCalibCostheta.h"
00013 
00014 #define Size  700000
00015 
00016 using namespace std;
00017 
00018 const double StepCostheta = (CosthetaMax-CosthetaMin)/NumBinCostheta;
00019 
00020 DedxCalibCostheta::DedxCalibCostheta(const std::string& name, ISvcLocator* pSvcLocator): DedxCalib(name, pSvcLocator){
00021   declareProperty("Debug", m_debug=false);
00022   declareProperty("DebugMin", m_debug_min=2);
00023   declareProperty("DebugMax", m_debug_max=2);
00024 }
00025 
00026 void DedxCalibCostheta::BookHists()
00027 {
00028     MsgStream log(msgSvc(), name());
00029     log<<MSG::INFO<<"DedxCalibCostheta::BookHists()"<<endreq;
00030 
00031     ReadRecFileList();
00032 
00033     m_costheta = new TH1F*[NumBinCostheta];
00034     m_pos_costheta = new TH1F*[NumBinCostheta];
00035     m_neg_costheta = new TH1F*[NumBinCostheta];
00036     m_chi  = new TH1F*[NumBinCostheta];
00037     m_pos_chi = new TH1F*[NumBinCostheta];
00038     m_neg_chi = new TH1F*[NumBinCostheta];
00039     stringstream hlabel;
00040     for(int i=0;i<NumBinCostheta;i++)
00041     {
00042         hlabel.str("");
00043         hlabel<<"dEdx_costheta"<<i;
00044         m_costheta[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinHistValue1, MaxHistValue1);
00045         hlabel.str("");
00046         hlabel<<"pos_dEdx_costheta"<<i;
00047         m_pos_costheta[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinHistValue1, MaxHistValue1);
00048         hlabel.str("");
00049         hlabel<<"neg_dEdx_costheta"<<i;
00050         m_neg_costheta[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinHistValue1, MaxHistValue1);
00051         hlabel.str("");
00052         hlabel<<"chi_costheta"<<i;
00053         m_chi[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinChiValue, MaxChiValue);
00054         hlabel.str("");
00055         hlabel<<"pos_chi_costheta"<<i;
00056         m_pos_chi[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinChiValue, MaxChiValue);
00057         hlabel.str("");
00058         hlabel<<"neg_chi_costheta"<<i;
00059         m_neg_chi[i]=new TH1F(hlabel.str().c_str(), hlabel.str().c_str(), NumHistBins, MinChiValue, MaxChiValue);
00060     }
00061     hlabel.str("");
00062     hlabel<<"dEdxVsCostheta";
00063     m_dEdxVsCostheta = new TH1F(hlabel.str().c_str(),"dEdx vs costheta",NumBinCostheta, CosthetaMin, CosthetaMax);
00064     m_dEdxVsCostheta->GetXaxis()->SetTitle("cos#theta");
00065     m_dEdxVsCostheta->GetYaxis()->SetTitle("dE/dx");
00066     hlabel.str("");
00067     hlabel<<"pos_dEdxVsCostheta";
00068     m_pos_dEdxVsCostheta = new TH1F(hlabel.str().c_str(),"positron dEdx vs costheta",NumBinCostheta, CosthetaMin, CosthetaMax);
00069     m_pos_dEdxVsCostheta->GetXaxis()->SetTitle("cos#theta");
00070     m_pos_dEdxVsCostheta->GetYaxis()->SetTitle("dE/dx");
00071     hlabel.str("");
00072     hlabel<<"neg_dEdxVsCostheta";
00073     m_neg_dEdxVsCostheta = new TH1F(hlabel.str().c_str(),"electron dEdx vs costheta",NumBinCostheta, CosthetaMin, CosthetaMax);
00074     m_neg_dEdxVsCostheta->GetXaxis()->SetTitle("cos#theta");
00075     m_neg_dEdxVsCostheta->GetYaxis()->SetTitle("dE/dx");
00076 
00077     Vec_dedx.clear();
00078     Vec_costheta.clear();
00079 }
00080 
00081 void DedxCalibCostheta::FillHists()
00082 {
00083     MsgStream log(msgSvc(), name());
00084     log<<MSG::INFO<<"DedxCalibCostheta::FillHists()"<<endreq;
00085 
00086     TFile* f;
00087     TTree* n103;
00088     string runlist;
00089 
00090     int ndedxhit=0;
00091     double dEdx[100]={0},pathlength[100]={0},wid[100]={0},layid[100]={0},dd_in[100]={0},eangle[100]={0},zhit[100]={0};
00092     double dedx=0;
00093     float runNO=0,runFlag=0,costheta=0,tes=0,charge=0,recalg=0,ptrk=0,chidedx=0;
00094     int usedhit=0;
00095     vector<double> phlist; 
00096     cout<<"m_recFileVector.size()= "<<m_recFileVector.size()<<endl;
00097     for(unsigned int i=0; i<m_recFileVector.size(); i++)
00098     {
00099       runlist = m_recFileVector[i];
00100       f = new TFile(runlist.c_str());
00101       n103 = (TTree*)f->Get("n103");
00102       n103-> SetBranchAddress("ndedxhit", &ndedxhit);
00103       n103-> SetBranchAddress("dEdx_hit",dEdx);
00104       n103-> SetBranchAddress("pathlength_hit",pathlength);
00105       n103-> SetBranchAddress("wid_hit",wid);
00106       n103-> SetBranchAddress("layid_hit",layid);
00107       n103-> SetBranchAddress("dd_in_hit",dd_in);
00108       n103-> SetBranchAddress("eangle_hit",eangle);
00109       n103-> SetBranchAddress("zhit_hit",zhit);
00110       n103-> SetBranchAddress("runNO",&runNO);
00111       n103-> SetBranchAddress("runFlag",&runFlag);
00112       n103-> SetBranchAddress("costheta",&costheta);
00113       n103-> SetBranchAddress("t0",&tes);
00114       n103-> SetBranchAddress("charge",&charge);
00115       n103-> SetBranchAddress("recalg",&recalg);
00116       n103-> SetBranchAddress("ndedxhit",&ndedxhit);
00117       n103-> SetBranchAddress("ptrk",&ptrk);
00118       n103-> SetBranchAddress("chidedx_e",&chidedx);
00119       for(int j=0;j<n103->GetEntries();j++)
00120         {
00121           phlist.clear();
00122           n103->GetEntry(j);
00123           if(costheta>CosthetaMax || costheta<CosthetaMin) continue;
00124           if(tes>1400) continue; 
00125           for(int k=0;k<ndedxhit;k++)
00126             {
00127               dEdx[k] = exsvc->StandardHitCorrec(0,runFlag,2,runNO,pathlength[k],wid[k],layid[k],dEdx[k],dd_in[k],eangle[k],costheta);
00128               phlist.push_back(dEdx[k]);
00129             }
00130           dedx = cal_dedx_bitrunc(truncate, phlist);
00131           int iCos = (Int_t)floor((costheta-CosthetaMin)/StepCostheta);
00132           double pre_dedx = dedx;
00133           if(m_debug && iCos>=m_debug_min && iCos<=m_debug_max) 
00134             cout << "before cor, dedx " << pre_dedx << "  with cos(theta) " << costheta << endl;
00135           dedx = exsvc->StandardTrackCorrec(0, runFlag, 2, runNO, dedx, costheta, tes);
00136           if(m_debug && iCos>=m_debug_min && iCos<=m_debug_max) 
00137             cout << "after cor, dedx " << dedx << " with gain " << pre_dedx/dedx << endl;
00138           m_costheta[iCos]->Fill(dedx);
00139           if(charge>0) m_pos_costheta[iCos]->Fill(dedx);
00140           if(charge<0) m_neg_costheta[iCos]->Fill(dedx);
00141 
00142           usedhit = ndedxhit*truncate;
00143           set_dEdx(1,dedx,recalg,runFlag,usedhit,ptrk,acos(costheta),1.5,vFlag,tes);
00144           double chi = m_chi_ex[ParticleFlag];
00145           //cout<<"chidedx= "<<chidedx<<" particleType= "<<ParticleFlag<<"  new chi= "<<chi<<endl;
00146           m_chi[iCos]->Fill(chi);
00147           if(charge>0) m_pos_chi[iCos]->Fill(chi);
00148           if(charge<0) m_neg_chi[iCos]->Fill(chi);
00149 
00150           Vec_dedx.push_back(dedx);
00151           Vec_costheta.push_back(costheta);
00152         }
00153     }
00154 }
00155 
00156 void DedxCalibCostheta::AnalyseHists()
00157 {
00158     MsgStream log(msgSvc(), name());
00159     log<<MSG::INFO<<"DedxCalibCostheta::AnalyseHists()"<<endreq;
00160 
00161     gStyle->SetOptFit(1111);
00162     for(int i=0; i<NumBinCostheta; i++)
00163     {
00164       if(m_debug) cout << "num of bin " << i << endl;
00165       if(m_costheta[i]->GetEntries()>100) m_costheta[i]->Fit("gaus", "Q" );
00166       if(m_pos_costheta[i]->GetEntries()>100) m_pos_costheta[i]->Fit("gaus", "Q" );
00167       if(m_neg_costheta[i]->GetEntries()>100) m_neg_costheta[i]->Fit("gaus", "Q" );
00168       if(m_chi[i]->GetEntries()>100) m_chi[i]->Fit("gaus", "Q" );
00169       if(m_pos_chi[i]->GetEntries()>100) m_pos_chi[i]->Fit("gaus", "Q" );
00170       if(m_neg_chi[i]->GetEntries()>100) m_neg_chi[i]->Fit("gaus", "Q" );
00171     }
00172 }
00173 
00174 void DedxCalibCostheta::WriteHists()
00175 {
00176     MsgStream log(msgSvc(), name());
00177     log<<MSG::INFO<<"DedxCalibCostheta::WriteHists()"<<endreq;
00178 
00179     double chientryNo[NumBinCostheta]={0},chimean[NumBinCostheta]={0},chimeanerr[NumBinCostheta]={0},chisigma[NumBinCostheta]={0},chisq[NumBinCostheta]={0};
00180     double pos_chientryNo[NumBinCostheta]={0},pos_chimean[NumBinCostheta]={0},pos_chimeanerr[NumBinCostheta]={0},pos_chisigma[NumBinCostheta]={0},pos_chisq[NumBinCostheta]={0};
00181     double neg_chientryNo[NumBinCostheta]={0},neg_chimean[NumBinCostheta]={0},neg_chimeanerr[NumBinCostheta]={0},neg_chisigma[NumBinCostheta]={0},neg_chisq[NumBinCostheta]={0};
00182     double fitentryNo[NumBinCostheta]={0},fitmean[NumBinCostheta]={0},fitmeanerr[NumBinCostheta]={0},fitsigma[NumBinCostheta]={0},gain[NumBinCostheta]={0},fitchisq[NumBinCostheta]={0};
00183     double pos_fitentryNo[NumBinCostheta]={0},pos_fitmean[NumBinCostheta]={0},pos_fitmeanerr[NumBinCostheta]={0},pos_fitsigma[NumBinCostheta]={0},pos_gain[NumBinCostheta]={0},pos_fitchisq[NumBinCostheta]={0};
00184     double neg_fitentryNo[NumBinCostheta]={0},neg_fitmean[NumBinCostheta]={0},neg_fitmeanerr[NumBinCostheta]={0},neg_fitsigma[NumBinCostheta]={0},neg_gain[NumBinCostheta]={0},neg_fitchisq[NumBinCostheta]={0};
00185     double cosBin[NumBinCostheta]={0};
00186 
00187     for(int i=0;i<NumBinCostheta;i++)
00188     {
00189         cosBin[i] = (i+0.5)*StepCostheta + CosthetaMin;
00190 
00191         chientryNo[i] = m_chi[i]->GetEntries();
00192         if(m_debug) cout << "get results at " << i << " bin with chi entries " << chientryNo[i] << endl;
00193         if(m_chi[i]->GetFunction("gaus"))
00194         {
00195             chimean[i] = m_chi[i]->GetFunction("gaus")->GetParameter(1);
00196             chimeanerr[i] = m_chi[i]->GetFunction("gaus")->GetParError(1);
00197             chisigma[i] = m_chi[i]->GetFunction("gaus")->GetParameter(2);
00198             chisq[i] = (m_chi[i]->GetFunction("gaus")->GetChisquare())/(m_chi[i]->GetFunction("gaus")->GetNDF());
00199         }
00200         pos_chientryNo[i] = m_pos_chi[i]->GetEntries();
00201         if(m_debug) cout << "get results at " << i << " bin with pos_chi entries " << pos_chientryNo[i] << endl;
00202         if(m_pos_chi[i]->GetFunction("gaus"))
00203         {
00204             pos_chimean[i] = m_pos_chi[i]->GetFunction("gaus")->GetParameter(1);
00205             pos_chimeanerr[i] = m_pos_chi[i]->GetFunction("gaus")->GetParError(1);
00206             pos_chisigma[i] = m_pos_chi[i]->GetFunction("gaus")->GetParameter(2);
00207             pos_chisq[i] = (m_pos_chi[i]->GetFunction("gaus")->GetChisquare())/(m_pos_chi[i]->GetFunction("gaus")->GetNDF());
00208         }
00209         neg_chientryNo[i] = m_neg_chi[i]->GetEntries();
00210         if(m_debug) cout << "get results at " << i << " bin with neg_chi entries " << neg_chientryNo[i] << endl;
00211         if(m_neg_chi[i]->GetFunction("gaus"))
00212         {
00213             neg_chimean[i] = m_neg_chi[i]->GetFunction("gaus")->GetParameter(1);
00214             neg_chimeanerr[i] = m_neg_chi[i]->GetFunction("gaus")->GetParError(1);
00215             neg_chisigma[i] = m_neg_chi[i]->GetFunction("gaus")->GetParameter(2);
00216             neg_chisq[i] = (m_neg_chi[i]->GetFunction("gaus")->GetChisquare())/(m_neg_chi[i]->GetFunction("gaus")->GetNDF());
00217         }
00218 
00219         fitentryNo[i] = m_costheta[i]->GetEntries();
00220         if(m_debug) cout << "get results at " << i << " bin with fit entries " << fitentryNo[i] << endl;
00221         if(m_costheta[i]->GetFunction("gaus"))
00222         {
00223             fitmean[i] = m_costheta[i]->GetFunction("gaus")->GetParameter(1);
00224             fitmeanerr[i] = m_costheta[i]->GetFunction("gaus")->GetParError(1);
00225             fitsigma[i] = m_costheta[i]->GetFunction("gaus")->GetParameter(2);
00226             gain[i] = fitmean[i]/NormalMean;
00227             fitchisq[i] = (m_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_costheta[i]->GetFunction("gaus")->GetNDF());
00228         }
00229         pos_fitentryNo[i] = m_pos_costheta[i]->GetEntries();
00230         if(m_debug) cout << "get results at " << i << " bin with pos_fit entries " << pos_fitentryNo[i] << endl;
00231         if(m_pos_costheta[i]->GetFunction("gaus"))
00232         {
00233             pos_fitmean[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParameter(1);
00234             pos_fitmeanerr[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParError(1);
00235             pos_fitsigma[i] = m_pos_costheta[i]->GetFunction("gaus")->GetParameter(2);
00236             pos_gain[i] = pos_fitmean[i]/NormalMean;
00237             pos_fitchisq[i] = (m_pos_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_pos_costheta[i]->GetFunction("gaus")->GetNDF());
00238         }
00239         neg_fitentryNo[i] = m_neg_costheta[i]->GetEntries();
00240         if(m_debug) cout << "get results at " << i << " bin with neg_fit entries " << neg_fitentryNo[i] << endl;
00241         if(m_neg_costheta[i]->GetFunction("gaus"))
00242         {
00243             neg_fitmean[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParameter(1);
00244             neg_fitmeanerr[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParError(1);
00245             neg_fitsigma[i] = m_neg_costheta[i]->GetFunction("gaus")->GetParameter(2);
00246             neg_gain[i] = neg_fitmean[i]/NormalMean;
00247             neg_fitchisq[i] = (m_neg_costheta[i]->GetFunction("gaus")->GetChisquare())/(m_neg_costheta[i]->GetFunction("gaus")->GetNDF());
00248         }
00249 
00250         if(fitentryNo[i]>100) m_dEdxVsCostheta -> SetBinContent(i+1,fitmean[i]);
00251         if(pos_fitentryNo[i]>100) m_pos_dEdxVsCostheta -> SetBinContent(i+1,pos_fitmean[i]);
00252         if(neg_fitentryNo[i]>100) m_neg_dEdxVsCostheta -> SetBinContent(i+1,neg_fitmean[i]);
00253     }
00254 
00255     double dedx1[Size] = {0};
00256     double costheta1[Size] = {0};
00257     cout << "Vec_dedx.size() = " << Vec_dedx.size() << endl;
00258     for(unsigned int i=0;i<Size && i< Vec_dedx.size();i++)
00259     {
00260         dedx1[i] = Vec_dedx[i];
00261         costheta1[i] = Vec_costheta[i];
00262         //cout<<"i= "<<i<<"dedx= "<<dedx1[i]<<" costheta= "<<costheta1[i]<<endl;
00263     }
00264 
00265     log<<MSG::INFO<<"begin generating root file!!! "<<endreq;
00266     TFile* f = new TFile(m_rootfile.c_str(), "RECREATE");
00267     for(int i=0;i<NumBinCostheta;i++)
00268     {
00269         m_chi[i]->Write();
00270         m_pos_chi[i]->Write();
00271         m_neg_chi[i]->Write();
00272         m_costheta[i]->Write();
00273         m_pos_costheta[i]->Write();
00274         m_neg_costheta[i]->Write();
00275     }
00276     m_dEdxVsCostheta->Write();
00277     m_pos_dEdxVsCostheta->Write();
00278     m_neg_dEdxVsCostheta->Write();
00279 
00280     TTree *costhetacalib = new TTree("costhetacalib","costhetacalib");
00281     costhetacalib -> Branch("chientryNo",chientryNo,"chientryNo[80]/D");
00282     costhetacalib -> Branch("chimean",chimean,"chimean[80]/D");
00283     costhetacalib -> Branch("chimeanerr",chimeanerr,"chimeanerr[80]/D");
00284     costhetacalib -> Branch("chisigma",chisigma,"chisigma[80]/D");
00285     costhetacalib -> Branch("chisq",chisq,"chisq[80]/D");
00286     costhetacalib -> Branch("pos_chientryNo",pos_chientryNo,"pos_chientryNo[80]/D");
00287     costhetacalib -> Branch("pos_chimean",pos_chimean,"pos_chimean[80]/D");
00288     costhetacalib -> Branch("pos_chimeanerr",pos_chimeanerr,"pos_chimeanerr[80]/D");
00289     costhetacalib -> Branch("pos_chisigma",pos_chisigma,"pos_chisigma[80]/D");
00290     costhetacalib -> Branch("pos_chisq",pos_chisq,"pos_chisq[80]/D");
00291     costhetacalib -> Branch("neg_chientryNo",neg_chientryNo,"neg_chientryNo[80]/D");
00292     costhetacalib -> Branch("neg_chimean",neg_chimean,"neg_chimean[80]/D");
00293     costhetacalib -> Branch("neg_chimeanerr",neg_chimeanerr,"neg_chimeanerr[80]/D");
00294     costhetacalib -> Branch("neg_chisigma",neg_chisigma,"neg_chisigma[80]/D");
00295     costhetacalib -> Branch("neg_chisq",neg_chisq,"neg_chisq[80]/D");
00296     costhetacalib -> Branch("fitentryNo", fitentryNo, "fitentryNo[80]/D");
00297     costhetacalib -> Branch("fitmean", fitmean, "fitmean[80]/D");
00298     costhetacalib -> Branch("fitmeanerr", fitmeanerr, "fitmeanerr[80]/D"); 
00299     costhetacalib -> Branch("fitsigma", fitsigma, "fitsigma[80]/D");
00300     costhetacalib -> Branch("costheta", gain, "gain[80]/D");
00301     costhetacalib -> Branch("fitchisq", fitchisq, "fitchisq[80]/D");
00302     costhetacalib -> Branch("pos_fitentryNo", pos_fitentryNo, "pos_fitentryNo[80]/D");
00303     costhetacalib -> Branch("pos_fitmean", pos_fitmean, "pos_fitmean[80]/D");
00304     costhetacalib -> Branch("pos_fitmeanerr", pos_fitmeanerr, "pos_fitmeanerr[80]/D");
00305     costhetacalib -> Branch("pos_fitsigma", pos_fitsigma, "pos_fitsigma[80]/D");
00306     costhetacalib -> Branch("pos_gain", pos_gain, "pos_gain[80]/D");
00307     costhetacalib -> Branch("pos_fitchisq", pos_fitchisq, "pos_fitchisq[80]/D");
00308     costhetacalib -> Branch("neg_fitentryNo", neg_fitentryNo, "neg_fitentryNo[80]/D");
00309     costhetacalib -> Branch("neg_fitmean", neg_fitmean, "neg_fitmean[80]/D");
00310     costhetacalib -> Branch("neg_fitmeanerr", neg_fitmeanerr, "neg_fitmeanerr[80]/D");
00311     costhetacalib -> Branch("neg_fitsigma", neg_fitsigma, "neg_fitsigma[80]/D");
00312     costhetacalib -> Branch("neg_gain", neg_gain, "neg_gain[80]/D");
00313     costhetacalib -> Branch("neg_fitchisq", neg_fitchisq, "neg_fitchisq[80]/D");
00314     costhetacalib -> Branch("cosBin", cosBin, "cosBin[80]/D");
00315     costhetacalib -> Branch("costheta1",costheta1,"costheta1[700000]/D");
00316     costhetacalib -> Branch("dedx1",dedx1,"dedx1[700000]/D");
00317     costhetacalib -> Fill();
00318     costhetacalib -> Write();
00319 
00320     TCanvas c1("c1", "canvas", 500, 400);
00321     c1.Print((m_rootfile+".ps[").c_str());
00322     costhetacalib -> Draw("dedx1:costheta1","dedx1>200 && dedx1<1000");
00323     c1.Print((m_rootfile+".ps").c_str());
00324     m_dEdxVsCostheta->Draw();
00325     c1.Print((m_rootfile+".ps").c_str());
00326     m_pos_dEdxVsCostheta->Draw();
00327     c1.Print((m_rootfile+".ps").c_str());
00328     m_neg_dEdxVsCostheta->Draw();
00329     c1.Print((m_rootfile+".ps").c_str());
00330     for(Int_t i=0;i<NumBinCostheta;i++)
00331     {   
00332         m_chi[i]->Draw();
00333         c1.Print((m_rootfile+".ps").c_str());
00334     }
00335     for(Int_t i=0;i<NumBinCostheta;i++)
00336     {
00337         m_pos_chi[i]->Draw();
00338         c1.Print((m_rootfile+".ps").c_str());
00339     }
00340     for(Int_t i=0;i<NumBinCostheta;i++)
00341     {
00342         m_neg_chi[i]->Draw();
00343         c1.Print((m_rootfile+".ps").c_str());
00344     }
00345     for(Int_t i=0;i<NumBinCostheta;i++)
00346     {
00347         m_costheta[i]->Draw();
00348         c1.Print((m_rootfile+".ps").c_str());
00349     }
00350     for(Int_t i=0;i<NumBinCostheta;i++)
00351     {
00352         m_pos_costheta[i]->Draw();
00353         c1.Print((m_rootfile+".ps").c_str());
00354     }
00355     for(Int_t i=0;i<NumBinCostheta;i++)
00356     {
00357         m_neg_costheta[i]->Draw();
00358         c1.Print((m_rootfile+".ps").c_str());
00359     }
00360     c1.Print((m_rootfile+".ps]").c_str());
00361     f->Close();
00362 
00363     for(Int_t i=0;i<NumBinCostheta;i++)
00364     {
00365         delete m_chi[i];
00366         delete m_pos_chi[i];
00367         delete m_neg_chi[i];
00368         delete m_costheta[i];
00369         delete m_pos_costheta[i];
00370         delete m_neg_costheta[i];
00371     }
00372     delete m_dEdxVsCostheta;
00373     delete m_pos_dEdxVsCostheta;
00374     delete m_neg_dEdxVsCostheta;
00375 }

Generated on Tue Nov 29 23:12:45 2016 for BOSS_7.0.2 by  doxygen 1.4.7