22 #include "FairRootManager.h" 
   23 #include "FairRunAna.h" 
   24 #include "FairRuntimeDb.h" 
   25 #include "FairEventHeader.h" 
   27 #include "TGeoManager.h" 
   31 #include "TClonesArray.h" 
   40   PndPersistencyTask(
"Ideal STT Hit Producer",0), fDataBuffer(0), fTimeOrderedDigi(kFALSE)
 
   58   FairRootManager* ioman = FairRootManager::Instance();
 
   60     cout << 
"-E- PndSttHitProducerRealFull::Init: " 
   61          << 
"RootManager not instantiated!" << endl;
 
   66   fPointArray = (TClonesArray*) ioman->GetObject(
"STTPoint");
 
   68     cout << 
"-W- PndSttHitProducerRealFull::Init: " 
   69          << 
"No STTPoint array!" << endl;
 
   89   cout << 
"-I- PndSttHitProducerRealFull: Intialization successfull" << endl;
 
   98   FairRuntimeDb* 
rtdb = FairRunAna::Instance()->GetRuntimeDb();
 
  127   for (Int_t iPoint = 0; iPoint < nPoints; iPoint++) {
 
  129     if (point == NULL) 
continue;
 
  131     detID = point->GetDetectorID();
 
  138     memset(InOut, 0, 
sizeof(InOut));
 
  155      stt.
TConst(0.5, 2, 0.8, 0.2);
 
  173     if(radius < 0.) radius = 0.; 
 
  189     Double_t closestDistanceError = 0.0150; 
 
  206     pos.SetXYZ(position.X(), position.Y(), position.Z()); 
 
  214     AddHit(detID, tubeID, iPoint, pos, dpos, pulset, radius, closestDistanceError, depCharge, point->GetTime());
 
  216     AddHitInfo(0, 0, point->GetTrackID(), iPoint, 0, kFALSE);
 
  221   cout << 
"-I- PndSttHitProducerRealFull: " << nPoints << 
" SttPoints, " 
  222        << nPoints << 
" Hits created." << endl;
 
  227                                                     TVector3 , TVector3 ) 
 
  233   zposError = gRandom->Gaus(0., 3.); 
 
  246           Double_t EventTime = FairRootManager::Instance()->GetEventTime();
 
  248   PndSttHit *hitnew =  
new PndSttHit(detID, tubeID, iPoint, pos, dpos, p+EventTime+timeOfFlight, rsim, closestDistanceError, depcharge);
 
  250           hitnew->ResetLinks();
 
  251           FairEventHeader* evtHeader = (FairEventHeader*)FairRootManager::Instance()->GetObject(
"EventHeader.");
 
  252           hitnew->AddLink(FairLink(evtHeader->GetInputFileId(), evtHeader->GetMCEntryNumber(),  
"STTPoint", iPoint));
 
  253           hitnew->AddLink(FairLink(-1, FairRootManager::Instance()->GetEntryNr(), 
"EventHeader.", -1));
 
  255           hitnew->AddLinks(*(point->GetPointerToLinks()));
 
  257   fDataBuffer->FillNewData(hitnew, p+EventTime+timeOfFlight, timeOfFlight+EventTime);
 
  267   Int_t size = clref.GetEntriesFast();
 
  268   return new(clref[size])  
PndSttHitInfo(fileNumber, eventNumber, trackID, pointID, nMerged, isFake);
 
Double_t GetYOutLocal() const 
~PndSttHitProducerRealFull()
void PutWireXYZ(Double_t w1, Double_t w2, Double_t w3, Double_t w4, Double_t w5, Double_t w6)
static T Sqrt(const T &x)
Double_t GetZInLocal() const 
Double_t GetXInLocal() const 
void SetPersistency(Bool_t val=kTRUE)
Double_t GetPzOut() const 
void FoldZPosWithResolution(Double_t &zpos, Double_t &zposError, TVector3 localInPos, TVector3 localOutPos)
Double_t GetPxOut() const 
Double_t GetYInLocal() const 
Double_t GetZOutLocal() const 
Double_t GetXOutLocal() const 
TClonesArray * FillTubeArray()
PndSttHitWriteoutBuffer * fDataBuffer
Double_t TimnsToDiscm(Double_t time)
TClonesArray * fHitInfoArray
PndGeoSttPar * fSttParameters
TClonesArray * fTubeArray
Double_t GetPyOut() const 
TClonesArray * fPointArray
PndSttHitInfo * AddHitInfo(Int_t fileNumber, Int_t eventNumber, Int_t trackID, Int_t pointID, Int_t nMerged, Bool_t isFake)
void TConst(Double_t Radius, Double_t pSTP, Double_t ArP, Double_t CO2P)
virtual InitStatus Init()
virtual void Exec(Option_t *opt)
PndSttHit * AddHit(Int_t detID, Int_t tubeID, Int_t iPoint, TVector3 &pos, TVector3 &dpos, Double_t p, Double_t rsim, Double_t closestDistanceError, Double_t depcharge, Double_t timeOfFlight)
Double_t PartToTime(Double_t Mass, Double_t Momentum, Double_t InOut[])
PndSttHitProducerRealFull()