00001 #ifndef ArchNPtGainTestResult_H
00002 #define ArchNPtGainTestResult_H
00003 
00004 #include "Sct/SctNames.h"
00005 #include "ArchTestResult.h"
00006 #include "SctData/NPtGainTestResult.h"
00007 #include "TVectorD.h"
00008 #include <vector>
00009 #include <boost/shared_ptr.hpp>
00010 
00011 
00012 using boost::shared_ptr;
00013 using namespace SctData;
00014 using namespace Sct;
00015 
00016 
00017 class ArchNPtGainTestResult: public ArchTestResult  {
00018   
00019  private:
00020   
00021   vector<const NPtGainTestResultData*>  chipData;     
00022   vector<const NPtGainTestResultData*>  channelData;  
00023   unsigned int NChipData;
00024   unsigned int NChannelData;
00025   
00026   vector<shared_ptr<TF1> > Chipfit; 
00027   vector<shared_ptr<TGraph> > ChipGraph;     
00028   TVectorD* vChipGain;             
00029   TVectorD* vChipNoise;            
00030   TVectorD* vChipOffset;           
00031  
00032   vector<shared_ptr<TF1> > Channelfit; 
00033   vector<shared_ptr<TGraph> > ChannelGraph;     
00034   TVectorD* vChannelGain;     
00035   TVectorD* vChannelNoise;    
00036   TVectorD* vChannelOffset;   
00037 
00038   static bool inMap;
00039 
00040   ArchNPtGainTestResult(shared_ptr<NPtGainTestResult>);
00041 
00042  public:
00043 
00044   ArchNPtGainTestResult();
00045   virtual shared_ptr<ArchTestResult> clone(shared_ptr<TestResult> test) {
00046                                    shared_ptr<NPtGainTestResult> NPtest = dynamic_pointer_cast<NPtGainTestResult>(test);
00047                                    return shared_ptr<ArchTestResult>(new ArchNPtGainTestResult(NPtest));
00048   } 
00049   ~ArchNPtGainTestResult();
00050  
00051   void SaveNPtGainTestDataOnly();
00052   void Save();  
00053   void TestSummary(shared_ptr<NPtGainTestResult>);
00054 
00055 };
00056 
00057 
00058 #endif