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++] |
| |
<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// |
| |