]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSupgrade.h
fix for memory leak and mods according to ITStrackerV2
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSupgrade.h
CommitLineData
1d9af2d5 1#ifndef ALIITSUPGRADE_H
2#define ALIITSUPGRADE_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9//========================================================================
10//
11// Geometry of the Inner Tracking System Upgrade based on TGeo
12//
13//
14// Authors: A. Mastroserio
15// C. Terrevoli
16// annalisa.mastroserio@cern.ch
17// cristina.terrevoli@ba.infn.it
18//
19//========================================================================
20
21//
22//ITS class for new geometry based on TGeo
23//
24
25#include "AliITS.h" //base class
26#include "AliITSsegmentationUpgrade.h"
27#include "AliITSupgradeDigitizer.h"
28#include <TArrayS.h>
29
30class TGeoVolume;
31class TGeoVolumeAssembly;
32class TArrayD;
33class TClonesArray;
34class TObjArray;
35class AiITShit;
36class AliITSupgrade : public AliITS //TObject-TNamed-AliModule-AliDetector-AliITS-AliITSupgrade
37{
38 public:
39 AliITSupgrade(); //default ctor
40 AliITSupgrade(const char *name, const char *title, TArrayD widths, TArrayD radii,TArrayD halfLengths, TArrayD radiiCu, TArrayD widthsCu, TArrayS copper,Bool_t bp, Double_t radiusBP, Double_t widthPB, Double_t halfLengthsBP); //ctor
41 virtual ~AliITSupgrade(); //dtor
42
43 //framework part+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
44 void AddAlignableVolumes() const; //from AliModule invoked from AliMC
45 void CreateMaterials (); //from AliModule invoked from AliMC
46 void CreateGeometry (); //from AliModule invoked from AliMC
47 void Init (); //from AliModule invoked from AliMC::InitGeometry()
48 void StepManager (); //from AliModule invoked from AliMC::Stepping()
49 void Hits2SDigits();
50 void MakeBranch (Option_t *opt=""); //from AliModule invokde from AliRun::Tree2Tree() to make requested ITSupgrade branch
51 void SetTreeAddress ( ); //from AliModule invoked from AliRun::GetEvent(), AliLoader::SetTAddrInDet()
52
53 //create containers++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
54 void HitCreate() {if(fHits)return; fHits=new TClonesArray("AliITShit"); fNhits=0; }//create hits list
55
56 TObjArray* SDigitsList() const{return fSdigits;}//get digits list for all layers
57 TClonesArray* SDigitsList(Int_t layer) const{return fSdigits ? (TClonesArray *)fSdigits->At(layer):0;}//get sdigits list for a layer
58 void SDigitsCreate() {if (fSdigits) return;
59 fSdigits=new TObjArray(fNlayers);
60 for(Int_t i=0;i<fNlayers;i++)fSdigits->AddAt(new TClonesArray("AliITSDigitUpgrade"),i);}//create digits list
61 void SDigitsReset () {if(fSdigits) for(int i=0;i<fNlayers;i++)fSdigits->At(i)->Clear(); }//clean sdigits list
62
63
64
65 TObjArray* DigitsList() const{return fDigits;}//get digits list for all layers
66 TClonesArray* DigitsList(Int_t layer) const{return fDigits ? (TClonesArray *)fDigits->At(layer):0;}//get digits list for chamber
67 void DigitsCreate() {if (fDigits) return;
68 fDigits=new TObjArray(fNlayers);
69 for(Int_t i=0;i<fNlayers;i++)fDigits->AddAt(new TClonesArray("AliITSDigitUpgrade"),i);}//create digits list
70 void DigitsReset () {if(fDigits)for(int i=0;i<fNlayers;i++)fDigits->At(i)->Clear(); }//clean digits list
71
1d9af2d5 72 AliDigitizer* CreateDigitizer (AliRunDigitizer *m) const {return new AliITSupgradeDigitizer(m);} //from AliModule invoked from AliSimulation::RunDigitization()
73
74 void Hit2SumDig(TClonesArray *hits,TObjArray *pSDig, Int_t *nSdigit);
75
76 enum EMedia {kAir=0,kSi=1,kBe=2, kCu=3}; //media ids used in CreateMaterials
77
78
79 // Geometry/segmentation creation part
80 TGeoVolumeAssembly * CreateVol();
81 void SetFullSegmentation(TArrayD xsize, TArrayD zsize);
82
83
84 void StepHistory();
85
86 protected:
87 TArrayD fWidths;
88 TArrayD fRadii;
89 TArrayD fRadiiCu;
90 TArrayD fWidthsCu;
91 TArrayS fCopper;
92 Bool_t fBeampipe;
93 Double_t fRadiusBP;
94 Double_t fWidthBP;
95 Double_t fHalfLengthBP;
96 Int_t fNlayers;
97 TArrayD fHalfLength;
98 TObjArray *fSdigits; //![fNlayers] list of sdigits
99 TObjArray *fDigits; //![fNlayers] list of digits per layer
1d9af2d5 100 AliITSsegmentationUpgrade *fSegmentation;
101
102 private:
103 AliITSupgrade(const AliITSupgrade& u); //dummy copy constructor
104 AliITSupgrade &operator=(const AliITSupgrade& u); //dummy assignment operator
105
106 ClassDef(AliITSupgrade,2) //ITS Upgrade full version for simulation
107
108 };
109
110#endif
111