FEDRA emulsion software from the OPERA Collaboration
EdbDataStore.h
Go to the documentation of this file.
1#ifndef EDBDATASTORE_H
2#define EDBDATASTORE_H
3
4#include <assert.h>
5#include <TObject.h>
6#include <TObjArray.h>
7#include "EdbBrick.h"
8#include "EdbLayer.h"
9#include "EdbSegP.h"
10#include "EdbPattern.h"
11#include "EdbVertex.h"
12#include "EdbScanTracking.h"
14
15class EdbDataStore: public TObject{
16 public:
20 void TransferTo(EdbDataStore* ds, char level, EdbSegmentCut* cut=0,int FromPlate=0, int ToPlate=57);
22 static void TransferSegs(EdbPatternsVolume* pv0, EdbPatternsVolume* pv1,EdbSegmentCut* cut=0,int FromPlate=0, int ToPlate=57);
24 void LoadMCVertices(TObjArray* vtx);
25 void Restore_PIDFromID();
26 void Restore_PatFromGeom(int np0=0, int np1=1000);
27 void Restore_TrxFromVtx();
28 void Restore_SegFromTrx(EdbSegmentCut* cut=0,int Plt0=0, int Plt1=1000);
30 void Clear(bool hard=false){ClearTracks(hard);ClearVTX();ClearRaw(hard);ClearSeg(hard);}
31 void ClearTracks(bool hard=false);
32 void ClearRaw(bool hard=false);
33 void ClearSeg(bool hard=false);
34 void ClearVTX();
35 void ClearGeom();
37 int Nt(){return eTracks.GetEntries();}
38 int Nv(){return eVTX.GetEntries();}
39 int Nplt(){return eRawPV.Npatterns()/2;}
41 void SetOwnTracks(bool own=true){eTracks.SetOwner(own);}
42 void SetOwnVertices(bool own=true){eVTX.SetOwner(own);}
43 void SetOwnTrkSegs(){for(int nt=0;nt<Nt();++nt)GetTrack(nt)->SetOwner();}
45 EdbTrackP* GetTrack (int n){return (n<eTracks.GetEntries())?(EdbTrackP*)eTracks.At(n):0;}
46 EdbVertex* GetVertex(int n){return (n<eVTX.GetEntries())?(EdbVertex*)eVTX.At(n):0;}
49 EdbPattern* GetPattern(int n, bool btk=true){return GetPV(btk)->GetPattern(n);}
50 EdbPatternsVolume* GetPV(bool btk=true){return btk?(&eSegPV):(&eRawPV);}
51
53 EdbTrackP* FindTrack(int id);
54 EdbVertex* FindVertex(int id);
55 EdbPattern* FindPattern(int plate, int side=0);
56 EdbLayer* FindLayer(int plate, int side=0);
57
58 EdbTrackP* FindLongTrk(int nsmin=8);
61 EdbSegP* AddSegment(EdbSegP* seg, EdbSegmentCut* cut=0, int Plt0=0, int Plt1=100);
62 void AddTrack(EdbTrackP* tr){assert(tr!=0); eTracks.Add(tr);}
63 void AddVertex(EdbVertex* v){assert(v!=0); eVTX.Add(v);}
64 void AddPattern(EdbPattern* pat);
65 void MakePattern(double z,int plate,int side);
67 void PrintBrief();
68 void PrintPatterns();
69// void PrintLayers();
70 void PrintTracks(int vlev=0);
71// void PrintVertices();
73 void SaveToRaw(const char* dir="./",const EdbID &idset="0.0.0.0",Option_t* option="RECREATE",bool doaff=true);
74 void SavePlateToRaw(const char* fname,int PID,Option_t* option="RECREATE");
76 void DoSmearing(EdbScanCond* cond_btk,EdbScanCond* cond_mtk=0);
77 void DoEfficiency(TF1* eff_seg,TF1* eff_mtk);
78 long Gen_mtk_BG(long NBG, int Plate, int Side, TH2* pdf_Ang, TH2* pdf_WT=0);
79// void DoSmearTrack(EdbTrackP*);
80 public:
84 TObjArray eTracks;
85 TObjArray eVTX;
86
87 ClassDef(EdbDataStore,1) //OPERA Brick data container
88};
89
90class EdbDSRec: public EdbDataStore{
91 public:
92 EdbDSRec();
94
95 void Clear(bool hard=false);
96
97 int DoTracking(bool use_btk=true,int p0=0, int p1=100);
98 int DoTracking0(bool use_btk=true,int p0=0, int p1=100);
99 int DoMomEst();
100 int DoVertexing();
101 int DoDecaySearch();
102 int DoFindBlkSeg(EdbVertex* v,int w0,double ImpMax=50., double RMax=3000, int Dpat=1);
105 void FillECovSeg(EdbSegP* seg,EdbScanCond* cnd=0);
106
107 void FillECovTrks();
108 void FillErrorsCOV();
109 public:
113 ClassDef(EdbDSRec,1) //OPERA event reconstruction
114};
115
116#endif
TTree * tr
Definition: Shower_E_FromShowerRoot.C:5
Definition: EdbBrick.h:38
Definition: EdbDataStore.h:90
EdbDSRec()
Definition: EdbDataStore.cxx:466
void FillECovPV(EdbPatternsVolume *, EdbScanCond *cnd=0)
prepare segments' cov matrix
Definition: EdbDataStore.cxx:740
void FillErrorsCOV()
Definition: EdbDataStore.cxx:755
EdbVertexRec eVRec
Definition: EdbDataStore.h:110
int DoDecaySearch()
Definition: EdbDataStore.cxx:716
void FillECovTrks()
Definition: EdbDataStore.cxx:721
EdbScanCond eCond_m
Definition: EdbDataStore.h:112
EdbMomentumEstimator eMomEst
Definition: EdbDataStore.h:111
EdbScanCond eCond_b
Definition: EdbDataStore.h:112
void FillECovSeg(EdbSegP *seg, EdbScanCond *cnd=0)
Definition: EdbDataStore.cxx:731
int DoFindBlkSeg(EdbVertex *v, int w0, double ImpMax=50., double RMax=3000, int Dpat=1)
TODO.
Definition: EdbDataStore.cxx:681
int DoTracking0(bool use_btk=true, int p0=0, int p1=100)
Definition: EdbDataStore.cxx:561
int DoVertexing()
Definition: EdbDataStore.cxx:631
void Clear(bool hard=false)
Definition: EdbDataStore.cxx:482
int DoTracking(bool use_btk=true, int p0=0, int p1=100)
Definition: EdbDataStore.cxx:488
int DoMomEst()
Definition: EdbDataStore.cxx:647
~EdbDSRec()
Definition: EdbDataStore.h:93
Definition: EdbDataStore.h:15
void SavePlateToRaw(const char *fname, int PID, Option_t *option="RECREATE")
Definition: EdbDataStore.cxx:761
void SetOwnTracks(bool own=true)
setown methods:
Definition: EdbDataStore.h:41
void ClearRaw(bool hard=false)
Definition: EdbDataStore.cxx:319
void ClearSeg(bool hard=false)
Definition: EdbDataStore.cxx:293
void PrintPatterns()
Definition: EdbDataStore.cxx:362
TObjArray eTracks
Definition: EdbDataStore.h:84
TObjArray eVTX
Definition: EdbDataStore.h:85
int Nt()
count methods:
Definition: EdbDataStore.h:37
~EdbDataStore()
Definition: EdbDataStore.cxx:16
EdbPattern * GetRawPat(int n)
Definition: EdbDataStore.h:48
static void TransferSegs(EdbPatternsVolume *pv0, EdbPatternsVolume *pv1, EdbSegmentCut *cut=0, int FromPlate=0, int ToPlate=57)
Definition: EdbDataStore.cxx:62
void AddPattern(EdbPattern *pat)
Definition: EdbDataStore.cxx:257
void SaveToRaw(const char *dir="./", const EdbID &idset="0.0.0.0", Option_t *option="RECREATE", bool doaff=true)
save methods:
Definition: EdbDataStore.cxx:828
EdbTrackP * FindTrack(int id)
find methods
Definition: EdbDataStore.cxx:187
void Restore_TrxFromVtx()
Definition: EdbDataStore.cxx:157
EdbPatternsVolume eRawPV
geometry
Definition: EdbDataStore.h:82
EdbPatternsVolume * GetPV(bool btk=true)
Definition: EdbDataStore.h:50
void SetOwnVertices(bool own=true)
Definition: EdbDataStore.h:42
void Clear(bool hard=false)
clear methods
Definition: EdbDataStore.h:30
EdbVertex * FindPrimVtx()
Definition: EdbDataStore.cxx:252
int Nv()
Definition: EdbDataStore.h:38
void AddTrack(EdbTrackP *tr)
Definition: EdbDataStore.h:62
EdbPattern * GetPattern(int n, bool btk=true)
Definition: EdbDataStore.h:49
EdbVertex * FindVertex(int id)
Definition: EdbDataStore.cxx:197
EdbSegP * AddSegment(EdbSegP *seg, EdbSegmentCut *cut=0, int Plt0=0, int Plt1=100)
add methods
Definition: EdbDataStore.cxx:126
int Nplt()
Definition: EdbDataStore.h:39
void ClearGeom()
Definition: EdbDataStore.cxx:276
long Gen_mtk_BG(long NBG, int Plate, int Side, TH2 *pdf_Ang, TH2 *pdf_WT=0)
Definition: EdbDataStore.cxx:420
void AddVertex(EdbVertex *v)
Definition: EdbDataStore.h:63
void Restore_PIDFromID()
Definition: EdbDataStore.cxx:105
void Restore_SegFromTrx(EdbSegmentCut *cut=0, int Plt0=0, int Plt1=1000)
Definition: EdbDataStore.cxx:171
void LoadMCVertices(TObjArray *vtx)
restore MC info methods
Definition: EdbDataStore.cxx:18
EdbLayer * FindLayer(int plate, int side=0)
Definition: EdbDataStore.cxx:206
EdbPattern * GetSegPat(int n)
Definition: EdbDataStore.h:47
EdbBrickP * eBrick
Definition: EdbDataStore.h:81
void PrintTracks(int vlev=0)
Definition: EdbDataStore.cxx:346
void DoSmearing(EdbScanCond *cond_btk, EdbScanCond *cond_mtk=0)
methods for simulation:
Definition: EdbDataStore.cxx:372
EdbDataStore()
Definition: EdbDataStore.cxx:11
void Restore_PatFromGeom(int np0=0, int np1=1000)
Definition: EdbDataStore.cxx:144
void PrintBrief()
print methods
Definition: EdbDataStore.cxx:340
void MakePattern(double z, int plate, int side)
Definition: EdbDataStore.cxx:264
EdbTrackP * GetTrack(int n)
get methods
Definition: EdbDataStore.h:45
void DoEfficiency(TF1 *eff_seg, TF1 *eff_mtk)
Definition: EdbDataStore.cxx:386
void ClearVTX()
Definition: EdbDataStore.cxx:285
EdbPattern * FindPattern(int plate, int side=0)
Definition: EdbDataStore.cxx:220
void TransferGeometry(EdbDataStore *ds)
Definition: EdbDataStore.cxx:25
void SetOwnTrkSegs()
Definition: EdbDataStore.h:43
EdbTrackP * FindLongTrk(int nsmin=8)
Definition: EdbDataStore.cxx:236
EdbVertex * GetVertex(int n)
Definition: EdbDataStore.h:46
EdbPatternsVolume eSegPV
Definition: EdbDataStore.h:83
void TransferTo(EdbDataStore *ds, char level, EdbSegmentCut *cut=0, int FromPlate=0, int ToPlate=57)
transfer methods
Definition: EdbDataStore.cxx:31
void ClearTracks(bool hard=false)
Definition: EdbDataStore.cxx:289
Definition: EdbID.h:7
Definition: EdbLayer.h:39
Definition: EdbMomentumEstimator.h:21
Definition: EdbPattern.h:273
Definition: EdbPattern.h:334
Int_t Npatterns() const
Definition: EdbPattern.h:366
EdbPattern * GetPattern(int id) const
Definition: EdbPattern.cxx:1721
Definition: EdbScanCond.h:10
Definition: EdbSegP.h:21
Definition: EdbSegmentCut.h:6
Definition: EdbPattern.h:113
void SetOwner()
Definition: EdbPattern.h:139
Definition: EdbVertex.h:194
Definition: EdbVertex.h:69
Definition: Side.h:11
EdbID idset
Definition: emrec.cpp:35
TCut cut
Definition: check_shower.C:6
EdbDisplay * ds
Definition: check_vertex.C:16
const char * fname
Definition: mc2raw.cxx:41
long NBG
Definition: mc2raw.cxx:39
Int_t plate
Definition: merge_Energy_SytematicSources_Electron.C:1
float ImpMax
Definition: check_vertex.C:30
Definition: Flexmotn.h:102