FairRoot/PandaRoot
dec13/PndTutAnaTask.cxx
Go to the documentation of this file.
1 // ************************************************************************
2 //
3 // Template for an Analysis Task,
4 //
5 // for the December 2013 CM Tutorial
6 //
7 // For further info see also
8 //
9 // http://panda-wiki.gsi.de/cgi-bin/viewauth/Computing/PandaRootRhoTutorial
10 // http://panda-wiki.gsi.de/cgi-bin/view/Computing/PandaRootAnalysisJuly13
11 //
12 // K.Goetzen 11/2013
13 //
14 // ************************************************************************
15 
16 
17 // The header file
18 #include "PndTutAnaTask.h"
19 
20 // C++ headers
21 #include <string>
22 #include <iostream>
23 
24 // FAIR headers
25 #include "FairRootManager.h"
26 #include "FairRunAna.h"
27 #include "FairRuntimeDb.h"
28 #include "FairRun.h"
29 #include "FairRuntimeDb.h"
30 
31 // ROOT headers
32 #include "TClonesArray.h"
33 #include "TVector3.h"
34 #include "TH1F.h"
35 #include "TH2F.h"
36 
37 // RHO headers
38 #include "RhoCandidate.h"
39 #include "RhoHistogram/RhoTuple.h"
40 #include "RhoFactory.h"
42 
43 // Analysis headers
44 #include "PndAnalysis.h"
45 #include "Rho4CFitter.h"
46 #include "RhoKinVtxFitter.h"
47 #include "RhoKinFitter.h"
48 #include "RhoVtxPoca.h"
49 
50 
51 using std::cout;
52 using std::endl;
53 
54 
55 // ----- Default constructor -------------------------------------------
57  FairTask("Panda Tutorial Analysis Task")
58 {
59  double mp=0.938272;
60  fIni.SetXYZT(0,0,pbarmom, sqrt(pbarmom*pbarmom+mp*mp)+mp);
61 }
62 // -------------------------------------------------------------------------
63 
64 
65 // ----- Destructor ----------------------------------------------------
67 // -------------------------------------------------------------------------
68 
69 
70 // ----- Public method Init --------------------------------------------
71 InitStatus PndTutAnaTask::Init()
72 {
73  // *** initialize PndAnalysis object
74  fAnalysis = new PndAnalysis();
75 
76  // *** reset the event counter
77  fEvtCount = 0;
78 
79  // *******
80  // ******* PREPARE/CREATE THE STUFF YOU NEED
81  // *******
82 
83  return kSUCCESS;
84 }
85 
86 // -------------------------------------------------------------------------
87 
89 {
90  // *** Get run and runtime database
91  FairRun* run = FairRun::Instance();
92  if ( ! run ) Fatal("SetParContainers", "No analysis run");
93 }
94 
95 // -------------------------------------------------------------------------
96 
97 
98 // ----- Public method Exec --------------------------------------------
99 void PndTutAnaTask::Exec(Option_t*)
100 {
101  // *** some variables
102  int i=0,j=0, k=0, l=0;
103 
104  // *** necessary to read the next event
105  fAnalysis->GetEvent();
106 
107  // *** print event counter
108  if (!(++fEvtCount%100)) cout << "evt "<<fEvtCount<<endl;
109 
110  // *******
111  // ******* PUT ANALYSIS CODE HERE
112  // *******
113 }
114 
115 
117 {
118 
119  // *******
120  // ******* STORE YOUR HISTOS AND TUPLES
121  // *******
122 
123 }
124 
virtual void SetParContainers()
Int_t run
Definition: autocutx.C:47
Int_t i
Definition: run_full.C:25
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TLorentzVector fIni
static const double mp
Definition: mzparameters.h:11
virtual void Exec(Option_t *opt)
PndAnalysis * fAnalysis
virtual void Finish()
ClassImp(PndAnaContFact)
Int_t GetEvent(Int_t n=-1)
virtual InitStatus Init()