14 #include "TClonesArray.h"
15 #include "TVirtualMC.h"
16 #include "TDatabasePDG.h"
17 #include "TParticlePDG.h"
20 #include "FairRootManager.h"
21 #include "FairRunAna.h"
22 #include "FairRuntimeDb.h"
28 #include "LSLTrackRep.h"
36 #include "FairRuntimeDb.h"
42 #include "RhoTools/TEventShape.h"
55 FairTask(
"FastSim Dump") {
84 cout <<
" Inside the Init function****" << endl;
91 FairRootManager* ioman = FairRootManager::Instance();
93 cout <<
"-E- PndHypMicroIdealWriter::Init: "
94 <<
"RootManager not instantiated!" << endl;
98 fTrArray = (TClonesArray*) ioman->GetObject(
"Track");
100 cout <<
"-W- PndHypMicroIdealWriter::Init: "
101 <<
"No TpcTrack array!" << endl;
107 fHitArray = (TClonesArray*) ioman->GetObject(
"HypPoint");
109 cout <<
"-W- PndHypMicroIdealWriter::Init: "
110 <<
"No Hit array!" << endl;
111 fHitArray =
new TClonesArray(
"HypPoint");
137 FairRootManager::Instance()->Register(
"PndMicroIdealCandidates",
"FullSim",
fMicroIdealCandidates, kTRUE);
143 cout <<
"-I- PndHypMicroIdealWriter: Intialization successfull" << endl;
156 FairRunAna* ana = FairRunAna::Instance();
157 FairRuntimeDb*
rtdb=ana->GetRuntimeDb();
204 TLorentzVector McSumP4(0,0,0,0);
205 TVector3 McAvgVtx(0,0,0);
219 for (Int_t
i=0;
i<nTracks;
i++)
223 Int_t micsize = microCandidates.GetEntriesFast();
231 std::cout<<
"Discarding track. Status flag !=0" <<std::endl;
234 LSLTrackRep* myrep=
dynamic_cast<LSLTrackRep*
>(tr1->
getTrackRep(0));
238 d = myrep->getGlobal();
247 TVector3 vtx(d[0],d[1],d[2]);
250 lv.SetXYZM(d[3],d[4],d[5],0.13957);
266 TMatrixD globalCov = myrep->getGlobalCov();
271 for (ii=0;ii<6;ii++)
for(jj=0;jj<6;jj++) mat[ii][jj]=globalCov[ii][jj];
275 double invE = 1./lv.E();
291 unsigned int detId, hitId;
292 unsigned int numhits=0,mvdhits=0,stthits=0,tpchits=0;
302 for (ii=0;ii<numhits;++ii)
308 case 2:
mvd_hitidx[mvdhits]=hitId;
if(mvdhits<1000) mvdhits++;
break;
310 default:
tpc_hitidx[tpchits]=hitId;
if(tpchits<1000) tpchits++;
break;
313 micro->SetMvdHitIndexArray(mvdhits,
mvd_hitidx);
337 TVector3
pos(0,0,-76.5);
338 GFDetPlane pfin(pos,TVector3(1,0,0),TVector3(0,1,0));
342 TMatrixT<double> state(5,1);
343 TMatrixT<double> cov(5,5);
345 dist=myrep->getPos(pfin) ;
383 double calFactor=1.035;
TClonesArray * fMcCandidates
Base Class for genfit track representations. Defines interface for track parameterizations.
Detector plane genfit geometry class.
Track object for genfit. genfit algorithms work on these objects.
unsigned int getNHits() const
void SetPosition(TVector3 &pos)
~PndHypMicroIdealWriter()
TClonesArray * fMicroIdealCandidates
TClonesArray * fEventInfo
virtual void SetParContainers()
void PositionIn(TVector3 &pos)
void getHit(unsigned int i, unsigned int &detId, unsigned int &hitId) const
Get detector ID and cluster index (hitId) for hit number i.
TClonesArray * fChargedCandidates
TClonesArray * fNeutralCandidates
GFAbsTrackRep * getTrackRep(int id) const
Accessor for track representations.
virtual InitStatus Init()
GFAbsTrackRep * getCardinalRep() const
Get cardinal track representation.
const GFTrackCand & getCand() const
virtual void Exec(Option_t *opt)
TMatrixT< double > TMatrixD