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

#include <PndSttSkewedCombineTask.h>

Inheritance diagram for PndSttSkewedCombineTask:

Public Member Functions

 PndSttSkewedCombineTask ()
 
virtual ~PndSttSkewedCombineTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
void SetVerbose (Int_t verbose)
 
void SetPersistence (Bool_t val)
 

Private Member Functions

 ClassDef (PndSttSkewedCombineTask, 1)
 

Private Attributes

TClonesArray * fSttHits
 
TClonesArray * fCombinedSkewedHits
 
PndSttStrawMap fStrawMap
 
PndSttGeometryMapfGeometryMap
 
Int_t fVerbose
 
Bool_t fPersistence
 
PndGeoSttParfSttParameters
 
TClonesArray * fTubeArray
 
TClonesArray * fEventHeader
 

Detailed Description

Definition at line 13 of file PndSttSkewedCombineTask.h.

Constructor & Destructor Documentation

PndSttSkewedCombineTask::PndSttSkewedCombineTask ( )
inline

Definition at line 16 of file PndSttSkewedCombineTask.h.

16  :FairTask("Stt Skewed Combine"), fVerbose(0), fPersistence(
17  kTRUE) {};
virtual PndSttSkewedCombineTask::~PndSttSkewedCombineTask ( )
inlinevirtual

Definition at line 19 of file PndSttSkewedCombineTask.h.

19 {};

Member Function Documentation

PndSttSkewedCombineTask::ClassDef ( PndSttSkewedCombineTask  ,
 
)
private
void PndSttSkewedCombineTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 82 of file PndSttSkewedCombineTask.cxx.

References PndSttGeometryMap::CalculateStrawPoca(), fCombinedSkewedHits, fEventHeader, fGeometryMap, fStrawMap, fSttHits, fVerbose, PndSttGeometryMap::GetNeighboringsByMap(), PndSttStrawMap::GetRow(), PndSttHit::GetTubeID(), and i.

82  {
83 
84  FairEventHeader* myEventHeader = (FairEventHeader*) fEventHeader;
85  int eventNumber = myEventHeader->GetMCEntryNumber();
86 
87  if (fVerbose > 0) {
88  std::cout << "====================Begin PndSttSkewedCombineTask::Exec=======================" << endl;
89  std::cout << "Event #" << eventNumber << endl;
90  }
91 
92 
93 
94  FairRootManager *ioman = FairRootManager::Instance();
95 
96  std::map<int, PndSttHit*> tubeMap;
97  for (int i = 0; i < fSttHits->GetEntriesFast(); i++){
98  PndSttHit* myHit = (PndSttHit*)fSttHits->At(i);
99  myHit->SetEntryNr(FairLink(-1, eventNumber, ioman->GetBranchId("STTHit"),i));
100  tubeMap[myHit->GetTubeID()] = myHit;
101  }
102 
103  for (int i = 0; i < fSttHits->GetEntriesFast(); i++){
104  PndSttHit* myHit = (PndSttHit*)fSttHits->At(i);
105  int strawRow = fStrawMap.GetRow(myHit->GetTubeID());
106  if (fVerbose > 1) std::cout << "PndSttSkewedCombineTask::Exec: TubeID " << myHit->GetTubeID() << " RowNr " << strawRow << std::endl;
107  if (strawRow > 6 && strawRow < 16 && strawRow % 2 == 1) {
108  TArrayI tmp = fGeometryMap->GetNeighboringsByMap(myHit->GetTubeID());
109  for (int j = 0; j < tmp.GetSize(); j++){
110  if (fStrawMap.GetRow(tmp.At(j)) == strawRow + 1) {
111  if (tubeMap.find(tmp.At(j)) != tubeMap.end()) {
112  TVector3 poca, pocaError;
113  if (fVerbose > 1) std::cout << "PndSttSkewedCombineTask::Exec: FoundNeighbourHit " << tubeMap[tmp.At(j)]->GetTubeID() << std::endl;
114 
115  double distance = fGeometryMap->CalculateStrawPoca(myHit, tubeMap[tmp.At(j)], poca);
116  if (fVerbose > 1) std::cout << "PndSttSkewedCombineTask::Exec: poca: " << poca.x() << "/" << poca.y() << "/" << poca.z() << " " << distance << std::endl;
117  PndSttSkewedHit* skewedHit = new ((*fCombinedSkewedHits)[fCombinedSkewedHits->GetEntriesFast()]) PndSttSkewedHit(-1,myHit->GetTubeID(), tubeMap[tmp.At(j)]->GetTubeID(), -1, poca, pocaError);
118  skewedHit->AddLink(myHit->GetEntryNr());
119  skewedHit->AddLink(tubeMap[tmp.At(j)]->GetEntryNr());
120  skewedHit->SetEntryNr(FairLink(-1, eventNumber, ioman->GetBranchId("STTCombinedSkewedHits"), fCombinedSkewedHits->GetEntriesFast()-1));
121  }
122  }
123  }
124  }
125  }
126 }
Int_t i
Definition: run_full.C:25
Double_t CalculateStrawPoca(PndSttHit *hit1, PndSttHit *hit2, TVector3 &poca)
Int_t GetTubeID() const
Definition: PndSttHit.h:75
PndSttGeometryMap * fGeometryMap
int GetRow(int strawindex) const
TArrayI GetNeighboringsByMap(int tubeId)
void PndSttSkewedCombineTask::FinishEvent ( )
virtual

