ROOT logo
// YS Subatech Mai 2002
// YK Subatech 6 Aug 2002

// PHOS Reconstruction chain:
// Hits -> SDigits -> Digits -> RecPoints -> TrackSegments -> RecParticles

//Root
#if !defined(__CINT__) || defined(__MAKECINT__)
#include "TString.h"

//AliRoot
#include "STEER/AliRun.h"
#include "PHOS/AliPHOSSDigitizer.h"
#include "PHOS/AliPHOSDigitizer.h"
#include "PHOS/AliPHOSClusterizerv1.h"
#include "PHOS/AliPHOSTrackSegmentMakerv1.h"
#include "PHOS/AliPHOSPIDv1.h"
#include "EMCAL/AliEMCALSDigitizer.h"
#include "EMCAL/AliEMCALDigitizer.h"
#include "EMCAL/AliEMCALClusterizerv1.h"
#endif

void PHOSHits2SDigits( Bool_t split=kFALSE, TString fileName = "galice.root") {

  // usage : 
  // 1. write SDigits in the same file as Hits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] SDigits2Digits()
  // 2. write SDigits in a separate file, one per detector, from Hits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] SDigits2Digits(kTRUE) // SDigits saved in [DET}.SDigits.root (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
  
  AliPHOSSDigitizer * sdp = new AliPHOSSDigitizer(fileName) ; 
  if (split) 
    sdp->SetSplitFile() ;
  sdp->ExecuteTask("deb") ; 

  delete sdp ;
}

//________________________________________________________________________
void PHOSSDigits2Digits( Bool_t split=kFALSE, TString fileName = "galice.root") {
  
 // usage : 
  // 1. write SDigits in the same file as SDigits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] SDigits2Digits()
  // 2. write SDigits in a separate file, one per detector, from SDigits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] SDigitsDigits(kTRUE) // Digits saved in [DET}.Digits.root (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
  
  // PHOS
  AliPHOSDigitizer * dp = 0 ; 
 
  if (split) {
    dp = new AliPHOSDigitizer("PHOS.SDigits.root") ; 
    dp->SetSplitFile() ; } 
  else 
    dp = new AliPHOSDigitizer(fileName) ; 
  
  dp->ExecuteTask("deb") ; 
  
  delete dp ;
}

//________________________________________________________________________
void PHOSDigits2RecPoints( Bool_t split=kFALSE, TString fileName = "galice.root") {
  
 // usage : 
  // 1. write RecPoints in the same file as Digits --------------- OK 
  //root [0] .L Reconstruct.C++
  //root [1] Digits2RecPoints()
  // 2. write RecPoints in a separate file, one per detector, from Digits --------------- OK 
  //root [0] .L Reconstruct.C++
  //root [1] Digits2RecPoints(kTRUE) // RecPoints saved in [DET}.RecPoints.root (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
 
  AliPHOSClusterizer * cp = 0 ; 
 
  if (split) {
    cp = new AliPHOSClusterizerv1("PHOS.Digits.root") ; 
    cp->SetSplitFile() ; } 
  else 
    cp = new AliPHOSClusterizerv1(fileName) ; 
  
  cp->ExecuteTask("deb") ; 
  
  delete cp ;
}

//________________________________________________________________________
void PHOSRecPoints2TrackSegments( Bool_t split=kFALSE, TString fileName = "galice.root") {
  
 // usage : 
  // 1. write TrackSegments in the same file as RecPoints --------------- (OK) 
  //root [0] .L Reconstruct.C++
  //root [1] RecPoints2TrackSegments()
  // 2. write TrackSegments in a separate file, one per detector, from RecPoints --------------- (Not needed) 
  //root [0] .L Reconstruct.C++
  //root [1] RecPoints2TrackSegments(kTRUE) // TrackSegments saved in [DET}.RecData.root (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
  
  AliPHOSTrackSegmentMaker * tmp = 0 ; 
 
  if (split)
    tmp = new AliPHOSTrackSegmentMakerv1("PHOS.RecData.root") ; 
  else 
    tmp = new AliPHOSTrackSegmentMakerv1(fileName) ; 
  
  tmp->ExecuteTask("deb") ; 
  
  delete tmp ;
}

//________________________________________________________________________
void PHOSTrackSegments2RecParticles( Bool_t split=kFALSE, TString fileName = "galice.root") {
  
 // usage : 
  // 1. write RecParticles in the same file as TrackSegments ---------------  (OK)
  //root [0] .L Reconstruct.C++
  //root [1] TrackSegments2RecParticles()
  // 2. write RecParticles in a separate file, one per detector, from TrackSegments --------------- (Not needed) 
  //root [0] .L Reconstruct.C++
  //root [1] TrackSegments2RecParticles(kTRUE) // RecParticles saved in [DET}.RecData.root (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
  
  AliPHOSPID * pp = 0 ; 
 
  if (split) 
    pp = new AliPHOSPIDv1("PHOS.RecData.root") ; 
  else 
    pp = new AliPHOSPIDv1(fileName) ; 
  
  pp->ExecuteTask("deb") ; 
  
  delete pp ;
}

