CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaParEcal.cc

Go to the documentation of this file.
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