00001
00002
00003
00004 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaObject.h"
00005
00006
00007
00008
00009
00010
00011
00012 ClassImp(TEcnaObject)
00013
00014
00015
00016 TEcnaObject::~TEcnaObject()
00017 {
00018
00019
00020
00021 }
00022
00023
00024
00025
00026
00027
00028 TEcnaObject::TEcnaObject()
00029 {
00030
00031
00032
00033
00034 Long_t PointerValue = (Long_t)this;
00035 Int_t un = 1;
00036 NumberCreateObjectMessage("TEcnaObject", PointerValue, un);
00037
00038 Init();
00039
00040 }
00041
00042 void TEcnaObject::Init()
00043 {
00044 fgMaxCar = 512;
00045 fTTBELL = '\007';
00046
00047
00048 fObjectTEcnaGui = 0;
00049 fObjectTEcnaHeader = 0;
00050 fObjectTEcnaHistos = 0;
00051 fObjectTEcnaNArrayD = 0;
00052 fObjectTEcnaNumbering = 0;
00053 fObjectTEcnaParCout = 0;
00054 fObjectTEcnaParEcal = 0;
00055 fObjectTEcnaParHistos = 0;
00056 fObjectTEcnaRead = 0;
00057 fObjectTEcnaResultType = 0;
00058 fObjectTEcnaRootFile = 0;
00059 fObjectTEcnaRun = 0;
00060 fObjectTEcnaWrite = 0;
00061
00062
00063 fCounterCreateTEcnaGui = 0;
00064 fCounterCreateTEcnaHeader = 0;
00065 fCounterCreateTEcnaHistos = 0;
00066 fCounterCreateTEcnaNArrayD = 0;
00067 fCounterCreateTEcnaNumbering = 0;
00068 fCounterCreateTEcnaParCout = 0;
00069 fCounterCreateTEcnaParEcal = 0;
00070 fCounterCreateTEcnaParHistos = 0;
00071 fCounterCreateTEcnaRead = 0;
00072 fCounterCreateTEcnaResultType = 0;
00073 fCounterCreateTEcnaRootFile = 0;
00074 fCounterCreateTEcnaRun = 0;
00075 fCounterCreateTEcnaWrite = 0;
00076
00077
00078 fCounterReusingTEcnaGui = 0;
00079 fCounterReusingTEcnaHeader = 0;
00080 fCounterReusingTEcnaHistos = 0;
00081 fCounterReusingTEcnaNArrayD = 0;
00082 fCounterReusingTEcnaNumbering = 0;
00083 fCounterReusingTEcnaParCout = 0;
00084 fCounterReusingTEcnaParEcal = 0;
00085 fCounterReusingTEcnaParHistos = 0;
00086 fCounterReusingTEcnaRead = 0;
00087 fCounterReusingTEcnaResultType = 0;
00088 fCounterReusingTEcnaRootFile = 0;
00089 fCounterReusingTEcnaRun = 0;
00090 fCounterReusingTEcnaWrite = 0;
00091
00092 }
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102 Bool_t TEcnaObject::RegisterPointer(const TString ClassName, const Long_t& PointerValue)
00103 {
00104 Bool_t ClassFound = kFALSE;
00105
00106 if( ClassName == "TEcnaGui" )
00107 {
00108 ClassFound = kTRUE;
00109 fObjectTEcnaGui = PointerValue;
00110 fCounterCreateTEcnaGui++;
00111 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaGui);
00112 }
00113
00114 if( ClassName == "TEcnaHeader" )
00115 {
00116 ClassFound = kTRUE;
00117 fObjectTEcnaHeader = PointerValue;
00118 fCounterCreateTEcnaHeader++;
00119 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaHeader);
00120 }
00121
00122 if( ClassName == "TEcnaHistos" )
00123 {
00124 ClassFound = kTRUE;
00125 fObjectTEcnaHistos = PointerValue;
00126 fCounterCreateTEcnaHistos++;
00127 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaHistos);
00128 }
00129
00130 if( ClassName == "TEcnaNArrayD" )
00131 {
00132 ClassFound = kTRUE;
00133 fObjectTEcnaNArrayD = PointerValue;
00134 fCounterCreateTEcnaNArrayD++;
00135 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaNArrayD);
00136 }
00137
00138 if( ClassName == "TEcnaNumbering" )
00139 {
00140 ClassFound = kTRUE;
00141 fObjectTEcnaNumbering = PointerValue;
00142 fCounterCreateTEcnaNumbering++;
00143 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaNumbering);
00144 }
00145
00146 if( ClassName == "TEcnaParCout" )
00147 {
00148 ClassFound = kTRUE;
00149 fObjectTEcnaParCout = PointerValue;
00150 fCounterCreateTEcnaParCout++;
00151 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaParCout);
00152 }
00153
00154 if( ClassName == "TEcnaParEcal" )
00155 {
00156 ClassFound = kTRUE;
00157 fObjectTEcnaParEcal = PointerValue;
00158 fCounterCreateTEcnaParEcal++;
00159 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaParEcal);
00160 }
00161
00162 if( ClassName == "TEcnaParHistos" )
00163 {
00164 ClassFound = kTRUE;
00165 fObjectTEcnaParHistos = PointerValue;
00166 fCounterCreateTEcnaParHistos++;
00167 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaParHistos);
00168 }
00169
00170 if( ClassName == "TEcnaParPaths" )
00171 {
00172 ClassFound = kTRUE;
00173 fObjectTEcnaParPaths = PointerValue;
00174 fCounterCreateTEcnaParPaths++;
00175 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaParPaths);
00176 }
00177
00178 if( ClassName == "TEcnaRead" )
00179 {
00180 ClassFound = kTRUE;
00181 fObjectTEcnaRead = PointerValue;
00182 fCounterCreateTEcnaRead++;
00183 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaRead);
00184 }
00185
00186 if( ClassName == "TEcnaResultType" )
00187 {
00188 ClassFound = kTRUE;
00189 fObjectTEcnaResultType = PointerValue;
00190 fCounterCreateTEcnaResultType++;
00191 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaResultType);
00192 }
00193
00194 if( ClassName == "TEcnaRootFile" )
00195 {
00196 ClassFound = kTRUE;
00197 fObjectTEcnaRootFile = PointerValue;
00198 fCounterCreateTEcnaRootFile++;
00199 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaRootFile);
00200 }
00201
00202 if( ClassName == "TEcnaRun" )
00203 {
00204 ClassFound = kTRUE;
00205 fObjectTEcnaRun = PointerValue;
00206 fCounterCreateTEcnaRun++;
00207 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaRun);
00208 }
00209
00210 if( ClassName == "TEcnaWrite" )
00211 {
00212 ClassFound = kTRUE;
00213 fObjectTEcnaWrite = PointerValue;
00214 fCounterCreateTEcnaWrite++;
00215 NumberCreateObjectMessage(ClassName.Data(), PointerValue, fCounterCreateTEcnaWrite);
00216 }
00217
00218
00219 if( ClassFound == kFALSE )
00220 {
00221 cout << "!TEcnaObject::RegisterPointer(...)> Class " << ClassName
00222 << " not found." << fTTBELL << endl;
00223 }
00224
00225 return ClassFound;
00226 }
00227
00228
00229 Long_t TEcnaObject::GetPointerValue(const TString ClassName)
00230 {
00231 Long_t PointerValue = 0;
00232
00233 if( ClassName == "TEcnaGui" )
00234 {
00235 PointerValue = fObjectTEcnaGui;
00236 fCounterReusingTEcnaGui++;
00237 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaGui);
00238 }
00239
00240 if( ClassName == "TEcnaHeader" )
00241 {
00242 PointerValue = fObjectTEcnaHeader;
00243 fCounterReusingTEcnaHeader++;
00244 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaHeader);
00245 }
00246
00247 if( ClassName == "TEcnaHistos" )
00248 {
00249 PointerValue = fObjectTEcnaHistos;
00250 fCounterReusingTEcnaHistos++;
00251 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaHistos);
00252 }
00253
00254 if( ClassName == "TEcnaNArrayD" )
00255 {
00256 PointerValue = fObjectTEcnaNArrayD;
00257 fCounterReusingTEcnaNArrayD++;
00258 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaNArrayD);
00259 }
00260
00261 if( ClassName == "TEcnaNumbering" )
00262 {
00263 PointerValue = fObjectTEcnaNumbering;
00264 fCounterReusingTEcnaNumbering++;
00265 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaNumbering);
00266 }
00267
00268 if( ClassName == "TEcnaParCout" )
00269 {
00270 PointerValue = fObjectTEcnaParCout;
00271 fCounterReusingTEcnaParCout++;
00272 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaParCout);
00273 }
00274
00275 if( ClassName == "TEcnaParEcal" )
00276 {
00277 PointerValue = fObjectTEcnaParEcal;
00278 fCounterReusingTEcnaParEcal++;
00279 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaParEcal);
00280 }
00281
00282 if( ClassName == "TEcnaParHistos" )
00283 {
00284 PointerValue = fObjectTEcnaParHistos;
00285 fCounterReusingTEcnaParHistos++;
00286 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaParHistos);
00287 }
00288
00289 if( ClassName == "TEcnaParPaths" )
00290 {
00291 PointerValue = fObjectTEcnaParPaths;
00292 fCounterReusingTEcnaParPaths++;
00293 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaParPaths);
00294 }
00295
00296 if( ClassName == "TEcnaRead" )
00297 {
00298 PointerValue = fObjectTEcnaRead;
00299 fCounterReusingTEcnaRead++;
00300 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaRead);
00301 }
00302
00303 if( ClassName == "TEcnaResultType" )
00304 {
00305 PointerValue = fObjectTEcnaResultType;
00306 fCounterReusingTEcnaResultType++;
00307 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaResultType);
00308 }
00309
00310 if( ClassName == "TEcnaRootFile" )
00311 {
00312 PointerValue = fObjectTEcnaRootFile;
00313 fCounterReusingTEcnaRootFile++;
00314 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaRootFile);
00315 }
00316
00317 if( ClassName == "TEcnaRun" )
00318 {
00319 PointerValue = fObjectTEcnaRun;
00320 fCounterReusingTEcnaRun++;
00321 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaRun);
00322 }
00323
00324 if( ClassName == "TEcnaWrite" )
00325 {
00326 PointerValue = fObjectTEcnaWrite;
00327 fCounterReusingTEcnaWrite++;
00328 NumberReuseObjectMessage(ClassName.Data(), PointerValue, fCounterReusingTEcnaWrite);
00329 }
00330
00331 return PointerValue;
00332 }
00333
00334 void TEcnaObject::NumberCreateObjectMessage(const TString ClassName, const Long_t& PointerValue, const Int_t& NbOfObjects)
00335 {
00336 #define NOCM
00337 #ifndef NOCM
00338 cout << "*TEcnaObject::NumberCreateObjectMessage(...)> New ECNA object (pointer = "
00339 << PointerValue << ") from TEcnaObject " << this
00340 << ". Object# = " << setw(8) << NbOfObjects
00341 << ", Class: " << ClassName;
00342 if( NbOfObjects > 1 ){cout << " (INFO: more than 1 object)";}
00343 cout << endl;
00344 #endif // NOCM
00345 }
00346
00347 void TEcnaObject::NumberReuseObjectMessage(const TString ClassName, const Long_t& PointerValue, const Int_t& NbOfObjects)
00348 {
00349 #define NOCR
00350 #ifndef NOCR
00351 if( PointerValue != 0 )
00352 {
00353 cout << "*TEcnaObject::GetPointerValue(...)> INFO: pointer " << PointerValue
00354 << " used again from TEcnaObject " << this
00355 << ". " << setw(8) << NbOfObjects << " times, class: " << ClassName;
00356 }
00357 cout << endl;
00358 #endif // NOCR
00359 }