CMS 3D CMS Logo

LaserAlignment.h

Go to the documentation of this file.
00001 #ifndef LaserAlignment_LaserAlignment_H
00002 #define LaserAlignment_LaserAlignment_H
00003 
00012 #include <sstream>
00013 
00014 #include "FWCore/Framework/interface/EDProducer.h"
00015 #include "FWCore/Framework/interface/ESHandle.h"
00016 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00017 
00018 #include "Alignment/LaserAlignment/interface/BeamProfileFitter.h"
00019 
00020 #include "Alignment/LaserAlignment/interface/LaserAlignmentPosTEC.h"
00021 #include "Alignment/LaserAlignment/interface/LaserAlignmentNegTEC.h"
00022 #include "Alignment/LaserAlignment/interface/LaserAlignmentTEC2TEC.h"
00023 #include "Alignment/LaserAlignment/interface/AlignmentAlgorithmBW.h"
00024 
00025 #include "Alignment/LaserAlignment/interface/LASvector.h"
00026 #include "Alignment/LaserAlignment/interface/LASvector2D.h"
00027 
00028 #include "DataFormats/Common/interface/DetSetVector.h"
00029 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
00030 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
00031 #include "DataFormats/DetId/interface/DetId.h"
00032 #include "DataFormats/GeometryCommonDetAlgo/interface/ErrorFrameTransformer.h"
00033 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00034 
00035 #include "CondFormats/SiStripObjects/interface/SiStripPedestals.h"
00036 #include "CondFormats/DataRecord/interface/SiStripPedestalsRcd.h"
00037 
00038 #include "Geometry/TrackerGeometryBuilder/interface/StripGeomDetUnit.h"
00039 #include "Geometry/CommonTopologies/interface/StripTopology.h"
00040 
00041 // Alignable Tracker needed to propagate the alignment corrections calculated 
00042 // for the disks down to the lowest levels
00043 #include "Alignment/TrackerAlignment/interface/AlignableTracker.h"
00044 
00045 // LAS container & tool objects
00046 #include "Alignment/LaserAlignment/src/LASGlobalData.cc" // (template)
00047 #include "Alignment/LaserAlignment/src/LASGlobalLoop.h"
00048 #include "Alignment/LaserAlignment/src/LASModuleProfile.h"
00049 #include "Alignment/LaserAlignment/src/LASProfileJudge.h"
00050 #include "Alignment/LaserAlignment/src/LASBarrelAlgorithm.h"
00051 #include "Alignment/LaserAlignment/src/LASEndcapAlgorithm.h"
00052 #include "Alignment/LaserAlignment/src/LASPeakFinder.h"
00053 #include "Alignment/LaserAlignment/src/LASCoordinateSet.h"
00054 #include "Alignment/LaserAlignment/src/LASGeometryUpdater.h"
00055 
00056 
00057 // ROOT
00058 #include "TH1.h"
00059 #include "TObject.h"
00060 class TFile;
00061 class TH1D;
00062 
00063 #include <iostream>
00064 #include <cmath>
00065 
00069 class LaserAlignment : public edm::EDProducer, public TObject {
00070 
00071  public:
00072   typedef std::vector<edm::ParameterSet> Parameters;
00073 
00075   typedef LASvector<double> LASvec;
00076   typedef LASvector2D<double> LASvec2D;
00077 
00079   explicit LaserAlignment(edm::ParameterSet const& theConf);
00081   ~LaserAlignment();
00082   
00084   virtual void beginJob(const edm::EventSetup&);
00085 
00087   virtual void produce(edm::Event& theEvent, edm::EventSetup const& theSetup);
00088 
00089   // end job
00090   virtual void endJob();
00091 
00092  private:
00093 
00095   double angle(double theAngle);
00096 
00098   std::vector<int> checkBeam(std::vector<std::string>::const_iterator iHistName, std::map<std::string, std::pair<DetId, TH1D*> >::iterator iHist);
00099 
00101   void closeRootFile();
00102 
00104   void fillAdcCounts(TH1D * theHistogram, DetId theDetId,
00105                      edm::DetSet<SiStripRawDigi>::const_iterator digiRangeIterator,
00106                      edm::DetSet<SiStripRawDigi>::const_iterator digiRangeIteratorEnd,
00107                      LASModuleProfile& theProfile );
00108 
00110   void initHistograms();
00111 
00113   void fillPedestalProfiles( edm::ESHandle<SiStripPedestals>&  );
00114 
00116   bool isTECBeam( void );
00117   bool isATBeam( void );
00118 
00119   // return the approximate beam position offset in TOB for the profileJudge
00120   int getTOBProfileOffset( int det, int beam, int pos );
00121   
00123   void trackerStatistics(edm::Event const& theEvent, edm::EventSetup const& theSetup);
00124 
00126   void fit(edm::EventSetup const& theSetup);
00127 
00129   void alignmentAlgorithm(edm::ParameterSet const& theAlgorithmConf, 
00130                           AlignableTracker * theAlignableTracker);
00131     
00132 
00133  private:
00134 
00135   // hard coded detIds
00136   void fillDetectorId( void );
00137 
00138   // convert an angle in the [-pi,pi] range to the [0,2*pi] range
00139   double ConvertAngle( double );
00140 
00141   // fills a LASGlobalData<LASCoordinateSet> with nominal module positions
00142   void CalculateNominalCoordinates( void );
00143 
00144 
00145   int theEvents;
00146   bool theDoPedestalSubtraction;
00147   bool enableJudgeZeroFilter;
00148   bool theStoreToDB;
00149   bool theSaveHistograms;
00150   int theDebugLevel;
00151   int theNEventsPerLaserIntensity;
00152   int theNEventsForAllIntensities;
00153   int theDoAlignmentAfterNEvents;
00154   bool theAlignPosTEC;
00155   bool theAlignNegTEC;
00156   bool theAlignTEC2TEC;
00157   bool theUseBrunosAlgorithm;
00158   bool theUseNewAlgorithms;
00159   bool theIsGoodFit;
00160   double theSearchPhiTIB;
00161   double theSearchPhiTOB;
00162   double theSearchPhiTEC;
00163   double theSearchZTIB;
00164   double theSearchZTOB;
00165 
00166   double thePhiErrorScalingFactor;
00167 
00168   // digi producer
00169   Parameters theDigiProducersList;
00170 
00171   // this object can judge if 
00172   // a LASModuleProfile is usable for position measurement
00173   LASProfileJudge judge;
00174 
00175   // the detector ids for all the modules
00176   LASGlobalData<int> detectorId;
00177 
00178   // the detector ids for the doubly hit modules in the TECs
00179   std::vector<int> tecDoubleHitDetId;
00180 
00181   // all the 474 profiles for the pedestals
00182   LASGlobalData<LASModuleProfile> pedestalProfiles;
00183 
00184   // for each of the 474 profiles for data:
00185   // one for the current event and one for the collected data
00186   LASGlobalData<LASModuleProfile> currentDataProfiles;
00187   LASGlobalData<LASModuleProfile> collectedDataProfiles;
00188 
00189   // 474 names for retrieving data from the branches
00190   LASGlobalData<std::string> theProfileNames;
00191 
00192   // number of accepted profiles for each module
00193   LASGlobalData<int> numberOfAcceptedProfiles;
00194 
00195   // AT or TEC mode:
00196   // switches depending on which beams (seem to) have fired
00197   // needed to resolve the ambiguity in the TEC Ring4
00198   //  bool isTECMode;
00199   //  bool isATMode;
00200 
00201   // hit map for the current event (int=0,1)
00202   // which is needed for branching into AT or TEC mode
00203   LASGlobalData<int> isAcceptedProfile;
00204 
00205   // histograms for the summed profiles;
00206   // these are needed for the fitting procedure (done by ROOT)
00207   LASGlobalData<TH1D*> summedHistograms;
00208 
00209   // container for nominal module positions
00210   LASGlobalData<LASCoordinateSet> nominalCoordinates;
00211 
00212   // a class for easy looping over LASGlobalData objects,
00213   // avoids nested for-statements
00214   LASGlobalLoop moduleLoop;
00215 
00216   // Tree stuff
00217   TFile * theFile;
00218   TDirectory* singleModulesDir;
00219   int theCompression;
00220   std::string theFileName;
00221 
00222   // parameter set for BeamProfileFitter
00223   edm::ParameterSet theBeamFitPS;
00224 
00225   // parameter set for the AlignmentAlgorithm
00226   edm::ParameterSet theAlignmentAlgorithmPS;
00227 
00228   // minimum number of AdcCounts to fill
00229   int theMinAdcCounts;
00230 
00231   // vector with HistogramNames and the map with a pair<DetId, TH1D*> for each beam
00232   std::vector<std::string> theHistogramNames;
00233   std::map<std::string, std::pair<DetId, TH1D*> > theHistograms;
00234 
00235   // vectors to store the Phi positions of the
00236   // fitted laser beams plus the error on Phi
00237   std::vector<double> theLaserPhi;
00238   std::vector<double> theLaserPhiError;
00239 
00240   // counter for the iterations
00241   int theNumberOfIterations;
00242   // counter for the number of Alignment Iterations
00243   int theNumberOfAlignmentIterations;
00244 
00245   // the Beam Profile Fitter
00246   BeamProfileFitter * theBeamFitter;
00247 
00248   // the alignable Tracker parts
00249   LaserAlignmentPosTEC * theLASAlignPosTEC;
00250   LaserAlignmentNegTEC * theLASAlignNegTEC;
00251   LaserAlignmentTEC2TEC * theLASAlignTEC2TEC;
00252 
00254   AlignmentAlgorithmBW * theAlignmentAlgorithmBW;
00256   bool theUseBSFrame;
00257   // the "barrel" algorithm
00258   LASBarrelAlgorithm barrelAlgorithm;
00259   // the new endcap algorithm
00260   LASEndcapAlgorithm endcapAlgorithm;
00261 
00262   // the map to store digis for cluster creation
00263   std::map<DetId, std::vector<SiStripRawDigi> > theDigiStore;
00264   // map to store temporary the LASBeamProfileFits
00265   std::map<std::string, std::vector<LASBeamProfileFit> > theBeamProfileFitStore;
00266 
00267   // the vector which contains the Digis
00268   std::vector<edm::DetSet<SiStripRawDigi> > theDigiVector;
00269 
00270   // tracker geometry;
00271   edm::ESHandle<GeometricDet> gD;
00272   edm::ESHandle<TrackerGeometry> theTrackerGeometry;
00273 
00274 
00275 /*  edm::ESHandle<DDCompactView> cpv;
00276   edm::ESHandle<GeometricDet> gD;
00277   
00278   boost::shared_ptr<TrackerGeometry> theTrackerGeometry;
00279 */
00280   // alignable tracker
00281   AlignableTracker * theAlignableTracker;
00282 
00283   std::string theAlignRecordName, theErrorRecordName;
00284 
00285   // monitor histograms
00286 
00287   /* Laser Beams in TEC+ */
00288   // Adc counts for Beam 0 in Ring 4
00289   TH1D * theBeam0Ring4Disc1PosAdcCounts;
00290   TH1D * theBeam0Ring4Disc2PosAdcCounts;
00291   TH1D * theBeam0Ring4Disc3PosAdcCounts;
00292   TH1D * theBeam0Ring4Disc4PosAdcCounts;
00293   TH1D * theBeam0Ring4Disc5PosAdcCounts;
00294   TH1D * theBeam0Ring4Disc6PosAdcCounts;
00295   TH1D * theBeam0Ring4Disc7PosAdcCounts;
00296   TH1D * theBeam0Ring4Disc8PosAdcCounts;
00297   TH1D * theBeam0Ring4Disc9PosAdcCounts;
00298 
00299   // Adc counts for Beam 1 in Ring 4
00300   TH1D * theBeam1Ring4Disc1PosAdcCounts;
00301   TH1D * theBeam1Ring4Disc2PosAdcCounts;
00302   TH1D * theBeam1Ring4Disc3PosAdcCounts;
00303   TH1D * theBeam1Ring4Disc4PosAdcCounts;
00304   TH1D * theBeam1Ring4Disc5PosAdcCounts;
00305   TH1D * theBeam1Ring4Disc6PosAdcCounts;
00306   TH1D * theBeam1Ring4Disc7PosAdcCounts;
00307   TH1D * theBeam1Ring4Disc8PosAdcCounts;
00308   TH1D * theBeam1Ring4Disc9PosAdcCounts;
00309 
00310   // plots for TEC2TEC
00311   TH1D * theBeam1Ring4Disc1PosTEC2TECAdcCounts;
00312   TH1D * theBeam1Ring4Disc2PosTEC2TECAdcCounts;
00313   TH1D * theBeam1Ring4Disc3PosTEC2TECAdcCounts;
00314   TH1D * theBeam1Ring4Disc4PosTEC2TECAdcCounts;
00315   TH1D * theBeam1Ring4Disc5PosTEC2TECAdcCounts;
00316 
00317   // Adc counts for Beam 2 in Ring 4
00318   TH1D * theBeam2Ring4Disc1PosAdcCounts;
00319   TH1D * theBeam2Ring4Disc2PosAdcCounts;
00320   TH1D * theBeam2Ring4Disc3PosAdcCounts;
00321   TH1D * theBeam2Ring4Disc4PosAdcCounts;
00322   TH1D * theBeam2Ring4Disc5PosAdcCounts;
00323   TH1D * theBeam2Ring4Disc6PosAdcCounts;
00324   TH1D * theBeam2Ring4Disc7PosAdcCounts;
00325   TH1D * theBeam2Ring4Disc8PosAdcCounts;
00326   TH1D * theBeam2Ring4Disc9PosAdcCounts;
00327 
00328   // plots for TEC2TEC
00329   TH1D * theBeam2Ring4Disc1PosTEC2TECAdcCounts;
00330   TH1D * theBeam2Ring4Disc2PosTEC2TECAdcCounts;
00331   TH1D * theBeam2Ring4Disc3PosTEC2TECAdcCounts;
00332   TH1D * theBeam2Ring4Disc4PosTEC2TECAdcCounts;
00333   TH1D * theBeam2Ring4Disc5PosTEC2TECAdcCounts;
00334 
00335   // Adc counts for Beam 3 in Ring 4
00336   TH1D * theBeam3Ring4Disc1PosAdcCounts;
00337   TH1D * theBeam3Ring4Disc2PosAdcCounts;
00338   TH1D * theBeam3Ring4Disc3PosAdcCounts;
00339   TH1D * theBeam3Ring4Disc4PosAdcCounts;
00340   TH1D * theBeam3Ring4Disc5PosAdcCounts;
00341   TH1D * theBeam3Ring4Disc6PosAdcCounts;
00342   TH1D * theBeam3Ring4Disc7PosAdcCounts;
00343   TH1D * theBeam3Ring4Disc8PosAdcCounts;
00344   TH1D * theBeam3Ring4Disc9PosAdcCounts;
00345 
00346   // Adc counts for Beam 4 in Ring 4
00347   TH1D * theBeam4Ring4Disc1PosAdcCounts;
00348   TH1D * theBeam4Ring4Disc2PosAdcCounts;
00349   TH1D * theBeam4Ring4Disc3PosAdcCounts;
00350   TH1D * theBeam4Ring4Disc4PosAdcCounts;
00351   TH1D * theBeam4Ring4Disc5PosAdcCounts;
00352   TH1D * theBeam4Ring4Disc6PosAdcCounts;
00353   TH1D * theBeam4Ring4Disc7PosAdcCounts;
00354   TH1D * theBeam4Ring4Disc8PosAdcCounts;
00355   TH1D * theBeam4Ring4Disc9PosAdcCounts;
00356 
00357   // plots for TEC2TEC
00358   TH1D * theBeam4Ring4Disc1PosTEC2TECAdcCounts;
00359   TH1D * theBeam4Ring4Disc2PosTEC2TECAdcCounts;
00360   TH1D * theBeam4Ring4Disc3PosTEC2TECAdcCounts;
00361   TH1D * theBeam4Ring4Disc4PosTEC2TECAdcCounts;
00362   TH1D * theBeam4Ring4Disc5PosTEC2TECAdcCounts;
00363 
00364   // Adc counts for Beam 5 in Ring 4
00365   TH1D * theBeam5Ring4Disc1PosAdcCounts;
00366   TH1D * theBeam5Ring4Disc2PosAdcCounts;
00367   TH1D * theBeam5Ring4Disc3PosAdcCounts;
00368   TH1D * theBeam5Ring4Disc4PosAdcCounts;
00369   TH1D * theBeam5Ring4Disc5PosAdcCounts;
00370   TH1D * theBeam5Ring4Disc6PosAdcCounts;
00371   TH1D * theBeam5Ring4Disc7PosAdcCounts;
00372   TH1D * theBeam5Ring4Disc8PosAdcCounts;
00373   TH1D * theBeam5Ring4Disc9PosAdcCounts;
00374 
00375   // Adc counts for Beam 6 in Ring 4
00376   TH1D * theBeam6Ring4Disc1PosAdcCounts;
00377   TH1D * theBeam6Ring4Disc2PosAdcCounts;
00378   TH1D * theBeam6Ring4Disc3PosAdcCounts;
00379   TH1D * theBeam6Ring4Disc4PosAdcCounts;
00380   TH1D * theBeam6Ring4Disc5PosAdcCounts;
00381   TH1D * theBeam6Ring4Disc6PosAdcCounts;
00382   TH1D * theBeam6Ring4Disc7PosAdcCounts;
00383   TH1D * theBeam6Ring4Disc8PosAdcCounts;
00384   TH1D * theBeam6Ring4Disc9PosAdcCounts;
00385 
00386   // plots for TEC2TEC
00387   TH1D * theBeam6Ring4Disc1PosTEC2TECAdcCounts;
00388   TH1D * theBeam6Ring4Disc2PosTEC2TECAdcCounts;
00389   TH1D * theBeam6Ring4Disc3PosTEC2TECAdcCounts;
00390   TH1D * theBeam6Ring4Disc4PosTEC2TECAdcCounts;
00391   TH1D * theBeam6Ring4Disc5PosTEC2TECAdcCounts;
00392 
00393   // Adc counts for Beam 7 in Ring 4
00394   TH1D * theBeam7Ring4Disc1PosAdcCounts;
00395   TH1D * theBeam7Ring4Disc2PosAdcCounts;
00396   TH1D * theBeam7Ring4Disc3PosAdcCounts;
00397   TH1D * theBeam7Ring4Disc4PosAdcCounts;
00398   TH1D * theBeam7Ring4Disc5PosAdcCounts;
00399   TH1D * theBeam7Ring4Disc6PosAdcCounts;
00400   TH1D * theBeam7Ring4Disc7PosAdcCounts;
00401   TH1D * theBeam7Ring4Disc8PosAdcCounts;
00402   TH1D * theBeam7Ring4Disc9PosAdcCounts;
00403 
00404   // plots for TEC2TEC
00405   TH1D * theBeam7Ring4Disc1PosTEC2TECAdcCounts;
00406   TH1D * theBeam7Ring4Disc2PosTEC2TECAdcCounts;
00407   TH1D * theBeam7Ring4Disc3PosTEC2TECAdcCounts;
00408   TH1D * theBeam7Ring4Disc4PosTEC2TECAdcCounts;
00409   TH1D * theBeam7Ring4Disc5PosTEC2TECAdcCounts;
00410 
00411   // Adc counts for Beam 0 in Ring 6
00412   TH1D * theBeam0Ring6Disc1PosAdcCounts;
00413   TH1D * theBeam0Ring6Disc2PosAdcCounts;
00414   TH1D * theBeam0Ring6Disc3PosAdcCounts;
00415   TH1D * theBeam0Ring6Disc4PosAdcCounts;
00416   TH1D * theBeam0Ring6Disc5PosAdcCounts;
00417   TH1D * theBeam0Ring6Disc6PosAdcCounts;
00418   TH1D * theBeam0Ring6Disc7PosAdcCounts;
00419   TH1D * theBeam0Ring6Disc8PosAdcCounts;
00420   TH1D * theBeam0Ring6Disc9PosAdcCounts;
00421 
00422   // Adc counts for Beam 1 in Ring 6
00423   TH1D * theBeam1Ring6Disc1PosAdcCounts;
00424   TH1D * theBeam1Ring6Disc2PosAdcCounts;
00425   TH1D * theBeam1Ring6Disc3PosAdcCounts;
00426   TH1D * theBeam1Ring6Disc4PosAdcCounts;
00427   TH1D * theBeam1Ring6Disc5PosAdcCounts;
00428   TH1D * theBeam1Ring6Disc6PosAdcCounts;
00429   TH1D * theBeam1Ring6Disc7PosAdcCounts;
00430   TH1D * theBeam1Ring6Disc8PosAdcCounts;
00431   TH1D * theBeam1Ring6Disc9PosAdcCounts;
00432 
00433   // Adc counts for Beam 2 in Ring 6
00434   TH1D * theBeam2Ring6Disc1PosAdcCounts;
00435   TH1D * theBeam2Ring6Disc2PosAdcCounts;
00436   TH1D * theBeam2Ring6Disc3PosAdcCounts;
00437   TH1D * theBeam2Ring6Disc4PosAdcCounts;
00438   TH1D * theBeam2Ring6Disc5PosAdcCounts;
00439   TH1D * theBeam2Ring6Disc6PosAdcCounts;
00440   TH1D * theBeam2Ring6Disc7PosAdcCounts;
00441   TH1D * theBeam2Ring6Disc8PosAdcCounts;
00442   TH1D * theBeam2Ring6Disc9PosAdcCounts;
00443 
00444   // Adc counts for Beam 3 in Ring 6
00445   TH1D * theBeam3Ring6Disc1PosAdcCounts;
00446   TH1D * theBeam3Ring6Disc2PosAdcCounts;
00447   TH1D * theBeam3Ring6Disc3PosAdcCounts;
00448   TH1D * theBeam3Ring6Disc4PosAdcCounts;
00449   TH1D * theBeam3Ring6Disc5PosAdcCounts;
00450   TH1D * theBeam3Ring6Disc6PosAdcCounts;
00451   TH1D * theBeam3Ring6Disc7PosAdcCounts;
00452   TH1D * theBeam3Ring6Disc8PosAdcCounts;
00453   TH1D * theBeam3Ring6Disc9PosAdcCounts;
00454 
00455   // Adc counts for Beam 4 in Ring 6
00456   TH1D * theBeam4Ring6Disc1PosAdcCounts;
00457   TH1D * theBeam4Ring6Disc2PosAdcCounts;
00458   TH1D * theBeam4Ring6Disc3PosAdcCounts;
00459   TH1D * theBeam4Ring6Disc4PosAdcCounts;
00460   TH1D * theBeam4Ring6Disc5PosAdcCounts;
00461   TH1D * theBeam4Ring6Disc6PosAdcCounts;
00462   TH1D * theBeam4Ring6Disc7PosAdcCounts;
00463   TH1D * theBeam4Ring6Disc8PosAdcCounts;
00464   TH1D * theBeam4Ring6Disc9PosAdcCounts;
00465 
00466   // Adc counts for Beam 5 in Ring 6
00467   TH1D * theBeam5Ring6Disc1PosAdcCounts;
00468   TH1D * theBeam5Ring6Disc2PosAdcCounts;
00469   TH1D * theBeam5Ring6Disc3PosAdcCounts;
00470   TH1D * theBeam5Ring6Disc4PosAdcCounts;
00471   TH1D * theBeam5Ring6Disc5PosAdcCounts;
00472   TH1D * theBeam5Ring6Disc6PosAdcCounts;
00473   TH1D * theBeam5Ring6Disc7PosAdcCounts;
00474   TH1D * theBeam5Ring6Disc8PosAdcCounts;
00475   TH1D * theBeam5Ring6Disc9PosAdcCounts;
00476 
00477   // Adc counts for Beam 6 in Ring 6
00478   TH1D * theBeam6Ring6Disc1PosAdcCounts;
00479   TH1D * theBeam6Ring6Disc2PosAdcCounts;
00480   TH1D * theBeam6Ring6Disc3PosAdcCounts;
00481   TH1D * theBeam6Ring6Disc4PosAdcCounts;
00482   TH1D * theBeam6Ring6Disc5PosAdcCounts;
00483   TH1D * theBeam6Ring6Disc6PosAdcCounts;
00484   TH1D * theBeam6Ring6Disc7PosAdcCounts;
00485   TH1D * theBeam6Ring6Disc8PosAdcCounts;
00486   TH1D * theBeam6Ring6Disc9PosAdcCounts;
00487 
00488   // Adc counts for Beam 7 in Ring 6
00489   TH1D * theBeam7Ring6Disc1PosAdcCounts;
00490   TH1D * theBeam7Ring6Disc2PosAdcCounts;
00491   TH1D * theBeam7Ring6Disc3PosAdcCounts;
00492   TH1D * theBeam7Ring6Disc4PosAdcCounts;
00493   TH1D * theBeam7Ring6Disc5PosAdcCounts;
00494   TH1D * theBeam7Ring6Disc6PosAdcCounts;
00495   TH1D * theBeam7Ring6Disc7PosAdcCounts;
00496   TH1D * theBeam7Ring6Disc8PosAdcCounts;
00497   TH1D * theBeam7Ring6Disc9PosAdcCounts;
00498 
00499   /* Laser Beams in TEC- */
00500   // Adc counts for Beam 0 in Ring 4
00501   TH1D * theBeam0Ring4Disc1NegAdcCounts;
00502   TH1D * theBeam0Ring4Disc2NegAdcCounts;
00503   TH1D * theBeam0Ring4Disc3NegAdcCounts;
00504   TH1D * theBeam0Ring4Disc4NegAdcCounts;
00505   TH1D * theBeam0Ring4Disc5NegAdcCounts;
00506   TH1D * theBeam0Ring4Disc6NegAdcCounts;
00507   TH1D * theBeam0Ring4Disc7NegAdcCounts;
00508   TH1D * theBeam0Ring4Disc8NegAdcCounts;
00509   TH1D * theBeam0Ring4Disc9NegAdcCounts;
00510 
00511   // Adc counts for Beam 1 in Ring 4
00512   TH1D * theBeam1Ring4Disc1NegAdcCounts;
00513   TH1D * theBeam1Ring4Disc2NegAdcCounts;
00514   TH1D * theBeam1Ring4Disc3NegAdcCounts;
00515   TH1D * theBeam1Ring4Disc4NegAdcCounts;
00516   TH1D * theBeam1Ring4Disc5NegAdcCounts;
00517   TH1D * theBeam1Ring4Disc6NegAdcCounts;
00518   TH1D * theBeam1Ring4Disc7NegAdcCounts;
00519   TH1D * theBeam1Ring4Disc8NegAdcCounts;
00520   TH1D * theBeam1Ring4Disc9NegAdcCounts;
00521 
00522   // plots for TEC2TEC
00523   TH1D * theBeam1Ring4Disc1NegTEC2TECAdcCounts;
00524   TH1D * theBeam1Ring4Disc2NegTEC2TECAdcCounts;
00525   TH1D * theBeam1Ring4Disc3NegTEC2TECAdcCounts;
00526   TH1D * theBeam1Ring4Disc4NegTEC2TECAdcCounts;
00527   TH1D * theBeam1Ring4Disc5NegTEC2TECAdcCounts;
00528 
00529   // Adc counts for Beam 2 in Ring 4
00530   TH1D * theBeam2Ring4Disc1NegAdcCounts;
00531   TH1D * theBeam2Ring4Disc2NegAdcCounts;
00532   TH1D * theBeam2Ring4Disc3NegAdcCounts;
00533   TH1D * theBeam2Ring4Disc4NegAdcCounts;
00534   TH1D * theBeam2Ring4Disc5NegAdcCounts;
00535   TH1D * theBeam2Ring4Disc6NegAdcCounts;
00536   TH1D * theBeam2Ring4Disc7NegAdcCounts;
00537   TH1D * theBeam2Ring4Disc8NegAdcCounts;
00538   TH1D * theBeam2Ring4Disc9NegAdcCounts;
00539 
00540   // plots for TEC2TEC
00541   TH1D * theBeam2Ring4Disc1NegTEC2TECAdcCounts;
00542   TH1D * theBeam2Ring4Disc2NegTEC2TECAdcCounts;
00543   TH1D * theBeam2Ring4Disc3NegTEC2TECAdcCounts;
00544   TH1D * theBeam2Ring4Disc4NegTEC2TECAdcCounts;
00545   TH1D * theBeam2Ring4Disc5NegTEC2TECAdcCounts;
00546 
00547   // Adc counts for Beam 3 in Ring 4
00548   TH1D * theBeam3Ring4Disc1NegAdcCounts;
00549   TH1D * theBeam3Ring4Disc2NegAdcCounts;
00550   TH1D * theBeam3Ring4Disc3NegAdcCounts;
00551   TH1D * theBeam3Ring4Disc4NegAdcCounts;
00552   TH1D * theBeam3Ring4Disc5NegAdcCounts;
00553   TH1D * theBeam3Ring4Disc6NegAdcCounts;
00554   TH1D * theBeam3Ring4Disc7NegAdcCounts;
00555   TH1D * theBeam3Ring4Disc8NegAdcCounts;
00556   TH1D * theBeam3Ring4Disc9NegAdcCounts;
00557 
00558   // Adc counts for Beam 4 in Ring 4
00559   TH1D * theBeam4Ring4Disc1NegAdcCounts;
00560   TH1D * theBeam4Ring4Disc2NegAdcCounts;
00561   TH1D * theBeam4Ring4Disc3NegAdcCounts;
00562   TH1D * theBeam4Ring4Disc4NegAdcCounts;
00563   TH1D * theBeam4Ring4Disc5NegAdcCounts;
00564   TH1D * theBeam4Ring4Disc6NegAdcCounts;
00565   TH1D * theBeam4Ring4Disc7NegAdcCounts;
00566   TH1D * theBeam4Ring4Disc8NegAdcCounts;
00567   TH1D * theBeam4Ring4Disc9NegAdcCounts;
00568 
00569   // plots for TEC2TEC
00570   TH1D * theBeam4Ring4Disc1NegTEC2TECAdcCounts;
00571   TH1D * theBeam4Ring4Disc2NegTEC2TECAdcCounts;
00572   TH1D * theBeam4Ring4Disc3NegTEC2TECAdcCounts;
00573   TH1D * theBeam4Ring4Disc4NegTEC2TECAdcCounts;
00574   TH1D * theBeam4Ring4Disc5NegTEC2TECAdcCounts;
00575 
00576   // Adc counts for Beam 5 in Ring 4
00577   TH1D * theBeam5Ring4Disc1NegAdcCounts;
00578   TH1D * theBeam5Ring4Disc2NegAdcCounts;
00579   TH1D * theBeam5Ring4Disc3NegAdcCounts;
00580   TH1D * theBeam5Ring4Disc4NegAdcCounts;
00581   TH1D * theBeam5Ring4Disc5NegAdcCounts;
00582   TH1D * theBeam5Ring4Disc6NegAdcCounts;
00583   TH1D * theBeam5Ring4Disc7NegAdcCounts;
00584   TH1D * theBeam5Ring4Disc8NegAdcCounts;
00585   TH1D * theBeam5Ring4Disc9NegAdcCounts;
00586 
00587   // Adc counts for Beam 6 in Ring 4
00588   TH1D * theBeam6Ring4Disc1NegAdcCounts;
00589   TH1D * theBeam6Ring4Disc2NegAdcCounts;
00590   TH1D * theBeam6Ring4Disc3NegAdcCounts;
00591   TH1D * theBeam6Ring4Disc4NegAdcCounts;
00592   TH1D * theBeam6Ring4Disc5NegAdcCounts;
00593   TH1D * theBeam6Ring4Disc6NegAdcCounts;
00594   TH1D * theBeam6Ring4Disc7NegAdcCounts;
00595   TH1D * theBeam6Ring4Disc8NegAdcCounts;
00596   TH1D * theBeam6Ring4Disc9NegAdcCounts;
00597 
00598   // plots for TEC2TEC
00599   TH1D * theBeam6Ring4Disc1NegTEC2TECAdcCounts;
00600   TH1D * theBeam6Ring4Disc2NegTEC2TECAdcCounts;
00601   TH1D * theBeam6Ring4Disc3NegTEC2TECAdcCounts;
00602   TH1D * theBeam6Ring4Disc4NegTEC2TECAdcCounts;
00603   TH1D * theBeam6Ring4Disc5NegTEC2TECAdcCounts;
00604 
00605   // Adc counts for Beam 7 in Ring 4
00606   TH1D * theBeam7Ring4Disc1NegAdcCounts;
00607   TH1D * theBeam7Ring4Disc2NegAdcCounts;
00608   TH1D * theBeam7Ring4Disc3NegAdcCounts;
00609   TH1D * theBeam7Ring4Disc4NegAdcCounts;
00610   TH1D * theBeam7Ring4Disc5NegAdcCounts;
00611   TH1D * theBeam7Ring4Disc6NegAdcCounts;
00612   TH1D * theBeam7Ring4Disc7NegAdcCounts;
00613   TH1D * theBeam7Ring4Disc8NegAdcCounts;
00614   TH1D * theBeam7Ring4Disc9NegAdcCounts;
00615 
00616   // plots for TEC2TEC
00617   TH1D * theBeam7Ring4Disc1NegTEC2TECAdcCounts;
00618   TH1D * theBeam7Ring4Disc2NegTEC2TECAdcCounts;
00619   TH1D * theBeam7Ring4Disc3NegTEC2TECAdcCounts;
00620   TH1D * theBeam7Ring4Disc4NegTEC2TECAdcCounts;
00621   TH1D * theBeam7Ring4Disc5NegTEC2TECAdcCounts;
00622 
00623   // Adc counts for Beam 0 in Ring 6
00624   TH1D * theBeam0Ring6Disc1NegAdcCounts;
00625   TH1D * theBeam0Ring6Disc2NegAdcCounts;
00626   TH1D * theBeam0Ring6Disc3NegAdcCounts;
00627   TH1D * theBeam0Ring6Disc4NegAdcCounts;
00628   TH1D * theBeam0Ring6Disc5NegAdcCounts;
00629   TH1D * theBeam0Ring6Disc6NegAdcCounts;
00630   TH1D * theBeam0Ring6Disc7NegAdcCounts;
00631   TH1D * theBeam0Ring6Disc8NegAdcCounts;
00632   TH1D * theBeam0Ring6Disc9NegAdcCounts;
00633 
00634   // Adc counts for Beam 1 in Ring 6
00635   TH1D * theBeam1Ring6Disc1NegAdcCounts;
00636   TH1D * theBeam1Ring6Disc2NegAdcCounts;
00637   TH1D * theBeam1Ring6Disc3NegAdcCounts;
00638   TH1D * theBeam1Ring6Disc4NegAdcCounts;
00639   TH1D * theBeam1Ring6Disc5NegAdcCounts;
00640   TH1D * theBeam1Ring6Disc6NegAdcCounts;
00641   TH1D * theBeam1Ring6Disc7NegAdcCounts;
00642   TH1D * theBeam1Ring6Disc8NegAdcCounts;
00643   TH1D * theBeam1Ring6Disc9NegAdcCounts;
00644 
00645   // Adc counts for Beam 2 in Ring 6
00646   TH1D * theBeam2Ring6Disc1NegAdcCounts;
00647   TH1D * theBeam2Ring6Disc2NegAdcCounts;
00648   TH1D * theBeam2Ring6Disc3NegAdcCounts;
00649   TH1D * theBeam2Ring6Disc4NegAdcCounts;
00650   TH1D * theBeam2Ring6Disc5NegAdcCounts;
00651   TH1D * theBeam2Ring6Disc6NegAdcCounts;
00652   TH1D * theBeam2Ring6Disc7NegAdcCounts;
00653   TH1D * theBeam2Ring6Disc8NegAdcCounts;
00654   TH1D * theBeam2Ring6Disc9NegAdcCounts;
00655 
00656   // Adc counts for Beam 3 in Ring 6
00657   TH1D * theBeam3Ring6Disc1NegAdcCounts;
00658   TH1D * theBeam3Ring6Disc2NegAdcCounts;
00659   TH1D * theBeam3Ring6Disc3NegAdcCounts;
00660   TH1D * theBeam3Ring6Disc4NegAdcCounts;
00661   TH1D * theBeam3Ring6Disc5NegAdcCounts;
00662   TH1D * theBeam3Ring6Disc6NegAdcCounts;
00663   TH1D * theBeam3Ring6Disc7NegAdcCounts;
00664   TH1D * theBeam3Ring6Disc8NegAdcCounts;
00665   TH1D * theBeam3Ring6Disc9NegAdcCounts;
00666 
00667   // Adc counts for Beam 4 in Ring 6
00668   TH1D * theBeam4Ring6Disc1NegAdcCounts;
00669   TH1D * theBeam4Ring6Disc2NegAdcCounts;
00670   TH1D * theBeam4Ring6Disc3NegAdcCounts;
00671   TH1D * theBeam4Ring6Disc4NegAdcCounts;
00672   TH1D * theBeam4Ring6Disc5NegAdcCounts;
00673   TH1D * theBeam4Ring6Disc6NegAdcCounts;
00674   TH1D * theBeam4Ring6Disc7NegAdcCounts;
00675   TH1D * theBeam4Ring6Disc8NegAdcCounts;
00676   TH1D * theBeam4Ring6Disc9NegAdcCounts;
00677 
00678   // Adc counts for Beam 5 in Ring 6
00679   TH1D * theBeam5Ring6Disc1NegAdcCounts;
00680   TH1D * theBeam5Ring6Disc2NegAdcCounts;
00681   TH1D * theBeam5Ring6Disc3NegAdcCounts;
00682   TH1D * theBeam5Ring6Disc4NegAdcCounts;
00683   TH1D * theBeam5Ring6Disc5NegAdcCounts;
00684   TH1D * theBeam5Ring6Disc6NegAdcCounts;
00685   TH1D * theBeam5Ring6Disc7NegAdcCounts;
00686   TH1D * theBeam5Ring6Disc8NegAdcCounts;
00687   TH1D * theBeam5Ring6Disc9NegAdcCounts;
00688 
00689   // Adc counts for Beam 6 in Ring 6
00690   TH1D * theBeam6Ring6Disc1NegAdcCounts;
00691   TH1D * theBeam6Ring6Disc2NegAdcCounts;
00692   TH1D * theBeam6Ring6Disc3NegAdcCounts;
00693   TH1D * theBeam6Ring6Disc4NegAdcCounts;
00694   TH1D * theBeam6Ring6Disc5NegAdcCounts;
00695   TH1D * theBeam6Ring6Disc6NegAdcCounts;
00696   TH1D * theBeam6Ring6Disc7NegAdcCounts;
00697   TH1D * theBeam6Ring6Disc8NegAdcCounts;
00698   TH1D * theBeam6Ring6Disc9NegAdcCounts;
00699 
00700   // Adc counts for Beam 7 in Ring 6
00701   TH1D * theBeam7Ring6Disc1NegAdcCounts;
00702   TH1D * theBeam7Ring6Disc2NegAdcCounts;
00703   TH1D * theBeam7Ring6Disc3NegAdcCounts;
00704   TH1D * theBeam7Ring6Disc4NegAdcCounts;
00705   TH1D * theBeam7Ring6Disc5NegAdcCounts;
00706   TH1D * theBeam7Ring6Disc6NegAdcCounts;
00707   TH1D * theBeam7Ring6Disc7NegAdcCounts;
00708   TH1D * theBeam7Ring6Disc8NegAdcCounts;
00709   TH1D * theBeam7Ring6Disc9NegAdcCounts;
00710 
00711   // TOB Beams
00712   // Adc counts for Beam 0
00713   TH1D * theBeam0TOBPosition1AdcCounts;
00714   TH1D * theBeam0TOBPosition2AdcCounts;
00715   TH1D * theBeam0TOBPosition3AdcCounts;
00716   TH1D * theBeam0TOBPosition4AdcCounts;
00717   TH1D * theBeam0TOBPosition5AdcCounts;
00718   TH1D * theBeam0TOBPosition6AdcCounts;
00719 
00720   // Adc counts for Beam 1
00721   TH1D * theBeam1TOBPosition1AdcCounts;
00722   TH1D * theBeam1TOBPosition2AdcCounts;
00723   TH1D * theBeam1TOBPosition3AdcCounts;
00724   TH1D * theBeam1TOBPosition4AdcCounts;
00725   TH1D * theBeam1TOBPosition5AdcCounts;
00726   TH1D * theBeam1TOBPosition6AdcCounts;
00727 
00728   // Adc counts for Beam 2
00729   TH1D * theBeam2TOBPosition1AdcCounts;
00730   TH1D * theBeam2TOBPosition2AdcCounts;
00731   TH1D * theBeam2TOBPosition3AdcCounts;
00732   TH1D * theBeam2TOBPosition4AdcCounts;
00733   TH1D * theBeam2TOBPosition5AdcCounts;
00734   TH1D * theBeam2TOBPosition6AdcCounts;
00735 
00736   // Adc counts for Beam 3
00737   TH1D * theBeam3TOBPosition1AdcCounts;
00738   TH1D * theBeam3TOBPosition2AdcCounts;
00739   TH1D * theBeam3TOBPosition3AdcCounts;
00740   TH1D * theBeam3TOBPosition4AdcCounts;
00741   TH1D * theBeam3TOBPosition5AdcCounts;
00742   TH1D * theBeam3TOBPosition6AdcCounts;
00743 
00744   // Adc counts for Beam 4
00745   TH1D * theBeam4TOBPosition1AdcCounts;
00746   TH1D * theBeam4TOBPosition2AdcCounts;
00747   TH1D * theBeam4TOBPosition3AdcCounts;
00748   TH1D * theBeam4TOBPosition4AdcCounts;
00749   TH1D * theBeam4TOBPosition5AdcCounts;
00750   TH1D * theBeam4TOBPosition6AdcCounts;
00751 
00752   // Adc counts for Beam 5
00753   TH1D * theBeam5TOBPosition1AdcCounts;
00754   TH1D * theBeam5TOBPosition2AdcCounts;
00755   TH1D * theBeam5TOBPosition3AdcCounts;
00756   TH1D * theBeam5TOBPosition4AdcCounts;
00757   TH1D * theBeam5TOBPosition5AdcCounts;
00758   TH1D * theBeam5TOBPosition6AdcCounts;
00759 
00760   // Adc counts for Beam 6
00761   TH1D * theBeam6TOBPosition1AdcCounts;
00762   TH1D * theBeam6TOBPosition2AdcCounts;
00763   TH1D * theBeam6TOBPosition3AdcCounts;
00764   TH1D * theBeam6TOBPosition4AdcCounts;
00765   TH1D * theBeam6TOBPosition5AdcCounts;
00766   TH1D * theBeam6TOBPosition6AdcCounts;
00767 
00768   // Adc counts for Beam 7
00769   TH1D * theBeam7TOBPosition1AdcCounts;
00770   TH1D * theBeam7TOBPosition2AdcCounts;
00771   TH1D * theBeam7TOBPosition3AdcCounts;
00772   TH1D * theBeam7TOBPosition4AdcCounts;
00773   TH1D * theBeam7TOBPosition5AdcCounts;
00774   TH1D * theBeam7TOBPosition6AdcCounts;
00775 
00776   // TIB Beams
00777   // Adc counts for Beam 0
00778   TH1D * theBeam0TIBPosition1AdcCounts;
00779   TH1D * theBeam0TIBPosition2AdcCounts;
00780   TH1D * theBeam0TIBPosition3AdcCounts;
00781   TH1D * theBeam0TIBPosition4AdcCounts;
00782   TH1D * theBeam0TIBPosition5AdcCounts;
00783   TH1D * theBeam0TIBPosition6AdcCounts;
00784 
00785   // Adc counts for Beam 1
00786   TH1D * theBeam1TIBPosition1AdcCounts;
00787   TH1D * theBeam1TIBPosition2AdcCounts;
00788   TH1D * theBeam1TIBPosition3AdcCounts;
00789   TH1D * theBeam1TIBPosition4AdcCounts;
00790   TH1D * theBeam1TIBPosition5AdcCounts;
00791   TH1D * theBeam1TIBPosition6AdcCounts;
00792 
00793   // Adc counts for Beam 2
00794   TH1D * theBeam2TIBPosition1AdcCounts;
00795   TH1D * theBeam2TIBPosition2AdcCounts;
00796   TH1D * theBeam2TIBPosition3AdcCounts;
00797   TH1D * theBeam2TIBPosition4AdcCounts;
00798   TH1D * theBeam2TIBPosition5AdcCounts;
00799   TH1D * theBeam2TIBPosition6AdcCounts;
00800 
00801   // Adc counts for Beam 3
00802   TH1D * theBeam3TIBPosition1AdcCounts;
00803   TH1D * theBeam3TIBPosition2AdcCounts;
00804   TH1D * theBeam3TIBPosition3AdcCounts;
00805   TH1D * theBeam3TIBPosition4AdcCounts;
00806   TH1D * theBeam3TIBPosition5AdcCounts;
00807   TH1D * theBeam3TIBPosition6AdcCounts;
00808 
00809   // Adc counts for Beam 4
00810   TH1D * theBeam4TIBPosition1AdcCounts;
00811   TH1D * theBeam4TIBPosition2AdcCounts;
00812   TH1D * theBeam4TIBPosition3AdcCounts;
00813   TH1D * theBeam4TIBPosition4AdcCounts;
00814   TH1D * theBeam4TIBPosition5AdcCounts;
00815   TH1D * theBeam4TIBPosition6AdcCounts;
00816 
00817   // Adc counts for Beam 5
00818   TH1D * theBeam5TIBPosition1AdcCounts;
00819   TH1D * theBeam5TIBPosition2AdcCounts;
00820   TH1D * theBeam5TIBPosition3AdcCounts;
00821   TH1D * theBeam5TIBPosition4AdcCounts;
00822   TH1D * theBeam5TIBPosition5AdcCounts;
00823   TH1D * theBeam5TIBPosition6AdcCounts;
00824 
00825   // Adc counts for Beam 6
00826   TH1D * theBeam6TIBPosition1AdcCounts;
00827   TH1D * theBeam6TIBPosition2AdcCounts;
00828   TH1D * theBeam6TIBPosition3AdcCounts;
00829   TH1D * theBeam6TIBPosition4AdcCounts;
00830   TH1D * theBeam6TIBPosition5AdcCounts;
00831   TH1D * theBeam6TIBPosition6AdcCounts;
00832 
00833   // Adc counts for Beam 7
00834   TH1D * theBeam7TIBPosition1AdcCounts;
00835   TH1D * theBeam7TIBPosition2AdcCounts;
00836   TH1D * theBeam7TIBPosition3AdcCounts;
00837   TH1D * theBeam7TIBPosition4AdcCounts;
00838   TH1D * theBeam7TIBPosition5AdcCounts;
00839   TH1D * theBeam7TIBPosition6AdcCounts;
00840 
00841 };
00842 #endif

Generated on Tue Jun 9 17:24:04 2009 for CMSSW by  doxygen 1.5.4