ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
 
/* $Id$ */

#include <Riostream.h>
 
#include <TROOT.h>
#include <TFile.h>
#include <TSeqCollection.h>
#include <TString.h>
#include <TClonesArray.h>
 
#include "AliHeader.h"
#include "AliRun.h"
 
#include "AliITS.h"
#include "AliITSsDigitize.h"
#include "AliITSgeom.h"

/////////////////////////////////////////////////////////
//                                                     //
//                                                     //
//                                                     //
///////////////////////////////////////////////////////// 

using std::endl;
using std::cout;
ClassImp(AliITSsDigitize)
//______________________________________________________________________
AliITSsDigitize::AliITSsDigitize():
fInit(kFALSE),
fEnt(0),
fEnt0(0),
fITS(0),
fRunLoader(0x0){
    // Default constructor.
    // Inputs:
    //  none.
    // Outputs:
    //   none.
    // Return:
    //    A zero-ed constructed AliITSsDigitize class.
 
    fDet[0] = fDet[1] = fDet[2] = kTRUE;
}
//______________________________________________________________________
AliITSsDigitize::AliITSsDigitize(const char* filename):
fInit(),
fEnt(0),
fEnt0(0),
fITS(0),
fRunLoader(0x0){
    // Standard constructor.
    // Inputs:
    //  const char* filename    filename containing the digits to be
    //                          reconstructed. If filename = 0 (nil)
    //                          then no file is opened but a file is
    //                          assumed to already be opened. This
    //                          already opened file will be used.
    // Outputs:
    //   none.
    // Return:
    //    A standardly constructed AliITSsDigitize class.
 
    if(gAlice) 
     {
      delete gAlice;
      gAlice = 0;
     }
    fRunLoader = AliRunLoader::Open(filename);
    fRunLoader->LoadgAlice();
    fRunLoader->LoadHeader();
    
 
    Init();
}
//______________________________________________________________________
AliITSsDigitize::~AliITSsDigitize(){
    // Default constructor.
    // Inputs:
    //  none.
    // Outputs:
    //   none.
    // Return:
    //    A destroyed AliITSsDigitize class.
 
    if(fRunLoader) delete fRunLoader;
    fITS      = 0;
 
}
//______________________________________________________________________
Bool_t AliITSsDigitize::Init(){
    // Class Initilizer.
    // Inputs:
    //  none.
    // Outputs:
    //   none.
    // Return:
    //    kTRUE if no errors initilizing this class occurse else kFALSE
    //Int_t nparticles;
   
    fITS = (AliITS*) gAlice->GetDetector("ITS");
    if(!fITS){
        cout << "ITS not found aborting. fITS=" << fITS << endl;
        fInit = kFALSE;
        return fInit;
    } // end if !fITS
    if(!(fITS->GetITSgeom())){
        cout << "ITSgeom not found aborting."<< endl;
        fInit = kFALSE;
        return fInit;
    } // end if !GetITSgeom()
    // Now ready to init.
 
    fDet[0] = fDet[1] = fDet[2] = kTRUE;
    fEnt0 = 0;
    fEnt  = AliRunLoader::Instance()->GetNumberOfEvents(); 
 
    AliLoader* loader = fRunLoader->GetLoader("ITSLoader");
    
    if(!loader->TreeS()){
        cout << "Having to create the SDigits Tree." << endl;
        loader->MakeTree("S");
    } // end if !gAlice->TreeS()
    //make branch
    fITS->MakeBranch("S");
    fITS->SetTreeAddress();
    
    fRunLoader->GetEvent(fEnt0);
    // finished init.
    fInit = InitSDig();
    return fInit;
}
//______________________________________________________________________
Bool_t AliITSsDigitize::InitSDig() const {
    // Sets up SDigitization part of AliITSDetType..
    // Inputs:
    //      none.
    // Outputs:
    //      none.
    // Return:
    //      none.
 
    return kTRUE;
}
 
//______________________________________________________________________
void AliITSsDigitize::Digitize(const Option_t *opt){
    // Main SDigitization function.
    // Inputs:
    //      Option_t * opt   list of subdetector to digitize. =0 all.
    // Outputs:
    //      none.
    // Return:
    //      none.
    Option_t *lopt;
    Bool_t condition =kFALSE;
    if(opt){
      if(strstr(opt,"All")||strstr(opt,"ALL")||strstr(opt,"ITS"))condition =kTRUE;
    }
    else{
      condition = kTRUE;
    } 
    if(condition){
        fDet[0] = fDet[1] = fDet[2] = kTRUE;
        lopt = "All";
    }else{
        fDet[0] = fDet[1] = fDet[2] = kFALSE;
        if(strstr(opt,"SPD")) fDet[kSPD] = kTRUE;
        if(strstr(opt,"SDD")) fDet[kSDD] = kTRUE;
        if(strstr(opt,"SSD")) fDet[kSSD] = kTRUE;
        if(fDet[kSPD] && fDet[kSDD] && fDet[kSSD]) lopt = "All";
        else lopt = opt;
    } // end if strstr(opt,...)
 
    if(!fInit){
        cout << "Initilization Failed, Can't run Digitize." << endl;
        return;
    } // end if !fInit

    fITS->HitsToSDigits(fRunLoader->GetHeader()->GetEvent(),0,-1," ",lopt," ");
}
 AliITSsDigitize.cxx:1
 AliITSsDigitize.cxx:2
 AliITSsDigitize.cxx:3
 AliITSsDigitize.cxx:4
 AliITSsDigitize.cxx:5
 AliITSsDigitize.cxx:6
 AliITSsDigitize.cxx:7
 AliITSsDigitize.cxx:8
 AliITSsDigitize.cxx:9
 AliITSsDigitize.cxx:10
 AliITSsDigitize.cxx:11
 AliITSsDigitize.cxx:12
 AliITSsDigitize.cxx:13
 AliITSsDigitize.cxx:14
 AliITSsDigitize.cxx:15
 AliITSsDigitize.cxx:16
 AliITSsDigitize.cxx:17
 AliITSsDigitize.cxx:18
 AliITSsDigitize.cxx:19
 AliITSsDigitize.cxx:20
 AliITSsDigitize.cxx:21
 AliITSsDigitize.cxx:22
 AliITSsDigitize.cxx:23
 AliITSsDigitize.cxx:24
 AliITSsDigitize.cxx:25
 AliITSsDigitize.cxx:26
 AliITSsDigitize.cxx:27
 AliITSsDigitize.cxx:28
 AliITSsDigitize.cxx:29
 AliITSsDigitize.cxx:30
 AliITSsDigitize.cxx:31
 AliITSsDigitize.cxx:32
 AliITSsDigitize.cxx:33
 AliITSsDigitize.cxx:34
 AliITSsDigitize.cxx:35
 AliITSsDigitize.cxx:36
 AliITSsDigitize.cxx:37
 AliITSsDigitize.cxx:38
 AliITSsDigitize.cxx:39
 AliITSsDigitize.cxx:40
 AliITSsDigitize.cxx:41
 AliITSsDigitize.cxx:42
 AliITSsDigitize.cxx:43
 AliITSsDigitize.cxx:44
 AliITSsDigitize.cxx:45
 AliITSsDigitize.cxx:46
 AliITSsDigitize.cxx:47
 AliITSsDigitize.cxx:48
 AliITSsDigitize.cxx:49
 AliITSsDigitize.cxx:50
 AliITSsDigitize.cxx:51
 AliITSsDigitize.cxx:52
 AliITSsDigitize.cxx:53
 AliITSsDigitize.cxx:54
 AliITSsDigitize.cxx:55
 AliITSsDigitize.cxx:56
 AliITSsDigitize.cxx:57
 AliITSsDigitize.cxx:58
 AliITSsDigitize.cxx:59
 AliITSsDigitize.cxx:60
 AliITSsDigitize.cxx:61
 AliITSsDigitize.cxx:62
 AliITSsDigitize.cxx:63
 AliITSsDigitize.cxx:64
 AliITSsDigitize.cxx:65
 AliITSsDigitize.cxx:66
 AliITSsDigitize.cxx:67
 AliITSsDigitize.cxx:68
 AliITSsDigitize.cxx:69
 AliITSsDigitize.cxx:70
 AliITSsDigitize.cxx:71
 AliITSsDigitize.cxx:72
 AliITSsDigitize.cxx:73
 AliITSsDigitize.cxx:74
 AliITSsDigitize.cxx:75
 AliITSsDigitize.cxx:76
 AliITSsDigitize.cxx:77
 AliITSsDigitize.cxx:78
 AliITSsDigitize.cxx:79
 AliITSsDigitize.cxx:80
 AliITSsDigitize.cxx:81
 AliITSsDigitize.cxx:82
 AliITSsDigitize.cxx:83
 AliITSsDigitize.cxx:84
 AliITSsDigitize.cxx:85
 AliITSsDigitize.cxx:86
 AliITSsDigitize.cxx:87
 AliITSsDigitize.cxx:88
 AliITSsDigitize.cxx:89
 AliITSsDigitize.cxx:90
 AliITSsDigitize.cxx:91
 AliITSsDigitize.cxx:92
 AliITSsDigitize.cxx:93
 AliITSsDigitize.cxx:94
 AliITSsDigitize.cxx:95
 AliITSsDigitize.cxx:96
 AliITSsDigitize.cxx:97
 AliITSsDigitize.cxx:98
 AliITSsDigitize.cxx:99
 AliITSsDigitize.cxx:100
 AliITSsDigitize.cxx:101
 AliITSsDigitize.cxx:102
 AliITSsDigitize.cxx:103
 AliITSsDigitize.cxx:104
 AliITSsDigitize.cxx:105
 AliITSsDigitize.cxx:106
 AliITSsDigitize.cxx:107
 AliITSsDigitize.cxx:108
 AliITSsDigitize.cxx:109
 AliITSsDigitize.cxx:110
 AliITSsDigitize.cxx:111
 AliITSsDigitize.cxx:112
 AliITSsDigitize.cxx:113
 AliITSsDigitize.cxx:114
 AliITSsDigitize.cxx:115
 AliITSsDigitize.cxx:116
 AliITSsDigitize.cxx:117
 AliITSsDigitize.cxx:118
 AliITSsDigitize.cxx:119
 AliITSsDigitize.cxx:120
 AliITSsDigitize.cxx:121
 AliITSsDigitize.cxx:122
 AliITSsDigitize.cxx:123
 AliITSsDigitize.cxx:124
 AliITSsDigitize.cxx:125
 AliITSsDigitize.cxx:126
 AliITSsDigitize.cxx:127
 AliITSsDigitize.cxx:128
 AliITSsDigitize.cxx:129
 AliITSsDigitize.cxx:130
 AliITSsDigitize.cxx:131
 AliITSsDigitize.cxx:132
 AliITSsDigitize.cxx:133
 AliITSsDigitize.cxx:134
 AliITSsDigitize.cxx:135
 AliITSsDigitize.cxx:136
 AliITSsDigitize.cxx:137
 AliITSsDigitize.cxx:138
 AliITSsDigitize.cxx:139
 AliITSsDigitize.cxx:140
 AliITSsDigitize.cxx:141
 AliITSsDigitize.cxx:142
 AliITSsDigitize.cxx:143
 AliITSsDigitize.cxx:144
 AliITSsDigitize.cxx:145
 AliITSsDigitize.cxx:146
 AliITSsDigitize.cxx:147
 AliITSsDigitize.cxx:148
 AliITSsDigitize.cxx:149
 AliITSsDigitize.cxx:150
 AliITSsDigitize.cxx:151
 AliITSsDigitize.cxx:152
 AliITSsDigitize.cxx:153
 AliITSsDigitize.cxx:154
 AliITSsDigitize.cxx:155
 AliITSsDigitize.cxx:156
 AliITSsDigitize.cxx:157
 AliITSsDigitize.cxx:158
 AliITSsDigitize.cxx:159
 AliITSsDigitize.cxx:160
 AliITSsDigitize.cxx:161
 AliITSsDigitize.cxx:162
 AliITSsDigitize.cxx:163
 AliITSsDigitize.cxx:164
 AliITSsDigitize.cxx:165
 AliITSsDigitize.cxx:166
 AliITSsDigitize.cxx:167
 AliITSsDigitize.cxx:168
 AliITSsDigitize.cxx:169
 AliITSsDigitize.cxx:170
 AliITSsDigitize.cxx:171
 AliITSsDigitize.cxx:172
 AliITSsDigitize.cxx:173
 AliITSsDigitize.cxx:174
 AliITSsDigitize.cxx:175
 AliITSsDigitize.cxx:176
 AliITSsDigitize.cxx:177
 AliITSsDigitize.cxx:178
 AliITSsDigitize.cxx:179
 AliITSsDigitize.cxx:180
 AliITSsDigitize.cxx:181
 AliITSsDigitize.cxx:182
 AliITSsDigitize.cxx:183
 AliITSsDigitize.cxx:184
 AliITSsDigitize.cxx:185
 AliITSsDigitize.cxx:186
 AliITSsDigitize.cxx:187
 AliITSsDigitize.cxx:188
 AliITSsDigitize.cxx:189
 AliITSsDigitize.cxx:190
 AliITSsDigitize.cxx:191
 AliITSsDigitize.cxx:192
 AliITSsDigitize.cxx:193
 AliITSsDigitize.cxx:194
 AliITSsDigitize.cxx:195