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

#include <PndEmcReadProto192Data.h>

Inheritance diagram for PndEmcReadProto192Data:

Public Member Functions

virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual InitStatus ReInit ()
 
virtual void SetParContainers ()
 
void SetIndexMap (Long_t *map)
 
void SetWaveformMap (Long_t *map)
 
 PndEmcReadProto192Data (TTree *prototree, TTree *taggertree=NULL, Bool_t StoreHits=kTRUE, Int_t debuglevel=0)
 
 ~PndEmcReadProto192Data ()
 
virtual void SetTaggerTreeOffset (Long_t offset=0)
 

Private Member Functions

 ClassDef (PndEmcReadProto192Data, 1)
 

Private Attributes

TTree * lProto192Tree
 
TTree * lTaggerTree
 
Long_t lProto192EventNum
 
UInt_t lTaggerEventNum
 
TProtoUnpackEventlProto192Event
 
TClonesArray * lWaveArray
 
TClonesArray * lTaggerArray
 
Long_t lIndexMap [64]
 
Long_t lWaveformMap [64]
 
PndEmcGeoParlGeoPar
 
PndEmcDigiParlDigiPar
 
PndGeoPassiveParlGeoPassivePar
 
FairBaseParSet * lBaseParSet
 
Bool_t lStoreHits
 
Int_t lDebug
 
Bool_t IsInit
 
std::vector< Double_tsignal
 
Long_t lTaggerTreeOffset
 
Long_t lEventNumOverflow
 

Detailed Description

Definition at line 24 of file PndEmcReadProto192Data.h.

Constructor & Destructor Documentation

PndEmcReadProto192Data::PndEmcReadProto192Data ( TTree *  prototree,
TTree *  taggertree = NULL,
Bool_t  StoreHits = kTRUE,
Int_t  debuglevel = 0 
)

Definition at line 18 of file PndEmcReadProto192Data.cxx.

References i, lIndexMap, and lWaveformMap.

19  :lProto192Tree(prototree),lTaggerTree(taggertree),lStoreHits(StoreHits),lDebug(debuglevel),IsInit(kFALSE),signal(256),lTaggerTreeOffset(0),lEventNumOverflow(0) {
20  for(Int_t i = 0; i<64;i++){
21  lIndexMap[i]=0;
22  lWaveformMap[i]=1;
23  }
24 };
std::vector< Double_t > signal
Int_t i
Definition: run_full.C:25
PndEmcReadProto192Data::~PndEmcReadProto192Data ( )
inline

Definition at line 33 of file PndEmcReadProto192Data.h.

33 {};

Member Function Documentation

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

Definition at line 100 of file PndEmcReadProto192Data.cxx.

References i, IsInit, lEventNumOverflow, lIndexMap, lProto192Event, lProto192EventNum, lProto192Tree, lTaggerEventNum, lTaggerTree, lTaggerTreeOffset, lWaveArray, lWaveformMap, printf(), TProtoUnpackEvent::rawData, PndEmcMultiWaveform::SetWaveform(), signal, and TProtoUnpackEvent::waveform.

100  {
101  if(!IsInit){
102  printf("Not Initialised! You have to call Init() first.\n");
103  return;
104  }
105 
106  TClonesArray &WaveArrayRef = *lWaveArray;
107 // printf("Size of Wavearray: %i ",WaveArrayRef.GetEntries());
108  WaveArrayRef.Delete();
109  lProto192Tree->GetEntry(lProto192EventNum);
110  PndEmcMultiWaveform *waveform;
111  std::map<Long_t, PndEmcMultiWaveform *> wavemap;
112  std::map<Long_t, PndEmcMultiWaveform *>::iterator it;
113  Long_t detid;
114  for(Int_t channel =0; channel < 64; channel++){
115  detid = lIndexMap[channel];
116  if(detid!=0){
117  it = wavemap.find(detid);
118  if(it != wavemap.end()){
119  waveform = (*it).second;
120  }else{
121  waveform = new (WaveArrayRef[WaveArrayRef.GetEntriesFast()]) PndEmcMultiWaveform(1,detid,256,channel);
122  wavemap.insert(std::pair<Long_t,PndEmcMultiWaveform*>(detid,waveform));
123  }
124  for(Int_t i = 0; i<256;i++){
125  signal[i]= lProto192Event->waveform[channel][i];
126  }
127  waveform->SetWaveform(signal,256,lWaveformMap[channel]);
128  }
129  }
130  if(lTaggerTree != NULL){
132  if(cbevent>0){
133  lTaggerTree->GetEntry(cbevent-1);
134  if(lTaggerEventNum != cbevent){
135  printf("-E- PndEmcReadProto192Data: No Matching Tagger Event found for event %li\n",cbevent);
136  }
137  }
138  if(lProto192Event->rawData[0]==65535){
139  lEventNumOverflow+=65536;
140  }
141  }
142 // delete lProto192Event;
143 // lProto192Event= NULL;
145 }
std::vector< Double_t > signal
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
Int_t i
Definition: run_full.C:25
void SetWaveform(const std::vector< Double_t > &signal, Int_t length, Int_t Waveform)
TProtoUnpackEvent * lProto192Event
Int_t waveform[ConfiguredProtoChannels][256]
Class to hold multiple waveforms from one Emc Hit / ADC readout.
InitStatus PndEmcReadProto192Data::Init ( )
virtual

Definition at line 26 of file PndEmcReadProto192Data.cxx.

References PndEmcGeoPar::InitEmcMapper(), IsInit, lGeoPar, lProto192Event, lProto192EventNum, lProto192Tree, lStoreHits, lTaggerArray, lTaggerEventNum, lTaggerTree, lWaveArray, printf(), and PndEmcGeoPar::SetMapperVersion().

