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

#include <PndEmcReadProtoData.h>

Inheritance diagram for PndEmcReadProtoData:

Public Member Functions

virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual InitStatus ReInit ()
 
Bool_t OnlyPrompt (Bool_t onlyPrompt=kTRUE)
 
Bool_t OnlyTagged (Bool_t onlyTagged=kTRUE)
 
 PndEmcReadProtoData (ReadMainzProto60 *datareader, Bool_t StoreHits=kTRUE, Int_t debuglevel=0)
 
 ~PndEmcReadProtoData ()
 

Private Member Functions

virtual void SetParContainers ()
 
 ClassDef (PndEmcReadProtoData, 1)
 

Private Attributes

ReadMainzProto60lDataReader
 
Bool_t lStoreHits
 
Bool_t lOnlyPrompt
 
Bool_t lOnlyTagged
 
Int_t lDebug
 
TClonesArray * lHitArray
 
TClonesArray * lDigiArray
 
TClonesArray * lGammaArray
 
Double_t lEnergies [60]
 
Double_t lADCs [60]
 
Double_t lTimes [60]
 
Double_t lTaggerTimes [16]
 
Double_t lTaggerEnergies [16]
 
Double_t lEnergyHitThreshold
 
Double_t lEnergyDigiThreshold
 
Bool_t IsInit
 
PndEmcDigiParlDigiPar
 
PndEmcGeoParlGeoPar
 
PndGeoPassiveParlGeoPassivePar
 
FairBaseParSet * lBaseParSet
 

Detailed Description

Definition at line 24 of file PndEmcReadProtoData.h.

Constructor & Destructor Documentation

PndEmcReadProtoData::PndEmcReadProtoData ( ReadMainzProto60 datareader,
Bool_t  StoreHits = kTRUE,
Int_t  debuglevel = 0 
)

Definition at line 17 of file PndEmcReadProtoData.cxx.

18  :lDataReader(datareader),lStoreHits(StoreHits),lOnlyPrompt(kFALSE),lOnlyTagged(kFALSE),lDebug(debuglevel),IsInit(kFALSE)
19 {};
ReadMainzProto60 * lDataReader
PndEmcReadProtoData::~PndEmcReadProtoData ( )
inline

Definition at line 34 of file PndEmcReadProtoData.h.

34 {};

Member Function Documentation

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

Definition at line 96 of file PndEmcReadProtoData.cxx.

References ReadMainzProto60::GetADCValues(), ReadMainzProto60::GetEnergies(), ReadMainzProto60::GetTaggerEnergies(), ReadMainzProto60::GetTaggerTimes(), ReadMainzProto60::GetTimes(), i, IsInit, lADCs, lDataReader, lDigiArray, lEnergies, lEnergyDigiThreshold, lEnergyHitThreshold, lGammaArray, lHitArray, lOnlyPrompt, lOnlyTagged, lTaggerEnergies, lTaggerTimes, lTimes, n, printf(), and ReadMainzProto60::ReadNextEvent().

