ROOT logo
#if !defined( __CINT__) || defined(__MAKECINT__)

#include <iostream>

#include <AliCDBManager.h>
#include <AliCDBStorage.h>
#include <AliCDBEntry.h>
#include <AliCDBMetaData.h>

#include "AliTRDgeometry.h"

#include "AliTRDCalROC.h"
#include "AliTRDCalPad.h"
#include "AliTRDCalDet.h"

#include "AliTRDCalChamberStatus.h"
#include "AliTRDCalPadStatus.h"
#include "AliTRDCalSingleChamberStatus.h"

#include "AliTRDCalPIDLQ.h"
#include "AliTRDCalMonitoring.h"

#endif

// Run numbers for the dummy file
const Int_t    gkDummyRunBeg = 0;
const Int_t    gkDummyRunEnd = 999999999;
AliCDBStorage *gStorLoc      = 0;

//_____________________________________________________________________________
TObject *CreatePadObject(const char *shortName, const char *description
                       , Float_t value)
{

  AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
  for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
    AliTRDCalROC *calROC = calPad->GetCalROC(det);
    for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
      calROC->SetValue(channel, value);
    }
  }
  return calPad;

}

//_____________________________________________________________________________
TObject *CreateDetObject(const char *shortName, const char *description
                       , Float_t value)
{

  AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
  for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
    object->SetValue(det, value);
  }
  return object;

}

//_____________________________________________________________________________
TObject *CreatePRFWidthObject()
{

  AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
  for (Int_t iLayer = 0; iLayer < AliTRDgeometry::kNlayer; ++iLayer) {

    Float_t value = 0.0;
    switch (iLayer) {
      case 0: 
        value = 0.515; 
        break;
      case 1: 
        value = 0.502; 
        break;
      case 2: 
        value = 0.491; 
        break;
      case 3: 
        value = 0.481; 
        break;
      case 4: 
        value = 0.471; 
        break;
      case 5: 
        value = 0.463; 
        break;
      default: 
        cout << "CreatePRFWidthObject: UNEXPECTED" << endl; 
        return 0;
    }

    for (Int_t iStack = 0; iStack < AliTRDgeometry::kNstack; ++iStack) {
      for (Int_t iSector = 0; iSector < AliTRDgeometry::kNsector; ++iSector) {
        AliTRDCalROC *calROC = calPad->GetCalROC(iLayer,iStack,iSector);
        for (Int_t iChannel = 0; iChannel < calROC->GetNchannels(); ++iChannel) {
          calROC->SetValue(iChannel, value);
	}
      }
    }

  }
      
  return calPad;

}

//_____________________________________________________________________________
AliTRDCalChamberStatus *CreateChamberStatusObject()
{

  AliTRDCalChamberStatus *obj = new AliTRDCalChamberStatus("chamberstatus"
                                                          ,"chamberstatus");

  for (Int_t i = 0; i < AliTRDgeometry::kNdet; ++i) {
    obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
  }

  return obj;

}

//_____________________________________________________________________________
AliTRDCalPadStatus *CreatePadStatusObject()
{
  AliTRDCalPadStatus     *obj = new AliTRDCalPadStatus("padstatus"
                                                      ,"padstatus");

  return obj;

}

//_____________________________________________________________________________
AliTRDCalMonitoring *CreateMonitoringObject()
{
  AliTRDCalMonitoring    *obj = new AliTRDCalMonitoring();

  return obj;

}

//_____________________________________________________________________________
TClonesArray* CreateRecoParamObject()
{
  TClonesArray *recos = new TClonesArray("AliTRDrecoParam", 3);
  recos->SetOwner(kTRUE);

  AliTRDrecoParam *rec = 0x0;
  AliTRDrecoParam *reco = new((*recos)[0]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetLowFluxParam()));
  delete rec;
  // further settings for low flux reco param
  // reco->SetThisAndThat()

  reco = new((*recos)[1]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetHighFluxParam()));
  delete rec;

  reco = new((*recos)[2]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetCosmicTestParam()));
  delete rec;

  return recos;

}

