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

EnergyResolution.h File Reference

#include "Conventions/Detector.h"
#include "Conventions/ReleaseType.h"

Go to the source code of this file.

Namespaces

namespace  EnergyResolution

Functions

Double_t GetResolution (Double_t trkmomentum, Double_t trkmomentumerr, Double_t shwenergy, Double_t shwenergyerr, Bool_t rangecurve, Bool_t containedvertex=1, Detector::Detector_t detector=Detector::kFar, ReleaseType::Release_t release=(ReleaseType::kDogwood|ReleaseType::kDaikon))
Double_t MuonResolution (Double_t trkmomentum, Double_t trkmomentumerr, Bool_t rangecurve, Bool_t containedvertex=1, Detector::Detector_t detector=Detector::kFar, ReleaseType::Release_t release=(ReleaseType::kDogwood|ReleaseType::kDaikon))
Double_t ShowerResolution (Double_t shwenergy, Double_t shwenergyerr, Detector::Detector_t detector=Detector::kFar, ReleaseType::Release_t release=(ReleaseType::kDogwood|ReleaseType::kDaikon))
Double_t MuonResolutionDogwoodFar (Double_t trkmomentum, Double_t trkmomentumerr, Bool_t rangecurve, Bool_t containedvertex)
Double_t MuonResolutionDogwoodNear (Double_t trkmomentum, Double_t trkmomentumerr, Bool_t rangecurve, Bool_t containedvertex)
Double_t MuonResolutionCedar (Double_t trkmomentum, Double_t trkmomentumerr, Bool_t rangecurve, Bool_t containedvertex)
Double_t ShowerResolutionDogwoodFar (Double_t shwenergy, Double_t shwenergyerr)
Double_t ShowerResolutionDogwoodNear (Double_t shwenergy, Double_t shwenergyerr)
Double_t ShowerResolutionCedar (Double_t shwenergy, Double_t shwenergyerr)


Function Documentation

Double_t EnergyResolution::GetResolution Double_t  trkmomentum,
Double_t  trkmomentumerr,
Double_t  shwenergy,
Double_t  shwenergyerr,
Bool_t  rangecurve,
Bool_t  containedvertex = 1,
Detector::Detector_t  detector = Detector::kFar,
ReleaseType::Release_t  release = (ReleaseType::kDogwood|ReleaseType::kDaikon)
 

Definition at line 7 of file EnergyResolution.cxx.

References EnergyResolution::MuonResolution(), and EnergyResolution::ShowerResolution().

00008 {
00009   Double_t muon_resolution = MuonResolution(trkmomentum, trkmomentumerr,
00010                                             rangecurve, containedvertex, detector, release );
00011 
00012   Double_t shower_resolution = ShowerResolution(shwenergy, shwenergyerr,
00013                                                 detector, release );
00014 
00015   return sqrt( muon_resolution*muon_resolution + shower_resolution*shower_resolution );
00016 }

Double_t EnergyResolution::MuonResolution Double_t  trkmomentum,
Double_t  trkmomentumerr,
Bool_t  rangecurve,
Bool_t  containedvertex = 1,
Detector::Detector_t  detector = Detector::kFar,
ReleaseType::Release_t  release = (ReleaseType::kDogwood|ReleaseType::kDaikon)
 

Definition at line 40 of file EnergyResolution.cxx.

References EnergyResolution::MuonResolutionCedar(), EnergyResolution::MuonResolutionDogwoodFar(), and EnergyResolution::MuonResolutionDogwoodNear().

Referenced by NuReco::CalcResolution(), and EnergyResolution::GetResolution().

00041 {
00042   // dogwood resolution
00043   if( (release&ReleaseType::kDogwood)==(ReleaseType::kDogwood) ){
00044     if( detector == Detector::kNear ) return MuonResolutionDogwoodNear(trkmomentum,trkmomentumerr,
00045                                                                        rangecurve,containedvertex);
00046     if( detector == Detector::kFar ) return MuonResolutionDogwoodFar(trkmomentum,trkmomentumerr,
00047                                                                      rangecurve,containedvertex);
00048   }
00049 
00050   // cedar resolution
00051   else if( (release&ReleaseType::kCedar)==(ReleaseType::kCedar) ){
00052     if( detector == Detector::kNear ) return MuonResolutionCedar(trkmomentum,trkmomentumerr,
00053                                                                  rangecurve,containedvertex);
00054     if( detector == Detector::kFar ) return MuonResolutionCedar(trkmomentum,trkmomentumerr,
00055                                                                 rangecurve,containedvertex);
00056   }
00057 
00058   // default to zero
00059   return 0.0;
00060 }

Double_t EnergyResolution::MuonResolutionCedar Double_t  trkmomentum,
Double_t  trkmomentumerr,
Bool_t  rangecurve,
Bool_t  containedvertex
 

Definition at line 76 of file EnergyResolution.cxx.

Referenced by EnergyResolution::MuonResolution(), EnergyResolution::MuonResolutionDogwoodFar(), and EnergyResolution::MuonResolutionDogwoodNear().

