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

EnergyCorrections Namespace Reference

Track Energy/Momentum Correction. More...


Typedefs

typedef enum EnergyCorrections::EWhichCorrection WhichCorrection_t
typedef enum EnergyCorrections::ECorrectionVersion CorrectionVersion_t

Enumerations

enum  EWhichCorrection {
  kDefault = 0, kVersion1, kVersion2, kVersion3,
  kVersion4, kVersion5, kVersion6, kNoCalGroup
}
enum  ECorrectionVersion { kUnknown, kBirch, kCedar, kDogwood }

Functions

float FullyCorrectShowerEnergy (float E, const CandShowerHandle::ShowerType_t &st, VldContext vc, ReleaseType::Release_t release, EnergyCorrections::WhichCorrection_t whichCor=EnergyCorrections::kDefault)
float FullyCorrectMomentumFromRange (float p, VldContext vc, ReleaseType::Release_t release, EnergyCorrections::WhichCorrection_t whichCor=EnergyCorrections::kDefault)
 Track Energy/Momentum Correction.
float FullyCorrectEnergyFromRange (float E, VldContext vc, ReleaseType::Release_t release, EnergyCorrections::WhichCorrection_t whichCor=EnergyCorrections::kDefault)
float FullyCorrectSignedMomentumFromCurvature (float p, VldContext vc, ReleaseType::Release_t release, EnergyCorrections::WhichCorrection_t whichCor=EnergyCorrections::kDefault)
float CalibrationGroupEnergyCorrections (float E, VldContext vc, ReleaseType::Release_t release, EnergyCorrections::WhichCorrection_t whichCor=EnergyCorrections::kDefault)
float ShowerEnergyCorrectionNearDogwood (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionFarDogwood (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionNearDogwood0 (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionFarDogwood0 (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionNearCedarPhyBhcurve (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionFarCedarPhyBhcurve (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionNearCedar (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float ShowerEnergyCorrectionFarCedar (float energy, const CandShowerHandle::ShowerType_t &st, EnergyCorrections::WhichCorrection_t whichCor)
float MasakiNearJune30_2009 (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFarJune30_2009 (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiNear_forDogwood0 (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFar_forDogwood0 (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiNearDec15th (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFarDec15th (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiNearDec15thScaled (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFarDec15thScaled (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiNearMay17th (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFarMay17th (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiNearMay17thScaled (float energy, const CandShowerHandle::ShowerType_t &st)
float MasakiFarMay17thScaled (float energy, const CandShowerHandle::ShowerType_t &st)
float SignedMomentumCurvatureCorrectionCedar (float p, VldContext vc, WhichCorrection_t whichCor)
float SignedMomentumCurvatureCorrectionBirch (float p, VldContext vc, WhichCorrection_t whichCor)
float MomentumRangeCorrectionBirch (float p, VldContext vc, WhichCorrection_t whichCor)
float MomentumRangeCorrectionCedar (float p, VldContext vc, WhichCorrection_t whichCor)
float EnergyRangeCorrectionCedar (float E, VldContext vc, WhichCorrection_t whichCor)
float ShowerEnergyConversionDogwood (float E, VldContext vc)
float WeightedShowerEnergyConversionDogwood (float E, VldContext vc)
void SetCorrectionVersion (const CorrectionVersion_t &ver, Short_t subver=0)
std::string GetCorrectionAsString ()
void WarnUnknownVersion (const char *caller_routine)
CorrectionVersion_t VersionFromFilename (const char *)
float CorrectMomentumFromRange (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectEnergyFromRange (float E, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectSignedMomentumFromCurvature (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectShowerEnergy (float E, const Detector::Detector_t &det, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectShowerEnergyNear (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectShowerEnergyFar (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectMomentumFromRange_Birch (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectSignedMomentumFromCurvature_Birch (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectShowerEnergyNear_Birch (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectShowerEnergyFar_Birch (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectMomentumFromRange_Cedar (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectSignedMomentumFromCurvature_Cedar (float p, bool isdata=true, Detector::Detector_t det=Detector::kNear)
float CorrectShowerEnergyNear_Cedar (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)
float CorrectShowerEnergyFar_Cedar (float E, const CandShowerHandle::ShowerType_t &st, int mode=1, bool isdata=true)

Variables

const float cgffBirchDataFD = 1.018
const float cgffCedarPhyDataFD = 0.9988
const float cgffCedarPhyDataND = 1.0039
const float cgffCedarR1_24_1MCFD = (0.001737/0.001786)
const float cgffCedarR1_24_1MCND = (0.001759/0.001792)
const float cgffCedarPhyDataFDOld = 0.996
const float cgffCedarPhyDataNDOld = 1.003
const float cgffCedarR1_24_1MCFDOld = 0.986
const float cgffCedarR1_24_1MCNDOld = 0.994
const float cgffCedarR1_24_2MCFD = cgffCedarR1_24_1MCFD*(0.001786/0.001737)
const float cgffCedarR1_24_2MCND = cgffCedarR1_24_1MCND*(0.001792/0.001759)
const float cgffCedarPhyDaikonND = 1
const float cgffCedarPhyDaikonFD = 1
CorrectionVersion_t fVersion = EnergyCorrections::kUnknown
Short_t fSubVersion = 0


Detailed Description

Track Energy/Momentum Correction.

kNoCalGroup = Nothing

Notes: The currently implemented corrections are: i) 1.8% FD data correction for PRL era data ii) The MC drift bug correction for Cedar MC iii) The preliminary data and MC fudge factors that tweak the MEU scale. The numbers are taken from DocDB 3139 by Jeff Hartnell and Tingjun Yang

Further notes: This routine uses the Calibrator, and requires read access to the offline database. At present, any up-to-date database will do. Note that this routine initializes a custom Calibrator on the first call; it should not interfere with other Calibrators you may be using.


Typedef Documentation

typedef enum EnergyCorrections::ECorrectionVersion EnergyCorrections::CorrectionVersion_t
 

Referenced by VersionFromFilename().

typedef enum EnergyCorrections::EWhichCorrection EnergyCorrections::WhichCorrection_t
 


Enumeration Type Documentation

enum ECorrectionVersion
 

Enumeration values:
kUnknown 
kBirch 
kCedar 
kDogwood 

Definition at line 375 of file DataUtil/EnergyCorrections.h.

00375                                   {
00376     kUnknown,
00377     kBirch,
00378     kCedar,
00379     kDogwood
00380   } CorrectionVersion_t;

enum EWhichCorrection
 

Enumeration values:
kDefault 
kVersion1 
kVersion2 
kVersion3 
kVersion4 
kVersion5 
kVersion6 
kNoCalGroup 

Definition at line 235 of file DataUtil/EnergyCorrections.h.

00235                                 {
00236     kDefault = 0,
00237     kVersion1,
00238     kVersion2,
00239     kVersion3,
00240     kVersion4,
00241     kVersion5,
00242     kVersion6,
00243     kNoCalGroup
00244   } WhichCorrection_t;


Function Documentation

float EnergyCorrections::CalibrationGroupEnergyCorrections float  E,
VldContext  vc,
ReleaseType::Release_t  release,
EnergyCorrections::WhichCorrection_t  whichCor = EnergyCorrections::kDefault
 

Definition at line 372 of file DataUtil/EnergyCorrections.cxx.

References ReleaseType::AsString(), Calibrator::CreateCustomCalibrator(), VldContext::GetDetector(), Calibrator::GetDriftCorrected(), ReleaseType::GetRecoInfo(), VldContext::GetSimFlag(), MsgService::GetStream(), MsgService::Instance(), ReleaseType::IsBirch(), ReleaseType::IsCedar(), ReleaseType::IsDaikon(), MAXMSG, CalScheme::Reset(), CfgPromptConfigurable::Set(), and MsgStream::SetLogLevel().

Referenced by CorrectionsForMasaki::CalibratedShowerEnergy(), MeuPlots::CalibrationGroupEnergyCorrections(), and FullyCorrectShowerEnergy().

00376 {
00377   //Nb: This function is called by FullyCorrectShowerEnergy, do not use it for CC Shower's
00378 
00379   float retval = E; // Default return value.
00380 
00381   MAXMSG("DataUtil",Msg::kInfo,1)
00382     << "CalibrationGroupEnergyCorrections:: Using Release Type: "
00383     << ReleaseType::AsString(release) << "\tusing correction version: "
00384     << whichCor << "\n";
00385 
00386   static Calibrator* customCalibrator = 0;
00387   if (customCalibrator ==0 ) {
00388     //Initialize. Disable warning that we're about to do something 'tricksy'.
00389     // This tricksyness is just to make a custom instance of the calibrator, so we don't
00390     // interfere with any other custom settings that the user (i.e. Jeff H) is doing
00391     // This is actually pretty safe, if an expert like me (Nathaniel) does it.
00392     MsgService::Instance()->GetStream("Calib")->SetLogLevel(Msg::kFatal);
00393     customCalibrator = Calibrator::CreateCustomCalibrator();
00394 
00395     // Turn off the units we aren't using, just to make them go faster.
00396     // "Speed holes!" -Homer Simpson
00397 
00398     customCalibrator->Set("Thermometer=SimpleCalScheme "
00399                           "PeCalibrator=SimpleCalScheme "
00400                           "LinCalibrator=SimpleCalScheme "
00401                           "StripCalibrator=SimpleCalScheme "
00402                           "AttenCalibrator=SimpleCalScheme "
00403                           "MIPCalibrator=SimpleCalScheme "
00404                           "TimeCalibrator=SimpleCalScheme ");
00405     MsgService::Instance()->GetStream("Calib")->SetLogLevel(Msg::kWarning);
00406   }
00407 
00408 
00409 
00410   // Get the reconstruction version.
00411   ReleaseType::Release_t recoVers = ReleaseType::GetRecoInfo(release);
00412 
00413   // Fudge #0:
00414   // For PRL-era data, we fudged the FD data by 1.8%
00415   if (    ReleaseType::IsBirch(release)
00416      && vc.GetSimFlag()==SimFlag::kData
00417      && vc.GetDetector()==Detector::kFar )
00418     {
00419       MAXMSG("DataUtil",Msg::kInfo,1)
00420     << "EnergyCorrections -- Applying Birch Far Detector Factor ( "
00421     << EnergyCorrections::cgffBirchDataFD << ")\n";
00422       retval = retval*EnergyCorrections::cgffBirchDataFD;
00423     }
00424 
00425 
00426 
00427   if (ReleaseType::IsCedar(release) && whichCor!=EnergyCorrections::kNoCalGroup) {
00428     //
00429     // Fudge #1
00430     // Attempt to remove the MC bug, where the drift decalibration was applied with the wrong sign.
00431     // This is a time-dependent correction which should fix the problem for cedar-daikon MC R1.24.1
00432     // This problem was fixed in R1.24.2 and R1.24.calB, but NOT R1.24.calA.
00433     //
00434     if (   ReleaseType::IsCedar(release)
00435       && ReleaseType::IsDaikon(release)
00436       && (recoVers < ReleaseType::kR1_24_2 || recoVers == ReleaseType::kR1_24_Cal )
00437       && vc.GetSimFlag()==SimFlag::kMC)
00438       {
00439     // Removes MC bug where drift correction was applied twice.
00440     // Fix it by de-applying the drift twice.
00441     MAXMSG("DataUtil",Msg::kInfo,1)
00442       << "EnergyCorrections -- Applying Infamous MC Drift Bug Correction\n";
00443 
00444     customCalibrator->Reset(vc);
00445     float drift = customCalibrator->GetDriftCorrected(1.0,PlexStripEndId());
00446     retval = retval / (drift*drift);
00447       }
00448 
00449 
00450     // Correction #2
00451     // These are the preliminary final corrections for the June 2007 cc box opening.
00452     // The numbers are taken from DocDB 3139 by Jeff Hartnell and Tingjun Yang
00453     // These are only applied if using the default (or version3) correction
00454     if (!(whichCor==EnergyCorrections::kVersion1 || whichCor==EnergyCorrections::kVersion2)) {
00455 
00456       if (vc.GetSimFlag()==SimFlag::kMC) {
00457     //For the Cedar MC we have the following possible datasets:
00458     // i) CedarDaikon -- used in Summer analysis 2007
00459     // ii) CedarPhyDaikon -- reprocessed by batch group over summer 2007
00460 
00461     if (ReleaseType::IsCedar(release) && recoVers<=ReleaseType::kR1_24_1) {
00462       //Now here we have two options either use the latest greatest numbers
00463       // or we use the old numbers from the 2007 summer analysis
00464       if (whichCor==kVersion3) {
00465         //Use the old numbers
00466         if (vc.GetDetector()==Detector::kFar) {
00467           MAXMSG("DataUtil",Msg::kInfo,1)
00468         << "EnergyCorrections -- Applying R_1_24_1 (Summer 2007) Far MC Correction Factor"
00469         << " (" << EnergyCorrections::cgffCedarR1_24_1MCFDOld << ")\n";
00470           retval*=EnergyCorrections::cgffCedarR1_24_1MCFDOld;
00471         }
00472         else if (vc.GetDetector()==Detector::kNear) {
00473           MAXMSG("DataUtil",Msg::kInfo,1)
00474         << "EnergyCorrections -- Applying R_1_24_1 (Summer 2007) Near MC Correction Factor"
00475         << " (" << EnergyCorrections::cgffCedarR1_24_1MCNDOld << ")\n";
00476           retval*=EnergyCorrections::cgffCedarR1_24_1MCNDOld;
00477         }
00478       }
00479       else {
00480         //Use the new numbers
00481         if (vc.GetDetector()==Detector::kFar) {
00482           MAXMSG("DataUtil",Msg::kInfo,1)
00483         << "EnergyCorrections -- Applying R_1_24_1 (Fall 2007) Far MC Correction Factor"
00484         << " (" << EnergyCorrections::cgffCedarR1_24_1MCFD << ")\n";
00485           retval*=EnergyCorrections::cgffCedarR1_24_1MCFD;
00486         }
00487         else if (vc.GetDetector()==Detector::kNear) {
00488           MAXMSG("DataUtil",Msg::kInfo,1)
00489         << "EnergyCorrections -- Applying R_1_24_1 (Fall 2007) Near MC Correction Factor"
00490         << " (" << EnergyCorrections::cgffCedarR1_24_1MCND << ")\n";
00491           retval*=EnergyCorrections::cgffCedarR1_24_1MCND;
00492         }
00493 
00494       }
00495     }
00496     else if (ReleaseType::IsCedar(release) && recoVers>=ReleaseType::kR1_24_2)
00497       {
00498         //Changed because we updated the GevPerMIP number in the MC
00499         // reprocessing. Bloody annoying.
00500         if (vc.GetDetector()==Detector::kFar) {
00501           MAXMSG("DataUtil",Msg::kInfo,1)
00502         << "EnergyCorrections -- Applying R_1_24_2 (Fall 2007) Far MC Correction Factor"
00503         << " (" << EnergyCorrections::cgffCedarR1_24_2MCFD << ")\n";
00504           retval*=EnergyCorrections::cgffCedarR1_24_2MCFD;
00505         }
00506         else if (vc.GetDetector()==Detector::kNear) {
00507           MAXMSG("DataUtil",Msg::kInfo,1)
00508         << "EnergyCorrections -- Applying R_1_24_2 (Fall 2007) Near MC Correction Factor"
00509         << " (" << EnergyCorrections::cgffCedarR1_24_2MCND << ")\n";
00510           retval*=EnergyCorrections::cgffCedarR1_24_2MCND;
00511         }
00512       }
00513       }
00514       else if (vc.GetSimFlag()==SimFlag::kData) {
00515     //Data corrections only available for Cedar_Phy
00516     //Once again we are going to have the option to use the old or
00517     // the new numbers
00518     if (whichCor==kVersion3) {
00519       //Use the old numbers from the Summer 2007 analysis
00520       if (recoVers>=ReleaseType::kCedarPhy) {
00521         if (vc.GetDetector()==Detector::kFar) {
00522           MAXMSG("DataUtil",Msg::kInfo,1)
00523         << "EnergyCorrections -- Applying CedarPhy (Summer 2007) Far Correction Factor"
00524         << " (" << EnergyCorrections::cgffCedarPhyDataFDOld << ")\n";
00525           retval*=EnergyCorrections::cgffCedarPhyDataFDOld;
00526         }
00527         else if (vc.GetDetector()==Detector::kNear) {
00528           MAXMSG("DataUtil",Msg::kInfo,1)
00529         << "EnergyCorrections -- Applying CedarPhy (Summer 2007) Near Correction Factor"
00530         << " (" << EnergyCorrections::cgffCedarPhyDataNDOld << ")\n";
00531           retval*=EnergyCorrections::cgffCedarPhyDataNDOld;
00532         }
00533       }
00534     }
00535     else {
00536       //Use the latest greatest numbers
00537       if (recoVers>=ReleaseType::kCedarPhy) {
00538         if (vc.GetDetector()==Detector::kFar) {
00539           MAXMSG("DataUtil",Msg::kInfo,1)
00540         << "EnergyCorrections -- Applying CedarPhy (Fall 2007) Far Correction Factor"
00541         << " (" << EnergyCorrections::cgffCedarPhyDataFD << ")\n";
00542           retval*=EnergyCorrections::cgffCedarPhyDataFD;
00543         }
00544         else if (vc.GetDetector()==Detector::kNear) {
00545           MAXMSG("DataUtil",Msg::kInfo,1)
00546         << "EnergyCorrections -- Applying CedarPhy (Fall 2007) Near Correction Factor"
00547         << " (" << EnergyCorrections::cgffCedarPhyDataND << ")\n";
00548           retval*=EnergyCorrections::cgffCedarPhyDataND;
00549         }
00550       }
00551     }
00552       }
00553     }
00554   }
00555 
00556   return retval;
00557 
00558 }

float EnergyCorrections::CorrectEnergyFromRange float  E,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 754 of file DataUtil/EnergyCorrections.cxx.

References CorrectMomentumFromRange(), and det.

00755 {
00756    const float m=0.1057;// mon mass
00757    float p = sqrt(E*E -m*m);
00758    float pcor = CorrectMomentumFromRange(p,isdata,det);
00759    return sqrt(pcor*pcor +m*m);
00760 }

float EnergyCorrections::CorrectMomentumFromRange float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 711 of file DataUtil/EnergyCorrections.cxx.

References CorrectMomentumFromRange_Birch(), CorrectMomentumFromRange_Cedar(), det, and WarnUnknownVersion().

Referenced by CorrectEnergyFromRange().

00713 {
00714   float pcor=p;
00715     switch(fVersion){
00716     case kCedar:
00717       pcor=CorrectMomentumFromRange_Cedar(p,isdata,det);
00718       break;
00719     case kBirch:
00720       pcor=CorrectMomentumFromRange_Birch(p,isdata,det);
00721       break;
00722     case kUnknown:
00723     default:
00724       WarnUnknownVersion("CorrectMomentumFromRange()");
00725       pcor=CorrectMomentumFromRange_Birch(p,isdata,det);
00726       break;
00727     }
00728     return pcor;
00729 }

float EnergyCorrections::CorrectMomentumFromRange_Birch float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 843 of file DataUtil/EnergyCorrections.cxx.

References det.

Referenced by CorrectMomentumFromRange().

00845 {
00846   static const float c[4]={1.01334,0.05563,-0.05346,0.01205};
00847 
00848   // correction for difference in data mc steel density
00849   if (isdata){
00850     // inital correction, pre-Oxford 2006
00851     //static const float dcor=7.755/7.87;// data/mc density
00852     float dcor=1;
00853     if (det==Detector::kNear) dcor=(7.85*2.563)/(7.87*2.54);
00854     else if (det==Detector::kFar) dcor=(7.85*2.558)/(7.87*2.54);
00855 
00856     p*=dcor;
00857   }
00858   //
00859   float pcor=p/(c[0] + c[1]*log(p) + c[2]*pow(log(p), 2) + c[3]*pow(log(p),3));
00860   return pcor;
00861 }

float EnergyCorrections::CorrectMomentumFromRange_Cedar float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 936 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectMomentumFromRange().

00937 {
00938   return p;
00939 }

float EnergyCorrections::CorrectShowerEnergy float  E,
const Detector::Detector_t det,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 824 of file DataUtil/EnergyCorrections.cxx.

References CorrectShowerEnergyFar(), CorrectShowerEnergyNear(), and det.

00828 {
00829    //People should not be using this function
00830   float ecor=E;
00831    if (det==Detector::kNear) {
00832       ecor = CorrectShowerEnergyNear(E,st,mode,isdata);
00833    }
00834    else if (det==Detector::kFar) {
00835       ecor = CorrectShowerEnergyFar(E,st,mode,isdata);
00836    }
00837 
00838    return ecor;
00839 }

float EnergyCorrections::CorrectShowerEnergyFar float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 786 of file DataUtil/EnergyCorrections.cxx.

References CorrectShowerEnergyFar_Birch(), CorrectShowerEnergyFar_Cedar(), and WarnUnknownVersion().

Referenced by CorrectShowerEnergy().

00787 {
00788    //People should not be using this function
00789 
00790   float ecor=E;
00791   switch(fVersion){
00792   case kCedar:
00793     ecor=CorrectShowerEnergyFar_Cedar(E,st,mode,isdata);
00794     break;
00795   case kBirch:
00796      if (isdata) {
00797     // a correction for the FD MIP scale
00798     // for the beam data, one measured MIP
00799     // actually corresponds to 1.018 MIPs
00800     // so we must correct shower energy up
00801     const float mip_scale_correction=1.018;
00802     E*=mip_scale_correction;
00803      }
00804     ecor=CorrectShowerEnergyFar_Birch(E,st,mode,isdata);
00805     break;
00806   case kUnknown:
00807   default:
00808     WarnUnknownVersion("CorrectShowerEnergyFar()");
00809     if (isdata) {
00810        // a correction for the FD MIP scale
00811        // for the beam data, one measured MIP
00812        // actually corresponds to 1.018 MIPs
00813        // so we must correct shower energy up
00814        const float mip_scale_correction=1.018;
00815     E*=mip_scale_correction;
00816     }
00817     ecor=CorrectShowerEnergyFar_Birch(E,st,mode,isdata);
00818     break;
00819   }
00820   return ecor;
00821 
00822 }

float EnergyCorrections::CorrectShowerEnergyFar_Birch float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 905 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectShowerEnergyFar(), and FullyCorrectShowerEnergy().

00906 {
00907    //   std::cout << "CorrectShowerEnergyFar_Birch: " << E << std::endl;
00908    float ecor=E;
00909    if (st==CandShowerHandle::kCC){
00910      if (mode==1){
00911        // Niki Correction
00912        ecor=((E)*(1.-0.12*exp(-0.12*E)));
00913      }
00914      else if (mode==2){
00915        // Andy Correction
00916        //     ecor=(E)*(1.-0.2*exp(-0.2*E));
00917        ecor=E*(0.99-0.035*E*exp(-0.25*E));
00918      }
00919    }
00920    else if (st==CandShowerHandle::kWtCC){
00921       if (mode==1){
00922      // Niki Correction
00923      ecor=((E)*(1.+0.18*exp(-0.35*E)));
00924       }
00925       else if (mode==2){
00926      // Andy Correction
00927      E=ecor;
00928       }
00929    }
00930    return ecor;
00931 }

float EnergyCorrections::CorrectShowerEnergyFar_Cedar float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 958 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectShowerEnergyFar(), and ShowerEnergyCorrectionFarCedar().

00959 {
00960    float ecor=E;
00961    if (st==CandShowerHandle::kCC){
00962      ecor = ecor*(0.950+0.277*exp(-ecor*1.64));
00963    }
00964    else if (st==CandShowerHandle::kWtCC){
00965      ecor = ecor*(0.957+0.271*exp(-ecor*1.64));
00966    }
00967    return ecor;
00968 }

float EnergyCorrections::CorrectShowerEnergyNear float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 763 of file DataUtil/EnergyCorrections.cxx.

References CorrectShowerEnergyNear_Birch(), CorrectShowerEnergyNear_Cedar(), and WarnUnknownVersion().

Referenced by CorrectShowerEnergy().

00764 {
00765    //People should not be using this function
00766 
00767   float ecor=E;
00768   switch(fVersion){
00769   case kCedar:
00770     ecor=CorrectShowerEnergyNear_Cedar(E,st,mode,isdata);
00771     break;
00772   case kBirch:
00773     ecor=CorrectShowerEnergyNear_Birch(E,st,mode,isdata);
00774     break;
00775   case kUnknown:
00776   default:
00777     WarnUnknownVersion("CorrectShowerEnergyNear()");
00778     ecor=CorrectShowerEnergyNear_Birch(E,st,mode,isdata);
00779     break;
00780   }
00781   return ecor;
00782 }

float EnergyCorrections::CorrectShowerEnergyNear_Birch float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 877 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectShowerEnergyNear(), and FullyCorrectShowerEnergy().

00878 {
00879 
00880    //   std::cout << "CorrectShowerEnergyNear_Birch: " << E << "\t" << mode <<  std::endl;
00881    float ecor=E;
00882    if (st==CandShowerHandle::kCC){
00883       if (mode==1){
00884      // Niki Correction
00885      ecor=E/1.18;
00886       }
00887       else if (mode==2){
00888      // Andy Correction
00889      ecor=((E/1.05)*(1.-0.35*exp(-0.18*E/1.06)));
00890       }
00891    }
00892    else if (st==CandShowerHandle::kWtCC){
00893       if (mode==1){
00894      // Niki Correction
00895      ecor=((E)*(1.+0.50*exp(-1.00*E)));
00896       }
00897       else if (mode==2){
00898      // Andy Correction
00899      ecor=E/1.03;
00900       }
00901    }
00902    return ecor;
00903 }

float EnergyCorrections::CorrectShowerEnergyNear_Cedar float  E,
const CandShowerHandle::ShowerType_t st,
int  mode = 1,
bool  isdata = true
 

Definition at line 946 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectShowerEnergyNear(), and ShowerEnergyCorrectionNearCedar().

00947 {
00948    float ecor=E;
00949    if (st==CandShowerHandle::kCC){
00950      ecor = ecor*(0.921+0.231*exp(-ecor*1.63));
00951    }
00952    else if (st==CandShowerHandle::kWtCC){
00953      ecor = ecor*(0.924+0.235*exp(-ecor*1.63));
00954    }
00955    return ecor;
00956 }

float EnergyCorrections::CorrectSignedMomentumFromCurvature float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 731 of file DataUtil/EnergyCorrections.cxx.

References CorrectSignedMomentumFromCurvature_Birch(), CorrectSignedMomentumFromCurvature_Cedar(), det, and WarnUnknownVersion().

00734 {
00735 
00736   float pcor=p;
00737     switch(fVersion){
00738     case kCedar:
00739       pcor=CorrectSignedMomentumFromCurvature_Cedar(p,isdata,det);
00740       break;
00741     case kBirch:
00742       pcor=CorrectSignedMomentumFromCurvature_Birch(p,isdata,det);
00743       break;
00744     case kUnknown:
00745     default:
00746       WarnUnknownVersion("CorrectSignedMomentumFromCurvature()");
00747       pcor=CorrectSignedMomentumFromCurvature_Birch(p,isdata,det);
00748       break;
00749     }
00750     return pcor;
00751 }

float EnergyCorrections::CorrectSignedMomentumFromCurvature_Birch float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 863 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectSignedMomentumFromCurvature().

00864 {
00865   // input is the signed momentum (e.g. p/q)
00866   // isdata and det are not used... but maybe in the future
00867   float pcor=p;
00868   if (pcor!=0) {
00869     // correction advertised in 1430-v2, J. Musser
00870     // note: for 1/p < 0   C=1, so correction only matters for mu+
00871     float C = (1.01+0.1*fabs(1/p))/(1.01-0.1*(1/p));
00872     pcor*=(1.0/C);
00873   }
00874   return pcor;
00875 }

float EnergyCorrections::CorrectSignedMomentumFromCurvature_Cedar float  p,
bool  isdata = true,
Detector::Detector_t  det = Detector::kNear
 

Definition at line 941 of file DataUtil/EnergyCorrections.cxx.

Referenced by CorrectSignedMomentumFromCurvature().

00942 {
00943   return p;
00944 }

float EnergyCorrections::EnergyRangeCorrectionCedar float  E,
VldContext  vc,
WhichCorrection_t  whichCor
 

Definition at line 1383 of file DataUtil/EnergyCorrections.cxx.

References VldContext::GetDetector(), VldContext::GetSimFlag(), and MAXMSG.

Referenced by FullyCorrectEnergyFromRange(), and MomentumRangeCorrectionCedar().

01384 {
01385   MAXMSG("DataUtil",Msg::kInfo,1)
01386     << "EnergyCorrections -- Applying Energy from Range Correction for Cedar (1.018*E)-0.009 for ND Data and (1.010*E)-0.009 for everything else.\n";
01387   float eCor=E;
01388   if (vc.GetSimFlag()==SimFlag::kData && vc.GetDetector()==Detector::kNear) {
01389     eCor=(1.018*E)-0.009;
01390   }
01391   else {
01392     eCor=(1.010*E)-0.009;
01393   }
01394 
01395   return eCor;
01396 }

float EnergyCorrections::FullyCorrectEnergyFromRange float  E,
VldContext  vc,
ReleaseType::Release_t  release,
EnergyCorrections::WhichCorrection_t  whichCor = EnergyCorrections::kDefault
 

Definition at line 263 of file DataUtil/EnergyCorrections.cxx.

References EnergyRangeCorrectionCedar(), FullyCorrectMomentumFromRange(), ReleaseType::IsBirch(), and ReleaseType::IsCedar().

00267 {
00268   if (ReleaseType::IsBirch(release)) {
00269     const float m=0.1057;// muon mass
00270     float p = sqrt(E*E -m*m);
00271     float pcor = EnergyCorrections::FullyCorrectMomentumFromRange(p,vc,release,whichCor);
00272     return sqrt(pcor*pcor +m*m);
00273   }
00274   else if (ReleaseType::IsCedar(release)) {
00275     return EnergyCorrections::EnergyRangeCorrectionCedar(E,vc,whichCor);
00276   }
00277   return E;
00278 }

float EnergyCorrections::FullyCorrectMomentumFromRange float  p,
VldContext  vc,
ReleaseType::Release_t  release,
EnergyCorrections::WhichCorrection_t  whichCor = EnergyCorrections::kDefault
 

Track Energy/Momentum Correction.

INPUTS:

  • Track energy/momentum in GeV
  • Valdity context of the event
  • Release code for the batch release (code+scripts+database+MC) used to generate the data
  • WhichCorrection_t generally speaking kDefault will be what most people want, but to compare corrections this switch is in place.

OUTPUT:

  • Track energy/momentum

Definition at line 247 of file DataUtil/EnergyCorrections.cxx.

References ReleaseType::IsBirch(), ReleaseType::IsCedar(), MomentumRangeCorrectionBirch(), and MomentumRangeCorrectionCedar().

Referenced by MNtpModule::Ana(), MuonRemovalInfoAna::Analyze(), MadTVAnalysis::CreatePAN(), FullyCorrectEnergyFromRange(), NCEventInfo::GetTrackEnergy(), MergeEvent::Reco(), MadQuantities::RecoMuEnergyNew(), ANtpTrackInfoAna::RecoMuEnergyNew(), and Anp::FillTrack::Run().

00251 {
00252    float pcor=p;
00253    if (ReleaseType::IsBirch(release)) {
00254       pcor=EnergyCorrections::MomentumRangeCorrectionBirch(p,vc,whichCor);
00255    }
00256    else if (ReleaseType::IsCedar(release)) {
00257       pcor=EnergyCorrections::MomentumRangeCorrectionCedar(p,vc,whichCor);
00258    }
00259    return pcor;
00260 
00261 }

float EnergyCorrections::FullyCorrectShowerEnergy float  E,
const CandShowerHandle::ShowerType_t st,
VldContext  vc,
ReleaseType::Release_t  release,
EnergyCorrections::WhichCorrection_t  whichCor = EnergyCorrections::kDefault
 

INPUTS:

  • Shower energy in GeV (for Masaki CC correction). SigMap and MEU/MIP are also supported for non kCC CandShowerHandle::ShowerType_t.
  • Shower type (only kCC showers have Masaki's correction)
  • Valdity context of the event
  • Release code for the batch release (code+scripts+database+MC) used to generate the data
  • WhichCorrection_t generally speaking kDefault will be what most people want, but to compare corrections this switch is in place.

OUTPUT:

  • Shower energy in same units as input.

Further notes: This routine uses the Calibrator, and requires read access to the offline database. At present, any up-to-date database will do. Note that this routine initializes a custom Calibrator on the first call; it should not interfere with other Calibrators you may be using.

WhichCorrection_t lookup table

Birch -- Shower ================= kDefault = Niki's Correction kVersion1 = Niki's Correction kVersion2 = Andy's Correction Cedar -- Shower =============== kDefault = (MC Only) Drift Correction + Cal Group Fudge Factors + Scaled Masaki 17th May kVersion1 = (MC Only) Drift Correction + Masaki 17th May kVersion2 = Masaki Exponential kVersion3 = (MC Only) Drift Correction + Cal Group Fudge Factors + Scaled Masaki 17th May kNoCalGroup = Scaled Masaki 17th May

Definition at line 179 of file DataUtil/EnergyCorrections.cxx.

References CalibrationGroupEnergyCorrections(), CorrectShowerEnergyFar_Birch(), CorrectShowerEnergyNear_Birch(), VldContext::GetDetector(), ReleaseType::GetRecoInfo(), ReleaseType::IsBirch(), ReleaseType::IsCedar(), ReleaseType::IsDogwood(), ShowerEnergyCorrectionFarCedar(), ShowerEnergyCorrectionFarCedarPhyBhcurve(), ShowerEnergyCorrectionFarDogwood(), ShowerEnergyCorrectionNearCedar(), ShowerEnergyCorrectionNearCedarPhyBhcurve(), and ShowerEnergyCorrectionNearDogwood().

Referenced by MNtpModule::Ana(), MuonRemovalInfoAna::Analyze(), NCEventInfo::GetShowerEnergy(), NuReco::GetShowerEnergyCor(), MadQuantities::RecoShwEnergyNew(), ANtpShowerInfoAna::RecoShwEnergyNew(), Anp::FillShower::Run(), and Anp::FillEnergy::Run().

00184 {
00185 
00186   //First step is to apply Calibration Group Corrections
00187   float eCor=EnergyCorrections::CalibrationGroupEnergyCorrections(E,vc,release,whichCor);
00188 
00189   // Get the reconstruction version.
00190   ReleaseType::Release_t recoVers = ReleaseType::GetRecoInfo(release);
00191 
00192   //Now need to apply Masaki's correction
00193   if (ReleaseType::IsBirch(release)) {
00194     int mode=1;
00195     if (whichCor==EnergyCorrections::kVersion2)
00196       mode=2;
00197     if (vc.GetDetector()==Detector::kNear)
00198       return EnergyCorrections::CorrectShowerEnergyNear_Birch(eCor,st,mode);
00199      else if (vc.GetDetector()==Detector::kFar)
00200        return EnergyCorrections::CorrectShowerEnergyFar_Birch(eCor,st,mode);
00201 
00202   }
00203   else if (ReleaseType::IsCedar(release)) {
00204     //Now need to check version
00205     if (recoVers >= ReleaseType::kR1_24_3) {
00206       if (vc.GetDetector()==Detector::kNear)
00207     return EnergyCorrections::ShowerEnergyCorrectionNearCedarPhyBhcurve(eCor,st,whichCor);
00208       else if (vc.GetDetector()==Detector::kFar)
00209     return EnergyCorrections::ShowerEnergyCorrectionFarCedarPhyBhcurve(eCor,st,whichCor);
00210 
00211     }
00212     else {
00213       if (vc.GetDetector()==Detector::kNear)
00214     return EnergyCorrections::ShowerEnergyCorrectionNearCedar(eCor,st,whichCor);
00215       else if (vc.GetDetector()==Detector::kFar)
00216     return EnergyCorrections::ShowerEnergyCorrectionFarCedar(eCor,st,whichCor);
00217     }
00218 
00219   }
00220   else if (ReleaseType::IsDogwood(release)) {
00221     if (vc.GetDetector()==Detector::kNear)
00222       return EnergyCorrections::ShowerEnergyCorrectionNearDogwood(eCor,st,whichCor);
00223     else if (vc.GetDetector()==Detector::kFar)
00224       return EnergyCorrections::ShowerEnergyCorrectionFarDogwood(eCor,st,whichCor);
00225   }
00226 
00227   return E;
00228 }

float EnergyCorrections::FullyCorrectSignedMomentumFromCurvature float  p,
VldContext  vc,
ReleaseType::Release_t  release,
EnergyCorrections::WhichCorrection_t  whichCor = EnergyCorrections::kDefault
 

Definition at line 280 of file DataUtil/EnergyCorrections.cxx.

References ReleaseType::IsBirch(), ReleaseType::IsCedar(), SignedMomentumCurvatureCorrectionBirch(), and SignedMomentumCurvatureCorrectionCedar().

Referenced by MNtpModule::Ana(), MuonRemovalInfoAna::Analyze(), MadTVAnalysis::CreatePAN(), NCEventInfo::GetTrackEnergy(), MergeEvent::Reco(), MadQuantities::RecoMuEnergyNew(), and ANtpTrackInfoAna::RecoMuEnergyNew().

00284 {
00285    float pcor=p;
00286    if (ReleaseType::IsBirch(release)) {
00287       pcor=EnergyCorrections::SignedMomentumCurvatureCorrectionBirch(p,vc,whichCor);
00288    }
00289    else if (ReleaseType::IsCedar(release)) {
00290       pcor=EnergyCorrections::SignedMomentumCurvatureCorrectionCedar(p,vc,whichCor);
00291    }
00292    return pcor;
00293 
00294 }

std::string EnergyCorrections::GetCorrectionAsString  ) 
 

Definition at line 658 of file DataUtil/EnergyCorrections.cxx.

References fSubVersion, and s().

Referenced by WarnUnknownVersion().

00659 {
00660   std::string s;
00661   switch(fVersion){
00662   case kBirch:
00663     s+="BIRCH"; break;
00664   case kCedar:
00665     s+="CEDAR"; break;
00666   case kUnknown:
00667   default:
00668     s+="???";
00669     break;
00670   }
00671   std::ostringstream os; os<<"-v"<<fSubVersion<<std::ends;
00672   s+=os.str();
00673 
00674   return s;
00675 }

float EnergyCorrections::MasakiFar_forDogwood0 float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1160 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionFarDogwood0().

01162 {
01163   MAXMSG("DataUtil",Msg::kInfo,1)
01164     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector Dogwood0\n";
01165   float recoE=energy;
01166   float le = log10(fmin(fmax(energy,0.3),20));
01167   float we=0;
01168   if (st==CandShowerHandle::kCC){
01169     recoE = energy*(1.02473 + 0.0429276*le + -0.016319*(2.*pow(le,2)-1) + -0.000380156*(4.*pow(le,3)-3.*le));
01170   }
01171   //Warning: weight shower energy is not used after Cedar_phy_bhcurv                                                                                         
01172   else if (st==CandShowerHandle::kWtCC) {
01173     we = fmin(fmax(energy,0.3),20);
01174     recoE= energy*(1.02473 + 0.0429276*le + -0.016319*(2.*pow(le,2)-1) + -0.000380156*(4.*pow(le,3)-3.*le));
01175   }
01176   return recoE;
01177 }

float EnergyCorrections::MasakiFarDec15th float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1201 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionFarCedarPhyBhcurve().

01203 {
01204    //From DocDB 3077_v3
01205   MAXMSG("DataUtil",Msg::kInfo,1)
01206     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector from DocDB 3895_v4\n";
01207   float recoE=energy;
01208   float le = log10(fmin(fmax(energy,0.3),20));
01209   float we=0;
01210   if (st==CandShowerHandle::kCC){
01211     recoE = energy*( 1.15566-0.286445*le+ 0.122705*(2.*pow(le,2)-1)-0.0183855*(4.*pow(le,3)-3.*le));
01212   }
01213   else if (st==CandShowerHandle::kWtCC) {
01214     we = fmin(fmax(energy,0.3),20);
01215     recoE= energy*(0.971346+0.00314063*we-0.000135242*pow(we,2)+0.626512*TMath::Exp(-we*3.26053));
01216   }
01217   return recoE;
01218 }

float EnergyCorrections::MasakiFarDec15thScaled float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1242 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

01244 {
01245    //From DocDB 3077_v3
01246   MAXMSG("DataUtil",Msg::kInfo,1)
01247     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector from DocDB 3895_v4\n";
01248   float tempE=energy/EnergyCorrections::cgffCedarPhyDaikonFD;
01249   float recoE=tempE;
01250   float le = log10(fmin(fmax(tempE,0.3),20));
01251   float we=0;
01252   if (st==CandShowerHandle::kCC){
01253     recoE = tempE*( 1.15566-0.286445*le+ 0.122705*(2.*pow(le,2)-1)-0.0183855*(4.*pow(le,3)-3.*le));
01254   }
01255   else if (st==CandShowerHandle::kWtCC) {
01256     we = fmin(fmax(energy,0.3),20);
01257     recoE= energy*(0.971346+0.00314063*we-0.000135242*pow(we,2)+0.626512*TMath::Exp(-we*3.26053));
01258   }
01259   return recoE;
01260 }

float EnergyCorrections::MasakiFarJune30_2009 float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1121 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionFarDogwood().

01123 {
01124   MAXMSG("DataUtil",Msg::kInfo,1)
01125     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector from DocDB XXXX_v4\n";
01126   float recoE=energy;
01127   float le = log10(fmin(fmax(energy,0.3),20));
01128   float we=0;
01129   if (st==CandShowerHandle::kCC){
01130     recoE = energy*(1.01397 + 0.0646697*le -0.0258817*(2.*pow(le,2)-1) + 0.00117583*(4.*pow(le,3)-3.*le));
01131   }
01132   //Warning: weight shower energy is not used after Cedar_phy_bhcurv
01133   else if (st==CandShowerHandle::kWtCC) {
01134     we = fmin(fmax(energy,0.3),20);
01135     recoE= energy*(1.01397 + 0.0646697*le -0.0258817*(2.*pow(le,2)-1) + 0.00117583*(4.*pow(le,3)-3.*le));
01136   }
01137   return recoE;
01138 }

float EnergyCorrections::MasakiFarMay17th float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1280 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionFarCedar().

01282 {
01283    //From DocDB 3077_v3
01284   MAXMSG("DataUtil",Msg::kInfo,1)
01285     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector from DocDB 3077_v3\n";
01286    float recoE=energy;
01287    //   std::cout << "Old:\t" << recoE << std::endl;
01288    float le = log10(fmax(energy,0.2));
01289    if (st==CandShowerHandle::kCC){
01290       recoE = energy*(1.113584-0.299139*le+0.145169*(2.*pow(le,2)-1)-0.0232853*(4.*pow(le,3)-3.*le));
01291    }
01292    else if (st==CandShowerHandle::kWtCC){
01293       recoE= energy*(1.052872-0.19185*le+0.102449*(2.*pow(le,2)-1)-0.0182317*(4.*pow(le,3)-3.*le));
01294    }
01295    return recoE;
01296 }

float EnergyCorrections::MasakiFarMay17thScaled float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1319 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionFarCedar(), and ShowerEnergyCorrectionFarCedarPhyBhcurve().

01321 {
01322    //From DocDB 3077_v3
01323   MAXMSG("DataUtil",Msg::kInfo,1)
01324     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Far Detector from DocDB 3077_v3 -- Scaled by Appropriate CG factor for uncalibrated data he used\n";
01325    float tempE=energy/EnergyCorrections::cgffCedarR1_24_1MCFD;
01326    float recoE=tempE;
01327    //   std::cout <<  "New:\t" <<recoE << std::endl;
01328    float le = log10(fmax(tempE,0.2));
01329    if (st==CandShowerHandle::kCC){
01330       recoE = tempE*(1.113584-0.299139*le+0.145169*(2.*pow(le,2)-1)-0.0232853*(4.*pow(le,3)-3.*le));
01331    }
01332    else if (st==CandShowerHandle::kWtCC){
01333       recoE= tempE*(1.052872-0.19185*le+0.102449*(2.*pow(le,2)-1)-0.0182317*(4.*pow(le,3)-3.*le));
01334    }
01335    return recoE;
01336 }

float EnergyCorrections::MasakiNear_forDogwood0 float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1141 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionNearDogwood0().

01143 {
01144   MAXMSG("DataUtil",Msg::kInfo,1)
01145     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector Dogwood0\n";
01146   float recoE=energy;
01147   float le = log10(fmin(fmax(energy,0.3),20));
01148   float we=0;
01149   if (st==CandShowerHandle::kCC){
01150     recoE = energy*(0.978739 + 0.156093*le + -0.0608388*(2.*pow(le,2)-1) + 0.00818386*(4.*pow(le,3)-3.*le));
01151   }
01152   //Warning: weight shower energy is not used after Cedar_phy_bhcurv                                                                                         
01153   else if (st==CandShowerHandle::kWtCC) {
01154     we = fmin(fmax(energy,0.3),20);
01155     recoE = energy*(0.978739 + 0.156093*le + -0.0608388*(2.*pow(le,2)-1) + 0.00818386*(4.*pow(le,3)-3.*le));
01156   }
01157   return recoE;
01158 }

float EnergyCorrections::MasakiNearDec15th float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1182 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionNearCedarPhyBhcurve().

01184 {
01185    //From DocDB 3077_v3
01186   MAXMSG("DataUtil",Msg::kInfo,1)
01187     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector from DocDB 3895_v4\n";
01188   float recoE=energy;
01189   float le = log10(fmin(fmax(energy,0.3),20));
01190   float we=0;
01191   if (st==CandShowerHandle::kCC){
01192     recoE = energy*(1.10973-0.248714*le +0.116769*(2.*pow(le,2)-1)-0.0200268*(4.*pow(le,3)-3.*le));
01193   }
01194   else if (st==CandShowerHandle::kWtCC) {
01195     we = fmin(fmax(energy,0.3),20);
01196     recoE= energy*(0.999461-0.00334628*we+0.0000563316*pow(we,2)+0.35232*TMath::Exp(-we*1.76594));
01197   }
01198   return recoE;
01199 }

float EnergyCorrections::MasakiNearDec15thScaled float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1222 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

01224 {
01225    //From DocDB 3077_v3
01226   MAXMSG("DataUtil",Msg::kInfo,1)
01227     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector from DocDB 3895_v4\n";
01228   float tempE=energy/EnergyCorrections::cgffCedarPhyDaikonND;
01229   float recoE=tempE;
01230   float le = log10(fmin(fmax(tempE,0.3),20));
01231   float we=0;
01232   if (st==CandShowerHandle::kCC){
01233     recoE = tempE*(1.10973-0.248714*le +0.116769*(2.*pow(le,2)-1)-0.0200268*(4.*pow(le,3)-3.*le));
01234   }
01235   else if (st==CandShowerHandle::kWtCC) {
01236     we = fmin(fmax(energy,0.3),20);
01237     recoE= energy*(0.999461-0.00334628*we+0.0000563316*pow(we,2)+0.35232*TMath::Exp(-we*1.76594));
01238   }
01239   return recoE;
01240 }

float EnergyCorrections::MasakiNearJune30_2009 float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1101 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionNearDogwood().

01103 {
01104   MAXMSG("DataUtil",Msg::kInfo,1)
01105     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector from DocDB XXXX_v4\n";
01106   float recoE=energy;
01107   float le = log10(fmin(fmax(energy,0.3),20));
01108   float we=0;
01109   if (st==CandShowerHandle::kCC){
01110     recoE = energy*(0.96922+0.175773*le -0.0684406*(2.*pow(le,2)-1)+0.00940122*(4.*pow(le,3)-3.*le));
01111   }
01112   //Warning: weight shower energy is not used after Cedar_phy_bhcurv
01113   else if (st==CandShowerHandle::kWtCC) {
01114     we = fmin(fmax(energy,0.3),20);
01115     recoE = energy*(0.96922+0.175773*le -0.0684406*(2.*pow(le,2)-1)+0.00940122*(4.*pow(le,3)-3.*le));
01116   }
01117   return recoE;
01118 }

float EnergyCorrections::MasakiNearMay17th float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1263 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionNearCedar().

01265 {
01266    //From DocDB 3077_v3
01267   MAXMSG("DataUtil",Msg::kInfo,1)
01268     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector from DocDB 3077_v3\n";
01269   float recoE=energy;
01270    float le = log10(fmax(energy,0.2));
01271    if (st==CandShowerHandle::kCC){
01272       recoE = energy*(1.078984-0.249843*le+0.134518*(2.*pow(le,2)-1)-0.025613*(4.*pow(le,3)-3.*le));
01273    }
01274    else if (st==CandShowerHandle::kWtCC) {
01275       recoE= energy*(1.070553-0.207148*le+0.0943124*(2.*pow(le,2)-1)-0.0153231*(4.*pow(le,3)-3.*le));
01276    }
01277    return recoE;
01278 }

float EnergyCorrections::MasakiNearMay17thScaled float  energy,
const CandShowerHandle::ShowerType_t st
 

Definition at line 1300 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by ShowerEnergyCorrectionNearCedar(), and ShowerEnergyCorrectionNearCedarPhyBhcurve().

01302 {
01303    //From DocDB 3077_v3
01304   MAXMSG("DataUtil",Msg::kInfo,1)
01305     << "EnergyCorrections -- Applying Masaki (Reco to True) Correction for Near Detector from DocDB 3077_v3 -- Scaled by Appropriate CG factor for uncalibrated data he used\n";
01306    float tempE=energy/EnergyCorrections::cgffCedarR1_24_1MCND;
01307    float recoE=tempE;
01308    float le = log10(fmax(tempE,0.2));
01309    if (st==CandShowerHandle::kCC){
01310       recoE = tempE*(1.078984-0.249843*le+0.134518*(2.*pow(le,2)-1)-0.025613*(4.*pow(le,3)-3.*le));
01311    }
01312    else if (st==CandShowerHandle::kWtCC) {
01313       recoE= tempE*(1.070553-0.207148*le+0.0943124*(2.*pow(le,2)-1)-0.0153231*(4.*pow(le,3)-3.*le));
01314    }
01315    return recoE;
01316 }

float EnergyCorrections::MomentumRangeCorrectionBirch float  p,
VldContext  vc,
WhichCorrection_t  whichCor
 

Definition at line 1340 of file DataUtil/EnergyCorrections.cxx.

References VldContext::GetDetector(), and VldContext::GetSimFlag().

Referenced by FullyCorrectMomentumFromRange().

01341 {
01342   static const float c[4]={1.01334,0.05563,-0.05346,0.01205};
01343 
01344   // correction for difference in data mc steel density
01345   if (vc.GetSimFlag()==SimFlag::kData){
01346     // inital correction, pre-Oxford 2006
01347     //static const float dcor=7.755/7.87;// data/mc density
01348     float dcor=1;
01349     if (vc.GetDetector()==Detector::kNear) dcor=(7.85*2.563)/(7.87*2.54);
01350     else if (vc.GetDetector()==Detector::kFar) dcor=(7.85*2.558)/(7.87*2.54);
01351 
01352     p*=dcor;
01353   }
01354   //
01355   float pcor=p/(c[0] + c[1]*log(p) + c[2]*pow(log(p), 2) + c[3]*pow(log(p),3));
01356   return pcor;
01357 }

float EnergyCorrections::MomentumRangeCorrectionCedar float  p,
VldContext  vc,
WhichCorrection_t  whichCor
 

Definition at line 1374 of file DataUtil/EnergyCorrections.cxx.

References EnergyRangeCorrectionCedar().

Referenced by FullyCorrectMomentumFromRange().

01375 {
01376   //return p;
01377     const float m=0.1057;// muon mass
01378     float E = sqrt(p*p+m*m);
01379     float eCor = EnergyCorrections::EnergyRangeCorrectionCedar(E,vc,whichCor);
01380     return sqrt(eCor*eCor-m*m);
01381 }

void EnergyCorrections::SetCorrectionVersion const CorrectionVersion_t ver,
Short_t  subver = 0
 

Definition at line 651 of file DataUtil/EnergyCorrections.cxx.

References fSubVersion, and fVersion.

Referenced by MNtpModule::Ana(), MuonRemovalInfoAna::Analyze(), ANtpTrackInfoAna::Analyze(), ANtpShowerInfoAna::Analyze(), and NCAnalysisCuts::IsGoodShower().

00653 {
00654   fVersion=ver;
00655   fSubVersion=subver;
00656 }

float EnergyCorrections::ShowerEnergyConversionDogwood float  E,
VldContext  vc
 

Definition at line 569 of file DataUtil/EnergyCorrections.cxx.

References VldContext::GetDetector(), VldContext::GetSimFlag(), ShowerEnergyCorrectionFarDogwood(), and ShowerEnergyCorrectionNearDogwood().

Referenced by CandShowerHandle::CalibrateEnergy().

00570 {
00571   //Two things to do:
00572   //i) apply Calibration Group tweaks
00573   //ii) apply Maskai's Reco->Truth formula
00574   float eCor=E;
00575   if (vc.GetDetector()==Detector::kFar) {
00576     //Cal group corrections
00577     if (vc.GetSimFlag()==SimFlag::kData) {
00578       eCor*=EnergyCorrections::cgffCedarPhyDataFD;
00579     }
00580     else if (vc.GetSimFlag()==SimFlag::kMC) {
00581       eCor*=EnergyCorrections::cgffCedarPhyDaikonFD;
00582     }
00583     //Reco-Truth Conversion
00584     eCor=EnergyCorrections::ShowerEnergyCorrectionFarDogwood(eCor,CandShowerHandle::kCC,EnergyCorrections::kDefault);
00585   }
00586   else if (vc.GetDetector()==Detector::kNear) {
00587     //Cal group corrections
00588     if (vc.GetSimFlag()==SimFlag::kData) {
00589       eCor*=EnergyCorrections::cgffCedarPhyDataND;
00590     }
00591     else if (vc.GetSimFlag()==SimFlag::kMC) {
00592       eCor*=EnergyCorrections::cgffCedarPhyDaikonND;
00593     }
00594     //Reco-Truth Conversion
00595     eCor=EnergyCorrections::ShowerEnergyCorrectionNearDogwood(eCor,CandShowerHandle::kCC,EnergyCorrections::kDefault);
00596   }
00597 
00598   return eCor;
00599 
00600 }

float EnergyCorrections::ShowerEnergyCorrectionFarCedar float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1080 of file DataUtil/EnergyCorrections.cxx.

References CorrectShowerEnergyFar_Cedar(), MasakiFarMay17th(), and MasakiFarMay17thScaled().

Referenced by FullyCorrectShowerEnergy().

01083 {
01084    switch(whichCor) {
01085    case EnergyCorrections::kVersion2:
01086       return EnergyCorrections::CorrectShowerEnergyFar_Cedar(energy,st);
01087    case EnergyCorrections::kVersion1:
01088       return EnergyCorrections::MasakiFarMay17th(energy,st);
01089    case EnergyCorrections::kVersion3:
01090    case EnergyCorrections::kDefault:
01091    default:
01092       return EnergyCorrections::MasakiFarMay17thScaled(energy,st);
01093    }
01094    return energy;
01095 }

float EnergyCorrections::ShowerEnergyCorrectionFarCedarPhyBhcurve float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1047 of file DataUtil/EnergyCorrections.cxx.

References MasakiFarDec15th(), and MasakiFarMay17thScaled().

Referenced by FullyCorrectShowerEnergy().

01050 {
01051    switch(whichCor) {
01052    case EnergyCorrections::kVersion4:
01053       return EnergyCorrections::MasakiFarMay17thScaled(energy,st);
01054    case EnergyCorrections::kDefault:
01055    default:
01056       return EnergyCorrections::MasakiFarDec15th(energy,st);
01057    }
01058    return energy;
01059 }

float EnergyCorrections::ShowerEnergyCorrectionFarDogwood float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 986 of file DataUtil/EnergyCorrections.cxx.

References MasakiFarJune30_2009().

Referenced by FullyCorrectShowerEnergy(), ShowerEnergyConversionDogwood(), and WeightedShowerEnergyConversionDogwood().

00989 {
00990   switch(whichCor) {
00991   case EnergyCorrections::kVersion4:
00992     return EnergyCorrections::MasakiFarJune30_2009(energy,st);
00993   case EnergyCorrections::kDefault:
00994   default:
00995     return EnergyCorrections::MasakiFarJune30_2009(energy,st);
00996   }
00997   return energy;
00998 }

float EnergyCorrections::ShowerEnergyCorrectionFarDogwood0 float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1014 of file DataUtil/EnergyCorrections.cxx.

References MasakiFar_forDogwood0().

01017 {
01018   switch(whichCor) {
01019   case EnergyCorrections::kVersion4:
01020     return EnergyCorrections::MasakiFar_forDogwood0(energy,st);
01021   case EnergyCorrections::kDefault:
01022   default:
01023     return EnergyCorrections::MasakiFar_forDogwood0(energy,st);
01024   }
01025   return energy;
01026 }

float EnergyCorrections::ShowerEnergyCorrectionNearCedar float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1063 of file DataUtil/EnergyCorrections.cxx.

References CorrectShowerEnergyNear_Cedar(), MasakiNearMay17th(), and MasakiNearMay17thScaled().

Referenced by FullyCorrectShowerEnergy().

01066 {
01067    switch(whichCor) {
01068    case EnergyCorrections::kVersion2:
01069       return EnergyCorrections::CorrectShowerEnergyNear_Cedar(energy,st);
01070    case EnergyCorrections::kVersion1:
01071       return EnergyCorrections::MasakiNearMay17th(energy,st);
01072    case EnergyCorrections::kVersion3:
01073    case EnergyCorrections::kDefault:
01074    default:
01075       return EnergyCorrections::MasakiNearMay17thScaled(energy,st);
01076    }
01077    return energy;
01078 }

float EnergyCorrections::ShowerEnergyCorrectionNearCedarPhyBhcurve float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1033 of file DataUtil/EnergyCorrections.cxx.

References MasakiNearDec15th(), and MasakiNearMay17thScaled().

Referenced by FullyCorrectShowerEnergy().

01036 {
01037    switch(whichCor) {
01038    case EnergyCorrections::kVersion4:
01039       return EnergyCorrections::MasakiNearMay17thScaled(energy,st);
01040    case EnergyCorrections::kDefault:
01041    default:
01042       return EnergyCorrections::MasakiNearDec15th(energy,st);
01043    }
01044    return energy;
01045 }

float EnergyCorrections::ShowerEnergyCorrectionNearDogwood float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 972 of file DataUtil/EnergyCorrections.cxx.

References MasakiNearJune30_2009().

Referenced by FullyCorrectShowerEnergy(), ShowerEnergyConversionDogwood(), and WeightedShowerEnergyConversionDogwood().

00975 {
00976   switch(whichCor) {
00977   case EnergyCorrections::kVersion4:
00978     return EnergyCorrections::MasakiNearJune30_2009(energy,st);
00979   case EnergyCorrections::kDefault:
00980   default:
00981     return EnergyCorrections::MasakiNearJune30_2009(energy,st);
00982   }
00983   return energy;
00984 }

float EnergyCorrections::ShowerEnergyCorrectionNearDogwood0 float  energy,
const CandShowerHandle::ShowerType_t st,
EnergyCorrections::WhichCorrection_t  whichCor
 

Definition at line 1000 of file DataUtil/EnergyCorrections.cxx.

References MasakiNear_forDogwood0().

01003 {
01004   switch(whichCor) {
01005   case EnergyCorrections::kVersion4:
01006     return EnergyCorrections::MasakiNear_forDogwood0(energy,st);
01007   case EnergyCorrections::kDefault:
01008   default:
01009     return EnergyCorrections::MasakiNear_forDogwood0(energy,st);
01010   }
01011   return energy;
01012 }

float EnergyCorrections::SignedMomentumCurvatureCorrectionBirch float  p,
VldContext  vc,
WhichCorrection_t  whichCor
 

Definition at line 1359 of file DataUtil/EnergyCorrections.cxx.

Referenced by FullyCorrectSignedMomentumFromCurvature().

01359                                                                                                                          {
01360   // input is the signed momentum (e.g. p/q)
01361   // isdata and det are not used... but maybe in the future
01362   float pcor=p;
01363   if (pcor!=0) {
01364     // correction advertised in 1430-v2, J. Musser
01365     // note: for 1/p < 0   C=1, so correction only matters for mu+
01366     float C = (1.01+0.1*fabs(1/p))/(1.01-0.1*(1/p));
01367     pcor*=(1.0/C);
01368   }
01369   return pcor;
01370 }

float EnergyCorrections::SignedMomentumCurvatureCorrectionCedar float  p,
VldContext  vc,
WhichCorrection_t  whichCor
 

Definition at line 1398 of file DataUtil/EnergyCorrections.cxx.

References MAXMSG.

Referenced by FullyCorrectSignedMomentumFromCurvature().

01399 {
01400   MAXMSG("DataUtil",Msg::kInfo,1)
01401     << "EnergyCorrections -- Not applying momentum from curvature correction for Cedar\n";
01402   return p;
01403 }

EnergyCorrections::CorrectionVersion_t EnergyCorrections::VersionFromFilename const char *   ) 
 

Definition at line 695 of file DataUtil/EnergyCorrections.cxx.

References CorrectionVersion_t, and s().

00696 {
00697   CorrectionVersion_t ver = kUnknown;
00698   std::string s=name;
00699 
00700   if (s.find("R1_18")!=std::string::npos) {
00701     ver=EnergyCorrections::kBirch;
00702   }
00703   else if (s.find("cedar")!=std::string::npos) {
00704     ver=EnergyCorrections::kCedar;
00705   }
00706   return ver;
00707 }

void EnergyCorrections::WarnUnknownVersion const char *  caller_routine  ) 
 

Definition at line 677 of file DataUtil/EnergyCorrections.cxx.

References GetCorrectionAsString().

Referenced by CorrectMomentumFromRange(), CorrectShowerEnergyFar(), CorrectShowerEnergyNear(), and CorrectSignedMomentumFromCurvature().

00678 {
00679   static Short_t nwarn=0;
00680   if (nwarn<=9) {
00681     std::cerr<<"Energy Corrections: In "<<caller_routine
00682          <<"Energy Corrections: Warning, unknown correction version "
00683          <<GetCorrectionAsString()
00684          <<"Energy Corrections: Defaulting to Birch era corrections.\n"
00685          <<"Energy Corrections: Please Call SetCorrectionVersion() in the future.\n"
00686          <<std::endl;
00687     nwarn++;
00688   }
00689   if (nwarn==9) {
00690     std::cerr<<"Energy Corrections: last message of this type..."<<std::endl;
00691   }
00692 
00693 }

float EnergyCorrections::WeightedShowerEnergyConversionDogwood float  E,
VldContext  vc
 

Definition at line 607 of file DataUtil/EnergyCorrections.cxx.

References VldContext::GetDetector(), VldContext::GetSimFlag(), ShowerEnergyCorrectionFarDogwood(), and ShowerEnergyCorrectionNearDogwood().

Referenced by CandShowerHandle::CalibrateEnergy().

00608 {
00609   //Two things to do:
00610   //i) apply Calibration Group tweaks
00611   //ii) apply Maskai's Reco->Truth formula
00612   float eCor=E;
00613   if (vc.GetDetector()==Detector::kFar) {
00614     //Cal group corrections
00615     if (vc.GetSimFlag()==SimFlag::kData) {
00616       eCor*=EnergyCorrections::cgffCedarPhyDataFD;
00617     }
00618     else if (vc.GetSimFlag()==SimFlag::kMC) {
00619       eCor*=EnergyCorrections::cgffCedarPhyDaikonFD;
00620     }
00621     //Reco-Truth Conversion
00622     eCor=EnergyCorrections::ShowerEnergyCorrectionFarDogwood(eCor,CandShowerHandle::kWtCC,EnergyCorrections::kDefault);
00623   }
00624   else if (vc.GetDetector()==Detector::kNear) {
00625     //Cal group corrections
00626     if (vc.GetSimFlag()==SimFlag::kData) {
00627       eCor*=EnergyCorrections::cgffCedarPhyDataND;
00628     }
00629     else if (vc.GetSimFlag()==SimFlag::kMC) {
00630       eCor*=EnergyCorrections::cgffCedarPhyDaikonND;
00631     }
00632     //Reco-Truth Conversion
00633     eCor=EnergyCorrections::ShowerEnergyCorrectionNearDogwood(eCor,CandShowerHandle::kWtCC,EnergyCorrections::kDefault);
00634   }
00635 
00636   return eCor;
00637 
00638 }


Variable Documentation

const float EnergyCorrections::cgffBirchDataFD = 1.018 [static]
 

Definition at line 346 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDaikonFD = 1 [static]
 

Definition at line 368 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDaikonND = 1 [static]
 

Definition at line 367 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDataFD = 0.9988 [static]
 

Definition at line 350 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDataFDOld = 0.996 [static]
 

Definition at line 357 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDataND = 1.0039 [static]
 

Definition at line 351 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarPhyDataNDOld = 1.003 [static]
 

Definition at line 358 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_1MCFD = (0.001737/0.001786) [static]
 

Definition at line 352 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_1MCFDOld = 0.986 [static]
 

Definition at line 359 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_1MCND = (0.001759/0.001792) [static]
 

Definition at line 353 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_1MCNDOld = 0.994 [static]
 

Definition at line 360 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_2MCFD = cgffCedarR1_24_1MCFD*(0.001786/0.001737) [static]
 

Definition at line 364 of file DataUtil/EnergyCorrections.cxx.

const float EnergyCorrections::cgffCedarR1_24_2MCND = cgffCedarR1_24_1MCND*(0.001792/0.001759) [static]
 

Definition at line 365 of file DataUtil/EnergyCorrections.cxx.

Short_t EnergyCorrections::fSubVersion = 0 [static]
 

Definition at line 648 of file DataUtil/EnergyCorrections.cxx.

Referenced by GetCorrectionAsString(), and SetCorrectionVersion().

CorrectionVersion_t EnergyCorrections::fVersion = EnergyCorrections::kUnknown [static]
 

Definition at line 647 of file DataUtil/EnergyCorrections.cxx.

Referenced by SetCorrectionVersion().


Generated on Mon Nov 23 05:33:44 2009 for loon by  doxygen 1.3.9.1