BmnRoot
Loading...
Searching...
No Matches
BmnArmTrigHitProducer.cxx
Go to the documentation of this file.
2#include "BmnArmTrigPoint.h"
3#include "FairRootManager.h"
4#include "TSystem.h"
5
6
7
8static Float_t workTime = 0.0;
9static int entries = 0;
10
12: fOnlyPrimary(kFALSE), fUseRealEffects(kFALSE){
13 fInputBranchName = "ArmTrigPoint";
14 fOutputHitsBranchName = "BmnArmTrigHit";
15 fOutputHitMatchesBranchName = "BmnArmTrigHitMatch";
16
17 fVerbose = 1;
18}
19
20 BmnArmTrigHitProducer::~ BmnArmTrigHitProducer() {
21}
22
24
25 FairRootManager* ioman = FairRootManager::Instance();
26
27 fBmnArmTrigPointsArray = (TClonesArray*) ioman->GetObject(fInputBranchName);
28
29 fBmnArmTrigHitsArray = new TClonesArray(fOutputHitsBranchName);
30 ioman->Register(fOutputHitsBranchName, "ArmTrig", fBmnArmTrigHitsArray, kTRUE);
31
32
33 //if (fStripMatching) {
34 // new ((*fBmnSiliconHitMatchesArray)[fBmnArmTrigHitMatchesArray->GetEntriesFast()])
35 // BmnMatch(module->GetStripMatchInZone(zone_id, iStrip));
36 //}
37
38
39 if (fVerbose) cout << " BmnArmTrigHitProducer::Init() finished\n\n";
40 return kSUCCESS;
41}
42
43void BmnArmTrigHitProducer::Exec(Option_t* opt) {
44 clock_t tStart = clock();
45 fBmnArmTrigHitsArray->Delete();
46 BmnArmTrigPoint* ArmTrigPoint;
47 for (Int_t ipoint = 0; ipoint < fBmnArmTrigPointsArray->GetEntriesFast(); ipoint++) {
48 ArmTrigPoint = (BmnArmTrigPoint*) fBmnArmTrigPointsArray->At(ipoint);
49
50 new ((*fBmnArmTrigHitsArray)[fBmnArmTrigHitsArray->GetEntriesFast()])
51 BmnArmTrigHit(ArmTrigPoint->GetDetectorID(), TVector3(ArmTrigPoint->GetX(), ArmTrigPoint->GetY(), ArmTrigPoint->GetZ()), TVector3(0,0,0), -1,
52 ArmTrigPoint->GetPdgId() );
53 }
54
55
56 if (!fBmnArmTrigPointsArray) {
57 Error(" BmnArmTrigHitProducer::Exec()", " !!! Unknown branch name !!! ");
58 return;
59 }
60
61 if (fVerbose) {
62 cout << " BmnArmTrigHitProducer::Exec(), Number of BmnArmTrigPoints = " << fBmnArmTrigPointsArray->GetEntriesFast() << "\n";
63 }
64
65
66
67
68 if (fVerbose) cout << " BmnArmTrigHitProducer::Exec() finished\n\n";
69 entries++;
70 clock_t tFinish = clock();
71 workTime += ((Float_t) (tFinish - tStart)) / CLOCKS_PER_SEC;
72}
73
74
76{
77 cout << "Work time of the ArmTrig HitProducer: " << workTime << endl;
78}
virtual void Exec(Option_t *opt)
Double_t GetPdgId()