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

Unique match between SensorID and path in TGeoManager. More...

#include <PndSensorNamePar.h>

Inheritance diagram for PndSensorNamePar:

Public Member Functions

 PndSensorNamePar (const char *name="PndSensorNamePar", const char *title="Match between GeoManager path and SensorId", const char *context="TestDefaultContext")
 
 ~PndSensorNamePar (void)
 
void clear (void)
 
void putParams (FairParamList *list)
 
Bool_t getParams (FairParamList *list)
 
virtual void print ()
 
void Print ()
 
Int_t AddSensorName (TObjString *name)
 
Int_t SensorInList (TObjString *name)
 
void FillMap ()
 
TString GetSensorName (Int_t index)
 
TObjArray * GetSensorNames () const
 
std::vector< TStringGetSensorNamesWithString (TString identifier)
 
 PndSensorNamePar (const PndSensorNamePar &L)
 
PndSensorNameParoperator= (const PndSensorNamePar &L)
 

Private Member Functions

 ClassDef (PndSensorNamePar, 1)
 

Private Attributes

TObjArray * fSensorNames
 
std::map< TString, Int_t > fMapOfSensorNames
 
std::map< Int_t, TStringfMapOfSensorIndizes
 

Friends

std::ostreamoperator<< (std::ostream &output, const PndSensorNamePar &par)
 

Detailed Description

Unique match between SensorID and path in TGeoManager.

Definition at line 19 of file PndSensorNamePar.h.

Constructor & Destructor Documentation

PndSensorNamePar::PndSensorNamePar ( const char *  name = "PndSensorNamePar",
const char *  title = "Match between GeoManager path and SensorId",
const char *  context = "TestDefaultContext" 
)

Definition at line 4 of file PndSensorNamePar.cxx.

References clear(), and fSensorNames.

5  : FairParGenericSet(name,title,context), fSensorNames()
6 {
7  clear();
8  fSensorNames = new TObjArray();
9  fSensorNames->SetOwner(kTRUE);
10 
11 }
TObjArray * fSensorNames
TString name
PndSensorNamePar::~PndSensorNamePar ( void  )
inline

Definition at line 25 of file PndSensorNamePar.h.

References fSensorNames.

25  {
26  if(fSensorNames) delete fSensorNames;
27  };
TObjArray * fSensorNames
PndSensorNamePar::PndSensorNamePar ( const PndSensorNamePar L)

Definition at line 13 of file PndSensorNamePar.cxx.

References fSensorNames, and GetSensorNames().

13  :
14 FairParGenericSet(L)
15 {
16  fSensorNames = new TObjArray(*(L.GetSensorNames()));
17 }
TObjArray * GetSensorNames() const
TObjArray * fSensorNames

Member Function Documentation

Int_t PndSensorNamePar::AddSensorName ( TObjString *  name)

Definition at line 39 of file PndSensorNamePar.cxx.

References fMapOfSensorIndizes, fMapOfSensorNames, fRun, fSensorNames, SensorInList(), setChanged(), and setInputVersion().

Referenced by PndGeoHandling::DiveDownToFillSensNamePar().

40 {
41  if (SensorInList(name) < 0) {
42  fSensorNames->AddLast(name);
43  this->setChanged();
44  FairRun *fRun = FairRun::Instance();
45  this->setInputVersion(fRun->GetRunId(), 1);
46  fMapOfSensorNames[name->GetString()] = fSensorNames->GetEntries() - 1;
47  fMapOfSensorIndizes[fSensorNames->GetEntries() - 1] = name->GetString();
48 
49  return fSensorNames->GetEntries() - 1;
50  } else
51  return SensorInList(name);
52 
53 }
std::map< TString, Int_t > fMapOfSensorNames
Par setInputVersion(fRun->GetRunId(), 1)
Par setChanged()
Int_t SensorInList(TObjString *name)
std::map< Int_t, TString > fMapOfSensorIndizes
FairRunAna * fRun
Definition: hit_dirc.C:58
TObjArray * fSensorNames
TString name
PndSensorNamePar::ClassDef ( PndSensorNamePar  ,
 
)
private
void PndSensorNamePar::clear ( void  )
inline

Definition at line 28 of file PndSensorNamePar.h.

Referenced by PndSensorNamePar().

28 {};
void PndSensorNamePar::FillMap ( )
inline

Definition at line 52 of file PndSensorNamePar.h.

References fMapOfSensorIndizes, fMapOfSensorNames, fSensorNames, and i.

Referenced by PndGeoHandling::FillSensorMap(), getParams(), PndGeoHandling::Init(), PndMQFileSinkBursts::Run(), PndMvdPixelClusterTask::SetBackMappingMQ(), and PndMQMvdPixelDigiProcessorBursts::SetParameters().

52  {
53  for (int i = 0; i < fSensorNames->GetEntries();i++){
54  TObjString* SensName = (TObjString*)fSensorNames->At(i);
55  fMapOfSensorNames[SensName->GetString()] = i;
56  fMapOfSensorIndizes[i] = SensName->GetString();
57  }
58  }
Int_t i
Definition: run_full.C:25
std::map< TString, Int_t > fMapOfSensorNames
std::map< Int_t, TString > fMapOfSensorIndizes
TObjArray * fSensorNames
Bool_t PndSensorNamePar::getParams ( FairParamList *  list)

Definition at line 31 of file PndSensorNamePar.cxx.

References FillMap(), and fSensorNames.

32 {
33  if (!list) return kFALSE;
34  if (!list->fillObject("SensorNames",fSensorNames)) return kFALSE;
35  FillMap();
36  return kTRUE;
37 }
TObjArray * fSensorNames
TString PndSensorNamePar::GetSensorName ( Int_t  index)
inline