//_____________________________________________________________________________
AliCDBMetaData *CreateMetaObject(const char *objectClassName)
{

  AliCDBMetaData *md1= new AliCDBMetaData(); 
  md1->SetObjectClassName(objectClassName);
  md1->SetResponsible("Christoph Blume");
  md1->SetBeamPeriod(1);
  md1->SetAliRootVersion("05-16-00"); //root version
  md1->SetComment("Ideal calibration values");
  
  return md1;

}

//_____________________________________________________________________________
void StoreObject(const char *cdbPath, TObject *object, AliCDBMetaData *metaData)
{

  AliCDBId id1(cdbPath,gkDummyRunBeg,gkDummyRunEnd); 
  gStorLoc->Put(object,id1,metaData); 

}
    

//_____________________________________________________________________________
void AliTRDCreateDummyCDB()
{

  cout << endl 
       << "TRD :: Creating dummy CDB for the runs " 
       << gkDummyRunBeg
       << " -- " 
       << gkDummyRunEnd
       << endl;
  
  AliCDBManager *man = AliCDBManager::Instance();
  gStorLoc = man->GetStorage("local://$ALICE_ROOT/OCDB");
  if (!gStorLoc) {
    return;
  }

  TObject        *obj      = 0;
  AliCDBMetaData *metaData = 0;

  //
  // Reco Param Object
  //

  metaData= new AliCDBMetaData(); 
  metaData->SetObjectClassName("TClonesArray");
  metaData->SetResponsible("Alexandru Bercuci");
  metaData->SetBeamPeriod(1);
  metaData->SetAliRootVersion("05-19-04"); //root version
  metaData->SetComment("Ideal reconstruction parameters for low, high and cosmic runs");
  StoreObject("TRD/Calib/RecoParam",CreateRecoParamObject(),metaData);
  return;

  //
  // Pad objects
  //

  metaData = CreateMetaObject("AliTRDCalPad");  

  obj = CreatePadObject("LocalVdrift"       ,"TRD drift velocities (local variations)",1);
  StoreObject("TRD/Calib/LocalVdrift"       ,obj,metaData);
  
  obj = CreatePadObject("LocalT0"           ,"T0 (local variations)",0);
  StoreObject("TRD/Calib/LocalT0"           ,obj,metaData);

  obj = CreatePadObject("GainFactor"        ,"GainFactor (local variations)",1);
  StoreObject("TRD/Calib/LocalGainFactor"   ,obj,metaData);

  obj = CreatePRFWidthObject();
  StoreObject("TRD/Calib/PRFWidth"          ,obj,metaData);

  //
  // Detector objects
  //

  metaData = CreateMetaObject("AliTRDCalDet");
  
  obj = CreateDetObject("ChamberVdrift"     ,"TRD drift velocities (detector value)", 1.5);
  StoreObject("TRD/Calib/ChamberVdrift"     ,obj,metaData);
  
  obj = CreateDetObject("ChamberT0"         ,"T0 (detector value)",0);
  StoreObject("TRD/Calib/ChamberT0"         ,obj,metaData);
  
  obj = CreateDetObject("ChamberGainFactor" ,"GainFactor (detector value)", 1);
  StoreObject("TRD/Calib/ChamberGainFactor" ,obj,metaData);
  
  //
  // Status objects
  //

  metaData = CreateMetaObject("AliTRDCalChamberStatus");
  obj = CreateChamberStatusObject();
  StoreObject("TRD/Calib/ChamberStatus"     ,obj,metaData);

  metaData = CreateMetaObject("AliTRDCalPadStatus");
  obj = CreatePadStatusObject();
  StoreObject("TRD/Calib/PadStatus"         ,obj,metaData);

  //
  // Monitoring object
  //

  metaData = CreateMetaObject("AliTRDCalMonitoring");
  obj = CreateMonitoringObject();
  StoreObject("TRD/Calib/MonitoringData"    ,obj,metaData);

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