00077 {
00078   if( containedvertex ){
00079 
00080     // momentum from range
00081     if( rangecurve ){
00082       Double_t trkmomentum_input = trkmomentum;
00083       if( trkmomentum_input<0.0 ) trkmomentum_input = 0.0;
00084 
00085       Double_t fRange0 = 0.0;    // Emu = 0  : sigma   -> 0 GeV
00086       Double_t fRange1 = 0.0467;
00087       Double_t fRange2 = 0.0700; // Emu >> 0 : sigma/E -> 7%
00088 
00089       Double_t rangesigma0 = fRange0;
00090       Double_t rangesigma1 = fRange1*sqrt(trkmomentum_input);
00091       Double_t rangesigma2 = fRange2*trkmomentum_input;
00092 
00093       return sqrt( rangesigma0*rangesigma0 + rangesigma1*rangesigma1 + rangesigma2*rangesigma2 );
00094     }
00095 
00096     // momentum from curvature
00097     else{
00098       Double_t trkmomentumerr_input = trkmomentumerr;
00099       if( trkmomentumerr_input<0.0 ) trkmomentumerr_input = 0.0;
00100 
00101       Double_t fCurve0 = 0.0;
00102       Double_t fCurve1 = 1.237;
00103       Double_t fCurve2 = 1.198;
00104 
00105       Double_t curvesigma0 = fCurve0;
00106       Double_t curvesigma1 = fCurve1*sqrt(trkmomentumerr_input);
00107       Double_t curvesigma2 = fCurve2*trkmomentumerr_input;
00108 
00109       return sqrt( curvesigma0*curvesigma0 + curvesigma1*curvesigma1 + curvesigma2*curvesigma2 );
00110     }
00111   }
00112 
00113   // default to zero
00114   return 0.0;
00115 }

Double_t EnergyResolution::MuonResolutionDogwoodFar Double_t  trkmomentum,
Double_t  trkmomentumerr,
Bool_t  rangecurve,
Bool_t  containedvertex
 

Definition at line 71 of file EnergyResolution.cxx.

References EnergyResolution::MuonResolutionCedar().

Referenced by EnergyResolution::MuonResolution().

00072 {
00073   return MuonResolutionCedar(trkmomentum, trkmomentumerr, rangecurve, containedvertex);
00074 }

Double_t EnergyResolution::MuonResolutionDogwoodNear Double_t  trkmomentum,
Double_t  trkmomentumerr,
Bool_t  rangecurve,
Bool_t  containedvertex
 

Definition at line 66 of file EnergyResolution.cxx.

References EnergyResolution::MuonResolutionCedar().

Referenced by EnergyResolution::MuonResolution().

00067 {
00068   return MuonResolutionCedar(trkmomentum, trkmomentumerr, rangecurve, containedvertex);
00069 }

Double_t EnergyResolution::ShowerResolution Double_t  shwenergy,
Double_t  shwenergyerr,
Detector::Detector_t  detector = Detector::kFar,
ReleaseType::Release_t  release = (ReleaseType::kDogwood|ReleaseType::kDaikon)
 

Definition at line 20 of file EnergyResolution.cxx.

References EnergyResolution::ShowerResolutionCedar(), EnergyResolution::ShowerResolutionDogwoodFar(), and EnergyResolution::ShowerResolutionDogwoodNear().

Referenced by NuReco::CalcResolution(), and EnergyResolution::GetResolution().

00021 {
00022   // dogwood resolution
00023   if( (release&ReleaseType::kDogwood)==(ReleaseType::kDogwood) ){
00024     if( detector == Detector::kNear ) return ShowerResolutionDogwoodNear(shwenergy, shwenergyerr);
00025     if( detector == Detector::kFar ) return ShowerResolutionDogwoodFar(shwenergy, shwenergyerr);
00026   }
00027 
00028   // cedar resolution
00029   else if( (release&ReleaseType::kCedar)==(ReleaseType::kCedar) ){
00030     if( detector == Detector::kNear ) return ShowerResolutionCedar(shwenergy, shwenergyerr);
00031     if( detector == Detector::kFar ) return ShowerResolutionCedar(shwenergy, shwenergyerr);
00032   }
00033   
00034   // default to zero
00035   return 0.0;
00036 }

Double_t EnergyResolution::ShowerResolutionCedar Double_t  shwenergy,
Double_t  shwenergyerr
 

Definition at line 131 of file EnergyResolution.cxx.

Referenced by EnergyResolution::ShowerResolution(), EnergyResolution::ShowerResolutionDogwoodFar(), and EnergyResolution::ShowerResolutionDogwoodNear().

00132 {
00133   Double_t shwenergy_input = shwenergy;
00134   if( shwenergy_input<0.0 ) shwenergy_input = 0.0;
00135 
00136   Double_t shwenergyerr_input = shwenergyerr;
00137   if( shwenergyerr_input<0.0 ) shwenergyerr_input = 0.0;
00138 
00139   Double_t fShw0 = 0.190;  // Eshw = 0  : sigma   -> 190 MeV
00140   Double_t fShw1 = 0.509;  // Eshw >> 0 : sigma/E -> 51%/sqrt(E) 
00141   Double_t fShw2 = 0.0;
00142 
00143   Double_t shwsigma0 = fShw0;
00144   Double_t shwsigma1 = fShw1*sqrt(shwenergy_input);
00145   Double_t shwsigma2 = fShw2*shwenergy_input;
00146 
00147   return sqrt( shwsigma0*shwsigma0 + shwsigma1*shwsigma1 + shwsigma2*shwsigma2 );
00148 }  

Double_t EnergyResolution::ShowerResolutionDogwoodFar Double_t  shwenergy,
Double_t  shwenergyerr
 

Definition at line 126 of file EnergyResolution.cxx.

References EnergyResolution::ShowerResolutionCedar().

Referenced by EnergyResolution::ShowerResolution().

00127 {
00128   return ShowerResolutionCedar(shwenergy, shwenergyerr);
00129 }

Double_t EnergyResolution::ShowerResolutionDogwoodNear Double_t  shwenergy,
Double_t  shwenergyerr
 

Definition at line 121 of file EnergyResolution.cxx.

References EnergyResolution::ShowerResolutionCedar().

Referenced by EnergyResolution::ShowerResolution().

00122 {
00123   return ShowerResolutionCedar(shwenergy, shwenergyerr);
00124 }


Generated on Mon Feb 15 11:07:57 2010 for loon by  doxygen 1.3.9.1