Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 12:46:30

0001 #ifndef ROOT_TEcnaParEcal
0002 #define ROOT_TEcnaParEcal
0003 
0004 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaObject.h"
0005 
0006 #include <Riostream.h>
0007 #include "TNamed.h"
0008 
0009 ///-----------------------------------------------------------
0010 ///   TEcnaParEcal.h
0011 ///   Update: 05/10/2012
0012 ///   Author:    B.Fabbro (bernard.fabbro@cea.fr)
0013 ///              DSM/IRFU/SPP CEA-Saclay
0014 ///   Copyright: Those valid for CEA sofware
0015 ///
0016 ///   ECNA web page:
0017 ///     http://cms-fabbro.web.cern.ch/cms-fabbro/
0018 ///     cna_new/Correlated_Noise_Analysis/ECNA_main_page.htm
0019 ///-----------------------------------------------------------
0020 ///
0021 ///   Init ECAL Parameter values
0022 ///
0023 
0024 class TEcnaParEcal : public TNamed {
0025 protected:
0026   void Init();
0027 
0028 private:
0029   Int_t fgMaxCar;  // Max nb of caracters for char* or TString
0030   TString fTTBELL;
0031 
0032   Int_t fCnew;  // flags for dynamical allocation
0033   Int_t fCdelete;
0034 
0035   //....... Current subdetector flag and codes
0036 
0037   TString fFlagSubDet;
0038   TString fCodeEB;
0039   TString fCodeEE;
0040 
0041   //....... ECAL parameters
0042 
0043   //.......................... EB
0044 
0045   Int_t fMaxSampADCEB;  // Maximum number of samples ADC
0046 
0047   //  Int_t fMaxEvtsInBurstPedRunEB; // Maximum number of events per burst in Pedestal Runs
0048 
0049   Int_t fMaxSMEtaInEB;  // Maximum number of SMs in eta in EB
0050   Int_t fMaxSMPhiInEB;  // Maximum number of SMs in phi in EB
0051 
0052   Int_t fMaxSMInEBPlus;   // Maximum number of SMs in EB+
0053   Int_t fMaxSMInEBMinus;  // Maximum number of SMs in EB-
0054   Int_t fMaxSMInEB;       // Maximum number of SMs in EB
0055 
0056   Int_t fMaxTowEtaInEB;  // Maximum number of towers in eta in EB
0057   Int_t fMaxTowPhiInEB;  // Maximum number of towers in phi in EB
0058   Int_t fMaxTowInEB;     // Maximum number of towers in EB
0059 
0060   Int_t fMaxTowEtaInSM;  // Maximum number of towers in eta in SM
0061   Int_t fMaxTowPhiInSM;  // Maximum number of towers in phi in SM
0062   Int_t fMaxTowInSM;     // Maximum number of towers in SM
0063                          // ( = fMaxTowEtaInSM*fMaxTowPhiInSM )
0064 
0065   Int_t fMaxCrysEtaInTow;  // Maximum number of crystals in eta in a tower
0066   Int_t fMaxCrysPhiInTow;  // Maximum number of crystals in phi in a tower
0067   Int_t fMaxCrysInTow;     // Maximum number of crystals in a tower
0068                            // ( = fMaxCrysEtaInTow*fMaxCrysPhiInTow )
0069 
0070   Int_t fMaxCrysEtaInSM;  // Maximum number of crystals in eta in SM
0071                           // ( = fMaxTowEtaInSM*fMaxCrysEtaInTow )
0072 
0073   Int_t fMaxCrysPhiInSM;  // Maximum number of crystals in phi in SM
0074                           // ( = fMaxTowPhiInSM*fMaxCrysPhiInTow )
0075 
0076   Int_t fMaxCrysInSM;  // Maximum number of crystals in SM
0077                        // ( = fMaxTowInSM*fMaxCrysInTow )
0078 
0079   //.......................... EE
0080 
0081   Int_t fMaxSampADCEE;  // Maximum number of samples ADC
0082 
0083   //  Int_t fMaxEvtsInBurstPedRunEE; // Maximum number of events per burst in Pedestal Runs
0084 
0085   Int_t fMaxDeeIXInEE;  // Maximum number of Dees in IX in EE
0086   Int_t fMaxDeeIYInEE;  // Maximum number of Dees in IY in EE
0087 
0088   Int_t fMaxDeeInEEPlus;   // Maximum number of Dees in EE+
0089   Int_t fMaxDeeInEEMinus;  // Maximum number of Dees in EE-
0090   Int_t fMaxDeeInEE;       // Maximum number of Dees in EE
0091 
0092   Int_t fMaxSCIXInEE;    // Maximum number of SC's in IX in EE
0093   Int_t fMaxSCIYInEE;    // Maximum number of SC's in IY in EE
0094   Int_t fMaxSCEcnaInEE;  // Maximum number of SC's in the EE matrix
0095 
0096   Int_t fMaxSCIXInDee;       // Maximum number of super-crystals in IX in Dee
0097   Int_t fMaxSCIYInDee;       // Maximum number of super-crystals in IY in Dee
0098   Int_t fMaxSCEcnaInDee;     // Maximum ECNA number of super-crystals in the Dee matrix
0099                              // ( = fMaxSCIXInDee*fMaxSCIYInDee )
0100   Int_t fMaxSCForConsInDee;  // Maximum number of super-crystals for construction in Dee
0101   Int_t fMaxSCForConsInEE;   // Maximum number of super-crystals for construction in EE
0102 
0103   Int_t fMaxCrysIXInSC;  // Maximum number of crystals in IX in a super-crystal
0104   Int_t fMaxCrysIYInSC;  // Maximum number of crystals in IY in a super-crystal
0105   Int_t fMaxCrysInSC;    // Maximum number of crystals in a super-crystal
0106                          // ( = fMaxCrysIXInSC*fMaxCrysIYInSC )
0107 
0108   Int_t fMaxCrysIXInDee;  // Maximum number of crystals in IX in Dee
0109                           // ( = fMaxSCIXInDee*fMaxCrysIXInSC )
0110 
0111   Int_t fMaxCrysIYInDee;  // Maximum number of crystals in IY in Dee
0112                           // ( = fMaxSCIYInDee*fMaxCrysIYInSC )
0113 
0114   Int_t fMaxCrysEcnaInDee;     // Maximum number of crystals in Dee matrix
0115                                // ( = fMaxSCEcnaInDee*fMaxCrysInSC )
0116   Int_t fMaxCrysForConsInDee;  // Maximum number of crystals for construction in Dee
0117                                // ( = fMaxSCForConsInDee*fMaxCrysInSC )
0118 
0119   Int_t fEmptyChannelsForIncompleteSCInDee;             // Total number of empty channels for the incomplete SCs
0120   Int_t fEmptyChannelsInDeeMatrixIncompleteSCIncluded;  // Total number of empty channels in Dee "Ecna" matrix
0121                                                         // (incomplete SCs included)
0122 
0123   Int_t fMaxDSInEEPlus;   // Maximum number of Data Sectors in EE+
0124   Int_t fMaxDSInEEMinus;  // Maximum number of Data Sectors in EE-
0125   Int_t fMaxDSInEE;       // Maximum number of Data Sectors in EE
0126 
0127   Int_t fNumberOfNotConnectedSCs;  // for SCs 182, 178, 207, etc...
0128   Int_t fNumberOfNotCompleteSCs;   // for SCs 161, 216, 224, etc...
0129 
0130   //.......................... Stas (current Subdetector)
0131 
0132   Int_t fMaxSampADC;  // Maximum number of samples ADC
0133 
0134   //  Int_t fMaxEvtsInBurstPedRun; // Maximum number of events per burst in Pedestal Runs
0135 
0136   Int_t fMaxStexHocoInStas;   // Maximum number of Stex's in Hoco in Stas
0137   Int_t fMaxStexVecoInStas;   // Maximum number of Stex's in Veco in Stas
0138   Int_t fMaxStexInStasPlus;   // Maximum number of Stex's in Stas+
0139   Int_t fMaxStexInStasMinus;  // Maximum number of Stex's in Stas-
0140   Int_t fMaxStexInStas;       // Maximum number of Stex's in Stas
0141 
0142   Int_t fMaxStinHocoInStas;  // Maximum number of Stin's in Hoco in Stas
0143   Int_t fMaxStinVecoInStas;  // Maximum number of Stin's in Veco in Stas
0144   Int_t fMaxStinEcnaInStas;  // Maximum number of Stin's in Stas
0145 
0146   Int_t fMaxStinHocoInStex;  // Maximum number of Stin's in Hoco in a Stex
0147   Int_t fMaxStinVecoInStex;  // Maximum number of Stin's in Veco in a Stex
0148   Int_t fMaxStinEcnaInStex;  // Maximum number of Stin's in a Stex ("Ecna" Stex matrix for Dee)
0149                              // ( = fMaxStinHocoInStex*fMaxStinVecoInStex )
0150 
0151   Int_t fMaxCrysHocoInStin;  // Maximum number of crystals in Hoco in a Stin
0152   Int_t fMaxCrysVecoInStin;  // Maximum number of crystals in Veco in a Stin
0153   Int_t fMaxCrysInStin;      // Maximum number of crystals in a Stin
0154                              // ( = fMaxCrysHocoInStin*fMaxCrysVecoInStin )
0155 
0156   Int_t fMaxCrysHocoInStex;  // Maximum number of crystals in Hoco in a Stex
0157                              // ( = fMaxStinHocoInStex*fMaxCrysHocoInStin )
0158 
0159   Int_t fMaxCrysVecoInStex;  // Maximum number of crystals in Veco in a Stex
0160                              // ( = fMaxStinVecoInStex*fMaxCrysVecoInStin )
0161 
0162   Int_t fMaxCrysEcnaInStex;  // Maximum number of crystals in a ECNA matrix Stex
0163                              // ( = fMaxStinEcnaInStex*fMaxCrysInStin )
0164 
0165   Int_t fMaxStinInStex;  // EB: Maximum number of towers in SM (= fMaxStinEcnaInStex = fMaxTowInSM)
0166                          // EE: Maximum number of SC for Construction in Dee (= fMaxSCForConsInDee)
0167 
0168   Int_t fMaxCrysInStex;  // EB: Maximum number of crystals in SM (= fMaxCrysEcnaInStex = fMaxCrysInSM)
0169                          // EE: Maximum number of crystals for Construction in Dee (= fMaxCrysForConsInDee)
0170 
0171   //  Int_t fMaxStinForConsInStas; // Maximum number of towers in EB
0172   // or Maximum number of SC for construction in EE
0173 
0174   //------------------------------- methods
0175 
0176 public:
0177   TEcnaParEcal();
0178   TEcnaParEcal(const TString&);
0179   TEcnaParEcal(TEcnaObject*, const TString&);
0180   ~TEcnaParEcal() override;
0181 
0182   void SetEcalSubDetector(const TString&);
0183   TString GetEcalSubDetector();
0184 
0185   //............................. EB
0186   Int_t MaxSampADCEB();
0187   //  Int_t MaxEvtsInBurstPedRunEB();
0188 
0189   Int_t MaxSMEtaInEB();
0190   Int_t MaxSMPhiInEB();
0191 
0192   Int_t MaxSMInEBPlus();
0193   Int_t MaxSMInEBMinus();
0194   Int_t MaxSMInEB();
0195 
0196   Int_t MaxTowEtaInEB();
0197   Int_t MaxTowPhiInEB();
0198   Int_t MaxTowInEB();
0199 
0200   Int_t MaxTowEtaInSM();
0201   Int_t MaxTowPhiInSM();
0202   Int_t MaxTowInSM();
0203 
0204   Int_t MaxCrysEtaInTow();
0205   Int_t MaxCrysPhiInTow();
0206   Int_t MaxCrysInTow();
0207 
0208   Int_t MaxCrysEtaInSM();
0209   Int_t MaxCrysPhiInSM();
0210   Int_t MaxCrysInSM();
0211 
0212   //............................. EE
0213   Int_t MaxSampADCEE();
0214   //  Int_t MaxEvtsInBurstPedRunEE();
0215 
0216   Int_t MaxDeeIXInEE();
0217   Int_t MaxDeeIYInEE();
0218 
0219   Int_t MaxDeeInEEPlus();
0220   Int_t MaxDeeInEEMinus();
0221   Int_t MaxDeeInEE();
0222 
0223   Int_t MaxSCIXInEE();
0224   Int_t MaxSCIYInEE();
0225   Int_t MaxSCEcnaInEE();  // default for MaxSCInEE()
0226   Int_t MaxSCInEE();
0227   Int_t MaxSCForConsInEE();
0228 
0229   Int_t MaxSCIXInDee();
0230   Int_t MaxSCIYInDee();
0231   Int_t MaxSCEcnaInDee();  // default for MaxSCInDee()
0232   Int_t MaxSCInDee();
0233   Int_t MaxSCForConsInDee();
0234 
0235   Int_t MaxCrysIXInSC();
0236   Int_t MaxCrysIYInSC();
0237   Int_t MaxCrysInSC();
0238 
0239   Int_t MaxCrysIXInDee();
0240   Int_t MaxCrysIYInDee();
0241   Int_t MaxCrysEcnaInDee();  // default for MaxCrysInDee()
0242   Int_t MaxCrysInDee();
0243   Int_t MaxCrysForConsInDee();
0244   Int_t EmptyChannelsInDeeMatrixIncompleteSCIncluded();
0245 
0246   Int_t MaxDSInEE();
0247 
0248   Int_t NumberOfNotConnectedSCs();
0249   Int_t NumberOfNotCompleteSCs();
0250 
0251   //............................. Current subdetector (Stin-Stex-Stas)
0252   Int_t MaxSampADC();
0253 
0254   Int_t MaxStexHocoInStas();
0255   Int_t MaxStexVecoInStas();
0256 
0257   Int_t MaxStexInStasPlus();
0258   Int_t MaxStexInStasMinus();
0259   Int_t MaxStexInStas();
0260 
0261   Int_t MaxStinHocoInStas();
0262   Int_t MaxStinVecoInStas();
0263   Int_t MaxStinEcnaInStas();
0264   //  Int_t MaxStinForConsInStas();
0265 
0266   Int_t MaxStinHocoInStex();
0267   Int_t MaxStinVecoInStex();
0268   Int_t MaxStinEcnaInStex();
0269   Int_t MaxStinInStex();
0270 
0271   Int_t MaxCrysHocoInStex();
0272   Int_t MaxCrysVecoInStex();
0273   Int_t MaxCrysEcnaInStex();
0274   Int_t MaxCrysInStex();
0275 
0276   Int_t MaxCrysHocoInStin();
0277   Int_t MaxCrysVecoInStin();
0278   Int_t MaxCrysInStin();
0279 
0280   ClassDefOverride(TEcnaParEcal, 1)  //Init of ECAL parameters
0281 };
0282 #endif