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

#include <PndLmdDetector.h>

Inheritance diagram for PndLmdDetector:
PndSdsDetector

Public Member Functions

 PndLmdDetector ()
 
 PndLmdDetector (const char *name, Bool_t active)
 
virtual ~PndLmdDetector ()
 
virtual void SetBranchNames (char *outBranchname, char *folderName)
 
virtual void SetBranchNames ()
 
virtual void SetDefaultSensorNames ()
 
virtual void Initialize ()
 
void ModifyGeometry ()
 
void SetMisalignmentMatrices (const std::map< std::string, TGeoHMatrix > &alignmentMatrices)
 
void ModifyGeometryByFullPath ()
 
void ModifyGeometryBySymlink ()
 
 ClassDef (PndLmdDetector, 7)
 
void SetExclusiveSensorType (const TString sens)
 
virtual Bool_t ProcessHits (FairVolume *vol=0)
 
virtual void EndOfEvent ()
 
virtual void FinishRun ()
 
virtual void Register ()
 
virtual TClonesArray * GetCollection (Int_t iColl) const
 
virtual void Print () const
 
virtual void SetSpecialPhysicsCuts ()
 
virtual void Reset ()
 
virtual void CopyClones (TClonesArray *cl1, TClonesArray *cl2, Int_t offset)
 
virtual void ConstructGeometry ()
 
virtual void ConstructASCIIGeometry ()
 
void SetDetectorID (DetectorId id)
 
void SetRadDamOption (bool val)
 
bool GetRadDamOption ()
 
void SetVerboseLevel (Int_t level)
 
void SetPersistance (Bool_t p=kTRUE)
 
Bool_t GetPersistance ()
 

Protected Member Functions

bool CheckIfSensitive (std::string name)
 
PndSdsMCPointAddHit (Int_t trackID, Int_t detID, Int_t sensorID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss)
 
void ResetParameters ()
 
 ClassDef (PndSdsDetector, 6)
 

Protected Attributes

Bool_t fPersistance
 
Int_t fTrackID
 
Int_t fVolumeID
 track index More...
 
TLorentzVector fPosIn
 Det id. More...
 
TLorentzVector fPosOut
 entry position in global frame More...
 
TLorentzVector fMomIn
 exit position in global frame More...
 
TLorentzVector fMomOut
 momentum More...
 
Double32_t fTime
 momentum More...
 
Double32_t fLength
 time More...
 
Double32_t fELoss
 length More...
 
PndGeoHandlingfGeoH
 energy loss More...
 
Int_t fPosIndex
 Gives Access to the Path info of a hit. More...
 
TClonesArray * fPndSdsCollection
 
bool fUseRadDamOption
 Hit collection. More...
 
TString fOutBranchName
 enables the detection of neutral particles More...
 
TString fFolderName
 To be set by daughter classes. More...
 
DetectorId fDetectorID
 To be set by daughter classes. More...
 
std::vector< std::string > fListOfSensitives
 To be set by daughter classes. More...
 

Private Attributes

std::map< std::string,
TGeoHMatrix > 
fAlignmentMatrices
 

Detailed Description

PndLmdDetector.h

Author
T.Stockmanns t.sto.nosp@m.ckma.nosp@m.nns@f.nosp@m.z-ju.nosp@m.elich.nosp@m..de
M.Michel miche.nosp@m.l@kp.nosp@m.h.uni.nosp@m.-mai.nosp@m.nz.de
h.xu h.xu@.nosp@m.fz-j.nosp@m.uelic.nosp@m.h.de

Defines the active detector PndLmdDetector. Constructs the geometry and registers MCPoints. Notes on Jun 30,2010 by Huagen: To construct detector geometry from ASCII file the detector name shall be defined by users. The function of ConstructASCIIGeometry() should be reloaded by user who wants to define the DetName freely.Without reloading this function the detector name was defined by PndSdsGeo class anyway.

Definition at line 28 of file PndLmdDetector.h.

Constructor & Destructor Documentation

PndLmdDetector::PndLmdDetector ( )

Default constructor

Definition at line 10 of file PndLmdDetector.cxx.

References kLUMI, and PndSdsDetector::SetDetectorID().

10  {
12 }
void SetDetectorID(DetectorId id)
PndLmdDetector::PndLmdDetector ( const char *  name,
Bool_t  active 
)

Standard constructor.

Parameters
namedetetcor name
activesensitivity flag

Definition at line 15 of file PndLmdDetector.cxx.

References kLUMI, and PndSdsDetector::SetDetectorID().

15  :
16  PndSdsDetector(name, active) {
18 }
void SetDetectorID(DetectorId id)
TString name
PndLmdDetector::~PndLmdDetector ( )
virtual

