BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
CalibBase Class Referenceabstract

#include <CalibBase.h>

Inheritance diagram for CalibBase:

Public Member Functions

 CalibBase ()
virtual ~CalibBase ()
virtual void init (TObjArray *hlist, MdcCosGeom *pGeom)=0
virtual void mergeHist (TFile *fhist)=0
virtual void calib (MdcCalibConst *calconst, TObjArray *newXtList, TObjArray *r2tList)=0

Detailed Description

Used as a base for all objects in the calibration data store. Implement IValidity.

Permits implementation of deep copy by means of virtual update method. [Used in CalibMySQLCnvSvc::updateCalib]

Author
J. Bogart

Implementation of base class for all calibration data objects

Definition at line 21 of file Mdc/MdcCalibAlg/share/distcalib/src/include/CalibBase.h.

Constructor & Destructor Documentation

◆ CalibBase()

CalibBase::CalibBase ( )

Definition at line 8 of file CalibBase.cpp.

8{}

◆ ~CalibBase()

CalibBase::~CalibBase ( )
virtual

Definition at line 10 of file CalibBase.cpp.

10{}

Member Function Documentation

◆ calib()

void CalibBase::calib ( MdcCalibConst * calconst,
TObjArray * newXtList,
TObjArray * r2tList )
pure virtual

Implemented in GrXtCalib, IniCalib, PreT0Calib, PreXtCalib, QtCalib, T0Calib, XtCalib, and XtInteCalib.

Definition at line 737 of file CalibBase.cpp.

