7 #include "TClonesArray.h"
9 #include "TGeoManager.h"
11 #include "FairRootManager.h"
14 #include "FairRuntimeDb.h"
15 #include "FairGeoNode.h"
16 #include "FairGeoVector.h"
17 #include "FairRunAna.h"
18 #include "FairEventHeader.h"
34 if(
fVerbose>0) Info(
"PndRichHitFinder",
"RICH Hit Finder created, Parameters will be taken from RTDB");
78 if(
fVerbose>0) Info(
"PndRichHitFinder",
"RichHitFinder created, Parameters will be taken from RTDB");
119 if(
fVerbose>0) Info(
"PndRichHitFinder",
"%s created, Parameters will be taken from RTDB",name);
152 if(
fVerbose>1) Info(
"SetParContainers",
"done.");
164 FairRootManager* ioman = FairRootManager::Instance();
167 std::cout <<
"-E- PndRichHitFinder::Init: "
168 <<
"RootManager not instantiated!" << std::endl;
172 std::cout <<
"FairRunAna::Instance()->IsTimeStamp() = " << FairRunAna::Instance()->IsTimeStamp() << std::endl;
173 if (FairRunAna::Instance()->IsTimeStamp())
181 std::cout <<
"-W- PndRichHitFinder::Init: "
182 <<
"No RichDigi array!" << std::endl;
198 if(
fVerbose>3) Info(
"Exec",
"Start");
202 Double_t etime = FairRootManager::Instance()->GetEventTime();
203 if (FairRunAna::Instance()->IsTimeStamp()){
208 std::cout <<
"nDigis = " << nDigis <<
" " << FairRunAna::Instance()->IsTimeStamp() << std::endl;
218 for (Int_t iDigi = 0; iDigi < nDigis; iDigi++)
237 std::vector< Int_t > nmax;
238 std::vector< Int_t > imax;
239 std::vector< Int_t > istart;
240 std::vector< Int_t > istop;
254 if (j>=0) nhits += j<nbrp ?
270 nmax.push_back(nhitsmax);
271 imax.push_back(imax_);
272 istop.push_back(
i-1);
274 std::cout <<
"peak = " << imax.size() <<
" " << imax_ <<
" " << nhitsmax <<
" "
275 << istop.back() <<
" " << istart.back() <<
" " << t << std::endl;
279 if (nhits<5) ilast =
i;
284 if(
fVerbose>1) std::cout<<
"-I- PndRichHitFinder: Event # "<<
fEventNr<<
" has "<<nDigis<<
" digis."<< std::endl;
285 else if(
fVerbose==1 &&
fEventNr%1000==0) std::cout<<
"-I- PndRichHitFinder: Event # "<<
fEventNr<<
" has "<<nDigis<<
" digis."<< std::endl;
286 std::cout<<
"-I- PndRichHitFinder: Event # "<<
fEventNr<<
" has "<<nDigis<<
" digis. "
287 << FairRunAna::Instance()->IsTimeStamp() <<
" " << etime <<
" "
288 << timel-timef <<
" " << etime <<
" " << timef <<
" " << timel <<
" " <<
petime << std::endl;
294 TVector3 HitPosGlobal, HitPosLocal, dPosHit;
298 for (Int_t iDigi = 0; iDigi < nDigis; iDigi++){
304 Int_t sensorId = -999;
322 if(
fDigi->GetTimeStamp()!=etime+hitTime) hitTime =
fDigi->GetTimeStamp() - etime;
325 pdhit.SetTimeStamp(
fDigi->GetTimeStamp());
327 pdhit.SetLink(
fDigi->GetLink(0));
328 pdhit.AddLink(
fDigi->GetLink(1));
329 pdhit.AddLink(FairLink(-1,
fEventNr,
"RichDigi", iDigi));
343 for (Int_t iDigi = 0; iDigi < nDigis; iDigi++){
349 TVector3 dpos(0,0,0);
353 std::cout <<
"Event = " <<
fEventNr <<
" nDigis = " << nDigis <<
" " << FairRunAna::Instance()->IsTimeStamp() << std::endl;
357 if(
fVerbose>3) Info(
"Exec",
"Loop MC points");
374 std::cout <<
"-I- PndRichHitFinder: Total number of hits is " <<
fHitNumber << std::endl;
virtual void FinishTask()
virtual void SetParContainers()
virtual InitStatus ReInit()
BinaryFunctor * fGapFunctor
std::vector< std::vector< Double_t > > fHitsBuffer
void SetPersistency(Bool_t val=kTRUE)
virtual ~PndRichHitFinder()
FairMCEventHeader * fMCEventHeader
std::vector< Double_t > fBufferStartTime
TVector3 GetPosition() const
BinaryFunctor * fStopFunctor
virtual void Exec(Option_t *opt)
virtual InitStatus Init()
std::vector< Int_t > fBufferNumHits
static PndGeoHandling * Instance()
Int_t GetSensorId() const
TClonesArray * fPdHitArray
TClonesArray * fDigiArray
virtual Double_t GetTime()
virtual void SetParContainers()
virtual void FinishEvent()