BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtDecay Class Reference

#include <EvtDecay.h>

+ Inheritance diagram for EvtDecay:

Public Member Functions

 EvtDecay (const string &name, ISvcLocator *pSvcLocator)
 
StatusCode initialize ()
 
StatusCode execute ()
 
StatusCode finalize ()
 
double ampsLenu (vector< double > Vexp, std::vector< double > vpars)
 
double ampsLbenu (vector< double > Vexp, std::vector< double > vpars)
 
double HV (double i, double j, vector< double > Vexp, std::vector< double > vpars)
 
double HA (double i, double j, vector< double > Vexp, std::vector< double > vpars)
 
double getObsXsection (double mhds, int mode)
 
double energySpread (double mu, double sigma)
 

Public Attributes

IDataInfoSvctmpInfoSvc
 
DataInfoSvcdataInfoSvc
 

Detailed Description

Definition at line 65 of file EvtDecay.h.

Constructor & Destructor Documentation

◆ EvtDecay()

EvtDecay::EvtDecay ( const string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 83 of file EvtDecay.cxx.

83 :Algorithm( name, pSvcLocator )
84{
85
86
87
88 // these can be used to specify alternative locations or filenames
89 // for the EvtGen particle and channel definition files.
90
91 declareProperty("DecayDecDir", m_DecayDec = "");
92 declareProperty("PdtTableDir", m_PdtTable = "");
93 declareProperty("userDecayTableName", userDecFileName = "NONE");
94 declareProperty("DecayTopology", m_DecayTop = ""); // output decay topology to a file specified by user
95 declareProperty("DecayRecord", m_DecayRec = ""); // output decay topology of one particle specified by user to a file
96 declareProperty("ParentParticle", m_ParentPart = "NONE");// Mothor particle name in pdt.table for only running BesEvtGen
97 declareProperty("Multiplicity", m_Ncharge = false); // output ncharge number of an event
98 declareProperty("NutupleFile",m_NtupleFile = false); // output Ntuple file
99 declareProperty("mDIY",_mDIY= false); // mDIY model
100 declareProperty("FDPdata",m_SB3File = ""); // Fit Dalitz Plot (FDP) data file name (*.root)
101 declareProperty("FDPHisT",m_SB3HT = ""); // histogram title of Dalitz plot in data file
102 declareProperty("FDPpart",m_FDPparticle =""); //to assign the FDP parent particle name (string)
103 declareProperty("TruthFile",m_truthFile ="");
104 declareProperty("TruthPart",m_truthPart ="");
105 declareProperty("Psi3SopenCharm",m_Psi4040OpenCharm=false);
106 declareProperty("Psi2openCharm", m_Psi2openCharm=false);
107 declareProperty("SetMthrForConExc",m_SetMthr=0.0);
108 declareProperty("statDecays",m_statDecays=false);
109 declareProperty("TagLundCharmModel", m_tagLundModel=false);
110 m_mystring.clear();
111 declareProperty("FileForTrackGen", m_mystring);
112 //for polarized charmonium production
113 m_polarization.clear();//= diag{1+Pe, 0, 1-Pe} with electron polarization Pe
114 declareProperty("polarization", m_polarization);
115 declareProperty("eBeamPolarization", m_eBeamPolarization=-1);
116 m_cluster0.clear();m_wind0.clear();
117 m_cluster1.clear();m_wind1.clear();
118 m_cluster2.clear();m_wind2.clear();
119 declareProperty("cluster0",m_cluster0);
120 declareProperty("cluster1",m_cluster1);
121 declareProperty("cluster2",m_cluster2);
122 declareProperty("masswin0",m_wind0);
123 declareProperty("masswin1",m_wind1);
124 declareProperty("masswin2",m_wind2);
125 declareProperty("OutputP4",m_outputp4="");
126 declareProperty("ReadMeasuredEcms", m_RdMeasuredEcms = false);
127 declareProperty("beamEnergySpread", m_beamEnergySpread = 0);
128 m_ReadTruth.clear();
129 declareProperty("ReadTruthAtCM",_truthAtCM=false);
130 declareProperty("ReadTruth",m_ReadTruth);
131 //ReadTruth={{"ParentName"},{"i0","i1","i2"},{"j0","j1","j2","j3"}}, where the first part. is Parent->getDaug(i0)->getDaug(i1)->getDaug(i2),
132 //and second particle is Parent ->getDaug(j0)->getDaug(j1)->getDaug(j2)->getDaug(j3);
133 declareProperty("RvalueTag",_RvalueTag=false);
134 declareProperty("PrintFSFor",m_printfs="");
135}

Member Function Documentation

◆ ampsLbenu()

double EvtDecay::ampsLbenu ( vector< double >  Vexp,
std::vector< double >  vpars 
)

◆ ampsLenu()

double EvtDecay::ampsLenu ( vector< double >  Vexp,
std::vector< double >  vpars 
)

◆ energySpread()

double EvtDecay::energySpread ( double  mu,
double  sigma 
)

Definition at line 1604 of file EvtDecay.cxx.

1604 {
1605 //mu: mean value in Gaussian
1606 //sigma: variance in Gaussian
1607 rloop:
1608 int n=12;
1609 double ri=0;
1610 for(int i=0;i<n;i++){
1611 double pm= EvtRandom::Flat(0.,1);
1612 ri += pm;
1613 }
1614 double eta=sqrt(n*12.0)*(ri/12-0.5);
1615 double xsig= sigma*eta+mu;
1616 double mx0=EvtConExc::mlow;
1617 double mx1=EvtConExc::mup;
1618 if(xsig<mx0 || xsig>mx1) goto rloop;
1619 return xsig;
1620}
TTree * sigma
const Int_t n
static double mlow
Definition: EvtConExc.hh:235
static double mup
Definition: EvtConExc.hh:235
static double Flat()
Definition: EvtRandom.cc:74

◆ execute()

StatusCode EvtDecay::execute ( )

Definition at line 336 of file EvtDecay.cxx.

337{
338
339 MsgStream log(messageService(), name());
340 // log << MSG::INFO << "EvtDecay executing" << endreq;
341 //------------------
342 string key = "GEN_EVENT";
343 // retrieve event from Transient Store (Storegate)
344 SmartDataPtr<McGenEventCol> McEvtColl(eventSvc(), "/Event/Gen");
345
346 m_numberEvent += 1;
347 writeFlag = 0;
348 //std::cout<<"EvtNumber= "<<m_numberEvent<<std::endl;
349 if ( McEvtColl == 0 )
350 {
351 HepMC::GenEvent* evt=new GenEvent();
352 evt->set_event_number(m_numberEvent);
353
354 //read Ecms from the database
355 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
356 int runNo=eventHeader->runNumber();
357 int event=eventHeader->eventNumber();
358 bool newRunFlag=0;
359 if(runNo != 0 && runNo != m_runNo){m_runNo=runNo;newRunFlag = true;}else{newRunFlag=false;}
360 if(m_RdMeasuredEcms&& newRunFlag){// using cms energy of beam read from database
361 runNo = std::abs(runNo);
362 ReadME theME(runNo);
363 if(theME.isRunNoValid()){
364 dbEcms=theME.getEcms();
365 std::cout<<"Read Ecms= "<<dbEcms<<std::endl;
366 if(dbEcms!=0){
367 std::cout<<"INFO: Read the MeasuredEcms"<<std::endl;
368 }
369 else{
370 std::cout<<"ERROR: Can not read the MeasuredEcms, try to turn off the ReadEcmsDB"<<std::endl;
371 return StatusCode::FAILURE;
372 }
373 }
374 }
375 //end of read Ecms
376
377 callBesEvtGen( evt );
378 if(!(m_DecayTop=="")) evt->print(outfile);
379
380 //create a Transient store
381 McGenEventCol *mcColl = new McGenEventCol;
382 McGenEvent* mcEvent = new McGenEvent(evt);
383 mcColl->push_back(mcEvent);
384 StatusCode sc = eventSvc()->registerObject("/Event/Gen",mcColl);
385 if(sc != SUCCESS) return StatusCode::FAILURE;
386
387 } else // (McEvtColl != 0)
388 {
389 McGenEventCol::iterator mcItr;
390 for( mcItr = McEvtColl->begin(); mcItr != McEvtColl->end(); mcItr++ )
391 {
392 HepMC::GenEvent* hEvt = (*mcItr)->getGenEvt();
393 // MeVToGeV( hEvt );
394
395 callEvtGen( hEvt );
396
397 if(!(m_DecayTop=="")) hEvt->print(outfile);
398 // GeVToMeV( hEvt );
399 // if(!(m_DecayRec=="")) outfile2<<std::endl;
400 if(!(m_DecayRec=="")) std::cout<<std::endl;
401 };
402 }
403 if( m_NtupleFile ){ m_tuple->write();}
404
405 if(_mDIY){
406 std::cout<<"helangs ";
407 for(int i=0;i<m_vangs.size();i++) std::cout<<m_vangs[i]<<" ";
408 std::cout<<std::endl;
409 }
410 return StatusCode::SUCCESS;
411}
int runNo
Definition: DQA_TO_DB.cxx:12
ObjectVector< McGenEvent > McGenEventCol
Definition: McGenEvent.h:39
*************DOUBLE PRECISION m_pi *DOUBLE PRECISION m_HvecTau2 DOUBLE PRECISION m_HvClone2 DOUBLE PRECISION m_gamma1 DOUBLE PRECISION m_gamma2 DOUBLE PRECISION m_thet1 DOUBLE PRECISION m_thet2 INTEGER m_IFPHOT *COMMON c_Taupair $ !Spin Polarimeter vector first Tau $ !Spin Polarimeter vector second Tau $ !Clone Spin Polarimeter vector first Tau $ !Clone Spin Polarimeter vector second Tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning st tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !Random Euler angle for cloning nd tau $ !phi of HvecTau1 $ !theta of HvecTau1 $ !phi of HvecTau2 $ !theta of HvecTau2 $ !super key
Definition: Taupair.h:42

◆ finalize()

StatusCode EvtDecay::finalize ( )

Definition at line 996 of file EvtDecay.cxx.

997{
998
999 if(EvtCalHelAmp::nevt>0){
1000 double H2=EvtCalHelAmp::_H2;
1001 double H1=EvtCalHelAmp::_H1;
1002 double H0=EvtCalHelAmp::_H0;
1003 double H2err=EvtCalHelAmp::_H2err;
1004 double H1err=EvtCalHelAmp::_H1err;
1005 double H0err=EvtCalHelAmp::_H0err;
1006 int nd = EvtCalHelAmp::nevt;
1007 std::cout<<"Calculated helicity amplitude sqaured are:"<<std::endl;
1008 std::cout<<"|H_{2}|^2=|H_{-2}|^2= "<<H2/nd<<" +/- "<<sqrt(H2err/nd)<<endl;
1009 std::cout<<"|H_{1}|^2=|H_{-1}|^2= "<<H1/nd<<" +/- "<<sqrt(H1err/nd)<<endl;
1010 //std::cout<<"|H_{0}|^2= "<<H0/nd <<" +/- "<<sqrt(H0err/nd)<<endl;
1011 }
1012 MsgStream log(messageService(), name());
1013 truth.close();
1014 log << MSG::INFO << "EvtDecay finalized" << endreq;
1015 fstream Forfile;
1016 Forfile.open("fort.16",ios::in);
1017 char delcmd[300];
1018 strcpy(delcmd,"rm -f ");
1019 strcat(delcmd,"fort.16");
1020 // if(Forfile)system(delcmd);
1021
1022 fstream Forfile2;
1023 Forfile2.open("fort.22",ios::in);
1024 strcpy(delcmd,"rm -f ");
1025 strcat(delcmd,"fort.22");
1026 // if(Forfile2)system(delcmd);
1027
1028 // To get the branching fraction of the specified mode in Lundcharm Model
1029 /*
1030 EvtLundCharm lundcharmEvt;
1031 int nevt=lundcharmEvt.getTotalEvt();
1032 std::cout<<"The total number of the specified mode is "<<nevt<<std::endl;
1033 */
1034 int totalEvt=0;
1035 if(!(m_SB3File=="" || m_SB3HT=="")){
1036 for(int i=0;i<500;i++){totalEvt=totalEvt+br[i];}
1037 for(int i=0;i<500;i++){
1038 double bi=1.0*br[i]/totalEvt;
1039 std::cout<<"Branching fraction of channel "<<i<<" is: "<<bi<<std::endl;
1040 if(br[i]==0) break;
1041 }
1042 }
1043
1044 if(m_statDecays){
1045 int totalEvt=0;
1046 for(int i=0;i<=totalChannels;i++){totalEvt=totalEvt+br[i];}
1047 std::cout<<"==================Statistical first chain decay ==============================="<<std::endl;
1048 std::cout<<"i-th channel Events Generated Branching fraction generated "<<std::endl;
1049 for(int i=0;i<=totalChannels;i++){
1050 std::cout<<"| "<<i<<" "<<br[i]<<" "<<br[i]*1.0/totalEvt<<std::endl;
1051
1052 }
1053 std::cout<<"--------------------------------------------------------------------------------"<<std::endl;
1054 std::cout<<" sum: "<<totalEvt<<" "<<"1"<<std::endl;
1055 std::cout<<"================== End of statistical first chain decay ========================"<<std::endl;
1056 }
1057
1058 return StatusCode::SUCCESS;
1059}
static double _H0err
Definition: EvtCalHelAmp.hh:58
static double _H1err
Definition: EvtCalHelAmp.hh:58
static double _H0
Definition: EvtCalHelAmp.hh:58
static int nevt
Definition: EvtCalHelAmp.hh:59
static double _H1
Definition: EvtCalHelAmp.hh:58
static double _H2
Definition: EvtCalHelAmp.hh:58
static double _H2err
Definition: EvtCalHelAmp.hh:58

◆ getObsXsection()

double EvtDecay::getObsXsection ( double  mhds,
int  mode 
)

◆ HA()

double EvtDecay::HA ( double  i,
double  j,
vector< double >  Vexp,
std::vector< double >  vpars 
)

◆ HV()

double EvtDecay::HV ( double  i,
double  j,
vector< double >  Vexp,
std::vector< double >  vpars 
)

◆ initialize()

StatusCode EvtDecay::initialize ( )

Definition at line 138 of file EvtDecay.cxx.

138 {
139
140 MsgStream log(messageService(), name());
141 system("cat $BESEVTGENROOT/share/phokhara_9.1.fferr>phokhara_9.1.fferr");
142 system("cat $BESEVTGENROOT/share/phokhara_9.1.ffwarn>phokhara_9.1.ffwarn");
143
144 if(m_truthFile!=""){truth.open(m_truthFile.c_str());}
145 log << MSG::INFO << "EvtDecay initialize" << endreq;
146 static const bool CREATEIFNOTTHERE(true);
147 StatusCode RndmStatus = service("BesRndmGenSvc", p_BesRndmGenSvc, CREATEIFNOTTHERE);
148 if (!RndmStatus.isSuccess() || 0 == p_BesRndmGenSvc)
149 {
150 log << MSG::ERROR << " Could not initialize Random Number Service" << endreq;
151 return RndmStatus;
152 }
153
154 EvtGlobalSet::SV.clear();
155 for(int i=0;i<m_mystring.size();i++){EvtGlobalSet::SV.push_back(m_mystring[i]);}
156
157 EvtGlobalSet::iVV.clear();
158 EvtGlobalSet::dVV.clear();
159 std::vector<std::vector<int> >myivv;
160 std::vector<std::vector<double> >mydvv;
161
162 EvtConExc::SetMthr=m_SetMthr;
163
164 myivv.push_back(m_cluster0);
165 myivv.push_back(m_cluster1);
166 myivv.push_back(m_cluster2);
167
168 mydvv.push_back(m_wind0);
169 mydvv.push_back(m_wind1);
170 mydvv.push_back(m_wind2);
171
172 for(int i=0;i<myivv.size();i++){
173 std::vector<int> theivv;
174 for(int j=0;j<myivv[i].size();j++){
175 theivv.push_back(myivv[i][j]);
176 }
177 if(theivv.size()) EvtGlobalSet::iVV.push_back(theivv);
178 }
179
180 for(int i=0;i<mydvv.size();i++){
181 std::vector<double> thedvv;
182 for(int j=0;j<mydvv[i].size();j++){
183 thedvv.push_back(mydvv[i][j]);
184 }
185 if(thedvv.size()) EvtGlobalSet::dVV.push_back(thedvv);
186 }
187
188
189 if(m_eBeamPolarization>1) {std::cout<<"The e-beam polaziation should be in 0 to 1"<<std::endl;abort();}
190 m_numberEvent=0;
191 first = true;
192 m_ampscalflag = true;
193 // Save the random number seeds in the event
194 CLHEP::HepRandomEngine* engine = p_BesRndmGenSvc->GetEngine("EVTGEN");
195 const long s = engine->getSeed();
196 p_BesRndmGenSvc->setGenseed(s+1);
197
198 m_seeds.clear();
199 m_seeds.push_back(s);
200 totalChannels = 0;
201
202 // open an interface to EvtGen
203
204 if ( m_DecayDec == "") { //use default DECAY.DEC and pdt.table if not defined by user
205 m_DecayDec=getenv("BESEVTGENROOT");
206 m_DecayDec +="/share/DECAY.DEC";
207 }
208
209 if ( m_PdtTable == "") {
210 m_PdtTable =getenv("BESEVTGENROOT");
211 m_PdtTable +="/share/pdt.table";
212 }
213
214 char catcmd[300]; //output user decay cards to log file
215 std::cout<<"===================== user decay card ========================"<<std::endl;
216 strcpy(catcmd, "cat ");
217 strcat(catcmd, userDecFileName.c_str());
218 system(catcmd);
219
222
223 // write decay cards to the root file: pingrg@2009-09-09
224 StatusCode status;
225 status = service("DataInfoSvc",tmpInfoSvc);
226 if (status.isSuccess()) {
227 log << MSG::INFO << "got the DataInfoSvc" << endreq;
228 dataInfoSvc=dynamic_cast<DataInfoSvc *>(tmpInfoSvc);
229 dataInfoSvc->setDecayCard(userDecFileName);
230 } else {
231 log << MSG::ERROR << "could not get the DataInfoSvc" << endreq;
232 return StatusCode::FAILURE;
233 }
234
235
236
237 m_RandomEngine = new EvtBesRandom(engine);
238 m_Gen = new EvtGen( m_DecayDec.c_str(), m_PdtTable.c_str(), m_RandomEngine );
239
240 if(userDecFileName =="NONE") log << MSG::INFO << "EvtDecay User did not define his Decay table EvtGen will use standart" << endreq;
241 if(!(userDecFileName =="NONE")) m_Gen->readUDecay(userDecFileName.c_str());
242
243 if(!(m_DecayTop==" ")) {
244 outfile.open(m_DecayTop.c_str());
245 }
246
247 //for output Ntuple file, pingrg-2009-09-07
248
249
250 if(m_NtupleFile) {
251 NTuplePtr nt1(ntupleSvc(),"MYROOTFILE/Trk");
252 if(nt1) {m_tuple=nt1;}
253 else {
254 m_tuple = ntupleSvc()->book ("MYROOTFILE/Trk", CLID_ColumnWiseTuple, "Generator-trk-Ntuple");
255 if(m_tuple){
256 status = m_tuple->addItem ("TotNumTrk", TotNumTrk, 0,100);
257 status = m_tuple->addIndexedItem ("Trk_index", TotNumTrk, m_Trk_index);
258 status = m_tuple->addIndexedItem ("m_px_trk", TotNumTrk, m_px_trk);
259 status = m_tuple->addIndexedItem ("m_py_trk", TotNumTrk, m_py_trk);
260 status = m_tuple->addIndexedItem ("m_pz_trk", TotNumTrk, m_pz_trk);
261 status = m_tuple->addIndexedItem ("m_en_trk", TotNumTrk, m_en_trk);
262 status = m_tuple->addIndexedItem ("FST", TotNumTrk, m_fst);
263
264 status = m_tuple->addItem ("nchr", m_nchr);
265 status = m_tuple->addItem ("nchr_e", m_nchr_e);
266 status = m_tuple->addItem ("nchr_mu", m_nchr_mu);
267 status = m_tuple->addItem ("nchr_pi", m_nchr_pi);
268 status = m_tuple->addItem ("nchr_k", m_nchr_k);
269 status = m_tuple->addItem ("nchr_p", m_nchr_p);
270 status = m_tuple->addItem ("N_gamma", m_gamma);
271 status = m_tuple->addItem ("N_gammaFSR", m_gammaFSR);
272 status = m_tuple->addItem ("Flag1", m_flag1);
273 } else {
274 log << MSG::ERROR << " Cannot book N-tuple:"<< long(m_tuple) << endmsg;
275 return StatusCode::FAILURE;
276 }
277 }
278
279 NTuplePtr nt2(ntupleSvc(),"MYROOTFILE/mass");
280 if(nt2) {mass_tuple=nt2;}
281 else {
282 mass_tuple = ntupleSvc()->book ("MYROOTFILE/mass", CLID_ColumnWiseTuple, "Generator-mass-Ntuple");
283 if(mass_tuple){
284 status = mass_tuple->addItem ("m12", m_m12);
285 status = mass_tuple->addItem ("m13", m_m13);
286 status = mass_tuple->addItem ("m23", m_m23);
287 status = mass_tuple->addItem ("m1", m_m1);
288 status = mass_tuple->addItem ("m2", m_m2);
289 status = mass_tuple->addItem ("m3", m_m3);
290 status = mass_tuple->addItem ("costheta1", m_cos1);
291 status = mass_tuple->addItem ("costheta2", m_cos2);
292 status = mass_tuple->addItem ("costheta3", m_cos3);
293 status = mass_tuple->addItem ("ichannel", m_ich);
294 } else {
295 log << MSG::ERROR << " Cannot book N-tuple:"<< long(m_tuple) << endmsg;
296 return StatusCode::FAILURE;
297 }
298 }
299
300 NTuplePtr nt3(ntupleSvc(),"MYROOTFILE/massGen");
301 if(nt3) {massgen_tuple=nt3;}
302 else {
303 massgen_tuple = ntupleSvc()->book ("MYROOTFILE/massGen", CLID_ColumnWiseTuple, "Generator-mass-Ntuple");
304 if(massgen_tuple){
305 status = massgen_tuple->addItem ("m12", _m12);
306 status = massgen_tuple->addItem ("m13", _m13);
307 status = massgen_tuple->addItem ("m23", _m23);
308 status = massgen_tuple->addItem ("m1", _m1);
309 status = massgen_tuple->addItem ("m2", _m2);
310 status = massgen_tuple->addItem ("m3", _m3);
311 status = massgen_tuple->addItem ("costheta1", _cos1);
312 status = massgen_tuple->addItem ("costheta2", _cos2);
313 status = massgen_tuple->addItem ("costheta3", _cos3);
314 status = massgen_tuple->addItem ("ichannel", _ich);
315 } else {
316 log << MSG::ERROR << " Cannot book N-tuple:"<< long(m_tuple) << endmsg;
317 return StatusCode::FAILURE;
318 }
319 }
320
321
322 }
323 for(int i=0;i<500;i++){br[i]=0;}
324 if(!(m_SB3File=="" && m_SB3HT=="")) {
325 const char *filename, *histitle;
326 filename=(char*)m_SB3File.c_str();
327 histitle=(char*)m_SB3HT.c_str();
328 SuperBody3decay.setFile(filename);
329 SuperBody3decay.setHTitle(histitle);
330 SuperBody3decay.init();
331 }
332
333 return StatusCode::SUCCESS;
334}
XmlRpcServer s
Definition: HelloServer.cpp:11
INTupleSvc * ntupleSvc()
void setDecayCard(string card)
Definition: DataInfoSvc.cxx:50
static double SetMthr
Definition: EvtConExc.hh:192
DataInfoSvc * dataInfoSvc
Definition: EvtDecay.h:75
IDataInfoSvc * tmpInfoSvc
Definition: EvtDecay.h:74
Definition: EvtGen.hh:46
void readUDecay(const char *const udecay_name)
Definition: EvtGen.cc:126
static std::vector< std::string > SV
Definition: EvtGlobalSet.hh:19
static std::vector< std::vector< double > > dVV
Definition: EvtGlobalSet.hh:21
static std::vector< std::vector< int > > iVV
Definition: EvtGlobalSet.hh:22
void init()
Definition: EvtHis2F.cc:98
void setHTitle(const char *htitle)
Definition: EvtHis2F.cc:40
void setFile(const char *dtfile)
Definition: EvtHis2F.cc:35
virtual void setGenseed(long)=0
virtual CLHEP::HepRandomEngine * GetEngine(const std::string &StreamName)=0
Interface to the CLHEP engine.

Member Data Documentation

◆ dataInfoSvc

DataInfoSvc* EvtDecay::dataInfoSvc

Definition at line 75 of file EvtDecay.h.

Referenced by initialize().

◆ tmpInfoSvc

IDataInfoSvc* EvtDecay::tmpInfoSvc

Definition at line 74 of file EvtDecay.h.

Referenced by initialize().


The documentation for this class was generated from the following files: