ANALYSIS/TFndCut.h

00001 #ifndef ROOT_TFNDCUT_H
00002 #define ROOT_TFNDCUT_H
00003 
00004 #include "FIN_PHYS.h"
00005 
00006 using namespace FIN_PHYS;
00007 
00008 class TFndCut : public TObject {
00009 
00010  private:
00011   //
00012   Int_t fdtak_num;
00013   Double_t OsimNorm;
00014   Double_t IsimNorm;
00015   Double_t Ch1Norm;
00016   Double_t Ch2Norm;
00017 
00018  public:
00019   //
00020   TFndCut(Int_t dtak_num);
00021   ~TFndCut();
00022   //
00023   Double_t Osimomkaopro(Double_t Momentum);
00024   Double_t Isimomkaopro(Double_t Momentum);
00025   Double_t Osimomprodeu(Double_t Momentum);
00026   Double_t Isimomprodeu(Double_t Momentum);
00027   Double_t Osimomdeutri(Double_t Momentum);
00028   Double_t Isimomdeutri(Double_t Momentum);
00029   Double_t Ch1momkaopro(Double_t Momentum);
00030   Double_t Ch2momkaopro(Double_t Momentum);
00031   Double_t Ch1momprodeu(Double_t Momentum);
00032   Double_t Ch2momprodeu(Double_t Momentum);
00033   Double_t Tenemomkaopro(Double_t Momentum);
00034   Double_t Tenemomprodeu(Double_t Momentum);
00035   //
00036 
00037 };
00038 
00039 R__EXTERN TFndCut * gFndCut;
00040 
00041 #endif
00042 
00043 TFndCut * gFndCut = NULL;
00044 
00045 TFndCut::TFndCut(Int_t dtak_num){
00046   fdtak_num = dtak_num;
00047   gFndCut = this;
00048   switch (fdtak_num) {
00049   case static_cast<Int_t>(DTAK_2003_2004) :
00050     OsimNorm = 23.0;
00051     IsimNorm = 15.0;
00052     Ch1Norm = 125.0;
00053     Ch2Norm = 140.0;
00054     break;
00055   case static_cast<Int_t>(DTAK_2006_2007) :
00056     OsimNorm = 23.0;
00057     IsimNorm = 18.0;
00058     Ch1Norm = 125.0;
00059     Ch2Norm = 140.0;
00060     break;
00061   default :
00062     Warning("TFndCut","wrong dtak_num specified %d", fdtak_num);
00063     OsimNorm = 0.0;
00064     IsimNorm = 0.0;
00065     Ch1Norm  = 0.0;
00066     Ch2Norm  = 0.0;
00067     break;
00068   }
00069 }
00070 //
00071 TFndCut::~TFndCut(){
00072   gFndCut = NULL;
00073 }
00074 //
00075 Double_t BetheBlochSi(Double_t *x, Double_t *par){
00076   return par[0]*DedxfuncSi(x[0],par[1],par[2]);
00077 }
00078 //
00079 Double_t BetheBlochCh(Double_t *x, Double_t *par){
00080   return par[0]*DedxfuncCh(x[0],par[1],par[2]);
00081 }
00082 //
00083 Double_t TofoTotEn(Double_t *x, Double_t *par){
00084   return par[0]*Tenevsmom(x[0],par[2])-par[1];
00085 }
00086 //
00087 Double_t TFndCut::Isimomkaopro(Double_t Momentum){
00088   return IsimNorm*DedxfuncSi(Momentum,((GetParticleMass(FPh_PID_Proton)-GetParticleMass(FPh_PID_Kaon_plu))/3.+GetParticleMass(FPh_PID_Kaon_plu)),1);
00089 }
00090 //
00091 Double_t TFndCut::Isimomprodeu(Double_t Momentum){
00092   return IsimNorm*DedxfuncSi(Momentum,((GetParticleMass(FPh_PID_Deuteron)-GetParticleMass(FPh_PID_Proton))*2/3.+GetParticleMass(FPh_PID_Proton)),1);
00093 }
00094 //
00095 Double_t TFndCut::Isimomdeutri(Double_t Momentum){
00096   return IsimNorm*DedxfuncSi(Momentum,((2808.939-GetParticleMass(FPh_PID_Deuteron))*2/3.+GetParticleMass(FPh_PID_Deuteron)),1);
00097 }
00098 //
00099 Double_t TFndCut::Osimomkaopro(Double_t Momentum){
00100   return OsimNorm*DedxfuncSi(Momentum,((GetParticleMass(FPh_PID_Proton)-GetParticleMass(FPh_PID_Kaon_plu))/3.+GetParticleMass(FPh_PID_Kaon_plu)),1);
00101 }
00102 //
00103 Double_t TFndCut::Osimomprodeu(Double_t Momentum){
00104   return OsimNorm*DedxfuncSi(Momentum,((GetParticleMass(FPh_PID_Deuteron)-GetParticleMass(FPh_PID_Proton))*2/3.+GetParticleMass(FPh_PID_Proton)),1);
00105 }
00106 //
00107 Double_t TFndCut::Osimomdeutri(Double_t Momentum){
00108   return OsimNorm*DedxfuncSi(Momentum,((2808.939-GetParticleMass(FPh_PID_Deuteron))*2/3.+GetParticleMass(FPh_PID_Deuteron)),1);
00109 }
00110 //
00111 Double_t TFndCut::Ch1momkaopro(Double_t Momentum){
00112   return Ch1Norm*DedxfuncCh(Momentum,GetParticleMass(FPh_PID_Kaon_plu),1);
00113 }
00114 //
00115 Double_t TFndCut::Ch1momprodeu(Double_t Momentum){
00116   return Ch1Norm*DedxfuncCh(Momentum,((GetParticleMass(FPh_PID_Deuteron)-GetParticleMass(FPh_PID_Proton))*2/3.+GetParticleMass(FPh_PID_Proton)),1);
00117 }
00118 //
00119 Double_t TFndCut::Ch2momkaopro(Double_t Momentum){
00120   return Ch2Norm*DedxfuncCh(Momentum,GetParticleMass(FPh_PID_Kaon_plu),1);
00121 }
00122 //
00123 Double_t TFndCut::Ch2momprodeu(Double_t Momentum){
00124   return Ch2Norm*DedxfuncCh(Momentum,((GetParticleMass(FPh_PID_Deuteron)-GetParticleMass(FPh_PID_Proton))*2/3.+GetParticleMass(FPh_PID_Proton)),1);
00125 }
00126 //
00127 Double_t TFndCut::Tenemomkaopro(Double_t Momentum){
00128   return 2.54*Tenevsmom(Momentum,((GetParticleMass(FPh_PID_Proton)-GetParticleMass(FPh_PID_Kaon_plu))*1./2.+GetParticleMass(FPh_PID_Kaon_plu)))-122.81;
00129 }
00130 //
00131 Double_t TFndCut::Tenemomprodeu(Double_t Momentum){
00132   return 2.91*Tenevsmom(Momentum,((GetParticleMass(FPh_PID_Deuteron)-GetParticleMass(FPh_PID_Proton))*2./3.+GetParticleMass(FPh_PID_Proton)))-190.88;
00133 }
00134 //

Generated on Tue Oct 16 15:40:46 2007 by  doxygen 1.5.2