Definition at line 60 of file PndSensorNamePar.h.

References fMapOfSensorIndizes.

Referenced by PndGeoHandling::GetPath().

60  {
61 // if (index < fSensorNames->GetEntries()){
62 // TObjString* myString = (TObjString*)fSensorNames->At(index);
63 // return myString->GetString();
64 // }
65 // else{
66 // std::cout << "-E- PndSensorNamePar::GetSensorName index " << index
67 // << " out of bounds: " << fSensorNames->GetEntries() << std::endl;
68 // return "";
69 // }
70  std::map<Int_t, TString>::const_iterator iter;
71  iter = fMapOfSensorIndizes.find(index);
72  if (iter != fMapOfSensorIndizes.end()) {
73  return iter->second;
74  } else {
75  std::cout << "-E- PndSensorNamePar::GetSensorName index " << index << " not in list!";
76  return "";
77  }
78 
79  }
std::map< Int_t, TString > fMapOfSensorIndizes
TObjArray* PndSensorNamePar::GetSensorNames ( ) const
inline

Definition at line 81 of file PndSensorNamePar.h.

References fSensorNames.

Referenced by PndGeoHandling::GetSensorNames(), operator=(), and PndSensorNamePar().

81 {return fSensorNames;}
TObjArray * fSensorNames
std::vector< TString > PndSensorNamePar::GetSensorNamesWithString ( TString  identifier)

Definition at line 55 of file PndSensorNamePar.cxx.

References fMapOfSensorNames.

Referenced by PndGeoHandling::GetSensorNamesWithString().

55  {
56  std::vector<TString> result;
57  for (auto& value : fMapOfSensorNames){
58  if (value.first.Contains(identifier)){
59  result.push_back(value.first);
60  }
61  }
62  return result;
63 }
std::map< TString, Int_t > fMapOfSensorNames
PndSensorNamePar & PndSensorNamePar::operator= ( const PndSensorNamePar L)

Definition at line 19 of file PndSensorNamePar.cxx.

References fSensorNames, and GetSensorNames().

20 {
21  fSensorNames = new TObjArray(*(L.GetSensorNames()));
22  return *this;
23 }
TObjArray * GetSensorNames() const
TObjArray * fSensorNames
virtual void PndSensorNamePar::print ( )
inlinevirtual

Definition at line 32 of file PndSensorNamePar.h.

References Print().

32 {Print();}
void PndSensorNamePar::Print ( )

Definition at line 67 of file PndSensorNamePar.cxx.

References fMapOfSensorIndizes, and fSensorNames.

Referenced by PndGeoHandling::GetSensorNamePar(), print(), and PndGeoHandling::PrintSensorNames().

68 {
69  std::cout<<"SensorNames:"<<std::endl;
70  std::cout<< "Entries: " << fSensorNames->GetEntries() << std::endl;
71 // for (int i = 0; i < fSensorNames->GetEntries(); i++){
72 // TObjString* mySensName = (TObjString*)fSensorNames->At(i);
73 // std::cout << i << ": " << mySensName->GetString().Data() << std::endl;
74 // }
75  for (std::map<Int_t, TString>::iterator iter = fMapOfSensorIndizes.begin(); iter != fMapOfSensorIndizes.end(); iter++){
76  std::cout << iter->first << ": " << iter->second.Data() << std::endl;
77  }
78 }
std::map< Int_t, TString > fMapOfSensorIndizes
TObjArray * fSensorNames
void PndSensorNamePar::putParams ( FairParamList *  list)

Definition at line 25 of file PndSensorNamePar.cxx.

References fSensorNames.

26 {
27  if(!list) return;
28  list->addObject("SensorNames", fSensorNames);
29 }
TObjArray * fSensorNames
Int_t PndSensorNamePar::SensorInList ( TObjString *  name)
inline

Definition at line 37 of file PndSensorNamePar.h.

References fMapOfSensorNames.

Referenced by AddSensorName(), and PndGeoHandling::GetShortID().

37  {
38 // for (int i = 0; i < fSensorNames->GetEntries();i++){
39 // TObjString* SensName = (TObjString*)fSensorNames->At(i);
40 // if (SensName->GetString() == name->GetString())
41 // return i;
42 // }
43 // return -1;
44  std::map<TString, Int_t>::iterator iter;
45  iter = fMapOfSensorNames.find(name->GetString());
46  if (iter != fMapOfSensorNames.end())
47  return iter->second;
48  else
49  return -1;
50  }
std::map< TString, Int_t > fMapOfSensorNames
TString name

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream output,
const PndSensorNamePar par 
)
friend

Definition at line 88 of file PndSensorNamePar.h.

88  {
89  output << "SensorNames:" << std::endl;
90  output << "Entries: " << par.fSensorNames->GetEntries() << std::endl;
91 
92  for (std::map<Int_t, TString>::const_iterator iter = par.fMapOfSensorIndizes.begin(); iter != par.fMapOfSensorIndizes.end(); iter++){
93  output << iter->first << ": " << iter->second.Data() << std::endl;
94  }
95  return output;
96  }
std::map< Int_t, TString > fMapOfSensorIndizes
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
TObjArray * fSensorNames

Member Data Documentation

std::map<Int_t, TString> PndSensorNamePar::fMapOfSensorIndizes
private

Definition at line 103 of file PndSensorNamePar.h.

Referenced by AddSensorName(), FillMap(), GetSensorName(), and Print().

std::map<TString, Int_t> PndSensorNamePar::fMapOfSensorNames
private

Definition at line 102 of file PndSensorNamePar.h.

Referenced by AddSensorName(), FillMap(), GetSensorNamesWithString(), and SensorInList().

TObjArray* PndSensorNamePar::fSensorNames
private

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