mEmcRecoModuleRealYear2.C

Go to the documentation of this file.
00001 #include "mEmcRecoModuleRealYear2.h"
00002 #include "emcNodeHelper.h"
00003 #include "PHFlag.h"
00004 #include "mEmcCalibratorModule.h"
00005 #include "emcCalibratorFactory.h"
00006 #include "emcCalibrator.h"
00007 #include "PHTimeStamp.h"
00008 #include "PHCompositeNode.h"
00009 #include "dEmcCalibTowerWrapper.h"
00010 #include "emcCalibratedDataObject.h"
00011 
00012 #include <cassert>
00013 #include <iostream>
00014 
00015 using namespace std;
00016 
00017 const float mEmcRecoModuleRealYear2::fgPbScTowerThreshold = 0.010; // 10 MeV  
00018 const float mEmcRecoModuleRealYear2::fgPbGlTowerThreshold = 0.014; // 14 MeV  
00019                                                               
00020 const float mEmcRecoModuleRealYear2::fgPbScMinClusterEnergy = 0.015; // 15 MeV;
00021 const float mEmcRecoModuleRealYear2::fgPbGlMinClusterEnergy = 0.060; // 60 MeV
00022 
00023 //_____________________________________________________________________________
00024 
00025 mEmcRecoModuleRealYear2::mEmcRecoModuleRealYear2(const PHFlag& flags)
00026 {
00027   assert(flags.get_IntFlag("SIMULATIONFLAG")==0);
00028 
00029   
00030   if ( flags.get_IntFlag("PPFLAG") ) 
00031     {
00032       fPP = true;
00033     }
00034   else
00035     {
00036       fPP = false;
00037     }
00038 
00039   fTimeStamp = new PHTimeStamp(0);
00040 }
00041 
00042 //_____________________________________________________________________________
00043 int
00044 mEmcRecoModuleRealYear2::ana(PHCompositeNode* topNode)
00045 {
00046   return fModules.event(topNode);
00047 }
00048 
00049 //_____________________________________________________________________________
00050 int
00051 mEmcRecoModuleRealYear2::end(PHCompositeNode*)
00052 {
00053   return 0;
00054 }
00055 
00056 //_____________________________________________________________________________
00057 int
00058 mEmcRecoModuleRealYear2::setup(PHCompositeNode* topNode)
00059 {
00060   //---- Then make our tables/objects
00061 
00062   bool ok = emcNodeHelper::makeCompositeNode(topNode,"EMC2","-p");
00063   if ( !ok ) 
00064     {
00065       std::cerr << "mEmcRecoModuleRealYear2::setup : "
00066                 << "Cannot create EMC2 node ?!" << std::endl;
00067       topNode->print();
00068       return 1;
00069     }
00070 
00071   PHCompositeNode* emc2Node = emcNodeHelper::findCompositeNode(topNode,"EMC2");
00072   PHCompositeNode* dstNode = emcNodeHelper::findCompositeNode(topNode,"DST");
00073 
00074    assert(emc2Node!=0);
00075    assert(dstNode!=0);
00076 
00077    emcNodeHelper::addTable<dEmcCalibTowerWrapper>(dstNode,"dEmcCalibTower",
00078                                                   25000);
00079 
00080      //  emcNodeHelper::addObject<EmcCalibTowerv1>(emcNode,"EmcCalibTower");
00081 
00082 //   emcCalibratedDataObject * EmcCdo = new emcCalibratedDataObject() ;
00083 //   PHIODataNode<TObject>* EmcCdoNode 
00084 //     = new PHIODataNode<TObject>(EmcCdo, "EmcCdo");
00085 
00086 //   emc2Node->addNode(EmcCdoNode) ;
00087 
00088   emcNodeHelper::addObject<emcCalibratedDataObject>(emc2Node,"EmcCdo");
00089 
00090   // Then go to setup the modules needed
00091   setupAna(topNode);
00092 
00093   topNode->print();
00094 
00095   return 0;
00096 }
00097 
00098 //_____________________________________________________________________________
00099 void
00100 mEmcRecoModuleRealYear2::setupAna(PHCompositeNode* topNode)
00101 {
00102   mEmcCalibratorModule* calib =
00103     new mEmcCalibratorModule(*fTimeStamp,"emcRawDataCalibratorV1");
00104 
00105   fModules.add(calib);
00106 
00107   calib->UseTimeStamp(*fTimeStamp) ;
00108 
00109   emcCalibrator* rdc = emcCalibratorFactory::GetCalibrator() ;
00110 
00111   if ( fPP ) 
00112     {
00113       rdc->SetExtraRejectListFilename
00114         ("/afs/rhic/phenix/phnxemc/DATA/emc_extra_reject_Run2pp.list");
00115     }
00116   else
00117     {
00118       rdc->SetExtraRejectListFilename
00119         ("/afs/rhic/phenix/phnxemc/DATA/emc_extra_reject_Run2pp.list");      
00120     }
00121 
00122   rdc->Print();
00123 
00124   //  fModules.add(setupClustering(topNode));
00125 
00126   cout << "mEmcRecoModuleRealYear2::setupAna : module list : "
00127        << endl;
00128 
00129   fModules.print();
00130 }
00131 
00132 //_____________________________________________________________________________
00133 EMCModule*
00134 mEmcRecoModuleRealYear2::setupClustering(PHCompositeNode* topNode)
00135 {
00136 //   mEmcClusterNewModule* mc = 
00137 //     new mEmcClusterNewModule(mEmcGeometry);
00138   
00139 //   // Setup clustering module.
00140 //   mc->SetTowerThresholdPbSc(fgPbScTowerThreshold);
00141 //   mc->SetTowerThresholdPbGl(fgPbGlTowerThreshold);
00142 //   mc->SetMinClusterEnergyPbSc(fgPbScMinClusterEnergy);
00143 //   mc->SetMinClusterEnergyPbGl(fgPbGlMinClusterEnergy);
00144 
00145 //   return mc;
00146   return 0;
00147 }