Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ChopEvaluation.h

Go to the documentation of this file.
00001 #ifndef CHOPEVALUATION_H
00002 #define CHOPEVALUATION_H
00003 
00009 
00010 #include "CandDigit/CandDigitHandle.h"
00011 #include "DataUtil/Truthifier.h"
00012 #include <TObject.h>
00013 #include <vector>
00014 
00015 static const int kNProf = 15;
00016 
00017 class profile_element{ 
00018  public:                                        
00019   int i;
00020   float p;
00021 };
00022 
00023 class ChopEvaluation //: public TObject
00024 {
00025  public:
00026   int   fTdcBeg; // TDC time start
00027   int   fTdcEnd; // TDC time stop
00028   int   fPlaneBeg; // start plane
00029   int   fPlaneEnd; // end plane
00030 
00031   double fSigcor;
00032   double fSigcor_cal; // Calorimeter
00033   double fSigcor_calt; // Calorimeter
00034   double fSigcor_fid; // Calorimeter, "fiducial" volume only.
00035   double fMeanTime; // charge-weighted
00036   int    fBigTdc; // Biggest bucket in t-bins
00037   double fBigTdcE; // Size of biggest bucket
00038   int    fBigPlane; // Biggest bucket in t-bins
00039   double fBigPlaneE; // Size of biggest bucket
00040   int    fPlanes; // Total planes hit
00041   int    fStrips; // total strips hit
00042   int    fCalStrips; // total strips hit
00043   int    fDigits; // Total digits
00044   
00045   int    fBestNeutrino1;
00046   int    fBestNeutrino2;
00047 
00048   profile_element fProfile[kNProf];
00049   
00050   // work elements
00051   std::vector<double> fTdcProfile;      
00052   std::vector<double> fPlaneProfile;    
00053   std::vector<double> fNuMatch;         
00054   std::vector<double> fNuMatch_cal;     
00055   std::vector<double> fNuMatch_fid;     
00056   std::vector<double> fNuMatch_calt;    
00057   std::vector<double> fNuMatch_caltfid; 
00058   std::vector<double> fNuMatch_strips;  
00059   std::vector<double> fNuMatch_calstrips;  
00060 
00061 
00062   ChopEvaluation();
00063   void Reset();
00064 
00065   void Evaluate(
00066                 const std::vector<CandDigitHandle>& inList, // digits to evaluate
00067                 const Truthifier& truth,                    // truth.
00068                 const std::vector<int>&    inNeutrinos,     // indecies of neutrinos in truth info
00069                 const std::vector<double>& inNeutrinoTZero, // time of first interaction of each nu
00070                 double inTCut
00071                 );
00072 
00073   //ClassDef(ChopEvaluation,1);
00074 };
00075 
00077 
00078 
00079 class ChopNeutrinoInfo
00080 {
00081  public:
00082   int inu;
00083   float vtxt;
00084   float vtxtdc;
00085   float vtxx;
00086   float vtxy;
00087   float vtxz;
00088 
00089   float enu;   // neutrino energy
00090   float emu; // muon
00091   float eem; // em
00092   float eshw; // shower
00093   float evis;  // shower+muon+em
00094   int   iaction;
00095   float X;
00096   float Y;
00097   float tzero; // time of first hit
00098 
00099   ChopNeutrinoInfo() {
00100     inu=iaction=-1;
00101     vtxt=vtxtdc=vtxx=vtxy=vtxz=999999;
00102     enu=emu=eem=eshw=evis=X=Y=tzero=0;
00103   }
00104   //ClassDef(ChopNeutrinoInfo,1);
00105 };
00106 
00107 class ChopNeutrinoLeaf : public ChopEvaluation, public ChopNeutrinoInfo
00108 {
00109  public:
00110     // Truth:
00111   int   snarl;
00112   float viscal; // of neutrino
00113   float viscalt;
00114   float visfid;
00115   float visfidt;
00116   float sigcorr;
00117   float strips;
00118   float calstrips;
00119 
00120 
00121   int   chop1;
00122   float completet1;
00123   float complete1;
00124   float complete_tot1;
00125   float strips1;
00126   float calstrips1;
00127   float stripsmatch1;
00128   float calstripsmatch1;
00129   float chop1_viscal;
00130   float chop1_viscalt;
00131   float chop1_visfid;
00132   float chop1_sigcorr;
00133   int   chop1_nu;
00134   int   chop1_tdc;
00135   int   chop1_planebeg;
00136   int   chop1_planeend;
00137 
00138 
00139   int   chop2;
00140   float completet2;
00141   float complete2;
00142   float complete_tot2;
00143   float strips2;
00144   float calstrips2;
00145   float stripsmatch2;
00146   float calstripsmatch2;
00147   float chop2_viscal;
00148   float chop2_viscalt;
00149   float chop2_visfid;
00150   float chop2_sigcorr;
00151   int   chop2_nu;
00152   int   chop2_tdc;
00153   int   chop2_planebeg;
00154   int   chop2_planeend;
00155 
00156 
00157 
00158   ChopNeutrinoLeaf() { Reset(); };
00159   void Reset() {
00160     chop1=chop2=-1;
00161     complete1=complete2=0;
00162     completet1=completet2=0;
00163     strips1 = strips2 = 0;
00164     stripsmatch1 = stripsmatch2 = 0;
00165     chop1_viscal = chop2_viscal=0;
00166     chop1_visfid = chop2_visfid = 0;
00167     chop1_nu = chop2_nu = 0;
00168     chop1_tdc = chop2_tdc = 0;
00169   }
00170 
00171 };
00172 
00173 
00174 
00175 
00176 class ChopTreeLeaf : public ChopEvaluation, public ChopNeutrinoInfo
00177 {
00178  public:
00179   int snarl;
00180   int chop;
00181 
00182   // Evalution:
00183   float complete1; // Completeness, fraction, of biggest nu event.
00184   float viscal1; // of neutrino
00185   float viscalt1;
00186   float visfidt1;
00187   float strips1;
00188 
00189   float complete2; // Completeness, fraction, of biggest nu event.
00190   float viscal2; // of neutrino
00191   float viscalt2;
00192   float visfidt2;
00193   float strips2;
00194 
00195   ChopTreeLeaf() { Reset(); };
00196   void Reset() {
00197     snarl = 0;
00198   }
00199 };
00200 
00201 
00202 #endif

Generated on Mon Feb 15 11:06:31 2010 for loon by  doxygen 1.3.9.1