| 1 |
/** @file |
/** @file |
| 2 |
* $Author: mocchiut $ |
* $Author: mocchiut $ |
| 3 |
* $Date: 2008/11/04 09:44:36 $ |
* $Date: 2009/08/04 13:58:12 $ |
| 4 |
* $Revision: 1.2 $ |
* $Revision: 1.4 $ |
| 5 |
* |
* |
| 6 |
* Implementation of the functions of a sample Algorithm class. |
* Implementation of the functions of a sample Algorithm class. |
| 7 |
* This file can be used as a templace to develop your own algorithm. |
* This file can be used as a templace to develop your own algorithm. |
| 9 |
|
|
| 10 |
#include "EventReader.h" |
#include "EventReader.h" |
| 11 |
#include "ReaderAlgorithms.h" |
#include "ReaderAlgorithms.h" |
| 12 |
|
#include <TObjectTable.h> |
| 13 |
|
|
| 14 |
extern "C" { |
extern "C" { |
| 15 |
#include "CRC.h" |
#include "CRC.h" |
| 86 |
* Initialize the algorithm with a special run. This will initialize the |
* Initialize the algorithm with a special run. This will initialize the |
| 87 |
* event reader routines for all packet types. |
* event reader routines for all packet types. |
| 88 |
*/ |
*/ |
| 89 |
void EventReader::Init(PamelaRun *run) { |
TObject *EventReader::GetPtr(TString name){ |
| 90 |
//Create the structure of directories and create xxx.Header.root files |
for (AlgorithmMap::iterator i = TechmodelAlgorithmMap.begin(); i != TechmodelAlgorithmMap.end(); i++) { |
| 91 |
run->WriteHeaders(this, &Header); |
if ( !strcmp(i->second->GetAlgorithmName(),name.Data()) ){ |
| 92 |
//Create the xxx.root in it's specific directory |
// cout << " Retrieving pointer of " << i->second->GetAlgorithmName()<<endl; |
| 93 |
for (AlgorithmMap::iterator i = TechmodelAlgorithmMap.begin(); |
TechmodelAlgorithm* EventAlgorithm(i->second); |
| 94 |
i != TechmodelAlgorithmMap.end(); i++) { |
return(EventAlgorithm->GetPtr("")); |
| 95 |
// cout << " Initializing algo " << i->second->GetAlgorithmName()<<endl; |
}; |
| 96 |
i->second->Init(run); |
}; |
| 97 |
} |
return(NULL); |
| 98 |
|
} |
| 99 |
|
|
|
if ( Header ) { delete Header; Header = new EventHeader(); }; // EMILIANO, reset Counter when opening a new file |
|
| 100 |
|
|
| 101 |
Run=run; |
void EventReader::Init(PamelaRun *run) { |
| 102 |
|
//Create the structure of directories and create xxx.Header.root files |
| 103 |
|
// printf(" init er \n"); |
| 104 |
|
run->WriteHeaders(this, &Header); |
| 105 |
|
// printf(" init er wrote \n"); |
| 106 |
|
//Create the xxx.root in it's specific directory |
| 107 |
|
// gObjectTable->Print(); |
| 108 |
|
// Int_t yy = 0; |
| 109 |
|
for (AlgorithmMap::iterator i = TechmodelAlgorithmMap.begin(); |
| 110 |
|
i != TechmodelAlgorithmMap.end(); i++) { |
| 111 |
|
// cout << " Initializing algo " << i->second->GetAlgorithmName()<<endl; |
| 112 |
|
i->second->Init(run); |
| 113 |
|
// printf(" algo %i \n",yy); |
| 114 |
|
// yy++; |
| 115 |
|
} |
| 116 |
|
// printf(" init er header \n"); |
| 117 |
|
if ( Header ) { delete Header; Header = new EventHeader(); }; // EMILIANO, reset Counter when opening a new file |
| 118 |
|
// printf(" init er header done %p \n",run); |
| 119 |
|
|
| 120 |
|
Run=run; |
| 121 |
} |
} |
| 122 |
|
|
| 123 |
|
|
| 204 |
// catch (NotExistingAlgorithmException exc) {} |
// catch (NotExistingAlgorithmException exc) {} |
| 205 |
|
|
| 206 |
Run->FillTrees(type); |
Run->FillTrees(type); |
| 207 |
|
// cout << Header->GetCounter()->Get(type) << endl; |
| 208 |
Header->GetCounter()->Increment(type); |
Header->GetCounter()->Increment(type); |
| 209 |
|
// cout << Header->GetCounter()->Get(type) << endl; |
| 210 |
} |
} |
| 211 |
else |
else |
| 212 |
{ |
{ |
| 254 |
*/ |
*/ |
| 255 |
std::string EventReader::GetVersionInfo(void) const { |
std::string EventReader::GetVersionInfo(void) const { |
| 256 |
return |
return |
| 257 |
"$Header: /afs/ba.infn.it/user/pamela/src/CVS/chewbacca/PamOffLineSW/techmodel/EventReader.cpp,v 1.2 2008/11/04 09:44:36 mocchiut Exp $\n"; |
"$Header: /afs/ba.infn.it/user/pamela/src/CVS/chewbacca/PamOffLineSW/techmodel/EventReader.cpp,v 1.4 2009/08/04 13:58:12 mocchiut Exp $\n"; |
| 258 |
} |
} |
| 259 |
|
|
| 260 |
|
|