Referenced by ReInit().

26  {
27 
28  FairRootManager* ioman = FairRootManager::Instance();
29  if ( ! ioman ) {
30  printf("-E- PndEmcHitProducer::Init: RootManager not instantiated!\n");
31  return kFATAL;
32  }
33 
34  lWaveArray = new TClonesArray("PndEmcMultiWaveform");
35  ioman->Register("EmcMultiWaveform","Emc",lWaveArray,lStoreHits);
36 
39 
40 
41  printf("PndEmcReadProto192Data: Init successfull\n");
42 
44  lProto192Tree->SetBranchAddress("UnpackEvent.",&lProto192Event);
46 
47  if(lTaggerTree !=NULL){
48  lTaggerArray = new TClonesArray("TParticle");
49  ioman->Register("BeamPhotons","Emc",lTaggerArray,lStoreHits);
50  lTaggerTree->SetBranchAddress("BeamPhotons",&lTaggerArray);
51  lTaggerTree->SetBranchAddress("EventNumber",&lTaggerEventNum);
52  }
53 
54  IsInit = kTRUE;
55  return kSUCCESS;
56 }
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
void SetMapperVersion(Int_t mapperVersion)
Definition: PndEmcGeoPar.h:21
void InitEmcMapper()
TProtoUnpackEvent * lProto192Event
virtual InitStatus PndEmcReadProto192Data::ReInit ( )
inlinevirtual

Definition at line 28 of file PndEmcReadProto192Data.h.

References Init(), and IsInit.

28 {IsInit=kFALSE; return Init();};
void PndEmcReadProto192Data::SetIndexMap ( Long_t *  map)

Definition at line 88 of file PndEmcReadProto192Data.cxx.

References i, and lIndexMap.

88  {
89  for(Int_t i = 0; i<64;i++){
90  lIndexMap[i]=map[i];
91  }
92 }
Int_t i
Definition: run_full.C:25
PndTransMap * map
Definition: sim_emc_apd.C:99
void PndEmcReadProto192Data::SetParContainers ( )
virtual

Definition at line 58 of file PndEmcReadProto192Data.cxx.

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

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

Definition at line 34 of file PndEmcReadProto192Data.h.

References lTaggerTreeOffset, and offset().

TVector3 offset(2, 0, 0)
void PndEmcReadProto192Data::SetWaveformMap ( Long_t *  map)

Definition at line 94 of file PndEmcReadProto192Data.cxx.

References i, and lWaveformMap.

94  {
95  for(Int_t i = 0; i<64;i++){
96  lWaveformMap[i]=map[i];
97  }
98 }
Int_t i
Definition: run_full.C:25
PndTransMap * map
Definition: sim_emc_apd.C:99

Member Data Documentation

Bool_t PndEmcReadProto192Data::IsInit
private

Definition at line 54 of file PndEmcReadProto192Data.h.

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

FairBaseParSet* PndEmcReadProto192Data::lBaseParSet
private

Definition at line 51 of file PndEmcReadProto192Data.h.

Referenced by SetParContainers().

Int_t PndEmcReadProto192Data::lDebug
private

Definition at line 53 of file PndEmcReadProto192Data.h.

PndEmcDigiPar* PndEmcReadProto192Data::lDigiPar
private

Definition at line 49 of file PndEmcReadProto192Data.h.

Referenced by SetParContainers().

Long_t PndEmcReadProto192Data::lEventNumOverflow
private

Definition at line 57 of file PndEmcReadProto192Data.h.

Referenced by Exec().

PndEmcGeoPar* PndEmcReadProto192Data::lGeoPar
private

Definition at line 48 of file PndEmcReadProto192Data.h.

Referenced by Init(), and SetParContainers().

PndGeoPassivePar* PndEmcReadProto192Data::lGeoPassivePar
private

Definition at line 50 of file PndEmcReadProto192Data.h.

Referenced by SetParContainers().

Long_t PndEmcReadProto192Data::lIndexMap[64]
private

Definition at line 44 of file PndEmcReadProto192Data.h.

Referenced by Exec(), PndEmcReadProto192Data(), and SetIndexMap().

TProtoUnpackEvent* PndEmcReadProto192Data::lProto192Event
private

Definition at line 41 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

Long_t PndEmcReadProto192Data::lProto192EventNum
private

Definition at line 39 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

TTree* PndEmcReadProto192Data::lProto192Tree
private

Definition at line 34 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

Bool_t PndEmcReadProto192Data::lStoreHits
private

Definition at line 52 of file PndEmcReadProto192Data.h.

Referenced by Init().

TClonesArray* PndEmcReadProto192Data::lTaggerArray
private

Definition at line 43 of file PndEmcReadProto192Data.h.

Referenced by Init().

UInt_t PndEmcReadProto192Data::lTaggerEventNum
private

Definition at line 40 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

TTree* PndEmcReadProto192Data::lTaggerTree
private

Definition at line 38 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

Long_t PndEmcReadProto192Data::lTaggerTreeOffset
private

Definition at line 56 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and SetTaggerTreeOffset().

TClonesArray* PndEmcReadProto192Data::lWaveArray
private

Definition at line 42 of file PndEmcReadProto192Data.h.

Referenced by Exec(), and Init().

Long_t PndEmcReadProto192Data::lWaveformMap[64]
private

Definition at line 45 of file PndEmcReadProto192Data.h.

Referenced by Exec(), PndEmcReadProto192Data(), and SetWaveformMap().

std::vector<Double_t> PndEmcReadProto192Data::signal
private

Definition at line 55 of file PndEmcReadProto192Data.h.

Referenced by Exec().


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