//________________________________________________________________________
void PHOSDigits2RecParticles( Bool_t split=kFALSE, TString fileName = "galice.root") {
  
 // usage : 
  // 1. write RecPoints, TrackSegments and RecParticles in the same file as Digits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] Digits2RecParticles()
  // 2. write RecPoints , TrackSegments and RecParticles in a separate file, one per detector, from Digits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] Digits2RecParticles(kTRUE) // TrackSegments saved in [DET}.RecData.root (DET=PHOS, EMCAL)

 
  delete gAlice ; 
  gAlice = 0 ; 
 
  // PHOS
  AliPHOSClusterizer * cp = 0 ; 
 
  if (split) {
    cp = new AliPHOSClusterizerv1("PHOS.Digits.root") ; 
    cp->SetSplitFile() ; } 
  else 
    cp = new AliPHOSClusterizerv1(fileName) ; 
  
  cp->ExecuteTask("deb") ; 

  if (split) 
    delete cp ;
  
  AliPHOSTrackSegmentMaker * tmp = 0 ; 
  
  if (split) 
    tmp = new AliPHOSTrackSegmentMakerv1("PHOS.RecData.root") ; 
  else 
    tmp = new AliPHOSTrackSegmentMakerv1(fileName) ; 
  
  tmp->ExecuteTask("deb") ; 
  
  AliPHOSPID * pp = 0 ; 
 
  if (split) 
    pp = new AliPHOSPIDv1("PHOS.RecData.root") ; 
  else 
    pp = new AliPHOSPIDv1(fileName) ; 
  
  pp->ExecuteTask("deb") ; 
  
  delete tmp; 
  delete pp ; 
}

//________________________________________________________________________
void PHOSHits2Digits (Bool_t split=kFALSE, TString fileName = "galice.root") {
  // usage : 
  // 1. write (S)Digits in the same file as Hits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] Hits2Digits()
  // 2. write (S)Digits in a separate file, one per detector, from Hits --------------- (OK)
  //root [0] .L Reconstruct.C++
  //root [1] Hits2Digits(kTRUE) // SDigits saved in [DET}.SDigits.root (DET=PHOS, EMCAL)
                                // Digits  saved in [DET}.Digits.root  (DET=PHOS, EMCAL)

  delete gAlice ; 
  gAlice = 0 ; 
  
  //PHOS
  AliPHOSSDigitizer * sdp = new AliPHOSSDigitizer(fileName) ; 
  if (split) 
    sdp->SetSplitFile() ;
  sdp->ExecuteTask("deb") ; 

  if (split) 
    delete sdp ; 

  AliPHOSDigitizer * dp = 0 ; 
 
  if (split) {
    dp = new AliPHOSDigitizer("PHOS.SDigits.root") ; 
    dp->SetSplitFile() ; } 
  else 
    dp = new AliPHOSDigitizer(fileName) ; 
  
  dp->ExecuteTask("deb") ; 

  if (split) 
    delete dp ; 

  if (!split) { 
    delete sdp ; 
    delete dp ; 
  }
}


 
 AliPHOSReconstruct.C:1
 AliPHOSReconstruct.C:2
 AliPHOSReconstruct.C:3
 AliPHOSReconstruct.C:4
 AliPHOSReconstruct.C:5
 AliPHOSReconstruct.C:6
 AliPHOSReconstruct.C:7
 AliPHOSReconstruct.C:8
 AliPHOSReconstruct.C:9
 AliPHOSReconstruct.C:10
 AliPHOSReconstruct.C:11
 AliPHOSReconstruct.C:12
 AliPHOSReconstruct.C:13
 AliPHOSReconstruct.C:14
 AliPHOSReconstruct.C:15
 AliPHOSReconstruct.C:16
 AliPHOSReconstruct.C:17
 AliPHOSReconstruct.C:18
 AliPHOSReconstruct.C:19
 AliPHOSReconstruct.C:20
 AliPHOSReconstruct.C:21
 AliPHOSReconstruct.C:22
 AliPHOSReconstruct.C:23
 AliPHOSReconstruct.C:24
 AliPHOSReconstruct.C:25
 AliPHOSReconstruct.C:26
 AliPHOSReconstruct.C:27
 AliPHOSReconstruct.C:28
 AliPHOSReconstruct.C:29
 AliPHOSReconstruct.C:30
 AliPHOSReconstruct.C:31
 AliPHOSReconstruct.C:32
 AliPHOSReconstruct.C:33
 AliPHOSReconstruct.C:34
 AliPHOSReconstruct.C:35
 AliPHOSReconstruct.C:36
 AliPHOSReconstruct.C:37
 AliPHOSReconstruct.C:38
 AliPHOSReconstruct.C:39
 AliPHOSReconstruct.C:40
 AliPHOSReconstruct.C:41
 AliPHOSReconstruct.C:42
 AliPHOSReconstruct.C:43
 AliPHOSReconstruct.C:44
 AliPHOSReconstruct.C:45
 AliPHOSReconstruct.C:46
 AliPHOSReconstruct.C:47
 AliPHOSReconstruct.C:48
 AliPHOSReconstruct.C:49
 AliPHOSReconstruct.C:50
 AliPHOSReconstruct.C:51
 AliPHOSReconstruct.C:52
 AliPHOSReconstruct.C:53
 AliPHOSReconstruct.C:54
 AliPHOSReconstruct.C:55
 AliPHOSReconstruct.C:56
 AliPHOSReconstruct.C:57
 AliPHOSReconstruct.C:58
 AliPHOSReconstruct.C:59
 AliPHOSReconstruct.C:60
 AliPHOSReconstruct.C:61
 AliPHOSReconstruct.C:62
 AliPHOSReconstruct.C:63
 AliPHOSReconstruct.C:64
 AliPHOSReconstruct.C:65
 AliPHOSReconstruct.C:66
 AliPHOSReconstruct.C:67
 AliPHOSReconstruct.C:68
 AliPHOSReconstruct.C:69
 AliPHOSReconstruct.C:70
 AliPHOSReconstruct.C:71
 AliPHOSReconstruct.C:72
 AliPHOSReconstruct.C:73
 AliPHOSReconstruct.C:74
 AliPHOSReconstruct.C:75
 AliPHOSReconstruct.C:76
 AliPHOSReconstruct.C:77
 AliPHOSReconstruct.C:78
 AliPHOSReconstruct.C:79
 AliPHOSReconstruct.C:80
 AliPHOSReconstruct.C:81
 AliPHOSReconstruct.C:82
 AliPHOSReconstruct.C:83
 AliPHOSReconstruct.C:84
 AliPHOSReconstruct.C:85
 AliPHOSReconstruct.C:86
 AliPHOSReconstruct.C:87
 AliPHOSReconstruct.C:88
 AliPHOSReconstruct.C:89
 AliPHOSReconstruct.C:90
 AliPHOSReconstruct.C:91
 AliPHOSReconstruct.C:92
 AliPHOSReconstruct.C:93
 AliPHOSReconstruct.C:94
 AliPHOSReconstruct.C:95
 AliPHOSReconstruct.C:96
 AliPHOSReconstruct.C:97
 AliPHOSReconstruct.C:98
 AliPHOSReconstruct.C:99
 AliPHOSReconstruct.C:100
 AliPHOSReconstruct.C:101
 AliPHOSReconstruct.C:102
 AliPHOSReconstruct.C:103
 AliPHOSReconstruct.C:104
 AliPHOSReconstruct.C:105
 AliPHOSReconstruct.C:106
 AliPHOSReconstruct.C:107
 AliPHOSReconstruct.C:108
 AliPHOSReconstruct.C:109
 AliPHOSReconstruct.C:110
 AliPHOSReconstruct.C:111
 AliPHOSReconstruct.C:112
 AliPHOSReconstruct.C:113
 AliPHOSReconstruct.C:114
 AliPHOSReconstruct.C:115
 AliPHOSReconstruct.C:116
 AliPHOSReconstruct.C:117
 AliPHOSReconstruct.C:118
 AliPHOSReconstruct.C:119
 AliPHOSReconstruct.C:120
 AliPHOSReconstruct.C:121
 AliPHOSReconstruct.C:122
 AliPHOSReconstruct.C:123
 AliPHOSReconstruct.C:124
 AliPHOSReconstruct.C:125
 AliPHOSReconstruct.C:126
 AliPHOSReconstruct.C:127
 AliPHOSReconstruct.C:128
 AliPHOSReconstruct.C:129
 AliPHOSReconstruct.C:130
 AliPHOSReconstruct.C:131
 AliPHOSReconstruct.C:132
 AliPHOSReconstruct.C:133
 AliPHOSReconstruct.C:134
 AliPHOSReconstruct.C:135
 AliPHOSReconstruct.C:136
 AliPHOSReconstruct.C:137
 AliPHOSReconstruct.C:138
 AliPHOSReconstruct.C:139
 AliPHOSReconstruct.C:140
 AliPHOSReconstruct.C:141
 AliPHOSReconstruct.C:142
 AliPHOSReconstruct.C:143
 AliPHOSReconstruct.C:144
 AliPHOSReconstruct.C:145
 AliPHOSReconstruct.C:146
 AliPHOSReconstruct.C:147
 AliPHOSReconstruct.C:148
 AliPHOSReconstruct.C:149
 AliPHOSReconstruct.C:150
 AliPHOSReconstruct.C:151
 AliPHOSReconstruct.C:152
 AliPHOSReconstruct.C:153
 AliPHOSReconstruct.C:154
 AliPHOSReconstruct.C:155
 AliPHOSReconstruct.C:156
 AliPHOSReconstruct.C:157
 AliPHOSReconstruct.C:158
 AliPHOSReconstruct.C:159
 AliPHOSReconstruct.C:160
 AliPHOSReconstruct.C:161
 AliPHOSReconstruct.C:162
 AliPHOSReconstruct.C:163
 AliPHOSReconstruct.C:164
 AliPHOSReconstruct.C:165
 AliPHOSReconstruct.C:166
 AliPHOSReconstruct.C:167
 AliPHOSReconstruct.C:168
 AliPHOSReconstruct.C:169
 AliPHOSReconstruct.C:170
 AliPHOSReconstruct.C:171
 AliPHOSReconstruct.C:172
 AliPHOSReconstruct.C:173
 AliPHOSReconstruct.C:174
 AliPHOSReconstruct.C:175
 AliPHOSReconstruct.C:176
 AliPHOSReconstruct.C:177
 AliPHOSReconstruct.C:178
 AliPHOSReconstruct.C:179
 AliPHOSReconstruct.C:180
 AliPHOSReconstruct.C:181
 AliPHOSReconstruct.C:182
 AliPHOSReconstruct.C:183
 AliPHOSReconstruct.C:184
 AliPHOSReconstruct.C:185
 AliPHOSReconstruct.C:186
 AliPHOSReconstruct.C:187
 AliPHOSReconstruct.C:188
 AliPHOSReconstruct.C:189
 AliPHOSReconstruct.C:190
 AliPHOSReconstruct.C:191
 AliPHOSReconstruct.C:192
 AliPHOSReconstruct.C:193
 AliPHOSReconstruct.C:194
 AliPHOSReconstruct.C:195
 AliPHOSReconstruct.C:196
 AliPHOSReconstruct.C:197
 AliPHOSReconstruct.C:198
 AliPHOSReconstruct.C:199
 AliPHOSReconstruct.C:200
 AliPHOSReconstruct.C:201
 AliPHOSReconstruct.C:202
 AliPHOSReconstruct.C:203
 AliPHOSReconstruct.C:204
 AliPHOSReconstruct.C:205
 AliPHOSReconstruct.C:206
 AliPHOSReconstruct.C:207
 AliPHOSReconstruct.C:208
 AliPHOSReconstruct.C:209
 AliPHOSReconstruct.C:210
 AliPHOSReconstruct.C:211
 AliPHOSReconstruct.C:212
 AliPHOSReconstruct.C:213
 AliPHOSReconstruct.C:214
 AliPHOSReconstruct.C:215
 AliPHOSReconstruct.C:216
 AliPHOSReconstruct.C:217
 AliPHOSReconstruct.C:218
 AliPHOSReconstruct.C:219
 AliPHOSReconstruct.C:220
 AliPHOSReconstruct.C:221
 AliPHOSReconstruct.C:222
 AliPHOSReconstruct.C:223
 AliPHOSReconstruct.C:224
 AliPHOSReconstruct.C:225
 AliPHOSReconstruct.C:226
 AliPHOSReconstruct.C:227
 AliPHOSReconstruct.C:228
 AliPHOSReconstruct.C:229
 AliPHOSReconstruct.C:230
 AliPHOSReconstruct.C:231
 AliPHOSReconstruct.C:232
 AliPHOSReconstruct.C:233
 AliPHOSReconstruct.C:234
 AliPHOSReconstruct.C:235
 AliPHOSReconstruct.C:236
 AliPHOSReconstruct.C:237
 AliPHOSReconstruct.C:238
 AliPHOSReconstruct.C:239
 AliPHOSReconstruct.C:240
 AliPHOSReconstruct.C:241
 AliPHOSReconstruct.C:242
 AliPHOSReconstruct.C:243
 AliPHOSReconstruct.C:244
 AliPHOSReconstruct.C:245
 AliPHOSReconstruct.C:246