Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 11:57:47

0001 #ifndef TAPD_H
0002 #define TAPD_H
0003 
0004 #include <vector>
0005 
0006 class TMom;
0007 
0008 class TAPD {
0009 public:
0010   enum outVar { iAPD, iAPDoPN, iAPDoPN0, iAPDoPN1, iTime, iAPDoAPD0, iAPDoAPD1, nOutVar };
0011 
0012   std::vector<double> _apdcuts[2][nOutVar];
0013   std::vector<int> _cutvars[nOutVar];
0014 
0015   TMom* mom[nOutVar];
0016 
0017   // Default Constructor, mainly for Root
0018   TAPD();
0019 
0020   // Destructor: Does nothing
0021   virtual ~TAPD();
0022 
0023   void init();
0024 
0025   void setCut(int, double, double);
0026   void setCut(int, const std::vector<int>&, const std::vector<double>&, const std::vector<double>&);
0027 
0028   void addEntry(double, double, double, double, double, double, double);
0029   void addEntry(double, double, double, double, double);
0030 
0031   // Simple 1D cuts on main variable at 2 sigmas
0032   // ===========================================
0033 
0034   void setAPDCut(double, double);
0035   void setAPDoPNCut(double, double);
0036   void setAPDoPN0Cut(double, double);
0037   void setAPDoPN1Cut(double, double);
0038   void setTimeCut(double, double);
0039 
0040   // More complicated 2D cuts
0041   // =========================
0042   void set2DCut(int, const std::vector<double>&, const std::vector<double>&);
0043   void set2DAPDCut(const std::vector<double>&, const std::vector<double>&);
0044   void set2DAPDoPNCut(const std::vector<double>&, const std::vector<double>&);
0045   void set2DAPDoPN0Cut(const std::vector<double>&, const std::vector<double>&);
0046   void set2DAPDoPN1Cut(const std::vector<double>&, const std::vector<double>&);
0047   void set2DAPDoAPD0Cut(const std::vector<double>&, const std::vector<double>&);
0048   void set2DAPDoAPD1Cut(const std::vector<double>&, const std::vector<double>&);
0049   void set2DTimeCut(const std::vector<double>&, const std::vector<double>&);
0050 
0051   std::vector<double> get(int);
0052   std::vector<double> getAPD();
0053   std::vector<double> getAPDoPN();
0054   std::vector<double> getAPDoPN0();
0055   std::vector<double> getAPDoPN1();
0056   std::vector<double> getAPDoAPD0();
0057   std::vector<double> getAPDoAPD1();
0058   std::vector<double> getTime();
0059 
0060 public:
0061   //  ClassDef(TAPD,0)
0062 };
0063 
0064 #endif