Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

H1ElecCalibration.h

Go to the documentation of this file.
00001 #ifndef __H1ELECCALIBRATION_H
00002 #define __H1ELECCALIBRATION_H
00003 #include <TLorentzVector.h>
00004 #include "H1Calculator/H1CalcTrackExtrapol.h"
00005 #include "H1LarCalParameters.h"
00006 
00007 using namespace std;
00008  
00009 class H1ElecCalibration : public TObject
00010 {
00011 
00012  private:
00013 
00014   void MakeVertexElectron();
00015   
00016   const TLorentzVector& GetElectronVector();
00017 
00018   Bool_t IsGoodTrack();
00019 
00020   // The TLorentzVectors being calibrated
00021 
00022   Bool_t bUseTrackTheta;  // Boolean flag to control correct usage of electron theta
00023   Bool_t bUseTrackPhi;  // Boolean flag to control correct usage of electron phi
00024 
00025   Bool_t bDoStackWiseCalibration;  // Flag to control whether to apply stack-wise calibration
00026   Bool_t bDoZimpactWiseCalibration;  // Flag to control whether to apply zimpact-wise calibration
00027   Bool_t bDoForwardWheelWiseCalibration;  // Flag to control whether to apply zimpact-wise calibration in forward wheels
00028   Bool_t bDoResolutionSmearing;  // Flag to control whether to smear resolution of MC
00029 
00030   H1LarCalParameters* fCalibration;       // the calibration parameters being used
00031  
00032   H1CalcTrackExtrapol* fExtrapol;  // extrapolation between event vertex and liquid argon edge
00033 
00034   TLorentzVector fElectronTrack;  // electron track four-vector
00035   TLorentzVector fElectronCluster;  // electron cluster four-vector
00036   TLorentzVector fCalibratedElectron;  // four-vector of calibrated electron - not strictly needed yet
00037 
00038   Int_t fCharge; // (verified) charge of electron track
00039   Int_t fLinkedTrackType; // type of track linked to electron cluster
00040   
00041   Float_t fElectronTheta; // electron theta
00042   Float_t fElectronPhi;  // electron phi at event vertex
00043 
00044 public:
00045  
00046   H1ElecCalibration(Bool_t DoStackWiseCalibration,
00047                     Bool_t DoZimpactWiseCalibration,
00048                     Bool_t DoResolutionSmearing,
00049                     Bool_t UseTrackTheta = false, Bool_t UseTrackPhi = true);
00050   ~H1ElecCalibration();
00051   
00052   // calibration steering
00053   void DoStackWiseCalibration(Bool_t flag = true) {bDoStackWiseCalibration = flag;};
00054   void DoZimpactWiseCalibration(Bool_t flag = true) {bDoZimpactWiseCalibration = flag;}; 
00055   void DoResolutionSmearing(Bool_t flag = true) {bDoResolutionSmearing = flag;}; 
00056 
00057  
00058   const TLorentzVector& GetElecCalibration(const TLorentzVector& UncalibratedElectron,
00059                                     const TLorentzVector& ElectronTrack,
00060                                     Int_t Charge, Float_t ZVertex,
00061                                     Bool_t IsMC, Int_t RunPeriod,
00062                                     Int_t LinkedTrackType);
00063  
00064   
00065  public:
00066  
00067   ClassDef(H1ElecCalibration, 1)  // Class to apply electron calibration
00068  
00069 };
00070 #endif

Generated on Thu Jul 28 11:48:52 2005 for SFHMarana by doxygen 1.3.2