00001 //--------------------------------------------------------------- 00002 // Go4 Release Package v2.10-5 (build 21005) 00003 // 03-Nov-2005 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at DVEE department, GSI 00007 //--------------------------------------------------------------- 00008 // 00009 //Copyright (C) 2000- Gesellschaft f. Schwerionenforschung, GSI 00010 // Planckstr. 1, 64291 Darmstadt, Germany 00011 //Contact: http://go4.gsi.de 00012 //---------------------------------------------------------------- 00013 //This software can be used under the license agreements as stated 00014 //in Go4License.txt file which is part of the distribution. 00015 //---------------------------------------------------------------- 00016 #include "TMeshFinalProc.h" 00017 00018 #include <iostream.h> 00019 00020 #include "TMeshFinalEvent.h" 00021 #include "Go4Analysis/TGo4Analysis.h" 00022 00023 //*********************************************************** 00024 // this one is used in TXXXAnlFact 00025 TMeshFinalProc::TMeshFinalProc(Text_t * name) 00026 :TGo4EventProcessor(name),fxInput1(0),fxInput2(0),fxInput3(0),fxInput12(0) 00027 { 00028 cout << "**** TMeshFinalProc: Create" << endl; 00029 } 00030 //*********************************************************** 00031 TMeshFinalProc::TMeshFinalProc() 00032 : TGo4EventProcessor("FinalProcessor"),fxInput1(0),fxInput2(0),fxInput3(0),fxInput12(0) 00033 { 00034 } 00035 //*********************************************************** 00036 TMeshFinalProc::~TMeshFinalProc() 00037 { 00038 } 00039 //*********************************************************** 00040 00041 //----------------------------------------------------------- 00042 void TMeshFinalProc::Analysis(TMeshFinalEvent* poutevt) 00043 { 00044 if(poutevt==0) return; 00046 if(fxInput1==0) 00047 { 00048 fxInput1=dynamic_cast<TMeshB1OutputEvent*>(GetInputEvent("Output1Provider")); 00049 } 00050 if(fxInput2==0) 00051 { 00052 fxInput2=dynamic_cast<TMeshB2OutputEvent*>(GetInputEvent("Output2Provider")); 00053 } 00054 if(fxInput3==0) 00055 { 00056 fxInput3=dynamic_cast<TMeshB3OutputEvent*>(GetInputEvent("Output3Provider")); 00057 } 00058 if(fxInput12==0) 00059 { 00060 fxInput12=dynamic_cast<TMeshB12OutputEvent*>(GetInputEvent("Output12Provider")); 00061 } 00062 00064 //if(fxInput12 && fxInput3) 00065 // { 00066 // // normal case, combine all final results 00067 // 00068 // } 00069 //else if (fxInput1 && fxInput2 && fxInput3 ) 00070 // { 00071 // // work on these. any combination of inputs may be processed 00072 // // depending on the previous setup 00073 // // we might steer the final processing via parameter 00074 // } 00075 //else 00076 // { 00077 // throw TGo4UserException(3,"Error: not all input events available for processor %s",GetName();); 00078 // } 00079 00080 // for the moment, we just copy the component results into final event; 00081 if(fxInput1) 00082 poutevt->fxB1=*fxInput1; // be sure assignment operator is correct! 00083 if(fxInput2) 00084 poutevt->fxB2=*fxInput2; // be sure assignment operator is correct! 00085 if(fxInput3) 00086 poutevt->fxB3=*fxInput3; // be sure assignment operator is correct! 00087 if(fxInput12) 00088 poutevt->fxB12=*fxInput12; // be sure assignment operator is correct! 00089 00090 00091 } 00092 00093 //----------------------------------------------------------- 00094 ClassImp(TMeshFinalProc) 00095 00096 00097 00098 00099 //----------------------------END OF GO4 SOURCE FILE ---------------------