FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndFtof Class Reference

#include <PndFtof.h>

Inheritance diagram for PndFtof:

Public Member Functions

 PndFtof ()
 
 PndFtof (const char *name, Bool_t active)
 
virtual ~PndFtof ()
 
virtual void Initialize ()
 
virtual Bool_t ProcessHits (FairVolume *vol=0)
 
virtual void EndOfEvent ()
 
virtual void BeginEvent ()
 
virtual void Register ()
 
virtual TClonesArray * GetCollection (Int_t iColl) const
 
virtual void Print () const
 
virtual void Reset ()
 
virtual void CopyClones (TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
 
virtual void ConstructGeometry ()
 
void ConstructASCIIGeometry ()
 
PndFtofPointAddHit (Int_t trackID, Int_t evtID, Int_t detID, TString detName, TVector3 posin, TVector3 momin, TVector3 posout, TVector3 momout, Double_t tof, Double_t length, Double_t eLoss, Double_t charge, Double_t mass, Int_t pdgCode, Double_t dist, Double_t PLin, Double_t PLout)
 

Private Member Functions

bool CheckIfSensitive (std::string name)
 
void ResetParameters ()
 Hit collection. More...
 

Private Attributes

std::vector< std::string > fListOfSensitives
 
PndGeoFtofParpar
 
Int_t fTrackID
 
Int_t fVolumeID
 
Int_t fEventID
 
TLorentzVector fPosIn
 
TLorentzVector fMomIn
 
TLorentzVector fPosOut
 
TLorentzVector fMomOut
 
Double_t fPLout
 
Double_t fPLin
 
Double32_t fTime
 
Double32_t fLength
 
Double32_t fELoss
 
Int_t fPosIndex
 
Int_t fpdgCode
 
Int_t SiId
 
Int_t CId
 
Int_t alId
 
Int_t beId
 
Int_t CpipeId
 
Double_t fcharge
 
Double_t fmass
 
Double_t fdist
 
TClonesArray * fFtofCollection
 

Detailed Description

Definition at line 22 of file PndFtof.h.

Constructor & Destructor Documentation

PndFtof::PndFtof ( )

Default constructor

Definition at line 55 of file PndFtof.cxx.

References fFtofCollection, and fListOfSensitives.

56  : FairDetector(),fListOfSensitives(),
57  par(), fTrackID(-1), fVolumeID(-1), fEventID(-1), fPosIn(), fMomIn(), fPosOut(), fMomOut(),
58  fPLout(0), fPLin(0), fTime(0), fLength(0), fELoss(0), fPosIndex(-1), fpdgCode(-1),
59  SiId(0), CId(0), alId(0), beId(0), CpipeId(0), fcharge(0), fmass(0), fdist(0), fFtofCollection(0)
60 {
61  fFtofCollection = new TClonesArray("PndFtofPoint");
62  fVerboseLevel = 0;
63 
64  fListOfSensitives.push_back("Ftof_Central_Strip");//Root_Test.root
65  fListOfSensitives.push_back("Ftof_Beam_Strip");//Root_Test.root
66  fListOfSensitives.push_back("Ftof_Vertical_Strip");//Root_Test.root
67  //adding side tof plates
68  fListOfSensitives.push_back("Stof_plate");
69 
70 
71 }
Int_t fEventID
Definition: PndFtof.h:138
Int_t SiId
Definition: PndFtof.h:152
Double_t fPLout
Definition: PndFtof.h:144
TLorentzVector fMomIn
Definition: PndFtof.h:140
Int_t alId
Definition: PndFtof.h:152
Double_t fdist
Definition: PndFtof.h:155
Int_t beId
Definition: PndFtof.h:152
Double32_t fELoss
Definition: PndFtof.h:149
Double32_t fLength
Definition: PndFtof.h:148
Int_t fPosIndex
Definition: PndFtof.h:150
TLorentzVector fMomOut
Definition: PndFtof.h:142
Int_t fTrackID
Definition: PndFtof.h:136
TLorentzVector fPosIn
Definition: PndFtof.h:139
Int_t fVolumeID
Definition: PndFtof.h:137
Int_t fpdgCode
Definition: PndFtof.h:151
PndGeoFtofPar * par
Definition: PndFtof.h:135
TLorentzVector fPosOut
Definition: PndFtof.h:141
std::vector< std::string > fListOfSensitives
Definition: PndFtof.h:132
Double_t fcharge
Definition: PndFtof.h:154
Int_t CId
Definition: PndFtof.h:152
Double_t fmass
Definition: PndFtof.h:155
Double32_t fTime
Definition: PndFtof.h:147
Double_t fPLin
Definition: PndFtof.h:144
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
Int_t CpipeId
Definition: PndFtof.h:152
PndFtof::PndFtof ( const char *  name,
Bool_t  active 
)

Standard constructor.

Parameters
namedetetcor name
activesensitivity flag

Definition at line 75 of file PndFtof.cxx.

References fFtofCollection, and fListOfSensitives.

76  : FairDetector(name, active),
78  fPLout(0), fPLin(0), fTime(0), fLength(0), fELoss(0), fPosIndex(-1), fpdgCode(-1),
79  SiId(0), CId(0), alId(0), beId(0), CpipeId(0), fcharge(0), fmass(0), fdist(0), fFtofCollection(0)
80 {
81  fFtofCollection = new TClonesArray("PndFtofPoint");
82  fVerboseLevel = 0;
83 
84  fListOfSensitives.push_back("Ftof_Central_Strip");//Root_Test.root
85  fListOfSensitives.push_back("Ftof_Beam_Strip");//Root_Test.root
86  fListOfSensitives.push_back("Ftof_Vertical_Strip");//Root_Test.root
87  //adding side tof plates
88  fListOfSensitives.push_back("Stof_plate");
89 }
Int_t fEventID
Definition: PndFtof.h:138
Int_t SiId
Definition: PndFtof.h:152
Double_t fPLout
Definition: PndFtof.h:144
TLorentzVector fMomIn
Definition: PndFtof.h:140
Int_t alId
Definition: PndFtof.h:152
Double_t fdist
Definition: PndFtof.h:155
Int_t beId
Definition: PndFtof.h:152
Double32_t fELoss
Definition: PndFtof.h:149
Double32_t fLength
Definition: PndFtof.h:148
Int_t fPosIndex
Definition: PndFtof.h:150
TLorentzVector fMomOut
Definition: PndFtof.h:142
Int_t fTrackID
Definition: PndFtof.h:136
TLorentzVector fPosIn
Definition: PndFtof.h:139
Int_t fVolumeID
Definition: PndFtof.h:137
TString name
Int_t fpdgCode
Definition: PndFtof.h:151
PndGeoFtofPar * par
Definition: PndFtof.h:135
TLorentzVector fPosOut
Definition: PndFtof.h:141
std::vector< std::string > fListOfSensitives
Definition: PndFtof.h:132
Double_t fcharge
Definition: PndFtof.h:154
Int_t CId
Definition: PndFtof.h:152
Double_t fmass
Definition: PndFtof.h:155
Double32_t fTime
Definition: PndFtof.h:147
Double_t fPLin
Definition: PndFtof.h:144
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
Int_t CpipeId
Definition: PndFtof.h:152
PndFtof::~PndFtof ( )
virtual

Destructor

Definition at line 95 of file PndFtof.cxx.

References fFtofCollection.

95  {
96  if (fFtofCollection) {
97  fFtofCollection->Delete();
98  delete fFtofCollection;
99  }
100 
101 }
TClonesArray * fFtofCollection
Definition: PndFtof.h:157

Member Function Documentation

PndFtofPoint * PndFtof::AddHit ( Int_t  trackID,
Int_t  evtID,
Int_t  detID,
TString  detName,
TVector3  posin,
TVector3  momin,
TVector3  posout,
TVector3  momout,
Double_t  tof,
Double_t  length,
Double_t  eLoss,
Double_t  charge,
Double_t  mass,
Int_t  pdgCode,
Double_t  dist,
Double_t  PLin,
Double_t  PLout 
)

Definition at line 471 of file PndFtof.cxx.

References fFtofCollection, and fTime.

Referenced by ProcessHits().

481  {
482  TClonesArray& clref = *fFtofCollection;
483  Int_t size = clref.GetEntriesFast();
484  return new(clref[size]) PndFtofPoint(trackID, evtID,detID, detName,pos, mom,
485  posout, momout,
486  fTime, length, eLoss,charge,
487  mass,pdgCode,
488  dist,PLin,PLout);
489  }
TVector3 pos
Double_t mom
Definition: plot_dirc.C:14
Double32_t fTime
Definition: PndFtof.h:147
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
void PndFtof::BeginEvent ( )
virtual

Definition at line 127 of file PndFtof.cxx.

127  {
128  // Begin of the event
129 
130 }
bool PndFtof::CheckIfSensitive ( std::string  name)
private

Definition at line 458 of file PndFtof.cxx.

References fListOfSensitives, and i.

459 {
460  for (size_t i = 0; i < fListOfSensitives.size(); i++){
461  if (name.find(fListOfSensitives[i]) != std::string::npos)
462  return true;
463  }
464  return false;
465 }
Int_t i
Definition: run_full.C:25
TString name
std::vector< std::string > fListOfSensitives
Definition: PndFtof.h:132
void PndFtof::ConstructASCIIGeometry ( )

Definition at line 288 of file PndFtof.cxx.

References Double_t, geobuild, geoFace, geoLoad, gGeoManager, i, Media, name, name1, offset(), SubunitVol, trc1, and TString.

Referenced by ConstructGeometry().

288  {
289 
290 
291  FairGeoLoader* geoLoad = FairGeoLoader::Instance();
292  FairGeoInterface* geoFace = geoLoad->getGeoInterface();
293 
294  FairGeoMedia *Media = geoFace->getMedia();
295  FairGeoBuilder *geobuild=geoLoad->getGeoBuilder();
296 
297  FairGeoMedium *CbmMediumSci = Media->getMedium("polyvinyltoluene");
298 
299 
300  //Int_t nmed=
301  geobuild->createMedium(CbmMediumSci);
302  TString vname = "cave";
303  TGeoVolume* vcave = gGeoManager->FindVolumeFast(vname);
304 
305  const Double_t kBCentX = 2.5; // half length(cm) //from EMC TDR
306  const Double_t kBCentY = 70.0; //half length (cm) //?
307  const Double_t kBCentZ = 0.75; //half length (cm) //?
308 
309  const Double_t kBBeamX = 2.5; // half length(cm) //from EMC TDR
310  const Double_t kBBeamY = 30.0; //alf length (cm) //?
311  const Double_t kBBeamZ = 0.75; //half length (cm) //?
312 
313  const Double_t kBVertX = 5.0; //half length (cm) //from EMC TDR
314  const Double_t kBVertY = 70.0; //half length (cm) //?
315  const Double_t kBVertZ = 0.75; //half length (cm) //from EMC TDR
316 
317 
318  TGeoBBox *CentShape;
319  TGeoBBox *BeamShape;
320  TGeoBBox *VertShape;
321 
322  TGeoVolume* CentVol;
323  TGeoVolume* BeamVol;
324  TGeoVolume* VertVol;
325 
326 
327  Double_t bx[26];//,by[26],bz[26]; //[R.K. 01/2017] unused variable?
328  Double_t bvx[50];//,bvy[50],bvz[50]; //[R.K. 01/2017] unused variable?
329  TGeoVolumeAssembly* SubunitVol = new TGeoVolumeAssembly("Ftof_strips");
330 
331 
332  char name[17];
333  char namB[17];
334  char namV[17];
335  char name1[17];
336  char namB1[17];
337  char namV1[20];
338  //char name2[17]; //[R.K. 01/2017] unused variable?
339  //char namB2[17]; //[R.K. 01/2017] unused variable?
340  //char namV2[17]; //[R.K. 01/2017] unused variable?
341 
342 
343  for(int i=0;i<26;i++){
344  bx[i]=-40+kBCentX*((2*i)+1);
345 }
346 
347  for(int i=0;i<26;i++){
348  if(i<8||i>17){
349  TGeoCombiTrans* trc1;
350 
351  //Double_t offset; //[R.K. 01/2017] unused variable?
352  sprintf (name,"Centshape%d",i);
353  sprintf (name1,"Ftof_Central_Strip%d",i);
354 
355  CentShape = new TGeoBBox("Centshape",kBCentX,kBCentY,kBCentZ);
356  CentVol = new TGeoVolume("Ftof_Central_Strip",CentShape,gGeoManager->GetMedium("polyvinyltoluene"));
357  if(i<8)trc1= new TGeoCombiTrans(bx[i],0,750,new TGeoRotation ());
358  else if (i>17)trc1= new TGeoCombiTrans(bx[i-5],0,750,new TGeoRotation ());
359 
360  trc1->SetName(name);
361  trc1->RegisterYourself();
362  SubunitVol->AddNode(CentVol,i,trc1);
363  AddSensitiveVolume(CentVol);
364  }
365  else{
367  sprintf (namB,"Beamshape%d",i);
368  sprintf (namB1,"Ftof_Beam_Strip%02d",i);
369  BeamShape = new TGeoBBox("Beamshape",kBBeamX,kBBeamY,kBBeamZ);
370  BeamVol = new TGeoVolume("Ftof_Beam_Strip",BeamShape,gGeoManager->GetMedium("polyvinyltoluene"));
371 
372  if(i==8||i==9){
373 
374  (i==8 ? (offset = -70+kBBeamY) : (offset = 70-kBBeamY));
375  TGeoCombiTrans* trc1= new TGeoCombiTrans(bx[8],offset,750,new TGeoRotation ());
376 
377  trc1->SetName(namB);
378  trc1->RegisterYourself();
379  SubunitVol->AddNode(BeamVol,i,trc1);
380  AddSensitiveVolume(BeamVol);
381  }
382  if(i==10||i==11){
383 
384  (i==10 ? (offset = -70+kBBeamY) : (offset = 70-kBBeamY));
385  TGeoCombiTrans* trc1= new TGeoCombiTrans(bx[9],offset,750,new TGeoRotation ());
386 
387  trc1->SetName(namB);
388  trc1->RegisterYourself();
389  SubunitVol->AddNode(BeamVol,i,trc1);
390  AddSensitiveVolume(BeamVol);
391  }
392  if(i==12||i==13){
393 
394  (i==12 ? (offset = -70+kBBeamY) : (offset = 70-kBBeamY));
395  TGeoCombiTrans* trc1= new TGeoCombiTrans(bx[10],offset,750,new TGeoRotation ());
396 
397  trc1->SetName(namB);
398  trc1->RegisterYourself();
399  SubunitVol->AddNode(BeamVol,i,trc1);
400  AddSensitiveVolume(BeamVol);
401  }
402  if(i==14||i==15){
403 
404  (i==14 ? (offset = -70+kBBeamY) : (offset = 70-kBBeamY));
405  TGeoCombiTrans* trc1= new TGeoCombiTrans(bx[11],offset,750,new TGeoRotation ());
406 
407  trc1->SetName(namB);
408  trc1->RegisterYourself();
409  SubunitVol->AddNode(BeamVol,i,trc1);
410  AddSensitiveVolume(BeamVol);
411  }
412  if(i==16||i==17){
413 
414  (i==16 ? (offset = -70+kBBeamY) : (offset = 70-kBBeamY));
415  TGeoCombiTrans* trc1= new TGeoCombiTrans(bx[12],offset,750,new TGeoRotation ());
416 
417  trc1->SetName(namB);
418  trc1->RegisterYourself();
419  SubunitVol->AddNode(BeamVol,i,trc1);
420  AddSensitiveVolume(BeamVol);
421  }
422  }
423 
424  }
425 
426  for(int i=0;i<24;i++){
427  bvx[i]=-280+kBVertX*((2*i)+1);
428  }
429 
430  for(int i=0;i<26;i++){
431 
432  bvx[i+24]=60+kBVertX*((2*i)+1);
433  }
434 
435  for(int i=0;i<50;i++){
436 
437 
438  sprintf (namV,"VertShape%d",i);
439  sprintf (namV1,"Ftof_Vertical_Strip%d",i);
440 
441  VertShape = new TGeoBBox("VertShape",kBVertX,kBVertY,kBVertZ);
442  VertVol = new TGeoVolume("Ftof_Vertical_Strip",VertShape,gGeoManager->GetMedium("polyvinyltoluene"));
443  TGeoCombiTrans* trc1= new TGeoCombiTrans(bvx[i],0,750,new TGeoRotation ());
444 
445  trc1->SetName(namV);
446  trc1->RegisterYourself();
447  SubunitVol->AddNode(VertVol,i,trc1);
448  AddSensitiveVolume(VertVol);
449  }
450 
451 
452  vcave->AddNode(SubunitVol,0,new TGeoCombiTrans());
453 
454 
455 }
FairGeoLoader * geoLoad
Int_t i
Definition: run_full.C:25
FairGeoMedia * Media
TVector3 offset(2, 0, 0)
TGeoManager * gGeoManager
TGeoVolume * SubunitVol
FairGeoBuilder * geobuild
Double_t
TString name
TGeoCombiTrans * trc1
FairGeoInterface * geoFace
void PndFtof::ConstructGeometry ( )
virtual

Virtual method Construct geometry

Definition at line 275 of file PndFtof.cxx.

References ConstructASCIIGeometry(), and TString.

275  {
276 
277  TString fileName=GetGeometryFileName();
278 
279  if(fileName.EndsWith(".root")){
280  ConstructRootGeometry();
281  }else{
282 
284 
285  }
286 
287 }
void ConstructASCIIGeometry()
Definition: PndFtof.cxx:288
void PndFtof::CopyClones ( TClonesArray *  cl1,
TClonesArray *  cl2,
Int_t  offset 
)
virtual

Virtual method CopyClones

Copies the hit collection with a given track index offset

Parameters
cl1Origin
cl2Target
offsetIndex offset

Definition at line 258 of file PndFtof.cxx.

References fPosIndex, i, and offset().

258  {
259  Int_t nEntries = cl1->GetEntriesFast();
260  //cout << "-I- PndFtof: " << nEntries << " entries to add." << endl;
261  TClonesArray& clref = *cl2;
262  PndFtofPoint* oldpoint = NULL;
263  for (Int_t i=0; i<nEntries; i++) {
264  oldpoint = (PndFtofPoint*) cl1->At(i);
265  Int_t index = oldpoint->GetTrackID() + offset;
266  oldpoint->SetTrackID(index);
267  new (clref[fPosIndex]) PndFtofPoint(*oldpoint);
268  fPosIndex++;
269  }
270  cout << " -I- PndFtof: " << cl2->GetEntriesFast() << " merged entries."
271  << endl;
272 }
Int_t i
Definition: run_full.C:25
TVector3 offset(2, 0, 0)
Int_t fPosIndex
Definition: PndFtof.h:150
void PndFtof::EndOfEvent ( )
virtual

Virtual method EndOfEvent

If verbosity level is set, print hit collection at the end of the event and resets it afterwards.

Definition at line 209 of file PndFtof.cxx.

References Print(), and Reset().

209  {
210  if (fVerboseLevel) Print();
211 
212  Reset();
213 }
virtual void Print() const
Definition: PndFtof.cxx:235
virtual void Reset()
Definition: PndFtof.cxx:248
TClonesArray * PndFtof::GetCollection ( Int_t  iColl) const
virtual

Accessor to the hit collection

Definition at line 225 of file PndFtof.cxx.

References fFtofCollection.

225  {
226  if (iColl == 0) return fFtofCollection;
227 
228 
229 
230  return NULL;
231 }
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
void PndFtof::Initialize ( )
virtual

Virtual method Initialize Initialises detector. Stores volume IDs for MUO detector and mirror.

Definition at line 107 of file PndFtof.cxx.

References gGeoManager, Initialize(), par, rtdb, and sim().

107  {
108  // Init function
109 
111  FairRun* sim = FairRun::Instance();
112  FairRuntimeDb* rtdb=sim->GetRuntimeDb();
113  par=(PndGeoFtofPar*)(rtdb->getContainer("PndGeoFtofPar"));
114  par->setChanged();
115  par->setInputVersion(sim->GetRunId(),1);
116 
117  //TObjArray *fSensNodes = par->GetGeoSensitiveNodes();
118  std::cout<<" -I- Initializing PndFtof()"<<std::endl;
119 
120  if(0==gGeoManager) {
121  std::cout<<" -E- No gGeoManager in PndFtof::Initialize()!"<<std::endl;
122  abort();
123  }
124 
125 }
sim(Int_t nEvents=1, TString SimEngine="TGeant4", Float_t mom=6.231552)
TGeoManager * gGeoManager
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
PndGeoFtofPar * par
Definition: PndFtof.h:135
Mvd Initialize()
void PndFtof::Print ( ) const
virtual

Virtual method Print

Screen output of hit collection.

Definition at line 235 of file PndFtof.cxx.

References fFtofCollection, i, and nHits.

Referenced by EndOfEvent().

235  {
236  Int_t nHits = fFtofCollection->GetEntriesFast();
237  cout << "-I- PndFtof: " << nHits << " points registered in this event."
238  << endl;
239 
240  if (fVerboseLevel>1)
241  for (Int_t i=0; i<nHits; i++) (*fFtofCollection)[i]->Print();
242 }
Int_t i
Definition: run_full.C:25
int nHits
Definition: RiemannTest.C:16
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
Bool_t PndFtof::ProcessHits ( FairVolume *  vol = 0)
virtual

Virtual method ProcessHits

Defines the action to be taken when a step is inside the active volume. Creates PndFtofPoints and PndFtofMirrorPoints and adds them to the collections.

Parameters
volPointer to the active volume

Definition at line 136 of file PndFtof.cxx.

References AddHit(), PndStack::AddPoint(), fcharge, fdist, fELoss, fEventID, fLength, fmass, fMomIn, fMomOut, fpdgCode, fPLin, fPLout, fPosIn, fPosOut, fTime, fTrackID, fVolumeID, kFTOF, ResetParameters(), and TString.

137 {
138  if (gMC->TrackCharge()==0) return kTRUE; // skip neutrals
139 
140  TVector3 radt;
141 
142  if ( gMC->IsTrackEntering() )
143  {
144  fELoss = 0.;
145  fEventID = gMC->CurrentEvent();
146  fTime = gMC->TrackTime() * 1.0e09;
147  fLength = gMC->TrackLength();
148  fmass = gMC->TrackMass(); // mass (GeV)
149  fcharge = gMC->TrackCharge(); // charge?
150  fpdgCode = gMC->TrackPid();
151  gMC->TrackPosition(fPosIn);
152  gMC->TrackMomentum(fMomIn);
153  fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
154  }
155 
156  // Sum energy loss for all steps in the active volume
157 
158  fELoss += gMC->Edep();
159 
160  // Set additional parameters at exit of active volume. Create CbmStsPoint.
161 
162  TLorentzVector PL;
163  gMC->TrackMomentum(PL);
164 
165  if ( (gMC->IsTrackExiting() ||
166  gMC->IsTrackStop() ||
167  gMC->IsTrackDisappeared() ))
168  {
169  Int_t TrNo=gMC->GetStack()->GetCurrentTrackNumber();
170  if ( (TrNo == fTrackID) && (fELoss >0.) )
171  {
172  Int_t cp=-1;
173  gMC->CurrentVolOffID(1,cp) ;
174  fVolumeID = vol->getMCid();
175  //Int_t fVolid = gMC->CurrentVolID(cp); //[R.K. 01/2017] unused variable?
176  TString FullName = gMC->CurrentVolPath();
177 
178  gMC->TrackPosition(fPosOut);
179  gMC->TrackMomentum(fMomOut);
180 
181  radt= fPosOut.Vect();
182  fdist=radt.Perp();
183  fPLin =fMomIn.P();
184  fPLout = fMomOut.P();
185 
186  AddHit(fTrackID, fEventID,fVolumeID, FullName,
187  TVector3(fPosIn.X(), fPosIn.Y(), fPosIn.Z()),
188  TVector3(fMomIn.Px(), fMomIn.Py(), fMomIn.Pz()),
189  TVector3(fPosOut.X(), fPosOut.Y(), fPosOut.Z()),
190  TVector3(fMomOut.Px(), fMomOut.Py(), fMomOut.Pz()),
192  fdist,fPLin,fPLout);
193 
194  PndStack* stack = (PndStack*) gMC->GetStack();
195  stack->AddPoint(kFTOF);
196  }
197 
198  ResetParameters();
199  }
200 
201  return kTRUE;
202 
203 
204 }//ProcessHits
Int_t fEventID
Definition: PndFtof.h:138
Double_t fPLout
Definition: PndFtof.h:144
TLorentzVector fMomIn
Definition: PndFtof.h:140
Double_t fdist
Definition: PndFtof.h:155
Double32_t fELoss
Definition: PndFtof.h:149
Double32_t fLength
Definition: PndFtof.h:148
TLorentzVector fMomOut
Definition: PndFtof.h:142
void AddPoint(DetectorId iDet)
Definition: PndStack.cxx:408
Int_t fTrackID
Definition: PndFtof.h:136
void ResetParameters()
Hit collection.
Definition: PndFtof.h:169
TLorentzVector fPosIn
Definition: PndFtof.h:139
Int_t fVolumeID
Definition: PndFtof.h:137
Int_t fpdgCode
Definition: PndFtof.h:151
PndFtofPoint * AddHit(Int_t trackID, Int_t evtID, Int_t detID, TString detName, TVector3 posin, TVector3 momin, TVector3 posout, TVector3 momout, Double_t tof, Double_t length, Double_t eLoss, Double_t charge, Double_t mass, Int_t pdgCode, Double_t dist, Double_t PLin, Double_t PLout)
Definition: PndFtof.cxx:471
TLorentzVector fPosOut
Definition: PndFtof.h:141
Double_t fcharge
Definition: PndFtof.h:154
Double_t fmass
Definition: PndFtof.h:155
Double32_t fTime
Definition: PndFtof.h:147
Double_t fPLin
Definition: PndFtof.h:144
void PndFtof::Register ( )
virtual

Virtual method Register

Registers the hit collection in the ROOT manager.

Definition at line 217 of file PndFtof.cxx.

References fFtofCollection.

217  {
218  FairRootManager::Instance()->Register("FtofPoint","PndFtof", fFtofCollection, kTRUE);
219 
220 
221 }
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
void PndFtof::Reset ( )
virtual

Virtual method Reset

Clears the hit collection

Definition at line 248 of file PndFtof.cxx.

References fFtofCollection, and fPosIndex.

Referenced by EndOfEvent().

248  {
249  if (fFtofCollection) fFtofCollection->Delete();
250 
251  fPosIndex = 0;
252 }
Int_t fPosIndex
Definition: PndFtof.h:150
TClonesArray * fFtofCollection
Definition: PndFtof.h:157
void PndFtof::ResetParameters ( )
inlineprivate

Hit collection.

Definition at line 169 of file PndFtof.h.

References fELoss, fEventID, fLength, fMomIn, fMomOut, fPosIn, fPosOut, fTime, fTrackID, and fVolumeID.

Referenced by ProcessHits().

169  {
170  fTrackID = fVolumeID = 0;fEventID = -1;
171  fPosIn.SetXYZM(0.0, 0.0, 0.0, 0.0);
172  fPosOut.SetXYZM(0.0, 0.0, 0.0, 0.0);
173  fMomIn.SetPxPyPzE(0.0, 0.0, 0.0, 0.0);
174  fMomOut.SetPxPyPzE(0.0, 0.0, 0.0, 0.0);
175 
176  fTime = fLength = fELoss = 0;
177 
178 };
Int_t fEventID
Definition: PndFtof.h:138
TLorentzVector fMomIn
Definition: PndFtof.h:140
Double32_t fELoss
Definition: PndFtof.h:149
Double32_t fLength
Definition: PndFtof.h:148
TLorentzVector fMomOut
Definition: PndFtof.h:142
Int_t fTrackID
Definition: PndFtof.h:136
TLorentzVector fPosIn
Definition: PndFtof.h:139
Int_t fVolumeID
Definition: PndFtof.h:137
TLorentzVector fPosOut
Definition: PndFtof.h:141
Double32_t fTime
Definition: PndFtof.h:147

Member Data Documentation

Int_t PndFtof::alId
private

Definition at line 152 of file PndFtof.h.

Int_t PndFtof::beId
private

Definition at line 152 of file PndFtof.h.

Int_t PndFtof::CId
private

Definition at line 152 of file PndFtof.h.

Int_t PndFtof::CpipeId
private

Definition at line 152 of file PndFtof.h.

Double_t PndFtof::fcharge
private

Definition at line 154 of file PndFtof.h.

Referenced by ProcessHits().

Double_t PndFtof::fdist
private

Definition at line 155 of file PndFtof.h.

Referenced by ProcessHits().

Double32_t PndFtof::fELoss
private

Definition at line 149 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

Int_t PndFtof::fEventID
private

Definition at line 138 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

TClonesArray* PndFtof::fFtofCollection
private

Definition at line 157 of file PndFtof.h.

Referenced by AddHit(), GetCollection(), PndFtof(), Print(), Register(), Reset(), and ~PndFtof().

Double32_t PndFtof::fLength
private

Definition at line 148 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

std::vector<std::string> PndFtof::fListOfSensitives
private

Definition at line 132 of file PndFtof.h.

Referenced by CheckIfSensitive(), and PndFtof().

Double_t PndFtof::fmass
private

Definition at line 155 of file PndFtof.h.

Referenced by ProcessHits().

TLorentzVector PndFtof::fMomIn
private

Definition at line 140 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

TLorentzVector PndFtof::fMomOut
private

Definition at line 142 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

Int_t PndFtof::fpdgCode
private

Definition at line 151 of file PndFtof.h.

Referenced by ProcessHits().

Double_t PndFtof::fPLin
private

Definition at line 144 of file PndFtof.h.

Referenced by ProcessHits().

Double_t PndFtof::fPLout
private

Definition at line 144 of file PndFtof.h.

Referenced by ProcessHits().

TLorentzVector PndFtof::fPosIn
private

Definition at line 139 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

Int_t PndFtof::fPosIndex
private

Definition at line 150 of file PndFtof.h.

Referenced by CopyClones(), and Reset().

TLorentzVector PndFtof::fPosOut
private

Definition at line 141 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

Double32_t PndFtof::fTime
private

Definition at line 147 of file PndFtof.h.

Referenced by AddHit(), ProcessHits(), and ResetParameters().

Int_t PndFtof::fTrackID
private

Definition at line 136 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

Int_t PndFtof::fVolumeID
private

Definition at line 137 of file PndFtof.h.

Referenced by ProcessHits(), and ResetParameters().

PndGeoFtofPar* PndFtof::par
private

Definition at line 135 of file PndFtof.h.

Referenced by Initialize().

Int_t PndFtof::SiId
private

Definition at line 152 of file PndFtof.h.


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