Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:48:52

0001 /**
0002 CSG/tests/CSGFoundry_getFrame_Test.cc
0003 ======================================
0004 
0005 ::
0006 
0007    TEST=getFrameE ~/o/CSG/tests/CSGFoundry_getFrame_Test.sh
0008 
0009 
0010 **/
0011 #include "scuda.h"
0012 #include "squad.h"
0013 #include "sqat4.h"
0014 
0015 #ifdef WITH_OLD_FRAME
0016 #include "sframe.h"
0017 #else
0018 #include "sfr.h"
0019 #endif
0020 
0021 #include "stree.h"
0022 #include "ssys.h"
0023 #include "SSim.hh"
0024 #include "SEvt.hh"
0025 #include "OPTICKS_LOG.hh"
0026 #include "CSGFoundry.h"
0027 
0028 struct CSGFoundry_getFrame_Test
0029 {
0030     const CSGFoundry* fd ;
0031     const stree* tree ;
0032 
0033 #ifdef WITH_OLD_FRAME
0034     sframe fr = {} ;
0035 #else
0036     sfr fr = {} ;
0037 #endif
0038 
0039     CSGFoundry_getFrame_Test();
0040 
0041     int getFrameE();
0042     int save();
0043     int InputPhoton();
0044     int main();
0045 };
0046 
0047 inline CSGFoundry_getFrame_Test::CSGFoundry_getFrame_Test()
0048     :
0049     fd(CSGFoundry::Load()),
0050     tree(fd->getTree())
0051 {
0052     std::cout << " fd.brief " << fd->brief() << std::endl ;
0053     std::cout << " fd.desc  " << fd->desc() << std::endl ;
0054 }
0055 
0056 inline int CSGFoundry_getFrame_Test::getFrameE()
0057 {
0058     std::cout << "[ fd->getFrameE " << std::endl ;
0059 
0060 #ifdef WITH_OLD_FRAME
0061     fr = fd->getFrameE() ;  // via INST, MOI, OPTICKS_INPUT_PHOTON_FRAME "ipf"
0062 #else
0063     fr = tree->get_frame_moi();
0064 #endif
0065     std::cout << "] fd->getFrameE " << std::endl ;
0066 
0067     int INST = ssys::getenvint("INST",-1) ;
0068     if(INST > -1) std::cout <<  "INST" << INST << std::endl << fd->descInstance(INST) << std::endl ;
0069 
0070     std::cout << "[ fr " << std::endl << fr << std::endl << " ] fr " << std::endl ;
0071 
0072     return 0 ;
0073 }
0074 
0075 inline int CSGFoundry_getFrame_Test::save()
0076 {
0077     std::cout << " [ fr.save " << std::endl ;
0078     fr.save("$FOLD");
0079     std::cout << " ] fr.save " << std::endl ;
0080 
0081 #ifdef WITH_OLD_FRAME
0082     std::cout << " [ fr.save_extras " << std::endl ;
0083     fr.save_extras("$FOLD");
0084     std::cout << " ] fr.save_extras " << std::endl ;
0085 #endif
0086 
0087     return 0 ;
0088 }
0089 
0090 
0091 inline int CSGFoundry_getFrame_Test::InputPhoton()
0092 {
0093     SEvt* evt = SEvt::Create(0) ;
0094 
0095     NP* ip = evt->getInputPhoton_();
0096     if(ip == nullptr) return 0 ;
0097 
0098     NP* ipt0 = fr.transform_photon_m2w(ip, false)  ; // normalize:false
0099     NP* ipt1 = fr.transform_photon_m2w(ip, true )  ; // normalize:true
0100 
0101     std::cout << " ip   " << ( ip  ? ip->sstr() : "-" )  << std::endl ;
0102     std::cout << " ipt0  " << ( ipt0 ? ipt0->sstr() : "-" )  << std::endl ;
0103     std::cout << " ipt1  " << ( ipt1 ? ipt1->sstr() : "-" )  << std::endl ;
0104 
0105     ip->save("$FOLD/ip.npy");
0106     ipt0->save("$FOLD/ipt0.npy");
0107     ipt1->save("$FOLD/ipt1.npy");
0108 
0109 #ifdef WITH_OLD_FRAME
0110     evt->setFrame(fr);
0111 #else
0112     evt->setFr(fr);
0113 #endif
0114 
0115 
0116     NP* ipt2 = evt->getInputPhoton() ;
0117     ipt2->save("$FOLD/ipt2.npy");
0118 
0119     return 0 ;
0120 }
0121 
0122 inline int CSGFoundry_getFrame_Test::main()
0123 {
0124     const char* TEST = ssys::getenvvar("TEST", "getFrameE");
0125     int rc = 0 ;
0126     if(strcmp(TEST,"getFrameE")==0)
0127     {
0128         rc += getFrameE();
0129     }
0130     else if(strcmp(TEST,"save")==0)
0131     {
0132         rc += getFrameE();
0133         rc += save();
0134     }
0135     else if(strcmp(TEST,"InputPhoton")==0)
0136     {
0137         rc += getFrameE();
0138         rc += InputPhoton();
0139     }
0140     return rc ;
0141 }
0142 
0143 
0144 int main(int argc, char** argv)
0145 {
0146     OPTICKS_LOG(argc, argv);
0147     CSGFoundry_getFrame_Test test ;
0148     return test.main() ;
0149 }
0150