CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch12/src/CalibCalorimetry/EcalLaserAnalyzer/interface/TAPD.h

Go to the documentation of this file.
00001 #ifndef TAPD_H
00002 #define TAPD_H
00003 
00004 #include <vector>
00005 
00006 class TMom;
00007 
00008 class TAPD
00009 {
00010 
00011  public:
00012 
00013 
00014   enum outVar { iAPD, iAPDoPN, iAPDoPN0, iAPDoPN1, iTime, iAPDoAPD0, iAPDoAPD1, nOutVar };
00015   
00016   std::vector<double> _apdcuts[2][nOutVar];
00017   std::vector<int> _cutvars[nOutVar];
00018 
00019   TMom *mom[nOutVar];
00020 
00021   // Default Constructor, mainly for Root
00022   TAPD();
00023 
00024   // Destructor: Does nothing
00025   virtual ~TAPD();
00026 
00027   void  init();
00028 
00029   void  setCut(int, double, double);
00030   void  setCut(int , std::vector<int> , std::vector<double> , std::vector<double>);
00031 
00032   void  addEntry(double, double, double, double, double, double, double);
00033   void  addEntry(double, double, double, double, double);
00034 
00035   // Simple 1D cuts on main variable at 2 sigmas
00036   // ===========================================
00037 
00038   void  setAPDCut(double, double);
00039   void  setAPDoPNCut(double, double);
00040   void  setAPDoPN0Cut(double, double);
00041   void  setAPDoPN1Cut(double, double);
00042   void  setTimeCut(double, double);
00043 
00044   // More complicated 2D cuts
00045   // ========================= 
00046   void set2DCut(int, std::vector<double> ,std::vector<double> );
00047   void set2DAPDCut(std::vector<double>,std::vector<double>);
00048   void set2DAPDoPNCut(std::vector<double>,std::vector<double> );
00049   void set2DAPDoPN0Cut(std::vector<double>,std::vector<double> );
00050   void set2DAPDoPN1Cut(std::vector<double>,std::vector<double> );
00051   void set2DAPDoAPD0Cut(std::vector<double>,std::vector<double> );
00052   void set2DAPDoAPD1Cut(std::vector<double>,std::vector<double> );
00053   void set2DTimeCut(std::vector<double>,std::vector<double> );
00054 
00055   std::vector<double> get(int);
00056   std::vector<double> getAPD();
00057   std::vector<double> getAPDoPN();
00058   std::vector<double> getAPDoPN0();
00059   std::vector<double> getAPDoPN1();
00060   std::vector<double> getAPDoAPD0();
00061   std::vector<double> getAPDoAPD1();
00062   std::vector<double> getTime();
00063  
00064 
00065   
00066  public:
00067  
00068   //  ClassDef(TAPD,0)
00069 };
00070 
00071 #endif