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

NCExtrapolationNS.h

Go to the documentation of this file.
00001 
00002 // $Id: NCExtrapolationNS.h,v 1.19 2008/08/19 18:29:43 bckhouse Exp $
00003 //
00004 // A class for implementing near to far extrapolations
00005 //
00006 // B. Rebel 5/2007
00008 #ifndef NCEXTRAPOLATIONNS_H
00009 #define NCEXTRAPOLATIONNS_H
00010 
00011 #include "NCUtils/Extrapolation/NCExtrapolation.h"
00012 
00013 class TH2D;
00014 
00015 //......................................................................
00016 
00017 class NCExtrapolationNS : public NCExtrapolation
00018 {
00019 
00020  public:
00021   NCExtrapolationNS();
00022   NCExtrapolationNS(NCAnalysisUtils *utils, 
00023                     std::map<Int_t,double>& dataNear,
00024                     std::map<Int_t,double>& mcNear,
00025                     std::map<Int_t,double>& dataFar,
00026                     std::map<Int_t,double>& mcFar,
00027                     bool useCC, 
00028                     bool useNC);
00029   virtual ~NCExtrapolationNS();
00030   
00031   void AddEvent(ANtpHeaderInfo    *headerInfo,
00032                 ANtpBeamInfo      *beamInfo,
00033                 ANtpRecoInfo      *recoInfo,
00034                 ANtpAnalysisInfo  *analysisInfo,
00035                 ANtpTruthInfoBeam *truthInfo,
00036                 NCType::ERunType runType,
00037                 bool useMCAsData=false,
00038                 NCType::EFileType fileType = NCType::kBeamFile);
00039   void PrepareNearDetector();
00040   void PredictSpectrum();
00041   void WriteResources();
00042   void Prepare(const Registry& r);
00043   
00044  private:
00045   
00046   int   fDecay;
00047   int   fDoMC;
00048   static const int fnbins=199;
00049   double fbinvect[200];
00050   TString fBeamFileName;
00051   TString fBeamFileNamePostShutDown;
00052   TString fFarTrueCorrectionFile;
00053   TString fNearTrueCorrectionFile;
00054   TString fTrueCorrectionHistNear;
00055   TString fTrueCorrectionHistFar;
00056   double  fNearExposureScale;
00057 
00058   TH1F *fTrueND;
00059   TH1F *fTrueNDAfterRT;
00060   TH1F *fTrueNDAfterRT_noeffcorr; //LLH adding
00061   TH1F *fRecoND;
00062   TH1F *fTrueFD;
00063   TH1F *fTrueFD_nc;
00064   TH1F *fRecoFD;
00065   TH1F *fRecoFD_nc;
00066   TH1F *fTrueFDAfterBM;
00067   TH1F *fTrueFDAfterBM_noacccorr; //LLH adding
00068   TH1F *fTrueFDAfterBM_posteffcorr; //LLH adding
00069   TH1F *fTrueFDAfterOsc; //LLH adding
00070   TH1F *fRecoFDAfterBM;
00071 
00072   TH1F *fdatselND; //LLH adding
00073   TH1F *fdatselFD; //LLH adding
00074   TH1F *fdatselFD_nc; //LLH adding
00075 
00076   //true to reco matricies
00077   vector<TH2F *> matarray;
00078   vector<TH2F *> matarraync;
00079   vector<TH2F *> matarrayb;
00080   vector<TH2F *> matarrayncb;
00081   //TAUS 
00082   vector<TH2F *> matarrayt;
00083   vector<TH2F *> matarraybt;
00084 
00085   vector<TH2F *> matarray_post;
00086   vector<TH2F *> matarraync_post;
00087   vector<TH2F *> matarrayb_post;
00088   vector<TH2F *> matarrayncb_post; 
00089   //TAUS 
00090   vector<TH2F *> matarrayt_post;
00091   vector<TH2F *> matarraybt_post;    
00092 
00093   vector< vector<TH1F *> > noosctruearray;
00094   vector< vector<TH1F *> > noosctruearraypost;
00095 
00096   // FAR CC AND NC TRUE-RECO 
00097 /*   TH2F *ftruerecomat; */
00098 /*   TH2F *ftruerecomatnc; */
00099 /*   TH2F *ftruerecomatb; */
00100 /*   TH2F *ftruerecomatncb; */
00101      
00102   // FAR CC AND NC SELECTION EFFICIENCIES (SIGNAL AND BACKGROUND)
00103   TH1F *feffic;         
00104   TH1F *fefficnc;       
00105   TH1F *fefficbg;        
00106   TH1F *fefficncbg;      
00107   TH1F *fratccnc;       
00108   TH1F *feffic_numcheck; //LLH adding to check calculation of efficiency
00109 
00110   // TAUS
00111   TH2F *ftruerecomatt;  
00112   TH2F *ftruerecomatbt; 
00113   TH1F *feffict;        
00114   TH1F *fefficbgt;       
00115   TH1F *frattau;        
00116   
00117   // NEAR
00118   TH2F *frecotruemat;   
00119   TH1F *fpurityn;       
00120   TH1F *fefficiencyn;   
00121 
00122   // FAR CC AND NC TRUE-RECO  POST
00123 /*   TH2F *ftruerecomat_post;   */
00124 /*   TH2F *ftruerecomatnc_post;    */
00125 /*   TH2F *ftruerecomatb_post;     */
00126 /*   TH2F *ftruerecomatncb_post;   */
00127      
00128   // FAR CC AND NC SELECTION EFFICIENCIES (SIGNAL AND BACKGROUND)
00129   TH1F *feffic_post; //cclike true cc          
00130   TH1F *fefficnc_post; //nclike true nc        
00131   TH1F *fefficbg_post; //nclike cc bg         
00132   TH1F *fefficncbg_post; //cclike nc bg       
00133   TH1F *fratccnc_post;         
00134 
00135   // TAUS
00136   TH2F *ftruerecomatt_post;    
00137   TH2F *ftruerecomatbt_post;   
00138   TH1F *feffict_post;          
00139   TH1F *fefficbgt_post;         
00140   TH1F *frattau_post;          
00141    
00142   // Near
00143   TH2F *frecotruemat_post;     
00144   TH1F *fpurityn_post;         
00145   TH1F *fefficiencyn_post;     
00146     
00147   //PREDICTED SPECTRUM CC
00148   //not being used - LLH TH1F *fnoosctruereal;    
00149   TH1F *fnoosctrue;        
00150   TH1F *fnooscreco;       
00151   TH1F *fnooscreconc;      
00152   TH1F *fnooscrecotau;     
00153 
00154   //PREDICTED SPECTRUM NC
00155   TH1F *fnoosctrue_ncfit;      
00156   TH1F *fnooscreco_ncfit;     
00157   TH1F *fnooscrecocc_ncfit;      
00158   TH1F *fnooscrecotau_ncfit;   
00159      
00160   //PREDICTED SPECTRUM CC POST         
00161   //not being used - LLH TH1F *fnoosctruereal_post;   
00162   TH1F *fnoosctrue_post;       
00163   TH1F *fnooscreco_post;       
00164   TH1F *fnooscreconc_post;     
00165   TH1F *fnooscrecotau_post;    
00166  
00167   //PREDICTED SPECTRUM NC post
00168   TH1F *fnoosctrue_ncfit_post;     
00169   TH1F *fnooscreco_ncfit_post;    
00170   TH1F *fnooscrecocc_ncfit_post;     
00171   TH1F *fnooscrecotau_ncfit_post;  
00172 
00173   // auxilary spectra 
00174   TH1F *fnooscar; 
00175   TH1F *fnooscar_ccselcc;   
00176   TH1F *fnooscar_ccselnc;   
00177   TH1F *fnooscar_ncselnc;   
00178   TH1F *fnooscar_ncselcc;   
00179   //Taus
00180   TH1F *fnooscar_ccselcct;  
00181   TH1F *fnooscar_ccselnct;  
00182 
00183   //POST                                              
00184   TH1F *fnooscar_post;          
00185   TH1F *fnooscar_ccselcc_post; 
00186   TH1F *fnooscar_ccselnc_post; 
00187   TH1F *fnooscar_ncselnc_post; 
00188   TH1F *fnooscar_ncselcc_post; 
00189   //Taus        
00190   TH1F *fnooscar_ccselcct_post;
00191   TH1F *fnooscar_ccselnct_post;
00192 
00193   // BEST FIT TRUE AND RECO FROM FIT  CC
00194 
00195   TH1F *fbestfitreco;      
00196   TH1F *fbestfitreconc;    
00197   TH1F *fbestfitrecotau;   
00198 
00199   // BEST FIT TRUE AND RECO FROM FIT NC
00200 
00201   TH1F *fbestfitreco_ncfit;   
00202   TH1F *fbestfitrecocc_ncfit;    
00203   TH1F *fbestfitrecotau_ncfit;  
00204       
00205   // BEST FIT TRUE AND RECO FROM FIT CC
00206 
00207   TH1F *fbestfitreco_post;       
00208   TH1F *fbestfitreconc_post;     
00209   TH1F *fbestfitrecotau_post;    
00210   
00211   // BEST FIT TRUE AND RECO FROM FIT NC
00212 
00213   TH1F *fbestfitreco_ncfit_post;    
00214   TH1F *fbestfitrecocc_ncfit_post;     
00215   TH1F *fbestfitrecotau_ncfit_post; 
00216 
00217   // HELP ON FITTING CC
00218   TH1F *ftemptrue;
00219   TH1F *ftempreco;
00220   TH1F *ftempreconc;
00221   TH1F *ftemprecotau;
00222 
00223   // HELP ON FITTING NC
00224   TH1F *ftemptrue_ncfit;
00225   TH1F *ftempreco_ncfit;
00226   TH1F *ftemprecocc_ncfit;
00227   TH1F *ftemprecotau_ncfit;
00228            
00229   // HELP ON FITTING CC
00230   TH1F *ftemptrue_post;
00231   TH1F *ftempreco_post;
00232   TH1F *ftempreconc_post;
00233   TH1F *ftemprecotau_post;
00234 
00235   // HELP ON FITTING NC
00236   TH1F *ftemptrue_ncfit_post;
00237   TH1F *ftempreco_ncfit_post;
00238   TH1F *ftemprecocc_ncfit_post;
00239   TH1F *ftemprecotau_ncfit_post;
00240 
00241   TH2F *fchisqall;
00242   TH2F *fchisqallnc;
00243 
00244   TH1F *fbestfitreco_rebinned;     
00245   TH1F *fbestfitreco_rebinned_post; 
00246   TH1F *fbestfitrecotau_rebinned;  
00247   TH1F *fbestfitrecotau_rebinned_post; 
00248   TH1F *fbestfitreconc_rebinned;   
00249   TH1F *fbestfitreconc_rebinned_post; 
00250   TH1F *foscreco_rebinned;           
00251   TH1F *foscreco_rebinned_post;      
00252   TH1F *ftempreco_rebinned;          
00253   TH1F *ftempreco_rebinned_post;     
00254   TH1F *ftempreconc_rebinned;        
00255   TH1F *ftempreconc_rebinned_post;   
00256   TH1F *fnooscreco_rebinned;         
00257   TH1F *fnooscreco_rebinned_post;     
00258   TH1F *fnooscreconc_rebinned;     
00259   TH1F *fnooscreconc_rebinned_post;           
00260   TH1F *fnooscrecotau_rebinned;    
00261   TH1F *fnooscrecotau_rebinned_post;
00262 
00263   TH1F *fbestfitreco_ncfit_rebinned;     
00264   TH1F *fbestfitreco_ncfit_rebinned_post; 
00265   TH1F *fbestfitrecotau_ncfit_rebinned;  
00266   TH1F *fbestfitrecotau_ncfit_rebinned_post; 
00267   TH1F *fbestfitrecocc_ncfit_rebinned;      
00268   TH1F *fbestfitrecocc_ncfit_rebinned_post; 
00269   TH1F *foscreco_ncfit_rebinned;                
00270   TH1F *foscreco_ncfit_rebinned_post;      
00271   TH1F *ftempreco_ncfit_rebinned;        
00272   TH1F *ftempreco_ncfit_rebinned_post;     
00273   TH1F *ftemprecocc_ncfit_rebinned;             
00274   TH1F *ftemprecocc_ncfit_rebinned_post;   
00275   TH1F *fnooscreco_ncfit_rebinned;       
00276   TH1F *fnooscreco_ncfit_rebinned_post;          
00277   TH1F *fnooscrecocc_ncfit_rebinned;        
00278   TH1F *fnooscrecocc_ncfit_rebinned_post;          
00279   TH1F *fnooscrecotau_ncfit_rebinned;     
00280   TH1F *fnooscrecotau_ncfit_rebinned_post;        
00281 
00282   TH2D *fbmat_norm_r2;
00283   TH2D *fbmat_norm_r2_post;
00284   TH1F *fcorf; //LLH changing from TH1D
00285   TH1F *fcor; //LLH changing from TH1D
00286   TH1D *fcorfall;
00287   TH1D *fcorall;
00288   TH1D *fSingleMCNearNuCC;
00289   TH1D *fSingleMCFarNuCC;
00290   TH1D *fSingleMCNearAllCC;
00291   TH1D *fSingleMCFarAllCC;
00292   TH1D *fMCNearNuCC;
00293   TH1D *fMCFarNuCC;
00294   TH1D *fMCNearAllCC;
00295   TH1D *fMCFarAllCC;
00296   TH1F *fallccmc;
00297   TH1F *fallccmcf; //LLH adding for correct FD efficiency
00298   TH1F *fallncmcf; //LLH adding for correct FD efficiency - do we need taus also?
00299 
00300   //need vectors to keep track of all events in a given snarl
00301   vector<float> fTrueNuEnergy;
00302   vector<float> fTrueNuFlavor;
00303   vector<float> fTrueNuComplete;
00304   void AddSingleMCEventsToHistogram(Detector::Detector_t det);
00305   void AddNearEvent(ANtpHeaderInfo    *headerInfo,
00306                     ANtpBeamInfo      *beamInfo,
00307                     ANtpRecoInfo      *recoInfo,
00308                     ANtpAnalysisInfo  *analysisInfo,
00309                     ANtpTruthInfoBeam *truthInfo,
00310                     NCType::ERunType runType,
00311                     bool useMCAsData=false,
00312                     NCType::EFileType fileType=NCType::kBeamFile);
00313   void AddFarEvent(ANtpHeaderInfo    *headerInfo,
00314                    ANtpBeamInfo      *beamInfo,
00315                    ANtpRecoInfo      *recoInfo,
00316                    ANtpAnalysisInfo  *analysisInfo,
00317                    ANtpTruthInfoBeam *truthInfo,
00318                    NCType::ERunType runType,
00319                    bool useMCAsData=false,
00320                    NCType::EFileType fileType=NCType::kBeamFile);
00321   void MakeHistograms();
00322 
00323   //in following methods the beam variable is an index into the 
00324   //vector of NCBeam objects
00325   void RecoTruePur(TH2F *recotruemat1,
00326                    TH1F *purityn1,
00327                    TH1F *efficiencyn1,
00328                    double enu_shift,
00329                    int beam);
00330 
00331   void RecoTrueEffPur(TH2F *truerecomat1,
00332                       TH2F *truerecomat2,
00333                       TH2F *truerecomat1b,
00334                       TH2F *truerecomat2b,
00335                       double enu_shift,
00336                       int beam);
00337   void RecoTrueEffPurTau(TH2F *truerecomat1,
00338                          TH2F *truerecomat1b,
00339                          double enu_shift,
00340                          int beam);                                   
00341   void GetEff (TH1F *effic_noosctrue,
00342                TH1F *effic_noosctruenc,
00343                TH1F *neffic_noosctrue,
00344                TH1F *neffic_noosctruenc,
00345                TH1F *ratccnc,TH1F *rattau,
00346                int beam);
00347   void GetEfft(TH1F *effic_noosctrue,
00348                TH1F *neffic_noosctrue,
00349                int beam);
00350 
00351   void MakePrediction(TH1F *datsel,
00352                       TH1F* purityn, 
00353                       TH1F* efficiencyn,
00354                       TH2F *matn_norm,
00355                       TH1F* prediction,
00356                       NCType::ERunType runType);
00357 
00358   // AUXILIARY ROUTINES //                    
00359   void Rebindata(TH1F *inihist, 
00360                  TH1F &rebinhist);
00361   void Rebin(TH1F *inihist, 
00362              TH1F &rebinhist);      
00363   void truetoreco(TH1F *truth, 
00364                   TH1F& reco, 
00365                   TH2F *matrix); 
00366   float chisq(TH1F *obs, 
00367               TH1F *exp, 
00368               TH1F *expnc);
00369   void oscweight(std::vector<double> &sinSqrDeltaMSqr,
00370                  double sinSqr2Theta,
00371                  double fSterile,
00372                  TH1F *noosc, 
00373                  TH1F *osc, 
00374                  int flavor,
00375                  int interactionType);
00376   void oscweightOld(TH1F *noosc, 
00377                     TH1F &osc, 
00378                     float dm, 
00379                     float st, 
00380                     int method,
00381                     int which);
00382   void Convert2DMatrixToProbability(TH2F *matrix);
00383   void FillDataHistogramFromEnergyBins(int beam, 
00384                                        int nccc,
00385                                        TH1F *hist);
00386   //depricated vectors because of conversion to using NCBeam/NCEnergyBin objects
00387   // FAR// 
00388 /*   vector<int>    fpidp; */
00389 /*   vector<float>  fenut; */
00390 /*   vector<float>  fwei; */
00391 /*   vector<float>  femu; */
00392 /*   vector<float>  fesh; */
00393 /*   vector<float>  feshnc; */
00394 /*   vector<int>    fccfd; */
00395 /*   vector<int>    fflavfd; */
00396 /*   vector<int>    ffiddp; */
00397 /*   vector<int>    finis; */
00398   
00399   // FAR taus// 
00400 /*   vector<int>    fpidpt; */
00401 /*   vector<float>  fenutt; */
00402 /*   vector<float>  fweit;  */
00403 /*   vector<float>  femut;  */
00404 /*   vector<float>  fesht;  */
00405 /*   vector<float>  feshnct;               */
00406 /*   vector<int>    fccfdt;    */
00407 /*   vector<int>    fflavfdt;  */
00408 /*   vector<int>    finist;    */
00409   
00410   // NEAR //
00411 /*   vector<float>   fweind; */
00412 /*   vector<float>   feshnd; */
00413 /*   vector<float>   femund; */
00414 /*   vector<int>     fpidpnd; */
00415 /*   vector<float>   fenutnd; */
00416 /*   vector<float>   fweindp;    */
00417 /*   vector<int>     ffidndtrue;  */
00418 /*   vector<int>     fccnd;       */
00419 /*   vector<int>     fflavnd;     */
00420 /*   vector<int>     finisnd;     */
00421 
00422 };
00423 
00424 #endif // NCEXTRAPOLATIONNS_H
00425 
00426 

Generated on Tue Aug 26 15:25:44 2008 for loon by doxygen 1.3.5