00001 00038 #ifndef BMSPILLANA_H 00039 #define BMSPILLANA_H 00040 00041 #include "BeamDataUtil/BeamMonSpill.h" 00042 #include "BeamDataUtil/BeamMonCuts.h" 00043 #include "BeamDataNtuple/NtpBDLiteRecord.h" 00044 #include "Registry/Registry.h" 00045 #include "Validity/VldTimeStamp.h" 00046 #include <DatabaseInterface/DbiResultPtr.h> 00047 #include "DatabaseInterface/Dbi.h" 00048 00049 class BMSpillAna 00050 { 00051 public: 00052 00053 // Con/de-structors: 00054 BMSpillAna(); 00055 virtual ~BMSpillAna(); 00056 00057 const Registry& DefaultConfig() const; 00058 void Config (const Registry& r); 00059 00061 const Registry& GetUserCuts() const; 00062 00064 void UseDatabaseCuts(Bool_t usedb=true); 00065 00067 void UseCutsSet(Dbi::Task cutset); 00068 00070 void SetSpill(const BeamMonSpill& spill); 00071 00076 void SetSpill(const NtpBDLiteRecord& ntpbdr, BeamMonSpill& spill); 00077 00085 void SetSnarlTime(const VldTimeStamp& vs_snarl); 00086 00091 void SetTimeDiff(Double_t tdiff); 00092 00094 const BeamMonSpill& GetSpill() const; 00095 00097 Bool_t SelectSpill(); 00098 00114 Double_t FractionOnTarget(); 00115 00118 Double_t CalcFracOnTarget(Double_t bpos, Double_t bwid, Double_t tedg, Double_t toff); 00119 00121 void Print(); 00122 00123 private: 00124 00126 void ChangeCutValues(const Registry& r); 00127 00128 void ApplyUserCuts(); 00129 00131 const BeamMonSpill* fSpill; 00132 00135 Registry fUserCuts; 00136 00139 Bool_t fUseDBCuts; 00140 00145 Dbi::Task fCutsSet; 00146 00147 DbiResultPtr<BeamMonCuts> fResPtr; 00148 Int_t fResID; 00149 00155 Double_t fTimeDiff; 00156 00158 00161 Double_t fTimeDiffMax; 00162 00171 Double_t fPosTgtXMin; 00172 Double_t fPosTgtXMax; 00174 Double_t fPosTgtYMin; 00175 Double_t fPosTgtYMax; 00176 00203 Double_t fWidXMin; 00204 Double_t fWidXMax; 00206 Double_t fWidYMin; 00207 Double_t fWidYMax; 00208 00219 Int_t fUseSpotSizeCut; 00220 00224 Int_t fUseProfMonOut; 00225 00229 Double_t fTorIntMin; 00230 Double_t fTorIntMax; 00231 00235 Double_t fHornCurMin; 00236 Double_t fHornCurMax; 00237 00243 Int_t fTargetIn; 00244 00252 Int_t fBeamType; 00253 00261 Double_t fFracOnTargetMin; 00262 Double_t fFracOnTargetMax; 00263 00264 }; // end of class BMSpillAna 00265 00266 00267 inline void BMSpillAna::UseDatabaseCuts(Bool_t usedb) 00268 {fUseDBCuts = usedb;} 00269 00270 inline void BMSpillAna::UseCutsSet(Dbi::Task cutset) 00271 {fCutsSet = cutset;} 00272 00273 inline const Registry& BMSpillAna::GetUserCuts() const 00274 {return fUserCuts;} 00275 00276 inline const BeamMonSpill& BMSpillAna::GetSpill() const 00277 {return *fSpill;} 00278 00279 inline void BMSpillAna::SetTimeDiff(Double_t tdiff) 00280 {fTimeDiff = tdiff;} 00281 00282 00283 00284 #endif // BMSPILLANA_H
1.3.9.1