Adding some further mother volumes to speed-up the overlap checking and particle...
[u/mrichter/AliRoot.git] / ITS / AliITSsimulation.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15//////////////////////////////////////////////////////////////////////////////
16// This is the base class for ITS detector signal simulations. Data members //
17// include are a pointer to the AliITSDetTypeSim clas in order to access //
18// segmentation and response objects //
19// classes. See the detector specific implementations for the propper code. //
20//////////////////////////////////////////////////////////////////////////////
21#include "TClonesArray.h"
22
23#include "AliITSsimulation.h"
24#include "AliITSpList.h"
25
26ClassImp(AliITSsimulation)
27
28//______________________________________________________________________
29AliITSsimulation::AliITSsimulation(): TObject(),
30fDetType(0),
31fpList(0),
32fModule(0),
33fEvent(0),
34fDebug(0){
35 // Default constructor
36 // Inputs:
37 // none.
38 // Outputs:
39 // none.
40 // Return:
41 // a default constructed AliITSsimulation class
42}
43//______________________________________________________________________
44AliITSsimulation::AliITSsimulation(AliITSDetTypeSim *dettyp): TObject(),
45fDetType(dettyp),
46fpList(0),
47fModule(0),
48fEvent(0),
49fDebug(0){
50 // Default constructor
51 // Inputs:
52 // AliITSDetTypeSim * : object used to access segmentation and response
53 // Outputs:
54 // none.
55 // Return:
56 // a default constructed AliITSsimulation class
57}
58//__________________________________________________________________________
59AliITSsimulation::~AliITSsimulation(){
60 // destructor
61 // Inputs:
62 // none.
63 // Outputs:
64 // none.
65 // Return:
66 // none.
67
68 if(fpList){
69 delete fpList;
70 fpList = 0;
71 }
72 }
73//__________________________________________________________________________
74AliITSsimulation::AliITSsimulation(const AliITSsimulation &s) : TObject(s),
75fDetType(s.fDetType),
76fpList(s.fpList),
77fModule(s.fModule),
78fEvent(s.fEvent),
79fDebug(s.fDebug){
80 // Copy Constructor
81 // Inputs:
82 // const AliITSsimulation &s simulation class to copy from
83 // Outputs:
84 // none.
85 // Return:
86 // a standard constructed AliITSsimulation class with values the same
87 // as that of s.
88
89}
90
91//_________________________________________________________________________
92AliITSsimulation& AliITSsimulation::operator=(const AliITSsimulation &s){
93 // Assignment operator
94 // Inputs:
95 // const AliITSsimulation &s simulation class to copy from
96 // Outputs:
97 // none.
98 // Return:
99 // a standard constructed AliITSsimulation class with values the same
100 // as that of s.
101
102 if(&s == this) return *this;
103 this->fModule = s.fModule;
104 this->fEvent = s.fEvent;
105 this->fpList = s.fpList;
106 return *this;
107}
108//______________________________________________________________________
109Bool_t AliITSsimulation::AddSDigitsToModule(TClonesArray *pItemA,Int_t mask ){
110 // Add Summable digits to module maps.
111 // Inputs:
112 // TClonesArray *pItemA Array of AliITSpListItems (SDigits).
113 // Int_t mask Track number off set value (see
114 // AliITSpList::AddItemTo).
115 // Outputs:
116 // none.
117 // Return:
118 // kTRUE if there is a signal >0 else kFALSE
119 Int_t nItems = pItemA->GetEntries();
120 Bool_t sig = kFALSE;
121
122 // cout << "Adding "<< nItems <<" SDigits to module " << fModule << endl;
123 for( Int_t i=0; i<nItems; i++ ) {
124 AliITSpListItem * pItem = (AliITSpListItem *)(pItemA->At( i ));
125 if( pItem->GetModule() != fModule ) {
126 Error( "AddSDigitsToModule","Error reading, SDigits module %d "
127 "!= current module %d: exit",
128 pItem->GetModule(), fModule );
129 return sig;
130 } // end if
131 if(pItem->GetSignal()>0.0 ) sig = kTRUE;
132 fpList->AddItemTo( mask, pItem );
133 } // end for i
134 return sig;
135}