Line data Source code
1 : #ifndef ALIITSLOADER_H
2 : #define ALIITSLOADER_H
3 : //////////////////////////////////////////////////////////
4 : // Loader class for ITS //
5 : //////////////////////////////////////////////////////////
6 : #include <AliLoader.h>
7 : #include <AliESDVertex.h>
8 : #include "AliITSgeom.h"
9 : class AliITSpidESD;
10 : class AliITSdigit;
11 : class TObjArray;
12 :
13 : class AliITSLoader: public AliLoader{
14 : public:
15 : AliITSLoader();
16 : AliITSLoader(const Char_t *name,const Char_t *topfoldername);
17 : AliITSLoader(const Char_t *name,TFolder *topfolder);
18 :
19 : virtual ~AliITSLoader();
20 :
21 : void MakeTree(Option_t* opt);
22 : virtual void SetupDigits(TObjArray *digPerDet,Int_t n,
23 : const Char_t **digclass); // Sets up digits
24 : // Gets the AliITSdigit for a given module and a specific digit in that
25 : // module. Array of digits stored in AliITS (must use
26 : // SetupDigits(AliITS *its)).
27 : // virtual AliITSdigit* GetDigit(AliITS *its,Int_t module,Int_t digit);
28 : // Gets the AliITSdigit for a given module and a specific digit in that
29 : // module. Array of digits stored in a user defined TObjArray digPerDet
30 : virtual AliITSdigit* GetDigit(TObjArray *digPerDet,Int_t module,Int_t digit);
31 :
32 : //Raw Clusters
33 60 : AliDataLoader* GetRawClLoader() {return GetDataLoader("Raw Clusters");}
34 : virtual void CleanRawClusters() {
35 0 : GetRawClLoader()->GetBaseLoader(0)->Clean();}
36 : Int_t LoadRawClusters(Option_t* opt=""){
37 0 : return GetRawClLoader()->GetBaseLoader(0)->Load(opt);}
38 : void SetRawClustersFileName(const TString& fname){
39 0 : GetRawClLoader()->SetFileName(fname);}
40 : // returns a pointer to the tree of RawClusters
41 0 : TTree* TreeC(){ return GetRawClLoader()->Tree();}
42 : void UnloadRawClusters(){
43 30 : GetRawClLoader()->GetBaseLoader(0)->Unload();}
44 : virtual Int_t WriteRawClusters(Option_t* opt=""){
45 0 : return GetRawClLoader()->GetBaseLoader(0)->WriteData(opt);}
46 :
47 : //Vertices
48 : AliDataLoader* GetVertexDataLoader() {
49 60 : return GetDataLoader("Primary Vertices");}
50 : virtual void CleanVertices() {
51 0 : GetVertexDataLoader()->GetBaseLoader(0)->Clean();}
52 : Int_t LoadVertices(Option_t* opt=""){
53 0 : return GetVertexDataLoader()->GetBaseLoader(0)->Load(opt);}
54 : void SetVerticesFileName(const TString& fname){
55 0 : GetVertexDataLoader()->SetFileName(fname);}
56 : void UnloadVertices(){
57 30 : GetVertexDataLoader()->GetBaseLoader(0)->Unload();}
58 : virtual Int_t WriteVertices(Option_t* opt=""){
59 0 : return GetVertexDataLoader()->GetBaseLoader(0)->WriteData(opt);}
60 : virtual Int_t PostVertex(AliESDVertex *ptr){
61 0 : return GetVertexDataLoader()->GetBaseLoader(0)->Post(ptr);}
62 : // virtual void SetVerticesContName(const char *name){
63 : // GetVertexDataLoader()->GetBaseLoader(0)->SetName(name);}
64 : AliESDVertex *GetVertex(){
65 0 : return static_cast <AliESDVertex*>(GetVertexDataLoader()->
66 : GetBaseLoader(0)->Get());}
67 : //V0s
68 60 : AliDataLoader* GetV0DataLoader() {return GetDataLoader("V0 Vertices");}
69 0 : virtual void CleanV0s() {GetV0DataLoader()->GetBaseLoader(0)->Clean();}
70 : Int_t LoadV0s(Option_t* opt=""){
71 0 : return GetV0DataLoader()->GetBaseLoader(0)->Load(opt);}
72 : void SetV0FileName(const TString& fname){
73 0 : GetV0DataLoader()->SetFileName(fname);}
74 30 : void UnloadV0s(){GetV0DataLoader()->GetBaseLoader(0)->Unload();}
75 : virtual Int_t WriteV0s(Option_t* opt=""){
76 0 : return GetV0DataLoader()->GetBaseLoader(0)->WriteData(opt);}
77 0 : TTree* TreeV0(){ return GetV0DataLoader()->Tree();}
78 :
79 : //Cascades
80 60 : AliDataLoader* GetCascadeDataLoader() {return GetDataLoader("Cascades");}
81 : virtual void CleanCascades() {
82 0 : GetCascadeDataLoader()->GetBaseLoader(0)->Clean();}
83 : Int_t LoadCascades(Option_t* opt=""){
84 0 : return GetCascadeDataLoader()->GetBaseLoader(0)->Load(opt);}
85 : void SetCascadeFileName(const TString& fname){
86 0 : GetCascadeDataLoader()->SetFileName(fname);}
87 : void UnloadCascades(){
88 30 : GetCascadeDataLoader()->GetBaseLoader(0)->Unload();}
89 : virtual Int_t WriteCascades(Option_t* opt=""){
90 0 : return GetCascadeDataLoader()->GetBaseLoader(0)->WriteData(opt);}
91 0 : TTree* TreeX(){ return GetCascadeDataLoader()->Tree();}
92 :
93 : //Back Propagated Tracks
94 : AliDataLoader* GetBackTracksDataLoader() {
95 60 : return GetDataLoader("Back Propagated Tracks");}
96 : virtual void CleanBackTracks() {
97 0 : GetBackTracksDataLoader()->GetBaseLoader(0)->Clean();}
98 : Int_t LoadBackTracks(Option_t* opt=""){
99 0 : return GetBackTracksDataLoader()->GetBaseLoader(0)->Load(opt);}
100 : void SetBackTracksFileName(const TString& fname){
101 0 : GetBackTracksDataLoader()->SetFileName(fname);}
102 : // returns a pointer to the tree of BackTracks
103 0 : TTree* TreeB(){ return GetBackTracksDataLoader()->Tree();}
104 : void UnloadBackTracks(){
105 30 : GetBackTracksDataLoader()->GetBaseLoader(0)->Unload();}
106 : virtual Int_t WriteBackTracks(Option_t* opt=""){
107 0 : return GetBackTracksDataLoader()->GetBaseLoader(0)->WriteData(opt);}
108 :
109 : // Geometry. Geom is read from file, unless already loaded
110 : // readout from file can be forced if force=kTRUE
111 : AliITSgeom* GetITSgeom(Bool_t force=kFALSE);
112 : void SetITSgeom(AliITSgeom* g);
113 : //
114 : static const TString& GetDefaultRawClustersContainerName();
115 : static const TString& GetDefaultBackTracksContainerName();
116 : static const TString& GetDefaultVerticesContainerName();
117 : static const TString& GetDefaultV0ContainerName();
118 : static const TString& GetDefaultCascadeContainerName();
119 : //
120 : protected:
121 :
122 : AliITSLoader(const AliITSLoader &ob); // copy constructor
123 : AliITSLoader& operator=(const AliITSLoader & /* source */); // ass.
124 :
125 : // METHODS
126 0 : virtual void MakeRawClustersContainer() {GetRawClLoader()->MakeTree();}
127 : Int_t PostRawClusters(){
128 : return GetRawClLoader()->GetBaseLoader(0)->Post();}
129 :
130 : virtual void MakeBackTracksContainer() {
131 0 : GetBackTracksDataLoader()->MakeTree();}
132 : Int_t PostBackTracks(){
133 : return GetBackTracksDataLoader()->GetBaseLoader(0)->Post();}
134 0 : virtual void MakeV0Container() {GetV0DataLoader()->MakeTree();}
135 : Int_t PostV0s(){
136 : return GetV0DataLoader()->GetBaseLoader(0)->Post();}
137 :
138 0 : virtual void MakeCascadeContainer() {GetCascadeDataLoader()->MakeTree();}
139 : Int_t PostCascades(){
140 : return GetCascadeDataLoader()->GetBaseLoader(0)->Post();}
141 :
142 : AliITSgeom *fGeom; //! pointer to the ITS geometry class
143 :
144 :
145 258 : ClassDef(AliITSLoader,6) // Loader for additional ITS specific trees.
146 : };
147 :
148 : #endif
|