96  {
97  if(!IsInit){
98  printf("Not Initialised! You have to call Init() first.\n");
99  return;
100  }
101 
102  TClonesArray &HitArrayRef = *lHitArray;
103  TClonesArray &DigiArrayRef = *lDigiArray;
104  TClonesArray &GammaArrayRef = *lGammaArray;
105  GammaArrayRef.Clear();
106  HitArrayRef.Clear();
107  DigiArrayRef.Clear();
108 
115  //lDataReader->PrintEvent();
116 
117  Int_t NumberOfPhotons = 0;
118  Int_t NumberOfHits = 0;
119  Int_t NumberOfDigis = 0;
120  Int_t DetectorId = 0;
121  Int_t Row = 0;
122  Int_t Col = 0;
123  for(Int_t i = 0; i<16;i++){
124  if(lTaggerTimes[i]>10 && lTaggerEnergies[i]>0){
125  NumberOfPhotons = GammaArrayRef.GetEntriesFast();
126  new (GammaArrayRef[NumberOfPhotons]) TParticle(22,0,0,0,0,0,0,0,lTaggerEnergies[i]/1000,lTaggerEnergies[i]/1000,0,0,0,lTaggerTimes[i]);
127 
128  }
129  }
130  if(!lOnlyTagged || GammaArrayRef.GetEntriesFast() > 0){
131  for(Int_t n = 0;n<60;n++){
132  if((!lOnlyPrompt || lTimes[n]>10) && lEnergies[n] > lEnergyHitThreshold * 1000){
133  NumberOfHits = HitArrayRef.GetEntriesFast();
134  if(NumberOfHits>60){
135  printf("more than 60 Hits in this event, aborting");
136  return;
137  }
138  Row=n/10 +1;
139  Col=n%10 +1;
140  DetectorId = 700010000 + Col + Row * 1000000;
141  new (HitArrayRef[NumberOfHits]) PndEmcHit(1,DetectorId,lADCs[n],lTimes[n],0,0,0);
142 
143  if(lEnergies[n] > lEnergyDigiThreshold *1000){
144  NumberOfDigis = DigiArrayRef.GetEntriesFast();
145  new (DigiArrayRef[NumberOfDigis]) PndEmcDigi(1,DetectorId,lEnergies[n]/1000,lTimes[n],NumberOfHits);
146  }
147  }
148  }
149  }
150 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
TClonesArray * lGammaArray
represents the reconstructed hit of one emc crystal
Definition: PndEmcDigi.h:40
Int_t i
Definition: run_full.C:25
virtual void GetEnergies(Double_t *energies)=0
int n
TClonesArray * lHitArray
virtual void GetTaggerEnergies(Double_t *taggerEnergies)=0
TClonesArray * lDigiArray
virtual void GetTaggerTimes(Double_t *taggertimes)=0
Double_t lTaggerEnergies[16]
represents the deposited energy of one emc crystal from simulation
Definition: PndEmcHit.h:26
ReadMainzProto60 * lDataReader
virtual void GetADCValues(Double_t *ADCs)=0
virtual Long_t ReadNextEvent()=0
virtual void GetTimes(Double_t *times)=0
InitStatus PndEmcReadProtoData::Init ( )
virtual

Definition at line 21 of file PndEmcReadProtoData.cxx.

References PndEmcDigiPar::GetEnergyDigiThreshold(), PndEmcDigiPar::GetEnergyHitThreshold(), PndEmcGeoPar::InitEmcMapper(), IsInit, lDataReader, lDigiArray, lDigiPar, lEnergyDigiThreshold, lEnergyHitThreshold, lGammaArray, lGeoPar, lHitArray, lStoreHits, printf(), ReadMainzProto60::Reset(), and PndEmcGeoPar::SetMapperVersion().

Referenced by ReInit().

21  {
22  lDataReader->Reset();
23 
24  FairRootManager* ioman = FairRootManager::Instance();
25  if ( ! ioman ) {
26  printf("-E- PndEmcHitProducer::Init: RootManager not instantiated!\n");
27  return kFATAL;
28  }
29 
30  lHitArray = new TClonesArray("PndEmcHit");
31  ioman->Register("EmcHit","Emc",lHitArray,lStoreHits);
32 
33  lDigiArray = new TClonesArray("PndEmcDigi");
34  ioman->Register("EmcDigi","Emc",lDigiArray,lStoreHits);
35 
36  lGammaArray = new TClonesArray("TParticle");
37  ioman->Register("TaggedGamma","Emc",lGammaArray,lStoreHits);
38 
39  printf("Reading info from PndEmcDigiPar\n");
40 
41 // FairRun* run = FairRun::Instance();
42 // run->GetRuntimeDb()->initContainers(0);
43 
48 
49 
50  printf("PndEmcReadProtoData: Init successfull\n");
51 
52  IsInit = kTRUE;
53  return kSUCCESS;
54 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
TClonesArray * lGammaArray
virtual void Reset()=0
void SetMapperVersion(Int_t mapperVersion)
Definition: PndEmcGeoPar.h:21
TClonesArray * lHitArray
Double_t GetEnergyDigiThreshold()
Definition: PndEmcDigiPar.h:42
void InitEmcMapper()
PndEmcDigiPar * lDigiPar
TClonesArray * lDigiArray
Double_t GetEnergyHitThreshold()
Definition: PndEmcDigiPar.h:15
ReadMainzProto60 * lDataReader
Bool_t PndEmcReadProtoData::OnlyPrompt ( Bool_t  onlyPrompt = kTRUE)

Definition at line 91 of file PndEmcReadProtoData.cxx.

References lOnlyPrompt.

91  {
92  lOnlyPrompt = onlyPrompt;
93  return lOnlyPrompt;
94 }
Bool_t PndEmcReadProtoData::OnlyTagged ( Bool_t  onlyTagged = kTRUE)

Definition at line 86 of file PndEmcReadProtoData.cxx.

References lOnlyTagged.

86  {
87  lOnlyTagged = onlyTagged;
88  return lOnlyTagged;
89 }
virtual InitStatus PndEmcReadProtoData::ReInit ( )
inlinevirtual

Definition at line 28 of file PndEmcReadProtoData.h.

References Init(), and IsInit.

28 {IsInit=kFALSE; return Init();};
virtual InitStatus Init()
void PndEmcReadProtoData::SetParContainers ( )
privatevirtual

Definition at line 56 of file PndEmcReadProtoData.cxx.

References lBaseParSet, lDigiPar, lGeoPar, lGeoPassivePar, printf(), and run.

56  {
57 
58  // Get run and runtime database
59  FairRun* run = FairRun::Instance();
60  if ( ! run ) Fatal("SetParContainers", "No analysis run");
61 
62  FairRuntimeDb* db = run->GetRuntimeDb();
63  if ( ! db ) Fatal("SetParContainers", "No runtime database");
64 
65  // Get Emc digitisation parameter container
66  lDigiPar = (PndEmcDigiPar*) db->getContainer("PndEmcDigiPar");
67 
68  // Get Emc geometry parameter container
69  lGeoPar = (PndEmcGeoPar*) db->getContainer("PndEmcGeoPar");
70 
71 
72  lGeoPassivePar = (PndGeoPassivePar *)db->getContainer("PndGeoPassivePar");
73  lBaseParSet = (FairBaseParSet *)db->getContainer("FairBaseParSet");
74 
75  if(lDigiPar != NULL){
76  printf("Got PndEmcDigiPar from database\n");
77  lDigiPar->Print();
78  } else {
79  printf("could not get PndEmcDigiPar from database\n");
80  abort();
81  }
82 
83 
84 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Int_t run
Definition: autocutx.C:47
PndEmcDigiPar * lDigiPar
parameter set of Emc digitisation
Definition: PndEmcDigiPar.h:12
PndGeoPassivePar * lGeoPassivePar
FairBaseParSet * lBaseParSet

Member Data Documentation

Bool_t PndEmcReadProtoData::IsInit
private

Definition at line 58 of file PndEmcReadProtoData.h.

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

Double_t PndEmcReadProtoData::lADCs[60]
private

Definition at line 50 of file PndEmcReadProtoData.h.

Referenced by Exec().

FairBaseParSet* PndEmcReadProtoData::lBaseParSet
private

Definition at line 63 of file PndEmcReadProtoData.h.

Referenced by SetParContainers().

ReadMainzProto60* PndEmcReadProtoData::lDataReader
private

Definition at line 40 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

Int_t PndEmcReadProtoData::lDebug
private

Definition at line 44 of file PndEmcReadProtoData.h.

TClonesArray* PndEmcReadProtoData::lDigiArray
private

Definition at line 46 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

PndEmcDigiPar* PndEmcReadProtoData::lDigiPar
private

Definition at line 60 of file PndEmcReadProtoData.h.

Referenced by Init(), and SetParContainers().

Double_t PndEmcReadProtoData::lEnergies[60]
private

Definition at line 49 of file PndEmcReadProtoData.h.

Referenced by Exec().

Double_t PndEmcReadProtoData::lEnergyDigiThreshold
private

Definition at line 56 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

Double_t PndEmcReadProtoData::lEnergyHitThreshold
private

Definition at line 55 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

TClonesArray* PndEmcReadProtoData::lGammaArray
private

Definition at line 47 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

PndEmcGeoPar* PndEmcReadProtoData::lGeoPar
private

Definition at line 61 of file PndEmcReadProtoData.h.

Referenced by Init(), and SetParContainers().

PndGeoPassivePar* PndEmcReadProtoData::lGeoPassivePar
private

Definition at line 62 of file PndEmcReadProtoData.h.

Referenced by SetParContainers().

TClonesArray* PndEmcReadProtoData::lHitArray
private

Definition at line 45 of file PndEmcReadProtoData.h.

Referenced by Exec(), and Init().

Bool_t PndEmcReadProtoData::lOnlyPrompt
private

Definition at line 42 of file PndEmcReadProtoData.h.

Referenced by Exec(), and OnlyPrompt().

Bool_t PndEmcReadProtoData::lOnlyTagged
private

Definition at line 43 of file PndEmcReadProtoData.h.

Referenced by Exec(), and OnlyTagged().

Bool_t PndEmcReadProtoData::lStoreHits
private

Definition at line 41 of file PndEmcReadProtoData.h.

Referenced by Init().

Double_t PndEmcReadProtoData::lTaggerEnergies[16]
private

Definition at line 53 of file PndEmcReadProtoData.h.

Referenced by Exec().

Double_t PndEmcReadProtoData::lTaggerTimes[16]
private

Definition at line 52 of file PndEmcReadProtoData.h.

Referenced by Exec().

Double_t PndEmcReadProtoData::lTimes[60]
private

Definition at line 51 of file PndEmcReadProtoData.h.

Referenced by Exec().


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