FairRoot/PandaRoot
PndBranchBurstBuilder.cxx
Go to the documentation of this file.
1 /*
2  * PndEventCombinerTask.cxx
3  *
4  * Created on: july 13, 2017
5  * Author: Steinschaden
6  *
7  */
8 
10 
11 #include <iostream>
12 
13 // Root includes
14 #include "TROOT.h"
15 #include "TString.h"
16 
17 // framework includes
18 #include "FairRootManager.h"
19 
20 
21 
23  FairTask("PndBranchBurstBuilder")
24 {
25  fPersistence = kTRUE;
26  fOutputPrefix = "Burst";
27 }
28 
30 {
31 }
32 
33 
34 // ----- Public method Init --------------------------------------------
36 {
37 
38 
39 
40  FairRootManager* ioman = FairRootManager::Instance();
41 
42  if ( ! ioman )
43  {
44  std::cout << "-E- PndBranchBurstBuilder::Init: "
45  << "RootManager not instantiated!" << std::endl;
46  return kFATAL;
47  }
48 
49  if(fInBranchNames.size()==0) {
50  std::cout << "kERROR ------ no inputBranch for PndBranchBurstBuilder -------" << std::endl;
51  return kERROR;
52  }
53 
54  TString inputName = "none";
55  TString outputFolder = "Burst";
56  TString outputName;
57 
58  for (size_t i = 0; i < fInBranchNames.size(); i++){
59  inputName = fInBranchNames[i];
60  outputName = fOutputPrefix + "_" + inputName;
61  fInArrays.push_back((TClonesArray*)ioman->GetObject(inputName.Data()));
62  if ( ! fInArrays[i]){
63  std::cout << " Input Array not found for PndBranchBurstBuilder: "<< inputName << std::endl;
64  return kERROR;
65  }
66 
67  fOutArrays.push_back(ioman->Register(outputName.Data(), fInArrays[i]->GetClass()->GetName(), outputFolder, fPersistence));
68  }
69 
70  return kSUCCESS;
71 }
72 
73 
75 {
76 
77  for (size_t i = 0; i < fInBranchNames.size(); i++) {
78 
79  fOutArrays[i]->Delete(); // make sure data written out from old events are deleted
80  fOutArrays[i]->AbsorbObjects(GetBurstData(i));
81 
82  }
83 
84 }
85 
86 
87 
89 
std::vector< TString > fInBranchNames
std::vector< TClonesArray * > fOutArrays
Int_t i
Definition: run_full.C:25
virtual TClonesArray * GetBurstData(size_t inBranchNum)=0
std::vector< TClonesArray * > fInArrays
virtual void Exec(Option_t *opt)
ClassImp(PndBranchBurstBuilder)
virtual InitStatus Init()