00001 //----------Author's Name:FX Gentit and B.Fabbro DSM/IRFU/SPP CEA-Saclay 00002 //----------Copyright:Those valid for CEA software 00003 //----------Modified:25/09/2009 00004 00005 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParEcal.h" 00006 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h" 00007 00008 ClassImp(TEcnaParEcal) 00009 //____________________________________________________________________________ 00010 00011 TEcnaParEcal::TEcnaParEcal(){ 00012 // Constructor without argument. Call to Init() 00013 00014 // cout << "[Info Management] CLASS: TEcnaParEcal. CREATE OBJECT: this = " << this << endl; 00015 00016 Init(); 00017 } 00018 00019 TEcnaParEcal::TEcnaParEcal(const TString SubDet){ 00020 // Constructor with argument. Call to Init() and set the subdetector flag 00021 00022 // cout << "[Info Management] CLASS: TEcnaParEcal. CREATE OBJECT: this = " << this << endl; 00023 00024 Init(); 00025 SetEcalSubDetector(SubDet.Data()); 00026 } 00027 00028 TEcnaParEcal::~TEcnaParEcal() { 00029 //destructor 00030 00031 // cout << "[Info Management] CLASS: TEcnaParEcal. DESTROY OBJECT: this = " << this << endl; 00032 } 00033 00034 void TEcnaParEcal::Init() 00035 { 00036 //Set values of Ecal parameters 00037 00038 //--------------------------------- INIT parameters 00039 00040 fTTBELL = '\007'; 00041 00042 fCnew = 0; 00043 fCdelete = 0; 00044 00045 //....................... CMS/ECAL parameters 00046 00047 //.............. Basic parameters for EB 00048 00049 fMaxSampADCEB = (Int_t)10; // Maximum number of samples ADC 00050 00051 fMaxEvtsInBurstPedRunEB = (Int_t)150; // Maximum number of events per burst in Pedestal Runs 00052 00053 fMaxSMEtaInEB = (Int_t)2; // Maximum number of SuperModules in eta in the EB 00054 fMaxSMPhiInEB = (Int_t)18; // Maximum number of SuperModules in phi in the EB 00055 00056 fMaxSMInEBPlus = (Int_t)18; // Maximum number of SuperModules in the EB+ 00057 fMaxSMInEBMinus = (Int_t)18; // Maximum number of SuperModules in the EB- 00058 00059 fMaxTowEtaInSM = (Int_t)17; // Maximum number of towers in eta in a SuperModule 00060 fMaxTowPhiInSM = (Int_t)4; // Maximum number of towers in phi in a SuperModule 00061 00062 fMaxCrysEtaInTow = (Int_t)5; // Maximum number of crystals in eta in a tower 00063 fMaxCrysPhiInTow = (Int_t)5; // Maximum number of crystals in phi in a tower 00064 00065 //.............. Derived parameters for EB 00066 00067 fMaxTowEtaInEB = fMaxSMEtaInEB*fMaxTowEtaInSM; // Maximum number of towers in eta in EB 00068 fMaxTowPhiInEB = fMaxSMPhiInEB*fMaxTowPhiInSM; // Maximum number of towers in phi in EB 00069 00070 fMaxSMInEB = fMaxSMInEBPlus + fMaxSMInEBMinus; // Maximum number of SuperModules in the Ecal 00071 fMaxTowInSM = (Int_t)fMaxTowEtaInSM*fMaxTowPhiInSM; // Maximum number of towers in a SuperModule 00072 fMaxCrysInTow = (Int_t)fMaxCrysEtaInTow*fMaxCrysPhiInTow; // Maximum number of crystals in a tower 00073 00074 fMaxCrysEtaInSM = (Int_t)fMaxTowEtaInSM*fMaxCrysEtaInTow; // Maximum number of crystals in eta in a SuperModule 00075 fMaxCrysPhiInSM = (Int_t)fMaxTowPhiInSM*fMaxCrysPhiInTow; // Maximum number of crystals in phi in a SuperModule 00076 fMaxCrysInSM = (Int_t)fMaxTowInSM*fMaxCrysInTow; // Maximum number of crystals in a SuperModule 00077 00078 //.............. Basic parameters for the EE 00079 00080 fMaxSampADCEE = (Int_t)10; // Maximum number of samples ADC 00081 00082 fMaxEvtsInBurstPedRunEE = (Int_t)50; // Maximum number of events per burst in Pedestal Runs 00083 00084 fMaxDeeIXInEE = (Int_t)4; // Maximum number of Dees in IX in EE 00085 fMaxDeeIYInEE = (Int_t)1; // Maximum number of Dees in IY in EE 00086 00087 fMaxDeeInEEPlus = (Int_t)2; // Maximum number of Dees in EE+ 00088 fMaxDeeInEEMinus = (Int_t)2; // Maximum number of Dees in EE- 00089 00090 fMaxSCIXInDee = (Int_t)10; // Maximum number of super-crystals in IX in Dee 00091 fMaxSCIYInDee = (Int_t)20; // Maximum number of super-crystals in IY in Dee 00092 fMaxSCForConsInDee = (Int_t)149; // Maximum number of super-crystals for construction in Dee 00093 00094 fMaxCrysIXInSC = (Int_t)5; // Maximum number of crystals in IX in a super-crystal 00095 fMaxCrysIYInSC = (Int_t)5; // Maximum number of crystals in IY in a super-crystal 00096 00097 fMaxDSInEEPlus = (Int_t)9; // Maximum number of Data Sectors in EE+ 00098 fMaxDSInEEMinus = (Int_t)9; // Maximum number of Data Sectors in EE- 00099 00100 fNumberOfNotConnectedSCs = (Int_t)7; // Number of not connected SC's (178, 182, 207, 33, 29, etc... see EE mapping) 00101 fNumberOfNotCompleteSCs = (Int_t)4; // Number of not complete SC's (161, 216, 224, 12, 67, etc... see EE mapping) 00102 00103 00104 //.............. Derived parameters for the EE 00105 00106 fMaxSCIXInEE = fMaxDeeIXInEE*fMaxSCIXInDee; // Maximum number of SC's in IX in EE 00107 fMaxSCIYInEE = fMaxDeeIYInEE*fMaxSCIYInDee; // Maximum number of SC's in IY in EE 00108 00109 fMaxDeeInEE = fMaxDeeInEEPlus + fMaxDeeInEEMinus; // Maximum number of Dees in EE 00110 fMaxSCEcnaInDee = fMaxSCIXInDee*fMaxSCIYInDee; // Maximum number of super-crystals in the Dee matrix 00111 fMaxCrysInSC = fMaxCrysIXInSC*fMaxCrysIYInSC; // Maximum number of crystals in a super-crystal 00112 00113 fMaxCrysIXInDee = fMaxSCIXInDee*fMaxCrysIXInSC; // Maximum number of crystals in IX in Dee 00114 fMaxCrysIYInDee = fMaxSCIYInDee*fMaxCrysIYInSC; // Maximum number of crystals in IY in Dee 00115 fMaxCrysEcnaInDee = fMaxSCEcnaInDee*fMaxCrysInSC; // Max nb of crystals in the Dee matrix 00116 fMaxCrysForConsInDee = fMaxSCForConsInDee*fMaxCrysInSC; // Max nb of crystals for construction in Dee 00117 00118 fMaxDSInEE = fMaxDSInEEPlus + fMaxDSInEEMinus; // Maximum number of Data Sectors in EE 00119 00120 //.............................. Current subdetector (Stas) parameters set to zero 00121 00122 fMaxSampADC = 0; 00123 00124 fMaxEvtsInBurstPedRun = 0; 00125 00126 fMaxStexHocoInStas = 0; 00127 fMaxStexVecoInStas = 0; 00128 00129 fMaxStexInStasPlus = 0; 00130 fMaxStexInStasMinus = 0; 00131 fMaxStexInStas = 0; 00132 00133 fMaxStinHocoInStas = 0; 00134 fMaxStinVecoInStas = 0; 00135 00136 fMaxStinHocoInStex = 0; 00137 fMaxStinVecoInStex = 0; 00138 fMaxStinEcnaInStex = 0; 00139 00140 fMaxCrysHocoInStin = 0; 00141 fMaxCrysVecoInStin = 0; 00142 fMaxCrysInStin = 0; 00143 00144 fMaxCrysHocoInStex = 0; 00145 fMaxCrysVecoInStex = 0; 00146 fMaxCrysEcnaInStex = 0; 00147 00148 // fMaxStinForConsInStas = 0; 00149 00150 fMaxStinInStex = 0; 00151 fMaxCrysInStex = 0; 00152 00153 //.............................. Set codes for the Subdetector Flag 00154 fgMaxCar = (Int_t)512; 00155 00156 Int_t MaxCar = fgMaxCar; 00157 fCodeEB.Resize(MaxCar); 00158 fCodeEB = "EB"; 00159 00160 MaxCar = fgMaxCar; 00161 fCodeEE.Resize(MaxCar); 00162 fCodeEE = "EE"; 00163 00164 MaxCar = fgMaxCar; 00165 fFlagSubDet.Resize(MaxCar); 00166 fFlagSubDet = "No info"; 00167 00168 } // end of Init() 00169 00170 void TEcnaParEcal::SetEcalSubDetector(const TString SubDet){ 00171 //Set the current subdetector flag and the current subdetector "Stin-Stex-Stas" parameters according to fFlagSubDet 00172 00173 if( SubDet != fCodeEB && SubDet != fCodeEE ) 00174 { 00175 cout << "!TEcnaParEcal::SetEcalSubDetector(...)> " << SubDet 00176 << " : unknown subdetector code (requested: EB or EE)" << fTTBELL << endl; 00177 } 00178 else 00179 { 00180 Int_t MaxCar = fgMaxCar; 00181 fFlagSubDet.Resize(MaxCar); 00182 fFlagSubDet = SubDet.Data(); // Set the SubDetector flag 00183 00184 if( fFlagSubDet != fCodeEB && fFlagSubDet != fCodeEE ) 00185 { 00186 cout << "!TEcnaParEcal::SetEcalSubDetector(...)> fFlagSubDet = " << fFlagSubDet 00187 << " : CODE PROBLEM, subdetector flag not initialized." << fTTBELL << endl; 00188 } 00189 00190 if(fFlagSubDet == fCodeEB) 00191 { 00192 fMaxSampADC = fMaxSampADCEB; 00193 fMaxEvtsInBurstPedRun = fMaxEvtsInBurstPedRunEB; 00194 00195 fMaxStexHocoInStas = fMaxSMEtaInEB; 00196 fMaxStexVecoInStas = fMaxSMPhiInEB; 00197 00198 fMaxStexInStasPlus = fMaxSMInEBPlus; 00199 fMaxStexInStasMinus = fMaxSMInEBMinus; 00200 fMaxStexInStas = fMaxSMInEB; 00201 00202 fMaxStinHocoInStas = fMaxTowEtaInEB; 00203 fMaxStinVecoInStas = fMaxTowPhiInEB; 00204 00205 fMaxStinHocoInStex = fMaxTowEtaInSM; 00206 fMaxStinVecoInStex = fMaxTowPhiInSM; 00207 fMaxStinEcnaInStex = fMaxTowInSM; 00208 00209 fMaxCrysHocoInStin = fMaxCrysEtaInTow; 00210 fMaxCrysVecoInStin = fMaxCrysPhiInTow; 00211 fMaxCrysInStin = fMaxCrysInTow; 00212 00213 fMaxCrysHocoInStex = fMaxCrysEtaInSM; 00214 fMaxCrysVecoInStex = fMaxCrysPhiInSM; 00215 fMaxCrysEcnaInStex = fMaxCrysInSM; 00216 00217 fMaxStinInStex = fMaxTowInSM; 00218 fMaxCrysInStex = fMaxCrysInSM; 00219 } 00220 00221 if(fFlagSubDet == fCodeEE) 00222 { 00223 fMaxSampADC = fMaxSampADCEE; 00224 fMaxEvtsInBurstPedRun = fMaxEvtsInBurstPedRunEE; 00225 00226 fMaxStexHocoInStas = fMaxDeeIXInEE; 00227 fMaxStexVecoInStas = fMaxDeeIYInEE; 00228 00229 fMaxStexInStasPlus = fMaxDeeInEEPlus; 00230 fMaxStexInStasMinus = fMaxDeeInEEMinus; 00231 fMaxStexInStas = fMaxDeeInEE; 00232 00233 fMaxStinHocoInStas = fMaxSCIXInEE; 00234 fMaxStinVecoInStas = fMaxSCIYInEE; 00235 00236 fMaxStinHocoInStex = fMaxSCIXInDee; 00237 fMaxStinVecoInStex = fMaxSCIYInDee; 00238 fMaxStinEcnaInStex = fMaxSCEcnaInDee; 00239 00240 fMaxCrysHocoInStin = fMaxCrysIXInSC; 00241 fMaxCrysVecoInStin = fMaxCrysIYInSC; 00242 fMaxCrysInStin = fMaxCrysInSC; 00243 00244 fMaxCrysHocoInStex = fMaxCrysIXInDee; 00245 fMaxCrysVecoInStex = fMaxCrysIYInDee; 00246 fMaxCrysEcnaInStex = fMaxCrysEcnaInDee; 00247 00248 fMaxStinInStex = fMaxSCForConsInDee; 00249 fMaxCrysInStex = fMaxCrysForConsInDee; 00250 } 00251 } 00252 } // end of SetEcalSubDetector(const TString SubDet) 00253 //====================================================================================== 00254 // 00255 // METHODS TO GET THE PARAMETERS 00256 // 00257 //====================================================================================== 00258 //................................................................. SUBDETECTOR FLAG 00259 TString TEcnaParEcal::GetEcalSubDetector(){return fFlagSubDet;} 00260 //................................................................. BARREL 00261 //------------------------------------------- Max samp ADC 00262 Int_t TEcnaParEcal::MaxSampADCEB() {return fMaxSampADCEB;} // maximum number of samples ADC for EB 00263 //------------------------------------------- Max number of events in Ped runs (for each gain) 00264 Int_t TEcnaParEcal::MaxEvtsInBurstPedRunEB(){return fMaxEvtsInBurstPedRunEB;} 00265 //------------------------------------------- Max SM in barrel 00266 Int_t TEcnaParEcal::MaxSMEtaInEB() {return fMaxSMEtaInEB;} // maximum number of SMs in eta in EB 00267 Int_t TEcnaParEcal::MaxSMPhiInEB() {return fMaxSMPhiInEB;} // maximum number of SMs in phi in EB 00268 00269 Int_t TEcnaParEcal::MaxSMInEBPlus() {return fMaxSMInEBPlus;} // maximum number of SMs in the EB+ 00270 Int_t TEcnaParEcal::MaxSMInEBMinus(){return fMaxSMInEBMinus;} // maximum number of SMs in the EB- 00271 Int_t TEcnaParEcal::MaxSMInEB() {return fMaxSMInEB;} // maximum number of SMs in EB 00272 //------------------------------------------- Max tow in EB 00273 Int_t TEcnaParEcal::MaxTowEtaInEB(){return fMaxTowEtaInEB;} // maximum number of towers in eta in EB 00274 Int_t TEcnaParEcal::MaxTowPhiInEB(){return fMaxTowPhiInEB;} // maximum number of towers in phi in EB 00275 //------------------------------------------- Max tow in SM 00276 Int_t TEcnaParEcal::MaxTowEtaInSM() {return fMaxTowEtaInSM;} // maximum number of towers in eta in SM 00277 Int_t TEcnaParEcal::MaxTowPhiInSM() {return fMaxTowPhiInSM;} // maximum number of towers in phi in SM 00278 Int_t TEcnaParEcal::MaxTowInSM() {return fMaxTowInSM;} // maximum number of towers in SM 00279 //------------------------------------------- Max Crys in tower 00280 Int_t TEcnaParEcal::MaxCrysEtaInTow(){return fMaxCrysEtaInTow;} // maximum number of crystals in eta a tower 00281 Int_t TEcnaParEcal::MaxCrysPhiInTow(){return fMaxCrysPhiInTow;} // maximum number of crystals in phi in a tower 00282 Int_t TEcnaParEcal::MaxCrysInTow() {return fMaxCrysInTow;} // maximum number of crystals in a tower 00283 //------------------------------------------- Max crys in SM 00284 Int_t TEcnaParEcal::MaxCrysEtaInSM() {return fMaxCrysEtaInSM;} // maximum number of crystals in eta in SM 00285 Int_t TEcnaParEcal::MaxCrysPhiInSM() {return fMaxCrysPhiInSM;} // maximum number of crystals in phi in SM 00286 Int_t TEcnaParEcal::MaxCrysInSM() {return fMaxCrysInSM;} // maximum number of crystals in SM 00287 00288 //................................................................. ENDCAP 00289 //------------------------------------------- Max samp ADC 00290 Int_t TEcnaParEcal::MaxSampADCEE(){return fMaxSampADCEE;} // maximum number of samples ADC for EE 00291 //------------------------------------------- Max number of events in Ped runs (for each gain) 00292 Int_t TEcnaParEcal::MaxEvtsInBurstPedRunEE(){return fMaxEvtsInBurstPedRunEE;} 00293 //------------------------------------------- Max Dee in Endcap 00294 Int_t TEcnaParEcal::MaxDeeIXInEE() {return fMaxDeeIXInEE;} // maximum number of dees in IX in EE 00295 Int_t TEcnaParEcal::MaxDeeIYInEE() {return fMaxDeeIYInEE;} // maximum number of dees in IY in EE 00296 00297 Int_t TEcnaParEcal::MaxDeeInEEPlus() {return fMaxDeeInEEPlus;} // maximum number of dees in EE+ 00298 Int_t TEcnaParEcal::MaxDeeInEEMinus(){return fMaxDeeInEEMinus;} // maximum number of dees in EE- 00299 Int_t TEcnaParEcal::MaxDeeInEE() {return fMaxDeeInEE;} // maximum number of dees in EE 00300 //------------------------------------------- Max SC in EE 00301 Int_t TEcnaParEcal::MaxSCIXInEE(){return fMaxSCIXInEE;} // maximum number of SC's in eta in EE 00302 Int_t TEcnaParEcal::MaxSCIYInEE(){return fMaxSCIYInEE;} // maximum number of SC's in phi in EE 00303 //------------------------------------------- Max SC in Dee 00304 Int_t TEcnaParEcal::MaxSCIXInDee() {return fMaxSCIXInDee;} // maximum number of SCs in IX in Dee 00305 Int_t TEcnaParEcal::MaxSCIYInDee() {return fMaxSCIYInDee;} // maximum number of SCs in IY in Dee 00306 Int_t TEcnaParEcal::MaxSCEcnaInDee() {return fMaxSCEcnaInDee;} // maximum number of SCs in the Dee matrix 00307 Int_t TEcnaParEcal::MaxSCForConsInDee(){return fMaxSCForConsInDee;} // max nb of crystals for construction in Dee 00308 //------------------------------------------- Max Crys in SC 00309 Int_t TEcnaParEcal::MaxCrysIXInSC(){return fMaxCrysIXInSC;} // maximum number of crystals in IX in a SC 00310 Int_t TEcnaParEcal::MaxCrysIYInSC(){return fMaxCrysIYInSC;} // maximum number of crystals in IY in a SC 00311 Int_t TEcnaParEcal::MaxCrysInSC() {return fMaxCrysInSC;} // maximum number of crystals in a SC 00312 //------------------------------------------- Max crys in Dee 00313 Int_t TEcnaParEcal::MaxCrysIXInDee() {return fMaxCrysIXInDee;} // max nb of crystals in IX in Dee 00314 Int_t TEcnaParEcal::MaxCrysIYInDee() {return fMaxCrysIYInDee;} // max nb of crystals in IY in Dee 00315 Int_t TEcnaParEcal::MaxCrysEcnaInDee() {return fMaxCrysEcnaInDee;} // max nb of crystals in Dee matrix 00316 Int_t TEcnaParEcal::MaxCrysForConsInDee(){return fMaxCrysForConsInDee;} // max nb of crystals for construction in Dee 00317 //------------------------------------------- Max DS in EE 00318 Int_t TEcnaParEcal::MaxDSInEE(){return fMaxDSInEE;} 00319 //------------------------------------------- Not connected and not complete SCs 00320 Int_t TEcnaParEcal::NumberOfNotConnectedSCs(){return fNumberOfNotConnectedSCs;} 00321 Int_t TEcnaParEcal::NumberOfNotCompleteSCs() {return fNumberOfNotCompleteSCs;} 00322 00323 //................................................................. Stas (current Subdetector) 00324 //------------------------------------------- Max samp ADC 00325 Int_t TEcnaParEcal::MaxSampADC() {return fMaxSampADC;} // max number of samples ADC 00326 //------------------------------------------- Max number of events in Ped runs (for each gain) 00327 Int_t TEcnaParEcal::MaxEvtsInBurstPedRun(){return fMaxEvtsInBurstPedRun;} 00328 //------------------------------------------- Max Stex in Stas 00329 Int_t TEcnaParEcal::MaxStexHocoInStas() {return fMaxStexHocoInStas;} // max number of Stexs in Hoco in Stas+ 00330 Int_t TEcnaParEcal::MaxStexVecoInStas() {return fMaxStexVecoInStas;} // max number of Stexs in Veco in Stas+ 00331 00332 Int_t TEcnaParEcal::MaxStexInStasPlus() {return fMaxStexInStasPlus;} // max number of Stexs in Stas+ 00333 Int_t TEcnaParEcal::MaxStexInStasMinus() {return fMaxStexInStasMinus;} // max number of Stexs in Stas- 00334 Int_t TEcnaParEcal::MaxStexInStas() {return fMaxStexInStas;} // max number of Stexs in Stas 00335 //------------------------------------------- Max Stin in Stas 00336 Int_t TEcnaParEcal::MaxStinHocoInStas() {return fMaxStinHocoInStas;} // maximum number of Stin's in Hoco in Stas 00337 Int_t TEcnaParEcal::MaxStinVecoInStas() {return fMaxStinVecoInStas;} // maximum number of Stin's in Veco in Stas 00338 //------------------------------------------- Max Stin in Stex 00339 Int_t TEcnaParEcal::MaxStinHocoInStex(){return fMaxStinHocoInStex;} // max number of Stins in Hoco in a Stex 00340 Int_t TEcnaParEcal::MaxStinVecoInStex(){return fMaxStinVecoInStex;} // max number of Stins in Veco in a Stex 00341 Int_t TEcnaParEcal::MaxStinEcnaInStex(){return fMaxStinEcnaInStex;} // max number of Stins in "ECNA matrix" Stex 00342 Int_t TEcnaParEcal::MaxStinInStex() {return fMaxStinInStex;} // max number of Stins in Stex 00343 00344 //------------------------------------------- Max Crys in Stin 00345 Int_t TEcnaParEcal::MaxCrysHocoInStin(){return fMaxCrysHocoInStin;} // max number of crystals in Hoco in a Stin 00346 Int_t TEcnaParEcal::MaxCrysVecoInStin(){return fMaxCrysVecoInStin;} // max number of crystals in Veco in a Stin 00347 Int_t TEcnaParEcal::MaxCrysInStin() {return fMaxCrysInStin;} // max number of crystals in a Stin 00348 //------------------------------------------- Max crys in Stex 00349 Int_t TEcnaParEcal::MaxCrysHocoInStex(){return fMaxCrysHocoInStex;} // max number of crystals in Hoco in a Stex 00350 Int_t TEcnaParEcal::MaxCrysVecoInStex(){return fMaxCrysVecoInStex;} // max number of crystals in Veco in a Stex 00351 Int_t TEcnaParEcal::MaxCrysEcnaInStex(){return fMaxCrysEcnaInStex;} // max number of crystals in "ECNA matrix" Stex 00352 Int_t TEcnaParEcal::MaxCrysInStex() {return fMaxCrysInStex;} // max number of crystals in Stex 00353