Destructor

Definition at line 21 of file PndLmdDetector.cxx.

21  {
22 }

Member Function Documentation

PndSdsMCPoint * PndSdsDetector::AddHit ( Int_t  trackID,
Int_t  detID,
Int_t  sensorID,
TVector3  posIn,
TVector3  posOut,
TVector3  momIn,
TVector3  momOut,
Double_t  time,
Double_t  length,
Double_t  eLoss 
)
protectedinherited

Private method AddHit

Adds a CbmTrdPoint to the HitCollection

Definition at line 436 of file PndSdsDetector.cxx.

References PndSdsDetector::fGeoH, PndSdsDetector::fOutBranchName, PndSdsDetector::fPndSdsCollection, and PndGeoHandling::GetPath().

Referenced by PndSdsDetector::ProcessHits().

438 {
439 // TClonesArray&
440 // clref = *fPndSdsCollection;
441 //
442 // Int_t
443 // size = clref.GetEntriesFast();
444  fPndSdsCollection = FairRootManager::Instance()->GetTClonesArray(fOutBranchName);
445  //FairMCEventHeader* header= (FairMCEventHeader*)FairRootManager::Instance()->GetObject("MCEventHeader.");
446 
447  if (fVerboseLevel >= 2)
448  std::cout << "-I- PndSdsDetector: Adding Point at (" << posIn.X() << ", " << posIn.Y()
449  << ", " << posIn.Z() << ") cm, (" << posOut.X() << ", " << posOut.Y()
450  << ", " << posOut.Z() << ") cm, detector " << fGeoH->GetPath(sensorID) << " " << detID << ", track "
451  << trackID << ", energy loss " << eLoss*1e06 << " keV" << std::endl;
452 
453  PndSdsMCPoint* storedData = new((*fPndSdsCollection)[fPndSdsCollection->GetEntriesFast()]) PndSdsMCPoint(trackID, detID, sensorID, posIn, posOut,
454  momIn, momOut, time, length, eLoss);
455 
456  return storedData;
457 
458 }
TClonesArray * fPndSdsCollection
TString GetPath(Int_t shortID)
for a given shortID the path is returned
PndGeoHandling * fGeoH
energy loss
TString fOutBranchName
enables the detection of neutral particles
bool PndSdsDetector::CheckIfSensitive ( std::string  name)
protectedinherited

Definition at line 358 of file PndSdsDetector.cxx.

References PndSdsDetector::fListOfSensitives, and i.

359 {
360  for (UInt_t i = 0; i < fListOfSensitives.size(); i++){
361  if (name.find(fListOfSensitives[i]) != std::string::npos)
362  return true;
363  }
364  return false;
365 }
Int_t i
Definition: run_full.C:25
std::vector< std::string > fListOfSensitives
To be set by daughter classes.
TString name
PndLmdDetector::ClassDef ( PndLmdDetector  ,
 
)
PndSdsDetector::ClassDef ( PndSdsDetector  ,
 
)
protectedinherited
void PndSdsDetector::ConstructASCIIGeometry ( )
virtualinherited

Definition at line 371 of file PndSdsDetector.cxx.

References Bool_t, fRun, geoFace, geoLoad, PndSdsGeoPar::GetGeoPassiveNodes(), PndSdsGeoPar::GetGeoSensitiveNodes(), par, and rtdb.

Referenced by PndSdsDetector::ConstructGeometry().

372 {
373  // get pointer to the instantons which interface
374  // to monte carlo
375 
376  FairGeoLoader *geoLoad = FairGeoLoader::Instance();
377  FairGeoInterface *geoFace = geoLoad->getGeoInterface();
378  PndSdsGeo *thePndSdsGeo = new PndSdsGeo();
379 
380  thePndSdsGeo->setGeomFile(GetGeometryFileName());
381  geoFace->addGeoModule(thePndSdsGeo);
382 
383  Bool_t rc = geoFace->readSet(thePndSdsGeo);
384 
385  if (rc)
386  thePndSdsGeo->create(geoLoad->getGeoBuilder());
387 
388  TList* volList = thePndSdsGeo->getListOfVolumes();
389 
390  // store geo parameter
391  FairRun *fRun = FairRun::Instance();
392 
393  FairRuntimeDb *rtdb= FairRun::Instance()->GetRuntimeDb();
394 
395  PndSdsGeoPar *par= (PndSdsGeoPar*)(rtdb->getContainer("PndSdsGeoPar"));
396 
397  TObjArray *fSensNodes = par->GetGeoSensitiveNodes();
398 
399  TObjArray *fPassNodes = par->GetGeoPassiveNodes();
400 
401  TListIter iter(volList);
402 
403  FairGeoNode *node = NULL;
404  FairGeoVolume *aVol = NULL;
405 
406  while( (node = (FairGeoNode*)iter.Next()) ) {
407  aVol = dynamic_cast<FairGeoVolume*> ( node );
408  if ( node->isSensitive() ) {
409  fSensNodes->AddLast( aVol );
410  }else{
411  fPassNodes->AddLast( aVol );
412  }
413  }
414 
415  par->setChanged();
416  par->setInputVersion(fRun->GetRunId(),1);
417 
418  ProcessNodes ( volList );
419 }
FairGeoLoader * geoLoad
Double_t par[3]
FairRunAna * fRun
Definition: hit_dirc.C:58
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
TObjArray * GetGeoPassiveNodes()
Definition: PndSdsGeoPar.h:27
TObjArray * GetGeoSensitiveNodes()
Definition: PndSdsGeoPar.h:26
FairGeoInterface * geoFace
void PndSdsDetector::ConstructGeometry ( )
virtualinherited

