13 #include "FairBaseParSet.h"
14 #include "FairRootManager.h"
15 #include "FairRunAna.h"
16 #include "FairRuntimeDb.h"
18 #include "TLorentzVector.h"
50 FairRootManager* ioman = FairRootManager::Instance();
53 std::cout <<
"-E- PndSdsPixelClusterTask::Init: " <<
"RootManager not instantiated!"
62 std::cout <<
"-E- PndSdsPixelClusterTask::Init: " <<
"No SDSDigi array!" << std::endl;
82 std::cout <<
"-I- PndSdsPixelClusterTask: Initialisation successfull" << std::endl;
89 std::cout <<
"PndLmdPixelClusterTask::SetParContainers() " << std::endl;
91 ana = FairRun::Instance();
99 Info(
"SetParContainers()",
"AlignLMD The container names list contains %i entries",
100 theAlignLMDContNames->GetEntries());
101 TIter cfAlIter(theAlignLMDContNames);
102 while (TObjString* contname = (TObjString*) cfAlIter()) {
103 TString parsetname = contname->String();
104 Info(
"SetParContainers()",
"%s", parsetname.Data());
116 std::cout <<
"PndLmdPixelClusterTask::SetClusterFinder() " << std::endl;
133 if (FairRunAna::Instance()->IsTimeStamp())
148 Fatal(
"Exec",
"No ClusterArray");
153 Fatal(
"Exec",
"No HitArray");
156 std::vector<PndSdsDigiPixel> DigiPixelArray;
157 DigiPixelArray.clear();
159 Double_t EventTime = FairRootManager::Instance()->GetEventTime();
162 std::cout <<
"-I- PndSdsPixelClusterTask::Exec EventTime: " << EventTime << std::endl;
165 if (FairRunAna::Instance()->IsTimeStamp()) {
174 for (Int_t iPoint = 0; iPoint < nPoints; iPoint++) {
176 DigiPixelArray.push_back(myDigi);
182 std::cout <<
" -I- PndSdsPixelClusterTask::Exec(): We have " << clusters.size()
183 <<
" pixel clusters" << std::endl;
185 for (UInt_t
i = 0;
i < clusters.size();
i++) {
188 if (FairRunAna::Instance()->IsTimeStamp()) {
189 tempCluster->ResetLinks();
190 for (UInt_t j = 0; j < clusters[
i].size(); j++) {
192 tempCluster->AddLink(FairLink(tempDigi->GetEntryNr()));
199 for (UInt_t
i = 0;
i < clusters.size();
i++) {
201 std::vector<PndSdsDigiPixel> clusterArray;
202 for (UInt_t j = 0; j < clusters[
i].size(); j++) {
203 clusterArray.push_back(DigiPixelArray[clusters[
i][j]]);
212 clusterArray.clear();
218 hitCov(0, 0) = 2.25e-06;
219 hitCov(1, 1) = 2.25e-06;
220 hitCov(2, 2) = 4.28489999999999954e-08;
238 myHit.SetDx(
sqrt(hitCov[0][0]));
239 myHit.SetDy(
sqrt(hitCov[1][1]));
240 myHit.SetDz(
sqrt(hitCov[2][2]));
243 std::cout <<
" -I- PndSdsPixelClusterTask::Exec(): Calculated Hit(LUMI "
244 "frame): " << std::endl;
246 #if (ROOT_VERSION_CODE >= ROOT_VERSION(5, 34, 10))
247 ((FairMultiLinkedData_Interface) (myHit)).
Print();
249 ((FairMultiLinkedData)(myHit)).
Print();
253 Int_t size = clref.GetEntriesFast();
260 DigiPixelArray.clear();
262 std::cout << std::endl;
265 std::cout <<
"-I- PndLmdPixelClusterTask: " <<
fClusterArray->GetEntriesFast()
266 <<
" Sds Clusters and " <<
fHitArray->GetEntriesFast() <<
" Hits calculated."
PndSdsChargedWeightedPixelMapping: Gets a vector of DigiHits and calculates the cluster center weight...
virtual void Print(const Option_t *opt=0) const
TList * GetAlignParNames()
PndSdsPixelBackMapping * fBackMapping
TVector3 GetPosition() const
void SetClusterIndex(Int_t datasource, Int_t id, Int_t fileId=-1, Int_t evtId=-1)
friend F32vec4 sqrt(const F32vec4 &a)
TClonesArray * fClusterArray
void SetPersistency(Bool_t val=kTRUE)
virtual void SetParContainers()
virtual void SetParContainers()
BinaryFunctor * fStartFunctor
virtual ~PndLmdPixelClusterTask()
PndSdsPixelDigiPar * fDigiPar
PndSdsPixelClusterFinder * fClusterFinder
TClonesArray * fDigiArray
virtual void SetBackMapping()
virtual void SetBranchNames()
virtual void SetInBranchId()
virtual void SetClusterFinder()
virtual void Print(std::ostream &out=std::cout) const
Data class to store the digi output of a pixel module.
void SetCov(TMatrixD cov)
virtual PndSdsHit GetCluster(std::vector< PndSdsDigiPixel > pixelArray)=0
TMatrixT< double > TMatrixD
virtual std::vector< std::vector< Int_t > > GetClusters(std::vector< PndSdsDigiPixel > hits)=0
Digitization Parameter Class for SDS-Pixel part.