Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
fcs:eic:intro [2017/04/03 00:38]
hepsim17
fcs:eic:intro [2017/04/03 00:54]
hepsim17 [Using C++]
Line 198: Line 198:
  
 <code cpp> <code cpp>
- 
 string input="data.slcio"; string input="data.slcio";
 LCReader* lcReader = LCFactory::getInstance()->createLCReader() ; LCReader* lcReader = LCFactory::getInstance()->createLCReader() ;
 lcReader->open( infile1.c_str() ) ; lcReader->open( infile1.c_str() ) ;
 LCEvent*  evt; LCEvent*  evt;
- +int nEvents=0; 
-    int nEvents=0; +while( (evt = lcReader->readNextEvent()) != 0 ) {
- +
-    while( (evt = lcReader->readNextEvent()) != 0 ) {+
       if (nEvents==0) UTIL::LCTOOLS::dumpEvent( evt ) ;       if (nEvents==0) UTIL::LCTOOLS::dumpEvent( evt ) ;
 +           cout << "  Run : " << evt->getRunNumber() << " Detector: "      << evt->getDetectorName() <<  endl ;
 +           // print stored EVGEN parameters
 +           StringVec floatKeys ;
 +           int nFloatParameters = params.getFloatKeys( floatKeys ).size() ;
              
-      }+           for(int i=0; i< nFloatParameters ; i++ ){ 
 +              FloatVec floatVec ; 
 +              params.getFloatVals(  floatKeys[i], floatVec ) ; 
 +              int nFloat  = floatVec.size() 
 +              cout << " parameter " << floatKeys[i] << " [float]: " ; 
 +              for(int j=0; j< nFloat ; j++ ){ 
 +                    cout << floatVec[j] << ", " ; 
 +                } 
 +               cout << endl ; 
 +                    
 +   nEvents ++ ; 
 +   } 
 +  lcReader->close() ; 
 +</code>
  
 +This code example shows how to print float parameters from the EVGEN level (copied from the input ProMC).
 +Here is the example of all parameters (float, integers, strings):
 +<hidden>
 +<code cpp>
 + parameter EVGEN:Code [int]: 10, 
 + parameter EVGEN:DIS:ISR [int]: 0, 
 + parameter EVGEN:ID1 [int]: 11, 
 + parameter EVGEN:ID2 [int]: 2212, 
 + parameter EVGEN:ProcessID [int]: 10, 
 + parameter EVGEN:AlphaQCD [float]: 0.00255778, 
 + parameter EVGEN:AlphaQED [float]: 0.243193, 
 + parameter EVGEN:DIS:Q2 [float]: 12.4407, 
 + parameter EVGEN:DIS:W [float]: 69.6586, 
 + parameter EVGEN:DIS:XBJ [float]: 0.00255778, 
 + parameter EVGEN:DIS:YBJ [float]: 0.243193, 
 + parameter EVGEN:EventsRequested [float]: 50000, 
 + parameter EVGEN:PDF1 [float]: 0, 
 + parameter EVGEN:PDF2 [float]: 0, 
 + parameter EVGEN:Scale [float]: 69.6586, 
 + parameter EVGEN:ScalePDF [float]: 12.4407, 
 + parameter EVGEN:SigmaErrorPB [float]: 737.376, 
 + parameter EVGEN:SigmaPB [float]: 164882, 
 + parameter EVGEN:Weight [float]: 1, 
 + parameter EVGEN:X1 [float]: 0.00255778, 
 + parameter EVGEN:X2 [float]: 0.243193, 
 + parameter EVGEN:eCM [float]: 141, 
 + parameter _weight [float]: 1, 
 + parameter EVGEN:Process [string]: e-p, 
 + parameter GEANT4_VERSION [string]: 10.2.0, 
 + parameter HepSim [string]: 1.1, 
 + parameter ProcessID [string]: -1, 
 + parameter SLIC_VERSION [string]: 5.0.0, 
 +</code>
 +</hidden>
  
 +For EIC ep events, the relevant parameters for a given DIS event are:
 +
 +<code cpp>
 + parameter EVGEN:eCM [float]: 141 
 + parameter EVGEN:Process [string]: e-p
 + parameter EVGEN:ID1 [int]: 11
 + parameter EVGEN:ID2 [int]: 2212 
 + parameter EVGEN:ProcessID [int]: 10 
 + parameter EVGEN:DIS:Q2 [float]: 12.4407      // Truth-level Q^2
 + parameter EVGEN:DIS:W [float]: 69.6586       // Truth-level W
 + parameter EVGEN:DIS:XBJ [float]: 0.00255778  // Truth_level x_bjorken
 + parameter EVGEN:DIS:YBJ [float]: 0.243193    // Truth_level y_bjorken
 </code> </code>
 +
 +Note that SLCIO files have two records representing truth level MC: MCParticle and MCInfo. MCInfo includes information on generated events.
 +See the example how this record was created in [[https://github.com/Argonne-National-Laboratory/ProMC/blob/master/examples/promc2lcio/promc2lcio.java|promc2lcio.java]]
  
  --- //[[[email protected]|Sergei Chekanov]] 2016/09/19 07:06//  --- //[[[email protected]|Sergei Chekanov]] 2016/09/19 07:06//