737 {
738 int nGoodAll = 0;
739 int nGoodInn = 0;
740 int nGoodStp = 0;
741 int nGoodOut = 0;
742 int nTotAll = 0;
743 int nTotInn = 0;
744 int nTotStp = 0;
745 int nTotOut = 0;
746 ofstream feffi( "MdcLayerEffi.dat" );
747 for ( int lay = 0; lay < NLAYER; lay++ )
748 {
749 double effNtrk = m_effNtrk->GetBinContent( lay + 1 );
750 double effGoodHit = m_effNtrkRecHit->GetBinContent( lay + 1 );
751 nGoodAll += effGoodHit;
752 if ( lay < 8 ) nGoodInn += effGoodHit;
753 else if ( lay < 20 ) nGoodStp += effGoodHit;
754 else nGoodOut += effGoodHit;
755
756 nTotAll += effNtrk;
757 if ( lay < 8 ) nTotInn += effNtrk;
758 else if ( lay < 20 ) nTotStp += effNtrk;
759 else nTotOut += effNtrk;
760
761 double effi = (double)effGoodHit / (double)effNtrk;
762 double effErr = sqrt( effi * ( 1 - effi ) / (double)effNtrk );
763 feffi << setw( 5 ) << lay << setw( 15 ) << effi << setw( 15 ) << effErr << setw( 15 )
764 << effGoodHit << setw( 15 ) << effNtrk << endl;
765 }
766 double effiAll = (double)nGoodAll / (double)( nTotAll );
767 double errAll = sqrt( effiAll * ( 1 - effiAll ) / (double)( nTotAll ) );
768 double effiInn = (double)nGoodInn / (double)( nTotInn );
769 double errInn = sqrt( effiInn * ( 1 - effiInn ) / (double)( nTotInn ) );
770 double effiStp = (double)nGoodStp / (double)( nTotStp );
771 double errStp = sqrt( effiStp * ( 1 - effiStp ) / (double)( nTotStp ) );
772 double effiOut = (double)nGoodOut / (double)( nTotOut );
773 double errOut = sqrt( effiOut * ( 1 - effiOut ) / (double)( nTotOut ) );
774 feffi << endl
775 << "EffiAll: " << setw( 15 ) << effiAll << setw( 15 ) << errAll << setw( 15 )
776 << nGoodAll << setw( 15 ) << nTotAll << endl;
777 feffi << endl
778 << "EffiInn: " << setw( 15 ) << effiInn << setw( 15 ) << errInn << setw( 15 )
779 << nGoodInn << setw( 15 ) << nTotInn << endl;
780 feffi << endl
781 << "EffiStp: " << setw( 15 ) << effiStp << setw( 15 ) << errStp << setw( 15 )
782 << nGoodStp << setw( 15 ) << nTotStp << endl;
783 feffi << endl
784 << "EffiOut: " << setw( 15 ) << effiOut << setw( 15 ) << errOut << setw( 15 )
785 << nGoodOut << setw( 15 ) << nTotOut << endl;
786 feffi.close();
787
788 // update resolution function
789 Stat_t histEntry;
790 int nSdBin[43];
791 for ( int lay = 0; lay < 8; lay++ ) nSdBin[lay] = 12; // 14
792 for ( int lay = 8; lay < 43; lay++ ) nSdBin[lay] = 16; // 18
793 double sigm[NSDBIN];
794 if ( 1 == gCalSigma )
795 {
796 ofstream fr2d( "logr2d.dat" );
797 for ( int lay = 0; lay < 43; lay++ )
798 {
799 int nbinLim = 13;
800 if ( lay < 8 ) nbinLim = 9;
801 if ( 0 == gFgCalib[lay] ) continue;
802 for ( int iEntr = 0; iEntr < gNEntr[lay]; iEntr++ )
803 {
804 for ( int lr = 0; lr < 2; lr++ )
805 {
806 fr2d << setw( 3 ) << lay << setw( 3 ) << iEntr << setw( 3 ) << lr << endl;
807 for ( int bin = 0; bin < nSdBin[lay]; bin++ )
808 {
809 if ( 1 == gResiType )
810 {
811 histEntry = m_hr2dExc[lay][iEntr][lr][bin]->GetEntries();
812 double rms = m_hr2dExc[lay][iEntr][lr][bin]->GetRMS();
813 m_hr2dExc[lay][iEntr][lr][bin]->Fit( "gaus", "Q" );
814 double gausSigm =
815 m_hr2dExc[lay][iEntr][lr][bin]->GetFunction( "gaus" )->GetParameter( 2 );
816 // if(histEntry<50){
817 // sigm[bin] = calconst->getSdpar(lay,
818 // iEntr, lr, bin); } else if((lay>2) && (histEntry>500) &&
819 // (fabs(rms-gausSigm)<0.02)){ sigm[bin] = gausSigm; } else{ sigm[bin] = rms;
820 // }
821
822 if ( histEntry > 500 ) { sigm[bin] = gausSigm; }
823 else if ( histEntry > 100 ) { sigm[bin] = rms; }
824 else { sigm[bin] = calconst->getSdpar( lay, iEntr, lr, bin ); }
825 if ( bin >= nbinLim )
826 {
827 if ( sigm[bin] < sigm[bin - 1] ) sigm[bin] = sigm[bin - 1];
828 }
829 }
830 else
831 {
832 histEntry = m_hr2dInc[lay][iEntr][lr][bin]->GetEntries();
833 double rms = m_hr2dInc[lay][iEntr][lr][bin]->GetRMS();
834 m_hr2dInc[lay][iEntr][lr][bin]->Fit( "gaus", "Q" );
835 double gausSigm =
836 m_hr2dInc[lay][iEntr][lr][bin]->GetFunction( "gaus" )->GetParameter( 2 );
837 if ( histEntry < 50 ) { sigm[bin] = calconst->getSdpar( lay, iEntr, lr, bin ); }
838 else if ( ( lay > 2 ) && ( histEntry > 500 ) &&
839 ( fabs( rms - gausSigm ) < 0.02 ) )
840 { sigm[bin] = gausSigm; }
841 else { sigm[bin] = rms; }
842 if ( bin >= nbinLim )
843 {
844 if ( sigm[bin] < sigm[bin - 1] ) sigm[bin] = sigm[bin - 1];
845 }
846 // if(histEntry > 500){
847 // m_hr2dInc[lay][iEntr][lr][bin]->Fit("gaus",
848 // "Q"); sigm[bin] =
849 // m_hr2dInc[lay][iEntr][lr][bin]->GetFunction("gaus")->GetParameter(2); } else
850 // if(histEntry>100){ sigm[bin] = m_hr2dInc[lay][iEntr][lr][bin]->GetRMS(); }
851 // else{ sigm[bin] = 0.2;
852 // }
853 }
854 if ( sigm[bin] < 0.05 ) sigm[bin] = 0.05; // for boundary layers
855 } // end of bin loop
856 for ( int bin = nSdBin[lay]; bin < NSDBIN; bin++ ) { sigm[bin] = sigm[bin - 1]; }
857
858 for ( int bin = 0; bin < NSDBIN; bin++ )
859 {
860 if ( 1 == gNEntr[lay] )
861 {
862 for ( int i = 0; i < 6; i++ ) calconst->resetSdpar( lay, i, lr, bin, sigm[bin] );
863 }
864 else if ( 2 == gNEntr[lay] )
865 {
866 if ( 0 == iEntr )
867 {
868 for ( int i = 0; i < 3; i++ )
869 { // entr<0
870 calconst->resetSdpar( lay, i, lr, bin, sigm[bin] );
871 }
872 }
873 else
874 {
875 for ( int i = 3; i < 6; i++ )
876 { // entr>0
877 calconst->resetSdpar( lay, i, lr, bin, sigm[bin] );
878 }
879 }
880 }
881 fr2d << setw( 5 ) << bin << setw( 15 ) << sigm[bin] << endl;
882 }
883 } // lr loop
884 } // entr loop
885 } // layer loop
886 fr2d.close();
887 }
888
889 int entrId, lrId;
890 double tdr, sigma;
891 char hname[200];
892 r2tList->Clear();
893 TTree* r2ttr[NLAYER];
894 for ( int lay = 0; lay < NLAYER; lay++ )
895 {
896 sprintf( hname, "r2t%02d", lay );
897 r2ttr[lay] = new TTree( hname, hname );
898 r2ttr[lay]->Branch( "iEntr", &entrId, "iEntr/I" );
899 r2ttr[lay]->Branch( "lr", &lrId, "lr/I" );
900 r2ttr[lay]->Branch( "t", &tdr, "t/D" );
901 r2ttr[lay]->Branch( "s", &sigma, "s/D" );
902 for ( int iEntr = 0; iEntr < NENTRXT; iEntr++ )
903 {
904 for ( int lr = 0; lr < 2; lr++ )
905 {
906 for ( int bin = 0; bin < 45; bin++ )
907 {
908 entrId = iEntr;
909 lrId = lr;
910 tdr = (double)bin * 10.0 + 5.0;
911 sigma = 0.13;
912 r2ttr[lay]->Fill();
913 }
914 }
915 }
916 r2tList->Add( r2ttr[lay] );
917 }
918
919 renameHist();
920}
sprintf(cut, "kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_" "pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
*******INTEGER m_nBinMax INTEGER m_NdiMax !No of bins in histogram for cell exploration division $ !Last vertex $ !Last active cell $ !Last cell in buffer $ !No of sampling when dividing cell $ !No of function total $ !Flag for random ceel for $ !Flag for type of for WtMax $ !Flag which decides whether vertices are included in the sampling $ entire domain is hyp !Maximum effective eevents per bin
Definition FoamA.h:85
void resetSdpar(int lay, int entr, int lr, int bin, double val)
double getSdpar(int lay, int entr, int lr, int bin)

Referenced by GrXtCalib::calib(), QtCalib::calib(), T0Calib::calib(), XtCalib::calib(), XtInteCalib::calib(), and main().

◆ init()

void CalibBase::init ( TObjArray * hlist,
MdcCosGeom * pGeom )
pure virtual

Implemented in GrXtCalib, IniCalib, PreT0Calib, PreXtCalib, QtCalib, T0Calib, XtCalib, and XtInteCalib.

Definition at line 12 of file CalibBase.cpp.

12 {
13 char hname[200];
14
15 m_fdcom = new TFolder( "mcommon", "common" );
16 hlist->Add( m_fdcom );
17
18 m_effNtrk = new TH1F( "meffNtrk", "", 43, -0.5, 42.5 );
19 m_fdcom->Add( m_effNtrk );
20
21 m_effNtrkRecHit = new TH1F( "meffNtrkRecHit", "", 43, -0.5, 42.5 );
22 m_fdcom->Add( m_effNtrkRecHit );
23
24 m_hresAllInc = new TH1F( "mHResAllInc", "", 200, -1.0, 1.0 );
25 m_fdcom->Add( m_hresAllInc );
26
27 m_hresAllExc = new TH1F( "mHResAllExc", "", 200, -1.0, 1.0 );
28 m_fdcom->Add( m_hresAllExc );
29
30 m_hresAllAve = new TH1F( "mHResAllAve", "", 200, -1.0, 1.0 );
31 m_fdcom->Add( m_hresAllAve );
32
33 m_hresInnInc = new TH1F( "mHResInnInc", "", 200, -1.0, 1.0 );
34 m_fdcom->Add( m_hresInnInc );
35
36 m_hresInnExc = new TH1F( "mHResInnExc", "", 200, -1.0, 1.0 );
37 m_fdcom->Add( m_hresInnExc );
38
39 m_hresStpInc = new TH1F( "mHResStpInc", "", 200, -1.0, 1.0 );
40 m_fdcom->Add( m_hresStpInc );
41
42 m_hresStpExc = new TH1F( "mHResStpExc", "", 200, -1.0, 1.0 );
43 m_fdcom->Add( m_hresStpExc );
44
45 m_hresOutInc = new TH1F( "mHResOutInc", "", 200, -1.0, 1.0 );
46 m_fdcom->Add( m_hresOutInc );
47
48 m_hresOutExc = new TH1F( "mHResOutExc", "", 200, -1.0, 1.0 );
49 m_fdcom->Add( m_hresOutExc );
50
51 m_fdResQ = new TFolder( "mResQ", "ResQ" );
52 hlist->Add( m_fdResQ );
53 for ( int i = 0; i < 14; i++ )
54 {
55 sprintf( hname, "mresoAll_qbin%02d", i );
56 m_hresAveAllQ[i] = new TH1F( hname, "", 200, -1, 1 );
57 m_fdResQ->Add( m_hresAveAllQ[i] );
58
59 sprintf( hname, "mresoOut_qbin%02d", i );
60 m_hresAveOutQ[i] = new TH1F( hname, "", 200, -1, 1 );
61 m_fdResQ->Add( m_hresAveOutQ[i] );
62 }
63 for ( int lay = 0; lay < 43; lay++ )
64 {
65 for ( int i = 0; i < 14; i++ )
66 {
67 sprintf( hname, "mresoLay%02d_qbin%02d", lay, i );
68 m_hresAveLayQ[lay][i] = new TH1F( hname, "", 200, -1, 1 );
69 m_fdResQ->Add( m_hresAveLayQ[lay][i] );
70 }
71 }
72
73 m_hbbTrkFlg = new TH1F( "mBbTrkFlg", "", 100, 0, 6 );
74 m_fdcom->Add( m_hbbTrkFlg );
75
76 m_hTesAll = new TH1F( "mTesAll", "", 1000, 0, 2000 );
77 m_fdcom->Add( m_hTesAll );
78
79 m_hTesGood = new TH1F( "mTesGood", "", 1000, 0, 2000 );
80 m_fdcom->Add( m_hTesGood );
81
82 m_hTesAllFlag = new TH1F( "mTesAllFlag", "", 300, -0.5, 299.5 );
83 m_fdcom->Add( m_hTesAllFlag );
84
85 m_hTesRec = new TH1F( "mTesRec", "", 1000, 0, 2000 );
86 m_fdcom->Add( m_hTesRec );
87
88 m_hTesCalFlag = new TH1F( "mTesCalFlag", "", 1000, 0, 2000 );
89 m_fdcom->Add( m_hTesCalFlag );
90
91 m_hTesCalUse = new TH1F( "mTesCalUse", "", 1000, 0, 2000 );
92 m_fdcom->Add( m_hTesCalUse );
93
94 m_hnRawHit = new TH1F( "mNRawHit", "", 6797, -0.5, 6796.5 );
95 m_fdcom->Add( m_hnRawHit );
96
97 m_hpt = new TH1F( "mHPt", "", 800, 0, 3 );
98 m_fdcom->Add( m_hpt );
99
100 m_hptPos = new TH1F( "mHPtPos", "", 800, 0, 3 );
101 m_fdcom->Add( m_hptPos );
102
103 m_hptNeg = new TH1F( "mHPtNeg", "", 800, 0, 3 );
104 m_fdcom->Add( m_hptNeg );
105
106 m_hp = new TH1F( "mHP", "", 800, 0, 3 );
107 m_fdcom->Add( m_hp );
108
109 m_hp_cms = new TH1F( "mHPCMS", "", 800, 0, 3 );
110 m_fdcom->Add( m_hp_cms );
111
112 m_hpMax = new TH1F( "mHPMax", "", 800, 0, 3 );
113 m_fdcom->Add( m_hpMax );
114
115 m_hpMaxCms = new TH1F( "mHPMax_Cms", "", 800, 0, 3 );
116 m_fdcom->Add( m_hpMaxCms );
117
118 m_hpPos = new TH1F( "mHP_Pos", "", 800, 0, 3 );
119 m_fdcom->Add( m_hpPos );
120
121 m_hpNeg = new TH1F( "mHP_Neg", "", 800, 0, 3 );
122 m_fdcom->Add( m_hpNeg );
123
124 m_hpPoscms = new TH1F( "mHP_Pos_cms", "", 800, 0, 3 );
125 m_fdcom->Add( m_hpPoscms );
126
127 m_hpNegcms = new TH1F( "mHP_Neg_cms", "", 800, 0, 3 );
128 m_fdcom->Add( m_hpNegcms );
129
130 m_hp_cut = new TH1F( "mHPCut", "", 800, 0, 3 );
131 m_fdcom->Add( m_hp_cut );
132
133 m_hchisq = new TH1F( "mChisq", "", 10, 0, 100 );
134 m_fdcom->Add( m_hchisq );
135
136 m_hnTrk = new TH1F( "mHNtrack", "HNtrack", 10, -0.5, 9.5 );
137 m_fdcom->Add( m_hnTrk );
138
139 m_hnTrkCal = new TH1F( "mHNtrackCal", "HNtrackCal", 10, -0.5, 9.5 );
140 m_fdcom->Add( m_hnTrkCal );
141
142 m_hnhitsRec = new TH1F( "mHNhitsRec", "", 100, -0.5, 99.5 );
143 m_fdcom->Add( m_hnhitsRec );
144
145 m_hnhitsRecInn = new TH1F( "mHNhitsInnRec", "", 60, 0.5, 60.5 );
146 m_fdcom->Add( m_hnhitsRecInn );
147
148 m_hnhitsRecStp = new TH1F( "mHNhitsStpRec", "", 60, 0.5, 60.5 );
149 m_fdcom->Add( m_hnhitsRecStp );
150
151 m_hnhitsRecOut = new TH1F( "mHNhitsOutRec", "", 60, 0.5, 60.5 );
152 m_fdcom->Add( m_hnhitsRecOut );
153
154 m_hnhitsCal = new TH1F( "mHNhitsCal", "", 100, -0.5, 99.5 );
155 m_fdcom->Add( m_hnhitsCal );
156
157 m_hnhitsCalInn = new TH1F( "mHNhitsCalInn", "", 60, 0.5, 60.5 );
158 m_fdcom->Add( m_hnhitsCalInn );
159
160 m_hnhitsCalStp = new TH1F( "mHNhitsCalStp", "", 60, 0.5, 60.5 );
161 m_fdcom->Add( m_hnhitsCalStp );
162
163 m_hnhitsCalOut = new TH1F( "mHNhitsCalOut", "", 60, 0.5, 60.5 );
164 m_fdcom->Add( m_hnhitsCalOut );
165
166 m_wirehitmap = new TH1F( "mWire_HitMap", "Wire_HitMap", 6796, -0.5, 6795.5 );
167 m_fdcom->Add( m_wirehitmap );
168
169 m_layerhitmap = new TH1F( "mLayer_HitMap", "Layer_HitMap", 43, -0.5, 42.5 );
170 m_fdcom->Add( m_layerhitmap );
171
172 m_hnoisephi = new TH1F( "mphi_noise", "", 100, 0, 6.284 );
173 m_fdcom->Add( m_hnoisephi );
174
175 m_hnoiselay = new TH1F( "mLayer_noise", "Layer_noise", 43, -0.5, 42.5 );
176 m_fdcom->Add( m_hnoiselay );
177
178 m_hnoisenhits = new TH1F( "mnhits_noise", "nhits_noise", 6796, -0.5, 6795.5 );
179 m_fdcom->Add( m_hnoisenhits );
180
181 m_hratio = new TH1F( "mratio", "", 100, 0, 1 );
182 m_fdcom->Add( m_hratio );
183
184 m_hdr = new TH1F( "mdr", "", 500, -500, 500 );
185 m_fdcom->Add( m_hdr );
186
187 m_hphi0 = new TH1F( "mphi0", "", 100, 0, 6.284 );
188 m_fdcom->Add( m_hphi0 );
189
190 m_hkap = new TH1F( "mkappa", "", 400, -50, 50 );
191 m_fdcom->Add( m_hkap );
192
193 m_hdz = new TH1F( "mdz", "", 500, -1000, 1000 );
194 m_fdcom->Add( m_hdz );
195
196 m_htanl = new TH1F( "mtanl", "", 200, -5, 5 );
197 m_fdcom->Add( m_htanl );
198
199 m_hcosthe = new TH1F( "mcostheta", "", 200, -1, 1 );
200 m_fdcom->Add( m_hcosthe );
201
202 m_hcostheNeg = new TH1F( "mcosthetaNeg", "", 200, -1, 1 );
203 m_fdcom->Add( m_hcostheNeg );
204
205 m_hcosthePos = new TH1F( "mcosthetaPos", "", 200, -1, 1 );
206 m_fdcom->Add( m_hcosthePos );
207
208 m_hx0 = new TH1F( "mx0", "", 100, -10, 10 );
209 m_fdcom->Add( m_hx0 );
210
211 m_hy0 = new TH1F( "my0", "", 100, -10, 10 );
212 m_fdcom->Add( m_hy0 );
213
214 m_hdelZ0 = new TH1F( "mdelta_z0", "", 100, -50, 50 );
215 m_fdcom->Add( m_hdelZ0 );
216
217 m_nGrPoint = 0;
218 m_grX0Y0 = new TGraph();
219 m_grX0Y0->SetName( "mx0y0" );
220 m_fdcom->Add( m_grX0Y0 );
221
222 m_hitEffAll = new TH1F( "mhitEffAll", "", 6800, -0.5, 6799.5 );
223 m_fdcom->Add( m_hitEffAll );
224
225 m_hitEffRaw = new TH1F( "mhitEffRaw", "", 6800, -0.5, 6799.5 );
226 m_fdcom->Add( m_hitEffRaw );
227
228 m_hitEffRec = new TH1F( "mhitEffRec", "", 6800, -0.5, 6799.5 );
229 m_fdcom->Add( m_hitEffRec );
230
231 // histograms for drift time
232 m_fdTime = new TFolder( "mtime", "time" );
233 hlist->Add( m_fdTime );
234
235 for ( int lay = 0; lay < NLAYER; lay++ )
236 {
237 sprintf( hname, "mTraw%02d", lay );
238 m_htraw[lay] = new TH1F( hname, "", 1000, 0, 2000 );
239 m_fdTime->Add( m_htraw[lay] );
240
241 sprintf( hname, "mTdr%02d", lay );
242 m_htdr[lay] = new TH1F( hname, "", 510, -10, 500 );
243 m_fdTime->Add( m_htdr[lay] );
244
245 for ( int lr = 0; lr < 2; lr++ )
246 {
247 sprintf( hname, "mTdr%02d_lr%01d", lay, lr );
248 m_htdrlr[lay][lr] = new TH1F( hname, "", 510, -10, 500 );
249 m_fdTime->Add( m_htdrlr[lay][lr] );
250 }
251 }
252
253 // histograms for resolution
254 m_fdres = new TFolder( "mresolution", "resolution" );
255 hlist->Add( m_fdres );
256
257 for ( int lay = 0; lay < NLAYER; lay++ )
258 {
259 sprintf( hname, "mReso%02dInc", lay );
260 m_hresInc[lay] = new TH1F( hname, "", 1000, -5, 5 );
261 m_fdres->Add( m_hresInc[lay] );
262
263 sprintf( hname, "mReso%02dExc", lay );
264 m_hresExc[lay] = new TH1F( hname, "", 1000, -5, 5 );
265 m_fdres->Add( m_hresExc[lay] );
266
267 for ( int lr = 0; lr < 2; lr++ )
268 {
269 sprintf( hname, "mReso%02dInc_lr%01d", lay, lr );
270 m_hreslrInc[lay][lr] = new TH1F( hname, "", 1000, -5, 5 );
271 m_fdres->Add( m_hreslrInc[lay][lr] );
272
273 sprintf( hname, "mReso%02dExc_lr%01d", lay, lr );
274 m_hreslrExc[lay][lr] = new TH1F( hname, "", 1000, -5, 5 );
275 m_fdres->Add( m_hreslrExc[lay][lr] );
276 }
277 }
278
279 /* histograms for momentum vs phi */
280 m_fdmomPhi = new TFolder( "mmomPhi", "momPhi" );
281 hlist->Add( m_fdmomPhi );
282
283 int thbin;
284 for ( int bin = 0; bin < NPhiBin; bin++ )
285 {
286 sprintf( hname, "mhPpos_phi%02d", bin );
287 m_ppPhi[bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
288 m_fdmomPhi->Add( m_ppPhi[bin] );
289
290 sprintf( hname, "mhPneg_phi%02d", bin );
291 m_pnPhi[bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
292 m_fdmomPhi->Add( m_pnPhi[bin] );
293
294 sprintf( hname, "mhPpos_phi_cms%02d", bin );
295 m_ppPhiCms[bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
296 m_fdmomPhi->Add( m_ppPhiCms[bin] );
297
298 sprintf( hname, "mhPneg_phi_cms%02d", bin );
299 m_pnPhiCms[bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
300 m_fdmomPhi->Add( m_pnPhiCms[bin] );
301
302 for ( thbin = 0; thbin < NThetaBin; thbin++ )
303 {
304 sprintf( hname, "mhPpos_theta%02d_phi%02d", thbin, bin );
305 m_ppThePhi[thbin][bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
306 m_fdmomPhi->Add( m_ppThePhi[thbin][bin] );
307
308 sprintf( hname, "mhPneg_theta%02d_phi%02d", thbin, bin );
309 m_pnThePhi[thbin][bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
310 m_fdmomPhi->Add( m_pnThePhi[thbin][bin] );
311
312 sprintf( hname, "mhPposCms_theta%02d_phi%02d", thbin, bin );
313 m_ppThePhiCms[thbin][bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
314 m_fdmomPhi->Add( m_ppThePhiCms[thbin][bin] );
315
316 sprintf( hname, "mhPnegCms_theta%02d_phi%02d", thbin, bin );
317 m_pnThePhiCms[thbin][bin] = new TH1F( hname, "", 400, 1.0, 2.5 );
318 m_fdmomPhi->Add( m_pnThePhiCms[thbin][bin] );
319 }
320 }
321 for ( thbin = 0; thbin < NThetaBin; thbin++ )
322 {
323 sprintf( hname, "mhPpos_the%02d", thbin );
324 m_ppThe[thbin] = new TH1F( hname, "", 400, 1.0, 2.5 );
325 m_fdmomPhi->Add( m_ppThe[thbin] );
326
327 sprintf( hname, "mhPneg_the%02d", thbin );
328 m_pnThe[thbin] = new TH1F( hname, "", 400, 1.0, 2.5 );
329 m_fdmomPhi->Add( m_pnThe[thbin] );
330
331 sprintf( hname, "mhPposCms_the%02d", thbin );
332 m_ppTheCms[thbin] = new TH1F( hname, "", 400, 1.0, 2.5 );
333 m_fdmomPhi->Add( m_ppTheCms[thbin] );
334
335 sprintf( hname, "mhPnegCms_the%02d", thbin );
336 m_pnTheCms[thbin] = new TH1F( hname, "", 400, 1.0, 2.5 );
337 m_fdmomPhi->Add( m_pnTheCms[thbin] );
338 }
339
340 m_fdr2d = new TFolder( "mres2d", "res2d" );
341 hlist->Add( m_fdr2d );
342 for ( int lay = 0; lay < 43; lay++ )
343 {
344 for ( int iEntr = 0; iEntr < gNEntr[lay]; iEntr++ )
345 {
346 for ( int lr = 0; lr < 2; lr++ )
347 {
348 for ( int bin = 0; bin < NSDBIN; bin++ )
349 {
350 sprintf( hname, "mR2d%02d_%02d_%01d_%02dInc", lay, iEntr, lr, bin );
351 m_hr2dInc[lay][iEntr][lr][bin] = new TH1F( hname, "", 200, -1, 1 );
352 m_fdr2d->Add( m_hr2dInc[lay][iEntr][lr][bin] );
353
354 sprintf( hname, "mR2d%02d_%02d_%01d_%02dExc", lay, iEntr, lr, bin );
355 m_hr2dExc[lay][iEntr][lr][bin] = new TH1F( hname, "", 200, -1, 1 );
356 m_fdr2d->Add( m_hr2dExc[lay][iEntr][lr][bin] );
357 }
358 }
359 }
360 }
361
362 // m_fdr2t = new TFolder("mres2t", "res2t");
363 // hlist -> Add(m_fdr2t);
364 // for(int lay=0; lay<43; lay++){
365 // for(int iEntr=0; iEntr<18; iEntr++){
366 // for(int lr=0; lr<2; lr++){
367 // for(int bin=0; bin<45; bin++){
368 // sprintf(hname, "mr2t%02d_%02d_%01d_%02d", lay, iEntr, lr, bin);
369 // m_hr2t[lay][iEntr][lr][bin] = new TH1F(hname, "", 600, -3, 3);
370 // m_fdr2t -> Add(m_hr2t[lay][iEntr][lr][bin]);
371 // }
372 // }
373 // }
374 // }
375}

Referenced by GrXtCalib::init(), QtCalib::init(), T0Calib::init(), XtCalib::init(), XtInteCalib::init(), and main().

◆ mergeHist()

void CalibBase::mergeHist ( TFile * fhist)
pure virtual

Implemented in GrXtCalib, IniCalib, PreT0Calib, PreXtCalib, QtCalib, T0Calib, XtCalib, and XtInteCalib.

Definition at line 377 of file CalibBase.cpp.

377 {
378 char hname[200];
379 TH1F* hist;
380 TFolder* fdcom = (TFolder*)fhist->Get( "common" );
381 TFolder* fdResQ = (TFolder*)fhist->Get( "ResQ" );
382 TFolder* fdTime = (TFolder*)fhist->Get( "time" );
383 TFolder* fdres = (TFolder*)fhist->Get( "resolution" );
384 TFolder* fdmomPhi = (TFolder*)fhist->Get( "momPhi" );
385 TFolder* fdres2d = (TFolder*)fhist->Get( "res2d" );
386
387 hist = (TH1F*)fdcom->FindObjectAny( "effNtrk" );
388 m_effNtrk->Add( hist );
389
390 hist = (TH1F*)fdcom->FindObjectAny( "effNtrkRecHit" );
391 m_effNtrkRecHit->Add( hist );
392
393 hist = (TH1F*)fdcom->FindObjectAny( "HResAllInc" );
394 m_hresAllInc->Add( hist );
395
396 hist = (TH1F*)fdcom->FindObjectAny( "HResAllExc" );
397 m_hresAllExc->Add( hist );
398
399 hist = (TH1F*)fdcom->FindObjectAny( "HResAllAve" );
400 m_hresAllAve->Add( hist );
401
402 hist = (TH1F*)fdcom->FindObjectAny( "HResInnInc" );
403 m_hresInnInc->Add( hist );
404
405 hist = (TH1F*)fdcom->FindObjectAny( "HResInnExc" );
406 m_hresInnExc->Add( hist );
407
408 hist = (TH1F*)fdcom->FindObjectAny( "HResStpInc" );
409 m_hresStpInc->Add( hist );
410
411 hist = (TH1F*)fdcom->FindObjectAny( "HResStpExc" );
412 m_hresStpExc->Add( hist );
413
414 hist = (TH1F*)fdcom->FindObjectAny( "HResOutInc" );
415 m_hresOutInc->Add( hist );
416
417 hist = (TH1F*)fdcom->FindObjectAny( "HResOutExc" );
418 m_hresOutExc->Add( hist );
419
420 hist = (TH1F*)fdcom->FindObjectAny( "BbTrkFlg" );
421 m_hbbTrkFlg->Add( hist );
422
423 hist = (TH1F*)fdcom->FindObjectAny( "TesAll" );
424 m_hTesAll->Add( hist );
425
426 hist = (TH1F*)fdcom->FindObjectAny( "TesGood" );
427 m_hTesGood->Add( hist );
428
429 hist = (TH1F*)fdcom->FindObjectAny( "TesAllFlag" );
430 m_hTesAllFlag->Add( hist );
431
432 hist = (TH1F*)fdcom->FindObjectAny( "TesRec" );
433 m_hTesRec->Add( hist );
434
435 hist = (TH1F*)fdcom->FindObjectAny( "TesCalFlag" );
436 m_hTesCalFlag->Add( hist );
437
438 hist = (TH1F*)fdcom->FindObjectAny( "TesCalUse" );
439 m_hTesCalUse->Add( hist );
440
441 hist = (TH1F*)fdcom->FindObjectAny( "nRawHit" );
442 m_hnRawHit->Add( hist );
443
444 hist = (TH1F*)fdcom->FindObjectAny( "HPt" );
445 m_hpt->Add( hist );
446
447 hist = (TH1F*)fdcom->FindObjectAny( "HPtPos" );
448 m_hptPos->Add( hist );
449
450 hist = (TH1F*)fdcom->FindObjectAny( "HPtNeg" );
451 m_hptNeg->Add( hist );
452
453 hist = (TH1F*)fdcom->FindObjectAny( "HP" );
454 m_hp->Add( hist );
455
456 hist = (TH1F*)fdcom->FindObjectAny( "HPCMS" );
457 m_hp_cms->Add( hist );
458
459 hist = (TH1F*)fdcom->FindObjectAny( "HPMax" );
460 m_hpMax->Add( hist );
461
462 hist = (TH1F*)fdcom->FindObjectAny( "HPMax_Cms" );
463 m_hpMaxCms->Add( hist );
464
465 hist = (TH1F*)fdcom->FindObjectAny( "HP_Pos" );
466 m_hpPos->Add( hist );
467
468 hist = (TH1F*)fdcom->FindObjectAny( "HP_Neg" );
469 m_hpNeg->Add( hist );
470
471 hist = (TH1F*)fdcom->FindObjectAny( "HP_Pos_cms" );
472 m_hpPoscms->Add( hist );
473
474 hist = (TH1F*)fdcom->FindObjectAny( "HP_Neg_cms" );
475 m_hpNegcms->Add( hist );
476
477 hist = (TH1F*)fdcom->FindObjectAny( "HPCut" );
478 m_hp_cut->Add( hist );
479
480 hist = (TH1F*)fdcom->FindObjectAny( "Chisq" );
481 m_hchisq->Add( hist );
482
483 hist = (TH1F*)fdcom->FindObjectAny( "HNtrack" );
484 m_hnTrk->Add( hist );
485
486 hist = (TH1F*)fdcom->FindObjectAny( "HNtrackCal" );
487 m_hnTrkCal->Add( hist );
488
489 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsRec" );
490 m_hnhitsRec->Add( hist );
491
492 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsInnRec" );
493 m_hnhitsRecInn->Add( hist );
494
495 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsStpRec" );
496 m_hnhitsRecStp->Add( hist );
497
498 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsOutRec" );
499 m_hnhitsRecOut->Add( hist );
500
501 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsCal" );
502 m_hnhitsCal->Add( hist );
503
504 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsCalInn" );
505 m_hnhitsCalInn->Add( hist );
506
507 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsCalStp" );
508 m_hnhitsCalStp->Add( hist );
509
510 hist = (TH1F*)fdcom->FindObjectAny( "HNhitsCalOut" );
511 m_hnhitsCalOut->Add( hist );
512
513 hist = (TH1F*)fdcom->FindObjectAny( "Wire_HitMap" );
514 m_wirehitmap->Add( hist );
515
516 hist = (TH1F*)fdcom->FindObjectAny( "Layer_HitMap" );
517 m_layerhitmap->Add( hist );
518
519 hist = (TH1F*)fdcom->FindObjectAny( "phi_noise" );
520 m_hnoisephi->Add( hist );
521
522 hist = (TH1F*)fdcom->FindObjectAny( "Layer_noise" );
523 m_hnoiselay->Add( hist );
524
525 hist = (TH1F*)fdcom->FindObjectAny( "nhits_noise" );
526 m_hnoisenhits->Add( hist );
527
528 hist = (TH1F*)fdcom->FindObjectAny( "ratio" );
529 m_hratio->Add( hist );
530
531 hist = (TH1F*)fdcom->FindObjectAny( "dr" );
532 m_hdr->Add( hist );
533
534 hist = (TH1F*)fdcom->FindObjectAny( "phi0" );
535 m_hphi0->Add( hist );
536
537 hist = (TH1F*)fdcom->FindObjectAny( "kappa" );
538 m_hkap->Add( hist );
539
540 hist = (TH1F*)fdcom->FindObjectAny( "dz" );
541 m_hdz->Add( hist );
542
543 hist = (TH1F*)fdcom->FindObjectAny( "tanl" );
544 m_htanl->Add( hist );
545
546 hist = (TH1F*)fdcom->FindObjectAny( "costheta" );
547 m_hcosthe->Add( hist );
548
549 hist = (TH1F*)fdcom->FindObjectAny( "costhetaNeg" );
550 m_hcostheNeg->Add( hist );
551
552 hist = (TH1F*)fdcom->FindObjectAny( "costhetaPos" );
553 m_hcosthePos->Add( hist );
554
555 hist = (TH1F*)fdcom->FindObjectAny( "x0" );
556 m_hx0->Add( hist );
557
558 hist = (TH1F*)fdcom->FindObjectAny( "y0" );
559 m_hy0->Add( hist );
560
561 hist = (TH1F*)fdcom->FindObjectAny( "delta_z0" );
562 m_hdelZ0->Add( hist );
563
564 hist = (TH1F*)fdcom->FindObjectAny( "hitEffAll" );
565 m_hitEffAll->Add( hist );
566
567 hist = (TH1F*)fdcom->FindObjectAny( "hitEffRaw" );
568 m_hitEffRaw->Add( hist );
569
570 hist = (TH1F*)fdcom->FindObjectAny( "hitEffRec" );
571 m_hitEffRec->Add( hist );
572
573 TGraph* gr = (TGraph*)fdcom->FindObjectAny( "x0y0" );
574 int np = gr->GetN();
575 double xx;
576 double yy;
577 for ( int i = 0; i < np; i++ )
578 {
579 gr->GetPoint( i, xx, yy );
580 m_grX0Y0->SetPoint( m_nGrPoint, xx, yy );
581 m_nGrPoint++;
582 }
583
584 for ( int i = 0; i < 14; i++ )
585 {
586 sprintf( hname, "resoAll_qbin%02d", i );
587 hist = (TH1F*)fdResQ->FindObjectAny( hname );
588 m_hresAveAllQ[i]->Add( hist );
589
590 sprintf( hname, "resoOut_qbin%02d", i );
591 hist = (TH1F*)fdResQ->FindObjectAny( hname );
592 m_hresAveOutQ[i]->Add( hist );
593 }
594
595 for ( int lay = 0; lay < 43; lay++ )
596 {
597 for ( int i = 0; i < 14; i++ )
598 {
599 sprintf( hname, "resoLay%02d_qbin%02d", lay, i );
600 hist = (TH1F*)fdResQ->FindObjectAny( hname );
601 m_hresAveLayQ[lay][i]->Add( hist );
602 }
603 }
604
605 for ( int lay = 0; lay < NLAYER; lay++ )
606 {
607 sprintf( hname, "Traw%02d", lay );
608 hist = (TH1F*)fdTime->FindObjectAny( hname );
609 m_htraw[lay]->Add( hist );
610
611 sprintf( hname, "Tdr%02d", lay );
612 hist = (TH1F*)fdTime->FindObjectAny( hname );
613 m_htdr[lay]->Add( hist );
614
615 for ( int lr = 0; lr < 2; lr++ )
616 {
617 sprintf( hname, "Tdr%02d_lr%01d", lay, lr );
618 hist = (TH1F*)fdTime->FindObjectAny( hname );
619 m_htdrlr[lay][lr]->Add( hist );
620 }
621 }
622
623 for ( int lay = 0; lay < NLAYER; lay++ )
624 {
625 sprintf( hname, "Reso%02dInc", lay );
626 hist = (TH1F*)fdres->FindObjectAny( hname );
627 m_hresInc[lay]->Add( hist );
628
629 sprintf( hname, "Reso%02dExc", lay );
630 hist = (TH1F*)fdres->FindObjectAny( hname );
631 m_hresExc[lay]->Add( hist );
632
633 for ( int lr = 0; lr < 2; lr++ )
634 {
635 sprintf( hname, "Reso%02dInc_lr%01d", lay, lr );
636 hist = (TH1F*)fdres->FindObjectAny( hname );
637 m_hreslrInc[lay][lr]->Add( hist );
638
639 sprintf( hname, "Reso%02dExc_lr%01d", lay, lr );
640 hist = (TH1F*)fdres->FindObjectAny( hname );
641 m_hreslrExc[lay][lr]->Add( hist );
642 }
643 }
644
645 int thbin;
646 for ( int bin = 0; bin < NPhiBin; bin++ )
647 {
648 sprintf( hname, "hPpos_phi%02d", bin );
649 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
650 m_ppPhi[bin]->Add( hist );
651
652 sprintf( hname, "hPneg_phi%02d", bin );
653 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
654 m_pnPhi[bin]->Add( hist );
655
656 sprintf( hname, "hPpos_phi_cms%02d", bin );
657 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
658 m_ppPhiCms[bin]->Add( hist );
659
660 sprintf( hname, "hPneg_phi_cms%02d", bin );
661 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
662 m_pnPhiCms[bin]->Add( hist );
663
664 for ( thbin = 0; thbin < NThetaBin; thbin++ )
665 {
666 sprintf( hname, "hPpos_theta%02d_phi%02d", thbin, bin );
667 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
668 m_ppThePhi[thbin][bin]->Add( hist );
669
670 sprintf( hname, "hPneg_theta%02d_phi%02d", thbin, bin );
671 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
672 m_pnThePhi[thbin][bin]->Add( hist );
673
674 sprintf( hname, "hPposCms_theta%02d_phi%02d", thbin, bin );
675 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
676 m_ppThePhiCms[thbin][bin]->Add( hist );
677
678 sprintf( hname, "hPnegCms_theta%02d_phi%02d", thbin, bin );
679 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
680 m_pnThePhiCms[thbin][bin]->Add( hist );
681 }
682 }
683
684 for ( thbin = 0; thbin < NThetaBin; thbin++ )
685 {
686 sprintf( hname, "hPpos_the%02d", thbin );
687 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
688 m_ppThe[thbin]->Add( hist );
689
690 sprintf( hname, "hPneg_the%02d", thbin );
691 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
692 m_ppThe[thbin]->Add( hist );
693
694 sprintf( hname, "hPposCms_the%02d", thbin );
695 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
696 m_ppTheCms[thbin]->Add( hist );
697
698 sprintf( hname, "hPnegCms_the%02d", thbin );
699 hist = (TH1F*)fdmomPhi->FindObjectAny( hname );
700 m_pnTheCms[thbin]->Add( hist );
701 }
702
703 for ( int lay = 0; lay < 43; lay++ )
704 {
705 for ( int iEntr = 0; iEntr < gNEntr[lay]; iEntr++ )
706 {
707 for ( int lr = 0; lr < 2; lr++ )
708 {
709 for ( int bin = 0; bin < NSDBIN; bin++ )
710 {
711 sprintf( hname, "r2d%02d_%02d_%01d_%02dInc", lay, iEntr, lr, bin );
712 hist = (TH1F*)fdres2d->FindObjectAny( hname );
713 m_hr2dInc[lay][iEntr][lr][bin]->Add( hist );
714
715 sprintf( hname, "r2d%02d_%02d_%01d_%02dExc", lay, iEntr, lr, bin );
716 hist = (TH1F*)fdres2d->FindObjectAny( hname );
717 m_hr2dExc[lay][iEntr][lr][bin]->Add( hist );
718 }
719 }
720 }
721 }
722
723 // TFolder* fdres2t = (TFolder*)fhist->Get("res2t");
724 // for(int lay=0; lay<43; lay++){
725 // for(int iEntr=0; iEntr<18; iEntr++){
726 // for(int lr=0; lr<2; lr++){
727 // for(int bin=0; bin<45; bin++){
728 // sprintf(hname, "r2t%02d_%02d_%01d_%02d", lay, iEntr, lr, bin);
729 // hist = (TH1F*)fdres2t->FindObjectAny(hname);
730 // m_hr2t[lay][iEntr][lr][bin]->Add(hist);
731 // }
732 // }
733 // }
734 // }
735}
TGraph * gr

Referenced by main(), GrXtCalib::mergeHist(), QtCalib::mergeHist(), T0Calib::mergeHist(), XtCalib::mergeHist(), and XtInteCalib::mergeHist().


The documentation for this class was generated from the following files: