]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSsimulation.cxx
Possibility to compile with Root v5-11-04/06
[u/mrichter/AliRoot.git] / ITS / AliITSsimulation.cxx
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
26 ClassImp(AliITSsimulation)
27
28 //______________________________________________________________________
29 AliITSsimulation::AliITSsimulation(): TObject(),
30 fpList(0),
31 fModule(0),
32 fEvent(0),
33 fDebug(0){
34     // Default constructor
35     // Inputs:
36     //    none.
37     // Outputs:
38     //    none.
39     // Return:
40     //    a default constructed AliITSsimulation class
41   fDetType = 0;
42 }
43 //______________________________________________________________________
44 AliITSsimulation::AliITSsimulation(AliITSDetTypeSim *dettyp): TObject(),
45 fpList(0),
46 fModule(0),
47 fEvent(0),
48 fDebug(0){
49     // Default constructor
50     // Inputs:
51     //    AliITSDetTypeSim * : object used to access segmentation and response
52     // Outputs:
53     //    none.
54     // Return:
55     //    a default constructed AliITSsimulation class
56   fDetType = dettyp;
57 }
58 //__________________________________________________________________________
59 AliITSsimulation::~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 //__________________________________________________________________________
74 AliITSsimulation::AliITSsimulation(const AliITSsimulation &s) : TObject(s){
75     //     Copy Constructor
76     // Inputs:
77     //    const AliITSsimulation &s  simulation class to copy from
78     // Outputs:
79     //    none.
80     // Return:
81     //    a standard constructed AliITSsimulation class with values the same
82     //    as that of s.
83  
84     *this = s;
85     return;
86 }
87
88 //_________________________________________________________________________
89 AliITSsimulation&  AliITSsimulation::operator=(const AliITSsimulation &s){
90     //    Assignment operator
91     // Inputs:
92     //    const AliITSsimulation &s  simulation class to copy from
93     // Outputs:
94     //    none.
95     // Return:
96     //    a standard constructed AliITSsimulation class with values the same
97     //    as that of s.
98
99     if(&s == this) return *this;
100     this->fModule       = s.fModule;
101     this->fEvent        = s.fEvent;
102     this->fpList        = s.fpList;
103     return *this;
104 }
105 //______________________________________________________________________
106 Bool_t AliITSsimulation::AddSDigitsToModule(TClonesArray *pItemA,Int_t mask ){
107     // Add Summable digits to module maps.
108     // Inputs:
109     //    TClonesArray *pItemA  Array of AliITSpListItems (SDigits).
110     //    Int_t         mask    Track number off set value (see 
111     //                          AliITSpList::AddItemTo).
112     // Outputs:
113     //    none.
114     // Return:
115     //    kTRUE if there is a signal >0 else kFALSE
116     Int_t nItems = pItemA->GetEntries();
117     Bool_t sig = kFALSE;
118  
119     // cout << "Adding "<< nItems <<" SDigits to module " << fModule << endl;
120     for( Int_t i=0; i<nItems; i++ ) {
121         AliITSpListItem * pItem = (AliITSpListItem *)(pItemA->At( i ));
122         if( pItem->GetModule() != fModule ) {
123             Error( "AddSDigitsToModule","Error reading, SDigits module %d "
124                    "!= current module %d: exit",
125                    pItem->GetModule(), fModule );
126             return sig;
127         } // end if
128         if(pItem->GetSignal()>0.0 ) sig = kTRUE;
129         fpList->AddItemTo( mask, pItem );
130     } // end for i
131     return sig;
132 }