00001 //------------------------------------------------------------- 00002 // Go4 Release Package v3.04-01 (build 30401) 00003 // 28-November-2008 00004 //--------------------------------------------------------------- 00005 // The GSI Online Offline Object Oriented (Go4) Project 00006 // Experiment Data Processing at EE 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 "Riostream.h" 00019 00020 #include "TMeshFinalEvent.h" 00021 00022 //*********************************************************** 00023 // this one is used in TXXXAnlFact 00024 TMeshFinalProc::TMeshFinalProc(const char* name) 00025 :TGo4EventProcessor(name),fxInput1(0),fxInput2(0),fxInput3(0),fxInput12(0) 00026 { 00027 cout << "**** TMeshFinalProc: Create" << endl; 00028 } 00029 //*********************************************************** 00030 TMeshFinalProc::TMeshFinalProc() 00031 : TGo4EventProcessor("FinalProcessor"),fxInput1(0),fxInput2(0),fxInput3(0),fxInput12(0) 00032 { 00033 } 00034 //*********************************************************** 00035 TMeshFinalProc::~TMeshFinalProc() 00036 { 00037 } 00038 //*********************************************************** 00039 00040 //----------------------------------------------------------- 00041 void TMeshFinalProc::Analysis(TMeshFinalEvent* poutevt) 00042 { 00043 if(poutevt==0) return; 00045 if(fxInput1==0) 00046 { 00047 fxInput1=dynamic_cast<TMeshB1OutputEvent*>(GetInputEvent("Output1Provider")); 00048 } 00049 if(fxInput2==0) 00050 { 00051 fxInput2=dynamic_cast<TMeshB2OutputEvent*>(GetInputEvent("Output2Provider")); 00052 } 00053 if(fxInput3==0) 00054 { 00055 fxInput3=dynamic_cast<TMeshB3OutputEvent*>(GetInputEvent("Output3Provider")); 00056 } 00057 if(fxInput12==0) 00058 { 00059 fxInput12=dynamic_cast<TMeshB12OutputEvent*>(GetInputEvent("Output12Provider")); 00060 } 00061 00063 //if(fxInput12 && fxInput3) 00064 // { 00065 // // normal case, combine all final results 00066 // 00067 // } 00068 //else if (fxInput1 && fxInput2 && fxInput3 ) 00069 // { 00070 // // work on these. any combination of inputs may be processed 00071 // // depending on the previous setup 00072 // // we might steer the final processing via parameter 00073 // } 00074 //else 00075 // { 00076 // throw TGo4UserException(3,"Error: not all input events available for processor %s",GetName();); 00077 // } 00078 00079 // for the moment, we just copy the component results into final event; 00080 if(fxInput1) 00081 poutevt->fxB1=*fxInput1; // be sure assignment operator is correct! 00082 if(fxInput2) 00083 poutevt->fxB2=*fxInput2; // be sure assignment operator is correct! 00084 if(fxInput3) 00085 poutevt->fxB3=*fxInput3; // be sure assignment operator is correct! 00086 if(fxInput12) 00087 poutevt->fxB12=*fxInput12; // be sure assignment operator is correct! 00088 00089 00090 } 00091 00092 //----------------------------END OF GO4 SOURCE FILE ---------------------