Definition at line 128 of file PndSttSkewedCombineTask.cxx.

References fCombinedSkewedHits.

128  {
129  fCombinedSkewedHits->Delete();
130 }
InitStatus PndSttSkewedCombineTask::Init ( )
virtual

Definition at line 42 of file PndSttSkewedCombineTask.cxx.

References fCombinedSkewedHits, fEventHeader, fGeometryMap, PndSttMapCreator::FillTubeArray(), fStrawMap, fSttHits, fSttParameters, fTubeArray, fVerbose, and PndSttStrawMap::GenerateStrawMap().

42  {
43  FairRootManager* ioman = FairRootManager::Instance();
44 
45  if (!ioman) {
46  std::cout << "-E- PndSttSkewedCombineTask::Init: "
47  << "RootManager not instantiated!" << std::endl;
48  return kFATAL;
49  }
50 
51  fEventHeader = (TClonesArray*) ioman->GetObject("EventHeader.");
52  if (!fEventHeader) {
53  std::cout << "-W- PndSttSkewedCombineTask::Init: No EventHeader array! Needed for EventNumber" << endl;
54  return kERROR;
55  }
56 
57  // Get input array
58 // if (FairRunAna::Instance()->IsTimeStamp()){
59 // if (fTimeBasedHitBranch.size() == 0){
60 // std::cout << "-W- PndSttSkewedCombineTask::Init: " << "No Branch Names given with AddHitBranch(TString branchName)! Standard BranchNames taken!" << std::endl;
61 // fTimeBasedHitBranch.push_back(FairTSBufferParameters("MVDHitsPixel", new TimeGap(), 10));
62 // }
63 // }
64 
65  fSttHits = (TClonesArray*) FairRootManager::Instance()->GetObject("STTHit");
66 
68  fTubeArray = mapper->FillTubeArray();
71 
72  fCombinedSkewedHits = ioman->Register("STTCombinedSkewedHits", "PndSttSkewedHit", "Stt", kTRUE);
73 
74  if (fVerbose > 0) {
75  std::cout << "-I- PndSttSkewedCombineTask: Initialisation successfull" << std::endl;
76  }
77  //fInitDone = kTRUE;
78  return kSUCCESS;
79 }
void GenerateStrawMap(TClonesArray *const stt_tube_array)
TClonesArray * FillTubeArray()
PndSttGeometryMap * fGeometryMap
void PndSttSkewedCombineTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 31 of file PndSttSkewedCombineTask.cxx.

References fSttParameters, and rtdb.

31  {
32  FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb();
33  fSttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");
34 }
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
void PndSttSkewedCombineTask::SetPersistence ( Bool_t  val)
inline

Definition at line 36 of file PndSttSkewedCombineTask.h.

References fPersistence, and val.

36  {
37  fPersistence = val;
38  }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndSttSkewedCombineTask::SetVerbose ( Int_t  verbose)
inline

Definition at line 32 of file PndSttSkewedCombineTask.h.

References fVerbose, and verbose.

32  {
33  fVerbose = verbose;
34  }
#define verbose

Member Data Documentation

TClonesArray* PndSttSkewedCombineTask::fCombinedSkewedHits
private

Definition at line 48 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), FinishEvent(), and Init().

TClonesArray* PndSttSkewedCombineTask::fEventHeader
private

Definition at line 59 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), and Init().

PndSttGeometryMap* PndSttSkewedCombineTask::fGeometryMap
private

Definition at line 51 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), and Init().

Bool_t PndSttSkewedCombineTask::fPersistence
private

Definition at line 54 of file PndSttSkewedCombineTask.h.

Referenced by SetPersistence().

PndSttStrawMap PndSttSkewedCombineTask::fStrawMap
private

Definition at line 50 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndSttSkewedCombineTask::fSttHits
private

Definition at line 39 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), and Init().

PndGeoSttPar* PndSttSkewedCombineTask::fSttParameters
private

Definition at line 56 of file PndSttSkewedCombineTask.h.

Referenced by Init(), and SetParContainers().

TClonesArray* PndSttSkewedCombineTask::fTubeArray
private

Definition at line 57 of file PndSttSkewedCombineTask.h.

Referenced by Init().

Int_t PndSttSkewedCombineTask::fVerbose
private

Definition at line 53 of file PndSttSkewedCombineTask.h.

Referenced by Exec(), Init(), and SetVerbose().


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