ROOT logo
//=================================================
// AliJCard.h
// last modified FK 6.NOV 2009
//=================================================

#ifndef ALIJCARD_H
#define ALIJCARD_H

#include <TObject.h>

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <stdio.h>
#include <iomanip>

#include <string.h>
#include <TString.h>
#include <TVector.h>
#include <TMath.h>
#include <TObjArray.h>
#include <TObjString.h>
#include <TFile.h>
#include <TF1.h>
#include <TH1D.h>
#include <TH2D.h>
#include <vector>
#include <TVector3.h>
#include <THashList.h>
#include <TNamed.h>

#include "AliJConst.h"
#include "AliJBaseCard.h"

class AliJBaseTrack;
#include "AliJPhoton.h"
class AliJTrack;

using namespace std;


class AliJCard : public AliJBaseCard {

    public:

        AliJCard(); // constructor
        AliJCard(const char *filename); // constructor
        AliJCard(const AliJCard& obj);
        AliJCard& operator=(const AliJCard& obj);

        virtual ~AliJCard();

        void MakeFastCorrTypeIndex();

        void   PrintOut(); 

        float  Get(TString keyword, int VectorComponent=0){ return AliJBaseCard::Get(keyword, VectorComponent); }
        float  Get(corrType ctype, int VectorComponent =0);  //get TVector component
        float  GetFast(corrType ctype, int VectorComponent=0);  //get TVector component
        int    GetN(TString keyword){ return AliJBaseCard::GetN(keyword); }       //get TVector dimension
        int    GetN(corrType ctype);        //get TVector dimension
        int    GetNFast(corrType ctype);    //get TVector dimension

        //---- Collision Species --
        float  GetCollisionType()  { return Get("CollisionType");}

        //------  v e r t e x -----

        float  VertInZRange(float Z) {
            //cout<< "zv " << Z <<" "<< ( GetBinBorder(kZVertType,0) < Z && Z < GetBinBorder(kZVertType, GetNoOfBins(kZVertType)) ) <<endl; 
            return ( GetBinBorder(kZVertType,0) < Z && Z < GetBinBorder(kZVertType, GetNoOfBins(kZVertType)) ); }

        //Alice vertex  cuts
        bool CheckEventZVetrex(double fZVertex, double ZVertErr){
            if(Get("ZVertexRange",0)<fZVertex && fZVertex <Get("ZVertexRange",1) && (Get("MaxZVertexError") > ZVertErr))        return true; 
            else    return false;
        }

        int IsLessThanUpperPairPtCut(double inPairPt);


        //--- c o r r e l a t i o n  bins & borders --
        int    GetNoOfBins (corrType ctype){ return GetNFast(ctype)-1; }
        float  GetBinBorder(corrType ctype, int ii){ return GetFast(ctype,ii); }
        int    GetBin(corrType ctype, float val);
        int    GetBinFast(corrType ctype, float val);
        double GetBinCenter(corrType ctype, int ii){ return (GetFast(ctype,ii)+GetFast(ctype,ii+1))/2.;}

        //-----  m i x i n g ----
        int    GetEventPoolDepth(int cBin){ return (int) Get("EventPoolDepth",cBin);}
        bool   SimilarVertZ(float Z1, float Z2);
        bool   SimilarMultiplicity(float mult1, float mult2);
        bool   SimilarCentrality(float c1, float c2, int cbin);

        //run characteristics
        bool   IsGoodRun(int runID);

        //trigger
        bool   MbTrigger(int triggin) const;

        //photon
        bool   IsPhoton(AliJPhoton *g){ return g->GetProbPhot() > Get("probPhot"); }
        float  GetPhotEnergyCut(){ return Get("minEnergy"); }

        bool   InPhiRange(float Phi);
        bool   IsInZEDandThetaRange(float zedDC, float theta){
            return (fabs(zedDC)<Get("zedRange") && fabs(kJPi/2-theta)<Get("thetaRange"));
        }

        bool   IsInEtaRange(float eta){return fabs(eta)<Get("EtaRange"); }
        //  bool   likeSgnCheck(PhJCgl *cgl1, PhJCgl *cgl2);
        bool   DeltaEtaCheck(const AliJBaseTrack *ftk1, const AliJBaseTrack *ftk2);
        bool   NotGhost(float zedDC, float PhiDC){ 
            return (zedDC > Get("deltaZEDPhiDC",0) && fabs(PhiDC) > Get("deltaZEDPhiDC",1));
        }

        /* bool CheckCovDiagonalElements(double *element){
           if(Get("MaxCovDiagonalElements",0)<0) return true;
           bool isGoodTrack = true;
           for(Int_t i=0;i<5;i++){
           if(Get("MaxCovDiagonalElements",i) < element[i]) isGoodTrack = false;
           }
           return isGoodTrack; 
           }*/

        bool CheckTrackParamsInTPC(int NClustersTPC,float Chi2PerClusterTPC);

        bool CheckMinNumTPCClustPt(int NClustersTPC, float fpt);

        bool CheckTrackImpact(float xyIm, float zIm, float fpt);


        bool AcceptKinkDaughters(int kinkIndex){
            if(( ! (bool) Get("AcceptKinkDaughters")) && kinkIndex > 0 ) return false;//we do not want kinks but kink findex>0
            else return true;
        }


        double GetCutOnBkgActivity(){
            return (double) Get("CutOnBkgActivity");
        }

        void   SetEventV3kv(double inV3kv) {feventV3kv = inV3kv;}
        double GetEventV3kv() const {return feventV3kv;}

        //Alice CALO
        bool ReadEmcalSm(int sm){ return (bool) Get("EMCAL_SM",sm);}
        bool ReadPhosSm(int sm){ return (bool) Get("PHOS_SM",sm);}

        bool  MixPhotonForPi0Mass() {return ((int) Get("massMix")==1);}//FK//
        bool  MixMBForPi0Mass() {return ((int) Get("massMixMB")>0);}
        bool  MixMBMBForPi0Mass() {return ((int) Get("massMixMB")==2);}

        virtual void InitCard(); //TODO
        void FinishCard(); // TODO
        void ReCompile();


    protected:


        TString GetKeyWord(corrType ctype);
        corrType GetCorrType( TString inStr );

        //====   D a t a    M e m b e r s  ========

        //   double effPar[16];
        //   double corrCent[10]; //FK// additional scaling factor to effPar to correct on hi fcentrality
        TH2D *fhCorr;  // comment me

        double feventV3kv;  // comment me

        vector< int >       fIndexVector;     //array of float number confg parameter vectors 

        Double_t **fpi0massbin; //! faster access to pi0 mass bins

        //ClassDef(AliJCard, 1); // EMCAL for jcorran
};

#endif






















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