Embedded particles with vertex info and seq-nr for HADES
//Author: J. Markert
void makeEmbeddedParticlesVertexHGeant(
TString vertex_ntuple = "be05278234631_dst_vertex_real.root",
TString outFile = "be05278234631_pluto_embedded_vertex",
TString outDir = "./"
)
{ // This macro creates n pluto particle per sector (60 deg) with white disribution
// in theta , phi and momentum. The particles will be created
// at the vertex given my the input ntuple extracted from REAL data.
//---------------CONIGURATION----------------------
//
Int_t asciiOut = 0; // write pluto ascci output for HGeant (==0 if we use HGeantOutput)
Int_t rootOut = 0; // write pluto root file
Int_t calcVertex = 1; // write the vertex to the ascii output for HGeant
PChannel* channel = 0; // no channel needed here
Int_t nChannel = 0; // number of channels will be 0
TString myParticle = "e+"; // particle type used for embedding
Bool_t writeSeqNumber = kTRUE; // write eventSeqNumber in addition
Bool_t writeIndex = kTRUE; // write parentIndex in addition
Float_t pmin = 0.050; // minimum mom [GeV/c]
Float_t pmax = 1.000; // maximum mom [GeV/c]
Float_t thetamin = 10; // minimum theta angle [deg]
Float_t thetamax = 90; // maximum theta angle [deg]
Float_t phimin = 0; // minimum phi angle [deg]
Float_t phimax = 60; // maximum phi angle [deg]
Float_t phistart = 0; // start phi angle (+ sector * 60. deg will ber rotated later)
Int_t numParticlePerSector = 1; // number of Particles embedded per sector
//-------------------------------------------------
//-------------------------------------------------
// the output file name will be constructed
// outFile and OutDir (.hld or .root will be stripped)
TString filename = outFile;
filename.ReplaceAll(".root","");
filename.ReplaceAll(".hld" ,"");
filename = outDir + "/" + filename;
cout<<"Output file name : "<<filename.Data()<<endl;
//-------------------------------------------------
PReaction my_reaction(channel,filename.Data(),nChannel,rootOut,0,calcVertex,asciiOut);
my_reaction.SetWriteIndex(writeIndex);
//Construct the vertex container:
PVertexFile *vertex = new PVertexFile();
vertex->OpenFile(vertex_ntuple);
//add to prologue action
my_reaction.AddPrologueBulk(vertex);
PHGeantOutput* output = new PHGeantOutput();
output->SetWriteSeqNumber(writeSeqNumber);
output->OpenFile(Form("%s.evt",filename.Data()));
my_reaction.AddFileOutput(output);
//Construct the embedded container:
PEmbeddedParticles* embedded = new PEmbeddedParticles();
//Add an e+ which we emit at a single point:
PParticle* particle = new PParticle(myParticle.Data(),1.,2.,3.);
//Just add the particle to the container:
embedded->AddParticle(particle);
// added particle will be cloned with
// n times per sector
if (1) {
// nparticle / sector
embedded->SetSamplingSector(pmin , pmax, // pmin,pmax
thetamin, thetamax, // theta_min, theta_max
phimin , phimax, // phi_min,phi_max
phistart, numParticlePerSector ); // phiStart, numParticle/sector
} else {
// nparticle / full acceptance
embedded->SetSamplingSector(pmin , pmax, // pmin,pmax
thetamin, thetamax, // theta_min, theta_max
-180. , 180., // phi_min,phi_max
phistart, numParticlePerSector, // phiStart, numParticle/sector
360. , 1); // Delta-phi, nSec
}
//Add our container to the reaction:
my_reaction.AddBulk(embedded);
// number of events
my_reaction.Loop(10000);
output->CloseFile();
}
plugin_makeEmbeddedParticlesVertexHGeant.C:1 plugin_makeEmbeddedParticlesVertexHGeant.C:2 plugin_makeEmbeddedParticlesVertexHGeant.C:3 plugin_makeEmbeddedParticlesVertexHGeant.C:4 plugin_makeEmbeddedParticlesVertexHGeant.C:5 plugin_makeEmbeddedParticlesVertexHGeant.C:6 plugin_makeEmbeddedParticlesVertexHGeant.C:7 plugin_makeEmbeddedParticlesVertexHGeant.C:8 plugin_makeEmbeddedParticlesVertexHGeant.C:9 plugin_makeEmbeddedParticlesVertexHGeant.C:10 plugin_makeEmbeddedParticlesVertexHGeant.C:11 plugin_makeEmbeddedParticlesVertexHGeant.C:12 plugin_makeEmbeddedParticlesVertexHGeant.C:13 plugin_makeEmbeddedParticlesVertexHGeant.C:14 plugin_makeEmbeddedParticlesVertexHGeant.C:15 plugin_makeEmbeddedParticlesVertexHGeant.C:16 plugin_makeEmbeddedParticlesVertexHGeant.C:17 plugin_makeEmbeddedParticlesVertexHGeant.C:18 plugin_makeEmbeddedParticlesVertexHGeant.C:19 plugin_makeEmbeddedParticlesVertexHGeant.C:20 plugin_makeEmbeddedParticlesVertexHGeant.C:21 plugin_makeEmbeddedParticlesVertexHGeant.C:22 plugin_makeEmbeddedParticlesVertexHGeant.C:23 plugin_makeEmbeddedParticlesVertexHGeant.C:24 plugin_makeEmbeddedParticlesVertexHGeant.C:25 plugin_makeEmbeddedParticlesVertexHGeant.C:26 plugin_makeEmbeddedParticlesVertexHGeant.C:27 plugin_makeEmbeddedParticlesVertexHGeant.C:28 plugin_makeEmbeddedParticlesVertexHGeant.C:29 plugin_makeEmbeddedParticlesVertexHGeant.C:30 plugin_makeEmbeddedParticlesVertexHGeant.C:31 plugin_makeEmbeddedParticlesVertexHGeant.C:32 plugin_makeEmbeddedParticlesVertexHGeant.C:33 plugin_makeEmbeddedParticlesVertexHGeant.C:34 plugin_makeEmbeddedParticlesVertexHGeant.C:35 plugin_makeEmbeddedParticlesVertexHGeant.C:36 plugin_makeEmbeddedParticlesVertexHGeant.C:37 plugin_makeEmbeddedParticlesVertexHGeant.C:38 plugin_makeEmbeddedParticlesVertexHGeant.C:39 plugin_makeEmbeddedParticlesVertexHGeant.C:40 plugin_makeEmbeddedParticlesVertexHGeant.C:41 plugin_makeEmbeddedParticlesVertexHGeant.C:42 plugin_makeEmbeddedParticlesVertexHGeant.C:43 plugin_makeEmbeddedParticlesVertexHGeant.C:44 plugin_makeEmbeddedParticlesVertexHGeant.C:45 plugin_makeEmbeddedParticlesVertexHGeant.C:46 plugin_makeEmbeddedParticlesVertexHGeant.C:47 plugin_makeEmbeddedParticlesVertexHGeant.C:48 plugin_makeEmbeddedParticlesVertexHGeant.C:49 plugin_makeEmbeddedParticlesVertexHGeant.C:50 plugin_makeEmbeddedParticlesVertexHGeant.C:51 plugin_makeEmbeddedParticlesVertexHGeant.C:52 plugin_makeEmbeddedParticlesVertexHGeant.C:53 plugin_makeEmbeddedParticlesVertexHGeant.C:54 plugin_makeEmbeddedParticlesVertexHGeant.C:55 plugin_makeEmbeddedParticlesVertexHGeant.C:56 plugin_makeEmbeddedParticlesVertexHGeant.C:57 plugin_makeEmbeddedParticlesVertexHGeant.C:58 plugin_makeEmbeddedParticlesVertexHGeant.C:59 plugin_makeEmbeddedParticlesVertexHGeant.C:60 plugin_makeEmbeddedParticlesVertexHGeant.C:61 plugin_makeEmbeddedParticlesVertexHGeant.C:62 plugin_makeEmbeddedParticlesVertexHGeant.C:63 plugin_makeEmbeddedParticlesVertexHGeant.C:64 plugin_makeEmbeddedParticlesVertexHGeant.C:65 plugin_makeEmbeddedParticlesVertexHGeant.C:66 plugin_makeEmbeddedParticlesVertexHGeant.C:67 plugin_makeEmbeddedParticlesVertexHGeant.C:68 plugin_makeEmbeddedParticlesVertexHGeant.C:69 plugin_makeEmbeddedParticlesVertexHGeant.C:70 plugin_makeEmbeddedParticlesVertexHGeant.C:71 plugin_makeEmbeddedParticlesVertexHGeant.C:72 plugin_makeEmbeddedParticlesVertexHGeant.C:73 plugin_makeEmbeddedParticlesVertexHGeant.C:74 plugin_makeEmbeddedParticlesVertexHGeant.C:75 plugin_makeEmbeddedParticlesVertexHGeant.C:76 plugin_makeEmbeddedParticlesVertexHGeant.C:77 plugin_makeEmbeddedParticlesVertexHGeant.C:78 plugin_makeEmbeddedParticlesVertexHGeant.C:79 plugin_makeEmbeddedParticlesVertexHGeant.C:80 plugin_makeEmbeddedParticlesVertexHGeant.C:81 plugin_makeEmbeddedParticlesVertexHGeant.C:82 plugin_makeEmbeddedParticlesVertexHGeant.C:83 plugin_makeEmbeddedParticlesVertexHGeant.C:84 plugin_makeEmbeddedParticlesVertexHGeant.C:85 plugin_makeEmbeddedParticlesVertexHGeant.C:86 plugin_makeEmbeddedParticlesVertexHGeant.C:87 plugin_makeEmbeddedParticlesVertexHGeant.C:88 plugin_makeEmbeddedParticlesVertexHGeant.C:89 plugin_makeEmbeddedParticlesVertexHGeant.C:90 plugin_makeEmbeddedParticlesVertexHGeant.C:91 plugin_makeEmbeddedParticlesVertexHGeant.C:92 plugin_makeEmbeddedParticlesVertexHGeant.C:93 plugin_makeEmbeddedParticlesVertexHGeant.C:94 plugin_makeEmbeddedParticlesVertexHGeant.C:95 plugin_makeEmbeddedParticlesVertexHGeant.C:96 plugin_makeEmbeddedParticlesVertexHGeant.C:97 plugin_makeEmbeddedParticlesVertexHGeant.C:98 plugin_makeEmbeddedParticlesVertexHGeant.C:99 plugin_makeEmbeddedParticlesVertexHGeant.C:100 plugin_makeEmbeddedParticlesVertexHGeant.C:101 plugin_makeEmbeddedParticlesVertexHGeant.C:102