Virtual method Construct geometry

Constructs the PndSdsDetector geometry

Definition at line 343 of file PndSdsDetector.cxx.

References PndSdsDetector::ConstructASCIIGeometry(), PndSdsDetector::fListOfSensitives, PndSdsDetector::SetDefaultSensorNames(), and TString.

344 {
345  // Set what is sensitive before creating geometry
346  if (fListOfSensitives.size()==0) SetDefaultSensorNames();
347  TString fileName=GetGeometryFileName();
348  if(fileName.EndsWith(".geo")){
350  }else if(fileName.EndsWith(".root")){
351  ConstructRootGeometry();
352  }else{
353  std::cout<< "Geometry format not supported " <<std::endl;
354  }
355 }
std::vector< std::string > fListOfSensitives
To be set by daughter classes.
virtual void SetDefaultSensorNames()=0
virtual void ConstructASCIIGeometry()
void PndSdsDetector::CopyClones ( TClonesArray *  cl1,
TClonesArray *  cl2,
Int_t  offset 
)
virtualinherited

Virtual method CopyClones

Copies the hit collection with a given track index offset

Parameters
cl1Origin
cl2Target
offsetIndex offset

Definition at line 316 of file PndSdsDetector.cxx.

References PndSdsDetector::fPosIndex, i, offset(), and PndSdsMCPoint::SetTrackID().

317 {
318  Int_t
319  nEntries = cl1->GetEntriesFast();
320 
321  std::cout << "-I- PndSdsDetector: " << nEntries << " entries to add." << std::endl;
322 
323  TClonesArray& clref = *cl2;
324 
326  *oldpoint = NULL;
327  for (Int_t i=0; i<nEntries; i++)
328  {
329  oldpoint = (PndSdsMCPoint*) cl1->At(i);
330 
331  Int_t
332  index = oldpoint->GetTrackID() + offset;
333 
334  oldpoint->SetTrackID(index);
335  new (clref[fPosIndex]) PndSdsMCPoint(*oldpoint);
336  fPosIndex++;
337  }
338  std::cout << "-I- PndSdsDetector: " << cl2->GetEntriesFast() << " merged entries."
339  << std::endl;
340 }
virtual void SetTrackID(Int_t id)
Int_t i
Definition: run_full.C:25
Int_t fPosIndex
Gives Access to the Path info of a hit.
TVector3 offset(2, 0, 0)
void PndSdsDetector::EndOfEvent ( )
virtualinherited

Virtual method EndOfEvent

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

Definition at line 242 of file PndSdsDetector.cxx.

References PndSdsDetector::fPndSdsCollection, PndSdsDetector::fPosIndex, and PndSdsDetector::Print().

243 {
244  if (fVerboseLevel)
245  Print();
246 
247  if (fPndSdsCollection) {
248  fPndSdsCollection->Delete();
249  } else {
250  if (fVerboseLevel > 1) {
251  std::cout << "-W- PndSdsDetector::EndOfEvent: no fPndSdsCollection pointer!" << std::endl;
252  }
253  }
254  fPosIndex = 0;
255 }
TClonesArray * fPndSdsCollection
Int_t fPosIndex
Gives Access to the Path info of a hit.
virtual void Print() const
void PndSdsDetector::FinishRun ( )
virtualinherited

Definition at line 258 of file PndSdsDetector.cxx.

259 {
260 
261 }
TClonesArray * PndSdsDetector::GetCollection ( Int_t  iColl) const
virtualinherited

Accessor to the hit collection

Definition at line 278 of file PndSdsDetector.cxx.

References PndSdsDetector::fPndSdsCollection.

279 {
280  if (iColl == 0)
281  return fPndSdsCollection;
282  else
283  return NULL;
284 }
TClonesArray * fPndSdsCollection
Bool_t PndSdsDetector::GetPersistance ( )
inlineinherited

