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

NueRecordAna.cxx

Go to the documentation of this file.
00001 #include "MessageService/MsgService.h"
00002 #include "TVector3.h"
00003 #include "StandardNtuple/NtpStRecord.h"
00004 #include "MCNtuple/NtpMCRecord.h"
00005 #include "CandNtupleSR/NtpSRRecord.h"
00006 #include "NueAna/NueRecord.h"
00007 #include "NueAna/NueRecordAna.h"
00008 
00009 CVSID("$Id: NueRecordAna.cxx,v 1.42 2009/06/26 19:15:00 xbhuang Exp $");
00010 
00011 NueRecordAna::NueRecordAna(NueRecord &nr):
00012   sfa(nr.shwfit),
00013   hca(nr.hitcalc),
00014   aca(nr.angcluster),
00015   acf(nr.angclusterfit),
00016   msta(nr.mstvars),
00017   fva(nr.fracvars),
00018   sva(nr.subshowervars),
00019   hhv(nr.highhitvars),
00020   shrva(nr.shieldrejvars),
00021   anna(nr),
00022   anaia(nr.anainfo),
00023   aneia(nr.srevent),
00024   ansia(nr.srshower),
00025   antia(nr.srtrack),
00026   antiba(nr.mctrue),
00027 //  bmona(nr.bmon),
00028   mda(nr,nr.mdadiscrim),
00029   tpa(nr,nr.treepid),
00030   fiana(nr.fluxinfo),
00031   nuefwa(nr.fluxweights),
00032   nuexsa(nr.xsecweights),
00033   shia(nr.shi),
00034   mria(nr.mri),
00035   cdia(nr.cdi),
00036   tva(nr.timingvars),
00037   bta(nr, nr.dtree),
00038   equala(nr)
00039 {
00040   active3DHits = false;
00041 }
00042 
00043 void NueRecordAna::SetEventEnergyArray(float* array, float *ar2)
00044 {
00045   evtstp0mip = array; evtstp1mip = ar2;
00046   sfa.SetEventEnergyArray(array, ar2);
00047   hca.SetEventEnergyArray(array, ar2);
00048   aca.SetEventEnergyArray(array, ar2);
00049   acf.SetEventEnergyArray(array, ar2);
00050   msta.SetEventEnergyArray(array, ar2);
00051   fva.SetEventEnergyArray(array, ar2);
00052   sva.SetEventEnergyArray(array, ar2);
00053   hhv.SetEventEnergyArray(array, ar2);
00054   shrva.SetEventEnergyArray(array, ar2);
00055 //  anna.SetEventEnergyArray(array, ar2);
00056   anaia.SetEventEnergyArray(array, ar2);
00057   aneia.SetEventEnergyArray(array, ar2);
00058   ansia.SetEventEnergyArray(array, ar2);
00059   antia.SetEventEnergyArray(array, ar2);
00060   antiba.SetEventEnergyArray(array, ar2);
00061 //  mda.SetEventEnergyArray(array, ar2);
00062 //  tpa.SetEventEnergyArray(array, ar2);
00063   fiana.SetEventEnergyArray(array, ar2);
00064   nuefwa.SetEventEnergyArray(array, ar2);
00065   nuexsa.SetEventEnergyArray(array, ar2);
00066   shia.SetEventEnergyArray(array, ar2);
00067   mria.SetEventEnergyArray(array, ar2);
00068   cdia.SetEventEnergyArray(array, ar2);
00069   tva.SetEventEnergyArray(array, ar2);
00070   
00071 }
00072 
00073 void NueRecordAna::SetRelease(int rel)
00074 {
00075   release = rel;
00076   sfa.SetRelease(rel);
00077   hca.SetRelease(rel);
00078   aca.SetRelease(rel);
00079   acf.SetRelease(rel);
00080   msta.SetRelease(rel);
00081   fva.SetRelease(rel);
00082   sva.SetRelease(rel);
00083   hhv.SetRelease(rel);
00084   shrva.SetRelease(rel);
00085 //  anna.SetRecoRelease(rel);
00086   anaia.SetRelease(rel);
00087   aneia.SetRelease(rel);
00088   ansia.SetRelease(rel);
00089   antia.SetRelease(rel);
00090   antiba.SetRelease(rel);
00091 //  mda.SetRecoRelease(rel);
00092 //  tpa.SetRecoRelease(rel);
00093   fiana.SetRelease(rel);
00094   nuefwa.SetRelease(rel);
00095   nuexsa.SetRelease(rel);
00096   shia.SetRelease(rel);
00097   mria.SetRelease(rel);
00098   cdia.SetRelease(rel);
00099   tva.SetRelease(rel);
00100 //  bta.SetRelease(rel);
00101   equala.SetRelease(rel);
00102 }
00103 
00104 
00105 
00106 NueRecordAna::~NueRecordAna()
00107 {}
00108 
00109 //void NueRecordAna::Analyze(int evtn, NtpSRRecord *srobj, NtpMCRecord *mcobj, NtpTHRecord *thobj)
00110 void NueRecordAna::Analyze(int evtn, RecRecordImp<RecCandHeader> *srobj)
00111 {
00112   
00113   MSG("NueRecordAna",Msg::kDebug)<<"On Snarl "<<srobj->GetHeader().GetSnarl()
00114                                  <<" event "<<evtn<<endl;
00115   
00116    DeqFloat_t x,y,z,e;
00117    Int_t primShow;
00118    DeqDeqInt_t clusterMap;
00119    TVector3 primDir;
00120    
00121    sfa.Analyze(evtn,srobj);
00122    MSG("NueRecordAna",Msg::kDebug)<<"done sfa"<<endl;
00123 //   hca.Analyze(evtn,srobj);
00124 
00125    if(active3DHits){
00126      hca.Analyze(evtn, srobj);
00127      MSG("NueRecordAna",Msg::kDebug)<<"done hca"<<endl;
00128      hca.Get3DHit(x,y,z,e);    
00129      aca.Set3DHit(x,y,z,e);
00130      aca.Analyze(evtn,srobj);    // Must be preceded by hca.Get3DHit
00131                                //                     aca.Set3DHit
00132      MSG("NueRecordAna",Msg::kDebug)<<"done aca"<<endl;
00133 
00134      aca.GetAngCluster(primShow,clusterMap,primDir);
00135      acf.Set3DHit(x,y,z,e);
00136      acf.SetAngCluster(primShow,clusterMap,primDir);
00137      acf.Analyze(evtn,srobj);    // Must be preceded by:
00138                                // aca.GetAngCluster
00139                                // acf.Set3DHit
00140                                // acf.SetAngCluster
00141      MSG("NueRecordAna",Msg::kDebug)<<"done acf"<<endl;
00142    } 
00143    msta.Analyze(evtn,srobj);
00144    MSG("NueRecordAna",Msg::kDebug)<<"done msta"<<endl;
00145 
00146    fva.Analyze(evtn,srobj);
00147    MSG("NueRecordAna",Msg::kDebug)<<"done fva"<<endl;
00148 
00149    sva.Analyze(evtn,srobj);
00150    MSG("NueRecordAna",Msg::kDebug)<<"done sva"<<endl;
00151 
00152 
00153    hhv.Analyze(evtn,srobj);
00154    MSG("NueRecordAna",Msg::kDebug)<<"done hhv"<<endl;
00155 
00156 
00157    shrva.Analyze(evtn,srobj);
00158    MSG("NueRecordAna",Msg::kDebug)<<"done shrva"<<endl;
00159 
00160 //   Is now being handled by a separate job module   
00161 //   bmona.Analyze(evtn,srobj);
00162 //   MSG("NueRecordAna",Msg::kDebug)<<"done bmona"<<endl;
00163 
00164 //   anaia.Set3DHit(x,y,z,e);   //Must be preceded by hca.Get3Dhit   
00165 //   anaia.Analyze(evtn,srobj); //Must be preceded by Set3DHit()   
00166    MSG("NueRecordAna",Msg::kDebug)<<"done anaia"<<endl;
00167 
00168    anna.Analyze();
00169    MSG("NueRecordAna",Msg::kDebug)<<"done anna"<<endl;
00170 
00171    mda.Analyze();
00172    MSG("NueRecordAna",Msg::kDebug)<<"done mda"<<endl;
00173 
00174    tpa.Analyze();
00175    MSG("NueRecordAna",Msg::kDebug)<<"done tpa"<<endl;
00176    
00177    tva.Analyze(evtn,srobj);
00178    MSG("NueRecordAna",Msg::kDebug)<<"done tva"<<endl;
00179 
00180    bta.Analyze();
00181    equala.Analyze(evtn,srobj);
00182    return;
00183 }
00184 
00185 
00186 void NueRecordAna::Analyze(int evtn, NtpMRRecord *mr, NtpStRecord *oldst)
00187 {
00188   MSG("NueRecordAna",Msg::kDebug)<<"On Snarl "<<mr->GetHeader().GetSnarl()
00189                                  <<" event "<<evtn<<endl;
00190   mria.Analyze(evtn,mr,oldst);
00191   MSG("NueRecordAna",Msg::kDebug)<<"done mri"<<endl;
00192   return;
00193 }
00194 
00195 void NueRecordAna::Analyze(UberRecord *ur)
00196 {
00197   MSG("NueRecordAna",Msg::kDebug)<<"Time of current event "
00198                                  <<ur->GetHeader().GetStartTime()
00199                                  <<endl;
00200   cdia.Analyze(ur);
00201   MSG("NueRecordAna",Msg::kDebug)<<"done cdi"<<endl;
00202   return;
00203 }
00204 
00205 void NueRecordAna::FillTrue(int evtn, NtpSRRecord *srobj, NtpMCRecord *mcobj, NtpTHRecord *thobj)
00206 {
00207   if(mcobj==0){
00208     return;
00209   }
00210 
00211   VldContext vc;
00212   if(srobj!=0){
00213     vc=srobj->GetHeader().GetVldContext();
00214   }
00215   else{
00216     vc=mcobj->GetHeader().GetVldContext();
00217   }
00218 
00219   if(vc.GetSimFlag()==SimFlag::kData){
00220     return;
00221   }
00222  
00223     antiba.Analyze(evtn,srobj,mcobj,thobj);
00224     return;
00225 }
00226 
00227 void NueRecordAna::FillTrue(int evtn, NtpStRecord *srobj)
00228 {
00229   if(srobj==0){
00230     return;
00231   }
00232 
00233   VldContext vc=srobj->GetHeader().GetVldContext();
00234   if(vc.GetSimFlag()==SimFlag::kData){
00235     return;
00236   }
00237 
00238   antiba.Analyze(evtn,srobj);
00239   fiana.Analyze(evtn,srobj);
00240   shia.Analyze(evtn,srobj);
00241   Detector::Detector_t d=vc.GetDetector();
00242   if(d==Detector::kNear){
00243     nuefwa.SetDetector(1);
00244   }
00245   else if(d==Detector::kFar){
00246     nuefwa.SetDetector(2);
00247   }
00248   else{
00249     nuefwa.SetDetector(0);
00250   }
00251   nuefwa.SetFluxInfo(fiana.GetMCFluxInfo());
00252   nuefwa.Analyze(evtn,srobj);
00253   nuexsa.Analyze(evtn,srobj);
00254   return;
00255 }
00256 
00257 void NueRecordAna::FillReco(int evtn, RecRecordImp<RecCandHeader> *srobj)
00258 {
00259   if(srobj==0){
00260     return;
00261   }
00262  
00263    aneia.Analyze(evtn,srobj);
00264    ansia.Analyze(evtn,srobj);
00265    antia.Analyze(evtn,srobj);
00266    anaia.Analyze(evtn,srobj);
00267 
00268    return;
00269 }
00270 
00271 void NueRecordAna::SetBeamType(int bType)
00272 {
00273   return SetBeamType((BeamType::BeamType_t) bType);
00274 }
00275                                                                                 
00276 void NueRecordAna::SetBeamType(BeamType::BeamType_t bType)
00277 {
00278   sfa.SetBeamType(bType);
00279   hca.SetBeamType(bType);
00280   aca.SetBeamType(bType);
00281   acf.SetBeamType(bType);
00282   msta.SetBeamType(bType);
00283   fva.SetBeamType(bType);
00284   hhv.SetBeamType(bType);
00285   sva.SetBeamType(bType);
00286   shrva.SetBeamType(bType);
00287 //  anna.SetRecoRelease(rel);
00288   anaia.SetBeamType(bType);
00289   aneia.SetBeamType(bType);
00290   ansia.SetBeamType(bType);
00291   antia.SetBeamType(bType);
00292   antiba.SetBeamType(bType);
00293 //  mda.SetRecoRelease(rel);
00294 //  tpa.SetRecoRelease(rel);
00295   fiana.SetBeamType(bType);
00296   nuefwa.SetBeamType(bType);
00297   nuexsa.SetBeamType(bType);
00298   shia.SetBeamType(bType);
00299   mria.SetBeamType(bType);
00300   cdia.SetBeamType(bType);
00301   tva.SetBeamType(bType);
00302 
00303 }
00304 

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