1 #include "AliITSLoader.h"
6 //////////////////////////////////////////////////////////////////////////////////////////
8 // it manages the I/O for:
9 // raw clusters, primary vertices
11 // and tracks propagated to the origin
12 //////////////////////////////////////////////////////////////////////////////////////////
13 const TString AliITSLoader::fgkDefaultRawClustersContainerName = "TreeC";
14 const TString AliITSLoader::fgkDefaultBackTracksContainerName = "TreeB";
15 const TString AliITSLoader::fgkDefaultVerticesContainerName = "Vertex";
16 const TString AliITSLoader::fgkDefaultV0ContainerName = "V0";
17 const TString AliITSLoader::fgkDefaultCascadeContainerName = "Cascade";
19 ClassImp(AliITSLoader)
21 /*****************************************************************************/
23 AliITSLoader::AliITSLoader():AliLoader(){
24 // Default constructor
28 /*****************************************************************************/
29 AliITSLoader::AliITSLoader(const Char_t *name,const Char_t *topfoldername): AliLoader(name,topfoldername){
31 AliDataLoader* rawClustersDataLoader = new AliDataLoader(fDetectorName + ".RawCl.root",fgkDefaultRawClustersContainerName,"Raw Clusters");
32 fDataLoaders->Add(rawClustersDataLoader);
33 rawClustersDataLoader->SetEventFolder(fEventFolder);
34 rawClustersDataLoader->SetFolder(GetDetectorDataFolder());
36 AliDataLoader* backTracksDataLoader =
37 new AliDataLoader(fDetectorName + ".BackTracks.root",fgkDefaultBackTracksContainerName,"Back Propagated Tracks");
38 fDataLoaders->Add(backTracksDataLoader);
39 backTracksDataLoader->SetEventFolder(fEventFolder);
40 backTracksDataLoader->SetFolder(GetDetectorDataFolder());
42 AliDataLoader* vertexDataLoader = new AliDataLoader(fDetectorName + ".Vertex.root",fgkDefaultVerticesContainerName,"Primary Vertices","O");
43 fDataLoaders->Add(vertexDataLoader);
44 vertexDataLoader->SetEventFolder(fEventFolder);
45 vertexDataLoader->SetFolder(GetDetectorDataFolder());
47 AliDataLoader* v0DataLoader = new AliDataLoader(fDetectorName + ".V0s.root",fgkDefaultV0ContainerName,"V0 Vertices");
48 fDataLoaders->Add(v0DataLoader);
49 v0DataLoader->SetEventFolder(fEventFolder);
50 v0DataLoader->SetFolder(GetDetectorDataFolder());
52 AliDataLoader* cascadeDataLoader = new AliDataLoader(fDetectorName + ".Cascades.root",fgkDefaultCascadeContainerName,"Cascades");
53 fDataLoaders->Add(cascadeDataLoader);
54 cascadeDataLoader->SetEventFolder(fEventFolder);
55 cascadeDataLoader->SetFolder(GetDetectorDataFolder());
58 /*****************************************************************************/
60 AliITSLoader::AliITSLoader(const Char_t *name,TFolder *topfolder): AliLoader(name,topfolder) {
62 AliDataLoader* rawClustersDataLoader = new AliDataLoader(fDetectorName + ".RawCl.root",fgkDefaultRawClustersContainerName,"Raw Clusters");
63 fDataLoaders->Add(rawClustersDataLoader);
64 rawClustersDataLoader->SetEventFolder(fEventFolder);
65 rawClustersDataLoader->SetFolder(GetDetectorDataFolder());
67 AliDataLoader* backTracksDataLoader =
68 new AliDataLoader(fDetectorName + ".BackTracks.root",fgkDefaultBackTracksContainerName,"Back Propagated Tracks");
69 fDataLoaders->Add(backTracksDataLoader);
70 backTracksDataLoader->SetEventFolder(fEventFolder);
71 backTracksDataLoader->SetFolder(GetDetectorDataFolder());
73 AliDataLoader* vertexDataLoader = new AliDataLoader(fDetectorName + ".Vertex.root",fgkDefaultVerticesContainerName,"Primary Vertices","O");
74 fDataLoaders->Add(vertexDataLoader);
75 vertexDataLoader->SetEventFolder(fEventFolder);
76 vertexDataLoader->SetFolder(GetDetectorDataFolder());
78 AliDataLoader* v0DataLoader = new AliDataLoader(fDetectorName + ".V0.root",fgkDefaultV0ContainerName,"V0 Vertices");
79 fDataLoaders->Add(v0DataLoader);
80 v0DataLoader->SetEventFolder(fEventFolder);
81 v0DataLoader->SetFolder(GetDetectorDataFolder());
83 AliDataLoader* cascadeDataLoader = new AliDataLoader(fDetectorName + ".Cascade.root",fgkDefaultCascadeContainerName,"Cascades");
84 fDataLoaders->Add(cascadeDataLoader);
85 cascadeDataLoader->SetEventFolder(fEventFolder);
86 cascadeDataLoader->SetFolder(GetDetectorDataFolder());
89 /*****************************************************************************/
90 AliITSLoader::~AliITSLoader()
93 AliDataLoader* dl = 0;
95 dl = GetRawClLoader();
96 fDataLoaders->Remove(dl);
99 dl = GetBackTracksDataLoader();
100 fDataLoaders->Remove(dl);
103 dl = GetVertexDataLoader();
104 fDataLoaders->Remove(dl);
107 dl = GetV0DataLoader();
108 fDataLoaders->Remove(dl);
111 dl = GetCascadeDataLoader();
112 fDataLoaders->Remove(dl);
116 void AliITSLoader::MakeTree(Option_t *opt){
117 // invokes AliLoader::MakeTree + specific ITS tree(s)
118 // Valid options: H,S,D,R,T and C (C=raw clusters)
119 AliLoader::MakeTree(opt);
120 const char *oC = strstr(opt,"C");
121 if (oC) MakeRawClustersContainer();
123 const char *oB = strstr(opt,"B");
124 if (oB) MakeBackTracksContainer();
126 const char *oV0 = strstr(opt,"V0");
127 if (oV0) MakeV0Container();
129 const char *oX = strstr(opt,"X");
130 if (oX) MakeCascadeContainer();