Definition at line 198 of file PndSdsDetector.h.

References PndSdsDetector::fPersistance.

198 {return fPersistance;};
bool PndSdsDetector::GetRadDamOption ( )
inlineinherited

Definition at line 192 of file PndSdsDetector.h.

References PndSdsDetector::fUseRadDamOption.

192 {return fUseRadDamOption;};
bool fUseRadDamOption
Hit collection.
virtual void PndLmdDetector::Initialize ( )
inlinevirtual

Reimplemented from PndSdsDetector.

Definition at line 48 of file PndLmdDetector.h.

References PndSdsDetector::Initialize().

virtual void Initialize()
void PndLmdDetector::ModifyGeometry ( )

Definition at line 38 of file PndLmdDetector.cxx.

References DEBUG, fAlignmentMatrices, gGeoManager, ModifyGeometryByFullPath(), ModifyGeometryBySymlink(), and TString.

38  {
39  LOG(INFO) << "Modifying the geometry for the Lmd detector." << FairLogger::endl;
40 
41  TString detStr = "lmd_root";
42 
43  TGeoPNEntry* entry = gGeoManager->GetAlignableEntry(detStr.Data());
44  if (entry) {
45  LOG(INFO) << "Modifying using symlinks." << FairLogger::endl;
47  }
48  else {
49  LOG(INFO) << "Modifying using full path." << FairLogger::endl;
51  }
52  LOG(DEBUG) << "Align in total " << fAlignmentMatrices.size() << " detectors." << FairLogger::endl;
53  std::cout << "PndLmdDetector:modifyGeometry: success!\n";
54 }
void ModifyGeometryByFullPath()
void ModifyGeometryBySymlink()
TGeoManager * gGeoManager
std::map< std::string, TGeoHMatrix > fAlignmentMatrices
#define DEBUG
void PndLmdDetector::ModifyGeometryByFullPath ( )

Definition at line 56 of file PndLmdDetector.cxx.

References fAlignmentMatrices, gGeoManager, and TString.

Referenced by ModifyGeometry().

56  {
57  TString volPath;
58 
59  for (auto const& entry : fAlignmentMatrices) {
60  volPath = entry.first;
61 
62  gGeoManager->cd(volPath);
63 
64  TGeoNode* n3 = gGeoManager->GetCurrentNode();
65  TGeoMatrix* l3 = n3->GetMatrix();
66 
67  TGeoHMatrix nlocal = *l3 * entry.second;
68  TGeoHMatrix* nl3 = new TGeoHMatrix(nlocal); // new matrix, representing real position
69  // (from new local mis RS to the global one)
70 
71  TGeoPhysicalNode* pn3 = gGeoManager->MakePhysicalNode(volPath);
72 
73  pn3->Align(nl3);
74  }
75 }
TGeoManager * gGeoManager
std::map< std::string, TGeoHMatrix > fAlignmentMatrices
void PndLmdDetector::ModifyGeometryBySymlink ( )

Definition at line 77 of file PndLmdDetector.cxx.

References fAlignmentMatrices, gGeoManager, and TString.

Referenced by ModifyGeometry().

77  {
78  TString detStr;
79  for (auto const& alignment_matrix : fAlignmentMatrices) {
80  detStr = alignment_matrix.first;
81 
82  TGeoPhysicalNode* node = NULL;
83  TGeoPNEntry* entry = gGeoManager->GetAlignableEntry(detStr);
84  if (entry) {
85  node = gGeoManager->MakeAlignablePN(entry);
86  }
87 
88  TGeoMatrix* l3 = NULL;
89  if (node) {
90  l3 = node->GetMatrix();
91  }
92  else {
93  continue;
94  }
95 
96  TGeoHMatrix nlocal = *l3 * alignment_matrix.second;
97  TGeoHMatrix* nl3 = new TGeoHMatrix(nlocal); // new matrix, representing real position
98  // (from new local mis RS to the global one)
99  node->Align(nl3);
100  }
101 }
TGeoManager * gGeoManager
std::map< std::string, TGeoHMatrix > fAlignmentMatrices
void PndSdsDetector::Print ( ) const
virtualinherited

Virtual method Print

Screen output of hit collection.

Definition at line 290 of file PndSdsDetector.cxx.

References PndSdsDetector::fPndSdsCollection, i, and nHits.

Referenced by PndSdsDetector::EndOfEvent().

291 {
292  Int_t
293  nHits = fPndSdsCollection->GetEntriesFast();
294 
295  std::cout << "-I- PndSdsDetector: " << nHits << " points registered in this event." << std::endl;
296 
297  if (fVerboseLevel>1)
298  for (Int_t i=0; i<nHits; i++)
299  (*fPndSdsCollection)[i]->Print();
300 }
TClonesArray * fPndSdsCollection
Int_t i
Definition: run_full.C:25
int nHits
Definition: RiemannTest.C:16
Bool_t PndSdsDetector::ProcessHits ( FairVolume *  vol = 0)
virtualinherited

Virtual method ProcessHits

Defines the action to be taken when a step is inside the active volume. Creates CbmTrdPoints and adds them to the collection.

Parameters
volPointer to the active volume

Definition at line 176 of file PndSdsDetector.cxx.

References PndSdsDetector::AddHit(), PndStack::AddPoint(), PndSdsDetector::fDetectorID, PndSdsDetector::fELoss, PndSdsDetector::fGeoH, PndSdsDetector::fLength, PndSdsDetector::fMomIn, PndSdsDetector::fMomOut, PndSdsDetector::fPosIn, PndSdsDetector::fPosOut, PndSdsDetector::fTime, PndSdsDetector::fTrackID, PndSdsDetector::fUseRadDamOption, PndSdsDetector::fVolumeID, PndGeoHandling::GetShortID(), PndSdsDetector::ResetParameters(), and TString.

177 {
178  // std::cout<<"-I- PndSdsDetector::ProcessHits() : called. Please remove this line soon."<<std::endl;
179  if ( gMC->IsTrackEntering() )
180  {
181  // Set parameters at entrance of volume. Reset ELoss.
182  fELoss = 0.;
183  fTime = gMC->TrackTime() * 1.0e09;
184  fLength = gMC->TrackLength();
185  gMC->TrackPosition(fPosIn);
186  gMC->TrackMomentum(fMomIn);
187  }
188 
189  // Sum energy loss for all steps in the active volume
190  fELoss += gMC->Edep();
191 
192 
193  // Create PndSdsMCPoint at exit of active volume
194 
195  if ( gMC->IsTrackExiting() ||
196  gMC->IsTrackStop() ||
197  gMC->IsTrackDisappeared() ) {
198 
199  fTrackID = gMC->GetStack()->GetCurrentTrackNumber();
200 
201  if(0==fGeoH) {
202  std::cout<<" -E- No PndGeoHandling loaded."<<std::endl;
203  abort();
204  }
205  if (fVerboseLevel > 2){
206  std::cout << "******* Info from gMC *************" << std::endl;
207  std::cout << "Hit in " << gMC->CurrentVolPath() << " with MCiD: " << vol->getMCid() << " PixelDetectorID: " << fVolumeID << std::endl;
208  std::cout<<"VolumeID: "<<fGeoH->GetShortID(gMC->CurrentVolPath())<<std::endl;
209  std::cout << "PosIn: " << fPosIn.X() << " " << fPosIn.Y() << " " << fPosIn.Z() << " " << fELoss << std::endl;
210  }
211 
212  gMC->TrackPosition(fPosOut);
213  gMC->TrackMomentum(fMomOut);
214 
215  if (fUseRadDamOption == false){
216  if (fELoss == 0.) return kFALSE;
217  }
218 
219  TString detPath = gMC->CurrentVolPath();
220  PndSdsMCPoint* myPoint = AddHit(fTrackID, FairRootManager::Instance()->GetBranchId("MCTrack"), fGeoH->GetShortID(detPath),
221  TVector3(fPosIn.X(), fPosIn.Y(), fPosIn.Z()),
222  TVector3(fPosOut.X(), fPosOut.Y(), fPosOut.Z()),
223  TVector3(fMomIn.Px(), fMomIn.Py(), fMomIn.Pz()),
224  TVector3(fMomOut.Px(), fMomOut.Py(), fMomOut.Pz()),
225  fTime, fLength, fELoss);
226 
227  if(fVerboseLevel>2) std::cout << myPoint << std::endl;
228 
229  // Increment number of PndSds points for TParticle
230  PndStack* stack = (PndStack*) gMC->GetStack();
231  stack->AddPoint(fDetectorID);
232  ResetParameters();
233  }
234 
235  return kTRUE;
236 }
TLorentzVector fPosOut
entry position in global frame
Int_t fVolumeID
track index
TLorentzVector fMomOut
momentum
TLorentzVector fPosIn
Det id.
void AddPoint(DetectorId iDet)
Definition: PndStack.cxx:408
Double32_t fTime
momentum
Int_t GetShortID(TString path)
for a given path the (unique) position of the sensor path in the fSensorNamePar-List is given...
PndGeoHandling * fGeoH
energy loss
Double32_t fLength
time
Double32_t fELoss
length
void ResetParameters()
TLorentzVector fMomIn
exit position in global frame
PndSdsMCPoint * AddHit(Int_t trackID, Int_t detID, Int_t sensorID, TVector3 posIn, TVector3 posOut, TVector3 momIn, TVector3 momOut, Double_t time, Double_t length, Double_t eLoss)
DetectorId fDetectorID
To be set by daughter classes.
bool fUseRadDamOption
Hit collection.
void PndSdsDetector::Register ( )
virtualinherited

Virtual method Register

Registers the hit collection in the ROOT manager.

Definition at line 264 of file PndSdsDetector.cxx.

References PndSdsDetector::fFolderName, PndSdsDetector::fOutBranchName, and PndSdsDetector::fPndSdsCollection.

265 {
266  fPndSdsCollection = FairRootManager::Instance()->GetTClonesArray(fOutBranchName);
267  if (! fPndSdsCollection){
268  std::cout << "-W- PndSdsDetector: New branch " << fOutBranchName << " created!" << std::endl;
269  FairRootManager::Instance()->Register(fOutBranchName, "PndSdsMCPoint", fFolderName, kTRUE);
270  }
271  //FairRootManager::Instance()->Register(fOutBranchName, fFolderName, fPndSdsCollection, fPersistance);
272 }
TClonesArray * fPndSdsCollection
TString fOutBranchName
enables the detection of neutral particles
TString fFolderName
To be set by daughter classes.
void PndSdsDetector::Reset ( )
virtualinherited

Virtual method Reset

Clears the hit collection

Definition at line 306 of file PndSdsDetector.cxx.

References PndSdsDetector::fPndSdsCollection, and PndSdsDetector::ResetParameters().

307 {
308  fPndSdsCollection->Delete();
309  ResetParameters();
310 }
TClonesArray * fPndSdsCollection
void ResetParameters()
void PndSdsDetector::ResetParameters ( )
inlineprotectedinherited

Private method ResetParameters

Resets the private members for the track parameters

Definition at line 251 of file PndSdsDetector.h.

References PndSdsDetector::fELoss, PndSdsDetector::fLength, PndSdsDetector::fMomIn, PndSdsDetector::fMomOut, PndSdsDetector::fPosIn, PndSdsDetector::fPosIndex, PndSdsDetector::fPosOut, PndSdsDetector::fTime, PndSdsDetector::fTrackID, and PndSdsDetector::fVolumeID.

Referenced by PndSdsDetector::ProcessHits(), and PndSdsDetector::Reset().

251  {
252  fTrackID = 0;
253  fVolumeID = 1;
254  fPosIn.SetXYZM(0.0, 0.0, 0.0, 0.0);
255  fPosOut.SetXYZM(0.0, 0.0, 0.0, 0.0);
256  fMomIn.SetXYZM(0.0, 0.0, 0.0, 0.0);
257  fMomOut.SetXYZM(0.0, 0.0, 0.0, 0.0);
258  fTime = fLength = fELoss = 0;
259  fPosIndex = 0;
260 }
TLorentzVector fPosOut
entry position in global frame
Int_t fVolumeID
track index
TLorentzVector fMomOut
momentum
TLorentzVector fPosIn
Det id.
Int_t fPosIndex
Gives Access to the Path info of a hit.
Double32_t fTime
momentum
Double32_t fLength
time
Double32_t fELoss
length
TLorentzVector fMomIn
exit position in global frame
void PndLmdDetector::SetBranchNames ( char *  outBranchname,
char *  folderName 
)
virtual

Definition at line 24 of file PndLmdDetector.cxx.

References PndSdsDetector::fFolderName, and PndSdsDetector::fOutBranchName.

24  {
25  fOutBranchName = outBranchname;
26  fFolderName = folderName;
27 }
TString fOutBranchName
enables the detection of neutral particles
TString fFolderName
To be set by daughter classes.
void PndLmdDetector::SetBranchNames ( )
virtual

pure virtual method SetBranchName

called by Initialize() function to set individual branch names

Implements PndSdsDetector.

Definition at line 29 of file PndLmdDetector.cxx.

References PndSdsDetector::fFolderName, and PndSdsDetector::fOutBranchName.

29  {
30  fOutBranchName = "LMDPoint";
31  fFolderName = "PndLmd";
32 }
TString fOutBranchName
enables the detection of neutral particles
TString fFolderName
To be set by daughter classes.
void PndLmdDetector::SetDefaultSensorNames ( )
virtual

pure virtual method SetDefaultSensorNames

called by Initialize() function to set individual sensor type names

Implements PndSdsDetector.

Definition at line 34 of file PndLmdDetector.cxx.

References PndSdsDetector::fListOfSensitives.

34  {
35  fListOfSensitives.push_back("LumActive");
36 }
std::vector< std::string > fListOfSensitives
To be set by daughter classes.
void PndSdsDetector::SetDetectorID ( DetectorId  id)
inlineinherited

Definition at line 189 of file PndSdsDetector.h.

References PndSdsDetector::fDetectorID.

Referenced by PndLmdDetector(), and PndMvdDetector::PndMvdDetector().

189 {fDetectorID = id;fDetId =id;}
DetectorId fDetectorID
To be set by daughter classes.
void PndSdsDetector::SetExclusiveSensorType ( const TString  sens)
inherited

Definition at line 423 of file PndSdsDetector.cxx.

References PndSdsDetector::fListOfSensitives.

Referenced by createPndLmdMisalignmentMatrices(), run0AllSysDPMbkg(), runGeaneTestSimBox(), runLumi0DPMbkg(), runLumi0DPMbkgSte(), runLumi0SimBox(), runLumiPixel0SimBox(), runLumiPixel0SimDPMDirect(), runLumiPixel0SimDPMDirect_all(), runLumiPixel0SimFTF(), runLumiPixel0SimFTFDirect(), runLumiSimBox(), and sim_LMD().

424 {
425  //Set one exclusive sensor type for testing purposes
426  fListOfSensitives.clear();
427  fListOfSensitives.push_back(sens.Data());
428  std::cout<<"-I- PndSdsDetector: Only active sensor type is set to \""<<sens.Data()<<"\","<<std::endl;
429  std::cout<<" this is not a default setting."<<std::endl;
430 }
std::vector< std::string > fListOfSensitives
To be set by daughter classes.
void PndLmdDetector::SetMisalignmentMatrices ( const std::map< std::string, TGeoHMatrix > &  alignmentMatrices)

Definition at line 103 of file PndLmdDetector.cxx.

References fAlignmentMatrices.

Referenced by runLumiPixel0SimBox().

104  {
105  fAlignmentMatrices = alignmentMatrices;
106 }
std::map< std::string, TGeoHMatrix > fAlignmentMatrices
void PndSdsDetector::SetPersistance ( Bool_t  p = kTRUE)
inlineinherited

Definition at line 197 of file PndSdsDetector.h.

References PndSdsDetector::fPersistance, and p.

197 {fPersistance=p;};
Double_t p
Definition: anasim.C:58
void PndSdsDetector::SetRadDamOption ( bool  val)
inlineinherited

Definition at line 191 of file PndSdsDetector.h.

References PndSdsDetector::fUseRadDamOption, and val.

191 {fUseRadDamOption = val;};
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
bool fUseRadDamOption
Hit collection.
void PndSdsDetector::SetSpecialPhysicsCuts ( )
virtualinherited

Virtual Method SetSpecialPhysicsCuts

replaces some Geant initialisation via g3Config.C and so on

Reimplemented in PndMvdDetector.

Definition at line 122 of file PndSdsDetector.cxx.

123 {
124  // Switched off.
125  return;
126 
127  // FairRun* fRun = FairRun::Instance();
128  //
129  // //check for GEANT3, else abort
130  // if (strcmp(fRun->GetName(),"TGeant3") == 0) {
131  //
132  // //get material ID for customs settings
133  // int matIdVMC = gGeoManager->GetMedium("silicon")->GetId();
134  //
135  // //double cut_el = 1.0E-5; // (GeV)
136  // //double cut_had = 1.0E-3; // (GeV)
137  // double tofmax = 1.E10; // (s)
138  //
139  // // Set new properties, physics cuts etc. for the TPCmixture
140  // gMC->Gstpar(matIdVMC,"PAIR",1); /** pair production*/
141  // gMC->Gstpar(matIdVMC,"COMP",1); /**Compton scattering*/
142  // gMC->Gstpar(matIdVMC,"PHOT",1); /** photo electric effect */
143  // gMC->Gstpar(matIdVMC,"PFIS",0); /**photofission*/
144  // gMC->Gstpar(matIdVMC,"DRAY",1); /**delta-ray*/
145  // gMC->Gstpar(matIdVMC,"ANNI",1); /**annihilation*/
146  // gMC->Gstpar(matIdVMC,"BREM",1); /**bremsstrahlung*/
147  // gMC->Gstpar(matIdVMC,"HADR",1); /**hadronic process*/
148  // gMC->Gstpar(matIdVMC,"MUNU",1); /**muon nuclear interaction*/
149  // gMC->Gstpar(matIdVMC,"DCAY",1); /**decay*/
150  // gMC->Gstpar(matIdVMC,"LOSS",1); /**energy loss*/
151  // gMC->Gstpar(matIdVMC,"MULS",1); /**multiple scattering*/
152  // gMC->Gstpar(matIdVMC,"STRA",0);
153  // gMC->Gstpar(matIdVMC,"RAYL",1);
154  //
155  // gMC->Gstpar(matIdVMC,"CUTGAM",fCut_el); /** gammas (GeV)*/
156  // gMC->Gstpar(matIdVMC,"CUTELE",fCut_el); /** electrons (GeV)*/
157  // gMC->Gstpar(matIdVMC,"CUTNEU",fCut_had); /** neutral hadrons (GeV)*/
158  // gMC->Gstpar(matIdVMC,"CUTHAD",fCut_had); /** charged hadrons (GeV)*/
159  // gMC->Gstpar(matIdVMC,"CUTMUO",fCut_el); /** muons (GeV)*/
160  // gMC->Gstpar(matIdVMC,"BCUTE",fCut_el); /** electron bremsstrahlung (GeV)*/
161  // gMC->Gstpar(matIdVMC,"BCUTM",fCut_el); /** muon and hadron bremsstrahlung(GeV)*/
162  // gMC->Gstpar(matIdVMC,"DCUTE",fCut_el); /** delta-rays by electrons (GeV)*/
163  // gMC->Gstpar(matIdVMC,"DCUTM",fCut_el); /** delta-rays by muons (GeV)*/
164  // gMC->Gstpar(matIdVMC,"PPCUTM",fCut_el); /** direct pair production by muons (GeV)*/
165  //
166  // gMC->SetMaxNStep(1E6);
167  //
168  // Info("SetSpecialPhysicsCuts()","Using special physics cuts in MVD Sensors.");
169  // }
170 }
void PndSdsDetector::SetVerboseLevel ( Int_t  level)
inlineinherited

Member Data Documentation

std::map<std::string, TGeoHMatrix> PndLmdDetector::fAlignmentMatrices
private
DetectorId PndSdsDetector::fDetectorID
protectedinherited

To be set by daughter classes.

Definition at line 223 of file PndSdsDetector.h.

Referenced by PndSdsDetector::operator=(), PndSdsDetector::ProcessHits(), and PndSdsDetector::SetDetectorID().

Double32_t PndSdsDetector::fELoss
protectedinherited
TString PndSdsDetector::fFolderName
protectedinherited

To be set by daughter classes.

Definition at line 222 of file PndSdsDetector.h.

Referenced by PndSdsDetector::operator=(), PndSdsDetector::Register(), PndMvdDetector::SetBranchNames(), and SetBranchNames().

PndGeoHandling* PndSdsDetector::fGeoH
protectedinherited
Double32_t PndSdsDetector::fLength
protectedinherited
std::vector<std::string> PndSdsDetector::fListOfSensitives
protectedinherited
TLorentzVector PndSdsDetector::fMomIn
protectedinherited

exit position in global frame

Definition at line 211 of file PndSdsDetector.h.

Referenced by PndSdsDetector::operator=(), PndSdsDetector::ProcessHits(), and PndSdsDetector::ResetParameters().

TLorentzVector PndSdsDetector::fMomOut
protectedinherited
TString PndSdsDetector::fOutBranchName
protectedinherited

enables the detection of neutral particles

Definition at line 221 of file PndSdsDetector.h.

Referenced by PndSdsDetector::AddHit(), PndSdsDetector::operator=(), PndSdsDetector::Register(), PndMvdDetector::SetBranchNames(), and SetBranchNames().

Bool_t PndSdsDetector::fPersistance
protectedinherited
TClonesArray* PndSdsDetector::fPndSdsCollection
protectedinherited
TLorentzVector PndSdsDetector::fPosIn
protectedinherited
Int_t PndSdsDetector::fPosIndex
protectedinherited

Gives Access to the Path info of a hit.

Definition at line 218 of file PndSdsDetector.h.

Referenced by PndSdsDetector::CopyClones(), PndSdsDetector::EndOfEvent(), PndSdsDetector::operator=(), and PndSdsDetector::ResetParameters().

TLorentzVector PndSdsDetector::fPosOut
protectedinherited

entry position in global frame

Definition at line 210 of file PndSdsDetector.h.

Referenced by PndSdsDetector::operator=(), PndSdsDetector::ProcessHits(), and PndSdsDetector::ResetParameters().

Double32_t PndSdsDetector::fTime
protectedinherited
Int_t PndSdsDetector::fTrackID
protectedinherited

Track information to be stored until the track leaves the active volume.

Definition at line 207 of file PndSdsDetector.h.

Referenced by PndSdsDetector::operator=(), PndSdsDetector::ProcessHits(), and PndSdsDetector::ResetParameters().

bool PndSdsDetector::fUseRadDamOption
protectedinherited
Int_t PndSdsDetector::fVolumeID
protectedinherited

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