10 #include "TClonesArray.h"
14 #include "FairRootManager.h"
21 #include "FairRuntimeDb.h"
33 fApvConvert(Apvconvert),
34 fApvMapper(Apvmapper),
38 fDigiParameterList(new TList()),
50 cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
51 cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
52 cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
53 cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
54 cout <<
"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;
56 FairRun* ana = FairRun::Instance();
57 FairRuntimeDb*
rtdb=ana->GetRuntimeDb();
60 Info(
"SetParContainers()",
"The container names list contains %i entries",theContNames->GetEntries());
61 TIter cfIter(theContNames);
62 while (TObjString* contname = (TObjString*)cfIter()) {
63 TString parsetname = contname->String();
64 if(parsetname.BeginsWith(
"MVDStripDigiPar")){
66 Info(
"SetParcontiners()",
"check some values. fDigiParameterList: %p digipar: %p",
fDigiParameterList,digipar);
70 Info(
"SetParContainers()",
"Loaded container %s",parsetname.Data());
83 FairRootManager* ioman = FairRootManager::Instance();
86 std::cout <<
"-E- PndMvdStripHitProducer::Init: "
87 <<
"RootManager not instantiated!" << std::endl;
96 cout<<
"Init of Task finished"<<endl;
99 std::vector<std::string> listOfSensitives;
100 listOfSensitives.push_back(
"StripActive");
108 cout <<
"Debugging, sens type: " << (
TString)digipar->GetSensType() <<
", num of bot FE: " << digipar->GetNrBotFE() << endl;
109 if(digipar->GetNrBotFE()==1)
130 std::map<Int_t,Double_t> singleSidedBacksideMap;
131 std::map<Int_t,std::vector<Int_t> > buffIndex;
135 Int_t sw=-1, botfe=-1;
144 for (std::vector<PndSdsDigiStrip>::iterator
strip=strips.begin();
strip!=strips.end(); ++
strip)
149 nbox =
strip -> GetSensorID();
151 buffCh =
strip -> GetChannel();
155 buffClock =
strip->GetTimeStamp();
156 buffSpill =
strip->GetTimeStampError();
158 if(
fVerbose>1) Info(
"Exec",
"Write a Digi from detector %s %i",detpath.Data(),detnameid);
162 sw = (Int_t) buffCh/128.;
163 ch = (Int_t) buffCh%128;
177 buffStr->SetTimeStampError(
strip->GetTimeStampError());
185 singleSidedBacksideMap[detnameid]+=
strip->GetCharge();
191 for (std::map<Int_t,Double_t>::iterator it=singleSidedBacksideMap.begin();it!=singleSidedBacksideMap.end();++it)
197 buffStr2->SetTimeStampError(buffSpill);
210 if( !(detpath.Contains(
"Strip")) )
return kFALSE;
214 if( detpath.Contains(it->first) )
230 if( detpath.Contains(it->first) )
TClonesArray * fStripArray
array of results
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
PndMvdConvertApvTask(PndMvdConvertApv *Apvconvert, PndMvdBoxMap *Apvmapper)
labels push_back("electron")
Class for digitised strip hits.
void CreateUniqueSensorId(TString startName, std::vector< std::string > listOfSensitives)
Has to be called during simulation to create unique sensor id.
TString GetPath(Int_t shortID)
for a given shortID the path is returned
Convert meassured data into PndSdsDigiStrip.
Bool_t IsSingleSided(TString &detpath)
void DoMapping(Int_t nbox, Int_t chan, TString &detpath)
TList * GetDigiParNames()
Class to access the naming information of the MVD.
std::vector< PndSdsDigiStrip > ReadNext()
PndMvdBoxMap * fApvMapper
virtual void SetParContainers()
Digitization Parameter Class for MVD-Strip part.
Int_t GetShortID(TString path)
for a given path the (unique) position of the sensor path in the fSensorNamePar-List is given...
TList * fDigiParameterList
PndGeoHandling * fGeoH
Geohandler for name string compression.
PndMvdConvertApv * fApvConvert
class which convert the read in and hold the streams
std::map< TString, Int_t > fBotSides
Int_t CalcBotFakeFE(TString detpath)