-#ifndef ALIITSGETTER_H
-#define ALIITSGETTER_H
-
+#ifndef ALIITSLOADER_H
+#define ALIITSLOADER_H
+//////////////////////////////////////////////////////////
+// Loader class for ITS //
+//////////////////////////////////////////////////////////
#include <AliLoader.h>
-#include <AliITSVertex.h>
-
-class AliITSLoader: public AliLoader
- {
- public:
- AliITSLoader(){};
+#include <AliESDVertex.h>
+#include <AliITSgeom.h>
+class AliITSpidESD;
+class AliITSdigit;
+class TObjArray;
+
+class AliITSLoader: public AliLoader{
+ public:
+ AliITSLoader();
AliITSLoader(const Char_t *name,const Char_t *topfoldername);
AliITSLoader(const Char_t *name,TFolder *topfolder);
-
+
virtual ~AliITSLoader();
void MakeTree(Option_t* opt);
+ virtual void SetupDigits(TObjArray *digPerDet,Int_t n,
+ const Char_t **digclass); // Sets up digits
+ // Gets the AliITSdigit for a given module and a specific digit in that
+ // module. Array of digits stored in AliITS (must use
+ // SetupDigits(AliITS *its)).
+ // virtual AliITSdigit* GetDigit(AliITS *its,Int_t module,Int_t digit);
+ // Gets the AliITSdigit for a given module and a specific digit in that
+ // module. Array of digits stored in a user defined TObjArray digPerDet
+ virtual AliITSdigit* GetDigit(TObjArray *digPerDet,Int_t module,Int_t digit);
//Raw Clusters
- virtual void CleanRawClusters() {fRawClustersDataLoader.GetBaseLoader(0)->Clean();}
- Int_t LoadRawClusters(Option_t* opt=""){return fRawClustersDataLoader.GetBaseLoader(0)->Load(opt);}
- void SetRawClustersFileName(const TString& fname){fRawClustersDataLoader.SetFileName(fname);}
- TTree* TreeC(){ return fRawClustersDataLoader.Tree();} // returns a pointer to the tree of RawClusters
- void UnloadRawClusters(){fRawClustersDataLoader.GetBaseLoader(0)->Unload();}
- virtual Int_t WriteRawClusters(Option_t* opt=""){return fRawClustersDataLoader.GetBaseLoader(0)->WriteData(opt);}
+ AliDataLoader* GetRawClLoader() {return GetDataLoader("Raw Clusters");}
+ virtual void CleanRawClusters() {
+ GetRawClLoader()->GetBaseLoader(0)->Clean();}
+ Int_t LoadRawClusters(Option_t* opt=""){
+ return GetRawClLoader()->GetBaseLoader(0)->Load(opt);}
+ void SetRawClustersFileName(const TString& fname){
+ GetRawClLoader()->SetFileName(fname);}
+ // returns a pointer to the tree of RawClusters
+ TTree* TreeC(){ return GetRawClLoader()->Tree();}
+ void UnloadRawClusters(){
+ GetRawClLoader()->GetBaseLoader(0)->Unload();}
+ virtual Int_t WriteRawClusters(Option_t* opt=""){
+ return GetRawClLoader()->GetBaseLoader(0)->WriteData(opt);}
//Vertices
- virtual void CleanVertices() {fVertexDataLoader.GetBaseLoader(0)->Clean();}
- Int_t LoadVertices(Option_t* opt=""){return fVertexDataLoader.GetBaseLoader(0)->Load(opt);}
- void SetVerticesFileName(const TString& fname){fVertexDataLoader.SetFileName(fname);}
- void UnloadVertices(){fVertexDataLoader.GetBaseLoader(0)->Unload();}
- virtual Int_t WriteVertices(Option_t* opt=""){return fVertexDataLoader.GetBaseLoader(0)->WriteData(opt);}
- virtual Int_t PostVertex(AliITSVertex *ptr){return fVertexDataLoader.GetBaseLoader(0)->Post(ptr);}
- // virtual void SetVerticesContName(const char *name){fVertexDataLoader.GetBaseLoader(0)->SetName(name);}
- AliITSVertex *GetVertex(){return static_cast <AliITSVertex*>(fVertexDataLoader.GetBaseLoader(0)->Get());}
-
+ AliDataLoader* GetVertexDataLoader() {
+ return GetDataLoader("Primary Vertices");}
+ virtual void CleanVertices() {
+ GetVertexDataLoader()->GetBaseLoader(0)->Clean();}
+ Int_t LoadVertices(Option_t* opt=""){
+ return GetVertexDataLoader()->GetBaseLoader(0)->Load(opt);}
+ void SetVerticesFileName(const TString& fname){
+ GetVertexDataLoader()->SetFileName(fname);}
+ void UnloadVertices(){
+ GetVertexDataLoader()->GetBaseLoader(0)->Unload();}
+ virtual Int_t WriteVertices(Option_t* opt=""){
+ return GetVertexDataLoader()->GetBaseLoader(0)->WriteData(opt);}
+ virtual Int_t PostVertex(AliESDVertex *ptr){
+ return GetVertexDataLoader()->GetBaseLoader(0)->Post(ptr);}
+ // virtual void SetVerticesContName(const char *name){
+ // GetVertexDataLoader()->GetBaseLoader(0)->SetName(name);}
+ AliESDVertex *GetVertex(){
+ return static_cast <AliESDVertex*>(GetVertexDataLoader()->
+ GetBaseLoader(0)->Get());}
//V0s
- virtual void CleanV0s() {fV0DataLoader.GetBaseLoader(0)->Clean();}
- Int_t LoadV0s(Option_t* opt=""){return fV0DataLoader.GetBaseLoader(0)->Load(opt);}
- void SetV0FileName(const TString& fname){fV0DataLoader.SetFileName(fname);}
- void UnloadV0s(){fV0DataLoader.GetBaseLoader(0)->Unload();}
- virtual Int_t WriteV0s(Option_t* opt=""){return fV0DataLoader.GetBaseLoader(0)->WriteData(opt);}
- TTree* TreeV0(){ return fV0DataLoader.Tree();}
+ AliDataLoader* GetV0DataLoader() {return GetDataLoader("V0 Vertices");}
+ virtual void CleanV0s() {GetV0DataLoader()->GetBaseLoader(0)->Clean();}
+ Int_t LoadV0s(Option_t* opt=""){
+ return GetV0DataLoader()->GetBaseLoader(0)->Load(opt);}
+ void SetV0FileName(const TString& fname){
+ GetV0DataLoader()->SetFileName(fname);}
+ void UnloadV0s(){GetV0DataLoader()->GetBaseLoader(0)->Unload();}
+ virtual Int_t WriteV0s(Option_t* opt=""){
+ return GetV0DataLoader()->GetBaseLoader(0)->WriteData(opt);}
+ TTree* TreeV0(){ return GetV0DataLoader()->Tree();}
//Cascades
- virtual void CleanCascades() {fCascadeDataLoader.GetBaseLoader(0)->Clean();}
- Int_t LoadCascades(Option_t* opt=""){return fCascadeDataLoader.GetBaseLoader(0)->Load(opt);}
- void SetCascadeFileName(const TString& fname){fCascadeDataLoader.SetFileName(fname);}
- void UnloadCascades(){fCascadeDataLoader.GetBaseLoader(0)->Unload();}
- virtual Int_t WriteCascades(Option_t* opt=""){return fCascadeDataLoader.GetBaseLoader(0)->WriteData(opt);}
- TTree* TreeX(){ return fCascadeDataLoader.Tree();}
+ AliDataLoader* GetCascadeDataLoader() {return GetDataLoader("Cascades");}
+ virtual void CleanCascades() {
+ GetCascadeDataLoader()->GetBaseLoader(0)->Clean();}
+ Int_t LoadCascades(Option_t* opt=""){
+ return GetCascadeDataLoader()->GetBaseLoader(0)->Load(opt);}
+ void SetCascadeFileName(const TString& fname){
+ GetCascadeDataLoader()->SetFileName(fname);}
+ void UnloadCascades(){
+ GetCascadeDataLoader()->GetBaseLoader(0)->Unload();}
+ virtual Int_t WriteCascades(Option_t* opt=""){
+ return GetCascadeDataLoader()->GetBaseLoader(0)->WriteData(opt);}
+ TTree* TreeX(){ return GetCascadeDataLoader()->Tree();}
//Back Propagated Tracks
-
- virtual void CleanBackTracks() {fBackTracksDataLoader.GetBaseLoader(0)->Clean();}
- Int_t LoadBackTracks(Option_t* opt=""){return fBackTracksDataLoader.GetBaseLoader(0)->Load(opt);}
- void SetBackTracksFileName(const TString& fname){fBackTracksDataLoader.SetFileName(fname);}
- TTree* TreeB(){ return fBackTracksDataLoader.Tree();} // returns a pointer to the tree of BackTracks
- void UnloadBackTracks(){fBackTracksDataLoader.GetBaseLoader(0)->Unload();}
- virtual Int_t WriteBackTracks(Option_t* opt=""){return fBackTracksDataLoader.GetBaseLoader(0)->WriteData(opt);}
-
-
- protected:
+ AliDataLoader* GetBackTracksDataLoader() {
+ return GetDataLoader("Back Propagated Tracks");}
+ virtual void CleanBackTracks() {
+ GetBackTracksDataLoader()->GetBaseLoader(0)->Clean();}
+ Int_t LoadBackTracks(Option_t* opt=""){
+ return GetBackTracksDataLoader()->GetBaseLoader(0)->Load(opt);}
+ void SetBackTracksFileName(const TString& fname){
+ GetBackTracksDataLoader()->SetFileName(fname);}
+ // returns a pointer to the tree of BackTracks
+ TTree* TreeB(){ return GetBackTracksDataLoader()->Tree();}
+ void UnloadBackTracks(){
+ GetBackTracksDataLoader()->GetBaseLoader(0)->Unload();}
+ virtual Int_t WriteBackTracks(Option_t* opt=""){
+ return GetBackTracksDataLoader()->GetBaseLoader(0)->WriteData(opt);}
+
+ // Geometry. Geom is read from file, unless already loaded
+ // readout from file can be forced if force=kTRUE
+ AliITSgeom* GetITSgeom(Bool_t force=kFALSE);
+ void SetITSgeom(AliITSgeom* g);
+ protected:
+
+ AliITSLoader(const AliITSLoader &ob); // copy constructor
+ AliITSLoader& operator=(const AliITSLoader & /* source */); // ass.
// METHODS
- virtual void MakeRawClustersContainer() {fRawClustersDataLoader.MakeTree();}
- Int_t PostRawClusters(){return fRawClustersDataLoader.GetBaseLoader(0)->Post();}
-
- virtual void MakeBackTracksContainer() {fBackTracksDataLoader.MakeTree();}
- Int_t PostBackTracks(){return fBackTracksDataLoader.GetBaseLoader(0)->Post();}
- virtual void MakeV0Container() {fV0DataLoader.MakeTree();}
- Int_t PostV0s(){return fV0DataLoader.GetBaseLoader(0)->Post();}
-
- virtual void MakeCascadeContainer() {fCascadeDataLoader.MakeTree();}
- Int_t PostCascades(){return fCascadeDataLoader.GetBaseLoader(0)->Post();}
+ virtual void MakeRawClustersContainer() {GetRawClLoader()->MakeTree();}
+ Int_t PostRawClusters(){
+ return GetRawClLoader()->GetBaseLoader(0)->Post();}
+
+ virtual void MakeBackTracksContainer() {
+ GetBackTracksDataLoader()->MakeTree();}
+ Int_t PostBackTracks(){
+ return GetBackTracksDataLoader()->GetBaseLoader(0)->Post();}
+ virtual void MakeV0Container() {GetV0DataLoader()->MakeTree();}
+ Int_t PostV0s(){
+ return GetV0DataLoader()->GetBaseLoader(0)->Post();}
+
+ virtual void MakeCascadeContainer() {GetCascadeDataLoader()->MakeTree();}
+ Int_t PostCascades(){
+ return GetCascadeDataLoader()->GetBaseLoader(0)->Post();}
// DATA
- AliDataLoader fRawClustersDataLoader;
- static const TString fgkDefaultRawClustersContainerName;
-
- AliDataLoader fBackTracksDataLoader;
- static const TString fgkDefaultBackTracksContainerName;
-
- AliDataLoader fVertexDataLoader;
- static const TString fgkDefaultVerticesContainerName;
+ static const TString fgkDefaultRawClustersContainerName; //default for Raw Clusters container name
+ static const TString fgkDefaultBackTracksContainerName; //default for Back propag. tracks container name
+ static const TString fgkDefaultVerticesContainerName; //default for primary vertices container name
+ static const TString fgkDefaultV0ContainerName; //default for V0 container name
+ static const TString fgkDefaultCascadeContainerName; //default fo cascade container name
+ AliITSgeom *fGeom; //! pointer to the ITS geometry class
- AliDataLoader fV0DataLoader;
- static const TString fgkDefaultV0ContainerName;
- AliDataLoader fCascadeDataLoader;
- static const TString fgkDefaultCascadeContainerName;
-
- public:
- ClassDef(AliITSLoader,2)
- };
+ ClassDef(AliITSLoader,6) // Loader for additional ITS specific trees.
+};
#endif
-
-