00001 00002 //FCPCFilterModule.cxx 00003 // A first pass Partially and fully contained Filter 00004 // John Chapman chapman@hep.phy.cam.ac.uk 00005 // (Original Code by Caius Howcroft) 00007 #ifndef FCPCFILTERMODULE_H 00008 #define FCPCFILTERMODULE_H 00009 #ifndef JOBCMODULE_H 00010 #include "JobControl/JobCModule.h" 00011 #endif 00012 00013 #include <string> 00014 #include "TString.h" 00015 00016 class TTree; 00017 class TFile; 00018 00019 class FCPCFilterModule : public JobCModule 00020 { 00021 public: 00022 FCPCFilterModule(); 00023 ~FCPCFilterModule(); 00024 00025 public: 00026 // Handle job status changes 00027 void BeginJob(); 00028 void EndJob(); 00029 00030 // Analysis and Reconstruction methods 00031 JobCResult Ana(const MomNavigator* mom); 00032 00033 // Module configuration 00034 const Registry& DefaultConfig() const; 00035 void Config(const Registry& r); 00036 00037 00038 private: 00039 void ResetParams(); 00040 Float_t TimeWalk(float adc); 00041 //Configuration data 00042 bool cDoPC; 00043 bool cDoFC; 00044 bool cDoUC; 00045 bool cDoUp; 00046 std::string cListIn; 00047 double cMinDmxWeight; 00048 double cMinDigitCharge; 00049 double cFidRadius; 00050 double cMinFidCharge; 00051 00052 //Detector config 00053 int cSM1StartPlane; 00054 int cSM1StopPlane; 00055 int cSM2StartPlane; 00056 int cSM2StopPlane; 00057 00058 00059 //Cut config 00060 int cMinPlaneCut; //Min required plane cut 00061 double cMinPlaneCharge; 00062 int cEndPlaneVeto; //The number of planes to veto on 00063 double cEndPlaneVetoCharge; //the cut on charge 00064 double cMaxFidPctChargeCut; 00065 double cMaxRegionSep; //the maximum allowed distance between the mean hit postions in 2 adjacent regions 00066 00067 //output variables 00068 int cMakeTree; //whether or not to make a tree of the results of FCPCFilter 00069 TFile* fFile; 00070 TTree* fTree; 00071 TString fFileName; 00072 //Event Info 00073 int fRun; 00074 int fSnarl; 00075 int fMinPlane; //the max plane used in this module 00076 int fMaxPlane; // the min plane used in this module 00077 double fCharge; //total charge used (see above cuts) 00078 int fNPlane; //Number of planes above some charge treshold 00079 double fFidCharge[8]; //the charge next to each side 00080 double fFidU[12]; //charge weighted mean U position in each side/end region 00081 double fFidV[12]; //charge weighted mean V position in each side/end region 00082 double fFidZ[12]; //charge weighted mean Z position in each side/end region 00083 double fSumFidCharge; //the total charge on all sides 00084 double fChargeInSM1; //the charge within the SM1 fiducial volume 00085 double fChargeInSM2; //the charge within the SM2 fiducial volum 00086 double fSM1begPlaneQ; //the low plane charge (SM1 beg) 00087 double fSM1endPlaneQ; //the SM1 end plane charge 00088 double fSM2begPlaneQ; //the SM2 beg charge 00089 double fSM2endPlaneQ; //the high plane charge (SM2 end) 00090 int fEventClass; //the classification of the event 0=UC, 1=PC, 2=FC 00091 00092 //some work areas 00093 double wPlaneChargePE[500]; 00094 double wPlaneMeanTPos[500]; 00095 double wPlaneZPos[500]; 00096 int wPlaneContainment[2][2][2][2]; 00097 double wMeanTime[12]; //upward going mus 00098 00099 }; 00100 #endif // FCPCFILTERMODULE_H 00101
1.3.9.1